Hola a todos,
He estado leyendo un post antigüo del amigo Iñaki (que por cierto está en todas partes ;) ), 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?? 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...
¿Es esto correcto?
Si no, ¿cómo funciona?
Un saludo
David
Hola a todos,
He estado leyendo un post antigüo del amigo Iñaki (que por cierto está en todas partes ;) ), 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?? 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...
¿Es esto correcto?
Si no, ¿cómo funciona?
Un saludo
David
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? ;)
Gracias por la respuesta, multitasking... ;)
Ya te entiendo lo de que le cobraré a USer-A... jummm.... cierto....
Lo dices porque en el ACC aparecerá que al final fue USer-A quien llamó al PSDN o lo que sea... lo suyo sería cambiar el "from" y ponerle la ID del B, no? Aunque yo no uso el ACC module para billing (ni para nada, vamos) todo sale por Asterisk por aplicaciones, etc... pero efectivamente tendría que cambiarle el "from"
La pregunta del millón... ¿Cómo se hace eso? jajajajaja!!! no tenga TANTA experiencia con OpenSer...
Muchas gracias tío.
David On Jan 10, 2008 2:36 PM, Iñaki Baz Castillo ibc@in.ilimit.es wrote:
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@in.ilimit.es
Users-es mailing list Users-es@lists.openser.org http://lists.openser.org/cgi-bin/mailman/listinfo/users-es
On Thursday 10 January 2008 14:46:00 David Villasmil wrote:
Ya te entiendo lo de que le cobraré a USer-A... jummm.... cierto....
Lo dices porque en el ACC aparecerá que al final fue USer-A quien llamó al PSDN o lo que sea... lo suyo sería cambiar el "from" y ponerle la ID del B, no? Aunque yo no uso el ACC module para billing (ni para nada, vamos) todo sale por Asterisk por aplicaciones, etc... pero efectivamente tendría que cambiarle el "from"
La pregunta del millón... ¿Cómo se hace eso? jajajajaja!!! no tenga TANTA experiencia con OpenSer...
Bueno, cambiar el From no está muy bien "visto", imagina éste caso:
* Una empresa con dos trabajadores "Pepe" y "Carlos". * Un cliente "Manolo". * Pepe tiene puesto un desvío a Carlos.
* El cliente "Manolo" llama a "Pepe":
INVITE sip:pepe@empresa.com To: sip:pepe@empresa.com From: sip:manolo@cliente.com
* La llamada llega al proxy y como hay un desvío y cambiamos el From esto es lo que le llega a Carlos:
INVITE sip:carlos@empresa.com To: sip:pepe@empresa.com From: sip:pepe@cliente.com
* Es decir, Carlos ve que le llega una llamada con origen "Pepe" y destinada a "Pepe" (el To) pero que le llega a su teléfono. Y responde:
- C: Cóño Pepe, ¿qué es de tu vida borrachín? - M: No... esto... soy Manolo, un cliente, hups.... - C: Ahhh, perdona.... tengo problemas con la centralita y pensé que....
Una solución mejor es la de añadir una cabecera en plan: X-Facturar-a: sip:pepe@empresa.com y dejar el From intacto con lo que el INVITE que le llegaría a Carlos sería:
INVITE sip:carlos@empresa.com To: sip:pepe@empresa.com From: sip:manolo@cliente.com
Entonces Carlos ve que es una llamada de Manolo originalmente dirigida a Pepe pero por algún motivo (desvío) redirigida a él.
On Thursday 10 January 2008 15:02:07 Iñaki Baz Castillo wrote:
Una solución mejor es la de añadir una cabecera en plan: X-Facturar-a: sip:pepe@empresa.com y dejar el From intacto con lo que el INVITE que le llegaría a Carlos sería:
INVITE sip:carlos@empresa.com To: sip:pepe@empresa.com From: sip:manolo@cliente.com
Entonces Carlos ve que es una llamada de Manolo originalmente dirigida a Pepe pero por algún motivo (desvío) redirigida a él.
Por supuesto, todo lo dicho anteriormente es muy bonito en el mundo SIP, pero si hay un proveedor de telefonía por medio posiblemente el desvío saldrá con número origen el asignado por el proveedor.
sr-users-es@lists.kamailio.org