# B SIP Support and Compliance

Purpose

This release of the SIP User Agent implementation supports the following methods, responses, and headers per SIP RFC 2543 Bis-05.

Methods

SIP call control methods identify the type of request that is being made.

Table B-1 Methods

Method | Supported | Description | Information Reported to Host
--- | --- | --- | ---
INVITE | Yes | Invites a target to participate in a session; establishes a connection. Also used to change call state or capabilities, such as CODEC used. Supported with or without SDP because of the Delayed Media feature. | The Request for Service message reports the receipt of the INVITE method using the following TLVs: SIP Extensions (0x294A) To Username (0x2919) To Password (0x291A) To Hostname (0x291B) To Port, Tags (0x291C) From Username (0x2923) From Password (0x2924) From Hostname (0x2925) From Port (0x2926) From Display name (0x2928) From Tags (0x2951) Contact Username (0x292D) Contact Password (0x292E) Contact Hostname (0x292F) Contact Port (0x2930) Contact Expires (0x2931) Contact Transport Type (0x2933) Contact URI Parameters (0x2935) Contact Display Name (0x292B) Contact Header Parameters (0x292C) Request Username (0x2954) Request Hostname (0x2955) Request Port (0x2956) Request URI Parameters (0x2958) Request Header Parameters (0x2947)
|  |  | To & From Username are also reported in Called Party Number TLV (0x2717) and Calling Party Number TLV (0x2718) formats respectively Call ID (0x2950) Remote-Party-ID (0x2959) RPID-Privacy (0x295A) Subject Header (0x295B) Top VIA Header. Privacy, P-Asserted-Identity, P-Preferred-Identity, P-Access-Network-Info. Referred-By URI (0x2929) Referred-By parameters (0x292A) Remote Signaling IP address & Port for TCP Calls 0x294E & 0x294F respectively. Media destination IP address, Port, Payload Type and Payload size in the SDP for non-CAM. For CAM it is reported within the Media Local End Point Information (0x29FF).
Re-INVITE (Offer) | Yes | Used to change media used for the call and to put a call on/off hold | PPL Event Indication to report receipt of ReINVITE in the following TLV: If present, SDP is reported within the Local End Point Info TLV (0x29FF)
180 Ringing | Yes | The called party is alerted | PPL Event Indication to report receipt of 180 received: SIP Extensions TLV (0x294A)
182 Called Queued | Yes | The called party is unable to take the call immediately so the calling party is put on hold. | PPL Event Indication to report receipt of 182 received: SIP Extensions (0x294A) SIP Response Reason Phrase (0x2949)
183 Session Progress | Yes | Informs about the progress of the call. Mostly used to establish an early media connection. | PPL Event Indication to report receipt of 183 received: SIP Extensions 0x294A Media Local End Point Information (0x29FF)
PRACK | Yes | Makes the non-100 provisional responses reliable. | PPL Event Indication to report receipt of PRACK received. No data reported.
ACK | Yes | Acknowledges receipt of a final response to an invite request | Not reported to the host.
ACK with SDP | Yes | Reports receipt of ACK with SDP in case of delayed media scenario. | PPL Event Indication to report receipt of ACK with SDP contains the following TLV: SDP if present is reported within the Local End Point Information (029FF)
BYE | Yes | Indicates that either the originator or the target wishes to end the call after the INVITE transaction is successfully completed. | Channel released 0x49 in case of CAM. Channel released with data 0x69 in case of non-CAM calls.
CANCEL | Yes | Indicates that the originator wishes to cancel the INVITE request it had sent. | The host receives a channel-released messages.
REGISTER | Yes | Registers with a server | The PPL Event Indication message reports the receipt of the REGISTER message using the TLVs below. The CSP does not generate the REGISTER message. SIP To Username (0x2919) SIP To Password (0x291A) SIP To Hostname (0x291B) SIP To Port (0x291C) SIP From Username (0x2923) SIP From Password (0x2924) SIP From Hostname (0x2925) SIP From Port (0x2926) SIP Contact Username (0x292D) SIP Contact Password (0x292E) SIP Contact Hostname (0x292F) SIP Contact Port (0x2930) SIP Contact Expires (0x2931) SIP Contact Transport Type (0x2933)
REFER | Yes | Indicates that the recipient should contact a third party using provided contact information; initiates a transfer. | The PPL Event Indication reports the receipt of the REFER method in the following TLVs: SIP Request URI User Name (0x2954) SIP Request URI Password (0x2946) SIP Request URI Host Name (0x2955) SIP Request URI Port (0x2956) SIP Request URI Parameters (0x2958) SIP Request URI Header (0x2947) SIP Refer To Username (0x291E) SIP Refer To Password (0x291F) SIP Refer To Hostname (0x2920) SIP Refer To Port (0x2921) SIP Refer To Header Parameter (0x2922) SIP Referred By URI (0x2929) SIP Referred By Parameter (0x292A) The PPL Event Indication reports the received for REFER (Blind and Consultative) SIP Response Code (0x2915)
NOTIFY | Yes | Provides information about a state change; not related to specific session. | The PPL Event Indication to report the receipt of the NOTIFY and the REFER request (Blind and Consulative) sent out. SIP Response Code 0x2915 The CSP support generation of the NOTIFY message.
SUBSCRIBE | Yes | Used by a SIP entity to declare its interest in a particular event. SIP entity subscribes to a certain event of a class of events. | Reporting is not supported. The CSP supports generation of the SUBSCRIBE method.
INFO | Yes | Transports any mid call information. | PPL Event Indication to report receipt of INFO received: SIP Message Body (0x295C) SIP Content Type (0x295D) PPL Event Indication to report the response for INFO sent out: SIP Response Code (0x2915)
OPTIONS | Yes | Solicits information about features supported by SIP servers such as supported methods and media capabilities. | PPL Event Indication reports receipt of OPTIONS in the following TLVs: SIP Request URI User Name (0x2954) SIP Request URI Password (0x2946) SIP Request URI Host Name (0x2955) SIP Request URI Port (0x2956) SIP Request URI Parameters (0x2958) SIP Request URI Header (0x2947) CSP does not support generation of OPTIONS method.

