I'm running into a problem with SER & rtpproxy trying to get a NAT scenario to
work correctly. I'm still learning about SER, so bear with me... :)
Here is my network layout in a nutshell:
SIP ATA
- 10.0.201.196 (private only, no NAT to internet)
SER
- eth0: 208.208.53.5/24
- eth1: 10.0.201.5/24
Asterisk
- eth0: 65.234.34.5/24
*Everything* is configured to proxy through SER to Asterisk currently. My
configuration file is here:
http://webdev.digitalpath.net/~rayvd/voice/ser.cfg
Here's the problem I'm running into:
1. SIP ATA places call (INVITE sent)
2. SER routes INVITE to Asterisk (and modifies c= in the SDP portion to point
back to 208.208.53.5 as I understand it).
3. Ring, ring, other side answers.
4. Asterisk sends back a 200 OK message with c= 65.234.34.5 in its SDP message
body.
5. My configuration changes this to 208.208.53.5
6. Voice packets now are outbound on SER eth1 with src ip of 208.208.53.5 and
dst ip of 10.0.201.196. Obviously this will not work.
From what I understand however, rtpproxy appears to
only use one IP address
regardless of the direction traffic is going. If I bind
rtpproxy to
10.0.201.5 on SER, then the IP in step 6 above will be correct, but the
Asterisk server will be trying to send RTP traffic to 10.0.201.5 instead of
208.208.53.5.
What am I doing wrong here? Can I run two instances of rtpproxy depending on
the direction of the audio? I've tried different parameters to
force_rtp_proxy() to no avail. Is there a function to manually change the c=
line in the SDP body before it gets sent out?
Thanks for any help!
--
Ray Van Dolson
Linux/Unix Systems Administrator
Digital Path, Inc.