I misunderstood the reason for the domain module. I thought it was used to store (remote) domains the proxy should handle and allow.
And by domains I mean remote addresses. For instance, when providing customers with a SIP trunk and the Kamailio being the proxy for those trunks and their domains.
Currently the addresses contained in the table are all remote addresses.
The client (10.0.0.40) was just to simulate a remote sip server sending calls.
This logic is perhaps more suited for the permissions and group module am I correct?
From: Daniel-Constantin Mierla [mailto:miconda@gmail.com]
Sent: Wednesday, April 8, 2015 2:32 PM
To: Grant Bagdasarian; Kamailio (SER) - Users Mailing List
Subject: Re: [SR-Users] BYE not forwarded
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,
DanielOn 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 listsr-users@lists.sip-router.orghttp://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
--Daniel-Constantin Mierlahttp://twitter.com/#!/miconda - http://www.linkedin.com/in/micondaKamailio World Conference, May 27-29, 2015Berlin, 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