the concept is that the customer will use the originating IP address in the invite to identify the location where the phone is. This will be translated in a database to the emergency prefix for the correct emergency routing.
To achieve this, I am attempting to get the sdp header c=IN IP4 <ip address>, of the initial SIP INVITE received from the CUCM, copied out and added to the outgoing SIP INVITE.
The INVITE has the origiating IP address of the phone, once the INVITE is sent out this parameter is overwritten with the CUBE IP.
In the outgoing SIP Invite I have created a SIP header, but I have not been able to get the value c=IN IP4 <ip address> successfully copied.
my plan was to use copy list as described in this document:
Cisco Unified Border Element Fundamentals and Basic Setup, Cisco IOS Release 15M&T
Chapter on SIP Provfiles, section Copying Contents From an Incoming Header and Modifying the Outgoing Header
Is this possible?
If you manage to copy the header, is the call actually going to work? You would have the external Invite sent outside your organisation but with an internal IP address of the phone as the media end point. Can you ITSP route directly to your phones? Or do they ignore the SDP for media information and just send back to the source that they see your RTP coming from?
Hi Toni, thanks for your reply, well there is SBC‘s in front of the ITSP, which the customer manage and connect to multiple ITSP‘s. The emergency routing will be based on the IP of the phone calling which will be stripped on the SBC‘s.
The incoming SIP Profile on my CUCM facing Dial-peer, this does not seen to work.
voice class sip-profiles 410
request INVITE sdp-header Audio-Attribute copy "c=IN IP4(.*)" u10
The outgoing sip profile on the dial-peer toward the SBC,s
voice class sip-profiles 201
request INVITE peer-header sip P-Asserted-Identity copy "(.*)@" u07
request INVITE sip-header P-Asserted-Identity add "P-Asserted-Identity:"
request INVITE sip-header From copy "sip:(.*)@" u03
request INVITE sip-header Call-ID copy "@(.*)" u06
request INVITE sip-header Contact modify ":.*" ": \u07@\u06>"
request INVITE sip-header Contact modify ": @" ": <sip:\u03@"
request INVITE sip-header P-Asserted-Identity modify ":.*" ": \u07@\u06>"
request INVITE sip-header P-Asserted-Identity modify ": @" ": <sip:\u03@"
request INVITE sip-header P-Network-Info add "P-Network-Info: c=IN IP4(.*)"
request INVITE sip-header P-Network-Info modify " c=IN IP4(.*)" " c=IN IP4\u10"
request ANY sip-header Remote-Party-ID remove
request ANY sip-header Resource-Priority remove
request ANY sip-header Cisco-Guid remove
response ANY sip-header Cisco-Guid remove
request INVITE sip-header P-Preferred-Identity remove
request ANY sdp-header Audio-Attribute modify "(a=sendonly|a=inactive)" "a=sendrecv"
request ANY sdp-header Audio-Connection-Info modify "0.0.0.0" "10.0.0.69"
response ANY sdp-header Audio-Attribute modify "(a=sendonly|a=inactive)" "a=sendrecv"
response ANY sdp-header Audio-Connection-Info modify "0.0.0.0" "10.0.0.69"
Result on the outgoing sip invite is:
INVITE sip:+email@example.com:5060 SIP/2.0
Via: SIP/2.0/TCP 10.0.0.69:5060;branch=z9hG4bK750F92681
Date: Thu, 29 Aug 2019 13:39:59 GMT
Allow: INVITE, OPTIONS, BYE, CANCEL, ACK, PRACK, UPDATE, REFER, SUBSCRIBE, NOTIFY, INFO, REGISTER
CSeq: 101 INVITE
P-Network-Info: c=IN IP4
o=CiscoSystemsSIP-GW-UserAgent 1851 4787 IN IP4 10.0.0.69
c=IN IP4 10.0.0.69
m=audio 8248 RTP/AVP 8 0 18 101
c=IN IP4 10.0.0.69