Hi all,
Have found a few threads on this before which have clarified my understanding a little but not yet presented me with a solution.
I am using dialog_ng. dlg_manage() is deprecated and as per the documentation, I am simply setting a dialog flag early in the request_route.
Kamctl dialog show does indeed show the dialogs are tracked, but they are not destroyed on the receipt of the BYE. Dialog ref count remains at 2 and in state=4
Log shows the following
Mar 16 22:43:42 hh-rcs-sipproxy3 /usr/sbin/kamailio[15484]: DEBUG: tm [t_lookup.c:1373]: t_newtran(): DEBUG: t_newtran: msg id=16 , global msg id=15 , T on entrance=(nil) Mar 16 22:43:42 hh-rcs-sipproxy3 /usr/sbin/kamailio[15484]: DEBUG: tm [t_lookup.c:527]: t_lookup_request(): t_lookup_request: start searching: hash=5943, isACK=0 Mar 16 22:43:42 hh-rcs-sipproxy3 /usr/sbin/kamailio[15484]: DEBUG: tm [t_lookup.c:485]: matching_3261(): DEBUG: RFC3261 transaction matching failed Mar 16 22:43:42 hh-rcs-sipproxy3 /usr/sbin/kamailio[15484]: DEBUG: tm [t_lookup.c:709]: t_lookup_request(): DEBUG: t_lookup_request: no transaction found Mar 16 22:43:42 hh-rcs-sipproxy3 /usr/sbin/kamailio[15484]: DEBUG: tm [t_hooks.c:380]: run_reqin_callbacks_internal(): DBG: trans=0x7fc8d79af798, callback type 1, id 0 entered Mar 16 22:43:42 hh-rcs-sipproxy3 /usr/sbin/kamailio[15484]: DEBUG: dialog_ng [dlg_handlers.c:855]: dlg_new_dialog(): starting dlg_new_dialog and method is [BYE]
Looks to me as if fails to find a dialog match and actually creates a new dialog.....
Dialog_ng only has one matching mode - DID, others have been deprecated. I have captured the outgoing INVITE and there is no dialog_id parameter added to the record_route. Is that causing my matching problem? Record-Route: sip:64.208.160.211;transport=tcp;lr=on;ftag=5419eecb;nat=yes Record-Route: sip:203.171.39.49:5061;transport=tls;lr=on
Cheers Shane
Shane Harrison Senior Software Engineer
Imagination Technologies NZ Limited Level 2 1 Market Grove Lower Hutt, 5010 New Zealand
PO Box 30-449 Lower Hutt, 5040 New Zealand
Phone: +64 4 890-3681 ext 3361
A little more information.
In processing the INVITE request I generate an async charging request. That calls back with the result of that charging request in a separate route block. It is there that the INVITE continues to be processed. I am guessing that the dialog_ng adds the DID to the RR but this is lost once we exit the request_route processing block while we wait for the charging request to complete.
If this is the problem. Should I set the dialog flag again when continuing to process the INVITE message in the separate charging callback route block?
Cheers Shane
Hello,
dialog_ng is more or less tailored for IMS modules, dialog module is still in use and very actual.
If you are not using IMS module, you should try the dialog module. I haven't seen any issues for it lately and if there are, they will get fixed.
Cheers, Daniel
On 17/03/15 03:28, Shane Harrison wrote:
Thanks Daniel. Yes I am using the ims_charging module hence the need for the dialoguing module.
I have confirmed that the dialog_id (DID) is added if I t_relay() the INVITE in the request_route. Hence dialog_ng is adding the parameter to the record_route when it creates a new_dialog. It is however lost once I exit from request_route.
How do I ensure the RR parameter gets added when I resume processing the INVITE in the callback route block?
Cheers and thanks Shane ________________________________________ From: sr-users [sr-users-bounces@lists.sip-router.org] on behalf of Daniel-Constantin Mierla [miconda@gmail.com] Sent: 17 March 2015 19:34 To: Kamailio (SER) - Users Mailing List Subject: Re: [SR-Users] Dialogs not deleted on BYE
Hello,
dialog_ng is more or less tailored for IMS modules, dialog module is still in use and very actual.
If you are not using IMS module, you should try the dialog module. I haven't seen any issues for it lately and if there are, they will get fixed.
Cheers, Daniel
On 17/03/15 03:28, Shane Harrison wrote:
-- Daniel-Constantin Mierla http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda Kamailio World Conference, May 27-29, 2015 Berlin, Germany - http://www.kamailioworld.com
_______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
In what callback do you need it?
Cheers, Daniel
On 3/17/15, Shane Harrison Shane.Harrison@imgtec.com wrote:
Thanks Daniel,
From the request_route block I call the ims_charging module function Ro_CCR(). This is non-blocking and one of the parameters in the call is the route block to be called ( e.g. CHARGING_CCR_REPLY ) when the response to the charging request is obtained. Looking at the code, the Ro_CCR() function does a t_suspend() and then the ims_charging module does a t_continue() when the response is received. Then the specified routing block is called and processing of the INVITE continues.
route[CHARGING_CCR_REPLY] { xlog("L_DBG","cca_return code is $avp(s:cca_return_code)\n"); switch ($avp(s:cca_return_code)) { case 1: #success route(LOCATION); route(RELAY); break; ..... }
It appears that the RR parameter that is added during the request_route processing (via dialog tracking) is no longer there when the INVITE continues being processed in the CHARGING_CCR_REPLY route block. Is that what you would expect? Any pointers to solutions?
Hope that answers your question.
Cheers Shane ________________________________________ From: sr-users [sr-users-bounces@lists.sip-router.org] on behalf of Daniel-Constantin Mierla [miconda@gmail.com] Sent: 18 March 2015 00:24 To: Kamailio (SER) - Users Mailing List Subject: Re: [SR-Users] Dialogs not deleted on BYE
In what callback do you need it?
Cheers, Daniel
On 3/17/15, Shane Harrison Shane.Harrison@imgtec.com wrote:
-- Daniel-Constantin Mierla - http://www.asipto.com http://twitter.com/#!/miconda - http://www.linkedin.com/in/micondhttp://www.linkedin.com/in/miconda
_______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
Do you have record_route() in your code? Where is it relative to the ims_charging function?
Cheers, Daniel
On 17/03/15 20:58, Shane Harrison wrote:
Weird - just listening to your voice on youtube video of talk on async in kamailio and get your email response. Sort of "all senses" response :-)
Yes have record_route and it is in the route[LOCATION] block. This is called from the CHARGING_CCR_REPLY block i.e. after the ims_charging function is called.
Cheers Shane
Can you try moving the record_route() before execution of the ims_charging function?
Cheers, Daniel
On 17/03/15 22:21, Shane Harrison wrote:
Some modules use local variables to store some values to be used later when an action is done.
In this specific case, the add_rr_param(), which should be used internally by dialog, is checking to see if the Record-Route header was added. If yes, then the parameter is added to it. If not, it is kept in the local variable and record_route() will check that variable to see if there is anything else to be added to the header.
When suspending and resuming, practically the request handling moves to another and the local variable is lost.
Cheers, Daniel
On 17/03/15 23:15, Shane Harrison wrote: