Skip to end of metadata
Go to start of metadata
Table of Contents

About this Page

  • This document details how to configure the SBC to repair the Tag in a FROM header.
  • This document deatils the manipulation of SIP URI and Header parameters.
  • This document features SMM's URI and Header Parameter options.
  • This document employs the SG User Value token

Prerequistes

Requires Sonus SBC1000/2000 Version 2.2

 

Summary

Some implementations do not place < > (brackets) around the URI portion of the FROM header. Without the brackets, UX parses the Tag as a URI parameter rather than a header parameter.

The following SMM configuration can be used to repair the issue.

Repairing the FROM Tag

Notice that the FROM header below is missing the brackets that are present in the TO header. Follow the SMM steps below as the tag is copied, removed, then re-added to reform the FROM to a more standard syntax.

INVITE sip:3539@10.1.1.74 SIP/2.0
To: <sip:3539@10.1.1.74>
From: sip:14083481112@10.1.1.74;tag=b87f9f19
Via: SIP/2.0/UDP 10.1.1.90:6162;branch=z9hG4bK-d87443-840323593-1-d87443;rport
Call-ID: 1d077346843aba30
CSeq: 1 INVITE
Contact: <sip:14083481112@10.1.1.90:6162>
Max-Forwards: 70
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO
Content-Type: application/sdp
User-Agent: eyeBeam release 3007n stamp 90816
P-MC-Domain: aginc.com
Content-Length: 0

Configure the SBC1000/2000 for Header Manipulation

  1. Create a Message Rule Table entry

    Figure : Create Message Rule Table Entry

  2. Add the first SMM Rule using the Add Header selection. This rule copies the tag value into the SG User Value 1 token.

    Figure : Add First SMM Rule

     

    SIP/2.0 100 Trying
    Call-ID: 1d077346843aba30
    Contact: <sip:10.1.1.74:5060;transport=UDP>
    Content-Length: 0
    CSeq: 1 INVITE
    From: sip:14083481112@10.1.1.74;tag=b87f9f19 (URI parameter tag b87f9f19 copied to SG User Value 1)
    Server: NET UX 2.2.1v187 UX
    Supported: replaces,update,100rel
    To: <sip:3539@10.1.1.74>;tag=a01014a-47
    Via: SIP/2.0/UDP 10.1.1.90:6162;branch=z9hG4bK-d87443-840323593-1-d87443;rport

     
  3. The second SMM Rule removes the Tag. Again, use the Add Header selection when creating the SMM entry.

    Figure : Add Second SMM Rule

     

    SIP/2.0 100 Trying
    Call-ID: 1d077346843aba30
    Contact: <sip:10.1.1.74:5060;transport=UDP>
    Content-Length: 0
    CSeq: 1 INVITE
    From: <sip:14083481112@10.1.1.74> (URI parameter tag removed)
    Server: NET UX 2.2.1v187 UX
    Supported: replaces,update,100rel
    To: <sip:3539@10.1.1.74>;tag=a01014a-47
    Via: SIP/2.0/UDP 10.1.1.90:6162;branch=z9hG4bK-d87443-840323593-1-d87443;rport

     
  4. The last SMM Rule adds a Header Parameter to the FROM header. Be sure to continue to select the Add Header parameter.

    Figure : Add Last SMM Rule

     

    SIP/2.0 100 Trying
    Call-ID: 1d077346843aba30
    Contact: <sip:10.1.1.74:5060;transport=UDP>
    Content-Length: 0
    CSeq: 1 INVITE
    From: <sip:14083481112@10.1.1.74>;tag=b87f9f19 (User Value 1 added as a header parameter tag)
    Server: NET UX 2.2.1v187 UX
    Supported: replaces,update,100rel
    To: <sip:3539@10.1.1.74>;tag=a01014a-47
    Via: SIP/2.0/UDP 10.1.1.90:6162;branch=z9hG4bK-d87443-840323593-1-d87443;rport

     
  5. Finally, the SMM Table Entry is added to the incoming SG.

    Figure : Add SMM Table Entry

Debugging Output

INVITE sip:3539@10.1.1.74 SIP/2.0
To: <sip:3539@10.1.1.74>
From: sip:14083481112@10.1.1.74;tag=b87f9f19
Via: SIP/2.0/UDP 10.1.1.90:6162;branch=z9hG4bK-d87443-840323593-1--d87443-;rport
Call-ID: 1d077346843aba30
CSeq: 1 INVITE
Contact: <sip:14083481112@10.1.1.90:6162>
Max-Forwards: 70
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO
Content-Type: application/sdp
User-Agent: eyeBeam release 3007n stamp 90816
P-MC-Domain: aginc.com
Content-Length: 0

