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? ;)
--
Iñaki Baz Castillo
ibc(a)in.ilimit.es