Hello,

domain table must contains the hostnames associated with the Kamailio server. Eventually you can add local ip addresses, but they are redundant if you just want to compare with 'myself'. You must not add in the domain table the ip addresses of client devices (phones).

By adding an ip address to domain table you tell kamailio to consider the uri that has that IP as for itself. So, practically instead of forwarding to IP 10.0.0.40, you tell to kamailio to handle locally the requests with uri including 10.0.0.40.

You should just remove 10.0.0.40 from domain table, I see no reason to have it there, given it is one used by a client device.

Cheers,
Daniel

On 08/04/15 13:44, Grant Bagdasarian wrote:

Hello Daniel,

 

I’m not sure what you mean by alias or domain.

 

kamcmd domain.dump

3(15821) DEBUG: ctl [../../io_wait.h:388]: io_watch_add(): DBG: io_watch_add(0x7f803146daa0, 7, 3, 0x2652370), fd_no=1

3(15821) DEBUG: ctl [io_listener.c:453]: handle_new_connect(): handle_stream read: new connection (1) on /tmp/kamailio_ctl

{

        domain: 10.0.0.40

        did: 10.0.0.40

}

 

I have some domain checks in my script, which I commented out, but the problem still remains.

if(!is_domain_local("$rd")) { }

if(!is_domain_local("$fd")) { }

 

When I set the register_myself modparam to 0 it works, regardless of the is_domain_local checks! The BYE is sent back to the UAC.

modparam("domain", "register_myself", 0)

 

Not sure as to why this changes the behavior?

 

From: sr-users [mailto:sr-users-bounces@lists.sip-router.org] On Behalf Of Daniel-Constantin Mierla
Sent: Wednesday, April 8, 2015 1:28 PM
To: Kamailio (SER) - Users Mailing List
Subject: Re: [SR-Users] BYE not forwarded

 

Hello,

is the ip 10.0.0.40 set as alias or domain in domain table? It looks like kamailio considers it to be a local domain.

Cheers,
Daniel

On 08/04/15 13:13, Grant Bagdasarian wrote:

Hello,

 

I have the following setup:

 

UAC (Bria)  ------ Kamailio -------- Freeswitch

 

Kamailio is used to authenticate the client using basic authentication.

Upon authentication the INVITE is sent to Freeswitch for further handling.

Kamailio stays in the path using record-route.

 

At this point, the authentication and calling FS works fine.

For now, FS just answers, plays a file and hangsup the call.

Answering the call and playing a file works fine.

When FS hangs up the call, the BYE message is sent back to Kamailio.

 

The problem is the BYE message from FS contains a Route header which points to Kamailio again.

Which causes Kamailio to send the BYE message back to itself. Kamailio then replies with a 404.

The BYE is never sent to the UAC.

 

When I remove the record_route() for INVITEs, the call works fine, but Kamailio isn’t kept in the signaling path.

The BYE is sent directly to the UAC.

 

T 10.0.5.52:54822 -> 10.0.5.50:5060 [AP]

BYE sip:grant@10.0.0.40:5060;transport=tcp SIP/2.0.

Via: SIP/2.0/TCP 10.0.5.52;rport;branch=z9hG4bK99X8a4Q8BFy1a.

Route: <sip:10.0.5.50;transport=tcp;lr=on>.

Max-Forwards: 70.

From: <sip:123456789@10.0.0.40>;tag=aey7rKe7DmQte.

To: <sip:grant@10.0.0.40>;tag=dbc9c27b.

Call-ID: NmQ4YjYyMDFkNmMwZjg0ZmU5NjQ3ODhjYzU0MDBmNGI.

CSeq: 73909300 BYE.

User-Agent: CM SBC.

Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, NOTIFY.

Supported: timer, path, replaces.

Reason: Q.850;cause=16;text="NORMAL_CLEARING".

Content-Length: 0.

 

Here is the WITHINDLG route:

 

route[WITHINDLG] {

                xlog("L_INFO", "[R-ROUTE-WITHINDLG:$ci] !>" "Route:WITHINDLG;UnixTime:$TV(un);RequestURI:$rU;RequestMethod:$rm;FromTag:$ft;ToTag:$tt;CallID:$ci;From:$fU;To:$rU\r\n");

               

                if (!has_totag()) {

                               return;

                }

               

                # Sequential request within a dialog should take the path determined by record-routing

                if (loose_route()) {

                               route(RELAY);

                               exit;

                } else { 

                               if (is_method("ACK")) {

                                               if (t_check_trans()) {

                                                               # No Loose-Route, but stateful ACK. Must be ACK after 487

                                                               route(RELAY);

                                                               exit;

                                               } else {

                                                               # ACK without matching transaction

                                                               exit;

                                               }

                               }

                               sl_send_reply("404","Not here");

                }

                exit;

}

 

I’m using TCP as the transport.

Kamailio: 4.2.3

Freeswitch: 1.5.15

 

 

I’ve attached a SIP trace from the point of view of Kamailio.

UAC: 10.0.0.40

Kamailio: 10.0.5.50

Freeswitch: 10.0.5.52

 

What is going on here?

The whole Record-Route thing confuses me a lot.

 

Regards,

 

Grant

 




_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users



-- 
Daniel-Constantin Mierla
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Kamailio World Conference, May 27-29, 2015
Berlin, Germany - http://www.kamailioworld.com

-- 
Daniel-Constantin Mierla
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Kamailio World Conference, May 27-29, 2015
Berlin, Germany - http://www.kamailioworld.com