[Kamailio-Users] How can I access dialog attributes from within timeout route?

Nathan Angelacos nangel at nothome.org
Wed Oct 7 02:48:54 CEST 2009


Daniel-Constantin Mierla wrote:
> 
> 
> On 02.10.2009 2:01 Uhr, Nathan Angelacos wrote:
>> [...]
>>>>>>>>
>>>>>>>>
>>>>>>>> In kamailio 1.5.2-notls, I'm trying to get the CallID of a 
>>>>>>>> dialog that has timed out:
>>>>>>>>
>>>>>>>> if (is_method( "INVITE" ) && !has_totag())
>>>>>>>>                 {
>>>>>>>>                 $dlg_ctx(timeout_route) = 21;
>>>>>>>>                 }
>>>>>>>> ...
>>>>>>>> route[21] {
>>>>>>>>     xlog ("L_WARN", "Dead dialog: $dlg(callid)");
>>>>>>>>     exit;
>>>>>>>>     }
>>>>>>>>
>>>>>>>>
>>>>>>>> However, syslog says:
>>>>>>>>
>>>>>>>>  daemon.warn /usr/sbin/kamailio[6578]: Dead Dialog: <null>
>>>>>>>>  daemon.warn /usr/sbin/kamailio[6578]: 
>>>>>>>> WARNING:dialog:dlg_ontimeout: timeout for dlg with CallID \
>>>>>>>>     '8b2eb5e3-20493c20-14e681d at 192.168.1.1' and tags 
>>>>>>>> '87F489DA-922DF157' '2XrwB5OcEJ2zQvyiTUIh-l2Zd1wjL51M'
>>>>>>>>
>>>>>>>> dlg_handlers.c leads me to believe that the context is loaded 
>>>>>>>> before calling the route(21), and the dialog
>>>>>>>> timeout handler is nice enough to report it in syslog just after 
>>>>>>>> my script fails.
>>>>>>>>
>>>>>>>> Am I missing something fundamental, or is this just not possible?
>>>>> since my trip hasn't ended yet, I couldn't create a test 
>>>>> environment, so, looking at source code the dlg should be 
>>>>> available,. Can you try to print in the timeout route:
>>>>>
>>>>> $dlg_ctx(set)
>>>>> $dlg(h_id)
>>>>> $dlg(h_entry)
>>>>>
>>>>> and send the output here?
>>>>
>>>> Thanks for taking the time to look at it
>>>>
>>>> The timeout route is now:
>>>>
>>>> route[21] {
>>>>         xlog ("L_WARN", "Dead Dialog Handler ctx says: $dlg_ctx(set)");
>>>>         xlog ("L_WARN", "set: $dlg_ctx(set)   h_id: $dlg(h_id)  
>>>> h_entry: $dlg(h_entry) ");
>>>>         exit;
>>>> }
>>>>
>>>> Results:
>>>>
>>>> /usr/sbin/kamailio[31440]: Dead Dialog Handler ctx says: 0
>>>> /usr/sbin/kamailio[31440]: set: 0   h_id: <null>  h_entry: <null>
>>>> /usr/sbin/kamailio[31442]: WARNING:dialog:bye_reply_cb: inconsitent 
>>>> dlg timer data on dlg 0x4bb5bb70 [745:1489288150] ...
>>>>
>>>> Sorry.
>>>>
>>>> Let me know if I can do anything to assist.
>>> that helped a bit, remembering that I added reset in pre-script 
>>> callback which were called in this case. Hopefully it is fixed now.
>>>
>>> Please checkout latest svn branch 1.5, re-compile, install and test. 
>>> let me knwow if works ok.
>>>
>>
>> That appears to have solved the problem, at least on the 
>> semi-production(!) server.
>> I'll do more testing tomorrow - but so far it looks good.
> ok, thanks, let me know when you complete the tests so I port to devel 
> version to be included in upcoming 3.0.

It looks good.

Looking forward to the 3.0 release!

Thanks again.




More information about the sr-users mailing list