El Jueves, 18 de Febrero de 2010, Santiago Gimeno escribió:
Hi,
I'm using kamailio 1.5 from the branch. In a conditional forwarding scenario with this call flow:
Phone A Kamailio Phone B Phone C |INVITE | | | |------------->| | | |100 Trying | | | |<-------------| | | | | |INVITE | | | |------------->| | | |100 trying | | | |<-------------| | | |180 Ringing | | | |<-------------| | | |180 Ringing | | | |<-------------| | | | | |486 Busy Here | | | |<-------------| | | |ACK | | | |------------->| | | |INVITE | | | |---------------------------->| | |100 trying | | | |<----------------------------| | |180 Ringing | | | |<----------------------------| | |180 Ringing | | | |<-------------| | | | | |200 OK | | | |<----------------------------| | |200 OK | | | |<-------------| | | |ACK | | | |------------->| | | | | |ACK | | | |---------------------------->|
What I'm observing is that when Kamailio receives the 486 from B, the dialog between A and B is not destroyed, so when the call is finally established between A and C there are two active dialogs as I could check with `kamctl fifo get_statistics active_dialogs`. Shouldn't there be only one active dialog? Is this a problem in my script or a problem with the dialog module?
For now dialog module is not "forking-aware" which means that fails detecting cases like yours. However I don't know which should be the expected behaviour for your case (serial forking) with the current dialog module code.
PS: Could you tell me how did you "paint" the above SIP flow? it's very nice :)