deployment in Enterprise
UC networks
BRKUCC-2006
Tony Mulchrone
Technical Marketing Engineer
Cisco Collaboration Technology Group
Agenda
Why choose SIP for UC Trunking ?
SIP Basics Session Establishment
Session Description Protocol (SDP) Media Negotiation
Essential CUCM SIP Trunk features
Feature invocation over SIP Trunks
Large scale designs with multiple call controls and SIP Trunks
Appendix Lots of detailed information SIP headers explained, CUCM
features explained etc
3
Housekeeping
We value your feedback- don't forget to complete your online
Session Evaluation
Visit the World of Solutions and Meet the Engineer
Visit the Cisco Store to purchase your recommended readings
Please switch off your mobile phones
After the event dont forget to visit Cisco Live Virtual:
www.ciscolivevirtual.com
4
Agenda
Why choose SIP for UC Trunking ?
SIP Basics Session Establishment
Session Description Protocol (SDP) Media Negotiation
Essential CUCM SIP Trunk features
Feature invocation over SIP Trunks
Large scale designs with multiple call controls and SIP Trunks
Appendix Lots of detailed information SIP headers explained,
CUCM features explained etc
5
Why Choose SIP ?
Popularity/ Industry demand
These days, most Collaboration vendors spend their development dollars on
SIP rather than H.323 or MGCP
SIP is arguably the most common UC protocol in use by vendors and
customers today
SIP based IP PSTN is growing in popularity
Multi-protocol Interoperability challenge
Even though multi vendor SIP is not without its interop issues, SIP to SIP
interop is easier than SIP to H.323, SIP to MGCP
Cisco UC Protocol Feature Set Comparison
SIP Trunks are more feature rich than H.323 and MGCP Trunks
6
Why recommend SIP as the preferred Trunk Protocol?
Using SIP Trunks only to interconnect UC systems provides real benefits in terms of feature
support and design simplicity e.g. :
Centralized Provisioning
Centralized Call Detail Records
QSIG Tunneling
ISDN Overlap Sending
Accept Audio Codec Preferences in Received
Offer
Run On All Nodes feature 3 Active Nodes in a 1 Active Node in a
Call Manager Group Call Manager Group
10
SIP Basics User Agents
Session Initiation Protocol (SIP) is a text based signalling protocol for creating, modifying, and
terminating sessions with one or more participants (SIP is described in RFC 3261)
SIP uses a Request/Response transaction model between endpoints (User Agents)
A User Agent (UA) For example, a SIP Phone performs two roles :
A User Agent Client (UAC) which sends SIP Requests
A User Agent Server (UAS) which receives SIP Requests and returns Responses
11
SIP Basics SIP Messages - Requests
INVITE - Indicates a client is being invited to participate in a call session
ACK - Confirms that the client has received a final response to an INVITE request
BYE - Terminates a call and can be sent by either the caller or the callee
CANCEL - Cancels any pending request
OPTIONS - Queries the capabilities of servers (OPTIONS Ping)
REGISTER - Registers the address in the To header field with a SIP server (Phones only)
PRACK - Provisional Acknowledgement
SUBSCRIBE - Subscribes for an Event of Notification from the Notifier (Used for KPML & MWI)
NOTIFY - Notify the subscriber of a new Event (Used for KPML & MWI)
PUBLISH - Publishes an event to the Server
INFO - Sends mid-session information that does not modify the session state
UPDATE - Modifies the state of a session before a final response is received
MESSAGE - Transports instant messages using SIP (XMPP more commonly used for IM)
REFER - Asks recipient to issue a SIP Request (Call Transfer) 12
SIP Basics SIP Messages - Responses
Response Categories
Provisional (1xx): Request received and being processed (Unreliable not ACKed)
Success (2xx): The action was successfully received, understood, and accepted.
Redirection (3xx): Further action needs to be taken to complete the request.
Client Error (4xx): The request contains bad syntax or cannot be fulfilled at the server.
Server Error (5xx): The server failed to fulfil an apparently valid request.
Global Failure (6xx): The request cannot be fulfilled at any server.
Register 1001@10.1.1.1
INVITE 2002 Register 2002@10.2.2.2
INVITE 2002
200 OK Record 200 OK
Route
Proxy
UAS UAC
BYE BYE
Proxy
Registrar BYE UAS UAC
RTP Media
Proxies are designed to be mostly transparent to UAs (e.g. Can not terminate a call). Proxy servers
can only change messages in specific and limited ways (e.g. Can not change call media info (e.g. 14
CUCM - B2BUA
UAS UAS
UAC UAC
Control, Codec negotiation, interoperability with H323, MGCP and SIP, CTI etc.
CUCM : Line Side and Trunk Side SIP
Register CUCM - B2BUA CUCM - B2BUA
Register
Line Side SIP is more feature rich and generally more proprietary than Trunk Side SIP
Line Side SIP needs to support an extensive set of device features e.g.
Phone/Device Control : Registration, Reset / Restart; CUCM failover and fall back, Call Preservation
during CUCM failover, Erase Config, Apply Config, Send Firmware Load ID and Software version
information, On Hook/Off Hook status notification, CTI interactions, Shared Line interactions, Phone
display commands etc etc
Trunks Side SIP needs to be relatively simple to enable interoperability between vendors, whilst
allowing call features such as hold/ resume, transfer to be invoked
16
17
SIP Basics Typical Call Set Up
SIP Trunk Message exchange The INVITE Request
SIP Trunk
INVITE sip:1001@10.10.199.250:5060
10.10.199.251 10.10.199.250
2002 1001
18
SIP Message Headers INVITE Request with Headers
INVITE sip:1001@10.10.199.250:5060 SIP/2.0 ------------------------------------ Request INVITE to 1001
Via: SIP/2.0/TCP 10.10.199.251:5060;branch=z9hG4bK3395a5cdb
From: <sip:2002@10.10.199.251>;tag=1b1993ff-121d-4616-8dc5-353990242dfe-32552697
To: <sip:1001@10.10.199.250>
Date: Wed, 18 Feb 2015 18:37:57 GMT
Call-ID: 8fe4f600-b7c13785-3-fbc712ac@10.10.199.251
Supported: timer,resource-priority,replaces
Min-SE: 1800
User-Agent: Cisco-CUCM8.0
Allow: INVITE, OPTIONS, INFO, BYE, CANCEL, ACK, PRACK, UPDATE, REFER.. SIP Message
CSeq: 101 INVITE
Contact: <sip:2002@10.10.199.251:5060;transport=tcp> Headers
Expires: 180 Some Mandatory
Allow-Events: presence, kpml
Supported: X-cisco-srtp-fallback Some Optional
Supported: Geolocation
Call-Info: <sip:10.10.199.251:5060>;method="NOTIFY;Event=telephone-event;Duration=500"
Cisco-Guid: 2414147072-3082893189-0000000002-4224127660
Session-Expires: 1800
P-Asserted-Identity: <sip:2002@10.10.199.251>
Remote-Party-ID: <sip:2002@10.10.199.251>;party=calling;screen=yes;privacy=off
Max-Forwards: 70
19
Content-Length: 0
SIP Messages INVITE with Headers re-grouped (1 of 3)
Request /Header Request Header Content Category
INVITE sip:1001@10.10.199.250:5060 SIP/2.0 Route and
Via: SIP/2.0/TCP 10.10.199.251:5060;branch=z9hG4bK3395a5cdb Transaction
CSeq: 101 INVITE related
headers
20
See Appendix for detailed descriptions and CUCM related configuration
SIP Messages INVITE with Headers re-grouped (2 of 3)
Request Header Request Header Content Category
Supported: timer,resource-priority,replaces Timer related
Session-Expires: 1800 headers
Min-SE: 1800
Expires: 180
Allow: INVITE, OPTIONS, INFO, BYE, CANCEL, ACK, PRACK, UPDATE, REFER, Methods and
SUBSCRIBE, NOTIFY Events
Allow-Events: presence, kpml
SME Node
crash
SME
Cluster
Media
22
See Appendix for detailed descriptions and CUCM related configuration
SIP Messages INVITE with Headers re-grouped (3 of 3)
Request Header Request Header Content Category
Date: Wed, 18 Feb 2015 18:37:57 GMT Other
Max-Forwards: 70 headers
Call-Info: <sip:10.10.199.251:5060>;method="NOTIFY;Event=telephone-
event;Duration=500"
Content-Length 0
23
See Appendix for detailed descriptions and CUCM related configuration
SIP Basics Typical Call Set Up
SIP Trunk Message exchange The INVITE Request
SIP Trunk
INVITE sip:1001@10.10.199.250:5060
100 Trying
10.10.199.251 10.10.199.250
2002 1001
24
SIP Basics Typical Call Set Up
SIP Trunk Message exchange The Ringing Response
SIP Trunk
INVITE
100 Trying
180 Ringing
Caller hears
locally
generated
ringback tone
10.10.199.251 10.10.199.250
100 Trying
180 Ringing
200 OK
ACK
10.10.199.251 10.10.199.250
27
SIP Basics
SIP Message Exchange and Media Negotiation
SIP Trunk
INVITE sip:1001@10.10.199.250:5060
10.10.199.251 10.10.199.250
The media characteristics of a session are described by a series of one line fields in an SDP message.
Within an SDP message there are three main sections, these detail the session name and purpose, the
time the session is active, the media and information needed to receive the media (addresses, ports,
formats, etc.). Additional information about bandwidth usage and contact information can also be
sent.
Media negotiation using SDP is known as the Offer/ Answer model (described in RFC 3264)
Two key concepts in the Offer / Answer model are the Early Offer and Delayed Offer
29
SIP Trunk Signaling and Media Negotiation
The Offer/Answer model - SIP Early Offer
Information about the calling devices media characteristics are sent with its initial SIP INVITE message
The media characteristics are contained in the Session Description Protocol (SDP) body sent with the
SIP INVITE The Offer in the SDP body contains the IP Address, UDP Port number, list of codecs etc.
supported by the calling device
The called device selects which of the offered codecs it wishes to use for the call and returns it in its
Answer in the SDP body of a SIP response The Answer also contains the IP address and UDP port
number etc of the called device
Once the Answer has been received two way media can be established
Early Offer is widely used (particularly by Service Providers.)
INVITE with SDP (Offer) INVITE with SDP (Offer)
One Way
100 Trying 100 Trying Media
180 Ringing 180 Ringing
200 OK with SDP (Answer) 200 OK with SDP (Answer)
Two Way Media
30
ACK ACK
SIP Trunk Signaling and Basic Operation
The Offer/Answer model - SIP Delayed Offer
No information about the calling devices media characteristics are sent in the initial SIP INVITE
Instead the first set of media characteristics for the call are sent by the called device in the Session
Description Protocol (SDP) body of the next reliable message (200 OK) The called devices Offer
contains its IP Address, UDP Port number, list of codecs etc.
The calling device selects which of the offered codecs it wishes to use for the call and returns its
Answer in the SDP body of a reliable SIP response (ACK) The Answer also contains the IP address
and UDP port number etc of the calling device
Delayed Offer is a mandatory part of the SIP standard (but not supported by all vendors)
Ordinarily, the Offer or Answer cannot be sent reliably in 100 Trying or 180 Ringing as 1XX messages are
unacknowledged This can be resolved using PRACK .. discussed later..
INVITE INVITE
100 Trying 100 Trying
180 Ringing 180 Ringing
200 OK with SDP (Offer) 200 OK with SDP (Offer)
ACK with SDP (Answer) ACK with SDP (Answer)
31
You can send SDP in 1XX Responses, but they are unreliable as they are not acknowledged.
By enabling PRACK (Provisional Reliable Acknowledgement), 1XX messages will be
periodically re-sent until their receipt is acknowledged by the receiver by sending a PRACK,
which is also acknowledged by the 1XX sender.
Using PRACK can reduce the number of SIP messages that need to be sent before two way
media is established. PRACK is useful in situations where long Round Trip Times between
SIP devices can cause a delay to media cut through or media clipping
32
PRACK can be enabled on the SIP Trunk Profile by setting SIPRel1XX Options
CUCM SIP Trunk Signaling SIP Early Media
Using Provisional Acknowledgement (PRACK)
Early Offer with Early Media Early Offer == Early Media
INVITE w/ SDP Supported:100rel INVITE w/ SDP Supported:100rel
100 Trying 100 Trying
183 Progress w/ SDP Require:100rel 183 Progress w/ SDP Require:100rel
34
SIP Trunk Signaling - Media negotiation for Voice calls : The SDP
Offer SIP Message Headers
..
Content-Type: application/sdp Content-Type : application/SDP
Content-Length: 337 Content-Length : 337 Bytes
v=0
o=CiscoSystemsCCM-SIP 2000 1 IN IP4 10.10.199.250
s=SIP Call SDP Message Body
c=IN IP4 10.10.199.130
Describes the media characteristics of the
t=0 0 endpoint offering the SDP
m=audio 16444 RTP/AVP 0 8 18 101
a=rtpmap:0 PCMU/8000
a=ptime:20 Includes :
a=rtpmap:8 PCMA/8000 Endpoint IP address
a=ptime:20 Codecs supported
a=rtpmap:18 G729/8000
a=ptime:20 UDP Port number for RTP
a=sendrecv In Band DTMF support details
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15 35
Some SDP lines are REQUIRED some are OPTIONAL, but all MUST appear in exactly the order described in RFC 4566
SIP Trunk Signaling - Media negotiation Voice calls :
The SDP Offer - Details
Description Attribute Content Comments
o= Origin CiscoSystemsCCM-SIP 2000 1 IN IP4 10.10.199.250 10.10.199.250 = CUCM IP Address
s= Session Name SIP Call
c= Connection Data IN IP4 10.10.199.130 Phones IP Address
t= Timing 00 Permanent Session
m= Media audio 16444 RTP/AVP 0 8 18 101 UDP Port 16444, RTP Payload Type
Descriptions Codecs : G711U, G711A, G729. DTMF
a= Attribute rtpmap:0 G711U/8000 G.711 U-Law codec offered for this call
a= Attribute rtpmap:8 G711A/8000 G.711 A-Law codec offered for this call
a= Attribute rtpmap:18 G729/8000 G.729 codec offered for this call
a= Attribute ptime:20 RTP packet sampling time (mS)
a= Attribute sendrecv Two way Audio
a= Attribute rtpmap:101 telephone-event/8000 101 DTMF RTP Payload Type number
36
a= Attribute a=fmtp:101 0-15 DTMF tones (Events 0 through 15 )
SIP Trunk Signaling - Media negotiation Voice calls :
The SDP Answer - Details
Description Attribute Content Comments
v= Version 0
o= Origin CiscoSystemsCCM-SIP 2000 1 IN IP4 10.10.199.251 10.10.199.251 = CUCM IP Address
s= Session Name SIP Call
c= Connection Data IN IP4 10.10.199.179 Phones IP Address
t= Timing 00 Permanent Session
m= Media audio 28668 RTP/AVP 18 101 UDP Port 28668, RTP 18 = RTP
Descriptions Payload Type number for G729 codec,
101 = DTMF
a= Attribute rtpmap:18 G729/8000 G.729 codec selected for this call
a= Attribute ptime:20 RTP packet sampling time (mS)
a= Attribute sendrecv Two way Audio
a= Attribute rtpmap:101 telephone-event/8000 101 DTMF RTP Payload Type number
a= Attribute a=fmtp:101 0-15 DTMF tones (Events 0 through 15 37)
SIP Trunk Signaling
Media negotiation Voice calls The Negotiated Session
10.10.199.250 10.10.199.251
10.10.199.130 10.10.199.179
RTP UDP Port 16444 RTP UDP Port 28668
G.729 codec G.729 codec
Two way Audio Two way Audio
RFC 2833 DTMF RFC 2833 DTMF
o=CiscoSystemsCCM-SIP 2000 1 IN IP4 10.10.199.250 o=CiscoSystemsCCM-SIP 2000 1 IN IP4 10.10.199.251
c=IN IP4 10.10.199.130 c=IN IP4 10.10.199.179
m=audio 16444 RTP/AVP 18 101 m=audio 28668 RTP/AVP 18 101
a=rtpmap:18 G729/8000 a=rtpmap:18 G729/8000
a=ptime:20 a=ptime:20
a=sendrecv a=sendrecv
a=rtpmap:101 telephone-event/8000 a=rtpmap:101 telephone-event/8000 38
39
SIP Trunk Signaling - Media negotiation for Video calls
Summary
Video is fundamentally different from voice in that there are many use cases where
asymmetric media flows are desirable.
For example, broadband services where the upload and download speeds are different
often by an order of magnitude.
Also because encoding video is more CPU intensive than decoding video - Video endpoints
can typically decode at a higher resolution than they can encode.
Because of the need to support asymmetric video streams the video codec capabilities
sent in an SDP Offer and Answer should be considered to be the receive capabilities of the
respective endpoints rather than the negotiated capabilities in common with both devices
40
SIP Trunk Signaling - Video calls
SDP Offer Abridged Showing Video details
v=0
o=CiscoSystemsCCM-SIP 161095 1 IN IP4 10.58.9.6
s=SIP Call SDP Session
b=TIAS:6000000 attributes
t=0 0
10.10.199.250 10.10.199.251
10.58.9.86 10.58.9.222
Audio RTP UDP Port 16444 Audio RTP UDP Port 2346
MP4A-LATM Audio codec MP4A-LATM Audio codec
RFC 2833 DTMF Audio RFC 2833 DTMF
Video RTP UDP Port 16446 Video RTP UDP Port 2348
H.264 Video codec Main Video H.264 Video codec
Video RTP UDP Port 16448 Video RTP UDP Port 2350
H.264 Video codec Slide Video H.264 Video codec
BFCP UDP Port 5070 BFCP UDP Port 5070
Binary Floor Control
FECC UDP Port 16450 FECC UDP Port 2352
Far End Camera Control
44
45
Secure SIP Trunk Signaling and Encrypted Media
Transport Layer Security (TLS) and Secure RTP (SRTP)
SIP over TLS
SRTP
To secure both SIP signalling and related media use TLS on the SIP Trunks and
between each end point and CUCM
Once the SIP signalling path has been authenticated and encrypted, the SRTP
encryption keys are exchanged via SDP using SDES (SDP Security Descriptions
for Media Streams) see RFC 4568
46
SIP Trunk Features
SIP Trunk Security Profile Information
Incoming and Outgoing Transport Types
UDP Connectionless Uses SIP Session
Timers to determine session state
TCP Connection Oriented TCP maintains
connection state
TLS Connection Oriented Encrypted
Signaling Uses X.509 Certificates to
authenticate connections (Match incoming
Cert(s) by Subject Name(s). TLS should be
used if encrypted media (SRTP) is required
Incoming port
The Transport protocol port number CUCM
uses to listen on for inbound SIP connections
SIP Messages that the trunk will accept
Digest Authentication - Less secure than TLS (does not provide integrity or confidentiality)
For a good example of how to set up SIP TLS over CUCM SIP Trunks see :
47
https://supportforums.cisco.com/document/72956/cucm-sip-trunk-tls-configuration-and-troubleshooting
SIP TLS 1.2 Handshake Mutual TLS Client Hello
Client Hello
50
SIP TLS 1.2 Handshake Mutual TLS Server Hello
Client Hello
Server Hello
Session ID : abcd1234.wxyz
Server always selects and returns one cypher suite from the list
offered by the Client 51
SIP TLS 1.2 Handshake Mutual TLS Server Cert
Client Hello
Server Hello
Server Certificate
52
SIP TLS 1.2 Handshake Mutual TLS Server Key
Client Hello
Server Hello
Server Certificate
Server sends
Server Diffie Hellman parameter
Signed by the Servers Private Key
The Client uses the Servers Public key to authenticate the server 53
SIP TLS 1.2 Handshake Mutual TLS Client Cert
Client Hello
Server Hello
Server Certificate
Client Certificate
Client Hello
Server Hello
Server Certificate
Client Certificate
Client sends
Client Diffie Hellman parameter
Signed by the Clients Private Key 55
SIP TLS 1.2 Handshake On Prem Mutual TLS
Client Hello
Server Hello
Server Certificate
Client Certificate
SRTP
The other Endpoint choses one cipher and returns its with their encryption key in its SDP Answer
a=crypto:1 AEAD_AES_256_GCM inline:bmt4MzIzMmYxdnFyaWMds308sMwycIO23d282dGdssR5Z3g0c2k5M3Yx
57
Endpoints send all supported crypto suites - CUCM can filter crypto suites
Agenda
Why choose SIP for UC Trunking ?
SIP Basics Session Establishment
Session Description Protocol (SDP) Media Negotiation
Essential CUCM SIP Trunk features
Feature invocation over SIP Trunks
Large scale designs with multiple call controls and SIP Trunks
Appendix Lots of detailed information SIP headers explained, CUCM
features explained etc
58
Essential SIP Trunk Features
59
CUCM SIP Early Offer Using MTP Required
Pre UC 8.5 (Obsolete method)
SIP Line SIP Trunk with Early Offer
MTP
Disadvantages : MTPs support a single Audio codec only e.g. G711 or G729. The passthru codec is
not supported excluding the use of SRTP and video calls. Since the Trunks MTPs are used - The media
60
path is forced to follow the signaling path.
CUCM SIP Early Offer Insert MTP if Needed UC8.5+
SIP Profile Early Offer checkbox option : Mandatory (insert MTP if needed)
SIP Early Offer For Calls from trunks and devices that cannot
SIP Trunk SIP Trunk with Early Offer
MTP provide Early Offer information use the calling
SIP Delayed Offer
SIP Trunk with Early Offer
devices MTP resources (first) or the outbound
H323 Trunk
MTP trunks MTPs (second) to create a SIP Offer for an
H323 Slow Start
H323 Trunk SIP Trunk with Early Offer
unencrypted voice call. (SRTP and video can
subsequently be initiated by the called device)
H323 Fast Start
MGCP Trunk SIP Trunk with Early Offer Multiple codecs supported using MTP pass-
61
through codec
MGCP Gateway
CUCM 10.5+ SIP Trunks Best Effort Early Offer (No MTP Inserted)
Cisco SIP Phones
SIP Line Best Effort Early Offer SIP Trunk Early Offer sent
H323 Slow Start H323 Trunk Best Effort Early Offer SIP Trunk Delayed Offer sent
MGCP Gateway MGCP Trunk Best Effort Early Offer SIP Trunk Early Offer sent
H323 Fast Start H323 Trunk Best Effort Early Offer SIP Trunk Early Offer sent
SIP Early Offer SIP Trunk Best Effort Early Offer SIP Trunk Early Offer sent
62
MTPs are not used to create an EO If the device is not EO capable, DO sent
Summary and Guidance on CUCM SIP Trunk : Using Delayed
Offer/ Early Offer/ Best Effort Early Offer
Summary
Delayed Offer The default setting Voice, Video and Encrypted Calls supported
Early Offer using MTP Required ~Obsolete MTP used for all calls, single voice codec only
Early Offer : Mandatory (insert MTP if needed) MTPs inserted for calls from older devices e.g. 7940
and 7960 phones Voice only on initial call set up, video (N/A) and media encryption set up set up by
sending a SIP Re-INVITE
Early Offer : Best Effort (No MTP inserted) No MTPs used ( if EO cannot be sent Do sent instead,
MTP resources assigned to the Trunk can be used to address DTMF transport mismatches
General Guidance
Do not use MTP Required for Early Offer MTP is inserted for every call
If you are using UC version 10.5 or above Use Best Effort Early Offer
If you are using UC versions 8.5/ 9.X/ 10.0
Type and quantities of the phones in the CUCM cluster :
Mostly older SCCP phones (e.g. 7940s/7960s) ----------- Use Delayed Offer
63
Mostly newer Phones ------------------------------------------- Use Early Offer : Mandatory (insert MTP if needed)
Essential SIP Trunk features that simplify UC designs
Run On All Unified CM Nodes
Up to 16 Destination IP addresses
These features :
Reduce the number of configured SIP Trunks
Simplify call distribution
Simplify call routing through by taking advantage of the Route Local rule..
SIP Trunk A
SIP Trunk B
SIP Trunk A
SIP Trunk B
68
SIP Trunk Features
Audio Codec Preference Lists
Audio Codec Preference Lists simplify Dial Plan and Trunk configuration, by allowing a single SIP
Trunk and Route Pattern to be used by multiple devices that have different codecs preferences e.g.
Fax Machines (G.711), Phones (G.729). Prior to this feature, a SIP Trunk & Route Pattern(s) needed
to be configured for each codec type
An Audio Codec Preference List presents all the codec types supported by CUCM. The codec
preference order in this list can be modified and saved as a custom preference list.
69
SIP Trunk Features
Audio Codec Preference Lists - Audio Codecs Offered
The list of codecs used for codec negotiation during call set up is the subset of
codecs supported by the device and those in the codec preference list, limited
by the maximum audio bit rate for the region/ region pair.
For calls between two Unified CM clusters via SIP Trunks, Audio Codec Preference Lists allow the
codec used for a call to be selected based upon the calling and called devices codec preference.
Note Equivalent Audio Codec Preference Lists for each device type region should be configured in
each cluster to ensure that a common codec is selected for each device types, irrespective of call
direction or Trunk configuration.
73
SIP Trunk Features
Accept Audio Codec Preferences in Received Offer
Accept Audio Codec Preferences in
Received Offer
Region A Region C Region D Region E Region F
Region A-C Codec Region E-F Codec
Preference List G.729 Call Preference List
(1) G729 (1) G729
(2) G711 (2) G711
(3) G722 SME (3) G722
Phones Phones
In deployments where calls can pass through more than one Unified CM cluster, for example SME
deployments; the inter-region Audio Codec Preference List of the intermediary Unified CM cluster can over-
ride the preferred codec selection between the calling and called device. To ensure that the endpoints codec
preferences are honored as calls pass through SME, enable the SIP Profile feature Accept Audio Codec 74
Instead of using dedicated SIP Trunks to CUBE for Voice and Fax calls, a single SIP Trunk and a single inbound &
outbound Dial-Peer can be configured on CUBE for all device types. Its recommended to use the same voice
class codec preference list for both the inbound & outbound dial-peer containing the list of codecs that you
want to negotiate with the service-provider.
The order of the codecs will be dictated, first by the order received in the inbound offer and then
by the order defined under voice class codec. 75
Name and Number
Presentation and Restriction
76
Presentation/Restriction of Calling Line ID & Calling Name
From: Bob Jones" <sip:2002@10.10.199.251>
or From: Bob Jones" <sip:localhost>
or From: "Anonymous" <sip:2002@10.10.199.251>
or From: "Anonymous" <sip:localhost>
2002
Bob Jones
Applied at the Trunk Level using
P-Asserted-Identity Privacy Header
settings
If Non-Default - Overrides
Device/Line and Trunk settings
Applied using Line ID and Name Applied at the Trunk Level using Line
Presentation settings in a Translation ID and Name Presentation settings
Pattern associated with the Calling If Non-Default - Overrides 77
Search Space on the Device or Line Device/Line settings
Line/Device - Presentation/Restriction of Calling Line ID and
Calling Name
From: Bob Jones" <sip:2002@10.10.199.251>
or From: Bob Jones" <sip:localhost>
or From: "Anonymous" <sip:2002@10.10.199.251>
or From: "Anonymous" <sip:localhost>
2002
Bob Jones
78
SIP Trunk - Calling Line ID and Calling Name
Presentation/Restriction Outbound Calls
From: Bob Jones" <sip:2002@10.10.199.251>
or From: Bob Jones" <sip:localhost>
Trunk settings :
Default
Use calling device values
Allowed
RPID privacy value = Off
Restricted 79
RPID privacy value = Name/URI/Full
SIP Trunk - Calling Line ID and Name Presentation/Restriction
P Asserted Identity (PAI) SIP Privacy header value
The SIP Trunk PAI Privacy header value always overrides Device
and Trunk ID Presentation/ Restriction settings
SIP Trunk configuration :
SIP Privacy Setting
Default Privacy values taken from Trunk/ Device - Presentation/Restriction settings
None Implies Presentation Allowed
ID Presentation restricted for name and number Overrides device setting
80
ID Critical Presentation restricted Must be supported by network, or call fails
CUCM SIP Trunk Features
Outbound Calls Overwriting the Caller DN and Name
INVITE sip:1001@10.10.199.250:5060 SIP/2.0
From: Cisco Systems UK<sip:+442088241000@10.10.199.251>
P-Asserted-Identity: Bob Jones" <sip:2002@10.10.199.251>
Remote-Party-ID: "Bob Jones <sip:2002@10.10.199.251>
Contact: <sip:+442088241000@10.10.199.251:5060>
2002
Bob Jones
84
CUCM SIP Trunk Features Normalization & Transparency
SIP Trunk Normalization
SIP/SCCP SIP Trunk Normalization allows incoming and outgoing SIP
messages to be modified on their way through a CUCM
Script SIP Trunk.
SIP Trunk SIP Trunk
The Normalization feature is designed to improve
IP PSTN
interoperability between CUCM SIP Trunks and SIP based
Script
3rd Party SIP PBXs, Applications & IP PSTN services.
H323 Trunk SIP Trunk
Normalization is independent of what the SIP Trunk
Script connects to on the other side of CUCM. e.g.
MGCP Trunk SIP Trunk
IP PSTN SIP SIP Trunk calls
Skinny SIP Trunk calls
Normalization Script H.323 SIP Trunk calls
Remove display name from SIP Header
MGCP SIP Trunk calls
function fixInboundPai()
local pai = Sip.getHeader("P-Asserted-Identity")
local displayname = getDisplayName(pai) Normalization uses a scripting environment to allow
local uri = getUri(pai) customers to modify SIP messages and SDP content on a
local number = getUserPart(uri) per trunk basis.
if displayname == number 85
then Sip.modifyHeader("P-Asserted-Identity", uri)
Agenda
Why choose SIP for UC Trunking ?
SIP Basics Session Establishment
Session Description Protocol (SDP) Media Negotiation
Essential CUCM SIP Trunk features
Feature invocation over SIP Trunks
Large scale designs with multiple call controls and SIP Trunks
Appendix Lots of detailed information SIP headers explained, CUCM
features explained etc
87
CUCM SIP Trunk Call functions
Hold/Resume
88
CUCM SIP Trunk Signaling and Operation
Hold/Resume Signaling - Hold
SIP Trunk
HOLD
On receipt of a mid call INVITE without SDP the remote User Agent should 90
91
CUCM SIP Trunk Interop Feature (1) - Hold
Send send-receive SDP in mid-call INVITE
SIP Trunk
HOLD
This feature is used to address a=inactive issues with 3rd Party systems 92
HOLD
Call In Progress - Two Way Media
MTP
When the mid-call INVITE is sent CUCM inserts an MTP to anchors the media to the held device and
94
allow the holding device to disconnect its media (and optionally insert MOH)
CUCM SIP Trunk Interop Feature The Fix (2)
Send send-receive SDP in mid-call INVITE Enabled
SIP Trunk
MTP
95
CUCM SIP Trunk Call functions
Transfer
96
CUCM SIP Trunk Signaling and Operation
Transfer Call in Progress Hold Initiated
Initiate HOLD SIP Trunk
HOLD Complete
Transfer
RTP
Initiate HOLD
HOLD Complete
97
CUCM SIP Trunk Signaling and Operation
Transfer Call Transfer Target
Initiate HOLD SIP Trunk
HOLD Complete
Initiate HOLD
HOLD Complete
98
CUCM SIP Trunk Signaling and Operation
Transfer Completing the Transfer
Initiate HOLD SIP Trunk
HOLD Complete
Call Transfer
Complete Call Complete Call Complete
REFER
INVITE INVITE
202 ACCEPTED
NOTIFY (REFER active) 100 Trying 100 Trying
BYE
NOTIFY (REFER Term.) 200 OK with SDP 200 OK with SDP
ACK with SDP ACK with SDP
Initiate HOLD
HOLD Complete Note CUCM consumes REFER from the
INVITE/100/200
INVITE/100
INVITE/100/200/ACK
INVITE
Phone and sends a Re-INVITE to maintain
control of call signalling
99
RTP
CUCM SIP Trunk
Call Features explained
101
CUCM SIP Trunk Signaling and Operation
The Offer/Answer model - Ringback
INVITE INVITE
100 Trying 100 Trying
180 Ringing 180 Ringing
Caller hears
locally 200 OK with SDP (Offer) 200 OK with SDP (Offer)
generated ACK with SDP (Answer) ACK with SDP (Answer)
ringback tone
Two Way Media
If SDP is sent in a 18X message CUCM cuts through early media from far end for ringback
INVITE Supported:100rel INVITE Supported:100rel
100 Trying 100 Trying
183 Progress w/ SDP Require:100rel 183 Progress w/ SDP Require:100rel
By default, Cisco Unified Communications Manager signals the calling phone to play local
ringback if SDP is not received in the 180 or 183 response.
If SDP is included in the 180 or 183 response, instead of playing ringback locally, Cisco
Unified Communications Manager connects media, and the calling phone plays whatever
the called device is sending (such as ringback or busy signal).
If ringback is not received, the device to which you are connecting may be including SDP in
the 180 response, but it is not sending any media before the 200 OK response. In this case,
check this check box to play local ringback on the calling phone and connect the media
upon receipt of the 200 OK response
104
CUCM SIP Trunk Features
SIP Profile settings - Redirect by Application
When checked allows CUCM to apply digit analysis to the redirected contact number to :
a) Make sure that the call gets routed correctly
b) Apply a specific Calling Search Space for Calls of Service/ Call Restriction
c) Prevent DOS attack by limiting the number of redirections
d) Allow other features to be invoked while the redirection is taking place
When unchecked (default) the redirection gets handled at the SIP stack level and the above
features cannot be invoked 105
CUCM SIP Trunk Features
Redirect by Application Disabled (Default setting)
RTP
106
+15551230000
CUCM SIP Trunk Features
Redirect by Application Enabled Call Blocked
108
+15551230000
CUCM SIP Trunks
Matching inbound SIP calls to configured SIP Trunks
CUCM SIP Trunks will only accept inbound calls from a device with a source IP address
and port number that has been defined on the matching Trunk
A A
SIP Trunk 1 SIP Trunk 2
B F B F
C G C G
D H D H
E E
111
Large Scale UC Designs
With more than one SIP Trunk.
CUCM Cluster 1 CUCM Cluster 2
So far we have looked at SIP Trunk features and functions based on a single SIP Trunk
interconnecting two CUCM Clusters
Large scale designs can comprise of multiple call controls from multiple vendors, various UC
applications (Voicemail, Conferencing etc) , Session Border Controllers and Gateways for PSTN
connectivity. Ideally they will all be using SIP Trunks as this will greatly simplify the UC design and
improve interoperability.
Large scale designs need to be considered holistically, particularly when it comes to Trunk
112
Aggregation, DO/EO usage, Codecs, DTMF, Dial Plan and Call Admission Control
Large Scale UC Designs
Trunk Aggregation using Session Management Edition (SME)
PSTN
CUBE
SBCs SIP
Voicemail Conferencing
System System
Leaf Systems
SME can interconnect 1000s of UC systems using SIP Trunks and reduces the number of Trunks needed
by using a hub and spoke topology rather than full mesh. SME allows you centralizing your dial plan and
call routing rules on the SME cluster which allows you to simplify the dial plan and management of the
113
leaf UC systems
Signaling Delay In Global UC networks
UC 9.1+
SME CoW up SME < 500 mS
to 500mS CoW+
RTT
< 500 mS
Up to 500 mS between call processing nodes, Up to 500 mS between Publisher and Subscribers
Large Scale UC designs
Deploying SME clusters with no media resources
Media Resources Media Resources
Leaf Cluster
New York
Media Resources
SME
Cluster
Media Resources
Leaf Cluster
Leaf Cluster Europe
Los Angeles
Ideally, Media Resources such as MTPs, Transcoders, Music on Hold, Conferencing Resources should
never be utilized in the SME cluster as this entails hair-pinning media via the media resource
associated with the SME cluster
This design possible if the SME cluster uses of SIP Trunks only and Best Effort Early Offer Trunk
117
configuration (or for pre UC 10.5 clusters MTP-less Early Offer see Appendix for details)
Media Transparent SME clusters
SME SIP Trunks Best Effort Early Offer/ MTP-less Early Offer
Delayed Offer Delayed Offer
Media Resources Media Resources
SME
Cluster
SME Trunks use Best Effort Early Offer (or (pre UC10.5) MTP-less Early Offer)
If a Transcoder is required Inserted by Leaf cluster
If Conferencing resources are required Inserted by Leaf cluster
If MTPs for DTMF mismatch are required Inserted by Leaf cluster
118
No media resources associated with the SME SIP Trunks, IPVMS can be disabled in the SME Cluster
One Global SME cluster Clustered Over the WAN
Call Routing Route Local for SME
DC1 SME Nodes
North America
Leaf Clusters
Multiple SIP Trunks in Route Groups provide ordered selection of SME nodes.
Route List Call Distribution priority order nearest data centre 1st, second nearest data centre 2nd etc
SME CoW cluster
Single SIP Trunk with Run on all Nodes enabled pointing to all nodes in each leaf cluster 119
Route local operates in the SME cluster No inter node intra cluster call routing
Summary SIP Trunk
configuration
recommendations for
Multi-Cluster designs
120
Large Scale SIP Trunk Design Recommendations UC versions <10.5
SIP MTP-less Early Offer CUBE
IP
SIP Trunk
SIP Delayed Offer PSTN SIP DO to EO
SIP Early Offer
CUCM 8.5+
Mostly Older
Phones (7940/60s)
CUCM 8.5+
Mostly Newer CUCM 8.5+ SME
Phones
Leaf Cluster SIP ICT Trunks - Voice, Video and Encryption supported
SIP Delayed Offer/Early Offer Mandatory (insert MTP if Needed), Run on All Nodes, Multiple Destination Addresses,
OPTIONS Ping, PRACK
SME Cluster SIP ICT Trunks - Voice, Video and Encryption supported
SIP MTP-less Early Offer, Run on All Nodes, Multiple Destination Addresses, OPTIONS Ping, PRACK, No Media resources
can be assigned to Trunks
CUBE/IOS Gateway/ IP PBX SIP Trunks Typically Voice only, Video and Encryption possible
SIP Delayed Offer/Early Offer (EO commonly used), (EO by sent by the CUBE/ IOS Gateways) OPTIONS Ping, PARCK, Early
Offer usually required by Service Providers (Use CUBE SIP DO to EO) 121
Large Scale SIP Trunk Design Recommendations UC versions 10.5+
SIP Best Effort Early Offer CUBE SIP Trunk
IP
SIP Delayed Offer PSTN SIP DO to EO
SIP Early Offer
CUCM 10.5+
Leaf Cluster SIP ICT Trunks - Voice, Video and Encryption supported
SIP Best Effort Early Offer, Run on All Nodes, Multiple Destination Addresses, OPTIONS Ping, PRACK
SME Cluster SIP ICT Trunks - Voice, Video and Encryption supported
SIP Best Effort Early Offer, Run on All Nodes, Multiple Destination Addresses, OPTIONS Ping, PRACK, Media resources not
required
CUBE/IOS Gateway/ IP PBX SIP Trunks Typically Voice only, Video and Encryption possible
SIP Delayed Offer/Early Offer (EO commonly used), (EO by sent by the CUBE/ IOS Gateways) OPTIONS Ping, PRACK, Early
Offer usually required by Service Providers (Use CUBE SIP DO to EO) 122
Large Scale UC Designs
123
Large Scale UC Designs
Call Admission Control using Session Management Edition
PSTN
CUBE
SBCs SIP
Voicemail Conferencing
System System
Leaf Systems
In general SME Trunks to not placed into standard Locations for Call Admission Control
SME SIP trunks are generally placed into Phantom Locations for Locations based CAC, or Shadow
Locations for Enhanced Locations based CAC Phantom and Shadow locations do not count 124
calls/bandwidth. Using this method Call Admission Control takes place in the Leaf Cluster/ UC system
Multi Branch Leaf clusters provide Locations based CAC
ICTs in Location Phantom
Phantom Locations allow the Phantom Phantom
originating location of each ICT-CL1 ICT-CL2
call to be sent over ICTs 1 2
Phantom Phantom
SME
ICT-SME ICT-SME
Location B Location F
SIP Trunk
- 80 kbps - 80 kbps 125
Branch 1 Call Signaling Branch 2
Cluster 1 Media Cluster 2
Multi Branch Leaf clusters - Locations CAC Call Transfer
Phantom Locations allow the Phantom Phantom The originating location of the
ICT-CL1 ICT-CL2
originating location of each inbound transferred call is
1 2
call to be sent over ICTs returned to cluster 1
Phantom Phantom
ICT-SME ICT-SME
Transfer
Location B Location F
SIP Trunk
No WAN No WAN calls 126
Branch 1 Call Signaling Branch 2
calls
Cluster 1 Media Cluster 2
UC 9.0 Enhanced Locations CAC - SME and Multi Branch
E-LCAC introduces : Global Topology
Hub Leaf clusters
The concept of Links inter-connecting Hub
Locations
A B C D E F G
Sharing Topology information SME Local Locations
Link X-Hub Link Z-Hub
B/W = 256k B/W = 512k
(Locations/ Links/ Link Bandwidth)
using Location Bandwidth Manager
(LBM) Location Location Location
X Y Z
Dynamic distribution between
clusters of bandwidth usage on Links Leaf Clusters define their Locations
Shadow Shadow
between locations ICT-CL1 ICT-CL2
SME defines all Locations and Links
SME - Transparent Hub Location
Each Cluster builds a global topology
of Locations and Links SME distributes global topology
Locations can be shared information to all clusters
Shadow Shadow
Global Topology ICT-SME ICT-SME Global Topology
Hub Hub
A B C D D E F G
Deploying Applications in
Large Scale UC networks
128
Large Scale SIP Trunk Design Recommendations Applications
Cisco TelePresence
Unity Server and Conductor
Connection Conferencing
Voicemail System
System
Expressway E & C
Session
Management
Edition Cluster
Jabber MRA Client
Cisco
Cisco Unified Emergency Cisco Operator
Contact Center CER Responder IM &P Console
SIP Line
General Guidance
Applications that track user state must be connected to the leaf CUCM cluster
129
Rendezvous
Conferences
Session
Management
SIP Trunk and XML Edition SIP Trunk and XML
RPC connections Cluster RPC connections
for Ad Hoc for Ad Hoc
Conferences Conferences
Ad Hoc Conferences need a direct SIP Trunk and XML RPC connection from the leaf CUCM
Centralized Apps Expressway Mobile Remote Access & B2B
SIP Trunks for B2BUA
SIP Line for MRA clients
For Mobile Remote Access MRA clients establish a direct line side connection to their home cluster
Large Scale UC Designs
Dial Plans
132
Large Scale UC Design Dial Plan
Dial Plan Aggregation using SME Basic Principles
In the SME cluster a unique globalized dial plan should be implemented Inbound number
globalization and outbound number localization can be implemented in the SME cluster
137
URI Dialing
Inter-cluster Lookup Service (ILS) UC 9.0+
ILS runs as a CUCM service and distributes locally registered URIs to other clusters
Cluster to cluster ILS connections can be hub and spoke or full mesh
URIs are associated with a cluster route-string (label) e.g. sanjose-ca.us or london.uk.eu
URIs and their route string are stored locally, partial ILS file updates are supported
URIs from 3rd Party systems can be imported into ILS and distributed
SME Flat File
MSFT Lync 1 San Jose London MSFT Lync 1
Rowan@cisco.com Diane@cisco.com Helen@cisco.com Rowan@cisco.com
Jane@cisco.com Chris@cisco.com Greg@cisco.com Jane@cisco.com
Diane@cisco.com Bryan@cisco.com Bob@cisco.com Fran@cisco.com Bryan@cisco.com Helen@cisco.com
Alicia@cisco.com Anne@cisco.com Eric@cisco.com Alicia@cisco.com
Bob@cisco.com Fran@cisco.com
London Avaya FR Avaya FR San Jose
Helen@cisco.com +33666035542 Diane@cisco.com
+33666035542 +14089024567
+442088244567 +33467678921 +33467678921
+33453567619 Bob@cisco.com 140
Fran@cisco.com +33453567619
+442088241234 +33677687297 +33677687297 +14089021234
+14089021234 +442088241XXX +1408902XXXX +442088241234
Global Dial Plan Replication Number and URI Configuration
Number Mask masks Line DN
Alternate Number product of Line
DN and Number Mask 1XXXXX
141
Global Dial Plan Replication Number Pattern Configuration
Pattern Type :
Enterprise Alternate Number (these
patterns can also be an internal 164
number pattern) or
E.164 Number Pattern (e.g. PSTN
number ranges)
PSTN failover :
Use pattern as is, or
Strip digits and/or Prepend digits
144
GDPR vs SME
or
GDPR and SME
145
Large Scale UC design - GDPR vs SME
GDPR Only
GDPR uses ILS to advertise a clusters URIs and numbers to every other cluster
One SIP Route pattern is required per remote cluster
Each cluster must create and manage a SIP Trunk to every other cluster
ILS Toronto
SIP
7 clusters using GDPR Boston
San Jose
6 SIP Trunks per cluster
6+ SIP Route patterns per
cluster
Seattle Chicago
SME Only Large Scale UC design - GDPR vs SME
Global Dial Plan required on the SME cluster
Many Route Patterns required in SME, one for each unique number range
Each CUCM cluster must create and manage a single SIP Trunk to the SME cluster
At best - one default route to SME on each Leaf CUCM cluster
SME Toronto
SIP
7 CUCM clusters
+ 1 SME cluster San Jose Boston
Seattle Chicago
Large Scale UC design - GDPR and SME
Use GDPR and ILS to advertise URIs & numbers to every CUCM cluster and the SME cluster
Greatly simplified dial plan on the SME cluster - One Route Pattern for each remote CUCM
cluster rather than per number range
A single SIP Trunk between each CUCM cluster and the SME cluster
SIP
7 CUCM clusters
+ 1 SME cluster San Jose Boston
Seattle Chicago
Summary and key take away points
Use SIP Trunking
Run On All Nodes, Multiple Destination addresses, Options PING, PRACK
Use UC version 10.5+ and Best Effort Early Offer
Combine SME and ILS/GDPR to simplify dial plan and trunk design
Design your architecture so that Media Resources are not required in the SME
cluster
If possible avoid transcoder and MTP usage in general (By using common
codecs and DTMF methods)
149
Thank you
150
Agenda
Why choose SIP for UC Trunking ?
SIP Basics Session Establishment
Session Description Protocol (SDP) Media Negotiation
Essential CUCM SIP Trunk features
Feature invocation over SIP Trunks
Large scale designs with multiple call controls and SIP Trunks
Appendix Lots of detailed information SIP headers explained, CUCM
features explained etc
151
Deep down into SIP
152
SIP Basics Typical Call Set Up
SIP Message exchange
SIP Trunk
INVITE
100 Trying
180 Ringing
200 OK
ACK
10.10.199.251 10.10.199.250
155
SIP Messages INVITE with Headers re-grouped (1 of 3)
Request /Header Request Header Content Category
INVITE sip:1001@10.10.199.250:5060 SIP/2.0 Route and
Via: SIP/2.0/TCP 10.10.199.251:5060;branch=z9hG4bK3395a5cdb Transaction
CSeq: 101 INVITE related
headers
156
SIP Messages INVITE with Headers re-grouped (2 of 3)
Request Header Request Header Content Category
Supported: timer,resource-priority,replaces Timer related
Session-Expires: 1800 headers
Min-SE: 1800
Expires: 180
Allow: INVITE, OPTIONS, INFO, BYE, CANCEL, ACK, PRACK, UPDATE, REFER, Methods and
SUBSCRIBE, NOTIFY Events
Allow-Events: presence, kpml
Cisco-Guid: 2414147072-3082893189-0000000002-4224127660
SIP Messages INVITE with Headers re-grouped (3 of 3)
Request Header Request Header Content Category
Date: Wed, 18 Feb 2015 18:37:57 GMT Other
Max-Forwards: 70 headers
Call-Info: <sip:10.10.199.251:5060>;method="NOTIFY;Event=telephone-
event;Duration=500"
Content-Length 0
158
SIP Request Line :
INVITE
159
SIP INVITE Request Line
Request Request Header Content
INVITE sip:1001@10.10.199.250:5060 SIP/2.0
SIP URI content sip:user@host:port-number Comments
User 1001 Number /Name
The Called User
Host 10.10.199.250 IP Address/ Hostname/ Domain Name
Configured SIP Trunk Destination
Port 5060 TCP/UDP Port Number
SIP Protocol Version 2.0 Incoming and Outgoing Transport Type
Configurable via SIP Trunk Security Profile
How CUCM configuration affects the contents of the INVITE Request :
CUCM SIP Trunk Request Line/ SIP URI/ SIP Message Header content
Destination SIP Message Header
IP Address Used INVITE Request Line sip:1001@10.10.199.250:5060 SIP/2.0
IP Address Used To : Header <sip:1001@10.10.199.250>
FQDN/DNS SRV Used INVITE Request Line sip:1001@cisco.com:5060 SIP/2.0
FQDN/DNS SRV Used To : Header <sip:1001@cisco.com>
FQDN /DNS SRV resolved to an IP address which is used at the IP Layer 161
SIP Header Categories :
Route and Transaction related
headers
Request /Header Request/ Message Header Content
INVITE sip:1001@10.10.199.250:5060 SIP/2.0
Via: SIP/2.0/TCP 10.10.199.251:5060;branch=z9hG4bK3395a5cdb
CSeq: 101 INVITE
162
SIP Sessions : Transactions and Dialogs
A Transaction :
An exchange of messages between User Agents to perform a specific task e.g. Call set up, or
call tear down. A transaction consists of one request and all responses to that request.
A Dialog :
A series of one, or more transactions that take place between two User Agents
RTP Media
Response 200 OK
163
Transaction 102
SIP INVITE - Route and Transaction related Headers :
Via Header
A Mandatory Header in Requests and Responses
The Via header is used to record the SIP route taken by a Request and to route a Response back to the
originator. A User Agent generating a Request records its own address in a Via header field. Multiple
Via Headers can be used to record the route of a Request through several SIP switches
Exactly the same header is used by both client and server User Agents for this transaction
VIA Header content SIP/2.0/TCP 10.10.199.251:5060;branch=z9hG4bK3395a5cdb
SIP Protocol Version 2.0
Transport Protocol TCP Configurable :TCP/UDP/TLS
Incoming and Outgoing Transport Type
Configurable via SIP Trunk Security Profile
User Agent 10.10.199.251 Address of CUCM generating the SIP Request
(As a B2BUA, CUCM is the UA in this transaction)
Incoming Port Number 5060 Incoming TCP/UDP /TLS Port Number
Configurable via SIP Trunk Security Profile
164
The sequence number and method remain the same for each transaction in a dialog
The method matches the Request for the transaction
165
SIP Header Categories :
Identity and Dialog related headers
SIP Message Header Message Header Content
From: <sip:2002@10.10.199.251>;tag=1b1993ff-121d-4616-8dc5-353990242dfe-
32552697
To: <sip:1001@10.10.199.250>
Call-ID: 8fe4f600-b7c13785-3-fbc712ac@10.10.199.251
P-Asserted-Identity: <sip:2002@10.10.199.251>
Remote-Party-ID: <sip:2002@10.10.199.251>;party=calling;screen=yes;privacy=off
Contact: <sip:2002@10.10.199.251:5060;transport=tcp>
166
SIP INVITE From and To Headers
Request Request URI Content
INVITE sip:1001@10.10.199.250:5060 SIP/2.0
The same Call-ID is used in all SIP messages (Requests and Responses) for all transactions
within this dialog
P-Asserted Identity which additionally supports Authentication, supersedes Remote Party ID.
P-Asserted Identity Privacy Header values can also override Device and Trunk settings for
Name and/or Number presentation and restriction 169
SIP INVITE : P-Asserted-Identity - Related Headers
SIP Message Header Message Header Content /values
From: Bob Jones <sip:2002@10.10.199.251>
P-Asserted-Identity: Bob Jones <sip:2002@10.10.199.251>
P-Preferred-Identity: Bob Jones <sip:2002@10.10.199.251>
Privacy: None/ ID/ ID Critical
The CUCM SIP Trunk can be configured to send User Identity in either the :
The Privacy header can be configured to indicate whether or not privacy (Identity delivery/
Identity blocking in the From header) is invoked for this call.
170
CUCM Config : P-Asserted-Identity Asserted Type
2002
Bob Jones Default = P-Asserted-Identity: Bob Jones <sip:2002@10.10.199.251>
P-Preferred Identity
P-Asserted Identity
Digest Auth Challenge from SIP Realm B
Digest Authentication Response
Remote-Party-ID: <sip:2002@10.10.199.251>;party=calling;screen=yes;privacy=off
If this box is checked, CUCM will relay an alphanumeric hostname of a caller to the called
endpoint in SIP Identity header information.
If the call is originating from a line device on the CUCM cluster, and is being routed over a
SIP trunk then the configured value for the Enterprise Parameter Organization Top-Level
Domain will be used in the Identity headers. e.g. cisco.com
SIP Message Header Message Header Content Content with Use FQDN in SIP Requests
From: <sip:2002@10.10.199.251> <sip:2002@cisco.com>
P-Asserted-Identity: <sip:2002@10.10.199.251> <sip:2002@cisco.com>
Remote-Party-ID: <sip:2002@10.10.199.251> <sip:2002@cisco.com>
Contact: <sip:2002@10.10.199.251:5060> <sip:2002@cisco.com> 175
Number and Name Presentation information
Header Priority : From/ RPID/ PAI
2002
Bob Jones From: Jim Smith <sip:1001@10.10.199.251>
Displayed
P-Asserted-Identity: Bob Jones <sip:2002@10.10.199.251> Caller
Identity
Remote-Party-ID: May Brown <sip:3003@10.10.199.251> ?
For Calling User Identity and Connected User Identity Presentation. The presented
User Identity is taken from Identity Headers in the following priority order :
1) PAI header
2) RPID header
3) From header 176
Strict From URI presentation : Process Identity using the From header only
Strict Identity Headers : Process Identity using the PAI and RPID Identity headers
177
Name and Number
Presentation and Restriction
SIP Message Header Message Header Content
From: <sip:2002@10.10.199.251>;tag=1b1993ff-121d-4616-8dc5-353990242dfe-32552697
P-Asserted-Identity: <sip:2002@10.10.199.251>
Privacy: None
Remote-Party-ID: <sip:2002@10.10.199.251>;party=calling;screen=yes;privacy=off
178
Presentation/Restriction of Calling Line ID & Calling Name
From: Bob Jones" <sip:2002@10.10.199.251>
or From: Bob Jones" <sip:localhost>
or From: "Anonymous" <sip:2002@10.10.199.251>
or From: "Anonymous" <sip:localhost>
2002
Bob Jones
Applied at the Trunk Level using
P-Asserted-Identity Privacy Header
settings
If Non-Default - Overrides
Device/Line and Trunk settings
Applied using Line ID and Name Applied at the Trunk Level using Line
Presentation settings in a Translation ID and Name Presentation settings
Pattern associated with the Calling If Non-Default - Overrides 179
Search Space on the Device or Line Device/Line settings
Line/Device - Presentation/Restriction of Calling Line
ID and Calling Name
From: Bob Jones" <sip:2002@10.10.199.251>
or From: Bob Jones" <sip:localhost>
or From: "Anonymous" <sip:2002@10.10.199.251>
or From: "Anonymous" <sip:localhost>
2002
Bob Jones
180
SIP Trunk - Calling Line ID and Calling Name
Presentation/Restriction Outbound Calls
From: Bob Jones" <sip:2002@10.10.199.251>
or From: Bob Jones" <sip:localhost>
Trunk settings :
Default
Use calling device values
Allowed
RPID privacy value = Off
Restricted 181
RPID privacy value = Name/URI/Full
SIP Trunk - Connected Line ID and Connected Name
Presentation/Restriction Inbound Calls
Remote-Party-ID: Jim Brown"sip:1001@10.10.199.250; privacy=Off
or Remote-Party-ID: Jim Brown"sip:1001@10.10.199.250; privacy=Name
This feature is based on Identity Header Privacy settings, not the values in the From Header
i.e. If the Users identity is anonymized in the From header and PAI Privacy = None, or RPID Privacy = Off
The Call is not Rejected The Call Proceeds
x 183
CUCM SIP Trunk Features
Outbound Calls Overwriting the Caller DN and Name
INVITE sip:1001@10.10.199.250:5060 SIP/2.0
From: Cisco Systems UK<sip:+442088241000@10.10.199.251>
P-Asserted-Identity: Bob Jones" <sip:2002@10.10.199.251>
Remote-Party-ID: "Bob Jones <sip:2002@10.10.199.251>
Contact: <sip:+442088241000@10.10.199.251:5060>
2002 2002
Bob Jones Bob Jones
London Office
Directory Number = 2002
Name = Bob Jones For Phones in Edinburgh
and Caller Name. Associate this profile with the Cisco Systems
Contact: sip:2002@10.10.199.251:5060;transport=tcp
In a Request - The contact field contains the address at which the Calling UA can be reached
In a Response - The contact field contains the address at which the Called UA can be reached
With CUCM a B2BUA The address in the contact header field is the address of the CUCM
server, not the phone
187
SIP Header Categories :
Timer related headers
Request Header Request Header Content
Supported: timer,resource-priority,replaces
Session-Expires: 1800
Min-SE: 1800
Expires: 180
188
SIP INVITE Supported Header
Request Request URI Content
INVITE sip:1001@10.10.199.250:5060 SIP/2.0
Request Header Request Header Content
Supported: timer,resource-priority,replaces
new SIP dialogue. Can be used in attended Transfers, Call Pick up etc.
Related CUCM Configuration : Supported Header
Supported: timer, resource-priority, replaces
This header indicates support only. i.e. The Trunk will not accept the replaces
and resource-priority options if the corresponding Trunk settings have not been
configured/ enabled 190
SIP INVITE Session Expires and Min-SE Headers
Request Request URI Content
INVITE sip:1001@10.10.199.250:5060 SIP/2.0
Request Header Request Header Content
Session-Expires 1800
Min-SE 1800
Optional Headers - Support indicated via the Supported: timer header option
Session-Expires header used with the Minimum-Session-Expires (Min-SE) header as a session keep-
alive mechanism
Called UA responds with a Session-Expires header in a 2XX message and refresher parameter to 191
192
SIP Session Expires and Min-SE Headers - Operation
During call set up - Session timers and Session Refresh methods are
negotiated and agreed on each SIP Trunk. Once the call is established the
session on each Trunk periodically refreshed. If no session refresh request or
response is received the UA sends a BYE to terminate the session
SME
Node
crash
SME
Cluster
Media
193
SIP INVITE Expires Header
Request Request URI Content
INVITE sip:1001@10.10.199.250:5060 SIP/2.0
Request Header Request Header Content
Expires: 180
Optional Header in INVITE Requests
The Expires header field gives the relative time that the message (INVITE in this case) remains valid in
seconds. Used as the primary no response timeout timer for SIP INVITE messages
If CUCM has not received a final response for the INVITE before this timer expires, CUCM will retry
the SIP INVITE up to the configured retry count (6) and if no response cancel the call.
195
SIP INVITE Allow Header
Request Request URI Content
INVITE sip:1001@10.10.199.250:5060 SIP/2.0
Request Header Request Header Content
Allow: INVITE, OPTIONS, INFO, BYE, CANCEL, ACK, PRACK, UPDATE, REFER,
SUBSCRIBE, NOTIFY
Optional Header - Lists the set of methods supported by the UA sending the message
Note Although supported To be used, some methods also need to be enabled on the SIP
Trunk e.g. PRACK, Accept Presence Subscription, Accept Unsolicited NOTIFY etc
196
SIP INVITE - Allow-Events Header
Request Request URI Content
INVITE sip:1001@10.10.199.250:5060 SIP/2.0
Request Header Request Header Content
Allow-Events presence, kpml
Optional Header
A UA sending an "Allow-Events" header is advertising that it can process SUBSCRIBE
requests and generate NOTIFY requests for all of the event packages listed in that header.
In the above case : Presence and KPML (Out of Band DTMF)
Default = No Preference Trunk supports either RFC 2833 or OOB DTMF UA capabilities sent
RFC 2833 Will override Allow-Events values from UA 197
198
SIP INVITE Supported Header
Request Request URI Content
INVITE sip:1001@10.10.199.250:5060 SIP/2.0
Request Header Request Header Content
Supported: X-cisco-srtp-fallback
Optional Header
199
SIP INVITE Supported Header
Request Request URI Content
INVITE sip:1001@10.10.199.250:5060 SIP/2.0
Request Header Request Header Content
Supported: Geolocation
Optional Header
Geolocation A standardized method to convey geographical location information from one SIP
entity to another SIP entity. Configurable on CUCM SIP Trunks Used for Logical Partitioning
Supported but needs to be configured on the SIP Trunk to be used
200
SIP INVITE Call-Info Header
Request Request URI Content
INVITE sip:1001@10.10.199.250:5060 SIP/2.0
Request Header Request Header Content
Call-Info: <sip:10.10.199.251:5060>;method="NOTIFY;Event=telephone-
event;Duration=500"
The Call-Info header field provides additional information about the caller or callee, depending on
whether it is found in a request or response. (In the above example - The Calling UA)
Optional Header - Contains information about the client User Agent originating the request
202
SIP INVITE
Cisco GUID Header Globally Unique Identifier
Request Request URI Content
INVITE sip:1001@10.10.199.250:5060 SIP/2.0
Request Header Request Header Content
Cisco-Guid: 2414147072-3082893189-0000000002-4224127660
Proprietary Header
Uniquely identifies the call on this Trunk
Typically used in INVITE messages
Maps to the Incoming/ Outgoing ProtocolCallRef in CUCM Call Detail Records
Note : Trunk to Trunk calls on SME have different GUIDs for inbound and outbound calls
203
SIP INVITE Date Header
Request Request URI Content
INVITE sip:1001@10.10.199.250:5060 SIP/2.0
Request Header Request Header Content
Date: Wed, 18 Feb 2015 18:37:57 GMT
An Optional Header
Date and time the Request or Response sent
Greenwich Mean Time (GMT) only
204
SIP INVITE : Max-Forwards Header
Request Request URI Content
INVITE sip:1001@10.10.199.250:5060 SIP/2.0
Request Header Request Header Content
Max-Forwards: 70
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. If the Max-
Forwards value reaches 0 before the request reaches its destination, it will be rejected with a
483(Too Many Hops) error response. Can be used for loop detection
205
SIP INVITE : Content-Length Header
Request Request URI Content
INVITE sip:1001@10.10.199.250:5060 SIP/2.0
Request Header Request Header Content
Content-Length: 0
The Content-Length header indicates the size of the message-body sent to the recipient in
decimal number of bytes.
Message-Body For example, the Session Description Protocol (SDP) message body, which if
present would describe the media characteristics supported by the sender. The message body is
appended after the Content-Length header.
206
Deep down into SIP
207
SIP Basics Typical call set-up SIP Message exchange
SIP Trunk
INVITE
100 Trying
180 Ringing
200 OK
ACK
10.10.199.251 10.10.199.250
211
SIP 180 Ringing Response
Via Header
Response/Header Response Header Content
SIP/2.0 180 Ringing
Via: SIP/2.0/TCP 10.10.199.251:5060;branch=z9hG4bK3395a5cdb
A Mandatory Header in Requests and Responses
SIP/2.0 SIP Protocol Version / TCP Transport Protocol
10.10.199.251 IP Address of CUCM generating the Request
5060 TCP Port number for SIP signalling
Branch Unique Identifier for this transaction
This Via header is used by both client and server User Agents for this transaction
Note - This Via Header is exactly the same as that sent in the INVITE and remains the same for all
messages in this transaction
The Via header is used to record the SIP route taken by a Request and to route a Response back to
the originator. A UA generating a Request records its own address in a Via header field. Multiple Via212
Headers can be used to record the route through several SIP switches
SIP 180 Ringing Response
Command Sequence Header
Response /Header Response Header Content
SIP/2.0 180 Ringing
Via: SIP/2.0/TCP 10.10.199.251:5060;branch=z9hG4bK3395a5cdb
CSeq: 101 INVITE
The sequence number and method remain the same for each transaction in a dialog
The method matches the Request for the transaction
213
SIP 180 Ringing Response
Identity and Dialog related headers
SIP Message Header Message Header Content
From: <sip:2002@10.10.199.251>;tag=1b1993ff-121d-4616-8dc5-353990242dfe-32552697
To: <sip:1001@10.10.199.250>;tag=abee6e2b-75b0-4537-80f3-7a3a37d0fa55-32557664
Call-ID: 8fe4f600-b7c13785-3-fbc712ac@10.10.199.251
P-Asserted-Identity: <sip:1001@10.10.199.250>
Remote-Party-ID: <sip:1001@10.10.199.250>;party=calling;screen=yes;privacy=off
Contact: <sip:1001@10.10.199.250:5060;transport=tcp>
214
180 Ringing Response: From Header and To Header
Response/Header Response Header Content
SIP/2.0 180 Ringing
From: <sip:2002@10.10.199.251>;tag=1b1993ff-121d-4616-8dc5-353990242dfe-32552697
To: <sip:1001@10.10.199.250>;tag=abee6e2b-75b0-4537-80f3-7a3a37d0fa55-32557664
The From and To tags are used with the Call ID to uniquely identify a dialog between two UAs
Note : The To and From header fields are not reversed in the Response message as one might
expect them to be. This is because the To and From header fields in SIP are defined to indicate
the direction of the request, not the direction of the message
215
SIP 180 Ringing Response: Call-ID Header
The same Call-ID is used in all messages (Requests and Responses) for all transactions
within this dialog
216
SIP 180 Ringing Response: Identity Headers
Response /Header Response Header Content
SIP/2.0 180 Ringing
P-Asserted-Identity: <sip:1001@10.10.199.250>
Remote-Party-ID: <sip:1001@10.10.199.250>;party=calling;screen=yes;privacy=off
A Contact header field value can contain a display name, a URI with URI parameters, and
header parameters
In a Request The contact field contains the address at which the calling UA can be reached
In a Response - The contact field contains the address at which the called UA can be reached
With CUCM a B2BUA The address in the contact header field is the address of the CUCM
server, not the phone
218
SIP 180 Ringing Response
Methods and Events supported
219
SIP 180 Ringing Response: Allow Header
Response/Header Response Header Content
SIP/2.0 180 Ringing
Allow: INVITE, OPTIONS, INFO, BYE, CANCEL, ACK, PRACK, UPDATE, REFER, SUBSCRIBE, NOTIFY
Optional Header
Lists the set of methods supported by the UA sending the message
Note Although supported To be used, some methods also need to be enabled on the SIP
Trunk e.g. PRACK, Accept Presence Subscription, Accept Unsolicited NOTIFY etc
220
SIP 180 Ringing Response: Allow-Events Header
Response/Header Response Header Content
SIP/2.0 180 Ringing
Allow-Events: presence
Optional Header
A UA sending an "Allow-Events" header is advertising that it can process SUBSCRIBE
requests and generate NOTIFY requests for all of the event packages listed in the header.
In this Response : Presence
221
SIP 180 Ringing Response
Cisco and other headers
Request Header Request Header Content
Supported: X-cisco-srtp-fallback
Supported: Geolocation
Call-Info: <sip:10.10.199.251:5060>;method="NOTIFY;Event=telephone-event;Duration=500"
Date: Wed, 18 Feb 2015 18:37:57 GMT
Content-Length: 0
222
SIP 180 Ringing Response: Supported Headers
Response /Header Response Header Content
SIP/2.0 180 Ringing
Supported: X-cisco-srtp-fallback
Supported: Geolocation
Optional Headers :
X-Cisco-srtp fallback proprietary header (can be ignored by other vendors)
Allows an offered SRTP session to fall back to RTP if not supported by both UAs
Geolocation standardized method to convey geographical location information from one SIP
entity to another SIP entity. Configurable on CUCM SIP Trunks
223
SIP 180 Ringing Response: Call-Info Header
Response/Header Response Header Content
SIP/2.0 180 Ringing
Call-Info: <sip:10.10.199.251:5060>;method="NOTIFY;Event=telephone-event;Duration=500"
The Call-Info header field provides additional information about the caller or callee, depending on
whether it is found in a request or response. (In the above example - The Called UA)
224
SIP 180 Ringing Response: Date Header
Response/Header Response Header Content
SIP/2.0 180 Ringing
Date: Wed, 18 Feb 2015 18:37:57 GMT
An Optional Header
Date and time the Request or Response sent
Greenwich Mean Time (GMT) only
225
SIP 180 Ringing Response: Content Header
Response/Header Response Header Content
SIP/2.0 180 Ringing
Content-Length: 0
The Content-Length header indicates the size of the message-body sent to the recipient in
decimal number of bytes.
Message-Body For example, the Session Description Protocol (SDP) message body.
The message body is appended after the Content-Length header.
227
SIP Trunk Signaling - Media negotiation for Voice calls :
The SDP Offer SIP Message Headers
..
Content-Type: application/sdp Content-Type : application/SDP
Content-Length: 337 Content-Length : 337 Bytes
v=0
o=CiscoSystemsCCM-SIP 2000 1 IN IP4 10.10.199.250
s=SIP Call SDP Message Body
c=IN IP4 10.10.199.130
Describes the media characteristics of the
t=0 0 endpoint offering the SDP
m=audio 16444 RTP/AVP 0 8 18 101
a=rtpmap:0 PCMU/8000
a=ptime:20 Includes :
a=rtpmap:8 PCMA/8000 Endpoint IP address
a=ptime:20 Codecs supported
a=rtpmap:18 G729/8000
a=ptime:20 UDP Port number for RTP
a=sendrecv In Band DTMF support details
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15 228
Some SDP lines are REQUIRED some are OPTIONAL, but all MUST appear in exactly the order described in RFC 4566
Media negotiation for Voice calls
The SDP Offer - SDP Session Attributes
Attribute Description Attribute Content Required/Optional
v= Version 0 Required
o= Origin CiscoSystemsCCM-SIP 2000 1 IN IP4 Required
10.10.199.250 10.10.199.250 = CUCM IP Address
s= Session Name SIP Call Required
c= Connection Data IN IP4 10.10.199.130 Optional
10.10.199.130 = Phones IP Address
t= Timing 00 Required
<Format> RTP Payload Type numbers - Codec PTs in preference order 0 8 18 101
Media negotiation for Voice calls The SDP Offer
SDP Media Attributes Voice Codecs Offered
Attribute Description Attribute Content Comments
m= Media Descriptions audio 16444 RTP/AVP 0 8 18 101 Media/Port#/Protocol/ RTP Payload Types
a= Attribute rtpmap:0 PCMU/8000 G.711 u-law codec
a= Attribute rtpmap:8 PCMA/8000 G.711 a-law codec
a= Attribute rtpmap:18 G729/8000 G.729 codec
The Codecs (formats) in the Offer must be listed in preference order. The recipient of the Offer
should use the codec with the highest preference that is acceptable to it in its Answer
231
Media negotiation for Voice calls The SDP Offer
SDP Media Attributes - Audio Direction and DTMF
Attribute Description Attribute Content Comments
m= Media Descriptions audio 16444 RTP/AVP 0 8 18 101 101 = DTMF RTP Payload Type number
a= Attribute sendrecv Describes Audio Direction (see below)
a= Attribute rtpmap:101 telephone-event/8000 In Band DTMF transport (RFC 2833)
a= Attribute fmtp:101 0-15 DTMF tones
(Events 0 through 15
= 0,1,2,3,4,5,6,7,8 ,9,*,#,A ,B,C,D)
Audio Direction
a=sendrecv Media can be sent by this endpoint, media can be received on this endpoint
a=recvonly Media can only be received on this endpoint, it will not send media
a=sendonly Media can only be sent by this endpoint, it will not receive media
a=inactive Media can not be sent to or received from this device (used for Hold)
10.10.199.250 10.10.199.251
10.10.199.130 10.10.199.179
RTP UDP Port 16444 RTP UDP Port 28668
G.729 codec G.729 codec
Two way Audio Two way Audio
RFC 2833 DTMF RFC 2833 DTMF
o=CiscoSystemsCCM-SIP 2000 1 IN IP4 10.10.199.250 o=CiscoSystemsCCM-SIP 2000 1 IN IP4 10.10.199.251
c=IN IP4 10.10.199.130 c=IN IP4 10.10.199.179
m=audio 16444 RTP/AVP 18 101 m=audio 28668 RTP/AVP 18 101
a=rtpmap:18 G729/8000 a=rtpmap:18 G729/8000
a=ptime:20 a=ptime:20
a=sendrecv a=sendrecv
a=rtpmap:101 telephone-event/8000 a=rtpmap:101 telephone-event/8000 234
235
SIP Trunk Signaling
Video calls
Video is fundamentally different from voice in that there are many use cases where
asymmetric media flows are desirable.
For example, broadband services where the upload and download speeds are
different often by an order of magnitude.
Also because encoding video is more CPU intensive than decoding video - Video
endpoints can typically decode at a higher resolution than they can encode.
Because of the need to support asymmetric video streams the video codec
capabilities sent in an SDP Offer and Answer should be considered to be the receive
capabilities of the respective endpoints rather than the negotiated capabilities in
common with both devices
236
SIP Trunk Signaling
Voice and Video call with BFCP and FECC
10.10.199.250 10.10.199.251
10.58.9.86 10.58.9.222
Audio
Main Video
Slide Video
Binary Floor Control
237
10.10.199.250 10.10.199.251
10.58.9.86 10.58.9.222
Audio
Video
238
SIP Trunk Signaling
Video calls SDP Offer Detail - Video
v=0
o=CiscoSystemsCCM-SIP 161095 1 IN IP4 10.58.9.6
s=SIP Call
b=TIAS:6000000
b=AS:6000
t=0 0
m=audio 16444 RTP/AVP 102 103 104 9 105 106 0 8 101
c=IN IP4 10.58.9.86
b=TIAS:64000
.attributes of multiple audio codecs in the offer
The Session Level Bandwidth Modifier specifies the maximum amount of bandwidth supported
when all the media streams are used. There are three Session Level Bandwidth Modifiers:
Transport Independent Application Specific (TIAS),
Application Specific (AS), and
Conference Total (CT)
The Maximum Session Bit Rate for video calls limits media bandwidth for
242
SIP Trunk Signaling
Video calls SDP Offer Bandwidth in this Offer
o=CiscoSystemsCCM-SIP 161095 1 IN IP4 10.58.9.6
s=SIP Call
b=TIAS:6000000 Transport Independent Application Specific bandwidth (RTP) in bits/sec
b=AS:6000 Application Specific bandwidth (RTP/UDP/IP) in kbps
t=0 0
m=audio 16444 RTP/AVP 102 103 104 9 105 106 0 8 101
b=TIAS:64000
.attributes of multiple audio codecs in the offer
For this endpoint the maximum media stream bandwidths that can be received :
= 6 Mbps for all voice and video streams including UDP and IP headers (AS session bandwidth)
= 64kbps for voice RTP traffic not including UDP and IP headers (TIAS audio)
= 6 Mbps for video RTP traffic not including UDP and IP headers (TIAS video)
The bandwidth values in the SDP Answer do not have to be the same 243
SIP Trunk Signaling - Video calls
SDP Offer H.264 and H.263 Video Codecs
The video capabilities sent in the SDP body should be considered as the receive capabilities of the
sending endpoint.
The codecs used by video streams are more complex than audio codecs, particularly for H.264
which is a more recent codec standard that offers significant improvements when compared with
H.263. Today H.263 is considered to be a legacy codec with a lower quality and
resolution for a given bandwidth than H.264
244
SIP Trunk Signaling
Video calls SDP Offer Detail - Video Codecs
m=video 16446 RTP/AVP 98 99 The Codecs (formats) in the Offer must be listed in
c=IN IP4 10.58.9.86
preference order. H.264 preferred over H.263
b=TIAS:6000000
a=rtpmap:98 H264/90000
a=fmtp:98 profile-level-id=428016;packetization-mode=1;max-mbps=245000;max-fs=9000;max-cpb=200;max-
br=5000;max-rcmd-nalu-size=3456000;max-smbps=245000;max-fps=6000
a=rtpmap:99 H263-1998/90000
a=fmtp:99 QCIF=1;CIF=1;CIF4=1;CUSTOM=352,240,1 (= Supported Picture Formats/Resolutions)
Two video codecs are offered in SDP by this endpoint : H.263 and H.264
a=rtpmap:98 H264/90000 H.264/ Sampling Rate 90000 Hz
a=rtpmap:99 H263-1998/90000 H.263 version 2/ Sampling Rate 90000 Hz
For each codec type the endpoint sends additional information about the capabilities it supports
The endpoint that responds to this Offer, selects one codec and returns its receive
245
capabilities in its Answer.
SIP Trunk Signaling
Video calls SDP Offer H.264 Video Codec
a=rtpmap:98 H264/90000
a=fmtp:98 profile-level-id=428016;packetization-mode=1;max-mbps=245000;max-fs=9000;max-
cpb=200;max-br=5000;max-rcmd-nalu-size=3456000;max-smbps=245000;max-fps=6000
packetization-mode=1
max-mbps=245000
max-fs=9000
These parameters describe the features and capabilities
max-cpb=200 beyond those of the profile-level-id that are supported by this
max-br=5000 endpoint
max-rcmd-nalu-size=3456000
max-smbps=245000
max-fps=6000 246
SIP Trunk Signaling H.264 Video calls
The 1st four digits of the Profile level ID The Profile
a=rtpmap:98 H264/90000
a=fmtp:98 profile-level-id=428016;packetization-mode=1;max-mbps=245000;max-fs=9000;max-cpb=200;max-
br=5000;max-rcmd-nalu-size=3456000;max-smbps=245000;max-fps=6000
profile-level-id=428016
The Profile Level ID is fundamental in describing which H.264 features have been implemented by
the endpoint.
H.264 defines 21 profiles which describe the video capabilities of various classes of application.
The profile can be identified primarily by the first two hex digits of the profile-level-id and also by
the following 3rd and 4th digits. The negotiated profile-level-id for the call must be symmetrical
profile-level-id=4280XX defines the Baseline Profile of H.264 which is commonly used by UC video
endpoints.
The baseline profile supports video encoding features such as Flexible Macroblock Ordering,
Arbitrary Slice Ordering, Redundant Slices. ( not covered in this session ) 247
SIP Trunk Signaling H.264 Video calls
The last 2 digits of the Profile level ID The Level
a=rtpmap:98 H264/90000
a=fmtp:98 profile-level-id=428016;packetization-mode=1;max-mbps=245000;max-fs=9000;max-cpb=200;max-
br=5000;max-rcmd-nalu-size=3456000;max-smbps=245000;max-fps=6000
profile-level-id=428016
The 5th and 6th hex digits of the profile-level-id describe the Level,
The Level describes the resolution, frame rate and bit rate that the endpoint can support.
16 hex = 22 dec = Level 2.2 = 352 x 480 pixels @ 30 frames per second
Levels range from 1 to 5.1 (128 x 96 @30 fps to 4096 x 2048 @30 fps)
H.264 introduces the concept of a Slice - spatially distinct region of a frame that can be
encoded separately from other regions in the frame. H.264 uses I-Slices, P-Slices and B-Slices
Frames and Slices are segmented into Macroblocks (rectangular pixel samples). Several
Macroblocks can be grouped into a Slice such that a video frame can consist of several Slices .
A NALU serves as container for a Slice(s) (groups of macroblocks) of the video frame
The Video Coding Layer (VCL) creates a coded representation of the video image by
partitioning the video frame into Macroblocks (rectangular samples) and then
encoding them using spatial and temporal prediction. 249
SIP Trunk Signaling
Video calls SDP Offer H.264 Video Codec Detail (1)
a=rtpmap:98 H264/90000
a=fmtp:98 profile-level-id=428016;packetization-mode=1;max-mbps=245000;max-fs=9000;max-
cpb=200;max-br=5000;max-rcmd-nalu-size=3456000;max-smbps=245000;max-fps=6000
max-rcmd-nalu-size=3456000 Max NALU packet size (bytes) that the receiver can handle
RTCP is used for video rate adaption when congestion/ packet loss encountered
252
SIP Trunk Signaling
Video calls SDP Answer Detail = Video Only
v=0
o=CiscoSystemsCCM-SIP 112480 1 IN IP4 10.58.9.44
s=SIP Call
b=TIAS:6000000 Symmetric Bandwidth requirements at the session level
b=AS:6000 TIAS = 6Mbps, AS = 6Mbps
t=0 0
10.10.199.250 10.10.199.251
10.58.9.86 10.58.9.222
Audio RTP UDP Port 16444 Audio Audio RTP UDP Port 2346
MP4A-LATM Audio codec MP4A-LATM Audio codec
Bandwidth 64kbps Bandwidth 64kbps
RFC 2833 DTMF RFC 2833 DTMF
Video RTP UDP Port 16446 Video Video RTP UDP Port 2348
H.264 Video codec H.264 Video codec
Asymmetric Receive values Asymmetric Receive values
Bandwidth 6Mbps Bandwidth (6Mbps - 64kbps)
255
SIP Trunk Signaling
Video calls Binary Floor Control Protocol (BFCP)
BFCP a protocol to manage access to shared resources in a conference, such as the right for a
user to send media to a particular media session (e.g. using a video channel for desktop sharing).
With BFCP in a video call, two additional media channels are negotiated one video channel to
share content, the other for floor control (BFCP)
10.10.199.250 10.10.199.251
10.58.9.86 10.58.9.222
Audio
Main Video
Slide Video
257
261
SIP Trunk Signaling Negotiated Media
Voice and Video call with BFCP
10.10.199.250 10.10.199.251
10.58.9.86 10.58.9.222
Audio RTP UDP Port 16444 Audio RTP UDP Port 2346
MP4A-LATM Audio codec MP4A-LATM Audio codec
RFC 2833 DTMF Audio RFC 2833 DTMF
Video RTP UDP Port 16446 Video RTP UDP Port 2348
H.264 Video codec H.264 Video codec
Asymmetric Receive values Main Video Asymmetric Receive values
Video RTP UDP Port 16448 Video RTP UDP Port 2350
H.264 Video codec H.264 Video codec
Asymmetric Receive values Slide Video Asymmetric Receive values
BFCP UDP Port 5070 BFCP UDP Port 5070
262
Conference 1 User 8 Conference 1 User 6
Binary Floor Control
SIP Trunk Signaling
Video calls Far End Camera Control (FECC)
Far End Camera Control (FECC)
A simple protocol based on ITU H.281 frames carried in H.224 packets in an RTP UDP channel
FECC allows a user to select a video source and to control camera actions such as Pan, Tilt,
Zoom and Focus
m=application 16450 RTP/AVP 107 UDP port-number = 16450 , RTP Payload Type = 107
m=application 16450 RTP/AVP 107 UDP port-number = 16450 , RTP Payload Type = 107
c=IN IP4 10.58.9.86
a=rtpmap:107 H224/0
264
SIP Trunk Signaling
Video calls SDP Answer : Detail = FECC Only
v=0
o=CiscoSystemsCCM-SIP 112480 1 IN IP4 10.58.9.44
.
m=audio 2346 RTP/AVP 102 101
. Attributes of selected audio codec and DTMF RFC2388
m=application 2352 RTP/AVP 107 UDP port-number = 2352, RTP Payload Type = 107
c=IN IP4 10.58.9.222
a=rtpmap:107 H224/0
265
SIP Trunk Signaling Negotiated Media
Voice and Video call with BFCP & FECC
10.10.199.250 10.10.199.251
10.58.9.86 10.58.9.222
Audio RTP UDP Port 16444 Audio RTP UDP Port 2346
MP4A-LATM Audio codec MP4A-LATM Audio codec
RFC 2833 DTMF Audio RFC 2833 DTMF
Video RTP UDP Port 16446 Video RTP UDP Port 2348
H.264 Video codec Main Video H.264 Video codec
Video RTP UDP Port 16448 Video RTP UDP Port 2350
H.264 Video codec Slide Video H.264 Video codec
BFCP UDP Port 5070 BFCP UDP Port 5070
Binary Floor Control
FECC UDP Port 16450 FECC UDP Port 2352
266
RTP Payload Type 107 Far End Camera Control RTP Payload Type 107
SIP Trunk Signaling Video Call
Complete SDP Offer : Voice, Video, BFCP and FECC
v=0 a=rtpmap:99 H263-1998/90000
o=CiscoSystemsCCM-SIP 161095 1 IN IP4 10.58.9.6 a=fmtp:99 QCIF=1;CIF=1;CIF4=1;CUSTOM=352,240,1
s=SIP Call a=rtpmap:34 H263/90000
a=fmtp:34 QCIF=1;CIF=1;CIF4=1
b=TIAS:6000000 a=rtpmap:31 H261/90000
b=AS:6000 a=fmtp:31 CIF=1;QCIF=1
t=0 0 a=content:main
a=rtcp-fb:* nack pli
m=audio 16444 RTP/AVP 102 103 104 9 105 106 0 8 101 a=rtcp-fb:* ccm tmmbr
c=IN IP4 10.58.9.86 m=video 16448 RTP/AVP 97 98 99 34 31
b=TIAS:64000 c=IN IP4 10.58.9.86
b=TIAS:6000000
a=rtpmap:102 MP4A-LATM/90000 a=label:12
a=fmtp:102 bitrate=64000;profile-level-id=24;object=23 a=rtpmap:97 H264/90000
a=rtpmap:103 MP4A-LATM/90000 a=fmtp:97 profile-level-id=428016;max-mbps=245000;max-fs=9000;max-cpb=200;max-br=5000;max-rcmd-nalu-
size=3456000;max-smbps=245000;max-fps=6000
a=fmtp:103 bitrate=56000;profile-level-id=24;object=23 a=rtpmap:98 H264/90000
a=rtpmap:104 MP4A-LATM/90000 a=fmtp:98 profile-level-id=428016;packetization-mode=1;max-mbps=245000;max-fs=9000;max-cpb=200;max-
a=fmtp:104 bitrate=48000;profile-level-id=24;object=23 br=5000;max-rcmd-nalu-size=3456000;max-smbps=245000;max-fps=6000
a=rtpmap:99 H263-1998/90000
a=rtpmap:9 G722/8000 a=fmtp:99 QCIF=1;CIF=1;CIF4=1;CUSTOM=352,240,1
a=ptime:20 a=rtpmap:34 H263/90000
a=rtpmap:105 G7221/16000 a=fmtp:34 QCIF=1;CIF=1;CIF4=1
a=rtpmap:31 H261/90000
a=fmtp:105 bitrate=32000 a=fmtp:31 CIF=1;QCIF=1
a=rtpmap:106 G7221/16000 a=content:slides
a=fmtp:106 bitrate=24000 a=rtcp-fb:* nack pli
a=rtcp-fb:* ccm tmmbr
a=rtpmap:0 PCMU/8000 m=application 5070 UDP/BFCP *
a=ptime:20 c=IN IP4 10.58.9.86
a=rtpmap:8 PCMA/8000 a=floorctrl:c-s
a=floorid:2 mstrm:12
a=ptime:20 a=confid:1
a=rtpmap:101 telephone-event/8000 a=userid:8
a=fmtp:101 0-15 m=application 16450 RTP/AVP 107
c=IN IP4 10.58.9.86
m=video 16446 RTP/AVP 97 98 99 34 31 a=rtpmap:107 H224/0
c=IN IP4 10.58.9.86
b=TIAS:6000000
a=label:11
a=rtpmap:97 H264/90000
a=fmtp:97 profile-level-id=428016;max-mbps=245000;max-fs=9000;max-cpb=200;max-br=5000;max-rcmd-nalu-size=3456000;max-smbps=245000;max-fps=6000 267
a=rtpmap:98 H264/90000
a=fmtp:98 profile-level-id=428016;packetization-mode=1;max-mbps=245000;max-fs=9000;max-cpb=200;max-br=5000;max-rcmd-nalu-size=3456000;max-smbps=245000;max-fps=6000
SIP Trunk Signaling Video Call
Complete SDP Answer : Voice, Video, BFCP and FECC
v=0
o=CiscoSystemsCCM-SIP 112480 1 IN IP4 10.58.9.44 a=fmtp:98 profile-level-id=428016;packetization-mode=1;max-
s=SIP Call mbps=108000;max-fs=3840;max-cpb=200;max-br=5000;max-rcmd-
b=TIAS:6000000 nalu-size=1474560;max-smbps=108000;max-fps=6000
b=AS:6000 a=content:slides
t=0 0 a=rtcp-fb:* nack pli
m=audio 2346 RTP/AVP 102 101 a=rtcp-fb:* ccm tmmbr
c=IN IP4 10.58.9.222
m=application 5070 UDP/BFCP *
b=TIAS:64000
c=IN IP4 10.58.9.222
a=rtpmap:102 MP4A-LATM/90000
a=floorctrl:s-only
a=fmtp:102 bitrate=64000;profile-level-id=24;object=23
a=rtpmap:101 telephone-event/8000 a=floorid:2 mstrm:12
a=fmtp:101 0-15 a=confid:1
m=video 2348 RTP/AVP 98 a=userid:6
c=IN IP4 10.58.9.222 m=application 2352 RTP/AVP 107
b=TIAS:5936000 c=IN IP4 10.58.9.222
a=label:11 a=rtpmap:107 H224/0
a=rtpmap:98 H264/90000
a=fmtp:98 profile-level-id=428016;packetization-mode=1;max-mbps=108000;max-fs=3600;max-cpb=200;max-br=5000;max-rcmd-nalu-
size=1382400;max-smbps=108000;max-fps=6000
a=content:main
a=rtcp-fb:* nack pli
a=rtcp-fb:* ccm tmmbr
m=video 2350 RTP/AVP 98
c=IN IP4 10.58.9.222
b=TIAS:5936000
268
a=label:12
a=rtpmap:98 H264/90000
Deploying an SME cluster with no Media Resources
UC 8.5+ SME SIP Trunks MTP-less Early Offer
UC 10.5+ SME SIP Trunks Best Effort Early Offer
269
Reasons to use SIP Trunks on SME
SME clusters with no Media Resources
Media Resources Media Resources
Leaf Cluster
New York
Media Resources
SME
Cluster
Media Resources
Leaf Cluster
Leaf Cluster Europe
Los Angeles
configured to use either Best Effort Early Offer or MTP-less Early Offer
CUCM SIP Trunk Signaling
Enabling SIP Early Offer MTP Required Pre UC 8.5
SIP Line SIP Trunk with Early Offer
MTP
Disadvantages : MTPs support a single Audio codec only e.g. G711 or G729. The passthru codec is
not supported excluding the use of SRTP and video calls. Since the Trunks MTPs are used - The media
271
path is forced to follow the signaling path.
CUCM SIP Trunk Signaling
Enabling SIP Early Offer Method 2 UC 8.5+
SIP Profile Early Offer support for voice and video calls
(insert MTP
SIP Line
if needed)
SIP Trunk with Early Offer
MGCP Gateway
Deploying SME with no Media Resources - UC 8.5+
SME SIP Trunks MTP less Early Offer
SME
Cluster
All SME Trunks configured as SIP Early Offer for Voice and video (Insert MTP if needed)
No media resources (MTPs, Transcoders etc) associated to the SME Trunks
Takes advantage of SIP Trunk behaviour based on the following Service Parameter
273
Deploying SME with no Media Resources UC 8.5+
MTP less Early Offer
Delayed Offer Delayed Offer
SME
Cluster
All SME Trunks configured as SIP Early Offer for Voice and Video (Insert MTP if needed)
No media resources (MTPs, Transcoders etc) associated to the SME Trunks
If an inbound DO call received on SME SIP Trunk outbound SIP Trunk sends DO
If an inbound EO call received on SME SIP Trunk outbound SIP Trunk sends EO
Media choices (e.g. codec/ DTMF transport decision) made by the leaf systems
Deploying SME with no Media Resources - UC 8.5+
SME MTP less Early Offer Delayed Offer Call
Delayed Offer Delayed Offer
Media Resources
INVITE
200 OK with SDP (Offer)
ACK with SDP (Answer)
Leaf Cluster Leaf Cluster
North America Europe
All SME Trunks configured as SIP Early Offer for Voice and video (Insert MTP if needed)
No media resources (MTPs, Transcoders etc) associated to the SME Trunks
This EO/DO pass-through feature also affects media negotiation
With Delayed Offer Calls - Media choices (e.g. codec decision/ DTMF transport decision)
made by the Leaf cluster originating the call 275
Media resources (if needed) are inserted by the originating Leaf cluster
Deploying SME with no Media Resources - UC 8.5+
SME MTP less Early Offer Early Offer Call
Early Offer Early Offer
Media Resources
INVITE with SDP (Offer)
200 OK with SDP (Answer)
All SME Trunks configured as SIP Early Offer for Voice and video (Insert MTP if needed)
No media resources (MTPs, Transcoders etc) associated to the SME Trunks
This EO/DO pass-through feature also affects media negotiation
With Early Offer Calls - Media choices (e.g. codec decision/ DTMF transport decision) made
by the Leaf cluster receiving the call
276
Media resources (if needed) are inserted by the Leaf cluster receiving the call
Deploying SME with no Media Resources - UC 8.5+
SME SIP Trunks MTP less Early Offer - Summary
Delayed Offer Delayed Offer
Media Resources Media Resources
SME
Cluster
With Best Effort Early Offer MTPs are never used to create an Offer
Early Offer is sent only if the media characteristics of the calling device can be determined,
If the media characteristics of the device cannot be determined a Delayed Offer is sent.
Best Effort Early Offer is preferred over MTP-less Early Offer in SME clusters
Best Effort Early Offer has the same media transparency effect as MTP-less Early Offer in
SME clusters, but the feature is simpler and easier to configure
278
CUCM 10.5+ SIP Trunks Best Effort Early Offer
SIP Line Best Effort Early Offer SIP Trunk Early Offer sent
Older SCCP Phones SIP Trunk Best Effort Early Offer SIP Trunk Delayed Offer sent
H323 Slow Start MGCP Trunk Best Effort Early Offer SIP Trunk Early Offer sent
MGCP Gateway
H323 Trunk Best Effort Early Offer SIP Trunk Early Offer sent
H323 Fast Start SIP Trunk Best Effort Early Offer SIP Trunk Early Offer sent
279
SIP Early Offer
Deploying SME with no Media Resources - UC 10.5+
SME SIP Trunks Best Effort Early Offer - Summary
Delayed Offer Delayed Offer
Media Resources Media Resources
SME
Cluster
Leaf systems can use SIP Early Offer/Delayed Offer/Best Effort Early Offer (recommended )
Use Codec Preference Lists to avoid transcoding
If a Transcoder is required Inserted by Leaf cluster
If MOH, Announcement service is required Inserted by Leaf cluster
If Conferencing resources are required Inserted by Leaf cluster
Inserted by Leaf cluster
280
If MTPs for DTMF mismatch are required
SME with no Media Resources
Possible with SIP Delayed Offer Trunks Everywhere ?
Delayed Offer Delayed Offer
283
Reasons to use SIP Trunks only
H323 Slow Start Trunks Media Negotiation
TCS TCS = Terminal Capability Set
To support calls with voice, video and encryption H323 Slow Start Trunks must be used.
Endpoint Media capabilities are sent over H323 Trunks through the exchange of Terminal
Capability Set (TCS) messages. The choice of which codec and DTMF transport method is
used for the call is determined after Master Slave Determination (MSD).
Unlike SIP Trunks, for H323 Inter Cluster Trunks the choice which cluster choses the media
characteristics for the call is not configurable, as the cluster that initiates the TCS exchange
284
and determination of which cluster is Master and Slave is random
Reasons to use SIP Trunks only
H323 Slow Start Trunks Media Negotiation
MSD MSD = Master/ Slave Determination
Slave
Media
Decision
SME
made
Cluster
here
Master
Because the cluster that initiates the TCS exchange and determination of which cluster is
Master and Slave is randomly selected
This can lead to situations where, when a DTMF transport mismatch, or Codec mismatch
occurs between the endpoints in call The SME cluster will try to insert media resources
Without SME media resources the call, or DTMF transport for the call, will fail
285
Therefore - H323 Trunks cannot be used in SME deployments without media resources
Global SME Deployments
286
Signaling Delay and SME based UC networks
SME
The diagram above shows an example of call set up delays and their impact on the users experience.
(Note Phone to Call Agent signaling delay has been assumed to be minimal)
Delays during call set up will vary based on the protocol(s) used, the trunk configuration and call agent
operation making it difficult to calculate the time taken to establish each stage of the call set up.
In most cases, signaling delays do not noticeably affect user experience. If signaling delays are a 288
concern enable PRACK on SIP Trunks.
Reducing Signaling Delay
Pre UC 9.1 - Multiple regional SME clusters
SME SME
North America Europe
Signalling Path
SME SME
Latin America Asia Pac
< 500 mS
SME
CoW+
< 500 mS
< 500 mS
SME
CoW+
< 500 mS
The upgrade process for an SME cluster consists of two key parts: Version switch-over, where the call
processing node is re-booted and initialized with the new software version (this takes approximately 45
minutes per server), and database replication, where the subscriber's database is synchronized with
that of the publisher node. The time taken to complete this database replication phase depends on the
RTT between the publisher and subscriber nodes and the number of subscribers in the cluster. The
database replication process has a minimal impact on the subscriber's call processing capability and 292
typically can be run as a background process during normal SME cluster operation.
One Global SME CoW cluster
Trunk config from Leaf cluster to SME cluster
DC1 SME Nodes
North America
UC 9.1
SME CoW Route List
Route List
up to Leaf Cluster Leaf Cluster
North America Europe
500mS RTT
UC 9.1
SME CoW
Leaf Cluster Leaf Cluster
up to Europe
North America
500mS RTT
UC 9.1
SME CoW Route List
Leaf Cluster Leaf Cluster
up to Europe
North America
500mS RTT
Leaf Clusters
Multiple Trunks in Route Groups provide ordered selection of SME nodes.
Route List Call Distribution priority order nearest data centre 1st, second nearest data centre 2nd etc
SME CoW cluster
Single Trunk with Run on all Nodes enabled pointing to all nodes in each leaf cluster 295
Route local operates in the SME cluster No inter node intra cluster call routing