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
:)
--
Iñaki Baz Castillo <ibc(a)aliax.net>