Re: [OpenSIPS-Users] SIP message relay order

2017-02-09 Thread Stas Kobzar
Hello, Finally, I came up with something that works as I want it. I have tried to drop re-INVITE when DLG_lifetime is < 1sec. I worked. But, as the re-INVITEs were the part of direct media negotiation, I had some "cuts" in the audio in very beginning of the call. So, I do following: if ($DLG_lif

Re: [OpenSIPS-Users] SIP message relay order

2017-02-07 Thread Stas Kobzar
Hi Bogdan, It seems like $DLG_status will not work in my case. But $DLG_lifetime probably can work. 5 seconds might be too long in my case, though. I have re-INVITE almost immediately after initial INVITE (it is Asterisk, trying to renegotiate SDP media IP/port for direct media). I guess 1 secon

Re: [OpenSIPS-Users] SIP message relay order

2017-02-07 Thread Stas Kobzar
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 wrote: > Hi Nick, > > It is risky to do a sync sleep as you keep the process

Re: [OpenSIPS-Users] SIP message relay order

2017-02-07 Thread Bogdan-Andrei Iancu
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 De

Re: [OpenSIPS-Users] SIP message relay order

2017-02-07 Thread Nick Altmann
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 : > Hello Bogdan,

Re: [OpenSIPS-Users] SIP message relay order

2017-02-07 Thread Bogdan-Andrei Iancu
Hi Stas, If the ACK git the loose_route() / match_dialog(), then the state will move to 4. You may also use the $DLG_lifetime when handling the re-INVITE - if it is less than 5 seconds, drop the re-INVITE :) Regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developer http://www.opensips-so

Re: [OpenSIPS-Users] SIP message relay order

2017-02-06 Thread Stas Kobzar
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 wrote: > Hi Stas, > > Such races may happen at application level o

Re: [OpenSIPS-Users] SIP message relay order

2017-02-06 Thread Stas Kobzar
Hello Bogdan and Razvan, Thank you for sharing your ideas. Dropping re-INVITE packet to force retransmission sounds really smart solution for that issue! Also it is easy to implement. I will give it a try. Thanks again! On Sun, Feb 5, 2017 at 11:15 AM, Bogdan-Andrei Iancu wrote: > Hi Stas, >

Re: [OpenSIPS-Users] SIP message relay order

2017-02-05 Thread Bogdan-Andrei Iancu
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 p

Re: [OpenSIPS-Users] SIP message relay order

2017-02-04 Thread Răzvan Crainea
Hi, Stas! I can't think of any way to overcome this. However, re-INVITEs and ACK should be treated in the same manner, without too much processing. My assumption is that you are doing some extra processing on re-INVITEs which might delay its forward. Can you check that? Best regards, Răzvan

[OpenSIPS-Users] SIP message relay order

2017-02-02 Thread Stas Kobzar
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: 10