Cameron,
The problem is that the c= field in the SDP payload is always pointing to
127.0.0.1 <http://127.0.0.1> (aka, your loopback interface). This is not
going to work since neither Sipura or X-lite client can connect to your
loopback interface.
More specifically, the INVITE message that is sent from the Sipura to the
SER proxy is then rewritten and then relayed to the X-lite SIP UA. This
relayed INVITE has the incorrect c= field in the SDP.
Likewise, the 200OK that X-lite replies with is then rewritten by SER and
relayed to the Sipura UA. This 200OK also has a c= of
127.0.0.1<http://127.0.0.1>
I suspect that your call to use_media_proxy() is correct, but media proxy is
running on the wrong interface.
If you look at the
onsip.org <http://onsip.org> documentation you will find
a mediaproxy init.d start script in the appendix. In this start script you
will see the following line:
PROXY_OPTIONS="--ip=71.16.1.15 <http://71.16.1.15>
--listen=127.0.0.1<http://127.0.0.1>
"
The --ip option must be an IP that is available to all SIP clients (NATed an
non-NATed). Therefore you should specify a public ip address. This then is
the ip that will be used in the c= field in the SDP payload. The --listen
parameter can be 127.0.0.1 <http://127.0.0.1> if you are running mediaproxy
on your SIP router. If not, then you will need to change this as well.
NOTE: If you're mediaproxy is behind an ALG enabled router, such as a Cisco
3600, then the router will rewrite the RFC1918 IPs with the public ones, so
in this case you would use the --ip option as an RFC1918 address.
Regards,
Paul