I failed to link this to the original post. So I'll begin anew. Here was my post.
Hi Kamailio Community,
When testing rtpengine_manage and websockets, I noticed that if the
rtpengine table in the database is not used, a new websocket is created for
every call for a given dialog. That is, when an INVITE is received, an
offer is sent to rtpengine. When the 200 OK or 18[3|0] is received, an
answer is sent. However, the WS identifier often changes and as a result
the request is not sent over the same websocket. This is problematic
particularly when using FQDNs in the Kamailio configuration.
When a load balancer is used between Kamailio and rtpengine, the answer may
arrive at a different rtpengine in the cluster.
After tracing through the source, I could not find a configuration
parameter or set of triggers that I could manipulate to fix this. It leads
me to believe it is only possible to reuse the websocket when the rtpengine
table is used.
Does anybody have more experience than I in this area that may be able to
point me in the right direction, making load balancers for rtpengine_manage
calls possible?
Alex then responded with
Hi,
Without wishing to dismiss the salience of your problem: do you actually need WS?
Henning then responded with
Hello,
so, you are saying that the connection handling behaviour of Kamailio with rtpengine
changes, if you are using database mode compared to not using the database?
I’ve might missed some side-effects, but I think that using rtpengine_manage() should not
affect the handling of Websocket connection (or in fact any other connection) operation
that Kamailio is doing on the SIP level.
The rtpengine_manage() should affect the SDP content of the SIP message body only.
Can you reproduce this behaviour?
Cheers,
Henning
I would like to continue this. I'll detall more in my next post.