El Lunes, 27 de Agosto de 2007, Iñaki Baz Castillo escribió:
Pero ahora me da por poner un simple alias: 888 ->
500.
- En Asterisk hago una llamada a 888(a)openser.dominio.org.
- OpenSer encuentra un alias de 888 a 500 y reescribe el URI.
- Entonces de nuevo OpenSer reescribe el URI y encamina al Asterisk.
- Pero ahora Asterisk se vuelve loco del todo, avisando decenas de
veces de "LoopBack".
Buenas, primeramente pido disculpas porque al final he mandado un correo sobre
este tema también a la lista de Asterisk (y hacer cross-posting es malo
malo).
Bueno, finalmente he entendido que Asterisk **no** soporta LoopBack. La única
ÑAPA que soporta es que Asterisk haga una llamada (p.ej. a
sip:500@dominio.org), que esta llamada llegue a un proxy SIP el cual **sin
modificar la extensión y dominio** la mande de vuelta a Asterisk de nuevo.
En ese caso Asterisk avisa de "Loop back detected" pero hace la chapuza
de "unir" los dos canales (el saliente y el entrante), pero ojo, no es un
bridge ya que se carga los "Record-Route" que hayan podido incluir el proxy
SIP y demás.
Lo de arriba no es más que una ñapa barata y se demuestra que no sirve de nada
ya que en el caso de que un proxy SIP que recibe una llamada de Asterisk
modifique el username/extensión y lo envíe de vuelta a Asterisk entonces éste
último "falla", detecta el "Loop back", avisa de ello y trata de
juntar los
dos canales, pero **ojo**, sólo tiene en cuenta la URI ORIGINAL que él generó
y no la modificada por el proxy SIP.
Como apunte optimista he encontrado un reporte en
bugs.digium.com en el que
Ollej y otros están creando un parche:
"allow SIP Spiral to work instead of causing a '482 Loop Detected'
condition"
http://bugs.digium.com/view.php?id=7403
Ahora mi pregunta sería:
Yo pretendía tener un Asterisk para llamadas entrantes vía PSTN y salientes
vía PSTN/Voip/GSM...
También quería mi sistema de forwarding que ya tengo implementado en OpenSer,
es decir, que si Asterisk llama a sip:200@openser.domain.org y OpenSer tiene
un forwarding a un número de móvil y hace un "append_branch()" (modificando
el URI) que entonces esa llamada fuese de vuelta a Asterisk el cuál la sacase
al exterior.
Ahora veo que no puedo hacer eso debido a la limitación que explico arriba de
Asterisk.
¿Alguna sugerencia sobre cómo abordar esta fatalidad que me ha tocado? Las
opciones que veo son:
- Usar 2 Asterisk, uno para entrantes y otro para salientes y comunicarlos por
IAX o SIP (bendita chapuza).
- Olvidarme de mi bonito forwarding e implementar un ReDirect en OpenSer que
Asterisk sí soporta (no no y no, no me gusta).
- Otras...
En fin, saludos y gracias por aguantar el tostón.
--
Iñaki Baz Castillo