Via contains the address at which the originator is expecting to receive responses to this request. Mandatory To contains a display name and a SIP URI towards which the request was originally directed. Mandatory Display names are described in RFC 2822RFC 2822 From also contains a display name and a SIP URI that indicate the originator of the request. The From also contains a tag parameter which is used for identification purposes. Mandatory Call-ID contains a globally unique identifier for this call. Mandatory CSeq or Command Sequence contains an integer and a method name. The CSeq number is incremented for each new request within a dialog and is a traditional sequence number. Mandatory Contact contains a SIP URI that represents a direct route to the originator usually composed of a username at a fully qualified domain name (FQDN). While an FQDN is preferred, many end systems do not have registered domain names, so IP addresses are permitted. The Contact header field tells other elements where to send future requests. Max-Forwards serves to limit the number of hops a request can make on the way to its destination. It consists of an integer that is decremented by one at each hop. Content-Type contains a description of the message body. Mandatory Content-Length contains an octet (byte) count of the message body. SIP Headers
SDP Messages Session description v= (protocol version) Mandatory o= (owner/creator and session identifier). Mandatory s= (session name) Mandatory t= (time the session is active) Mandatory i=* (session information) u=* (URI of description) e=* ( address) p=* (phone number) c=* (connection information - not required if included in all media) b=* (bandwidth information) z=* (time zone adjustments) k=* (encryption key) a=* (zero or more session attribute lines) r=* (zero or more repeat times)Media description m= (media name and transport address) Mandatory i=* (media title) c=* (connection information - optional if included at session-level) b=* (bandwidth information) a=* (zero or more media attribute lines)
Normal SIP Invite INVITE SIP/2.0 Via: SIP/2.0/UDP :5060;branch=z9hG4bK400fc6e6 From: " " ;tag=as42e2ecf6 To: Contact: Call-ID: CSeq: 102 INVITE User-Agent: MatrixSwitch Date: Thu, 22 Dec :38:28 GMT Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER Content-Type: application/sdp Content-Length: 268 v=0 o=root IN IP s=session c=IN IP t=0 0 m=audio RTP/AVP a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:18 G729/8000 a=rtpmap:101 telephone-event/8000 a=fmtp: a=fmtp:18 annexb=no
INVITE SIP/2.0 Via: SIP/2.0/UDP :5060;branch=z9hG4bK400fc6e6 From: " " ;tag=as42e2ecf6 To: Contact: Call-ID: CSeq: 102 INVITE User-Agent: MatrixSwitch Date: Thu, 22 Dec :38:28 GMT Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER Content-Type: application/sdp Content-Length: 268 v=0 o=root IN IP s=session c=IN IP t=0 0 m=audio RTP/AVP a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:18 G729/8000 a=rtpmap:101 telephone-event/8000 a=fmtp: a=fmtp:18 annexb=no Request Method Called Number Destination (Qwest) IP Signaling Address Breakdown of the Invite Message – INVITE Request
INVITE SIP/2.0 Via: SIP/2.0/UDP :5060;branch=z9hG4bK400fc6e6 From: " " ;tag=as42e2ecf6 To: Contact: Call-ID: CSeq: 102 INVITE User-Agent: MatrixSwitch Date: Thu, 22 Dec :38:28 GMT Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER Content-Type: application/sdp Content-Length: 268 v=0 o=root IN IP s=session c=IN IP t=0 0 m=audio RTP/AVP a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:18 G729/8000 a=rtpmap:101 telephone-event/8000 a=fmtp: a=fmtp:18 annexb=no Breakdown of the Invite Message – Via Header Via Header This is a Mandatory Header Source IP Address Signaling Port Number of the Source IP Address The Via Header is used for translation rules and Session Agent matches.
INVITE SIP/2.0 Via: SIP/2.0/UDP :5060;branch=z9hG4bK400fc6e6 From: " " ;tag=as42e2ecf6 To: Contact: Call-ID: CSeq: 102 INVITE User-Agent: MatrixSwitch Date: Thu, 22 Dec :38:28 GMT Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER Content-Type: application/sdp Content-Length: 268 v=0 o=root IN IP s=session c=IN IP t=0 0 m=audio RTP/AVP a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:18 G729/8000 a=rtpmap:101 telephone-event/8000 a=fmtp: a=fmtp:18 annexb=no Breakdown of the Invite Message – From Header From Header This is a Mandatory Header From Address This is used to make a match in the Local- Policy. Maps to the ISUP Calling Party Number Maps to the ISUP Generic Name
INVITE SIP/2.0 Via: SIP/2.0/UDP :5060;branch=z9hG4bK400fc6e6 From: " " ;tag=as42e2ecf6 To: Contact: Call-ID: CSeq: 102 INVITE User-Agent: MatrixSwitch Date: Thu, 22 Dec :38:28 GMT Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER Content-Type: application/sdp Content-Length: 268 v=0 o=root IN IP s=session c=IN IP t=0 0 m=audio RTP/AVP a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:18 G729/8000 a=rtpmap:101 telephone-event/8000 a=fmtp: a=fmtp:18 annexb=no Breakdown of the Invite Message – To Header To Header This is a Mandatory Header Destination NumberDestination (Qwest) IP Signaling Address
INVITE SIP/2.0 Via: SIP/2.0/UDP :5060;branch=z9hG4bK400fc6e6 From: " " ;tag=as42e2ecf6 To: Contact: Call-ID: CSeq: 102 INVITE User-Agent: MatrixSwitch Date: Thu, 22 Dec :38:28 GMT Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER Content-Type: application/sdp Content-Length: 268 v=0 o=root IN IP s=session c=IN IP t=0 0 m=audio RTP/AVP a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:18 G729/8000 a=rtpmap:101 telephone-event/8000 a=fmtp: a=fmtp:18 annexb=no Breakdown of the Invite Message – Contact Header Contact Header Contact Address This is used to send the reply back to the sender.
INVITE SIP/2.0 Via: SIP/2.0/UDP :5060;branch=z9hG4bK400fc6e6 From: " " ;tag=as42e2ecf6 To: Contact: Call-ID: CSeq: 102 INVITE User-Agent: MatrixSwitch Date: Thu, 22 Dec :38:28 GMT Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER Content-Type: application/sdp Content-Length: 268 v=0 o=root IN IP s=session c=IN IP t=0 0 m=audio RTP/AVP a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:18 G729/8000 a=rtpmap:101 telephone-event/8000 a=fmtp: a=fmtp:18 annexb=no Breakdown of the Invite Message – Call-ID Header Call-ID Header This is a Mandatory Header
INVITE SIP/2.0 Via: SIP/2.0/UDP :5060;branch=z9hG4bK400fc6e6 From: " " ;tag=as42e2ecf6 To: Contact: Call-ID: CSeq: 102 INVITE User-Agent: MatrixSwitch Date: Thu, 22 Dec :38:28 GMT Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER Content-Type: application/sdp Content-Length: 268 v=0 o=root IN IP s=session c=IN IP t=0 0 m=audio RTP/AVP a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:18 G729/8000 a=rtpmap:101 telephone-event/8000 a=fmtp: a=fmtp:18 annexb=no Breakdown of the Invite Message – CSeq Header Command Sequence Header This is a Mandatory Header
INVITE SIP/2.0 Via: SIP/2.0/UDP :5060;branch=z9hG4bK400fc6e6 From: " " ;tag=as42e2ecf6 To: Contact: Call-ID: CSeq: 102 INVITE User-Agent: MatrixSwitch Date: Thu, 22 Dec :38:28 GMT Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER Content-Type: application/sdp Content-Length: 268 v=0 o=root IN IP s=session c=IN IP t=0 0 m=audio RTP/AVP a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:18 G729/8000 a=rtpmap:101 telephone-event/8000 a=fmtp: a=fmtp:18 annexb=no Breakdown of the Invite Message – User-Agent Header User-Agent Header
INVITE SIP/2.0 Via: SIP/2.0/UDP :5060;branch=z9hG4bK400fc6e6 From: " " ;tag=as42e2ecf6 To: Contact: Call-ID: CSeq: 102 INVITE User-Agent: MatrixSwitch Date: Thu, 22 Dec :38:28 GMT Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER Content-Type: application/sdp Content-Length: 268 v=0 o=root IN IP s=session c=IN IP t=0 0 m=audio RTP/AVP a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:18 G729/8000 a=rtpmap:101 telephone-event/8000 a=fmtp: a=fmtp:18 annexb=no Breakdown of the Invite Message – Date Header Date Header
INVITE SIP/2.0 Via: SIP/2.0/UDP :5060;branch=z9hG4bK400fc6e6 From: " " ;tag=as42e2ecf6 To: Contact: Call-ID: CSeq: 102 INVITE User-Agent: MatrixSwitch Date: Thu, 22 Dec :38:28 GMT Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER Content-Type: application/sdp Content-Length: 268 v=0 o=root IN IP s=session c=IN IP t=0 0 m=audio RTP/AVP a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:18 G729/8000 a=rtpmap:101 telephone-event/8000 a=fmtp: a=fmtp:18 annexb=no Breakdown of the Invite Message – Allow Header Allow Header
INVITE SIP/2.0 Via: SIP/2.0/UDP :5060;branch=z9hG4bK400fc6e6 From: " " ;tag=as42e2ecf6 To: Contact: Call-ID: CSeq: 102 INVITE User-Agent: MatrixSwitch Date: Thu, 22 Dec :38:28 GMT Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER Content-Type: application/sdp Content-Length: 268 v=0 o=root IN IP s=session c=IN IP t=0 0 m=audio RTP/AVP a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:18 G729/8000 a=rtpmap:101 telephone-event/8000 a=fmtp: a=fmtp:18 annexb=no Breakdown of the Invite Message – Content-Type Header Content-Type Header This is a Mandatory Header
INVITE SIP/2.0 Via: SIP/2.0/UDP :5060;branch=z9hG4bK400fc6e6 From: " " ;tag=as42e2ecf6 To: Contact: Call-ID: CSeq: 102 INVITE User-Agent: MatrixSwitch Date: Thu, 22 Dec :38:28 GMT Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER Content-Type: application/sdp Content-Length: 268 v=0 o=root IN IP s=session c=IN IP t=0 0 m=audio RTP/AVP a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:18 G729/8000 a=rtpmap:101 telephone-event/8000 a=fmtp: a=fmtp:18 annexb=no Breakdown of the Invite Message – Content-Length Header Content-Length Header
INVITE SIP/2.0 Via: SIP/2.0/UDP :5060;branch=z9hG4bK400fc6e6 From: " " ;tag=as42e2ecf6 To: Contact: Call-ID: CSeq: 102 INVITE User-Agent: MatrixSwitch Date: Thu, 22 Dec :38:28 GMT Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER Content-Type: application/sdp Content-Length: 268 v=0 o=root IN IP s=session c=IN IP t=0 0 m=audio RTP/AVP a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:18 G729/8000 a=rtpmap:101 telephone-event/8000 a=fmtp: a=fmtp:18 annexb=no Breakdown of the Invite Message – SDP Messages This is the SDP information within the Invite
INVITE SIP/2.0 Via: SIP/2.0/UDP :5060;branch=z9hG4bK400fc6e6 From: " " ;tag=as42e2ecf6 To: Contact: Call-ID: CSeq: 102 INVITE User-Agent: MatrixSwitch Date: Thu, 22 Dec :38:28 GMT Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER Content-Type: application/sdp Content-Length: 268 v=0 o=root IN IP s=session c=IN IP t=0 0 m=audio RTP/AVP a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:18 G729/8000 a=rtpmap:101 telephone-event/8000 a=fmtp: a=fmtp:18 annexb=no Breakdown of the Invite Message – SDP Messages IP address for RTP Protocol Version Mandatory Owner Mandatory Session Name Mandatory Time the session is active Mandatory
INVITE SIP/2.0 Via: SIP/2.0/UDP :5060;branch=z9hG4bK400fc6e6 From: " " ;tag=as42e2ecf6 To: Contact: Call-ID: CSeq: 102 INVITE User-Agent: MatrixSwitch Date: Thu, 22 Dec :38:28 GMT Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER Content-Type: application/sdp Content-Length: 268 v=0 o=root IN IP s=session c=IN IP t=0 0 m=audio RTP/AVP a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:18 G729/8000 a=rtpmap:101 telephone-event/8000 a=fmtp: a=fmtp:18 annexb=no Breakdown of the Invite Message – SDP Media Message Port for RTP 101 = Telephone Event 18 = G = G.711 ALaw 0 = G.711 MuLaw m=Media Name Mandatory
INVITE SIP/2.0 Via: SIP/2.0/UDP :5060;branch=z9hG4bK400fc6e6 From: " " ;tag=as42e2ecf6 To: Contact: Call-ID: CSeq: 102 INVITE User-Agent: MatrixSwitch Date: Thu, 22 Dec :38:28 GMT Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER Content-Type: application/sdp Content-Length: 268 v=0 o=root IN IP s=session c=IN IP t=0 0 m=audio RTP/AVP a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:18 G729/8000 a=rtpmap:101 telephone-event/8000 a=fmtp: a=fmtp:18 annexb=no Breakdown of the Invite Message – SDP Media Attributes DTMF via RFC 2833 is shown as a Telephone Event (101) with values 0-16 Codecs 18 = G = G.711 ALaw 0 = G.711 MuLaw This is how G.729A (without silence suppression) is designated
How does the SIP Invite Map to an IAM? INVITE sip: SIP/2.0 f:" Kevin Hyden " ;tag=6ac1e3a4aa1f4e549ab21ea ea153ed20 m: t: CSeq:31810 INVITE v:SIP/2.0/UDP :5060;branch=z9hG4bK1e891a7df195a14ccd9df344e Max-Forwards:70 Allow:INVITE,BYE,ACK,CANCEL,PRACK,REFER,OPTIONS,REGISTER,NOTIF Y c:application/sdp Remote-Party-ID: ;party=calling;id- type=subscriber;privacy=off Anonymity: uri Proxy-Require:privacy l:124 v=0 o= IN IP s=- c=IN IP t=0 0 m=audio RTP/AVP 0 8 a=ptime:20 Called Number Generic Name Calling Party Number DOES NOT MAP TO CHARGE NUMBER (CGN)
Example of an Invite With Caller ID Blocked INVITE SIP/2.0 f:Anonymous ;tag=38fb29dc743e09a87fa0f40ce1e92906 t: CSeq:19718 INVITE v:SIP/2.0/UDP :5060;branch=z9hG4bK844bec9bcb061c035deaefe92fe1007e-0 Max-Forwards:70 Allow:INVITE,BYE,ACK,CANCEL,PRACK,REFER,OPTIONS,REGISTER,NOTIFY c:application/sdp Remote-Party-ID: ;party=calling;id- type=subscriber;privacy=full P-Asserted-Identity: Privacy: id; user Anonymity: uri Proxy-Require:privacy m: l:124 v=0 o= IN IP s=- c=IN IP t=0 0 m=audio RTP/AVP 0 8 a=ptime:20 DOES NOT MAP TO CHARGE NUMBER (CGN) Called Number Generic Name No Calling Party Number will be present in the ISUP IAM
Example of G.711 INVITE SIP/2.0 f:"Kevin Hyden" ;tag=f0af9415bfb610da4ba208f2cf39fe8e m: t: CSeq:45023 INVITE v:SIP/2.0/UDP :5060;branch=z9hG4bKcee1d96ac551c44bc1efe13065f6ff3a-0 Max-Forwards:70 Allow:INVITE,BYE,ACK,CANCEL,PRACK,REFER,OPTIONS,REGISTER,NOTIFY c:application/sdp Remote-Party-ID: ;party=calling;id-type=subscriber;privacy=off Anonymity: uri Proxy-Require:privacy l:124 v=0 o= IN IP s=- c=IN IP t=0 0 m=audio RTP/AVP 0 8 a=ptime: 20 Packet Size (this not codec dependent) Note that the Packet Size is not always specified, and is defaulted to 20ms unless otherwise noted. G.711 Mu-Law (PCMU) G.711 a-Law (PCMU)