Responses

SIP response codes indicate the status of a session. Responses with 1xx response codes are also call provisional responses, while the remaining response codes (2xx, 3xx, 4xx, 5xx, and 6xx) indicate final responses.

This release of the SIP Implementation treats the 4xx, 5xx, and 6xx responses as rejected calls.

Table B-2 Responses

Code Type | Function
--- | ---
1xx | Informational: Trying, ringing, forwarding, queuing, in progress
2xx | Successful: OK
3xx | Redirection: Indicate additional information for call forwarding
4xx | Request Failure: Indicate request errors such as missing information
5xx | Server Failures: Time outs, unavailable services, and other server errors
6xx | Global Failures: Busy declined, not found, not acceptable

Responses | Supported | Notes
100 Trying | Yes |
180 Ringing | Yes | The called party is alerted. PPL Event Indication message reports receipt of 180 Ringing in the following TLV: SIP Extensions (0x294A)
181 Forwarded | Yes | Treated as 180 Ringing Response.
182 Called Queued | Yes | The called party is unable to take the call immediately so the calling party is put on hold. P PL Event Indication message reports receipt of 182 Queue using the following TLVs: SIP Extensions (0x294A) SIP Response Reason Phrase (0x2949)
183 Session Progress | Yes | Informs the progress of the call. Mostly used to establish an early media connection. PPL Event Indication message reports receipt of 183 Session Progress using the following TLVs: SIP Extensions 0x294A Media Local End Point Information (0x29FF)
200 OK | Yes | PPL Event Indication to report receipt of Answer using the following TLVs: SIP Contact Display Name (0x292B) SIP Contact Parameters (0x292C) SIP Contact Username (0x292D) Media Local End Point Information (0x29FF)
300 Multiple Choices | Yes | Supports Redirections.
301 Moved Permanently | Yes |
302 Moved Temporarily | Yes |
305 Use Proxy | Yes |
380 Alternative Service | Yes |
400 Bad Request | Yes | For outbound call (UAC), these responses are treated as Call Rejected.
401 Unauthorized | Yes | Supports basic and digest.
402 Payment Required | No | Treated as Call Rejected.
403 Forbidden | No | Treated as Call Rejected.
404 Not Found | Yes | Generate and accept responses. For outbound calls, these responses are treated as Call Rejected.
405 Method Not Allowed | Yes | Generate and accept responses. For outbound calls, these responses are treated as Call Rejected.
406 Not Acceptable | No | Treated as Call Rejected.
407 Proxy Authentication Required | Yes | Treated as Call Rejected.
408 Request Timeout | No | Treated as Call Rejected.
409 Conflict | No | Treated as Call Rejected.
410 Gone | No | Treated as Call Rejected.
411 Length Required | No | Treated as Call Rejected.
413 Request Entity Too Large | No | Treated as Call Rejected.
414 Request – URI Too Long | No | Treated as Call Rejected.
415 Unsupported Media | Yes | Generate and accept responses. For outbound calls, these responses are treated as Call Rejected.
420 Bad Extension | Yes | Generate and accept responses. For outbound calls, these responses are treated as Call Rejected.
422 Session Timer Duration Too Small | Yes | Retry the INVITE method with new session interval.
480 Temporarily Not Available | Yes | Generate and accept responses. For outbound calls, these responses are treated as Call Rejected.
481 Call Leg Transaction Does Not Exist | Yes | Generate and accept responses. For outbound calls, these responses are treated as Call Rejected.
482 Loop Detected | No | Treated as Call Rejected.
483 Too Many Hops | No | Treated as Call Rejected.
484 Address Incomplete | No | Treated as Call Rejected.
485 Ambiguous | No | Treated as Call Rejected.
486 Busy Here | No | Treated as Call Rejected. For outbound calls, these responses are treated as Call Rejected.
500 Server Internal Error | Yes | Treated as Call Rejected. For outbound calls, these responses are treated as Call Rejected.
501 Not Implemented | No | Treated as Call Rejected.
502 Bad Gateway | No | Treated as Call Rejected.
503 Service Unavailable | Yes | Generate and Accept Responses.
504 Gateway Timeout | No | Treated as Call Rejected.
505 SIP Version Not Supported | Yes | Generate and Accept Responses.
513 Message Too Large | Yes | Treated as Call Rejected.
600 Busy Everywhere | No | Treated as Call Rejected.
603 Decline | No | Treated as Call Rejected.
604 Does Not Exist Anywhere | No | Treated as Call Rejected.
606 Not Acceptable | No | Treated as Call Rejected.

