THIS IS AN AUTOMATED MESSAGE, DO NOT REPLY.
A new Flyspray task has been opened. Details are below.
User who did this - Timo Reimann (tr)
Attached to Project - sip-router
Summary - DLGCB_CONFIRMED triggered on 200/OK, not ACK
Task Type - Bug Report
Category - dialog
Status - Assigned
Assigned To - Timo Reimann
Operating System - All
Severity - Medium
Priority - Normal
Reported Version - Development
Due in Version - Undecided
Due Date - Undecided
Details - As can be observed from dialog's documentation and the dialog state machine
(in modules_k/dialog/dlg_hash.c), DLG_CONFIRMED is to be triggered on detection of a
handshake-concluding ACK message, i.e., the finalization of the message triple
INVITE/200/ACK. However, the callback is executed when the state transitions to
DLG_STATE_CONFIRMED_NA (NA = No Ack; see dlg_handlers.c:dlg_onreply()) which is when the
200 has been received only.
There are two possible fixes:
- Move execution of DLGCB_CONFIRMED from dlg_onreply() to dlg_onroute(), not providing a
callback anymore for when 200 is received.
- Rename DLGCB_CONFIRMED to DLGCB_CONFIRMED_NA and implement another callback
DLGCB_CONFIRMED in dlg_onroute().
I favor the second approach as it does not remove an existing functionality (even if
it's implemented erroneously from a logical point of view) and allows dialog callback
users to run code at all (three) relevant moments during dialog establishment.
More information can be found at the following URL:
http://sip-router.org/tracker/index.php?do=details&task_id=143
You are receiving this message because you have requested it from the Flyspray bugtracking
system. If you did not expect this message or don't want to receive mails in future,
you can change your notification settings at the URL shown above.