[OpenSIPS-Users] How to terminate a call, via Opensips, before it being answered?

Ben Newlin Ben.Newlin at genesys.com
Tue Mar 27 13:15:08 EDT 2018


You don’t have to read very far back in the mailing list archives to see that misrouted ACKs are a fairly common problem when implementing SIP proxies. ☺

Mishandling of the Record-Route headers is the common problem, but loss of connectivity with the far end server can occur as well. Because the INVITE transaction is completed, the TM timers will not catch this and the dialog will stay in the CONFIRMED but not ACKed state until the $DLG_timeout expires.

It doesn’t happen very often at all, but if it does and the timeout is set very high then you end up with a stuck call until the timer pops. If you are doing billing on the same endpoint then you potentially end up with a very long call being billed.

There are also other ways to accomplish similar safeguards as this, including OPTIONS or INVITE refreshes using the Dialog module. We are still running 1.11 in production so the INVITE refreshes were not available to us and some of our partners do not accept OPTIONS refreshes. We plan to implement the INVITE refreshes once we have completed the upgrade to 2.X.

Thanks,
Ben Newlin

From: Users <users-bounces at lists.opensips.org> on behalf of Rodrigo Pimenta Carvalho <pimenta at inatel.br>
Reply-To: OpenSIPS users mailling list <users at lists.opensips.org>
Date: Tuesday, March 27, 2018 at 12:57 PM
To: OpenSIPS users mailling list <users at lists.opensips.org>
Subject: Re: [OpenSIPS-Users] How to terminate a call, via Opensips, before it being answered?


Hi.



Just as curiosity, what would  cause an ACK lost in your system?



Best regards.


RODRIGO PIMENTA CARVALHO
Inatel Competence Center
Software
Ph: +55 35 3471 9200 RAMAL 979

________________________________
De: Users <users-bounces at lists.opensips.org> em nome de Ben Newlin <Ben.Newlin at genesys.com>
Enviado: terça-feira, 27 de março de 2018 11:18
Para: OpenSIPS users mailling list
Assunto: Re: [OpenSIPS-Users] How to terminate a call, via Opensips, before it being answered?


Rodrigo,



Yes, they do. I am using them to do exactly what you describe. The final reply (fr) timer is how long a transaction will wait to receive a final reply (>=200). If the timer expires without receiving a final reply the transaction will be canceled and failure route will be triggered with, I think, a local 408 response.



As for $DLG_timeout, you can set that value multiple times in a call. We do this as well. Prior to the call being ACKed we set this value fairly low (~5s) in order to disconnect the dialog if the ACK is lost. Once we receive the ACK, we then extend it to a much longer value.



Thanks,

Ben Newlin



From: Users <users-bounces at lists.opensips.org> on behalf of Rodrigo Pimenta Carvalho <pimenta at inatel.br>
Reply-To: OpenSIPS users mailling list <users at lists.opensips.org>
Date: Tuesday, March 27, 2018 at 10:08 AM
To: OpenSIPS users mailling list <users at lists.opensips.org>
Subject: Re: [OpenSIPS-Users] How to terminate a call, via Opensips, before it being answered?



Ok Ben.



I will check this possibility and see if reply times will change the duration of a not answered call.

Thank you.



RODRIGO PIMENTA CARVALHO
Inatel Competence Center
Software
Ph: +55 35 3471 9200 RAMAL 979



________________________________

De: Users <users-bounces at lists.opensips.org> em nome de Ben Newlin <Ben.Newlin at genesys.com>
Enviado: terça-feira, 27 de março de 2018 10:43
Para: OpenSIPS users mailling list
Assunto: Re: [OpenSIPS-Users] How to terminate a call, via Opensips, before it being answered?



You can also use the reply timers in TM to do this: http://www.opensips.org/html/docs/modules/2.3.x/tm.html#fr_timeout<http://www.opensips.org/html/docs/modules/2.3.x/tm.html#fr_timeout>

tm Module - openSIPS<http://www.opensips.org/html/docs/modules/2.3.x/tm.html#fr_timeout>

www.opensips.org

TM module enables stateful processing of SIP transactions. The main use of stateful logic, which is costly in terms of memory and CPU, is some services inherently ...




Thanks,

Ben Newlin



From: Users <users-bounces at lists.opensips.org> on behalf of Laszlo <laszlo at voipfreak.net>
Reply-To: OpenSIPS users mailling list <users at lists.opensips.org>
Date: Tuesday, March 27, 2018 at 9:40 AM
To: OpenSIPS users mailling list <users at lists.opensips.org>
Subject: Re: [OpenSIPS-Users] How to terminate a call, via Opensips, before it being answered?







On Tue, Mar 27, 2018 at 3:31 PM, Rodrigo Pimenta Carvalho <pimenta at inatel.br<mailto:pimenta at inatel.br>> wrote:

Hi.



When a peer invites another one to a call, there are calling and ringing tones for these peers.

My SIP agents let these tones execute during 2 minutes. After this, the call is terminated, if no one answers the call.



How to configure OpenSIPS, if possible, so that any call will be terminated after 1 minute?



Any hint will be very helpful!

Best regards.



RODRIGO PIMENTA CARVALHO
Inatel Competence Center
Software
Ph: +55 35 3471 9200 RAMAL 979



Maybe you can play with $DLG_timeout, see http://www.opensips.org/html/docs/modules/2.4.x/dialog.html#timeout-pvar-id<http://www.opensips.org/html/docs/modules/2.4.x/dialog.html#timeout-pvar-id>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20180327/c81629ff/attachment-0001.html>


More information about the Users mailing list