<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.3.3" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>
<channel>
	<title>Comments on: Tráfico RTP directo entre dispositivos con NAT (y parche)</title>
	<link>http://www.julianmenendez.es/trafico-rtp-directo-nat-parche/</link>
	<description>Blog personal sobre asterisk, linux y todo lo demás</description>
	<pubDate>Fri, 18 May 2012 14:23:34 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
		<item>
		<title>By: Johnny</title>
		<link>http://www.julianmenendez.es/trafico-rtp-directo-nat-parche/#comment-16624</link>
		<dc:creator>Johnny</dc:creator>
		<pubDate>Sun, 05 Oct 2008 18:08:37 +0000</pubDate>
		<guid>http://www.julianmenendez.es/trafico-rtp-directo-nat-parche/#comment-16624</guid>
		<description>Hola Julian, al final tuve que meter en todos lados canreinvite=yes para que funcione. No pude hacer que todas las llamadas entren y salgan a mi Asterisk con canreinvite=yes, mi Asterisk simpre intentaba hacer bridge, ahi esta el problema. 

Despues tengo otro problemita con tos mi debug: Unable to set TOS to 184. Tengo en sip.conf bajo [general] tos=0x68. pero Asterisk parece que no quiere saber nada :(
De todas maneras Julian te agradesco mucho por predisposicion. Suerte

Johnny</description>
		<content:encoded><![CDATA[<p>Hola Julian, al final tuve que meter en todos lados canreinvite=yes para que funcione. No pude hacer que todas las llamadas entren y salgan a mi Asterisk con canreinvite=yes, mi Asterisk simpre intentaba hacer bridge, ahi esta el problema. </p>
<p>Despues tengo otro problemita con tos mi debug: Unable to set TOS to 184. Tengo en sip.conf bajo [general] tos=0&#215;68. pero Asterisk parece que no quiere saber nada <img src='http://www.julianmenendez.es/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /><br />
De todas maneras Julian te agradesco mucho por predisposicion. Suerte</p>
<p>Johnny</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: julianjm</title>
		<link>http://www.julianmenendez.es/trafico-rtp-directo-nat-parche/#comment-16618</link>
		<dc:creator>julianjm</dc:creator>
		<pubDate>Sat, 04 Oct 2008 23:27:52 +0000</pubDate>
		<guid>http://www.julianmenendez.es/trafico-rtp-directo-nat-parche/#comment-16618</guid>
		<description>Johnny, que asterisk haga bridging no es malo... es necesario, ya que "bridge" significa puente, es decir, puente entre los dos canales que intervienen en una llamada.

Ahora bien, hay varios tipos de bridging:

Packet2packet es un modo light (en lo referente a recursos de CPU), en el que asterisk simplemente reenvía al otro peer los paquetes RTP que llegan, pero sin "procesarlos"... Es decir, no decodifica el audio.

Luego está el native bridge. Si los dos peers son SIP, y no hay nada que lo prohiba (canreinvite=no), asterisk intentará que los dispositivos se envíen audio directamente entre ellos.

Pero ojo, canreinvite=no tiene que estar definido en los dos peers si quieres que todo el audio pase por asterisk.

[peerA]
canreinvite=yes
...
[peerB]
canreinvite=no

Si asterisk conecta estos dos peers, lo que probablemente ocurrirá es que B enviará siempre su tráfico RTP a asterisk, pero recibirá directamente el tráfico RTP del peer A, ya que este tiene canreinvite=yes.

Tráfico RTP en ambos sentidos:
A-&gt; B
B -&gt; Asterisk -&gt; A

Julian J. M.</description>
		<content:encoded><![CDATA[<p>Johnny, que asterisk haga bridging no es malo&#8230; es necesario, ya que &#8220;bridge&#8221; significa puente, es decir, puente entre los dos canales que intervienen en una llamada.</p>
<p>Ahora bien, hay varios tipos de bridging:</p>
<p>Packet2packet es un modo light (en lo referente a recursos de CPU), en el que asterisk simplemente reenvía al otro peer los paquetes RTP que llegan, pero sin &#8220;procesarlos&#8221;&#8230; Es decir, no decodifica el audio.</p>
<p>Luego está el native bridge. Si los dos peers son SIP, y no hay nada que lo prohiba (canreinvite=no), asterisk intentará que los dispositivos se envíen audio directamente entre ellos.</p>
<p>Pero ojo, canreinvite=no tiene que estar definido en los dos peers si quieres que todo el audio pase por asterisk.</p>
<p>[peerA]<br />
canreinvite=yes<br />
&#8230;<br />
[peerB]<br />
canreinvite=no</p>
<p>Si asterisk conecta estos dos peers, lo que probablemente ocurrirá es que B enviará siempre su tráfico RTP a asterisk, pero recibirá directamente el tráfico RTP del peer A, ya que este tiene canreinvite=yes.</p>
<p>Tráfico RTP en ambos sentidos:<br />
A-> B<br />
B -> Asterisk -> A</p>
<p>Julian J. M.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Johnny</title>
		<link>http://www.julianmenendez.es/trafico-rtp-directo-nat-parche/#comment-16616</link>
		<dc:creator>Johnny</dc:creator>
		<pubDate>Sat, 04 Oct 2008 19:55:05 +0000</pubDate>
		<guid>http://www.julianmenendez.es/trafico-rtp-directo-nat-parche/#comment-16616</guid>
		<description>Hola Julian, te queria hacer una consulta, como es posible deshabilitar  Packet2Packet bridging, y vengo hace un tiempo luchando con esto. Al usar DISA se ve que me llegan paquetes vacios por un tiempo + o -  de 30 segundos se escucha audio solo de un lado luego comienza a funcionar normalmente. Lo que si siempre veo es ese maldito "bridging", uso obviamente canreinvite=no pero no funciona, simpre hace el maldito puente. Alguna solucion?
Asterisk 1.4.18</description>
		<content:encoded><![CDATA[<p>Hola Julian, te queria hacer una consulta, como es posible deshabilitar  Packet2Packet bridging, y vengo hace un tiempo luchando con esto. Al usar DISA se ve que me llegan paquetes vacios por un tiempo + o -  de 30 segundos se escucha audio solo de un lado luego comienza a funcionar normalmente. Lo que si siempre veo es ese maldito &#8220;bridging&#8221;, uso obviamente canreinvite=no pero no funciona, simpre hace el maldito puente. Alguna solucion?<br />
Asterisk 1.4.18</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: julianjm</title>
		<link>http://www.julianmenendez.es/trafico-rtp-directo-nat-parche/#comment-15656</link>
		<dc:creator>julianjm</dc:creator>
		<pubDate>Thu, 21 Aug 2008 14:46:09 +0000</pubDate>
		<guid>http://www.julianmenendez.es/trafico-rtp-directo-nat-parche/#comment-15656</guid>
		<description>Seguramente hayan añadido esa nueva llamada a sip_rtp_set_peer, y claro, le falta el parámetro adicional que añadía el parche... Fíjate en cómo están el resto a intenta añadir el parámetro a esa llamada :)</description>
		<content:encoded><![CDATA[<p>Seguramente hayan añadido esa nueva llamada a sip_rtp_set_peer, y claro, le falta el parámetro adicional que añadía el parche&#8230; Fíjate en cómo están el resto a intenta añadir el parámetro a esa llamada <img src='http://www.julianmenendez.es/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Javier</title>
		<link>http://www.julianmenendez.es/trafico-rtp-directo-nat-parche/#comment-15653</link>
		<dc:creator>Javier</dc:creator>
		<pubDate>Thu, 21 Aug 2008 12:30:23 +0000</pubDate>
		<guid>http://www.julianmenendez.es/trafico-rtp-directo-nat-parche/#comment-15653</guid>
		<description>Esta fue la salida:

patching file channels/chan_sip.c
Hunk #1 succeeded at 570 (offset 8 lines).
Hunk #2 succeeded at 1537 (offset 15 lines).
Hunk #3 succeeded at 15985 (offset 458 lines).
Hunk #4 succeeded at 17051 (offset 510 lines).
Hunk #5 succeeded at 17296 (offset 512 lines).
Hunk #6 succeeded at 17689 (offset 520 lines).
Hunk #7 succeeded at 17717 (offset 520 lines).
patching file include/asterisk/rtp.h
patching file main/rtp.c
Hunk #1 succeeded at 1551 (offset 10 lines).
Hunk #2 succeeded at 1622 (offset 10 lines).
Hunk #3 succeeded at 2861 (offset 53 lines).
Hunk #4 succeeded at 2869 (offset 53 lines).
Hunk #5 succeeded at 2892 with fuzz 1 (offset 54 lines).
Hunk #6 succeeded at 2924 (offset 54 lines).
Hunk #7 succeeded at 2938 (offset 54 lines).
Hunk #8 succeeded at 2948 (offset 54 lines).
Hunk #9 succeeded at 2971 (offset 54 lines).
Hunk #10 succeeded at 2985 with fuzz 2 (offset 55 lines).
Hunk #11 succeeded at 3032 (offset 65 lines).</description>
		<content:encoded><![CDATA[<p>Esta fue la salida:</p>
<p>patching file channels/chan_sip.c<br />
Hunk #1 succeeded at 570 (offset 8 lines).<br />
Hunk #2 succeeded at 1537 (offset 15 lines).<br />
Hunk #3 succeeded at 15985 (offset 458 lines).<br />
Hunk #4 succeeded at 17051 (offset 510 lines).<br />
Hunk #5 succeeded at 17296 (offset 512 lines).<br />
Hunk #6 succeeded at 17689 (offset 520 lines).<br />
Hunk #7 succeeded at 17717 (offset 520 lines).<br />
patching file include/asterisk/rtp.h<br />
patching file main/rtp.c<br />
Hunk #1 succeeded at 1551 (offset 10 lines).<br />
Hunk #2 succeeded at 1622 (offset 10 lines).<br />
Hunk #3 succeeded at 2861 (offset 53 lines).<br />
Hunk #4 succeeded at 2869 (offset 53 lines).<br />
Hunk #5 succeeded at 2892 with fuzz 1 (offset 54 lines).<br />
Hunk #6 succeeded at 2924 (offset 54 lines).<br />
Hunk #7 succeeded at 2938 (offset 54 lines).<br />
Hunk #8 succeeded at 2948 (offset 54 lines).<br />
Hunk #9 succeeded at 2971 (offset 54 lines).<br />
Hunk #10 succeeded at 2985 with fuzz 2 (offset 55 lines).<br />
Hunk #11 succeeded at 3032 (offset 65 lines).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: julianjm</title>
		<link>http://www.julianmenendez.es/trafico-rtp-directo-nat-parche/#comment-15646</link>
		<dc:creator>julianjm</dc:creator>
		<pubDate>Thu, 21 Aug 2008 08:59:40 +0000</pubDate>
		<guid>http://www.julianmenendez.es/trafico-rtp-directo-nat-parche/#comment-15646</guid>
		<description>Javier, el post es de agosto del 2007, así que busca una versión de asterisk sacada por esas fechas.

De todas formas, el parche te aplicó sin problemas?</description>
		<content:encoded><![CDATA[<p>Javier, el post es de agosto del 2007, así que busca una versión de asterisk sacada por esas fechas.</p>
<p>De todas formas, el parche te aplicó sin problemas?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Javier</title>
		<link>http://www.julianmenendez.es/trafico-rtp-directo-nat-parche/#comment-15617</link>
		<dc:creator>Javier</dc:creator>
		<pubDate>Wed, 20 Aug 2008 15:56:51 +0000</pubDate>
		<guid>http://www.julianmenendez.es/trafico-rtp-directo-nat-parche/#comment-15617</guid>
		<description>con que version de Asterisk funciona el patch, intento con 1.4.21.2 y no me compila

chan_sip.c:3814: error: too few arguments to function 'sip_set_rtp_peer'
make[1]: *** [chan_sip.o] Error 1
make: *** [channels] Error 2

Gracias.</description>
		<content:encoded><![CDATA[<p>con que version de Asterisk funciona el patch, intento con 1.4.21.2 y no me compila</p>
<p>chan_sip.c:3814: error: too few arguments to function &#8217;sip_set_rtp_peer&#8217;<br />
make[1]: *** [chan_sip.o] Error 1<br />
make: *** [channels] Error 2</p>
<p>Gracias.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: julianjm</title>
		<link>http://www.julianmenendez.es/trafico-rtp-directo-nat-parche/#comment-4633</link>
		<dc:creator>julianjm</dc:creator>
		<pubDate>Thu, 20 Sep 2007 18:12:55 +0000</pubDate>
		<guid>http://www.julianmenendez.es/trafico-rtp-directo-nat-parche/#comment-4633</guid>
		<description>Pues no que yo sepa... aunque no creo que sea dificil portar los cambios a la rama 1.2.</description>
		<content:encoded><![CDATA[<p>Pues no que yo sepa&#8230; aunque no creo que sea dificil portar los cambios a la rama 1.2.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: rcrooke</title>
		<link>http://www.julianmenendez.es/trafico-rtp-directo-nat-parche/#comment-4632</link>
		<dc:creator>rcrooke</dc:creator>
		<pubDate>Thu, 20 Sep 2007 16:41:25 +0000</pubDate>
		<guid>http://www.julianmenendez.es/trafico-rtp-directo-nat-parche/#comment-4632</guid>
		<description>Hola Julian,
En mi empresa utilizamos la version 1.2.18 de asterisk.
Algun parche para esta version ?...</description>
		<content:encoded><![CDATA[<p>Hola Julian,<br />
En mi empresa utilizamos la version 1.2.18 de asterisk.<br />
Algun parche para esta version ?&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: PACO</title>
		<link>http://www.julianmenendez.es/trafico-rtp-directo-nat-parche/#comment-4231</link>
		<dc:creator>PACO</dc:creator>
		<pubDate>Sun, 26 Aug 2007 07:50:43 +0000</pubDate>
		<guid>http://www.julianmenendez.es/trafico-rtp-directo-nat-parche/#comment-4231</guid>
		<description>al final se acaba siempre en los mismo... VPN. Fijaos la cantidad de problemas que se quita uno. Nada, a convencer a los jefes que pongan linksys con OpenVPN y seguro que os quitáis muchos problemas de encima...</description>
		<content:encoded><![CDATA[<p>al final se acaba siempre en los mismo&#8230; VPN. Fijaos la cantidad de problemas que se quita uno. Nada, a convencer a los jefes que pongan linksys con OpenVPN y seguro que os quitáis muchos problemas de encima&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: julianjm</title>
		<link>http://www.julianmenendez.es/trafico-rtp-directo-nat-parche/#comment-4087</link>
		<dc:creator>julianjm</dc:creator>
		<pubDate>Mon, 13 Aug 2007 14:15:50 +0000</pubDate>
		<guid>http://www.julianmenendez.es/trafico-rtp-directo-nat-parche/#comment-4087</guid>
		<description>No creo que sea muy complicado controlar ese tema. Sería cuestión de determinar si en el SDP hay una IP privada o pública, y de si coincide o no con la IP real de la que vienen los paquetes.

Estoy de acuerdo en que sería mucho más sencillo que asterisk se encargase de detectar el nat automáticamente, y en lo casos complicados, poder ponerselo a mano.</description>
		<content:encoded><![CDATA[<p>No creo que sea muy complicado controlar ese tema. Sería cuestión de determinar si en el SDP hay una IP privada o pública, y de si coincide o no con la IP real de la que vienen los paquetes.</p>
<p>Estoy de acuerdo en que sería mucho más sencillo que asterisk se encargase de detectar el nat automáticamente, y en lo casos complicados, poder ponerselo a mano.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Iñaki Baz</title>
		<link>http://www.julianmenendez.es/trafico-rtp-directo-nat-parche/#comment-4085</link>
		<dc:creator>Iñaki Baz</dc:creator>
		<pubDate>Mon, 13 Aug 2007 13:50:31 +0000</pubDate>
		<guid>http://www.julianmenendez.es/trafico-rtp-directo-nat-parche/#comment-4085</guid>
		<description>Lo que a mí no me acaba de convencer de Asterisk es esta definición estática sobre si un peer está tras NAT o no, ¿qué hay de la movilidad? ¿qué ocurre si alguien trabaja con su portátil y su softphone y a veces está en la oficina y a veces fuera en un hotel?

Personalmente me gustaría que hubiese algún método como en OpenSer, en el que detectas si el llamante/llamado están tras NAT (y comparas IP's públicas) para decidir si el audio es directo o no.

Es decir, me gustaría que fuese algo dinámico en vez de tener que asumir en qué escenario va a estar permanentemente cada teléfono SIP.


Por lo demás, a ver si saco un rato esta semana y pruebo el parche.

Saludos.</description>
		<content:encoded><![CDATA[<p>Lo que a mí no me acaba de convencer de Asterisk es esta definición estática sobre si un peer está tras NAT o no, ¿qué hay de la movilidad? ¿qué ocurre si alguien trabaja con su portátil y su softphone y a veces está en la oficina y a veces fuera en un hotel?</p>
<p>Personalmente me gustaría que hubiese algún método como en OpenSer, en el que detectas si el llamante/llamado están tras NAT (y comparas IP&#8217;s públicas) para decidir si el audio es directo o no.</p>
<p>Es decir, me gustaría que fuese algo dinámico en vez de tener que asumir en qué escenario va a estar permanentemente cada teléfono SIP.</p>
<p>Por lo demás, a ver si saco un rato esta semana y pruebo el parche.</p>
<p>Saludos.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: julianjm</title>
		<link>http://www.julianmenendez.es/trafico-rtp-directo-nat-parche/#comment-4083</link>
		<dc:creator>julianjm</dc:creator>
		<pubDate>Mon, 13 Aug 2007 12:04:03 +0000</pubDate>
		<guid>http://www.julianmenendez.es/trafico-rtp-directo-nat-parche/#comment-4083</guid>
		<description>Sí, es la idea, aunque no se yo si llegará a entrar, porque hay un cambio en el API de definición de los diferentes canales, que solo sirven para el canal SIP...

A ver si alguien más lo prueba con éxito y lo subo al bugzilla.</description>
		<content:encoded><![CDATA[<p>Sí, es la idea, aunque no se yo si llegará a entrar, porque hay un cambio en el API de definición de los diferentes canales, que solo sirven para el canal SIP&#8230;</p>
<p>A ver si alguien más lo prueba con éxito y lo subo al bugzilla.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Saúl Ibarra</title>
		<link>http://www.julianmenendez.es/trafico-rtp-directo-nat-parche/#comment-4082</link>
		<dc:creator>Saúl Ibarra</dc:creator>
		<pubDate>Mon, 13 Aug 2007 11:53:36 +0000</pubDate>
		<guid>http://www.julianmenendez.es/trafico-rtp-directo-nat-parche/#comment-4082</guid>
		<description>Tienes toda la razón, y la verdad es que es una buena solución para muuuchos casos... Has pensado en ponerla en el trunk de Asterisk? yo creo que sería interesante!</description>
		<content:encoded><![CDATA[<p>Tienes toda la razón, y la verdad es que es una buena solución para muuuchos casos&#8230; Has pensado en ponerla en el trunk de Asterisk? yo creo que sería interesante!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: julianjm</title>
		<link>http://www.julianmenendez.es/trafico-rtp-directo-nat-parche/#comment-4080</link>
		<dc:creator>julianjm</dc:creator>
		<pubDate>Mon, 13 Aug 2007 07:43:03 +0000</pubDate>
		<guid>http://www.julianmenendez.es/trafico-rtp-directo-nat-parche/#comment-4080</guid>
		<description>Hombre, el método no es perfecto, pero mejora lo que viene de serie :)

Ahora bien, se podría además comparar las IP's privadas de cada teléfono, y ver si pertenecen a la misma red. Podríamos suponer que están en una red de clase C (máscara de red 255.255.255.0, por ejemplo).

De todas formas, para escenarios complicados, lo mejor es un canreinvite=no ;)</description>
		<content:encoded><![CDATA[<p>Hombre, el método no es perfecto, pero mejora lo que viene de serie <img src='http://www.julianmenendez.es/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Ahora bien, se podría además comparar las IP&#8217;s privadas de cada teléfono, y ver si pertenecen a la misma red. Podríamos suponer que están en una red de clase C (máscara de red 255.255.255.0, por ejemplo).</p>
<p>De todas formas, para escenarios complicados, lo mejor es un canreinvite=no <img src='http://www.julianmenendez.es/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Saúl Ibarra</title>
		<link>http://www.julianmenendez.es/trafico-rtp-directo-nat-parche/#comment-4079</link>
		<dc:creator>Saúl Ibarra</dc:creator>
		<pubDate>Mon, 13 Aug 2007 07:25:09 +0000</pubDate>
		<guid>http://www.julianmenendez.es/trafico-rtp-directo-nat-parche/#comment-4079</guid>
		<description>Hola Julian!!

Muy interesante el parche! Pero tengo una dudilla: tu has planteado que si ambos están detrás de NAT, y si las IPs externas coinciden, podríamos haces que el audio fuese de uno a otro... Pero y si son subredes distintas no visibles entre ellas? y si hay "algo" en medio haciendo otro NAT, por ejemplo un AP WiFi o algo así?

No se, se me ocurre que en esos casos podría fallar la cosa, pero no se me ocurre como podría detectarse... :(</description>
		<content:encoded><![CDATA[<p>Hola Julian!!</p>
<p>Muy interesante el parche! Pero tengo una dudilla: tu has planteado que si ambos están detrás de NAT, y si las IPs externas coinciden, podríamos haces que el audio fuese de uno a otro&#8230; Pero y si son subredes distintas no visibles entre ellas? y si hay &#8220;algo&#8221; en medio haciendo otro NAT, por ejemplo un AP WiFi o algo así?</p>
<p>No se, se me ocurre que en esos casos podría fallar la cosa, pero no se me ocurre como podría detectarse&#8230; <img src='http://www.julianmenendez.es/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
</channel>
</rss>

