Forum Discussion

Tony_Li_89728's avatar
Tony_Li_89728
Historic F5 Account
May 14, 2007

SIP session persistence base on the "voicexml" part

Requirment:

 

 

LTM load balance App Servers,and the App Servers will initiate the session to one media server for the content through LTM,this media server will response to app server's VS,the response should go back to the initial server.so we need to do the persistence base on the voicexml part which the media server will take it when it response back to the app server VS.

 

 

The Description:

 

 

In the below diagram, Black line represents SIP channel and blue line represents HTTP。

 

When Application Server sends out the initial Invite it contains a parameter in its request URI. The name of the parameter is “voicexml” and the value is an application defined URL (with a query string) http://10.130.8.250:80/JMSCTestManager/ocmp%3fappSessionID%3dapplicationIDxxx in this case.

 

The media server will send an HTTP GET request to the above mentioned URL to retrieve the vxml script to execute. And the application server will return the vxml script in its response to this HTTP GET request.

 

 

So the requirement on F5 is to bind together the SIP session and the HTTP session based on the above mentioned user defined URL. i.e. the HTTP request should be processed by the same application server which has defined this URL in the INVITE that it sent out before.

 

 

The Diagram:
  • Deb_Allen_18's avatar
    Deb_Allen_18
    Historic F5 Account
    Seems like the solution is to send the HTTP request back to the originating server's real IP, rather than the virtual IP.

     

     

    An iRule on the SIP VS could be used to modify the the outbound request URI parameter, replacing the VS IP address with the real server's IP address (use the LB::server command in the LB_SELECTED event).

     

     

    Short of that, you'd need to have something in the request to indicate the server to which the request should be load balanced.

     

     

    HTH

     

    /deb