<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Hello,<br>
<br>
have you looked at sip trace and checked what are the IP addresses
in the SDP? Maybe you need to swap the flags i and e.<br>
<br>
You can eventually provide here the incoming invite as well as
outgoing invite, saying what you would expect to be in the outgoing
one, so we can give further hints.<br>
<br>
Cheers,<br>
Daniel<br>
<br>
<div class="moz-cite-prefix">On 16/07/14 15:08, Pascal Fautré wrote:<br>
</div>
<blockquote
cite="mid:2F739845-16B6-4350-89D3-D244DB7C262A@alt-tab.be"
type="cite">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
Hi,
<div><br>
</div>
<div>I tried to use Kamailio / RTPProxy in mhomed setup without
any luck.</div>
<div>I had no problem to configure it with only 1 interface,
without mhomed, everything worked perfectly.</div>
<div><br>
</div>
<div>The RTP streams where not established correctly even if I
managed to have to proper IP in the SIP INVITE (C & O).</div>
<div><br>
</div>
<div>Versions:</div>
<div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">version:
kamailio 4.1.4 (x86_64/linux) </div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">flags: STATS:
Off, USE_TCP, USE_TLS, TLS_HOOKS, USE_RAW_SOCKS,
DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP,
PKG_MALLOC, DBG_QM_MALLOC, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT,
USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST,
HAVE_RESOLV_RES</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">ADAPTIVE_WAIT_LOOPS=1024,
MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16, MAX_URI_SIZE 1024,
BUF_SIZE 65535, DEFAULT PKG_SIZE 4MB</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">poll method
support: poll, epoll_lt, epoll_et, sigio_rt, select.</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">id: unknown </div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">compiled on
04:23:19 Jun 13 2014 with gcc 4.7.2</div>
</div>
<div><br>
</div>
<div>RTPProxy -v:</div>
<div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">Basic version:
20040107</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">Extension
20050322: Support for multiple RTP streams and MOH</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">Extension
20060704: Support for extra parameter in the V command</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">Extension
20071116: Support for RTP re-packetization</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">Extension
20071218: Support for forking (copying) RTP stream</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">Extension
20080403: Support for RTP statistics querying</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">Extension
20081102: Support for setting codecs in the update/lookup
command</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">Extension
20081224: Support for session timeout notifications</div>
</div>
<div><br>
</div>
<div><br>
</div>
<div>Here is my RTPProxy config (/etc/default/rtpproxy) :</div>
<div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">CONTROL_SOCK=<a class="moz-txt-link-freetext" href="udp:127.0.0.1:7722">udp:127.0.0.1:7722</a></div>
</div>
<div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">EXTRA_OPTS=“-l
<i>PU.BL.IC.IP</i>/<i>PRI.VA.TE.IP</i> -m 11000 -M 12000 -d
DBUG:LOG_LOCAL3</div>
</div>
<div><br>
</div>
<div><br>
</div>
<div>Here are snippets of my kamailio.cfg:</div>
<div><br>
</div>
<div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">port=5060</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">mhomed=1</div>
<div><br>
</div>
<div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);"># RTPProxy
control</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">route[NATMANAGE]
{</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">#!ifdef
WITH_NAT</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);"> if
(is_request()) {</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">
if(has_totag()) {</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">
if(check_route_param("nat=yes")) {</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">
setbflag(FLB_NATB);</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">
}</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">
}</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);"> }</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);"> if
(!(isflagset(FLT_NATS) || isbflagset(FLB_NATB)))</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">
return;</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196); min-height:
14px;"><br>
</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">
xlog("NATMANAGE M=$rm OU=$ou RURI=$ru RD=$rd F=$fu T=$tu
NH=$nh(d) IP=$si ID=$ci\n");</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196); min-height:
14px;"><br>
</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">
if(dst_ip == PUBLIC_IP) {</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">
if(is_ipv4($nh(d)) && is_in_subnet($nh(d),
PRIVATE_NET)) {</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">
xlog("NATMANAGE coei\n");</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">
rtpproxy_<span style="font-variant-ligatures:
no-common-ligatures; color: #dfdbc4; background-color:
#4c2f2d">manage</span>("coei", PRIVATE_IP);</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">
} else {</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">
xlog("NATMANAGE coee\n");</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">
rtpproxy_<span style="font-variant-ligatures:
no-common-ligatures; color: #dfdbc4; background-color:
#4c2f2d">manage</span>("coee", PUBLIC_IP);</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">
}</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);"> }
else {</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">
if(is_ipv4($nh(d)) && is_in_subnet($nh(d),
PRIVATE_NET)) {</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">
xlog("NATMANAGE coii\n");</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">
rtpproxy_<span style="font-variant-ligatures:
no-common-ligatures; color: #dfdbc4; background-color:
#4c2f2d">manage</span>("coii", PRIVATE_IP);</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">
} else {</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">
xlog("NATMANAGE coie\n");</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">
rtpproxy_<span style="font-variant-ligatures:
no-common-ligatures; color: #dfdbc4; background-color:
#4c2f2d">manage</span>("coie", PUBLIC_IP);</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">
}</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);"> }</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);"><br>
</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);"> if
(is_request()) {</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">
if (!has_totag()) {</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">
if(t_is_branch_route()) {</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">
add_rr_param(";nat=yes");</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">
}</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">
}</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);"> }</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);"> if
(is_reply()) {</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">
if(isbflagset(FLB_NATB)) {</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">
if(is_first_hop())</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">
set_contact_alias();</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">
}</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);"> }</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">#!endif</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">
return;</div>
<div style="margin: 0px; font-family: Courier; color: rgb(76,
47, 45); background-color: rgb(223, 219, 196);">}</div>
</div>
<div><br>
</div>
<div><br>
</div>
<div>Calls were correctly going to the desired rtpproxy_manage
options. </div>
<div>Now I’m not quite sure I’m using the correct ones.</div>
<div>I had to specify the PUBLIC_IP or PRIVATE_IP in the
rtpproxy_manage calls in order to have the correct IP address
in the C and O headers of the SIP INVITE. Without that, the
public IP would be sent as C and O params to phones on the
private subnet.</div>
<div>In fact not a single call direction would give correct RTP
streams.</div>
<div><br>
</div>
<div>Any idea where I missed the turn?</div>
<div><br>
</div>
<div><br>
</div>
<div>Cheers</div>
<br>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:sr-users@lists.sip-router.org">sr-users@lists.sip-router.org</a>
<a class="moz-txt-link-freetext" href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users">http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users</a>
</pre>
</blockquote>
<br>
<pre class="moz-signature" cols="72">--
Daniel-Constantin Mierla - <a class="moz-txt-link-freetext" href="http://www.asipto.com">http://www.asipto.com</a>
<a class="moz-txt-link-freetext" href="http://twitter.com/#!/miconda">http://twitter.com/#!/miconda</a> - <a class="moz-txt-link-freetext" href="http://www.linkedin.com/in/miconda">http://www.linkedin.com/in/miconda</a></pre>
</body>
</html>