[OpenSER-Devel] [ openser-Feature Requests-1875757 ] Add "Reason" header as tm parameter for CANCEL when forking

SourceForge.net noreply at sourceforge.net
Sun Jan 20 13:01:52 UTC 2008


Feature Requests item #1875757, was opened at 2008-01-20 14:01
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=743023&aid=1875757&group_id=139143

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Iñaki Baz (ibc_sf)
Assigned to: Nobody/Anonymous (nobody)
Summary: Add "Reason" header as tm parameter for CANCEL when forking

Initial Comment:
Hi, according to RFC 3326 [1] (Reason Header):

3.1 Call Completed Elsewhere

   A proxy forks an INVITE request and one of the
   branches returns a 200 (OK).  The forking proxy
   includes this status code in a Reason header
   field in the CANCEL request that it sends to the
   rest of the branches.

     Reason: SIP ;cause=200 ;text="Call completed elsewhere"

With this behaviour, if an AoR is registered in two phones and one of them answers a call, that call will not appear as MISSED in the other phone (if the phone supports "Reason" headers).

This could be implemented as new "tm" parameters:

  modparam("tm", "add_reason_200_flag", 26)
  modparam("tm", "add_reason_200_text", "Call completed elsewhere") modparam("tm", "add_reason_200_text_avp", "$avp(i:26)")

The last parameter would be an AVP containing the text to send in CANCEL "Reason" header if the call has been replied with 200 in other branch. If not set, default value ("add_reason_200_text") would be used.

To add "Reason" header, flag(26) should be set before transaction creation:


  lookup("location");
  switch($rc)	{
    case 1:
      setflag(26);  # Add "Reason" header in CANCELLED branches.
      $avp(i:26)="Call answered in other phone";
      t_relay();
      exit;
  }




[1] RFC 3326 - The Reason Header Field: http://www.faqs.org/rfcs/rfc3326.html

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=743023&aid=1875757&group_id=139143



More information about the Devel mailing list