I should add it does not matter if I used the rtpengine database table or
use a socket config in the Kamailio configuration.  A new websocket is
created for every request.

On Wed, Jan 8, 2025 at 12:27 PM Knserbrave <[email protected]> wrote:

> I simplified my Kamailio configuration to have a statically defined socket
> to ws://<RFC 1918 addr>:12211
>
> I then captured PCAP using tcpdump on my media proxy with rtpengine and
> found a new websocket is created for the offer, answer, and delete.
>
> To answer the first question, we would like to use websocket to ensure the
> offer, answer, and delete all go to the same media proxy node for a given
> dialog.  The idea was if we were to use a network load balancer, we could
> anchor the path to a single media proxy for the life of the websocket.
>
> However, since a new websocket is created for every offer, answer, and
> delete message, it's no different than using UDP.
>
> I'm not quite sure why websocket is even a viable transport for rtpengine
> if a new websocket is created for every request.  I suspect I am missing
> configuration that would achieve the functionality I seek.
>
> On Wed, Jan 8, 2025 at 11:50 AM Knserbrave <[email protected]> wrote:
>
>> 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.
>>
>> On Wed, Jan 8, 2025 at 11:47 AM Knserbrave <[email protected]> wrote:
>>
>>> test
>>>
>>
__________________________________________________________
Kamailio - Users Mailing List - Non Commercial Discussions -- 
[email protected]
To unsubscribe send an email to [email protected]
Important: keep the mailing list in the recipients, do not reply only to the 
sender!

Reply via email to