Vivienne,
See inline.
> After further testing I have determined what exactly seems to
be
> happening. When the private client initiates a call to the
public
> phone and the public phone then rings back the private
phone,
> everything is fine. However if after a period of time, the
public
> phone rings the private phone, there is no
audio.
This is interesting, because now your OKs seem to be correct. Please
note that BOTH the INVITE going to the private and the OK going back to the
public should have both Contact and c IP address changed for proxying to work.
What is interesting, is that you say it works if you call the public phone
first once and then call the private right away. This doesn't really make sense
at all as long as the private phone rings when you have no audio. Because,
if it rings, the NAT is still open and SIP messaging is working...
When you say "no audio", does that mean in no
directions?! If you do a netstat -nlp | grep rtpproxy, you will
find four udp ports, two for each client (1 x RTCP, 1 x
RTP). Do a tcpdump port x on each of them to see if traffic goes
through the proxy.
BTW, you can start ngrep with this script (do mkdir /var/log/sip
first):
#!/bin/sh
nohup /path-to-ngrep/ngrep -t -W byline port 5060 2>&1
| rotatelogs /var/log/sip/sip 86400 &
You will then get easier to read output and everything is written to files
(and they are rotate every day).
If you could, it would be great to see a full (all messages) SIP ngrep dump
for the following actions:
1. Public calls private, keeps the line open for 5 seconds and then private
hangs up
2. Private calls public, keeps the line open for 5 seconds and then public
hangs up
3. Step 1 once more.
I assume that you should experience #1 with no (one-way?which way?) audio,
#2 is ok, #3 works based on your description.
> Im presuming this is somthing got to do with the fact that
the
> RTPProxy doesnt know where the audio should be delivered or
something
> got to do with ports?? My registration messages should last
for many
> days. I have included the 200OK message sequences below when
2092
> (public) rings 2093(private) and theres no audio. I would like
if
> someone could clarify if the "nortpproxy:yes" is appropriate and
if
> the "c" field of the sdp is correct. Should the c field contain
the
> public address of the natted client or the address of the
rtpproxy??
nortpproxy:yes means that force_rtp_proxy() has been called for the
message and c IP address has been replaced.
The c IP address should (when you proxy) be the public address of the
rtpproxy.
g-)