[SR-Users] Record-route in dialog requests

Daniel-Constantin Mierla miconda at gmail.com
Fri Oct 18 19:32:38 CEST 2013


Hello,

On 10/18/13 7:25 PM, Spencer Thomason wrote:
> Hello,
> In our network topology we use Kamailio at the edge of our network proxying requests from a core set of FreeSWITCH servers.
>
> I have a new termination provider where a session timer ReINVITE fails because the ACK is sent to the contact address of the FreeSWITCH server, not the proxy.  Can I Record-Route these in dialog requests?  If so, where should I do it in the config?
>
> A quick google search returned this thread:
> https://lists.cs.columbia.edu/pipermail/sip-implementors/2003-June/005089.html
> which confused me a little.
yes, you can re-enforce record route for requests within dialog, 
although not required by specs. See below the position.

>
>
> My in dialog config block looks like this:
> # Handle requests within SIP dialogs
> route[WITHINDLG] {
>      if (has_totag()) {
>          # sequential request withing a dialog should
>          # take the path determined by record-routing
>          if (loose_route()) {

Add it after the above line, like:

                     record_route();

>              if (is_method("BYE")) {
>                  setflag(FLT_ACC); # do accounting ...
>                  setflag(FLT_ACCFAILED); # ... even if the transaction fails
>                  setflag(FLT_SIPTRACE);
>              }
>              if (is_method("ACK")) {
>                  # ACK is forwarded statelessy
>                      route(NATMANAGE);
>                  }
>              route(RELAY);
>          } else {
>              if ( is_method("ACK") ) {
>                  if (t_check_trans()) {
>                      # no loose-route, but stateful ACK;
>                      # must be an ACK after a 487
>                      # or e.g. 404 from upstream server
>                      t_relay();
>                      exit;
>                  } else {
>                      # ACK without matching transaction ... ignore and discard
>                      exit;
>                  }
>              }
>              sl_send_reply("404","Not here");
>          }
>          exit;
>      }
> }
Cheers,
Daniel

-- 
Daniel-Constantin Mierla - http://www.asipto.com
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Kamailio Advanced Trainings - Berlin, Nov 25-28; Miami, Nov 18-20, 2013
   - more details about Kamailio trainings at http://www.asipto.com -




More information about the sr-users mailing list