[OpenSIPS-Users] SIP message relay order
Bogdan-Andrei Iancu
bogdan at opensips.org
Tue Feb 7 07:35:25 EST 2017
Hi Nick,
It is risky to do a sync sleep as you keep the process blocked, so the
ability of OpenSIPS to handle new messages will decrease .
Either do async sleep, either simple drop it to force a retransmissions
in 500ms - much simpler :)
Regards,
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com
On 02/07/2017 12:22 PM, Nick Altmann wrote:
> The easies way we use in such cases is:
> if (is_method("INVITE")) usleep("500");
> for in-dialog INVITEs (inside loose_route() / match_dialog() section).
>
> It will delay slightly all reINVITES, but also will guarantee correct
> order of packets.
>
> 2017-02-06 22:46 GMT+03:00 Stas Kobzar <stas.kobzar at modulis.ca
> <mailto:stas.kobzar at modulis.ca>>:
>
> Hello Bogdan,
>
> In my case, ACK for previous INVITE has already been received by
> OpenSIPS, but not sent yet.
> In this case, will the variable $DLG_status still equals 3 ?
>
> Thanks
>
> On Sun, Feb 5, 2017 at 11:15 AM, Bogdan-Andrei Iancu
> <bogdan at opensips.org <mailto:bogdan at opensips.org>> wrote:
>
> Hi Stas,
>
> Such races may happen at application level or even at network
> level (when using UDP) - so if you have 2 packets very close
> as time, they may swap. That is SIP :)
>
> The full guilt is in the UAC device, IMHO - it should let some
> time gap between the ACK and re-INVITE, to eliminate any
> possible races.
>
> Now, what you can do is to use the dialog module and to check
> the dialog state when receiving the re-invite. If $DLG_status
> is /3/ (Confirmed by a final reply but no ACK received yet),
> drop with no reply the re-INVITEs (to force a later
> retransmission) :
> http://www.opensips.org/html/docs/modules/2.2.x/dialog.html#id297400
> <http://www.opensips.org/html/docs/modules/2.2.x/dialog.html#id297400>
>
> Regards,
>
> Bogdan-Andrei Iancu
> OpenSIPS Founder and Developer
> http://www.opensips-solutions.com
> <http://www.opensips-solutions.com>
>
> On 02/02/2017 10:31 PM, Stas Kobzar wrote:
>> Hello List,
>> My call flow has initial INVITE and re-INVITE to update RTP
>> IP/port.
>> Usually everything works well, but sometimes OpenSIPS come up
>> with following example:
>> UA OpenSIPS PSTN GW
>> -------------------------------------------
>> INV(CSeq: 100) -----> | ---> INV(CSeq: 100)
>> <---- 200 OK | <--- 200 OK
>> (UA sends ACK then new INVITE)
>> ACK(CSeq: 100) -----> |
>> reINV(Cseq: 101) ---> |
>> (OpenSIPS relays first INVITE then ACK)
>> | ---> reINV(CSeq: 101)
>> | ---> ACK(CSeq: 100)
>> When PSTN gateway receives re-INVITE before ACK for previous
>> INVITE
>> it responds 500 with Retry-After header.
>> This is correct behaviour which conforms to the RFC 3261
>> section 14.2
>> My question is:
>> Is it possible to assure order of received and relayed
>> messages within the same SIP session? Is there any
>> configuration parameter?
>> Thank you,
>> --
>>
>> Stas Kobzar
>>
>> Developeur VoIP / VoIP Developer
>>
>> ModulisĀ.ca Inc.
>>
>> # Bureau / Office: 514-284-2020 x 246 <tel:%28514%29%20284-2020>
>>
>> Email: s <http://firstname.lastname>tas.kobzar at modulis.ca
>>
>> https://www.modulis.com <https://www.modulis.com/>
>>
>> _______________________________________________
>> Users mailing list
>> Users at lists.opensips.org <mailto:Users at lists.opensips.org>
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>> <http://lists.opensips.org/cgi-bin/mailman/listinfo/users>
>
> --
>
> Stas Kobzar
>
> Developeur VoIP / VoIP Developer
>
> ModulisĀ.ca Inc.
>
> # Bureau / Office: 514-284-2020 x 246
>
> Email: s <http://firstname.lastname>tas.kobzar at modulis.ca
>
> https://www.modulis.com <https://www.modulis.com/>
>
> _______________________________________________ Users mailing list
> Users at lists.opensips.org <mailto:Users at lists.opensips.org>
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
> <http://lists.opensips.org/cgi-bin/mailman/listinfo/users>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20170207/b5a4af37/attachment.html>
More information about the Users
mailing list