|
Overview of SIP
Session Initiation Protocol (SIP) is an ASCII-based, application-layer control protocol that can be used to establish, maintain, and terminate calls between two or more endpoints. SIP is an alternative protocol developed by the Internet Engineering Task Force (IETF) for multimedia conferencing over IP. SIP features are compliant with IETF RFC 2543, SIP: Session Initiation Protocol, published in March 1999.
Like other VoIP protocols, SIP is designed to address the functions of signaling and session management within a packet telephony network. Signaling allows call information to be carried across network boundaries. Session management provides the ability to control the attributes of an end-to-end call.
SIP Capabilities
SIP provides the following capabilities:
• Determines the location of the target endpoint—SIP supports address resolution, name mapping, and call redirection.
• Determines the media capabilities of the target endpoint—SIP determines the lowest level of common services between the endpoints through Session Description Protocol (SDP). Conferences are established using only the media capabilities that can be supported by all endpoints.
• Determines the availability of the target endpoint—If a call cannot be completed because the target endpoint is unavailable, SIP determines whether the called party is connected to a call already or did not answer in the allotted number of rings. SIP then returns a message indicating why the target endpoint was unavailable.
• Establishes a session between the originating and target endpoints—If the call can be completed, SIP establishes a session between the endpoints. SIP also supports midcall changes, such as the addition of another endpoint to the conference or the changing of a media characteristic or codec.
• Handles the transfer and termination of calls—SIP supports the transfer of calls from one endpoint to another. During a call transfer, SIP simply establishes a session between the transferee and a new endpoint (specified by the transferring party) and terminates the session between the transferee and the transferring party. At the end of a call, SIP terminates the sessions among all parties.
SIP Components
SIP is a peer-to-peer protocol. The peers in a session are called user agents (UAs). A UA can function in one of the following roles:
• User-agent client (UAC)—A client application that initiates the SIP request.
• User-agent server (UAS)—A server application that contacts the user when a SIP request is received and that returns a response on behalf of the user.
Typically, a SIP endpoint is capable of functioning as both a UAC and a UAS, but functions only as one or the other per transaction. Whether the endpoint functions as a UAC or a UAS depends on the user agent that initiated the request.
From an architectural standpoint, the physical components of a SIP network can be grouped into two categories: clients (endpoints) and servers.
Figure S-01: SIP Architecture
SIP Clients
• Phones—Can act as either UAS or UAC.
– Softphones (PCs that have phone capabilities installed) and Aliwei SIP IP phones can initiate SIP requests and respond to requests.
– ephones—IP phones that are not configured on the gateway.
• Gateways—Provide call control. Gateways provide many services, the most common being a translation function between SIP conferencing endpoints and other terminal types. This function includes translation between transmission formats and between communications procedures. In addition, the gateway translates between audio and video codecs and performs call setup and clearing on both the LAN side and the switched-circuit network side.
SIP Servers
• Proxy server—Receives SIP requests from a client and forwards them on the client's behalf. Basically, proxy servers receive SIP messages and forward them to the next SIP server in the network. Proxy servers can provide functions such as authentication, authorization, network access control, routing, reliable request retransmission, and security.
• Redirect server—Provides the client with information about the next hop or hops that a message should take and then the client contacts the next-hop server or UAS directly.
• Registrar server—Processes requests from UACs for registration of their current location. Registrar servers are often co-located with a redirect or proxy server.
SIP Methods
There are six methods used by the SIP Clients.
INVITE |
The INVITE support handles an initial INVITE for the same Call ID. The INVITE permits CODEC changes. |
ACK |
Confirm a response |
OPTIONS |
The SIP gateway does not generate OPTIONS, however, it does responds to OPTIONS methods. |
BYE |
User-agent try to release a calling |
CANCEL |
Cancel a calling |
REGISTER |
In SIP, there is no requirement for a SIP gateway to register using this method. Therefore, the gateway does not generate or process this method. |
SIP Responses
1xx Response—Information Responses
1xx Response |
Comments |
100 Trying |
The SIP gateway generates a 100 Trying response for an incoming INVITE. The gateway stops the retransmission of INVITEs once it has received a 100 Trying response. After receiving a 100 Trying response, the gateway waits for a 180 Ringing or a 200 OK response. |
180 Ringing |
The SIP gateway generates a 180 Ringing response when the called party has been located and is being alerted. On receiving a 180 Ringing response, the gateway waits for a 200 OK response. |
181 Call is being forwarded |
The SIP gateway does not generate these responses. The gateway processes a 181 Call is being forwarded response the same way that it processes the 100 Trying response. |
182 Queued |
2xx Response—Successful Responses
2xx Response |
Comments |
200 OK |
None. |
3xx Response—Redirection Responses
3xx Response |
Comments |
300 Multiple Choices |
a second contact is tried only if the first contact does not return a 180 Ringing, 200 OK, 486 Busy, or a 600 Busy everywhere response. The SIP gateway does not generate this response. The gateway contacts the new address in the Contact header field. |
301 Moved Permanently |
302 Moved Temporarily |
305 Use Proxy |
The SIP gateway does not generate these responses. The gateway contacts the new address in the Contact header field. |
380 Alternate Service |
4xx Response—Request Failure Responses
4xx Response |
Comments |
400 Bad Request |
The SIP gateway generates a 400 Bad Request response for a erroneous request. For an incoming response, the gateway initiates a graceful call disconnect (during which the caller hears a busy or fast busy tone) before clearing the call request. |
401 Unauthorized |
The SIP gateway does not generate these 4xx responses. For an incoming response, the gateway initiates a graceful call disconnect (during which the caller hears a busy or fast busy tone) before clearing the call request. |
402 Payment Required |
403 Forbidden |
404 Not Found |
The SIP gateway generates the 404 Not Found response when it is unable to locate the callee. For an incoming response, the gateway initiates a graceful call disconnect (during which the caller hears a busy or fast busy tone) before clearing the call request. |
405 Method Not Allowed |
The SIP gateway generates a 405 Method Not Allowed for an invalid method. For an incoming response, the gateway initiates a graceful call disconnect (during which the caller hears a busy or fast busy tone) before clearing the call request. |
406 Not Acceptable |
The SIP gateway does not generate a 406 Not Acceptable response. For an incoming response, the gateway initiates a graceful call disconnect (during which the caller hears a busy or fast busy tone) before clearing the call request. |
407 Proxy Authentication Required |
The SIP gateway does not generate these 4xx responses. For an incoming response, the gateway initiates a graceful call disconnect (during which the caller hears a busy or fast busy tone) before clearing the call request. |
408 Request Timeout |
409 Conflict |
410 Gone |
411 Length Required |
413 Request Entity Too Large |
414 Request—URL Too Long |
415 Unsupported Media |
420 Bad Extension |
For an incoming response, the gateway initiates a graceful call disconnect (during which the caller hears a busy or fast busy tone) before clearing the call request. |
480 Temporarily Unavailable |
The SIP gateway does not generate these 4xx responses. For an incoming response, the gateway initiates a graceful call disconnect (during which the caller hears a busy or fast busy tone) before clearing the call request. |
481 Call Leg/Transaction Does Not Exist |
482 Loop Detected |
483 Too Many Hops |
484 Address Incomplete |
485 Ambiguous |
486 Busy Here |
5xx Response—Server Failure Responses
5xx Response |
Comments |
500 Internal Server Error |
The SIP gateway generates the 500, 503, and 505 responses.
For an incoming response, the SIP gateway sends a new request if an additional contact address is present. If an additional contact address is not present, the gateway initiates a graceful call disconnect. |
501 Not Implemented |
502 Bad Gateway |
503 Service Unavailable |
504 Gateway Timeout |
505 Version Not Supported |
6xx Response—Global Responses
6xx Response |
Comments |
600 Busy Everywhere |
The SIP gateway does not generate these 6xx responses. For an incoming response, the gateway initiates a graceful call disconnect. |
603 Decline |
604 Does Not Exist Anywhere |
606 Not Acceptable |
How SIP Works
SIP is a simple, ASCII-based protocol that uses requests and responses to establish communication among the various components in the network and to ultimately establish a conference between two or more endpoints.
Users in a SIP network are identified by unique SIP addresses. A SIP address is similar to an e-mail address and is in the format of sip:userID@gateway.com. The user ID can be either a user name or an E.164 address. The gateway can be either a domain (with or without a hostname) or a specific internet IP address.
Users register with a registrar server using their assigned SIP addresses. The registrar server provides this information to the location server upon request.
When a user initiates a call, a SIP request is sent to a SIP server (either a proxy or a redirect server). The request includes the address of the caller (in the From header field) and the address of the intended called party (in the To header field).
Over time, a SIP end user might move between end systems. The location of the end user can be dynamically registered with the SIP server. The location server can use one or more protocols (including finger, rwhois, and LDAP) to locate the end user. Because the end user can be logged in at more than one station and because the location server can sometimes have inaccurate information, it might return more than one address for the end user. If the request is coming through a SIP proxy server, the proxy server tries each of the returned addresses until it locates the end user. If the request is coming through a SIP redirect server, the redirect server forwards all the addresses to the caller in the Contact header field of the invitation response.
How SIP Works with a Proxy Server
When communicating through a proxy server, the caller UA sends an INVITE request to the proxy server and then the proxy server determines the path and forwards the request to the called party
Figure:S-02 SIP INVITE Request Through a Proxy Server
The called UA responds to the proxy server, which then forwards the response to the caller
Figure:S-03 SIP Response Through a Proxy Server
When both parties respond with an acknowledgement (SIP ACK message), the proxy server forwards the acknowledgments to their intended party and a session, or conference, is established between them. The Real-time Transfer Protocol (RTP) is then used for communication across the connection now established between the caller and called UA
Figure:S-04 SIP Session Through a Proxy Server
How SIP Works with a Redirect Server
When communicating through a redirect server, the caller UA sends a SIP INVITE request to the redirect server and then the redirect contacts the location server to determine the path to the called party and sends that information back to the caller UA. The caller UA then acknowledges receipt of the information.
Figure: S-05 SIP INVITE Through a Redirect Server
The caller UA then sends a SIP INVITE request directly to the device indicated in the redirect information, bypassing the redirect server. (The target device at this stage could be either the called UA itself or a proxy server that will forward the request.) Once the request reaches the called UA, the called UA sends a response and, if it is a SIP 200 OK message, the caller UA responds with a SIP ACK message to acknowledge 200 OK response. A session is then established between the two endpoints using RTP for communication between the caller and called UAs.
Figure:S-06 SIP Session Through a Redirect Server
SIP Call Flows
SIP Gateway-to-SIP Gateway—Call Setup and Disconnect
Following figure shows a successful gateway-to-gateway call setup and disconnect. The two end users are User A and User B. User A is located at PBX A, which is connected to SIP gateway 1 via a T1/E1. User B is located at PBX B, which is connected to SIP gateway 2 via a T1/E1. User B's phone number is 555-0100. SIP gateway 1 is connected to SIP gateway 2 over an IP network.
The call flow scenario is as follows:
1. User A calls User B.
2. User B answers the call.
3. User B hangs up.
Figure: S-07 SIP Gateway-to-SIP Gateway—Call Setup and Disconnect
The following processes occur in Figure
Process
|
Description |
1. Setup—PBX A to SIP gateway 1 |
Call setup is initiated between PBX A and SIP gateway 1. Setup includes the standard transactions that take place as User A attempts to call User B. |
2. INVITE—SIP gateway 1 to SIP gateway 2 |
SIP gateway 1 sends an INVITE request to SIP gateway 2. The INVITE request is an invitation to User B to participate in a call session. In the INVITE request the following is the case:
• The phone number of User B is inserted in the Request-URI field in the form of a SIP URL. The SIP URL identifies the address of User B and takes a form similar to an email address (user@host where user is the telephone number and host is domain (with or without a hostname) or a numeric network address). For example, the Request-URI field in the INVITE request to User B appears as "INVITE sip:555-0100@example.com; user=phone." The "user=phone" parameter indicates that the Request-URI address is a telephone number rather than a user name.
• PBX A is identified as the call session initiator in the From field.
• A unique numeric identifier is assigned to the call and is inserted in the Call-ID field.
• The transaction number within a single call leg is identified in the CSeq field.
• The media capability User A is ready to receive is specified.
• The port on which SIP gateway 1 is prepared to receive the RTP data is specified. |
3. Call Proceeding—SIP gateway 1 to PBX A |
SIP gateway 1 sends a Call Proceeding message to PBX A to acknowledge the setup request. |
4. Setup—SIP gateway 2 to PBX B |
SIP gateway 2 receives the INVITE request from SIP gateway 1 and initiates call setup with User B via PBX B. |
5. 100 Trying—SIP gateway 2 to SIP gateway 1 |
SIP gateway 2 sends a 100 Trying response to the INVITE request sent by SIP gateway 1. The 100 Trying response indicates that the INVITE request has been received by SIP gateway 2 but that User B has not yet been located and that some unspecified action, such as a database consultation, is taking place. |
6. Call Proceeding—PBX B to SIP gateway 2 |
PBX B sends a Call Proceeding message to SIP gateway 2 to acknowledge the setup request. |
7. Alerting—PBX B to SIP gateway 2 |
PBX B locates User B and sends an Alert message to SIP gateway 2. User B's phone begins ringing. |
8. 180 Ringing—SIP gateway 2 to SIP gateway 1 |
SIP gateway 2 sends a 180 Ringing response to SIP gateway 1. The 180 Ringing response indicates that SIP gateway 2 has located, and is trying to alert, User B. |
9. Alerting—SIP gateway 1 to PBX A |
SIP gateway 1 sends an Alert message to User A via PBX A. The Alert message indicates that SIP gateway 1 has received a 180 Ringing response from SIP gateway 2. User A hears the ringback tone that indicates that User B is being alerted.
At this point, a one-way voice path is established between SIP gateway 1 and PBX A and between SIP gateway 2 and PBX B. A two-way RTP channel is established between SIP gateway 1 and SIP gateway 2. |
10. Connect—PBX B to SIP gateway 2 |
User B answers phone. PBX B sends a Connect message to SIP gateway 2. The Connect message notifies SIP gateway 2 that the connection has been made. |
11. 200 OK—SIP gateway 2 to SIP gateway 1 |
SIP gateway 2 sends a 200 OK response to SIP gateway 1. The 200 OK response notifies SIP gateway 1 that the connection has been made.
If User B supports the media capability advertised in the INVITE message sent by SIP gateway 1, it advertises the intersection of its own and User A's media capability in the 200 OK response. If User B does not support the media capability advertised by User A, it sends back a 400 Bad Request response with a 304 Warning header field. |
12. Connect—SIP gateway 1 to PBX A |
SIP gateway 1 sends a Connect message to PBX A. The Connect message notifies PBX A that the connection has been made. |
13. Connect ACK—PBX A to SIP gateway 1 |
PBX A acknowledges SIP gateway 1's Connect message. |
14. ACK—SIP gateway 1 to SIP gateway 2 |
SIP gateway 1 sends an ACK to SIP gateway 2. The ACK confirms that SIP gateway 1 has received the 200 OK response from SIP gateway 2. |
15. Connect ACK—SIP gateway 2 to PBX B |
SIP gateway 2 acknowledges PBX B's Connect message.
The call session is now active over a two-way voice path via Real-time Transport Protocol (RTP).
At this point, a two-way voice path is established between SIP gateway 1 and PBX A and between SIP gateway 2 and PBX B. A two-way RTP channel is established between SIP gateway 1 and SIP gateway 2. |
16. Disconnect—PBX B to SIP gateway 2 |
Once User B hangs up, PBX B sends a Disconnect message to SIP gateway 2. The Disconnect message starts the call session termination process. |
17. BYE—SIP gateway 2 to SIP gateway 1 |
SIP gateway 2 sends a BYE request to SIP gateway 1. The BYE request indicates that User B wants to release the call. Because it is User B that wants to terminate the call, the Request-URI field is now replaced with PBX A's SIP URL and the From field contains User B's SIP URL. The cseq value is incremented by one. |
18. Release—SIP gateway 2 to PBX B |
SIP gateway 2 sends a Release message to PBX B. |
19. Disconnect—SIP gateway 1 to PBX A |
SIP gateway 1 sends a Disconnect message to PBX A. |
20. Release—PBX A to SIP gateway 1 |
PBX A sends a Disconnect message to SIP gateway 1. |
21. 200 OK—SIP gateway 1 to SIP gateway 2 |
SIP gateway 1 sends a 200 OK response to SIP gateway 2. The 200 OK response notifies SIP gateway 2 that SIP gateway 1 has received the BYE request. |
22. Release Complete—PBX B to SIP gateway 2 |
PBX B sends a Release Complete message to SIP gateway 2. |
23. Release Complete—SIP gateway 1 to PBX A |
SIP gateway 1 sends a Release Complete message to PBX A and the session is terminated. |
SIP Gateway-to-SIP Gateway—Call via SIP Redirect Server
Figure S-08 shows a successful gateway-to-gateway call setup and disconnect via a SIP redirect server. In this scenario, the two end users are identified as User A and User B. User A is located at PBX A. PBX A is connected to SIP gateway 1 via a T1/E1. SIP gateway 1 is using a SIP redirect server. User B is located at PBX B. PBX B is connected to SIP gateway 2 via a T1/E1. User B's phone number is 555-0100. SIP gateway 1 is connected to SIP gateway 2 over an IP network.
The call flow scenario is as follows:
1. User A calls User B through the SIP gateway 1 using a SIP redirect server.
2. User B answers the call.
3. User B hangs up.
Figure:S-08 SIP Gateway-to-SIP Gateway—Call via SIP Redirect Server
The following processes occur in Figure S-08.
Process |
Description |
1. Setup—PBX A to SIP gateway 1 |
Call setup is initiated between PBX A and SIP gateway 1. Setup includes the standard transactions that take place as User A attempts to call User B. |
2. INVITE—SIP gateway 1 to SIP redirect server |
SIP gateway 1 sends an INVITE request to the SIP redirect server. The INVITE request is an invitation to User B to participate in a call session. In the INVITE request the following is the case:
• The phone number of User B is inserted in the Request-URI field in the form of a SIP URL. The SIP URL identifies the address of User B and takes a form similar to an email address (user@host where user is the telephone number and host is a domain (with or without a hostname) or a numeric network address). For example, the Request-URI field in the INVITE request to User B appears as "INVITE sip:555-0100@example.com; user=phone." The "user=phone" parameter distinguishes that the Request-URI address is a telephone number rather than a user name.
• PBX A is identified as the call session initiator in the From field.
• A unique numeric identifier is assigned to the call and is inserted in the Call-ID field.
• The transaction number within a single call leg is identified in the CSeq field.
• The media capability User A is ready to receive is specified.
• The port on which SIP gateway 1 is prepared to receive the RTP data is specified. |
3. 300 Multiple Choice—SIP redirect server to SIP gateway 1 |
The SIP redirect server sends a 300 Multiple Choice response to SIP gateway 1. The 300 Multiple Choice response indicates that the SIP redirect server accepted the INVITE request, contacted a location server with all or part of User B's SIP URL, and the location server provided a list of alternative locations where User B might be located. The SIP redirect server returns these possible addresses to SIP gateway 1 in the 300 Multiple Choice response. |
4. ACK—SIP gateway 1 to SIP redirect server |
SIP gateway 1 acknowledges the 300 Multiple Choice response with an ACK. |
5. INVITE—SIP gateway 1 to SIP gateway 2 |
SIP gateway 1 sends a new INVITE request to SIP gateway 2. The new INVITE request includes the first contact listed in the 300 Multiple Choice response as the new address for User B, a higher transaction number in the CSeq field, and the same Call-ID as the first INVITE request. |
6. Setup—SIP gateway 2 to PBX B |
SIP gateway 2 receives the INVITE request from SIP gateway 1 and initiates call setup with User B through PBX B. |
7. Call Proceeding—SIP gateway 1 to PBX A |
SIP gateway 1 sends a Call Proceeding message to PBX A to acknowledge the setup request. |
8. 100 Trying—SIP gateway 2 to SIP gateway 1 |
SIP gateway 2 sends a 100 Trying response to the INVITE request sent by SIP gateway 1. The 100 Trying response indicates that the INVITE request has been received by SIP gateway 2 but that User B has not yet been located. |
9. Call Proceeding—PBX B to SIP gateway 2 |
PBX B sends a Call Proceeding message to SIP gateway 2 to acknowledge the setup request. |
10. Alerting—PBX B to SIP gateway 2 |
PBX B locates User B and sends an Alert message to SIP gateway 2. User B's phone begins to ring. |
11. 180 Ringing—SIP gateway 2 to SIP gateway 1 |
SIP gateway 2 sends a 180 Ringing response to SIP gateway 1. The 180 Ringing response indicates that SIP gateway 2 has located, and is trying to alert, User B. |
12. Alerting—SIP gateway 1 to PBX A |
SIP gateway 1 sends an Alert message to PBX A. User A hears ringback tone.
At this point, a one-way voice path is established between SIP gateway 1 and PBXA and between SIP gateway 2 and PBX B. A two-way RTP channel is established between SIP gateway 1 and SIP gateway 2. |
13. Connect—PBX B to SIP gateway 2 |
User B answers phone. PBX B sends a Connect message to SIP gateway 2. The Connect message notifies SIP gateway 2 that the connection has been made. |
14. 200 OK—SIP gateway 2 to SIP gateway 1 |
SIP gateway 2 sends a 200 OK response to SIP gateway 1. The 200 OK response notifies SIP gateway 1 that the connection has been made.
If User B supports the media capability advertised in the INVITE message sent by SIP gateway 1, it advertises the intersection of its own and User A's media capability in the 200 OK response. If User B does not support the media capability advertised by User A, it sends back a 400 Bad Request response with a 304 Warning header field. |
15. Connect—SIP gateway 1 to PBX A |
SIP gateway 1 sends a Connect message to PBX A. The Connect message notifies PBX A that the connection has been made. |
16. Connect ACK—PBX A to SIP gateway 1 |
PBX A acknowledges SIP gateway 1's Connect message. |
17. ACK—SIP gateway 1 to SIP gateway 2 |
SIP gateway 1 sends an ACK to SIP gateway 2. The ACK confirms that the 200 OK response has been received.
The call is now in progress over a two-way voice path via RTP. |
18. Connect ACK—SIP gateway 2 to PBX B |
SIP gateway 2 acknowledges PBX B's Connect message.
At this point, a two-way voice path is established between SIP gateway 1 and PBX A and between SIP gateway 2 and PBX B. A two-way RTP channel is established between SIP gateway 1 and SIP gateway 2. |
19.Disconnect—PBX B to SIP gateway 2 |
Once User B hangs up, PBX B sends a Disconnect message to SIP gateway 2. The Disconnect message starts the call session termination process. |
20. BYE—SIP gateway 2 to SIP gateway 1 |
SIP gateway 2 sends a BYE request to SIP gateway 1. The BYE request indicates that User B wants to release the call. Because it is User B that wants to terminate the call, the Request-URI field is now replaced with PBX A's SIP URL and the From field contains User B's SIP URL. |
21. Disconnect—SIP gateway 1 to PBX A |
SIP gateway 1 sends a Disconnect message to PBX A. |
22. Release—SIP gateway 2 to PBX B |
SIP gateway 2 sends a Release message to PBX B. |
23. Release—PBX A to SIP gateway 1 |
PBX A sends a Release message to SIP gateway 1. |
24. 200 OK—SIP gateway 1 to SIP gateway 2 |
SIP gateway 1 sends a 200 OK response to SIP gateway 2. The 200 OK response notifies SIP gateway 2 that SIP gateway 1 has received the BYE request. |
25. Release Complete—PBX B to SIP gateway 2 |
PBX B sends a Release Complete message to SIP gateway 2. |
26. Release Complete—SIP gateway 1 to PBX A |
SIP gateway 1 sends a Release Complete message to PBX A and the session is terminated. |
SIP Gateway-to-SIP Gateway—Call via SIP Proxy Server
Figure S-09 and Figure S-10 show a successful gateway-to-gateway call setup and disconnect via a proxy server. The two end users are User A and User B. User A is located at PBX A, which is connected to SIP gateway 1 via a T1/E1. SIP gateway 1 is using a proxy server. SIP gateway 1 is connected to SIP gateway 2 over an IP network. User B is located at PBX B, which is connected to SIP gateway 2 (a SIP gateway) via a T1/E1. User B's phone number is 555-0100.
In Figure S-09, the record route feature is enabled on the proxy server. In Figure S-10, record route is disabled on the proxy server.
When record route is enabled, the proxy server adds the Record-Route header to the SIP messages to ensure that it is in the path of subsequent SIP requests for the same call leg. The Record-Route field contains a globally reachable Request-URI that identifies the proxy server. When record route is enabled, each proxy server adds its Request-URI to the beginning of the list.
When record route is disabled, SIP messages flow directly through the SIP gateways once a call has been established.
The call flow is as follows:
1. User A calls User B via SIP gateway 1 using a proxy server.
2. User B answers the call.
3. User B hangs up.
Figure:S-09 SIP Gateway-to-SIP Gateway—Call via SIP Proxy Server with Record Route Enabled
The following processes occur in Figure S-09.
Process |
Description |
1. Setup—PBX A to SIP gateway 1 |
Call setup is initiated between PBX A and SIP gateway 1. Setup includes the standard transactions that take place as User A attempts to call User B. |
2. INVITE—SIP gateway 1 to proxy server |
SIP gateway 1 sends an INVITE request to the SIP proxy server. The INVITE request is an invitation to User B to participate in a call session.
In the INVITE request:
• The phone number of User B is inserted in the Request-URI field in the form of a SIP URL. The SIP URL identifies the address of User B and takes a form similar to an email address (user@host where user is the telephone number and host is a domain (with or without a hostname) or a numeric network address). For example, the Request-URI field in the INVITE request to User B appears as "INVITE sip:555-0100@example.com; user=phone." The "user=phone" parameter distinguishes that the Request-URI address is a telephone number rather than a user name.
• PBX A is identified as the call session initiator in the From field.
• A unique numeric identifier is assigned to the call and is inserted in the Call-ID field.
• The transaction number within a single call leg is identified in the CSeq field.
• The media capability User A is ready to receive is specified.
• The port on which SIP gateway 1 is prepared to receive the RTP data is specified. |
3. Call Proceeding—SIP gateway 1 to PBX A |
SIP gateway 1 sends a Call Proceeding message to PBX A to acknowledge the setup request. |
4. INVITE—SIP proxy server to SIP gateway 2 |
The SIP proxy server checks whether its own address is contained in the Via field (to prevent loops), directly copies the To, From, Call-ID, and Contact fields from the request it received from SIP gateway 1, changes the Request-URI to indicate the server to which it intends to send the INVITE request, and then sends a new INVITE request to SIP gateway 2. |
5. 100 Trying—SIP proxy server to SIP gateway 1 |
The SIP proxy server sends a 100 Trying response to SIP gateway 1. |
6. Setup—SIP gateway 2 to PBX B |
SIP gateway 2 receives the INVITE request from the SIP proxy server and initiates call setup with User B via PBX B. |
7. 100 Trying—SIP gateway 2 to SIP proxy server |
SIP gateway 2 sends a 100 Trying response to the SIP proxy server. The SIP proxy server might or might not forward the 100 Trying response to SIP gateway 1. |
8. Call Proceeding—PBX B to SIP gateway 2 |
PBX B sends a Call Proceeding message to SIP gateway 2 to acknowledge the setup request. |
9. Alerting—PBX B to SIP gateway 2 |
PBX B locates User B and sends an Alert message to SIP gateway 2. User B's phone begins to ring. |
10. 180 Ringing—SIP gateway 2 to SIP proxy server |
SIP gateway 2 sends a 180 Ringing response to the SIP proxy server. |
11. 180 Ringing—SIP proxy server to SIP gateway 1 |
The SIP proxy server forwards the 180 Ringing response to SIP gateway 1. |
12. Alerting—SIP gateway 1 to PBX A |
SIP gateway 1 sends an Alert message to User A via PBX A. The Alert message indicates that SIP gateway 1 has received a 180 Ringing response. User A hears the ringback tone that indicates that User B is being alerted.
At this point, a one-way voice path is established between SIP gateway 1 and PBX A and between SIP gateway 2 and PBX B. A two-way RTP channel is established between SIP gateway 1 and SIP gateway 2. |
13. Connect—PBX B to SIP gateway 2 |
User B answers the phone. PBX B sends a Connect message to SIP gateway 2. The connect message notifies SIP gateway 2 that the connection has been made. |
14. 200 OK—SIP gateway 2 to SIP proxy server |
SIP gateway 2 sends a 200 OK response (including the Record-Route header received in the INVITE) to the SIP proxy server. The 200 OK response notifies the SIP proxy server that the connection has been made.
If User B supports the media capability advertised in the INVITE message sent by the SIP proxy server, it advertises the intersection of its own and User A's media capability in the 200 OK response. If User B does not support the media capability advertised by User A, it sends back a 400 Bad Request response with a 304 Warning header field.
The SIP proxy server must forward 200 OK responses upstream. |
15. 200 OK—SIP proxy server to SIP gateway 1 |
The SIP proxy server forwards the 200 OK response that it received from SIP gateway 2 to SIP gateway 1. In the 200 OK response, the SIP proxy server forwards the Record-Route header to ensure that it is in the path of subsequent SIP requests for the same call leg. In the Record-Route field, the SIP proxy server adds its Request-URI. |
16. Connect—SIP gateway 1 to PBX A |
SIP gateway 1 sends a Connect message to PBX A. The Connect message notifies PBX A that the connection has been made. |
17. Connect ACK—PBX A to SIP gateway 1 |
PBX A acknowledges SIP gateway 1's Connect message. |
18. ACK—SIP gateway 1 to SIP proxy server |
SIP gateway 1 sends an ACK to the SIP proxy server. The ACK confirms that SIP gateway 1 has received the 200 OK response from the SIP proxy server. |
19. ACK—SIP proxy server to SIP gateway 2 |
Depending on the values in the To, From, CSeq, and Call-ID field, the SIP proxy server might process the ACK locally or proxy it. If the fields in the ACK match those in previous requests processed by the SIP proxy server, the server proxies the ACK. If there is no match, the ACK is proxied as if it were an INVITE request.
The SIP proxy server forwards SIP gateway 1's ACK response to SIP gateway 2. |
20. Connect ACK—SIP gateway 2 to PBX B |
SIP gateway 2 acknowledges PBX B's Connect message. The call session is now active.
The 2-way voice path is established directly between SIP gateway 1 and SIP gateway 2; not via the SIP proxy server.
At this point, a two-way voice path is established between SIP gateway 1 and PBX A and between SIP gateway 2 and PBX B. A two-way RTP channel is established between SIP gateway 1 and SIP gateway 2. |
21. Disconnect—PBX B to SIP gateway 2 |
After the call is completed, PBX B sends a Disconnect message to SIP gateway 2. The Disconnect message starts the call session termination process. |
22. BYE—SIP gateway 2 to SIP proxy server |
SIP gateway 2 sends a BYE request to the SIP proxy server. The BYE request indicates that User B wants to release the call. Because it is User B that wants to terminate the call, the Request-URI field is now replaced with PBX A's SIP URL and the From field contains User B's SIP URL. |
23. BYE—SIP proxy server to SIP gateway 1 |
The SIP proxy server forwards the BYE request to SIP gateway 1. |
24. Disconnect—SIP gateway 1 to PBX A |
SIP gateway 1 sends a Disconnect message to PBX A. |
25. Release—SIP gateway 2 to PBX B |
After the call is completed, SIP gateway 2 sends a Release message to PBX B. |
26. Release—PBX A to SIP gateway 1 |
PBX A sends a Release message to SIP gateway 1. |
27. 200 OK—SIP gateway 1 to SIP proxy server |
SIP gateway 1 sends a 200 OK response to the SIP proxy server. The 200 OK response notifies SIP gateway 2 that SIP gateway 1 has received the BYE request. |
28. 200 OK—SIP proxy server to SIP v |
The SIP proxy server forwards the 200 OK response to SIP gateway 2. |
29. Release Complete—PBX B to SIP gateway 2 |
PBX B sends a Release Complete message to SIP gateway 2. |
30. Release Complete—SIP gateway 1 to PBX A |
SIP gateway 1 sends a Release Complete message to PBX A and the call session is terminated. |
Figure: S-10 SIP Gateway-to-SIP Gateway—Call via a Proxy Server with Record Route Disabled
The following processes occur in Figure S-10.
Process |
Description |
1. Setup—PBX A to SIP gateway 1 |
Call setup is initiated between PBX A and SIP gateway 1. Setup includes the standard transactions that take place as User A attempts to call User B. |
2. INVITE—SIP gateway 1 to SIP proxy server |
SIP gateway 1 sends an INVITE request to the SIP proxy server. The INVITE request is an invitation to User B to participate in a call session. In the INVITE request the following is the case:
• The phone number of User B is inserted in the Request-URI field in the form of a SIP URL. The SIP URL identifies the address of User B and takes a form similar to an email address (user@host where user is the telephone number and host is a domain (with or without a hostname) or a numeric network address). For example, the Request-URI field in the INVITE request to User B appears as "INVITE sip:555-0100@example.com; user=phone." The "user=phone" parameter distinguishes that the Request-URI address is a telephone number rather than a user name.
• PBX A is identified as the call session initiator in the From field.
• A unique numeric identifier is assigned to the call and is inserted in the Call-ID field.
• The transaction number within a single call leg is identified in the CSeq field.
• The media capability User A is ready to receive is specified.
• The port on which SIP gateway 1 is prepared to receive the RTP data is specified. |
3. Call Proceeding—SIP gateway 1 to PBX A |
SIP gateway 1 sends a Call Proceeding message to PBX A to acknowledge the setup request. |
4. INVITE—SIP proxy server to SIP gateway 2 |
The SIP proxy server checks whether its own address is contained in the Via field (to prevent loops), directly copies the To, From, Call-ID, and Contact fields from the request it received from SIP gateway 1, changes the Request-URI to indicate the server to which it intends to send the INVITE request, and then sends a new INVITE request to SIP gateway 2. |
5. 100 Trying—SIP proxy server to SIP gateway 1 |
The SIP proxy server sends a 100 Trying response to SIP gateway 1. |
6. Setup—SIP gateway 2 to PBX B |
SIP gateway 2 receives the INVITE request from the SIP proxy server and initiates call setup with User B via PBX B. |
7. 100 Trying—SIP gateway 2 to SIP proxy server |
SIP gateway 2 sends a 100 Trying response to the SIP proxy server. The SIP proxy server might or might not forward the 100 Trying response to SIP gateway 1. |
8. Call Proceeding—PBX B to SIP gateway 2 |
PBX B sends a Call Proceeding message to SIP gateway 2 to acknowledge setup request. |
9. Alerting—PBX B to SIP gateway 2 |
PBX B locates User B and sends an Alert message to SIP gateway 2. User B's phone begins to ring. |
10. 180 Ringing—SIP gateway 2 to SIP proxy server |
SIP gateway 2 sends a 180 Ringing response to the SIP proxy server. |
11. 180 Ringing—SIP proxy server to SIP gateway 1 |
The SIP proxy server forwards the 180 Ringing response to SIP gateway 1. |
12. Alerting—SIP gateway 1 to PBX A |
SIP gateway 1 sends an Alert message to User A via PBX A. The Alert message indicates that SIP gateway 1 has received a 180 Ringing response. User A hears the ringback tone that indicates that User B is being alerted.
At this point, a one-way voice path is established between SIP gateway 1 and PBX A and between SIP gateway 2 and PBX B. A two-way RTP channel is established between SIP gateway 1 and SIP gateway 2. |
13. Connect—PBX B to SIP gateway 2 |
User B answers the phone. PBX B sends a Connect message to SIP gateway 2. The connect message notifies SIP gateway 2 that the connection has been made. |
14. 200 OK—SIP gateway 2 to SIP proxy server |
SIP gateway 2 sends a 200 OK response to the SIP proxy server. The 200 OK response notifies the SIP proxy server that the connection has been made.
If User B supports the media capability advertised in the INVITE message sent by the SIP proxy server, it advertises the intersection of its own and User A's media capability in the 200 OK response. If User B does not support the media capability advertised by User A, it sends back a 400 Bad Request response with a 304 Warning header field.
The SIP proxy server must forward 200 OK responses upstream. |
15. 200 OK—SIP proxy server to SIP gateway 1 |
The SIP proxy server forwards the 200 OK response that it received from SIP gateway 2 to SIP gateway 1. |
16. Connect—SIP gateway 1 to PBX A |
SIP gateway 1 sends a Connect message to PBX A. The Connect message notifies PBX A that the connection has been made. |
17. Connect ACK—PBX A to SIP gateway 1 |
PBX A acknowledges SIP gateway 1's Connect message. |
18. ACK—SIP gateway 1 to SIP gateway 2 |
SIP gateway 1 sends an ACK to SIP gateway 2. The ACK confirms that SIP gateway 1 has received the 200 OK response from the SIP proxy server. |
19. Connect ACK—SIP gateway 2 to PBX B |
SIP gateway 2 acknowledges PBX B's Connect message. The call session is now active.
The 2-way voice path is established directly between SIP gateway 1 and SIP gateway 2; not via the SIP proxy server.
At this point, a two-way voice path is established between SIP gateway 1 and PBX A and between SIP gateway 2 and PBX B. A two-way RTP channel is established between SIP gateway 1 and SIP gateway 2. |
20. Disconnect—PBX B to SIP gateway 2 |
After the call is completed, PBX B sends a Disconnect message to SIP gateway 2. The Disconnect message starts the call session termination process. |
21. BYE—SIP gateway 2 to SIP gateway 1 |
SIP gateway 2 sends a BYE request to SIP gateway 1. The BYE request indicates that User B wants to release the call. Because it is User B that wants to terminate the call, the Request-URI field is now replaced with PBX A's SIP URL and the From field contains User B's SIP URL. |
22. Disconnect—SIP gateway 1 to PBX A |
SIP gateway 1 sends a Disconnect message to PBX A. |
23. Release—SIP gateway 2 to PBX B |
After the call is completed, SIP gateway 2 sends a Release message to PBX B. |
24. Release—PBX A to SIP gateway 1 |
PBX A sends a Release message to SIP gateway 1. |
25. 200 OK—SIP gateway 1 to SIP gateway 2 |
SIP gateway 1 sends a 200 OK response to SIP gateway 2. The 200 OK response notifies SIP gateway 2 that SIP gateway 1 has received the BYE request. |
26. Release Complete—PBX B to SIP gateway 2 |
PBX B sends a Release Complete message to SIP gateway 2. |
27. Release Complete—SIP gateway 1 to PBX A |
SIP gateway 1 sends a Release Complete message to PBX A and the call session is terminated. |
|