[Kamailio-Users] In-dialog request correlation without loose routing?

Alex Balashov abalashov at evaristesys.com
Thu Oct 16 19:13:19 CEST 2008


Ovidiu Sas wrote:
> On Thu, Oct 16, 2008 at 12:23 PM, Ovidiu Sas <osas at voipembedded.com> wrote:
>> On Thu, Oct 16, 2008 at 12:49 AM, Alex Balashov
>> <abalashov at evaristesys.com> wrote:
>>>> Post your config and the trace of a bad call (ngrep + kamailio logs).
>>> Config: http://pastebin.com/f28051a5
>>>
>>> My debug output: http://pastebin.com/d2f667520 (The profile size just keeps
>>> incrementing with every call that I make from 7709600101)
>>>
>>> Kamailio debug logs for dialog module: http://pastebin.com/d75721f2b
>>>
>>> My debug output with loose routing: http://pastebin.com/d2b0fb533
>>>
>>> Packet trace: http://pastebin.com/d77297606
>> Your config is bogus.  You are not doing proper record-routing (you
>> commented out that section).
>> In-dialog requests are matched during record-route handling,
>> regardless of the dialog match mode.
>>
> 
> The documentation is a little bit fuzzy about this, but here's the hint:
> http://kamailio.org/docs/modules/1.4.x/dialog#id2507978
> http://kamailio.org/docs/modules/1.4.x/dialog#id2508031
> 
> <quote>
> This PV will be available only for sequential requests, after doing
> loose_route().
> </quote>
> 
> So it means that you must perform loose_route() if you want to catch
> in-dialog request and have a consistent dialog state.  With your
> config, all the dialogs will just time out ...

What?  I did not commend out the record_route section:

         if(!is_method("REGISTER|OPTIONS"))
                 record_route();

The reason I commented out the loose_route() section was specifically to 
illustrate that dialog correlation does not occur _without_ it.  I 
normally have it enabled.

That was the topic of my original post:  how to correlate dialogs purely 
based on SIP attributes without the use of loose-routing.

It would seem to follow from what you are saying, from the documentation 
hint you reference (which I read before), and from my examination of the 
source code to see how the dialog correlation works that the only way it 
could possibly work is through the use of a dialog correlate attribute 
in the Route: header.  That is why a call to loose_route() is necessary, 
and that is why subsequent in-dialog requests do not get correlated 
without it.

-- Alex

-- 
Alex Balashov
Evariste Systems
Web    : http://www.evaristesys.com/
Tel    : (+1) (678) 954-0670
Direct : (+1) (678) 954-0671
Mobile : (+1) (706) 338-8599




More information about the sr-users mailing list