[Serdev] [Tracker] Created: (SER-212) route-set is incorrect in locally generated CANCEL/ACK

Miklos Tirpak (JIRA) tracker at iptel.org
Fri Jan 19 10:25:40 UTC 2007


route-set is incorrect in locally generated CANCEL/ACK
------------------------------------------------------

                 Key: SER-212
                 URL: http://tracker.iptel.org/browse/SER-212
             Project: SER
          Issue Type: Bug
          Components: Transaction Manager
    Affects Versions: Ipteldorf
            Reporter: Miklos Tirpak
         Attachments: tm-cancel_ack.patch

Locally generated CANCEL and ACK requests do not contain the route headers which are inserted in the script during INVITE processing, and the same applies for the removed route headers: the local CANCEL and ACK contains them even if they were removed previously in the INVITE. It violates the RFC, because the CANCEL and ACK (for replies>=300) should contain exactly the same route-set as the INVITE. 

The attach patch uses the outgoing message buffer of INVITE to build the CANCEL and ACK, so it constructs the route-set correctly even if it was modified in branch_route. The drawback is that the outgoing message buffer must be re-parsed, thus a lightweight and hopefully fast parser is added to the module which takes care only of the essential header names (code is copied from the core).

It is also possible to use the same functions to construct the CANCEL for e2e-CANCELs instead of relaying them which makes the script much simpler. The CANCEL should travel the same way as the INVITE otherwise which is not easy at all, conditions can change meantime. So the simplest way to handle e2e-CANCELs is:

if (method == CANCEL) {
  t_relay_cancel();
  drop;
}

local_ac_headers module parameter can be used to force copying additional headers into the CANCEL/ACK. The parameter defines a prefix which is matched against the header field names which are not prohibited.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://tracker.iptel.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the Serdev mailing list