[sr-dev] [tracker] Task opened: DLGCB_CONFIRMED triggered on 200/OK, not ACK

sip-router admin at sip-router.org
Wed Aug 3 11:19:34 CEST 2011


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.



More information about the sr-dev mailing list