Your SlideShare is downloading. ×
  • Like
Sip header manipulation
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Sip header manipulation

  • 954 views
Published

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
954
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
4
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. SIP header manipulation 기능 개발 ( 부제 : SIP conversion engine)
  • 2. 1. 기능 개발 배경
    • 기능 개발 배경
      • SIP header value 조작은 모든 SIP 호처리 시스템의 공통적인 기능임 .
        • SSW : B2BUA 동작에 따른 SIP header value 변경 . (+SIP screening)
        • CSCF : SIP screening, THIG 기능
        • ABG : SIP screening, THIG 기능 , 기타 ABG 목적에 따른 SIP header parameter 조작 , 등
      • application level 에서 SIP header value 조작에 대한 기능 구현 .
        • 각 system team 별로 유사한 기능을 독립적으로 개발 .
        •  비슷한 기능을 중복적으로 개발함으로서 , 회사 차원에서는 인력 / 자원 낭비 . 유지보수 비용 증대 .
      • 제품 경쟁력 하락
        • 타사 제품 (ACME) 은 제품 운용 측면에서 powerful 한 기능을 제공함으로서 ,
        • 운용자가 다양한 SIP message 조작에 대한 정책을 수립할 수 있으며 실시간으로 적용가능하다 .
        •  현재 , 대부분의 Xener SIP 호처리 제품은 software 패치 작업이 불가피함 .
    SIP header manipulation 기능을 platform 화 !
  • 3. 2. 기능 정의
    • 기능 정의
      • SIP message 상에서 ,
      • SIP header value 들을 실시간으로 추가 , 삭제 , 수정이 가능하도록 하는 기능이다 .
      • 그 변경에 있어서 유연성을 극대화하여 여러 SIP 호처리 시스템에서 이용할 수 있도록 한다 .
        • CSCF
        • ABG
        • SSW
        • 기타 SIP 호처리 제품군 (AS, MS 등 )
  • 4. 3. 기능 개발 대상
    • 기능 개발 대상
      • 1 차 기능 개발
        • SIP-FS (XSP 2.0)
        • 본 개발 계획서는 SIP-FS 상에서 SIP manipulation 기능 개발 목적으로 기술되었음 .
      • 2 차 기능 개발
        • Ps (XSP 1.0)
        • 1 차 기능 개발 이후 , 기능 porting.
  • 5. 4. 기능 개발 개념
    • 기능 개발 개념
      • SIP header manipulation rule.
        • 하나의 SIP header value 의 변경은 하나의 rule 로 표현 .
        • rule 내 다음과 같이 condition 을 둠으로서 , manipulation 대상 filtering.
          • SIP messsage type (request, response)
          • SIP header value 내 manipulation 범위 제한 (header-value 전체 , uri-param, header-param 등 )
          • regular expression : 원래 value 가 특정 pattern 에 일치하는 경우에만 manipulation.
      • SIP header manipulation ruleset.
        • 하나의 ruleset 은 여러 rule 을 가질 수 있다 .
        • 하나의 rule 은 여러 ruleset 에 포함될 수 있다 .
        • 하나의 rule 이 제거되면 , 포함된 ruleset 안에서도 삭제되어 진다 .
    ruleset#1 rule#1 rule#2 rule#3 rule#m ruleset#2 ruleset#n … … Application
  • 6. 5. API
    • API
      • create a rule set
        • Boolean sipManCreateRs(SipManRsId* rsId /* out */);
      • delete a rule set
        • Boolean sipManDeleteRs(SipManRsId rsId);
      • create a rule
        • sipManCreateRule(SipManRuleT rule, SipManRId* rid /* out */);
      • delete a rule
        • sipManDeleteRule(SipManRId rid);
        • if the rule is already included in a ruleset, the ruleset not include the rule any more.
      • add a rule into a ruleset
        • Boolean sipManAddRule(SipManRsId rsId, SipManRId rid);
      • remove a rule from a ruleset
        • Boolean sipManRemoveRule(SipManRsId rsId, SipManRId rid);
      • apply a ruleset to SIP message
        • sipManApplyRs(SipMsgId msgId, SipManRsId rsId);
        • manipulation unit : header value, uri-parameter, header-parameter, uri-user, uri-host, uri-port
  • 7. 6. STRUCTURE
    • SipManRuleT Structure
      • msgType : request | response | all
        • manipulation 대상 SIP message type.
      • hdrName : SIP header name (, “Request-URI”)
        • manipulation 대상 SIP header
      • hdrValPos : top | bottom | all
        • 해당 SIP header 가 multi-header, multi-value 인 경우 , manipulation 대상 value 지정 .
        • top 인 경우 , top-most header value 가 manipulation 대상
        • bottom 인 경우 , bottom header value 가 manipulation 대상
        • all 인 경우 , 해당 SIP header 의 모든 value 가 manipulation 대상
      • type : header-value | uri-param | header-param | uri-user | uri-host | uri-port
        • ‘ uri-xxx’ 인 경우 , header value 은 SIP URI 형태이어야 함 .
        • ‘ header-value’ 가 아닌 경우 , manipulation 범위는 해당 부분으로 국한 .
      • action : add | delete | modify
        • add : 새로운 값 (newVal) 을 해당 SIP header value 또는 부분 value 로 추가 .
        • delete : 해당 SIP header value 또는 해당 parameter(name-value 쌍 ) 을 삭제 .
        • modify : 새로운 값 (newVal) 을 해당 SIP header value 또는 부분 value 로 수정 .
  • 8. 6. STRUCTURE (Cont.)
    • SipManRuleT Structure (Cont.)
      • pname : uri(or header) parameter name
        • type 이 ‘ uri-param’ 또는 ‘ header-param’ 인 경우 , 해당 parameter name 입력 .
      • match : a regular expression | ANY
        • regular expression 인 경우 , matching 된 경우에만 manipulation.
        • ANY 인 경우 , 무조건 manipulation.
      • newVal : 새로 지정되어야 할 value.
        • action 이 ‘ add’, ‘modify’ 인 경우에만 의미 있음 .
        • reserved word 와 연산자 추가 지원 .
          • $ORIG : matching 된 원래 값
          • ‘ +’ operator : string concatenation
            • ex) matching 된 값이 “ xener” 이고 , newVal 이 “ $ORIG + ‘123’” 이면
            •  “ xener123”
          • ‘ -’ operator : string subtraction
            • ex) matching 된 값이 “ xener123” 이고 , newVal 이 “ $ORIG – ’12’” 이면
            •  “ xener3”
  • 9. 7. 고려사항
    • 고려사항
      • ruleset, rule data 에 대한 backup.
        • 방법 1: application 에서 block 재기동시 재설정 하는 방법 .
        • 방법 2: 이번 기능 개발이 backup 기능까지 지원 .
      • matching 대상이 다른 SIP header 인 경우 지원 .
      • 성능
        • regular expression 사용에 대한 호처리 성능 감소 유발 .
  • 10. 8. 예상 개발 기간
    • 예상 개발 기간
      • 1 차 기능 개발 (SIP-FS)
        • 총 7 주 ( 설계 , 개발 , 기능 테스트 , 성능 시험 )
      • 2 차 기능 개발 (Ps)
        • 1 차 기능 개발 완료후 , porting 작업으로 진행 : 2 주 예상 .