[OpenSIPS-Users] dlg_val before create_dialog
Răzvan Crainea
razvan at opensips.org
Wed Jan 8 16:57:56 UTC 2025
I've just pushed a fix, thanks for helping us identify this issue.
Best regards,
Răzvan Crainea
OpenSIPS Core Developer / SIPhub CTO
http://www.opensips-solutions.com / https://www.siphub.com
On 1/8/25 6:49 PM, Bogdan-Andrei Iancu wrote:
> Hi,
>
> Thanks for the info, Razvan identified the issue - indeed, the
> rtpproxy_offer() forces the dialog creation, without actually of any
> need of it. He will push a fix on this within the next days.
>
> Best regards,
>
> Bogdan-Andrei Iancu
>
> OpenSIPS Founder and Developer
> https://www.opensips-solutions.com
> https://www.siphub.com
>
> On 17.12.2024 19:27, M S wrote:
>> So I did that, and it is very strange:
>>
>> if (is_method("INVITE") && !has_totag()) xlog("L_WARN", "$ci|
>> route|$Ts:$Tsm|DLG_status3 $DLG_status");
>> if(!rtpproxy_offer("froc")) xlog("L_WARN", "$ci|route|$Ts:
>> $Tsm|rtpproxy_offer failed for: $mb\n");
>> if (is_method("INVITE") && !has_totag()) xlog("L_WARN", "$ci|
>> route|$Ts:$Tsm|DLG_status4 $DLG_status");
>>
>> 32ac0d41383090087a573dd766679bcc at 10.201.54.109:5060|route|
>> 1734456172:140520|DLG_status3 <null>
>> 32ac0d41383090087a573dd766679bcc at 10.201.54.109:5060|route|
>> 1734456172:140879|DLG_status4 1
>>
>> But what does rtpproxy_offer has to do with dialog?
>>
>> On Tue, Dec 17, 2024 at 5:06 PM Bogdan-Andrei Iancu
>> <bogdan at opensips.org> wrote:
>>
>> That means some other script function created the dialog in
>> advance. you can find which one by adding something like this on
>> top of your request route:
>> script_trace( 1, "$rm from $si, dlg is $DLG_status", "dbg");
>>
>> And see where the print changes from NULL to 1 ;)
>>
>> Regards,
>>
>> Bogdan-Andrei Iancu
>>
>> OpenSIPS Founder and Developer
>> https://www.opensips-solutions.com
>> https://www.siphub.com
>>
>> On 17.12.2024 17:58, M S wrote:
>>> Thank you for your answer. I tried that and it shows DLG_status
>>> 1, which means the dialog is created but I definitely didn't
>>> create a dialog before that line. Also, the dialog is created
>>> further down with create_dialog("pPB") command because I see
>>> OPTIONS being sent to both caller and callee (pP working).
>>> Why would DLG_status print 1? I will try to print it at different
>>> lines of script to see where it changes... I have a t_newtran and
>>> some $acc_extra lines befores (other than some standard processing)
>>>
>>> On Tue, Dec 17, 2024 at 4:39 PM Bogdan-Andrei Iancu
>>> <bogdan at opensips.org> wrote:
>>>
>>> Hi,
>>>
>>> Yes, the dlg_val assignment fails if there is no current
>>> dialog. Maybe
>>> the dialog is created (internally) by some other script
>>> function you are
>>> using. Try prinitng the $DLG_status before the assignment,
>>> just to see
>>> if there is a dialog or not
>>>
>>> Regards,
>>>
>>> Bogdan-Andrei Iancu
>>>
>>> OpenSIPS Founder and Developer
>>> https://www.opensips-solutions.com
>>> https://www.siphub.com
>>>
>>> On 17.12.2024 14:08, M S wrote:
>>> > Hi list,
>>> > I have a script like this:
>>> >
>>> > ..... some processing
>>> > if (is_method("INVITE") && !has_totag()) {
>>> > $dlg_val(x)="y";
>>> > }
>>> > .... some processing
>>> > if (is_method("INVITE") && !has_totag()) {
>>> > create_dialog("pPB")
>>> > }
>>> >
>>> > My first question is, why does this work?! documents say
>>> $dlg_val
>>> > cannot be used before dialog is created, and create_dialog
>>> is called
>>> > after dlg_val here.
>>> > I have verified that indeed dialog is created using
>>> create_dialog, and
>>> > indeed $dlg_val(x) stores the value (it is available later
>>> in the dialog).
>>> >
>>> > Second question, once or two times a day (after thousands
>>> of calls) I
>>> > see a do_assign setting PV failed error message on the
>>> $dlg_val(x)="y"
>>> > line. Since this shouldn't have worked to begin with, I
>>> don't know how
>>> > to debug this. Any suggestions?
>>> >
>>> > Thank you!
>>> >
>>> > _______________________________________________
>>> > Users mailing list
>>> > Users at lists.opensips.org
>>> > http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>
>>
>
> Hi,
>
> Thanks for the info, Razvan identified the issue - indeed, the
> rtpproxy_offer() forces the dialog creation, without actually of any
> need of it. He will push a fix on this within the next days.
>
> Best regards,
>
> Bogdan-Andrei Iancu
>
> OpenSIPS Founder and Developer
> https://www.opensips-solutions.com
> https://www.siphub.com
>
> On 17.12.2024 19:27, M S wrote:
>> So I did that, and it is very strange:
>>
>> if (is_method("INVITE") && !has_totag()) xlog("L_WARN", "$ci|
>> route|$Ts:$Tsm|DLG_status3 $DLG_status");
>> if(!rtpproxy_offer("froc")) xlog("L_WARN", "$ci|route|$Ts:
>> $Tsm|rtpproxy_offer failed for: $mb\n");
>> if (is_method("INVITE") && !has_totag()) xlog("L_WARN", "$ci|
>> route|$Ts:$Tsm|DLG_status4 $DLG_status");
>>
>> 32ac0d41383090087a573dd766679bcc at 10.201.54.109:5060|route|
>> 1734456172:140520|DLG_status3 <null>
>> 32ac0d41383090087a573dd766679bcc at 10.201.54.109:5060|route|
>> 1734456172:140879|DLG_status4 1
>>
>> But what does rtpproxy_offer has to do with dialog?
>>
>> On Tue, Dec 17, 2024 at 5:06 PM Bogdan-Andrei Iancu
>> <bogdan at opensips.org> wrote:
>>
>> That means some other script function created the dialog in
>> advance. you can find which one by adding something like this on
>> top of your request route:
>> script_trace( 1, "$rm from $si, dlg is $DLG_status", "dbg");
>>
>> And see where the print changes from NULL to 1 ;)
>>
>> Regards,
>>
>> Bogdan-Andrei Iancu
>>
>> OpenSIPS Founder and Developer
>> https://www.opensips-solutions.com
>> https://www.siphub.com
>>
>> On 17.12.2024 17:58, M S wrote:
>>> Thank you for your answer. I tried that and it shows DLG_status
>>> 1, which means the dialog is created but I definitely didn't
>>> create a dialog before that line. Also, the dialog is created
>>> further down with create_dialog("pPB") command because I see
>>> OPTIONS being sent to both caller and callee (pP working).
>>> Why would DLG_status print 1? I will try to print it at different
>>> lines of script to see where it changes... I have a t_newtran and
>>> some $acc_extra lines befores (other than some standard processing)
>>>
>>> On Tue, Dec 17, 2024 at 4:39 PM Bogdan-Andrei Iancu
>>> <bogdan at opensips.org> wrote:
>>>
>>> Hi,
>>>
>>> Yes, the dlg_val assignment fails if there is no current
>>> dialog. Maybe
>>> the dialog is created (internally) by some other script
>>> function you are
>>> using. Try prinitng the $DLG_status before the assignment,
>>> just to see
>>> if there is a dialog or not
>>>
>>> Regards,
>>>
>>> Bogdan-Andrei Iancu
>>>
>>> OpenSIPS Founder and Developer
>>> https://www.opensips-solutions.com
>>> https://www.siphub.com
>>>
>>> On 17.12.2024 14:08, M S wrote:
>>> > Hi list,
>>> > I have a script like this:
>>> >
>>> > ..... some processing
>>> > if (is_method("INVITE") && !has_totag()) {
>>> > $dlg_val(x)="y";
>>> > }
>>> > .... some processing
>>> > if (is_method("INVITE") && !has_totag()) {
>>> > create_dialog("pPB")
>>> > }
>>> >
>>> > My first question is, why does this work?! documents say
>>> $dlg_val
>>> > cannot be used before dialog is created, and create_dialog
>>> is called
>>> > after dlg_val here.
>>> > I have verified that indeed dialog is created using
>>> create_dialog, and
>>> > indeed $dlg_val(x) stores the value (it is available later
>>> in the dialog).
>>> >
>>> > Second question, once or two times a day (after thousands
>>> of calls) I
>>> > see a do_assign setting PV failed error message on the
>>> $dlg_val(x)="y"
>>> > line. Since this shouldn't have worked to begin with, I
>>> don't know how
>>> > to debug this. Any suggestions?
>>> >
>>> > Thank you!
>>> >
>>> > _______________________________________________
>>> > Users mailing list
>>> > Users at lists.opensips.org
>>> > http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>
>>
>
More information about the Users
mailing list