[OpenSIPS-Users] early dialog termination

Ryzhik Ivan ryzhik.ivan at gmail.com
Wed Oct 12 08:13:58 UTC 2022


Thank you, Bogdan.
I got stuck with tm documentation.
  1) MI t_reply command has named parameters, ok, no problem.
  2) trans_id - transaction identifier (has the hash_entry:label format)  -
what is this? if i use $T_id i got reply "Invalid trans_id".
  3) Where can I get to_tag from script level on initial invite?
      ...
      t_reply_with_body(183, "Session progress",
$(var(body){re.subst,$var(re)}) );
      avp_db_query("insert into moh (callid, timeout, tid,totag) values
('$ci', $var(wait_time), '$T_id', '??????')");
      ...

Regards, Ivan.

вт, 11 окт. 2022 г. в 12:35, Bogdan-Andrei Iancu <bogdan at opensips.org>:

> 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>:
>
>> 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
>> OpenSIPS Summit 27-30 Sept 2022, Athens
>>   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 listUsers at lists.opensips.orghttp://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20221012/bfdcfaf9/attachment-0001.html>


More information about the Users mailing list