Skip to main content

12. - SIP Mobility

 

  • SIP Mobility
  • SIP Call Forking - Parallel
  • SIP Call Forking - Sequential
  • Call Forward - No Answer
  • Call Forward to Voicemail
  • More Proxy Server Details

 

SIP Mobility

  • Sip support users mobility by proxying and redirecting request to a user's current location.
  • The user can be using a PC at work, PC at home, wireless phone, IP Phone or regular phone.
  • The user must register their current location.
  • The proxy server will forward calls to the user's current location.

SIP Call Forking 

SIP call forking is a mechanism used to distribute incoming calls to multiple endpoints simultaneously. SIP call forking can be done in two modes: sequential and parallel.

SIP Call Forking - Parallel

In parallel call forking, the incoming call is sent to all specified endpoints at the same time, and the first endpoint that answers the call receives it. This is useful when you want to make sure that the call is answered as quickly as possible, or if you want to distribute the call load across multiple endpoints.

 

image.png

SIP Call Forking - Sequential

SIP call forking sequential is a call distribution method in which a SIP request is forwarded to multiple destinations sequentially. The request is first sent to the first destination in the list and if it fails to respond or rejects the request, the request is forwarded to the next destination in the list until a successful response is received. This is typically used for applications such as call hunting or sequential ring groups, where a call is routed to a group of users in a pre-defined order.

 

image.png

 

 

In this example a user Graham makes a call to Linda at [email protected], and the user answer on both devices we will have one conversation and 2 call legs (RFC 2543) or dialogs will  (RFC 3261)

image.png

Dialog trace example

The dialog below is based in previous  figure, a dialog is identified by a call identifier, local tag and remote tag

When Graham calls Linda in the dialog below we can see the following:

  • Request-Line: INVITE - this is the first invite sent
  • Call-ID
  • CSeq: 1 Invite  - first sequence for the invite
  • From: "Graham" we can see there is a tag=86aee210, this was added by Graham client
  • To: Linda SIP URI <sip:[email protected]> There is no tag here yet

image.png

  • Request-line: INVITE - this is a Re-INVITE as Cseq is 2, proxy rejected first INVITE as it needed authentication
  • Call-ID: remains the same
  • CSeq: Change to 2 as this is a Re-INVITE, everything else remains the same

image.png

  • Status-Line: 200 OK from Linda phone
  • To: Here at the end we can see the tag on Lindas number tag=ba694f6a
  • From: Here we can see the unique tag on Grahams number which remain the same tag=86aee210
  • Call-ID: The unique call ID remains the same
  • CSeq: 2 Invite - the 200 ok is a response for the Re-INVITE per the Cseq number

If we were to trace the mobile phone, Linda phone tag will be the same the mobile number will have the same SIP URI but it will have its own unique tag, this help to separate the dialogs from each other.

image.png

Dialogs and 'transactions'

Now that the dialog is established, tags are in place, we are talking, from here we can hold, unhold and do any other transactions we've like but all transactions made will be part of the established dialog (or call leg)

image.png

 

 

Branch ID

 

A "branch ID" is a unique identifier that is used to identify a particular SIP transaction within a call. Each SIP message in a transaction has a unique branch ID that is generated by the user agent sending the message. This branch ID is included in the Via header of the SIP message, and is used to match the response message with the original request message. The branch ID allows SIP to be stateful, meaning that it can keep track of the progress of a call and route subsequent messages to the correct destination. When a SIP message is sent, the branch ID is generated by the sender, and it is typically a random string of characters that is unique for each message. The branch ID is included in the Via header of the message, along with other information such as the transport protocol and the IP address of the sender.

image.png

 

RFC 3261 specifies that the branch ID parameter for SIP requests should begin with the string "z9hG4bK" (note that the "K" is uppercase). This is a recommended convention to ensure that the branch ID is globally unique. The "z9hG4bK" string is a fixed prefix that serves as a unique identifier for SIP requests, while the remainder of the branch ID is typically generated randomly or by hashing the request contents. Using a fixed prefix allows SIP elements to quickly identify and process SIP requests that belong to the same transaction.

 

SIP Call Forward - No Answer

SIP call forwarding no answer is a feature that allows incoming calls to be forwarded to another number if the call is not answered after a set number of rings or a certain period of time. This feature is useful when the recipient is unavailable or unable to answer the call.

When an incoming call arrives at a SIP user agent, the user agent will first attempt to answer the call. If the call is not answered after a predetermined number of rings or a specific period of time, the user agent can forward the call to another SIP user agent or phone number.

To implement SIP call forwarding no answer, a user agent must support the SIP call forwarding feature and be configured with the appropriate settings. The user agent must also have access to a SIP proxy or registrar that can handle the call forwarding request.

The SIP call forwarding no answer feature can be configured in various ways. For example, the forwarding number can be specified in the user agent's configuration, or it can be dynamically entered by the user during the call forwarding process. The number of rings or time period before forwarding can also be configured to meet the user's needs.

Overall, SIP call forwarding no answer is a useful feature that helps ensure that important calls are not missed, even if the recipient is unavailable or unable to answer the call.


image.png

 

SIP Call Forward to Voicemail

SIP call forwarding to voicemail is a feature that allows a call to be automatically redirected to a voicemail box when the call is not answered within a certain amount of time. This is useful when a caller is unable to reach the intended recipient and wants to leave a message.

When a call is forwarded to voicemail, the call is routed to the voicemail system instead of the intended recipient's phone. The voicemail system then answers the call and prompts the caller to leave a message, which is stored in the recipient's voicemail box.

To configure SIP call forwarding to voicemail, the user can set a "no answer" or "unavailable" timer on their phone or PBX. When the timer expires, the call is automatically forwarded to the voicemail system. The user can also configure their voicemail box to send an email or text message notification when a new voicemail is received.

SIP call forwarding to voicemail can be a useful tool for businesses and individuals who want to ensure that important messages are not missed. It allows callers to leave messages even if the recipient is unavailable, and provides a convenient way for the recipient to check their messages at a later time.

 

image.png