On Thursday 10 January 2008 14:22:37 David Villasmil wrote:
He estado leyendo un post antigüo del amigo Iñaki (que por cierto está
en todas partes ;) ),
Es lo que tiene el parallel forking XD
y por lo que pude entender OpenSer no tiene alias/forward en el sentido siguiente:
User-A llama a User-B, y User-B tiene un forward a un número cualquiera... sea local, de otro dominio o de la PSTN. Según enetendí, OS simplemente hace un append_branch y llama a los dos a la vez??
Aquí la pregunta es: ¿cómo está implementado ese forward? Así a bote pronto se me ocurren:
- Mediante redirección 302 en el UAS de User-B. - Mediante redirect o proxy en CPL del User-B. - Mediante "onfailure_route". - Mediante entrada manual en "location" para User-B.
Lo de que se llame a uno, a otro o a ambos a la vez depende de mil cosas, básicamente de cómo lo programes, no hay respuesta a eso.
Lo "normal", al menos en mi caso, es que OS buscara el forward del cliente B y volver a pasarlo todo por las rutas, con lo cual si es local lo encuentra sin problemas y si es de PSTN lo rutea por el gateway respectivo...
Para eso, suponiendo que User-B tiene el dominio "dominio.com" (o que ese es el único dominio de tu OpenSer), lo que tienes que hacer es asignar a User-B un forward con la pinta: sip:número_PSTN_o_lo_que_sea@dominio.com Tras el t_relay() hará un loop en OpenSer (se resuelve a sí mismo por DNS) y ya tienes de nuevo todas las rutas ;)
Eso sí, piensa en el tema de facturación. Si no añades ninguna cacebera o similar durante el loop lo que tendrás al final es que User-A ha llamado a. sip:número_PSTN_o_lo_que_sea@dominio.com
O sea, que le estarías cobrando a User-A.
Si no, ¿cómo funciona?
¿Cómo quieres que funcione? ;)