<div dir="ltr"><div>Hi all. I have a question. I'm having NAT issues with RTP traffic. <br><br></div>I have both server and clients behind a nat and I'm doing load balancing trhough load_balance module. The architecture is simple, I need load balancing and high availability so I'm currently using two servers with two different ips, both servers have an asterisk and an opensip server. I loadbalance with SRV DNS records as well as using load_balance module of opensips. Both servers are behing a nat and in the same local network, their public IPs address uses a one-to-one nat. (wel, amazon ec2 way of things). I'm pretty happy with the system because does everything I needed. To solve NAT issues I use nat_helper basically and correct SDP payloads translating the RTP IPs asterisk gives in the SDP payload <br>
<div> by those I already know will be the public ones (I use chef to provision).<br><br>The thing is that in some clients I end up with one-way audio because (I guess) the client starts sending RTP traffic right after the invite, and if the RTP server is not the same as the SIP, the traffic is cut by the client router. My guess is that the NAT table is not refreshed and as the incomming traffic comes from a different IP than the one used in the beginning, the traffic does not reach the ATA (the nat nable maps port + SIP SERVER IP instead of port + RTP SERVER IP). The SDP + SIP stuff is ok, and the traffic in the servers is correct (I see RTP traffic both ways). One solution is to forward RTP ports in the client router to the local ip, but I have no access to every client (this solution works, but can't implement it). <br>
<br>My question is, Is there a way (using SIP+SDP) to change source port? I understand the server cannot choose the client src port, but it could (upon INVITE completion) to tell the client to change its source port, I guess this will solve the NAT issue because a new entry is added into the NAT map.<br>
<br></div><div>Thanks in advance!<br></div></div>