[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