Hello,
while you can use Kamailio operations to modify the SDP, usually you use something like
rtpengine to do this job.
It will additionally also process the RTP for you to be able to handle NAT better.
Have a look e.g., to the Kamailio default cfg for an inspiration how to use it.
Cheers,
Henning
--
Henning Westerholt –
https://skalatan.de/blog/
Kamailio services –
https://gilawa.com<https://gilawa.com/>
From: sr-users <sr-users-bounces(a)lists.kamailio.org> On Behalf Of Sergio Charrua
Sent: Monday, December 12, 2022 2:07 AM
To: Kamailio (SER) - Users Mailing List <sr-users(a)lists.kamailio.org>
Subject: [SR-Users] NAT issues with Kamailio + Asterisk with 2 NICs
Hi all!
Got a random issue with NAT which I really have no clue how to solve.
Setup is as follows:
- Client A sends SIP INVITE through Public IP 1.2.3.4, where a Cisco Firewall forwards
NATed data to a Kamailio instance (acting as a SIPProxy with dispatcher) listening with
internal address 192.168.0.1 on port 5060. RTPEngine is in the same server and address
too.
- Kamailio will forward the invite to Asterisk NIC 1 (192.168.0.2) which will do some
provisioning and accounting stuff and redirect the call (if authorized) to Client B's
public IP address (all clients are outside the network, reachable via WWW) using NIC 2
(192.168.1.2) and public address 4.3.2.1.
The issue is that from time to time, calls will not have audio.
Here is what I have found:
- when Client A sends INVITE, Asterisk NIC 1 will reply SIP 183 with SDP IP Address set to
the internal IP of NIC 1 (192.168.0.2)
- when Asterisk forwards call to Client B public IP address the SDP IP address is
192.168.1.2 (NIC 2)
And I think the issue is the SDP address is wrong: when Asterisk forwards call to Client
B, the SDP address should be the public IP 4.3.2.1 but it sends 192.168.1.2.
And when Asterisk replies to Kamailio the SDP is 192.168.0.1.
Correct me if I am wrong but i think the solution should be:
- when Kamailio receives a reply from Asterisk to be forwarded to Client A, it should
modify the SDP address to public IP 1.2.3.4
- when Asterisk forwards call to Client B, the sip.conf should have the parameter externip
set to the public IP 4.3.2.1
Questions:
- are my analysis & solution correct?
- is there an example of the above setup where I could get some ideas?
- how do I set Kamailio to modify the SDP address for me? Any examples?
Thanks in advance.
Sérgio Charrua