[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