[sr-dev] Dialog onroute requests.

Eduardo Lejarreta lejarreta.e at sarenet.es
Wed Jun 5 11:07:05 CEST 2013


Good morning Daniel.

 

I cannot test this issue because I have no means, so I deduce what's
happening, and of course I could be mistaken.

 

1.- First BYE received, first listening process: dlg_onroute ->

 

..

        /* run state machine */

        switch ( req->first_line.u.request.method_value ) {

                case METHOD_PRACK:

                        event = DLG_EVENT_REQPRACK; break;

                case METHOD_ACK:

                        event = DLG_EVENT_REQACK; break;

                case METHOD_BYE:

                        event = DLG_EVENT_REQBYE; break;

                default:

                        event = DLG_EVENT_REQ;

        }

 

        next_state_dlg( dlg, event, &old_state, &new_state, &unref); 

----------------------------------------------------------------------------
------------> new_state: DLG_STATE_DELETED ; old_state: DLG_STATE_CONFIRMED

 

2.- Second BYE received, second listening process: dlg_onroute ->

 

...

 

        /* run state machine */

        switch ( req->first_line.u.request.method_value ) {

                case METHOD_PRACK:

                        event = DLG_EVENT_REQPRACK; break;

                case METHOD_ACK:

                        event = DLG_EVENT_REQACK; break;

                case METHOD_BYE:

                        event = DLG_EVENT_REQBYE; break;

                default:

                        event = DLG_EVENT_REQ;

        }

 

        next_state_dlg( dlg, event, &old_state, &new_state, &unref); 

----------------------------------------------------------------------------
------------> new_state: DLG_STATE_DELETED ; old_state: DLG_STATE_DELETED

 

...

 

done:

        dlg_release(dlg); ---> before first process related callbacks are
executed by other processes like acc_cdr.c

        return;

 

Thanks and best regards.

-- 

Eduardo Lejarreta.

 

De: sr-dev-bounces at lists.sip-router.org
[mailto:sr-dev-bounces at lists.sip-router.org] En nombre de Daniel-Constantin
Mierla
Enviado el: martes, 04 de junio de 2013 15:39
Para: Kamailio (SER) - Development Mailing List
Asunto: Re: [sr-dev] Dialog onroute requests.

 

Hello,

On 6/4/13 3:14 PM, Eduardo Lejarreta wrote:

Good evening.

 

Playing with latest "dialog module" versions (3.2, 3.3 and 4.0) I think
there could be an open "issue" with regard to dialog state management. 

 

You can see on "dlg_handlers.c" on "dlg_onroute" function. On this last
when you receive a BYE message it fires some CallBacks.

 

I you receive a close second BYE, this last one destroys the dialog because
"dlg_release" function is called from a parallel process avoiding the other
processes callback execution.

 

I know a second BYE it's not a normal circumstance but you know, the real
world .

 

I think dialog_ng doesn't have this issue but also it has no DB support.

can you give more specific details, like the lines of code you think may
have an open issue? A quick check, it seems dialog and dialog_ng have the
same processing of BYE request in dlg_onroute() and unref is done only on
transition state to terminate.



Cheers,
Daniel



-- 
Daniel-Constantin Mierla - http://www.asipto.com
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Kamailio Advanced Training, San Francisco, USA - June 24-27, 2013
  * http://asipto.com/u/katu *
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-dev/attachments/20130605/64c510e7/attachment.html>


More information about the sr-dev mailing list