Message Headers

Each SIP message is accompanied by a header. The following are the required fields in all messages (see Methods.)

Table B-3 Required Fields

Required Field | Description
From | The address of the session originator; expressed as a SIP URL.
To | The address of the session target; expressed as a SIP URL.
Call-ID | A unique identifier assigned to all of the SIP messages related to a call.
Cseq | The SIP call control method and an identifying sequence number

Table B-4 Supported Headers

Header | Supported | Compressed Header
--- | --- | ---
Accept | No |
Accept-Encoding | Yes | Not applicable
Accept-Language | No |
Allow | Yes |
Authorization | Yes |
Call-ID | Yes | i
Contact | Yes | m
Content-Disposition | Yes | Not applicable
Content - Encoding | No |
Content-Length | Yes | l
Content-Type | Yes | c
Cseq | Yes | Not applicable
Date | No |
Encryption | No |
Expires | Yes | Not applicable
From | Yes | f
Hide | No |
In-Reply-To | No |
Max - Forwards | No |
MIME - Version | No |
Min-SE | Yes |
Organization | No |
Priority | No |
Proxy - Authenticate | Yes |
Proxy - Authorization | Yes |
Proxy - Require | No |
Record-Route | Yes | Not applicable
Require | Yes |
Retry-After | Yes | Not applicable
Response-Key | No |
Route | Yes | Not applicable
Server | No |
Session-Expires | Yes |
Subject | No |
Supported | Yes |
Timestamp | No |
To | Yes | t
Unsupported | No |
User-Agent | Yes | Not applicable
Via | Yes | v
Warning | No |
WWW-Authenticate | Yes |

