[OpenSIPS-Users] SIP message relay order

Stas Kobzar stas.kobzar at modulis.ca
Tue Feb 7 08:38:10 EST 2017


Hi,

I also was thinking about usleep as in Nick's solution.

My OpenSIPS version is 1.11 and async, AFAIK, is available starting with
version 2.1, isn't it?

Thanks,

On Tue, Feb 7, 2017 at 7:35 AM, Bogdan-Andrei Iancu <bogdan at opensips.org>
wrote:

> 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 Developerhttp://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>:
>
>> 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
>> > 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
>>>
>>> Regards,
>>>
>>> Bogdan-Andrei Iancu
>>> OpenSIPS Founder and Developerhttp://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 <%28514%29%20284-2020>
>>>
>>> Email: s <http://firstname.lastname>tas.kobzar at modulis.ca
>>>
>>> https://www.modulis.com
>>>
>>> _______________________________________________
>>> Users mailing listUsers at lists.opensips.orghttp://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>
>>> --
>>
>> Stas Kobzar
>>
>> Developeur VoIP / VoIP Developer
>>
>> ModulisĀ­.ca Inc.
>>
>> # Bureau / Office: 514-284-2020 x 246 <(514)%20284-2020>
>>
>> Email: s <http://firstname.lastname>tas.kobzar at modulis.ca
>>
>> https://www.modulis.com
>> _______________________________________________ Users mailing list
>> Users at lists.opensips.org http://lists.opensips.org/cgi-
>> bin/mailman/listinfo/users
>
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20170207/5ca39361/attachment.html>


More information about the Users mailing list