[2012-11-07 16:43:38,389] 7276 002d com.net.ux.sip DEBUG (sipSignalingGroupConfig.cpp:672) - getBestSubnet: 10.1.1.90 - 10.1.1.6
[2012-11-07 16:43:38,389] 7277 002c com.net.ux.sip TRACE (sipSignalingGroup.cpp:1480) - {SG(1) 0x299190} CanAccept: Reject msg: call=1, transport=1, filter=0 localPort=1
[2012-11-07 16:43:38,389] 7278 002b com.net.ux.sip TRACE (sipSignalingGroup.cpp:1480) - {SG(9) 0x2281e0} CanAccept: Reject msg: call=1, transport=0, filter=0 localPort=0
[2012-11-07 16:43:38,389] 7279 002a com.net.ux.sip TRACE (sipSignalingGroup.cpp:1480) - {SG(8) 0x253350} CanAccept: Reject msg: call=1, transport=0, filter=0 localPort=0
[2012-11-07 16:43:38,389] 7280 0029 com.net.ux.sip DEBUG (sipSignalingGroupConfig.cpp:672) - getBestSubnet: 10.1.1.90 - 10.1.1.76
[2012-11-07 16:43:38,389] 7281 0028 com.net.ux.sip TRACE (sipSignalingGroup.cpp:1480) - {SG(7) 0x241198} CanAccept: Reject msg: call=1, transport=1, filter=0 localPort=1
[2012-11-07 16:43:38,390] 7282 0027 com.net.ux.sip TRACE (sipSignalingGroup.cpp:1480) - {SG(6) 0x27b0e8} CanAccept: Reject msg: call=1, transport=0, filter=0 localPort=0
[2012-11-07 16:43:38,390] 7283 0026 com.net.ux.sip DEBUG (sipSignalingGroupConfig.cpp:672) - getBestSubnet: 10.1.1.90 - 10.1.1.76
[2012-11-07 16:43:38,390] 7284 0025 com.net.ux.sip TRACE (sipSignalingGroup.cpp:1480) - {SG(4) 0x279750} CanAccept: Reject msg: call=1, transport=1, filter=0 localPort=1
[2012-11-07 16:43:38,390] 7285 0024 com.net.ux.sip DEBUG (sipSignalingGroupConfig.cpp:672) - getBestSubnet: 10.1.1.90 - 0.0.0.0
[2012-11-07 16:43:38,390] 7286 0023 com.net.ux.sip TRACE (sipSignalingGroup.cpp:1480) - {SG(2) 0x29b718} CanAccept: Reject msg: call=1, transport=0, filter=0 localPort=0
[2012-11-07 16:43:38,390] 7287 0022 com.net.ux.sip DEBUG (sipSignalingGroup.cpp:792) - {SG(3) 0x277be8} ProcessTransportMessage: Protocol Repair,calling Ingress executive(1 item(s) on list)
[2012-11-07 16:43:38,390] 7288 0021 com.net.ux.sip DEBUG (Executive.cpp:52) - Run: Protocol Engine::Executive running 1 rules
[2012-11-07 16:43:38,390] 7289 0020 com.net.ux.sip TRACE (Executive.cpp:58) - Run: Protocol Engine::getting ruleid (4)
[2012-11-07 16:43:38,390] 7290 001f com.net.ux.sip TRACE (Executive.cpp:75) - Run: Processing Message Rule (Fix header param)
[2012-11-07 16:43:38,390] 7291 001e com.net.ux.sip TRACE (Executive.cpp:127) - processMessageRule: Processing Message Rule (4)
[2012-11-07 16:43:38,390] 7292 001d com.net.ux.sip TRACE (Executive.cpp:1252) - MatchSipMessageRule: StartLine from configuration (*)From Msg (INVITE sip:3539@10.1.1.74 SIP/2.0)
[2012-11-07 16:43:38,390] 7293 001c com.net.ux.sip DEBUG (HeaderRule.h:1069) - debugInfo: HeaderRuleFieldCopy
[2012-11-07 16:43:38,390] 7294 001b com.net.ux.sip DEBUG (HeaderRule.h:798) - debugInfo: HeaderRuleFieldChange mReplacement
[2012-11-07 16:43:38,390] 7295 001a com.net.ux.sip DEBUG (ProtocolField.h:93) - debugInfo: FieldElement:: FieldType(0) Source(sguser[1])
[2012-11-07 16:43:38,390] 7296 0019 com.net.ux.sip DEBUG (ProtocolField.h:272) - debugInfo: FieldElementObject:: Valid Object Tokens
[2012-11-07 16:43:38,390] 7297 0018 com.net.ux.sip DEBUG (HeaderRule.h:679) - debugInfo: HeaderRuleField:: Element
[2012-11-07 16:43:38,390] 7298 0017 com.net.ux.sip DEBUG (ProtocolField.h:93) - debugInfo: FieldElement:: FieldType(0) Source(header["from",1].uri.param["tag"])
[2012-11-07 16:43:38,390] 7299 0016 com.net.ux.sip DEBUG (ProtocolField.h:272) - debugInfo: FieldElementObject:: Valid Object Tokens
[2012-11-07 16:43:38,390] 7300 0015 com.net.ux.sip DEBUG (HeaderRule.h:115) - debugInfo: HeaderRule:: HeaderRuleType(1)
[2012-11-07 16:43:38,390] 7301 0014 com.net.ux.sip DEBUG (RuleBase.h:123) - debugInfo: RuleBase:: RuleBaseType(1)  Result(1) Description(copy tag value) valid(true), Condition Expression(No conditions for this header rule)
[2012-11-07 16:43:38,390] 7302 0013 com.net.ux.sip TRACE (Executive.cpp:211) - processMessageRule: Processing Header rule
[2012-11-07 16:43:38,390] 7303 0012 com.net.ux.sip DEBUG (Executive.cpp:316) - processHeaderRule: Processing header Rule (copy tag value)
[2012-11-07 16:43:38,391] 7304 0011 com.net.ux.sip TRACE (Executive.cpp:546) - processHeaderRule: Processing Rule Field Copy
[2012-11-07 16:43:38,391] 7305 0010 com.net.ux.sip TRACE (SipMessage.cpp:1312) - getObjectValue: name:(3:Header) value:
[2012-11-07 16:43:38,391] 7306 000f com.net.ux.sip TRACE (SipMessage.cpp:1392) - setObjectValue: name:(19:SGUser) value:b87f9f19
[2012-11-07 16:43:38,391] 7307 000e com.net.ux.sip TRACE (Executive.cpp:218) - processMessageRule: HeaderRule executed
[2012-11-07 16:43:38,391] 7308 000d com.net.ux.sip DEBUG (HeaderRule.h:730) - debugInfo: HeaderRuleFieldRemove
[2012-11-07 16:43:38,391] 7309 000c com.net.ux.sip DEBUG (HeaderRule.h:679) - debugInfo: HeaderRuleField:: Element
[2012-11-07 16:43:38,391] 7310 000b com.net.ux.sip DEBUG (ProtocolField.h:93) - debugInfo: FieldElement:: FieldType(0) Source(header["from",1].uri.param["tag"])
[2012-11-07 16:43:38,391] 7311 000a com.net.ux.sip DEBUG (ProtocolField.h:272) - debugInfo: FieldElementObject:: Valid Object Tokens
[2012-11-07 16:43:38,391] 7312 0009 com.net.ux.sip DEBUG (HeaderRule.h:115) - debugInfo: HeaderRule:: HeaderRuleType(1)
[2012-11-07 16:43:38,391] 7313 0008 com.net.ux.sip DEBUG (RuleBase.h:123) - debugInfo: RuleBase:: RuleBaseType(1)  Result(1) Description(remove tag) valid(true), Condition Expression(No conditions for this header rule)
[2012-11-07 16:43:38,391] 7314 0007 com.net.ux.sip TRACE (Executive.cpp:211) - processMessageRule: Processing Header rule
[2012-11-07 16:43:38,391] 7315 0006 com.net.ux.sip DEBUG (Executive.cpp:316) - processHeaderRule: Processing header Rule (remove tag)
[2012-11-07 16:43:38,391] 7316 0005 com.net.ux.sip TRACE (Executive.cpp:462) - processHeaderRule: Processing Rule Field Remove
[2012-11-07 16:43:38,391] 7317 0004 com.net.ux.sip TRACE (Executive.cpp:1203) - headerFieldRemove: Executing header field remove
[2012-11-07 16:43:38,391] 7318 0003 com.net.ux.sip TRACE (Executive.cpp:1297) - checkOrdinalAll: ObjectToken:: StringIndex(from) Ordinal(1)
[2012-11-07 16:43:38,391] 7319 0002 com.net.ux.sip TRACE (Executive.cpp:1208) - headerFieldRemove: Header field remove single ordinal
[2012-11-07 16:43:38,391] 7320 0001 com.net.ux.sip TRACE (SipMessage.cpp:1573) - removeObjectValue: name:(3:Header) value:
[2012-11-07 16:43:38,404] 7321 0001 com.net.ux.sip TRACE (Executive.cpp:218) - processMessageRule: HeaderRule executed
[2012-11-07 16:43:38,404] 7322 0001 com.net.ux.sip DEBUG (HeaderRule.h:963) - debugInfo: HeaderRuleFieldAdd
[2012-11-07 16:43:38,404] 7323 0001 com.net.ux.sip DEBUG (HeaderRule.h:798) - debugInfo: HeaderRuleFieldChange mReplacement
[2012-11-07 16:43:38,404] 7324 0001 com.net.ux.sip DEBUG (ProtocolField.h:93) - debugInfo: FieldElement:: FieldType(0) Source(sguser[1])
[2012-11-07 16:43:38,404] 7325 0001 com.net.ux.sip DEBUG (ProtocolField.h:272) - debugInfo: FieldElementObject:: Valid Object Tokens
[2012-11-07 16:43:38,404] 7326 0001 com.net.ux.sip DEBUG (HeaderRule.h:679) - debugInfo: HeaderRuleField:: Element
[2012-11-07 16:43:38,404] 7327 0001 com.net.ux.sip DEBUG (ProtocolField.h:93) - debugInfo: FieldElement:: FieldType(0) Source(header["from",1].param["tag"])
[2012-11-07 16:43:38,404] 7328 0001 com.net.ux.sip DEBUG (ProtocolField.h:272) - debugInfo: FieldElementObject:: Valid Object Tokens
[2012-11-07 16:43:38,405] 7329 0001 com.net.ux.sip DEBUG (HeaderRule.h:115) - debugInfo: HeaderRule:: HeaderRuleType(1)
[2012-11-07 16:43:38,405] 7330 0001 com.net.ux.sip DEBUG (RuleBase.h:123) - debugInfo: RuleBase:: RuleBaseType(1)  Result(1) Description(readd tag as header param) valid(true), Condition Expression(No conditions for this header rule)
[2012-11-07 16:43:38,405] 7331 0001 com.net.ux.sip TRACE (Executive.cpp:211) - processMessageRule: Processing Header rule
[2012-11-07 16:43:38,405] 7332 0001 com.net.ux.sip DEBUG (Executive.cpp:316) - processHeaderRule: Processing header Rule (readd tag as header param)
[2012-11-07 16:43:38,405] 7333 0001 com.net.ux.sip TRACE (Executive.cpp:508) - processHeaderRule: Processing Rule Field Add
[2012-11-07 16:43:38,405] 7334 0001 com.net.ux.sip TRACE (Executive.cpp:727) - buildField: Building fields with element count=1
[2012-11-07 16:43:38,405] 7335 0001 com.net.ux.sip TRACE (Executive.cpp:736) - buildField: Building field object
[2012-11-07 16:43:38,406] 7336 0001 com.net.ux.msc DEBUG (MscAppBL.c:150) - MODIFY_RESP_CB connID=0x01020004 cmdlvl = 0x00 result=0 reqid=0x00219d90 CmdId=0xff0d resBufLen 12 and UserDataU16Len 2 SizeofHdr 8
[2012-11-07 16:43:38,406] 7337 0001 com.net.ux.sip TRACE (SipMessage.cpp:1312) - getObjectValue: name:(19:SGUser) value:
[2012-11-07 16:43:38,406] 7338 0001 com.net.ux.msc TRACE (MscResponseMainBL.c:1792) - connID=0x01020004,CONF_DTMFOPT respBufLen 12,B4:Aft setting DTMF realy Fifo4 0x0001:0x0006
[2012-11-07 16:43:38,406] 7339 0001 com.net.ux.sip TRACE (Executive.cpp:1131) - headerFieldAdd: Executing header field add, replacement=b87f9f19
[2012-11-07 16:43:38,406] 7340 0001 com.net.ux.sip TRACE (Executive.cpp:1297) - checkOrdinalAll: ObjectToken:: StringIndex(from) Ordinal(1)
[2012-11-07 16:43:38,406] 7341 0001 com.net.ux.sip TRACE (Executive.cpp:1134) - headerFieldAdd: Header field add single ordinal
[2012-11-07 16:43:38,407] 7342 0001 com.net.ux.sip TRACE (SipMessage.cpp:1474) - addObjectValue: name:(3:Header) value:b87f9f19
[2012-11-07 16:43:38,407] 7343 0001 com.net.ux.sip TRACE (Executive.cpp:218) - processMessageRule: HeaderRule executed
[2012-11-07 16:43:38,407] 7344 0001 com.net.ux.sip TRACE (Executive.cpp:81) - Run: Message Rule (4) matched at least one message rule
[2012-11-07 16:43:38,407] 7345 0001 com.net.ux.sip DEBUG (sipSignalingGroup.cpp:794) - {SG(3) 0x277be8} ProcessTransportMessage: Protocol Repair, out of Ingress executive
[2012-11-07 16:43:38,407] 7346 0001 com.net.ux.sip DEBUG (sipSignalingGroup.cpp:1148) - {SG(3) 0x277be8} searchSessions: processing session id 1d077346843aba30. Total 2 sessions.
[2012-11-07 16:43:38,407] 7347 0001 com.net.ux.sip DEBUG (sipSignalingGroup.cpp:1163) - {SG(3) 0x277be8} searchSessions: searchSessions: Session Matched
[2012-11-07 16:43:38,407] 7348 0001 com.net.ux.sip DEBUG (CallSession.cpp:1363) - {SG(3):48 0x24bed0 0x24d398 [CID:5][1:0:3:1]} ProcessMessage: CallSession, from Transport. No client tran match; try server 0x2f9438
[2012-11-07 16:43:38,408] 7349 0001 com.net.ux.sip DEBUG (ServerTransaction.cpp:581) - ProcessRequest: ServerTransaction 24d170 called
[2012-11-07 16:43:38,408] 7350 0001 com.net.ux.sip DEBUG (ServerInviteTransaction.cpp:547) - stateMachine: ServerInviteTransaction 24d170 state(1) event(4)
[2012-11-07 16:43:38,408] 7351 0001 com.net.ux.sip DEBUG (ServerInviteTransaction.cpp:413) - stateRetransmitResponse: ServerInviteTransaction 24d170 called
[2012-11-07 16:43:38,408] 7352 0001 com.net.ux.sip.libcommon TRACE (AFEventLoop.cpp:107) - AFEventLoop::Monitor: Adding event info fd=72 for events=0x1, info=0x2ad9a8, pCBO=0x27e220
[2012-11-07 16:43:38,408] 7353 0001 com.net.ux.sip DEBUG (TransportLayer.cpp:1319) - startTransaction: Sending data if=0.
[2012-11-07 16:43:38,408] 7354 0001 com.net.ux.sip.libctl DEBUG (Socket.cpp:666) - Transmitting a packet on Socket: 14 DSCP: 40 TOS: 160 (a0)
[2012-11-07 16:43:38,410] 7355 0001 com.net.ux.msc TRACE (MscResponseMainBL.c:1087) - connID=0x01020004 CONFERENCEId=0xffffffff Async VAPI Response came for DTMFOPT
[2012-11-07 16:43:38,410] 7356 0001 com.net.ux.sip DEBUG (TransportLayer.cpp:538) - 0x24d170 sending from [0.0.0.0]:5060 to [10.1.1.90]:6162 366 bytes over 10UDP1-5060 attempt(2) (If:0) ln(1323):
[2012-11-07 16:43:38,410] 7357 0001

SIP/2.0 100 Trying
Call-ID: 1d077346843aba30
Contact: <sip:10.1.1.74:5060;transport=UDP>
Content-Length: 0
CSeq: 1 INVITE
From:  <sip:14083481112@10.1.1.74>;tag=b87f9f19
Server: NET UX 2.2.1v187 UX
Supported: replaces,update,100rel
To:  <sip:3539@10.1.1.74>;tag=a01014a-47
Via: SIP/2.0/UDP 10.1.1.90:6162;branch=z9hG4bK-d87443-840323593-1--d87443-;rport

 

 

Important Notes

When you add, modify, or remove a URI or Header Parameter, type the actual parameter name you wish to effect. In this case, the tag parameter was the desired target.

From: <sip:14083481112@10.1.1.74>;tag=b87f9f19

Figure : Add Parameter

The SIP Header feature cannot generate a new SIP packet. Only arriving or leaving SIP packets changed via the SIP Header function.

Care must be exercised when modifying incoming SIP packets, especially with respects to the TO, FROM and RURI headers. Modifying tags, IDs or any other items that define the dialogue or transactions, will likely cause calls to not complete.





rev 0.4

  • No labels