[SR-Users] Record-route in dialog requests

Spencer Thomason spencer at 5ninesolutions.com
Fri Oct 18 19:46:27 CEST 2013


Thanks Daniel,

That did the trick!

BR,
Spencer


On Oct 18, 2013, at 10:32 AM, Daniel-Constantin Mierla <miconda at gmail.com> wrote:

> 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 -
> 
> 
> _______________________________________________
> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
> sr-users at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
> 




More information about the sr-users mailing list