[OpenSIPS-Users] early dialog termination

Bogdan-Andrei Iancu bogdan at opensips.org
Tue Oct 11 09:35:43 UTC 2022


Hi Ivan,

you can use timer_route, but as there is no way to send a reply for a 
particular transaction from script level (only to the currently 
processed request), you will have to trigger the MI cmds from the timer 
route, which is a bit hackish ....

Regards,

Bogdan-Andrei Iancu

OpenSIPS Founder and Developer
   https://www.opensips-solutions.com
OpenSIPS Summit 27-30 Sept 2022, Athens
   https://www.opensips.org/events/Summit-2022Athens/

On 10/11/22 11:47 AM, Ryzhik Ivan wrote:
> Hi, Bogdan!
> What d' you think, can we use timer_route instead of an external script?
> Regards, Ivan.
>
> пн, 10 окт. 2022 г. в 17:04, Bogdan-Andrei Iancu <bogdan at opensips.org 
> <mailto:bogdan at opensips.org>>:
>
>     Hi Ryzhik,
>
>     Without a t_relay() it makes not much sense to have an dialog
>     structure at all - the dialog module in opensips is actually
>     design for proxied calls, not for UAC calls.
>
>     IMO, you should keep it a transaction level, by sending replies
>     back only. When getting the INVITE, put its call-id into a DB
>     table (to keep only the "active" session) together with a lifetime
>     / expiration time. When getting a CANCEL, update the table (set
>     lifetime to 0), to know it is terminated. And use an simple
>     external script that keeps scanning the DB for (1) sending 487
>     Terminated via MI if the record has 0 lifetime or (2) send a 408
>     Timeout via MI if the lifetime exceeded.
>     In a similar way you can handle the BYE - send back 200OK for the
>     BYE and set 0 in lifetime, to send a 487 canceled back
>
>     Regards,
>
>     Bogdan-Andrei Iancu
>
>     OpenSIPS Founder and Developer
>        https://www.opensips-solutions.com  <https://www.opensips-solutions.com>
>     OpenSIPS Summit 27-30 Sept 2022, Athens
>        https://www.opensips.org/events/Summit-2022Athens/  <https://www.opensips.org/events/Summit-2022Athens/>
>
>     On 10/10/22 4:33 PM, Ryzhik Ivan wrote:
>>     Hello!
>>     My opensips version is 3.1 with tm,dialog and rtpengine modules.
>>     On incoming INVITE i'm creating an early dialog with 183 replies
>>     and i'm playing audio to caller with rtpengine, no t_relay() on
>>     this step, OS is acting as UAS endpoint.
>>     If the caller cancels the invite with a CANCEL message - all
>>     works great.
>>     But some users terminate dialog with BYE message.
>>     1) on BYE with to-tag OS can't find dialog with match_dialog(),
>>     because to-tag presents.
>>     2) if i use load_dialog_ctx($ci) -  it is possible to handle BYE.
>>     3) in early dialog termination with BYE we also need to send
>>     final response to the INVITE transaction.
>>
>>     Maybe I did something wrong, but I can't handle the final
>>     response to INVITE in this case.
>>
>>     _______________________________________________
>>     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/20221011/b684ef2d/attachment-0001.html>


More information about the Users mailing list