SIP Signaling
This section describes CallManager support for SIP methods and header fields. Chapter 4 provides an overview of CallManager support for SIP trunks.
SIP defines messages into requests and responses. Request messages are named; response messages are numbered. Table C-9 lists the request messages.
Request |
Supported by CallManager? |
Comments |
---|---|---|
INVITE |
Y |
Establishes a session; CallManager originates and receives this message. |
ACK |
Y |
Acknowledges the establishment of a session; CallManager sends and receives this message. |
OPTIONS |
Y |
Queries a User Agent (UA) about its capabilities; CallManager never sends this message but does respond to it. |
BYE |
Y |
Terminates an established session. CallManager sends and receives this message. |
CANCEL |
Y |
Rescinds an INVITE before the session is established. |
REGISTER |
N |
Registers SIP addresses with a registrar. CallManager never sends this message and responds with a 405 Method Not Allowed if it receives it. |
PRACK |
Y |
Acknowledges the receipt of a provisional response (such as 180 Alerting) by the UA; used only when reliable provisional responses are in effect. |
UPDATE |
Y |
Allows session parameters for an unestablished session to be changed. CallManager never sends this message but can accept it. |
Response messages are numbered in the range 1xx to 6xx. Each group of a hundred represents a specific class of responses to the requests. Table C-10 lists the message classes and describes CallManager support for specific messages in the class.
Request |
Supported by CallManager? |
Comments |
---|---|---|
1xx messages indicate events that occur as a session is being established |
||
100 Trying |
Y |
Indicates that the Proxy or UA has been able to resolve an address and continue routing. CallManager supports sending and receiving this message. |
180 Ringing |
Y |
Indicates the target UA is ringing. CallManager sends and receives this message. |
181 Call Forward |
N |
CallManager cannot send or receive this message. |
182 Call Queued |
N |
CallManager cannot send or receive this message. |
183 Progress |
Y |
CallManager can receive and send this message. CallManager may connect media on receipt of this message. |
2xx messages confirm the establishment of a session |
||
200 OK |
Y |
Confirms that a session has been established. |
3xx messages indicate that the session being established should be established to or via a different SIP entity |
||
300302, 305, 380 |
Y |
CallManager never sends these messages. When it receives this class of message, CallManager attempts to re-establish the session to the contacts listed in the message. |
4xx messages are definitive, final failure responses from the target of the request |
||
4xx |
Y |
CallManager sends and receives this message. CallManager initiates a call disconnect upon receiving this message. |
5xx messages indicate that an unexpected condition was encountered that prevented the establishment of the session |
||
5xx |
Y |
CallManager sends this message. Upon receiving this message, CallManager issues a new request if the response contains an alternate contact. Otherwise, CallManager ends the call. |
6xx messages indicate that the target of the request was busy and cannot accept the incoming call |
||
6xx |
Y |
CallManager never sends this message. CallManager disconnects the call upon receiving this message. |
SIP requests and responses contain header fields. CallManager support for header fields is fairly consistent from message to message.
Table C-11 lists the header fields that CallManager sends in requests it originates.
Header |
Appears in Requests |
Example with Comments |
---|---|---|
From |
All |
From: callerName cgpn@CCM_IP_addr> callerName is the caller's display name; cgpn is the caller's number; CCM_IP_addr is the IP address of CallManager. |
To |
All |
To: calledName cdpn@destIP;user=phone> calledName is the name of the call target, if available; cdpn is the number of the called party; destIP is the resolved IP address of the target of the SIP trunk. |
Via |
All |
Via:SIP/2.0 IPaddr:port;branch=number IPaddr is the IP address of CallManager; port is the port assigned to CallManager's SIP trunk; branch is a unique number that identifies each branch of an outgoing forked call. CallManager SIP trunks don't support forking, which means CallManager issues only a single request with a single branch identifier. |
Call-ID |
All |
Call-ID: number@IPaddr number is a unique call identifier determined by CallManager; IPaddr is the IP address of CallManager. |
Contact |
All |
Contact: cgpn@IPaddr:localPort;user=phone> IPAddr is the IP address of CallManager; cgpn is the calling number; localPort is the incoming port assigned to the issuing SIP trunk. |
Cseq |
All |
Cseq: number method number is a number that increments for each subsequent outgoing request; method is the name of the request (INVITE, ACK, and so on). |
Max-Forwards |
All |
Max-Forwards: number number indicates the maximum number of times that the message can propagate from call agent to call agent before the request expires. CallManager sets this value to 6 for originated SIP calls. |
Remote-Party-Id |
INVITE |
Remote-Party-Id: calledName cdpn@called_IP_address;user=phone>;party=calling;screen=no;privacy=off Indicates the display information for the party issuing the response. user indicates the class of responding device; party indicates the role of the responder in the call; screen indicates whether an intermediary entity has validated the display information; privacy indicates whether the information should be displayed to the requestor. |
Diversion |
INVITE |
Diversion: divertingNumber @diverting_IP_address >;reason=no-answer Indicates the prior history of the call. If the call has been previously diverted, this information must be communicated to the downstream voice mail server. reason indicates the reason for the diversion. |
Table C-12 lists the header fields that CallManager sends in responses to requests that it receives.
Header |
Appears in Message Classes |
Example with Comments |
---|---|---|
From |
All |
From: cgpn@CCM_IP_Addr>;tag=16777234 cgpn is the number of the caller; CCM_IP_Addr is the address that issued the request; tag is part of a unique call identifier. |
To |
All |
To: cdpn@destIP>;tag=xxyyzz cdpn is the number of the responder; destIP is the IP address of the responder; tag is part of a unique call identifier. |
Via |
All |
Via: SIP/2.0/TCP CCM_IP_Addr:localPort;received=CCM_IP_Addr; branch=z9hG4bKfe8d27ec The Via chainthis header often occurs multiple times in a SIP requestindicates the path that the request took. branch is a unique identifier that indicates which fork of a branching call is issuing the response. |
Contact |
All |
Contact: cdpn@destIP:calledPort> The Contact represents the address of the specific entity that is responding to the message. |
Remote-Party-Id |
18X 2XX |
Remote-Party-Id: calledName cdpn@destIP;user=phone>;party=called; screen=no;privacy=off Indicates the display information for the party issuing the response. user indicates the class of the responding device; party indicates the role of the responder in the call; screen indicates whether an intermediary entity has validated the display information; privacy indicates whether the information should be displayed to the requestor. |