[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