Important! You must set the System Timer accurately on the CSP Matrix Series 3 Card.

SIP Addresses

Instead of being assigned to specific devices the way that telephone numbers traditionally are assigned, SIP URLs are assigned to the individual users who participates in SIP sessions. As a result, when a phone call (or other interactive session) is made to a SIP address, it can be routed to the appropriate individual regardless of a change in physical location or IP telephone device.

The From and To fields in every message header contain the SIP URLs of the session's originator and target.

SIP URLs use the same format as IP addresses or e-mail addresses:

<sip:user-id@server-address:port;parameters;?header-names=values>.

The formats of some sample SIP URLs might appear as:

sip:123@OPENet.com

sip:3333@10.1.1.123

sip:johndoe@sip.OPENet.net:5070

John Doe<sip:johndoe@sip.OPENet.net:5070>

SIP Interoperability Compliance with the CSP

The following is required for SIP Interoperability compliance with the CSP:

• SIP User Agent supports RFC 2543 Bis-05 and RFC 2327.

• SDP provided in Invite for Media negotiation.

• RTP with G.711 must be supported.

Limitation of Codec Selection

Normally, a SIP INVITE message specifies the CODECS to be used in the media description part of the SDP. The CODECS that appear first in the list are those with a higher priority for usage. However, the CSP requires the use of a route table that specifies a CODEC (any CODEC supported by CSP).

If the CODEC listed in the route table appears anywhere in the media description of the SDP (regardless of priority) then that CODEC is used first.

Example: The Pulse Code Modulation U Law (PCMU) is specified in the route table. The SDP specifies Pulse Code Modulation A Law (PCMA) first in the media description and PCMU second. Normally PCMA is used if the other end supports it, but because the way the CSP handles the call, PCMU is used because it appears in the media description list. If PCMU did not appear in the media description, then PCMA would be used.

Session-Initiation Protocol. A signaling protocol used for establishing sessions in an IP network. A session could be a simple, two-way telephone call, or it could be a collaborative multi-media conference session.
A computer, attached to the Excel platform through an RS-232 or Ethernet link, from which you run the telecommunications application that controls the Excel platform.
Coder/Decoder. A CODEC converts voice signals from their analog form to digital signal acceptable to modern digital transmission systems.
The point in the Excel platform where a DS0 connects to a network. Also known as a "socket."
Tag-Length-Value block. A standardized block that allows data to inserted in a standard way into API messages.
Internet Protocol. Part of the TCP/IP family of protocols used to route messages and tracks the addresses of nodes.
See Programmable Protocol Language.
A condition that, when met, drives a state machine from one state to another. A condition that drives a Component out of its current state by invoking an associated primitive.
Positive acknowledgment to a message
In PPL, a condition that, when met, drives a state machine (PPL Component) from one state to another, by invoking an associated Primitive. In PPL files, an Event is marked by an arrow and text.
A device that translates calls between an IP network and another network, typically the PSTN.
World Wide Web
Real-Time Transport Protocol. Supports transport of real-time data like interactive voice and video over packet-switched networks.
PCM. Common technique of encoding analog voice into a digital bit stream where samples are taken 8000 times per second.