SIP Session Timer Overview

 

 

The IMG 2020 supports SIP Session Timers which is an extension of SIP RFC 2543 that allows a periodic refreshing of a SIP session using the RE-INVITE message. The refreshing allows both the user agent and proxy to determine if the SIP session is still active. The SIP Session Timer is a keep alive mechanism for SIP sessions that allow User Agents (UA) or proxies to determine the status of a session and to release it if it is not active, even if a BYE has not been received.

When a UAC (User Agent Client) sends an INVITE, it includes a supported header field with the option tag 'timer'. This indicates support for this extension. The request passes through proxies, any one of which may have an interest in establishing a session timer. Each proxy can insert a Session-Expires header field and a Min-SE header field into the request (if none is already there) or alter the value of existing Session-Expires and Min-SE header fields.

If the Session-Expires interval is too low for a proxy (lower than the value of Min-SE that the proxy would wish to assert), the proxy rejects the request with a 422 response. That response contains a Min-SE header field identifying the minimum session interval it is willing to support. The UAC will try again, this time including the Min-SE header field in the request. The header field contains the largest Min-SE header field it observed in all 422 responses previously received. This way, the minimum timer meets the constraints of all proxies along the path.

After several INVITE/422 iterations, the request eventually arrives at the UAS. The UAS can adjust the value of the session interval as if it were a proxy; when done, it places the final session interval into the Session-Expires header field in a 2xx response. The Session-Expires header field also contains a 'refresher' parameter, which indicates who is doing the refreshing -- the UA that is currently the UAC, or the UA that is currently the UAS. As the 2xx response travels back through the proxy chain, each proxy can observe the final session interval but can't change it.   

From the Session-Expires header field in the response, both UA's know that a session timer is active, when it will expire, and who is refreshing. At some point before the expiration, the currently active refresher generates a session refresh request, which is a re-INVITE or UPDATE request. If the refresher never gets a response to that session refresh request, it sends a BYE to terminate the session. Similarly, if the other side never gets the session refresh request before the session expires, it sends a BYE.   

The refresh requests sent once the session is established are processed identically to the initial requests, as described above. This means that a successful session refresh request will extend the session, as desired.

RFC 4028 Session Timers in the Session Initiation Protocol (SIP)

Call Flows

Refer to SIP Session Timer Call Flows topic.

Configuration

The procedure below explains how to configure the IMG 2020 for SIP Session Timer Feature. Before configuring the SIP Session Timer feature, the IMG 2020 must have an initial configuration created on it. Follow the Basic Configurations procedure before proceeding onto configuring the SIP Session Timer feature.

Create a Signaling Gateway Profile (SGP) for SIP Session Timer Feature

  • Right click on the Profiles object and select New SIP Profile. The first SIP Profile created is a default SIP Profile and cannot be modified. Disregard this profile

  • Right click on the Profiles object and select New SIP Profile again. In the SIP Profile object either enter a name that identifies this profile in the Name field or accept the default entry. For more information refer to the SIP Profile - SGP topic.

  • Right click on the SIP Profile object created and select New SIP Session Timer. A Session Timer object gets created. Refer to the SIP Profile - Session Timer topic for more information on configuring this object.

Create an External Network Element

The SIP Channel group that will get created is used to communicate with an external SIP entity. Create an External Network Element and then an external remote gateway that the SIP channel group will transmit the messaging to.

  • Right click on the Dialogic object and select New External Network Elements. The External Network Elements object is a container object and no configuration is needed in this object. Refer to the External Network Elements for more information.

  • Right click on External Network Elements object and select New External Gateways. The External Gateways object is also a container object. Under the External Gateways object, multiple individual gateways can be created. Refer to External Gateways topic for more information.

  • Right Click on External Gateways object and select New External Gateway. Enter a name in the Name field to identify the gateway being created. Select SIP from drop down menu in the Gateway Signaling Type field and select the SIP Profile from SIP Profile field drop down menu. Refer to the External Gateway for more information.

 

  • Enter a Name into the Name field. In this example the name Session_Timer was entered.

  • Select SIP from drop down menu in the Protocol field.

  • Enter IP address for this gateway

  • Select the SIP Profile created earlier from drop down menu in the SIP Profile field.

Configure SIP Signaling

The configuration above displays how to configure the SIP Profile and External SIP Gateway so that the SIP Session Timer is configured. The next step is to configure the SIP signaling stack and SIP Channel Groups. Refer to the Configure SIP (Single SIP IP) topic for a procedure on how to configure the SIP functionality.

Additional Information

  • If support of session timer is disabled, the supported header in an outgoing request will not contain the tag timer. If the incoming request has the required header that contains the tag timer, the request will be rejected with 420 response code.

  • If support of session timer is enabled, the IMG 2020 will always request a session timer. Depending on the configuration, the IMG 2020 may enforce the session timer even if the remote gateway does not support it.  

  • Session refresh timer will be one half of the session interval. Session end timer will be the two thirds of the session interval, or the session interval minus 32 seconds, whichever is larger.

  • The IMG 2020 can choose to use re-INVITE or UPDATE to do the refresh. If it is configured to use UPDATE, but the remote gateway does not support UPDATE, the IMG 2020 will use re-INVITE instead.

  • If re-INVITE is used, there will be an SDP on it. If UPDATE is used, there will be NO SDP on it.

  • A re-INVITE or UPDATE request sent within a dialog for purpose other than session refreshes will also have the effect of refreshing the session, and its processing will follow the procedures described below.

Return to Documentation Home I Return to Sangoma Support