[OpenSIPS-Users] Use of multiple outgoing TCP Trunks with B2B

xaled xaled at web.de
Tue Feb 12 08:02:00 EST 2019


We have a use case with some specific requirements on the TCP connection usage by the outgoing register trunk. Requirements are imposed by the service provider and cannot be modified by us.

a) Trunk must use TCP.
b) There has to be a registration over an established TCP connection.
c) INVITEs can be send only over established TCP connection that was previously used for successful registration.

I managed to get around this limitations by using uac_registrant and b2b modules. I also set tcp_connection_lifetime=3600 to have the TCP connection open for a pretty long time between possible SIP communications. B2B module reuses TCP connection established by uac_registrant and it works so far. 

Now there is another limitation on this trunk and it is the number of parallel calls. We need more parallel calls then a single trunk is allowed to have. We can have additional trunks and multiply the capacity. I added additional trunk credentials to the uac_registrant DB and multiple registrations are successfully established. 

Here come the problems:

1) outgoing INVITE does not reuse any of the established TCP connection. Instead the new TCP connection is established.
2) Even if INVITE would reuse one of the established TCP connections the credentials used by INVITE have to match the ones that were used during the registration.

Is there anything that can be done to correlate TCP connections and credentials between uac_registrant and B2B modules? 

In our case It would be enough to have a random pick of registered trunk with established TCP connection and relevant credentials for every forwarded INVITE to use additional capacity given by additional trunks.


More information about the Users mailing list