El Wednesday 02 July 2008 13:17:22 ZiLioN ZilLioN escribió:
Mi problema es el siguiente: los usuarios se registran
en Openser. Entonces
el usuario 200 llama al 201 por ejemplo, le llega el INVITE a Openser, este
hace un rewritehostport a Asterisk...y entonces este falla, ya que a pesar
de estar declarados los teléfonos 200 y 201 en el archivo de texto sip.conf
(ojo yo no lo tengo en RealTime por el momento), como Asterisk no lo tiene
en su lista interna. Si registro el telefono 200 en Openser y el 201 en
Asterisk, y llamo desde el 200 al 201 funciona perfecto.
No es necesario RealTime (pero es cómodo pues no tienes que replicar usuarios
en Asterisk). Pero para probar lo puedes hacer en el sip.conf muy fácil:
[usuario-openser]
type=peer
host=IP_OPENSER
port=POR_OPENSER
fromdomain=DOMINIO
insecure=invite
context=entrantes-openser
[200](usuario-openser)
[201(usuario-openser)
Y ya está, con esto cuando hagas un:
Dial(SIP/201)
Asterisk enviará el INVITE a IP_OPENSER que lo rutará al 201 o devolverá 480
(que no 404, por favor) a Asterisk si no está registrado.
Entonces la solución del t_replicate me pareció muy
util. Lo que hago es
una vez que el teléfono se ha autenticado con Openser, le hago un
t_replicate a Asterisk para que también lo registre. Pero me surge el
problema de que Asterisk en vez de responder al teléfono SIP con un
Unauthorized, contesta a Openser, ya que este se incluye en la cabecera
VIA.
No lo hagas así, no uses t_replicate, es complejo para lo que quieres.
Usando lo de antes te funcionará correctamente salvo el detalle de que si
haces un "reload" en Asterisk (y tienes los usuarios en RealTime) se vaciará
el listado de usuarios y cosas como el MWI no funcionará hasta que el usuario
(200 por ejemplo) contacte con Asterisk para lo que sea.
--
Iñaki Baz Castillo
ibc(a)in.ilimit.es