Hello,
On 12/14/09 4:54 PM, Bruce McAlister wrote:
Hi Daniel,
depending on flags, the public or internal IP is
used to update the sdp.
If you get it in the wrong order, then change the flags e and i in
force_rtp_proxy() call.
I think I have the flags setup correctly because I am able to get calls
working if I setup a phone to send out its details as having my firewall
ip address. If I change the ei/ie parameters in force_rtpproxy then the
calls dont work at all.
I will try to explain my scenario below.
I have a soft phone (x-lite) on my pc who's internal IP address is
192.168.11.2. When I initiate a call from my softphone the contact
address is setup as 192.168.11.2, kamailio then adds the rport and
received parameters as my external firewall ip and port.
When I force the rtpproxy setup, it looks like rtpproxy is setting up
the correct ports on our publice ip, but it looks like rtpproxy wants to
talk to my softphone using ip address 192.168.11.2 instead of the ip
address that is in the recevied parameter.
INFO:handle_command: pre-filling caller's address with 192.168.11.2:14880
My external IP of my firewall is 188.141.20.76, I would have expected
the rtpproxy line to look like this:
INFO:handle_command: pre-filling caller's address with 188.141.20.76:14880
The media server on the other side of the rtpproxy bridge is able to
send traffic to rtpproxy, but it looks like rtpproxy is not able to
contact the softphone as it is a private address.
If I do the same test using a Cisco 7960 which has "nat-traversal"
enabled in its configuration then the call works, rtpproxy sets up the
correct ports on the internal nic for the media server to talk to and it
sets up a port pair on its external nic to talk to the cisco phone. This
works.
I suspect my problem lies with nat somewhere and telling rtpproxy to use
the "recieved" ip address of my firewall to talk to my x-lite.
I hope I am explaining my scenario better. Any comments suggestions
would be appreciated.
in order to connect the rtp stream, rtpproxy needs to receive an audio
packet (rtp) from each side. rtpproxy main job is to give addresses and
ports to fill in SDP of INVITE and 200OK reply.
If you can get an ngrep trace with such call, I can give more hits about
whether is ok or not.
Cheers,
Daniel
--
Daniel-Constantin Mierla
*
http://www.asipto.com/