Forum Discussion

jhardee's avatar
jhardee
Icon for Nimbostratus rankNimbostratus
Feb 10, 2015

Datria Voice LB Configuration

Hello All, Does anyone have experience with the Datria Voice application (http://www.knightedsoftware.com/datria-voice) and the F5 LTM? The way I understand it, the app performs multiple http sessions within one tcp connection and requires each http session to be persistent to a backend server to function. After some troubleshooting, I was able to do this, but it won't load balance to multiple backend servers, instead persisting all of the http sessions to one server.

 

If anyone has specific advice/configuration for this application on the LTM, that would be appreciated. However, ideas on how to load balance and persist for multiplexed http within one tcp connection would also be welcome.

 

--Jeff

 

1 Reply

  • Well, over 400 views of this question and no suggestions. Fear not! After a few rounds of testing and some tweaking, I think we may have arrived at a winner ourselves.

    What I had configured was the following:

    • The virtual server was set with an http profile, cookie persistence with an 8 hour timer (this value was a client request), and the following iRule following SOL7964:

    when HTTP_REQUEST {

      if { [HTTP::cookie names] contains "BIGipServer" } {
    
         LB::detach
    
      }
    

    }

    • The pool was set with Round Robin as the LB method.

    With these settings, the voice calls from the handsets, translated on the voice router through the LTM to the backend servers would complete fine. The main issue was that there wouldn't be the best distribution of the load across the backend servers. Datria Voice does http multiplexing within a tcp connection and there are problems with the communication if there isn't solid persistence going on. Without the iRule, persistence wasn't fully working and there would be call problems.

    Now I have the following settings:

    • The virtual server is set with an http profile, OneConnect profile, and the same cookie persistence profile with the 8 hour tweak.

    • The pool LB method is still Round Robin.

    So far, all testing has been successful. We will be testing in production soon.

    The removal of the iRule and the addition of the OneConnect is not something I thought would be successful (in fact, I tried this but using Universal persistence and there were still problems). This is because I thought that OneConnect was mainly used to optimize idle TCP connections. However, from SOL7208, it states, "When a OneConnect profile is enabled for an HTTP virtual server, and an HTTP client sends multiple requests within a single connection, the BIG-IP system is able to process each HTTP request individually. The BIG-IP system sends the HTTP requests to different destination servers as determined by the load balancing method. Without a OneConnect profile enabled for the virtual server, the BIG-IP system performs load-balancing only once for each TCP connection." This essentially describes this application's requirements for how they multiplex http. I suggest that F5 should add to this statement to highlight OneConnect's use for http multiplexing.

    This may be the first documentation (to my knowledge) of the optimal settings to use on the LTM with Datria Voice. I find that hard to believe but the software consultants have not had experience with using this popular warehouse application on the LTM before in any install they've done (and they've done a lot).

    I'll provide another update when this is confirmed in production.

    --Jeff