El Lunes, 24 de Septiembre de 2007, Arturo Miranda Vera escribió:
tengo mi servidor OpenSER con una IP publica, para
poder hacer llamadas
independiente donde me encuentre en la red, mi configuracion es la
sencilla, soporta presencia simple, ahora lei que para soportar NAT debo
instalar el RPTPRoxy en la misma PC o en otra, para que maneje el trafico
multimedia. si alguien tuviera el archivo de configuracion de como hacer
todo ello, he intentado con los que hay en la red y no lo consigo. espero
contar con vosotros
lo que necesito es openser-presencia+nat.
Arturo, personalmente creo que es mejor enseñar a pescar que dar un pez. El
tema del NAT es de lo más complejo que hay en OpenSer (al menos de lo que yo
conozco) debido a que SIP no contempló NAT en su diseño. Por eso creo que es
muy negativo para ti el pedir que te lo den hecho, ya que cuando tengas algún
problema no sabrás identificarlo.
Yo te recomiendo encarecidamente de que te documentes sobre el problema de SIP
y NAT,que sepas totalmente identificarlo y entenderlo. Escribí hace poco un
post sobre ello, tal vez te sea útil:
http://blog.aliax.net/2007/08/aclarando-sip-y-nat.html
Te aconsejo:
- Entiende perfectamente el problema en la cabecera "Contact" y en el
"SDP",
tanto en un REGISTER como en un INVITE.
- Entiende cómo se envía un mensaje in-dialog (por ejemplo un BYE), fíjate en
el URI, y cómo si el destino está tras NAT es necesario (salvo STUN) que
dicho paquete tenga cabecera "Route: sip:servidor_openser" para que se rute
por OpenSer que es el único que puede contactar con el destino ya que le
envía periódicamente pings (ICMP o SIP OPTIONS) para mantener la comunicación
abierta.
- Monta unos cuanto teléfonos, alguno tras NAT, otro con NAT pero STUN activo,
otro con IP pública. Haz llamadas entre ellos y captura con "ngrep" el
tráfico. Observa y entiende cuándo y porqué se produce un problema con el NAT
y qué es lo que hace falta para solucionarlo, y luego buscas en OpenSer las
funciones que hagan esas cosas. Pero no al revés.
Saludos.
--
Iñaki Baz Castillo