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

Daniel-Constantin Mierla miconda at gmail.com
Mon Oct 5 10:32:37 CEST 2009



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.

Cheers,
Daniel

-- 
Daniel-Constantin Mierla
* Kamailio SIP Masterclass, Nov 9-13, 2009, Berlin
* http://www.asipto.com/index.php/sip-router-masterclass/





More information about the sr-users mailing list