Professional Documents
Culture Documents
Huawei Csoftx3000 Signaling Protocols
Huawei Csoftx3000 Signaling Protocols
Contents
13 SIP .............................................................................................................................................13-1
13.1 Description of SIP .....................................................................................................................................13-2
13.1.1 Related Terms ..................................................................................................................................13-2
13.1.2 SIP Addressing.................................................................................................................................13-3
13.2 SIP Message Types....................................................................................................................................13-4
13.2.1 Request Messages ............................................................................................................................13-4
13.2.2 Response Messages..........................................................................................................................13-5
13.3 SIP Message Structure...............................................................................................................................13-7
13.3.1 Request Message Structure ..............................................................................................................13-8
13.3.2 Request Message Examples ...........................................................................................................13-13
13.3.3 Response Message Structure..........................................................................................................13-14
13.3.4 Response Message Examples.........................................................................................................13-15
13.4 SIPI..........................................................................................................................................................13-16
13.4.1 Introduction to SIPI........................................................................................................................13-16
13.4.2 Encapsulation.................................................................................................................................13-16
13.4.3 Mapping .........................................................................................................................................13-17
13.5 SIP Signaling Procedures ........................................................................................................................13-17
13.5.1 Flows of Mobile Originated Calls Through SIP Trunks.................................................................13-17
13.5.2 SIPI Signaling Procedure ...............................................................................................................13-19
Figures
Tables
13 SIP
Section Describes
13.1 Description of SIP Application and related terms of the SIP protocol.
13.2 SIP Message Types SIP message types.
13.3 SIP Message Structure SIP message structure.
13.4 SIPI Application of SIPI.
13.5 SIP Signaling Procedures Examples of the SIP signaling procedures.
Call Leg
The combination of Call-ID, To, and From identifies a call leg. For example, for a call
between A and B, the requests sent from A to B and from B to A use the same Call-ID
belonging to the same call leg. A call leg is actually a path of messages for a call.
Transaction
An SIP transaction occurs between a client and a server. It comprises all messages sent from
the client to the server, that is, from the first request to the final (non-1xx) response message,
and from the server to the client.
The Cseq sequence number within a call leg identifies a transaction. An ACK request,
however, has the same Cseq number as the corresponding INVITE request, but is a different
transaction.
A normal call includes three transactions. Call initiation consists of two requests: INVITE and
ACK. The former requires a response. The latter is an acknowledgement that the final
response is received, which requires no response. Call termination contains one request, BYE.
Location Service
Location services are offered by location servers. An SIP redirect or proxy server uses a
location service to obtain the possible location of a called party, which is beyond the scope of
this document. The manner in which an SIP server requests location services is, however,
beyond the scope of this manual.
Proxy Server
A proxy server is an intermediary program. It acts as a server and a client to route SIP
requests to destinations. A proxy server may process requests internally or pass them on to
other proxy servers. It interprets, and if necessary, rewrites a request before forwarding the
message.
Redirect Server
A redirect server performs the following:
z Accepts an SIP request.
z Maps the address into zero or more new addresses.
z Returns these addresses to the client.
Thus, the client can directly initiate requests to these new addresses again.
A redirect server implements the routing function instead of receiving or rejecting calls.
Registrar
A registrar is a server that accepts REGISTER requests. It is located with a proxy or redirect
server. A registrar must store the address mapping relationship in REGISTER requests in a
database for subsequent call processes. It can offer location services.
User Agent
A user agent is a logical entity that initiates or receives SIP requests.
Message Function
Both the request and the response messages contain SIP header fields and SIP message fields.
SDP message fields are added to SIP messages.
Status
Method Request-URI SIP-Version
line
Call-ID: value
From: value
To: value
Cseq: value
Max-Forwards: value
Content-Length: value
Content-Type: value
.......
CRLF
Message
SDP
body
The Request-Line begins with a method token, followed by the Request-URI identifying the
peer URI and the SIP-Version identifying the protocol version, and ending with a CRLF.
Single space (SP) characters separate the elements.
Figure 13-1 shows only certain parameters that are possibly present in the message header of a request
message.
The following describes certain common parameters in the message header of a request
message.
Call-ID
This field uniquely identifies a SIP call.
A single multimedia conference can give rise to several calls with different Call-IDs. For
example, a user inviting a single individual several times to the same (long-running)
conference. A user may also receive several INVITEs to the same conference or call with
different Call-IDs. The user judges the repetition of the INVITEs from the identifications in
the session description, such as session identifier and version number carried in the o (source)
field of SDP.
Call-IDs have a generic format:
Call-ID: localID@host
"host" is a domain name defined globally or an IP address routable globally. The local ID is
composed of unique URI characters in the scope of "host". Otherwise, the local ID must be a
globally unique value to ensure the global uniqueness of the Call-ID. Call-IDs are
case-sensitive.
Call-ID example:
Call-Id: call-973636852-4@191.169.150.101
From
Request and response messages must contain a From general-header field, indicating the
initiator of a request message. A server copies the field from a request message to its response
message. Generally, this field is in the following format:
From: display-name <SIP-URL>;tag=xxxx
The "tag" may appear in the From field of a request message. The “display-name” is optional.
“tag” is a string of hexadecimal numbers in which the hyphen “-“ can be added. It must be
present when two instances of a user sharing a SIP address make call invitations with the
same Call-ID. The "tag" value must be globally unique. The user maintains the same tag
throughout the call identified by the Call-ID.
Example:
From: <sip:1000@191.169.200.61>;tag=1c17691
To
This field specifies the logical recipient of a request message with the same syntax as the
From field. Request and response messages must contain a To general-header field.
Examples:
To: <Sip:1000@191.169.200.61>
To: <sip:1001@191.169.200.61>;tag=62beb3ca
Via
This field is generally in the following format:
Via:sent-protocol sent-by;via-params comment
Where,
sent-protocol=protocol-name / protocol-version / transport,via-params=via-hidden |
via-ttl | via-maddr | via-received | via-branch.
The Via field indicates the existing path of a request message. This prevents request looping
and ensures that response messages take the same path as its corresponding request messages,
which assists in firewall traversal and other unusual routing situations.
The client originating a request message must insert a Via field containing its host name or
network address into the request message. The client must also insert the port number on
which the response messages have to be received if the request message does not use the
default port number.
In the process of sending a request, each proxy server must add its own address as a new Via
field before any existing Via fields.
A proxy sending a request to a multicast address must add the "maddr" parameter to its Via
field. If a server receives a request message containing a "maddr" parameter in the topmost
Via field, the server transfers the request message to the multicast address listed in the
"maddr" parameter.
Generally, every host that sends or forwards a SIP message adds a Via field indicating the path
traversed. Network address translators (NATs), however, may change the source address and
port number of a request message. In this case, the Via field cannot be relied on to route the
response messages.
To prevent this, a proxy server must check the top-most Via field. If the value of Via field
does not match the previous hop address of the proxy server, the proxy adds a "received"
parameter to the Via field inserted by the previous hop. For example:
Via:SIP/2.0/UDP CSOFTX3000.bell-telephone.com:5060
Via:SIP/2.0/UDP 10.0.0.1:5060;received=191.169.12.30
In this example, the message originates from 10.0.0.1 and traverses a NAT with the IP address
199.172.136.3 to reach the proxy server CSOFTX3000.bell-telephone.com. The proxy sever
does the following:
1. Notices the mismatch.
2. Adds a "received" parameter to the Via field of the previous hop, containing the
originating address of the packet.
3. Appends its own address at the top as a new Via field.
A proxy server or a client processes the Via field in a response message according to the
following rules:
The first Via field specifies the proxy or client that is processing this response message. If it
does not, discard the message; otherwise, delete this Via field.
If there is no second Via field, this response message reaches its destination. Otherwise, the
processing depends on whether the Via field contains a "maddr" or a "receiver" parameter.
If the second Via field contains a "maddr" parameter, send the response message to the
multicast address listed in the second Via field. The port used is indicated by the "sent-by"
parameter, and port 5060 is used if the "sent-by" parameter does not specify the port. The TTL
of the response message should be the value indicated in the "ttl" parameter. If this parameter
is not present, set it to "1".
If the second Via field contains a "received" but not a "maddr" parameter, send the message to
the address indicated in the "received" parameter.
If neither of the previous cases applies, send the message to the address indicated by the
"sent-by" value in the second Via field.
An example of the Via field is as follows:
Via: SIP/2.0/UDP 191.169.1.116:5061;ttl=16;maddr=191.169.10.20;branch=a7c6a8dlze
Contact
This field can appear in INVITE, ACK, and REGISTER request messages, and in 1xx, 2xx,
and 3xx response messages. It provides a URL where a user can be reached for further
communication.
INVITE and ACK request messages contain Contact fields, indicating the location from
which a request message originates. This allows the called subscriber to send future request
messages, such as BYE, directly to the caller rather than through a series of proxy servers.
Generally, this field exists in the following format:
Contact:name-addr;q=value;action= “proxy” |
“redirect”;expires=value;extension-attribute
The "name-addr" form is the same as that in the To and From fields. The "q" value ranges
from 0 to 1. Higher values indicate higher preference. The "action" parameter is applicable
only to REGISTER request messages. It indicates whether a server expects future requests to
the client for the server proxy or redirection service.
If this parameter is not specified, the action taken depends on server configuration. The
"expires" parameter indicates the duration in which a uniform resource identifier (URI) is
valid. This parameter can be a number that indicates seconds or a quoted string that contains a
SIP-date. The "extension-attribute" is an extension name.
An example of the Contact field is as follows:
Contact: <Sip:66500002@191.169.1.110:5061>;q=0.7;expires=3600
Max-Forwards
This field limits the number of times a request message is allowed to be forwarded.
Each proxy server or gateway recipient of a request message containing a Max-Forwards field
must check and update the value of the field before forwarding the request. The initial value is
70. It is subtracted by 1 every time a request message traverses a proxy server or gateway.
If the received value is zero (0) and the request message does not reach its destination address,
the server returns 483 (indicating too many hops) and terminates this request.
The purpose of setting this field is to prevent consuming proxy server resources in the case of
loop during message transfer.
Generally, this field exists in the following format:
Max-Forwards: decimal integrals
Allow
This field lists the set of methods supported by proxy servers.
An example of the Allow field is as follows:
Allow: INVITE, ACK, OPTIONS, CANCEL, BYE
Content-Length
This field indicates the size of a message-body using a decimal number of octets. Applications
use this field to indicate the size of a message-body to be transferred.
If TCP serves as the transport protocol, the message header must contain this field.
Content-Length does not involve any line that separates a message header and a message body.
Any Content-Length greater than or equal to zero is a valid value. If the body is not present in
a message, the Content-Length header field must be set to zero.
Generally, this field exists in the following format:
Content-Length: decimal number of octets
Content-Type
This field indicates the media type of the message-body sent to the recipient. If the
message-body is not null, it must contain the Content-Type field.
An example of the Content-Type field is as follows:
Content-Type: application/sdp
Expires
This field indicates the time after which the message content expires.
v: 0
o: HuaweiCSOFTX3000 1073741831 1073741831 IN IP4 191.169.1.116
s: Sip Call
c: IN IP4 191.169.1.95
t: 0 0
m: audio 30000 RTP/AVP 8 0 4 18
a: rtpmap:8 PCMA/8000
a: rtpmap 0 PCMU/8000
a: rtpmap 4 G723/8000
a: rtpmap 18 G729/8000
z An empty line
z A message body
A line feed character distinguishes each parameter line in the message header. Parameters
vary with response messages.
From: value
To: value
Cseq: value
Max-Forwards: value
Content-Length: value
Content-Type: value
.......
CRLF
Message
SDP
body
A Status-Line consists of a SIP protocol version, a Status-Code, and its associated textual
phrase (Reason-Phrase). The Status-Code is a 3-digit integer code that indicates the type of a
request message. The Reason-Phrase gives a short textual description of the Status-Code.
The Status-Code includes 1xx, 2xx, 3xx, 4xx, 5xx, and 6xx, which define six types of SIP
response messages. For full definitions, see section 13.2.2 "Response Messages".
The parameters in the header of a response message are the same as those in a request
message header. For details, see section 13.3.1 "Request Message Structure".
Content-Type:application/sdp
v=0
o=HuaweiCSOFTX3000 1073741824 1073741824 IN IP4 191.169.1.110
s=Sip Call
c=IN IP4 191.169.1.135
t=0 0
m=audio 30016 RTP/AVP 8
a=rtpmap:8 PCMA/8000
The 1st line: The SIP protocol. The protocol version is 2.0. The status code is 180. “Ringing”
indicates that the ringing tone is sent to the called party.
The 2nd and 3rd lines: See section 13.3.2 "Request Message Examples."
The 4th line: This is a Cseq header field, which is used to correlate the INVITE request with
the triggered responses and corresponding ACK and CANCLE requests. The Cseq header
field in this response has the same meaning as that in the earlier described request. The
response message and the request message have the same Cseq field, that is "1 INVITE',
indicating that the response is triggered by the previous request.
The 5th to 9th line: See section 13.3.2 "Request Message Examples."
For details about the description of the message body, see section 13.3.2 "Request Message
Examples."
13.4 SIPI
13.4.1 Introduction to SIPI
SIP with encapsulated ISUP (SIPI) is an extension of SIP. It is a set of mechanisms for
encapsulating ISUP signaling within SIP. The purpose of SIPI is to provide better PSTN-SIP
interconnection. There are three call models: PSTN-IP, IP-PSTN, and PSTN-IP-PSTN.
In the CDMA2000 network, the CSOFTX3000 interworks with other CSOFTX3000s through
SIPI to connect the call and control the bearer. For details about the SIPI signaling procedure,
see section 13.5.2 "SIPI Signaling Procedure."
SIPI adopts SIP message structures and flows. Two techniques, namely, encapsulation and
mapping apply to SIPI.
13.4.2 Encapsulation
Encapsulation means that the SIP message bodies contain the ISUP messages, including the
following two cases:
z A SIP message does not carry SDP. The ISUP messages are encapsulated within the SIP
message body whose type is Application/ ISUP.
z A SIP message that carries SDP contains multiple message bodies. The type of the
message body with ISUP encapsulated in it is Application /ISUP.
13.4.3 Mapping
ISUP-SIP message mapping
SIPI specifies the rules that govern the mapping between the ISUP and the SIP messages. For
example, an IAM must be sent after receiving an INVITE and a REL for BYE.
A mapping between the ISUP and the SIP messages is as follows:
z IAM = INVITE
z ACM = 180 RINGING
z ANM = 200 OK
z REL = BYE
z RLC = 200 OK for BYE
CM_SERVICE_REQ
ASS_REQ
ASS_CMP
INVITE
100 Trying
180 Ringing
200 OK
ACK
CLEAR_REQ
BYE
CLEAR_CMD
The procedure of a mobile originated call (MOC) through the SIP trunks between the
CSOFTX3000 devices is as follows:
1. An ordinary mobile subscriber initiates a CM_SERVICE_REQ.
2. The CSOFTX3000 sends an ASS_REQ to the BSS.
3. The BSS returns an ASS_CMP.
4. After number analysis, the CSOFTX3000 determines that the outgoing office interacts
with the ingoing office through SIP. At the same time, the CSOFTX3000 sends an
INVITE containing the calling bearer information in the message body to the called
office.
5. The called office returns a 100 Trying to the CSOFTX3000, indicating that it receives
the request message and the message processing is in progress.
6. The CSOFTX3000 receives a 180 Ringing.
7. If the called subscriber picks up the phone, the called office sends a 200 OK to the local
CSOFTX3000, containing the called bearer information in the message body.
8. After the MGW fulfils bearer setup under the control of the local CSOFTX3000, the
local CSOFTX3000 sends an ACK to the peer office, indicating the setup of the
signaling path.
9. If the calling subscriber hangs up, the CSOFTX3000 receives a CLEAR_REQ. At the
same time, it sends a BYE to the called office and a CLEAR_CMD to the BSS on the
calling side. On receiving the BYE, the called office sends a 200 for BYE to the
CSOFTX3000. The BSS sends a CLEAR_CMP to confirm the disconnection of the call.
10. If the called subscriber hangs up, the called office sends a BYE to the local
CSOFTX3000. On receiving the BYE, the local CSOFTX3000 returns a 200 for BYE.
At the same time, it sends a CLEAR_CMD to the BSS on the calling side. The BSS
returns a CLEAR_CMP.
IAM
INVITE
IAM
100 Trying
ACM
180 Ringing
ACM ANM
200 OK
ANM
ACK
REL
BYE
REL
RLC
200 OK
RLC
The procedure for transparently transmitting the PSTN message through SIPI is as follows:
1. After a PSTN subscriber dials, LS A sends an IAM to CSOFTX3000 A.
2. CSOFTX3000 A preserves the received IAM in an INVITE message body that it sends
to CSOFTX3000 B.
3. CSOFTX3000 B extracts the IAM from the INVITE and sends the IAM to LS B.