opensips and multiple rtpengine instances

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

opensips and multiple rtpengine instances

Vitalii Aleksandrov
Hello opensips users,

has anybody tried to configure opensips with multiple rtpengine sockets?

Logically thinking offer/answer from initial INVITE/OK and from all
in-dialog messages must go to the same instance and opensips can load
balance only initial INVITEs.
I briefly compared opensips/rtpengine and kamaio/rtpengine modules and
found that this logic is present only in kamailio. Does it really work
in opensips as expected?


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: opensips and multiple rtpengine instances

Johan De Clercq
I remember that somebody from smartvox  opened an issue on this (it was either Pete Kelly or John Quick).

Pete,John
do you recall ?

Op vr 26 apr. 2019 om 15:15 schreef Vitalii Aleksandrov <[hidden email]>:
Hello opensips users,

has anybody tried to configure opensips with multiple rtpengine sockets?

Logically thinking offer/answer from initial INVITE/OK and from all
in-dialog messages must go to the same instance and opensips can load
balance only initial INVITEs.
I briefly compared opensips/rtpengine and kamaio/rtpengine modules and
found that this logic is present only in kamailio. Does it really work
in opensips as expected?


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: opensips and multiple rtpengine instances

Vitalii Aleksandrov


It happened that rtpengine with multiple rtp workers sometimes receives RTP packets ordered sequentially but forwards them a bit reordered introducing out-of-order frames. With one rtp worker everything works fine. The idea was to start a couple of single threaded rtpengines and loadbalance from opensips. But it looks like not with the current opensips/rtpengine module.
I remember that somebody from smartvox  opened an issue on this (it was either Pete Kelly or John Quick).

Pete,John
do you recall ?

Op vr 26 apr. 2019 om 15:15 schreef Vitalii Aleksandrov <[hidden email]>:
Hello opensips users,

has anybody tried to configure opensips with multiple rtpengine sockets?

Logically thinking offer/answer from initial INVITE/OK and from all
in-dialog messages must go to the same instance and opensips can load
balance only initial INVITEs.
I briefly compared opensips/rtpengine and kamaio/rtpengine modules and
found that this logic is present only in kamailio. Does it really work
in opensips as expected?


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: opensips and multiple rtpengine instances

Răzvan Crainea-2
The RTPengine module in OpenSIPS simply instructs the server to
start/stop the sessions, and adds a few control flags. It does not, by
any means, handle the RTP packets order.
The module ensures that for a specific callid, *all* initial and
sequential messages go to the same RTPengine go to the same instance,
if, of course, you are using the same RTPEngine set for that call.

So to be honest, I can't say I understand what's happening in your
setup. Can you give us a few more indications?

Best regards,
Răzvan

On 4/26/19 6:21 PM, Vitalii Aleksandrov wrote:

>
> It happened that rtpengine with multiple rtp workers sometimes receives
> RTP packets ordered sequentially but forwards them a bit reordered
> introducing out-of-order frames. With one rtp worker everything works
> fine. The idea was to start a couple of single threaded rtpengines and
> loadbalance from opensips. But it looks like not with the current
> opensips/rtpengine module.
>> I remember that somebody from smartvox  opened an issue on this (it
>> was either Pete Kelly or John Quick).
>>
>> Pete,John
>> do you recall ?
>>
>> Op vr 26 apr. 2019 om 15:15 schreef Vitalii Aleksandrov
>> <[hidden email] <mailto:[hidden email]>>:
>>
>>     Hello opensips users,
>>
>>     has anybody tried to configure opensips with multiple rtpengine
>>     sockets?
>>
>>     Logically thinking offer/answer from initial INVITE/OK and from all
>>     in-dialog messages must go to the same instance and opensips can load
>>     balance only initial INVITEs.
>>     I briefly compared opensips/rtpengine and kamaio/rtpengine modules
>>     and
>>     found that this logic is present only in kamailio. Does it really
>>     work
>>     in opensips as expected?
>>
>>
>>     _______________________________________________
>>     Users mailing list
>>     [hidden email] <mailto:[hidden email]>
>>     http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>
>>
>> _______________________________________________
>> Users mailing list
>> [hidden email]
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
> _______________________________________________
> Users mailing list
> [hidden email]
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>

--
Răzvan Crainea
OpenSIPS Core Developer
   http://www.opensips-solutions.com
Meet the OpenSIPS team at the next OpenSIPS Summit:
   https://www.opensips.org/events

_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: opensips and multiple rtpengine instances

Vitalii Aleksandrov
Hi,
> The RTPengine module in OpenSIPS simply instructs the server to
> start/stop the sessions, and adds a few control flags. It does not, by
> any means, handle the RTP packets order.
Sure. It's an rtpengine's problem. Had a talk with Richard Fuchs and he
explained what exactly happens in rtpengine. It can be rewritten a bit
to avoid possible OOO packets generation, but that's completely another
topic. Just explained why I need more than 1 rtpengine instance.
> The module ensures that for a specific callid, *all* initial and
> sequential messages go to the same RTPengine go to the same instance,
> if, of course, you are using the same RTPEngine set for that call.
>

My bad. I've tested it and it works fine and all sip messages of a call
were sent to the same rtpengine instance. Carefully checked
rtpengine.c:select_rtpe_node() and finally understood how it selects an
rtpengine node. Calculating it statelessly is even better than having a
hash table with all active calls and their node_id like it's done in
correspondent kamailio module.

_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users