<div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hi all,<br>
I have a problem with audio, when the destination of a call is natted
and the other side is public. This problem is cause because the SDP
info only is present in the 200 OK and in the ACK message.<br>
<br>
I'm using ser (8.14) with mediaproxy (1.2.1).<br>
<br>
I have an H323 to SIP translator (and SIP to H323 too) connected to the PSTN and to the SIP Proxy (SER).<br>
H323 is the origin of the call (public client), and SIP UAC is the destination (Natted client).<br>
My proxy is working in state full mode and has a public IP.<br>
<br>
The H323 side is using slow start, so when it starts the transaction
with an INVITE, it will not send the SDP info (it will send it in the
ACK message).<br>
The proxy forwards this message to the destination.<br>
SIP UAC, starts ringing. When we hooks off, the SIP UAC send an 200 OK with SDP message to the H323 side.<br>
<br>
This is the 200 OK / SDP that the proxy receives from the SIP side. <br>
<span style="font-style: italic;"><br>
No.&nbsp;&nbsp;&nbsp;&nbsp;
Time&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Source&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Destination&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Protocol Info</span><br style="font-style: italic;">
<span style="font-style: italic;">&nbsp;&nbsp;&nbsp; 488
28.488811&nbsp;&nbsp;
<a href="http://200.68.89.2" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">200.68.89.2</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a href="http://200.68.89.12" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">200.68.89.12</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
SIP/SDP&nbsp; Status: <span style="font-weight: bold;">200 OK, with session description</span></span><br style="font-style: italic;">
<span style="font-style: italic;">&nbsp;&nbsp;&nbsp; Message body</span><br style="font-style: italic;">
<span style="font-style: italic;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Session Description Protocol</span><br style="font-style: italic;">
<span style="font-style: italic;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Session Description Protocol Version (v): 0</span><br style="font-style: italic;">
<span style="font-style: italic;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Owner/Creator, Session Id (o): 700600 6015 6015 IN IP4 <a href="http://192.168.0.101" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">192.168.0.101</a></span><br style="font-style: italic;">
<span style="font-style: italic;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Owner Username: 700600</span><br style="font-style: italic;">
<span style="font-style: italic;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Session ID: 6015</span><br style="font-style: italic;">
<span style="font-style: italic;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Session Version: 6015</span><br style="font-style: italic;">
<span style="font-style: italic;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Owner Network Type: IN</span><br style="font-style: italic;">
<span style="font-style: italic;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Owner Address Type: IP4</span><br style="font-style: italic;">
<span style="font-style: italic;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Owner Address: <a href="http://192.168.0.101" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">192.168.0.101</a></span><br style="font-style: italic;">

<span style="font-style: italic;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Session Name (s): AddPac Gateway SDP</span><br style="font-style: italic;">
<span style="font-style: italic;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Connection Information (c): IN IP4 <span style="font-weight: bold;"><a href="http://192.168.0.101" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">192.168.0.101
</a></span></span><br style="font-style: italic;">
<span style="font-style: italic;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Connection Network Type: IN</span><br style="font-style: italic;">
<span style="font-style: italic;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Connection Address Type: IP4</span><br style="font-style: italic;">
<span style="font-style: italic;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Connection Address: <a href="http://192.168.0.101" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">192.168.0.101</a></span><br style="font-style: italic;">

