Buenas a todos. En mi empresa hay montado un Callmanager con IP's privadas , pero yo al margen monté un kamailio con IP publica para que los usuarios se puedan registrar y hacer videoconferencias.
Ahora la idea que tienen es unir ambas cosas, para lo cual en otro PC monté un asterisk con un trunk SIP al callmanager (version 4.1 de callmanager) y en el kamailio le digo que lo reenvie a lPC con asterisk (que dispone de IP publica e IP privada). También en la maquina que esta el asterisk, le he instalado el rtpproxy, quedandose el siguiente montaje:
http://s1.subirimagenes.com/imagen/previo/thump_1982023asterisk.png
No quiero hacer NAT. Las pruebas de momento no me funcionan, lo que no sé es si el esquema es correcto y deberia funcionar, y así centrarme en la configuración. ¿Estoy metiendo la pata en el esquema? ¿Me faltan elementos? Gracias a todos.
2009/2/12 toni cunyat elbuit@gmail.com:
Buenas a todos. En mi empresa hay montado un Callmanager con IP's privadas , pero yo al margen monté un kamailio con IP publica para que los usuarios se puedan registrar y hacer videoconferencias.
Ahora la idea que tienen es unir ambas cosas, para lo cual en otro PC monté un asterisk con un trunk SIP al callmanager (version 4.1 de callmanager) y en el kamailio le digo que lo reenvie a lPC con asterisk (que dispone de IP publica e IP privada).
También en la maquina que esta el asterisk, le he instalado el rtpproxy, quedandose el siguiente montaje:
No tiene mucho sentido poner un RtpProxy para hablar con un Asterisk y menos aún si encima usamos su IP pública. En mi opinión ese RtpProxy sobra. Un RtpProxy tiene sentido para acompañar a un proxy, pero no a un B2BUA que encima se encarga del audio (Asterisk).
http://s1.subirimagenes.com/imagen/previo/thump_1982023asterisk.png
No quiero hacer NAT.
¿Qué significa "No quiero hacer NAT"?
Las pruebas de momento no me funcionan, lo que no sé es si el esquema es correcto y deberia funcionar, y así centrarme en la configuración.
¿Qué no funciona? ¿llamadas de dónde a dónde?
NOTA 1: Olvídate de Asterisk para dentro (o sea, la pata privada de Asterisk), eso se supone que es una LAN en la que los tfnos hablan con el CallManager (le envían el audio también). El CallManager habla con Asterisk (se envían el audio entre ellos). Asterisk habla desde la Ip pública con Kamailio y los tfnos que dices tienen IP pública.
NOTA 2: ¿Es así? los tfnos Ekiga tienen IP pública? el único posible punto de fallo que se me ocurre es que los Ekiga tengan IP privada, en cuyo caso Kamailio corrige el SIP y para arreglar el RTP, en vez de poner un RtpProxy, configuras los peers de esos tfnos (o el peer de Kamailio) en sip.conf con "nat=yes". Así activas le modo Comedia en Asterisk y no importa que el SDP venga con Ip privada.
Segun comentas, debe ser cuestión de configuración, así que la tendré que revisar mas a fondo.
Gracias por la respuesta
También en la maquina que esta el asterisk, le he instalado el rtpproxy, quedandose el siguiente montaje:
No tiene mucho sentido poner un RtpProxy para hablar con un Asterisk y menos aún si encima usamos su IP pública. En mi opinión ese RtpProxy sobra. Un RtpProxy tiene sentido para acompañar a un proxy, pero no a un B2BUA que encima se encarga del audio (Asterisk).
Eso es lo que pensaba, pero si en un cliente hago capturas de trafico, veo que el trafico rtp va entre el cliente(ip publica) y el callmanager (ip privada).
http://s1.subirimagenes.com/imagen/previo/thump_1982023asterisk.png
No quiero hacer NAT.
¿Qué significa "No quiero hacer NAT"?
Me refiero que ambas redes esten completamente aisladas, y el PC que tiene el asterisk haga a modo de bastión. Que la llamada termine en el asterisk y el asterisk establezca la llamada al callmanager. En caso de la señalización me funciona, el callmanager recibe las llamadas, pero al estar completamente aisladas las dos subredes, el trafico rtp no le llega ya que el cliente(ekiga) intenta mandarlo a la IP privada del callmanager.
Las pruebas de momento no me funcionan, lo que no sé es si el esquema es correcto y deberia funcionar, y así centrarme en la configuración.
¿Qué no funciona? ¿llamadas de dónde a dónde?
Mi intencion es llamar desde los clientes SIP (registrados o no en kamailio) a los telefonos que gestiona el callmanager. La señalización me funciona, pero el trafico RTP no ya que el cliente no sabe como llegar al callmanager.
NOTA 1: Olvídate de Asterisk para dentro (o sea, la pata privada de Asterisk), eso se supone que es una LAN en la que los tfnos hablan con el CallManager (le envían el audio también). El CallManager habla con Asterisk (se envían el audio entre ellos). Asterisk habla desde la Ip pública con Kamailio y los tfnos que dices tienen IP pública.
Ahí está el problema, el audio no va del Callmanager al Asterisk, sino del Callmanager al cliente. En el archivo sip.conf tengo: [general] externip = 147.156.1.12 localnet=10.15.0.0/16 nat=yes context=default port=5060 bindaddr=0.0.0.0 srvlookup=yes
[callman01] type=friend host=10.15.0.2 ; IP del Callmanager
NOTA 2: ¿Es así? los tfnos Ekiga tienen IP pública? el único posible punto de fallo que se me ocurre es que los Ekiga tengan IP privada, en cuyo caso Kamailio corrige el SIP y para arreglar el RTP, en vez de poner un RtpProxy, configuras los peers de esos tfnos (o el peer de Kamailio) en sip.conf con "nat=yes". Así activas le modo Comedia en Asterisk y no importa que el SDP venga con Ip privada.
Si, los telefonos tienen ip publica.
Gracias Toni
-- Iñaki Baz Castillo ibc@aliax.net
Users-es mailing list Users-es@lists.kamailio.org http://lists.kamailio.org/cgi-bin/mailman/listinfo/users-es
El Jueves, 12 de Febrero de 2009, toni cunyat escribió:
No tiene mucho sentido poner un RtpProxy para hablar con un Asterisk y menos aún si encima usamos su IP pública. En mi opinión ese RtpProxy sobra. Un RtpProxy tiene sentido para acompañar a un proxy, pero no a un B2BUA que encima se encarga del audio (Asterisk).
Eso es lo que pensaba, pero si en un cliente hago capturas de trafico, veo que el trafico rtp va entre el cliente(ip publica) y el callmanager (ip privada).
Eso se resuelve poniendo "nat=yes" en el peer de cliente y/o en peer del callmanager.
¿Qué significa "No quiero hacer NAT"?
Me refiero que ambas redes esten completamente aisladas, y el PC que tiene el asterisk haga a modo de bastión. Que la llamada termine en el asterisk y el asterisk establezca la llamada al callmanager. En caso de la señalización me funciona, el callmanager recibe las llamadas, pero al estar completamente aisladas las dos subredes, el trafico rtp no le llega ya que el cliente(ekiga) intenta mandarlo a la IP privada del callmanager.
"nat=yes" en el peer del Ekiga hará que Asterisk funcione en modo Comedia ("pasa" del SDP que recibe del cliente y espera a recibir audio para saber dónde mandarlo).
Ahí está el problema, el audio no va del Callmanager al Asterisk, sino del Callmanager al cliente. En el archivo sip.conf tengo: [general] externip = 147.156.1.12 localnet=10.15.0.0/16 nat=yes
Pones "externip=IP_PUBLICA", y esa IP es la que Asterisk pondrá en el SDP. ¿Es a esa IP a donde quieres que el callmanager envíe el audio?
Segun comentas, debe ser cuestión de configuración, así que la tendré que revisar mas a fondo.
Gracias por la respuesta
También en la maquina que esta el asterisk, le he instalado el rtpproxy, quedandose el siguiente montaje:
No tiene mucho sentido poner un RtpProxy para hablar con un Asterisk y menos aún si encima usamos su IP pública. En mi opinión ese RtpProxy sobra. Un RtpProxy tiene sentido para acompañar a un proxy, pero no a un B2BUA que encima se encarga del audio (Asterisk).
Eso es lo que pensaba, pero si en un cliente hago capturas de trafico, veo que el trafico rtp va entre el cliente(ip publica) y el callmanager (ip privada).
http://s1.subirimagenes.com/imagen/previo/thump_1982023asterisk.png
No quiero hacer NAT.
¿Qué significa "No quiero hacer NAT"?
Me refiero que ambas redes esten completamente aisladas, y el PC que tiene el asterisk haga a modo de bastión. Que la llamada termine en el asterisk y el asterisk establezca la llamada al callmanager. En caso de la señalización me funciona, el callmanager recibe las llamadas, pero al estar completamente aisladas las dos subredes, el trafico rtp no le llega ya que el cliente(ekiga) intenta mandarlo a la IP privada del callmanager.
Las pruebas de momento no me funcionan, lo que no sé es si el esquema es correcto y deberia funcionar, y así centrarme en la configuración.
¿Qué no funciona? ¿llamadas de dónde a dónde?
Mi intencion es llamar desde los clientes SIP (registrados o no en kamailio) a los telefonos que gestiona el callmanager. La señalización me funciona, pero el trafico RTP no ya que el cliente no sabe como llegar al callmanager.
NOTA 1: Olvídate de Asterisk para dentro (o sea, la pata privada de Asterisk), eso se supone que es una LAN en la que los tfnos hablan con el CallManager (le envían el audio también). El CallManager habla con Asterisk (se envían el audio entre ellos). Asterisk habla desde la Ip pública con Kamailio y los tfnos que dices tienen IP pública.
Ahí está el problema, el audio no va del Callmanager al Asterisk, sino del Callmanager al cliente. En el archivo sip.conf tengo: [general] externip = 147.156.1.12 localnet=10.15.0.0/16 nat=yes context=default port=5060 bindaddr=0.0.0.0 srvlookup=yes
[callman01] type=friend host=10.15.0.2 ; IP del Callmanager
NOTA 2: ¿Es así? los tfnos Ekiga tienen IP pública? el único posible punto de fallo que se me ocurre es que los Ekiga tengan IP privada, en cuyo caso Kamailio corrige el SIP y para arreglar el RTP, en vez de poner un RtpProxy, configuras los peers de esos tfnos (o el peer de Kamailio) en sip.conf con "nat=yes". Así activas le modo Comedia en Asterisk y no importa que el SDP venga con Ip privada.
Si, los telefonos tienen ip publica.
Gracias Toni
El día 12 de febrero de 2009 14:30, toni cunyat elbuit@gmail.com escribió:
No tiene mucho sentido poner un RtpProxy para hablar con un Asterisk y menos aún si encima usamos su IP pública. En mi opinión ese RtpProxy sobra. Un RtpProxy tiene sentido para acompañar a un proxy, pero no a un B2BUA que encima se encarga del audio (Asterisk).
Eso es lo que pensaba, pero si en un cliente hago capturas de trafico, veo que el trafico rtp va entre el cliente(ip publica) y el callmanager (ip privada).
Eso es porque ambos peers en Asterisk (el de Kamailio y el de CallManager) tienen "canreintie=yes". Ponlo a "no" y el audio pasará por Asterisk sí o sí.
http://s1.subirimagenes.com/imagen/previo/thump_1982023asterisk.png
No quiero hacer NAT.
¿Qué significa "No quiero hacer NAT"?
Me refiero que ambas redes esten completamente aisladas, y el PC que tiene el asterisk haga a modo de bastión.
Esto lo haces con el canreinvite=no en el sip.conf
Que la llamada termine en el asterisk y el asterisk establezca la llamada al callmanager. En caso de la señalización me funciona, el callmanager recibe las llamadas, pero al estar completamente aisladas las dos subredes, el trafico rtp no le llega ya que el cliente(ekiga) intenta mandarlo a la IP privada del callmanager.
NOTA 2: ¿Es así? los tfnos Ekiga tienen IP pública? el único posible punto de fallo que se me ocurre es que los Ekiga tengan IP privada, en cuyo caso Kamailio corrige el SIP y para arreglar el RTP, en vez de poner un RtpProxy, configuras los peers de esos tfnos (o el peer de Kamailio) en sip.conf con "nat=yes". Así activas le modo Comedia en Asterisk y no importa que el SDP venga con Ip privada.
Si, los telefonos tienen ip publica.
Para que el Kamailio si puedes registrar los teléfonos directamente en Asterisk? Solo curiosidad?
Muchas gracias Iñaki y David. Antes de todo, deciros que con el canreinvite=no en el sip.conf ya me va. Si pasais por Valencia(España) teneis unas cervezas pagadas, me habeis sido de gran ayuda, sobre todo con lo mal que me he explicado.
Para que el Kamailio si puedes registrar los teléfonos directamente en Asterisk? Solo curiosidad?
El por qué de usar kamailio, es que al margen de registrar autentificando por radius, tambien usaba el LDAP para extraer nº de telefono, por ejemplo, si llamo a pepito@dominio.com, busco si pepito esta en el userloc y le mando la llamada, en caso contrario miro si pepito tiene un telefono asignado en el LDAP, y en ese caso mando la llamada al telefono (he de mirar para que mande la llamada simultaneamente al cliente SIP registrado en kamailio y al asterisk) También hago alguna modificación en el URI. La verdad, es que el asterisk no lo he tocado apenas, y el kamailio me está gustando (al principio es un poco duro, bueno, bastante duro), supongo que al final de tanto usar kamailio aprenderé el protocolo SIP/SDP, jeje. Muchas gracias.
El día 13 de febrero de 2009 9:06, toni cunyat elbuit@gmail.com escribió:
Muchas gracias Iñaki y David. Antes de todo, deciros que con el canreinvite=no en el sip.conf ya me va. Si pasais por Valencia(España) teneis unas cervezas pagadas, me habeis sido de gran ayuda, sobre todo con lo mal que me he explicado.
Para que el Kamailio si puedes registrar los teléfonos directamente en Asterisk? Solo curiosidad?
El por qué de usar kamailio, es que al margen de registrar autentificando por radius, tambien usaba el LDAP para extraer nº de telefono, por ejemplo, si llamo a pepito@dominio.com, busco si pepito esta en el userloc y le mando la llamada, en caso contrario miro si pepito tiene un telefono asignado en el LDAP, y en ese caso mando la llamada al telefono (he de mirar para que mande la llamada simultaneamente al cliente SIP registrado en kamailio y al asterisk) También hago alguna modificación en el URI. La verdad, es que el asterisk no lo he tocado apenas, y el kamailio me está gustando (al principio es un poco duro, bueno, bastante duro), supongo que al final de tanto usar kamailio aprenderé el protocolo SIP/SDP, jeje.
Felicidades ;)
sr-users-es@lists.kamailio.org