[SR-Users] Dialog module showing calls that have already been terminated

Timo Reimann timo.reimann at 1und1.de
Tue Sep 20 14:06:27 CEST 2011


Hey Phillip,


On 20.09.2011 13:48, Phillman25 Kyriacou wrote:
> Thanks for your email.
> 
> Yes dlg_manage(); has to now be called on INVITE and BYE/CANCEL messages.
> Where would i have to call loose_route()? Only on INVITE?

On *all* in-dialog requests, i.e., all requests which contain a To tag.
This may include Re-INVITEs too (but not initial INVITEs).


> My configuration did not change between 3.1.2 and 3.1.5.
> 
> Call flow example:
> ==============
> 
> Cisco PGW ===> Kamailio 3.1.5 ===> VOIP PROVIDER or ASTERISK PABX
> 
> 
> The below is my configuration.

Let's take a look at it:


> #!KAMAILIO
> #

[...]

>          if(is_method("BYE|CANCEL"))
> 
>       {
>        
>          dlg_manage();
>       
>        
> 
>         # per request initial checks
>         route(REQINIT);
> 
>         # NAT detection
>         route(NAT);
> 
>         # handle requests within SIP dialogs
>         route(WITHINDLG);

[...]

> # 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()) {

[...]


So route[WITHINDLG] contains the logic to track in-dialog requests.
However, you seem to call that route only from BYE and CANCEL requests,
missing out ACKs, which is likely the reason why things go wrong. So
make sure you run all in-dialog requests through that route, and you
should be fine (hopefully).


Cheers,

--Timo



More information about the sr-users mailing list