<span style="font-style: italic;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Time Description, active time (t): 0 0</span><br style="font-style: italic;">
<span style="font-style: italic;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Session Start Time: 0</span><br style="font-style: italic;">
<span style="font-style: italic;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Session Stop Time: 0</span><br style="font-style: italic;">
<span style="font-style: italic;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Media Description, name and address (m): audio 23018 RTP/AVP 18 8 0 101</span><br style="font-style: italic;">
<span style="font-style: italic;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Media Type: audio</span><br style="font-style: italic;">
<span style="font-style: italic;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Media Port: 23018</span><br style="font-style: italic;">
<span style="font-style: italic;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Media Proto: RTP/AVP</span><br style="font-style: italic;">
<span style="font-style: italic;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Media Format: ITU-T G.729</span><br style="font-style: italic;">
<span style="font-style: italic;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Media Format: ITU-T G.711 PCMA</span><br style="font-style: italic;">
<span style="font-style: italic;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Media Format: ITU-T G.711 PCMU</span><br style="font-style: italic;">
<span style="font-style: italic;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Media Format: 101</span><br style="font-style: italic;">
<br>
Following the ser.cfg, this 200 OK / SDP will make the proxy to use
mediaproxy (use_media_proxy()), because the destination user is natted.
So the mediaproxy module, will generate a lookup command to the
proxydispatcher.py. <br>
<br>
<span style="font-style: italic;">proxydispatcher[30535]: command
lookup <a href="mailto:2281401749@200.68.89.10" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">2281401749@200.68.89.10</a> <a href="http://192.168.0.101:23018" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
192.168.0.101:23018</a>:audio <a href="http://200.68.89.2" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">200.68.89.2</a>
<a href="http://200.68.89.10" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">200.68.89.10</a> remote <a href="http://200.68.89.10" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
200.68.89.10</a> unknown AddPac=20SIP=20Gateway
info=<a href="mailto:from:1150316660@200.68.89.10" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">from:1150316660@200.68.89.10</a>,<a href="mailto:to:1152464490@200.68.89.10" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
to:1152464490@200.68.89.10</a>,fromtag:3512844671,totag:7b07717a4</span><br style="font-style: italic;">

<span style="font-style: italic;">proxydispatcher[30535]: warning: trying to lookup session with non-existent id: '<a href="mailto:2281401749@200.68.89.10" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
2281401749@200.68.89.10</a>'</span><br style="font-style: italic;">

<br>
The proxydispatcher does not recognize that command because it has not
generate the session before. So, the proxy forwards the 200 OK /SDP
message without changing the SDP info. When the H323 sides receives
that info, it thinks that it has to send RTP to the private IP.<br>
<br>
Then the H323 sends the ACK with SDP. <br>
<br>
Then, we cannot ear audio in both sides. <br>
<br>
Here is the problem, because, I didn't receive an INVITE with SDP that can create the session into the dispatcher.<br>
<br><br>
A is public, B is natted<br>
<br>
side A&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
Proxy&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; side B<br>
<br>
&nbsp;&nbsp;&nbsp; INVITE without SDP<br>
&nbsp;&nbsp;&nbsp; ----------&gt;<br>
&nbsp;&nbsp;&nbsp; 100 Trying<br>
&nbsp;&nbsp;&nbsp; &lt;----------<br>
<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; INVITE without SDP<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ----------&gt;<br>
<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 100 Trying<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;----------<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 180 Ringing<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;----------<br>
&nbsp;&nbsp;&nbsp; 180 Ringing<br>
&nbsp;&nbsp;&nbsp; &lt;----------<br>
<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 200 OK SDP (B private IP)<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;----------<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; *1*<br>
&nbsp;&nbsp;&nbsp; 200 OK SDP (B private IP)<br>
&nbsp;&nbsp;&nbsp; &lt;----------<br>
<br>
&nbsp;&nbsp;&nbsp; ACK SDP (A public IP)<br>
&nbsp;&nbsp;&nbsp; ----------&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; *2*<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ACK SDP (mediaproxy public IP)<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ----------&gt;<br>
<br>
......................................................<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; RTP from B<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;----------------------<br>
&nbsp;&nbsp;&nbsp; *3*<br>
......................................................<br>
<br>
<br>
*1* The proxy must replace the private IP of the SDP, with the ip of
the mediaproxy. The looku prequest does not work, because no session
was found<br>
*2* the proxy generates the session in the mediaproxy. So B thinks that
the RTP must go to the mediaproxy. But A never knows the mediaproxy
address.<br>
*3* RTP from A goes to anywhere, because A does not know where it is the private adrress of B.<br>
<br>
</blockquote></div><br>
<br>
<br>

Do you know a solution to this? Is the sequence of the message all right? <br>

<br>
<br>

Regards.<br>

Carla<br>

<br>

<br>

<br>
<br>