SIP header manipulation  기능 개발 ( 부제  : SIP conversion engine)
1.  기능 개발 배경 <ul><li>기능 개발 배경 </li></ul><ul><ul><li>SIP header value  조작은 모든  SIP  호처리 시스템의 공통적인 기능임 . </li></ul></ul><ul>...
2.  기능 정의 <ul><li>기능 정의 </li></ul><ul><ul><li>SIP message 상에서 ,  </li></ul></ul><ul><ul><li>SIP header value 들을 실시간으로 추가 ,...
3.  기능 개발 대상 <ul><li>기능 개발 대상 </li></ul><ul><ul><li>1 차 기능 개발  </li></ul></ul><ul><ul><ul><li>SIP-FS (XSP 2.0) </li></ul><...
4.  기능 개발 개념 <ul><li>기능 개발 개념 </li></ul><ul><ul><li>SIP header manipulation rule.  </li></ul></ul><ul><ul><ul><li>하나의  SIP...
5. API <ul><li>API </li></ul><ul><ul><li>create a rule set </li></ul></ul><ul><ul><ul><li>Boolean sipManCreateRs(SipManRsI...
6. STRUCTURE <ul><li>SipManRuleT Structure </li></ul><ul><ul><li>msgType : request | response | all </li></ul></ul><ul><ul...
6. STRUCTURE (Cont.) <ul><li>SipManRuleT Structure (Cont.) </li></ul><ul><ul><li>pname : uri(or header) parameter name </l...
7.  고려사항 <ul><li>고려사항 </li></ul><ul><ul><li>ruleset, rule data 에 대한  backup. </li></ul></ul><ul><ul><ul><li>방법  1: applica...
8.  예상 개발 기간 <ul><li>예상 개발 기간 </li></ul><ul><ul><li>1 차 기능 개발  (SIP-FS) </li></ul></ul><ul><ul><ul><li>총  7 주  ( 설계 ,  개발 ...
Upcoming SlideShare
Loading in …5
×

Sip header manipulation

1,342 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,342
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Sip header manipulation

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

×