I pushed two patches, as it required a small adjustment to acc module for this case -- they are now in master, affecting acc and dialog modules. Testing and feedback whether it works or not is very appreciated.

I went a different path, considering the case when the bye is coming from the wire, two callbacks were executed DLGCB_TERMINATED (when bye was processed) and DLGCB_TERMINATED_CONFIRMED (when it was a reply to the bye). Same is done now when the bye is generate locally, so it should match better on the pattern for callbacks.

The callback for DLGCB_EXPIRED is for the case when no bye was involved and seems better to leave it as it is. The flag you just added can be used in the callbacks to see if it was a dialog timeout or not (as well as looking if there is a sip request passwd to the callback function as parameter).

Thanks for troubleshooting so far and pointing in the code, helped to identify the issue faster and fix it quickly.

Cheers,
Daniel

On 15/04/15 17:04, Daniel-Constantin Mierla wrote:


On 15/04/15 16:27, Mickael Marrache wrote:

I'm looking at the dlg_ontimeout function [dlg_handlers.c:1369] and I understand the code, the DLGCB_EXPIRED callbacks are not called when the send_bye parameter is set to 1.

 

I'm looking at the block 1399-1408.

Indeed, looking quickly at that part of the code, the callback is not executed when sending BYE requests at dialog timeout. It needs to be fixed, if none picks it up, I will look at it with the first chance.

Cheers,
Daniel

 

From: Mickael Marrache [mailto:mickaelmarrache@gmail.com]
Sent: Wednesday, April 15, 2015 3:53 PM
To: sr-users@lists.sip-router.org
Subject: RE: No CDR is written when dialog timeouts

 

I also confirm the cdr_on_create() [acc_cdr.c:718] function is called since I can see the debug statement "dialog '%p' created!".

 

From: Mickael Marrache [mailto:mickaelmarrache@gmail.com]
Sent: Wednesday, April 15, 2015 3:48 PM
To: sr-users@lists.sip-router.org
Subject: No CDR is written when dialog timeouts

 

Hi,

 

I'm testing the dialog timeout scenario and I see that no CDR is written.

 

This is my configuration:

 

modparam("acc", "cdr_enable", 1)

modparam("acc", "cdr_expired_dlg_enable", 1)

modparam("acc", "cdr_start_on_confirmed", 1)

modparam("acc", "cdr_log_enable", 0)

modparam("acc", "cdr_on_failed", 0)

 

I can confirm the cdr_on_expired() [acc_cdr.c:684] function is not called since I don't see the debug statement "dialog '%p' expired!\n".

 

(I precise that CDR generation works fine for regular hangup scenario.)

 

Any idea what can cause the issue?

 

Thanks,

Mickael



_______________________________________________
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

-- 
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

-- 
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