[SR-Users] Record-route in dialog requests

Klaus Darilion klaus.mailinglists at pernau.at
Mon Oct 21 10:11:52 CEST 2013


Just as a note: If you need to record_route for in-dialog requests then 
the clients are buggy and you should report the issue.

regards
Klaus

On 18.10.2013 19:46, Spencer Thomason wrote:
> 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
>>
>
>
> _______________________________________________
> 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