Hi Daniel,
Yes, those headers are extracted from a wireshark pcap.
Yes, kamailio is listening on a public IP address without any sort of NAT.
Here's the REGISTER sent from kamailio to FreeSWITCH, copied from a pcap
using wireshark with IPs replaced:
Session Initiation Protocol (REGISTER)
Request-Line: REGISTER sip:sip.test.com:5060 SIP/2.0
Method: REGISTER
Request-URI: sip:sip.test.com:5060
Request-URI Host Part:
sip.test.com
Request-URI Host Port: 5060
[Resent Packet: False]
Message Header
Record-Route: <sip:KAMAILIO_PUBLIC_IP;lr=on;ftag=1015994109>
Via: SIP/2.0/UDP
KAMAILIO_PUBLIC_IP;branch=z9hG4bKb4a9.4cbfa8e6cdc8083ffe5ff1ea228fea26.0
Via: SIP/2.0/UDP
192.168.1.200:5063;rport=5063;received=UAC_PUBLIC_IP;branch=z9hG4bK332629336
From: <sip:1001@sip.test.com>;tag=1015994109
To: <sip:1001@sip.test.com>
Call-ID: 1821101462(a)192.168.1.200
CSeq: 1 REGISTER
Contact: <sip:1001@192.168.1.200:5063>
Allow: INVITE, INFO, PRACK, ACK, BYE, CANCEL, OPTIONS, NOTIFY,
REGISTER, SUBSCRIBE, REFER, PUBLISH, UPDATE, MESSAGE
Max-Forwards: 69
User-Agent: Yealink SIP-T42G 29.72.23.5
Expires: 3600
Allow-Events: talk,hold,conference,refer,check-sync
Content-Length: 0
Path: <sip:KAMAILIO_PUBLIC_IP;lr;received=sip:UAC_PUBLIC_IP:5063>
Path URI:
sip:KAMAILIO_PUBLIC_IP;lr;received=sip:UAC_PUBLIC_IP:5063
Path Host Part: KAMAILIO_PUBLIC_IP
Path URI parameter: lr
Path URI parameter: received=sip:UAC_PUBLIC_IP:5063
And this is the test INVITE from FreeSWITCH to kamailio:
Session Initiation Protocol (INVITE)
Request-Line: INVITE sip:1001@192.168.1.200:5063 SIP/2.0
Message Header
Via: SIP/2.0/UDP
FREESWITCH_PUBLIC_IP;rport;branch=z9hG4bK543jg8S9Ng8gm
Route: <sip:KAMAILIO_PUBLIC_IP>;lr;received=sip:UAC_PUBLIC_IP:5063
Max-Forwards: 70
From: "" <sip:0000000000@FREESWITCH_PUBLIC_IP>;tag=DyFB81r40609Q
To: <sip:1001@192.168.1.200:5063>
Call-ID: fad5ae53-e89d-1235-d8b5-00163e50ea42
CSeq: 109979488 INVITE
Contact: <sip:mod_sofia@FREESWITCH_PUBLIC_IP:5060>
User-Agent: FreeSWITCH-1.6.9-16-d574870~64bit
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO,
UPDATE, REGISTER, REFER, NOTIFY, PUBLISH, SUBSCRIBE
Supported: timer, path, replaces
Allow-Events: talk, hold, conference, presence,
as-feature-event, dialog, line-seize, call-info, sla,
include-session-description, presence.winfo, message-summary, refer
Content-Type: application/sdp
Content-Disposition: session
Content-Length: 319
X-FS-Support: update_display,send_info
Message Body
Session Description Protocol
Session Description Protocol Version (v): 0
Owner/Creator, Session Id (o): FreeSWITCH 1500611681
1500611682 IN IP4 FREESWITCH_PUBLIC_IP
Session Name (s): FreeSWITCH
Connection Information (c): IN IP4 FREESWITCH_PUBLIC_IP
Time Description, active time (t): 0 0
Media Description, name and address (m): audio 19424
RTP/AVP 9 0 8 3 101 13
Media Attribute (a): rtpmap:9 G722/8000
Media Attribute (a): rtpmap:0 PCMU/8000
Media Attribute (a): rtpmap:8 PCMA/8000
Media Attribute (a): rtpmap:3 GSM/8000
Media Attribute (a): rtpmap:101 telephone-event/8000
Media Attribute (a): fmtp:101 0-16
Media Attribute (a): rtpmap:13 CN/8000
Media Attribute (a): ptime:20
As always, thanks for all your help!
Kind regards,
Iskren
On 21.7.2017 г. 11:42, Daniel-Constantin Mierla wrote:
Hello,
are you sure that the Route is like that? The lr parameter and
received should be between angle brakets <> along with the sip uri.
Maybe you should paste here the full REGISTER sent to sip server after
adding the path as well as the INVITE received later. You can replace
the IP addresses that are sensitive for you, but keel everything else
as it is in order to see if there is something wrong in the headers.
Btw, the To header has nothing to do with routing, the R-URI will be
also relevant in this case.
Is kamailio listening directly on a public ip?
Cheers,
Daniel
On 20.07.17 17:18, Iskren Hadzhinedev wrote:
Hello,
I have a kamailio proxy in front of FreeSWITCH.
Whenever FreeSWITCH initiates the dialog (e.g. sends an INVITE),
kamailio doesn't use the 'received' parameter and it forwards to the
RFC1918 IP address. The initial INVITE from FreeSWITCH has the
following headers:
To: <sip:1001@192.168.1.200:5063>
Route: <sip:1.2.3.4>;lr;received=sip:5.6.7.8:5063
Where 1.2.3.4 is the kamailio public IP and5.6.7.8 is the public IP
of the UAC behind NAT.
I have modparam("path", "use_received", 1) in my config file and to
my understanding that should be sufficient to route to the proper IP,
but kamailio keeps sending INVITEs to 192.168.1.200.
Can anyone tell me what am I missing?
Thanks!
Kind regards,
Iskren
_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users(a)lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
--
Daniel-Constantin Mierla
www.twitter.com/miconda --www.linkedin.com/in/miconda
Kamailio Advanced Training -www.asipto.com
Kamailio World Conference -www.kamailioworld.com