[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