Umm, entonces tu no implementas desvios y demás? Por ejemplo el DND se puede hacer con el telefono, pero el call forwarding? Los telefonos ip tienen funciones para eso?
El 16/08/07, Iñaki Baz Castillo ibc@in.ilimit.es escribió:
El Thursday 16 August 2007 11:54:10 Saúl Ibarra escribió:
Hoola:
Sorry por mandar este mail a las 2 listas, es por si alguien todavía no se ha cambiado...
He implementado un sistema de call forward con OpenSER bajo los 3 tipicos supuestos (blind, busy y no answer). Me funciona, pero tengo una dudilla respecto a la función append_branch: según yo entiendo, lo que hace es "abir" un nuevo call leg (o algo asi) hacia el ruri indicado y luego conectarme.
Pues bien, yo lo he utilizado porque me daba error y me decia que no quedaban branches... y al ponerlo voila! La cuestion es: es esto correcto?
Por otro lado, al implementar la cosa esta me ha venido la siguiente duda:
Cuando el desvío es blind, simplemente cojo el uri que tengo almacenado en la tabla usr_preferences hago relay hacia alli, por lo que si soy yo mismo no hay problema, la llamada iria saltando y saltando hasta llegar a destino.
En cambio, el control del desvio si ocupado o si no contesta lo hago en el on_failure, y por lo tanto, no puedo hacer ese "bucle", es decir, si el usuario destino tambien se encuentra desviado, yo no lo se. Pregunta: como puedo volver a meter la llamada en el route central (con el ruri alterado) para asi poder tener un forwarding "recursivo"?
Personalmente intento no hacer "dialplan" con OpenSer, me parece excesivamente complejo y sobretodo poco escalable. No obstante el tema de "serial forking" es lo que creo que buscas, y algo de doc (ojo por si está desfasada) hay aquí;
http://openser.org/dokuwiki/doku.php/tutorials:avpops?s=serial#serial_forkin...
Ahora mismo lo tengo tal que asi:
# ----------------------------------------------------------------- # failure_route[1] -- Cuando falla un INVITE - 486 busy o 408 no answer, le mandamos al buzon o desviamos # -----------------------------------------------------------------
failure_route[1] { if(!t_was_cancelled()) {
if (t_check_status("(486)|(408)")) { ## Miramos si tiene el Voicemail activado if (avp_db_load("$ruri/username", "$avp(s:vm)")) { xlog("L_INFO","$Cbx--- Voicemail ACTIVADO ---$Cxx\n"); revert_uri();
¿Por qué ese revert_uri(); ahí?
rewritehostport("10.68.42.134:5070"); append_branch();
¿No se supone que un append_branch(); tiene sentido **antes** de modificar el URI? http://openser.org/dokuwiki/doku.php/core-cookbook:devel#append_branch
## Activamos el flag 10 para evitar bucles xlog("L_INFO","$Cbx---> Redirigiendo al Voicemail...$Cxx\n"); setflag(10); route(1); exit; } } ## Si devuelve BUSY comprobamos su hay desvio if (isflagset(21) && t_check_status("486")) { if (avp_pushto("$ruri", "$avp(s:cfb)")) {
Sólo por comentar, esa función "avp_pushto" ya no hace falta, sirve un simple: $avp(s:cfb) = $ruri (que es más bonita) XD
avp_delete("$avp(s:cfb)"); resetflag(21); route(6); exit; } } ## Si devuelve NO ANSWER comprobamos su hay desvio if (isflagset(22) && t_check_status("408")) { if (avp_pushto("$ruri", "$avp(s:cfna)")) { avp_delete("$avp(s:cfna)"); resetflag(22); xlog("L_INFO","$Cbx Estoy en el failure donde noanswer $Cxx\n"); route(6); exit; } } }
}
-- Iñaki Baz Castillo ibc@in.ilimit.es
--~--~---------~--~----~------------~-------~--~----~ Has recibido este mensaje porque estás suscrito a Grupo "openser-es" de Grupos de Google. Para anular la suscripción a este grupo, envía un mensaje a openser-es-unsubscribe@googlegroups.com Para obtener más opciones, visita este grupo en http://groups.google.com/group/openser-es?hl=es. En el canal #openser-es de la red de IRC irc.freenode.net puedes encontrar gente del grupo. -~----------~----~----~----~------~----~------~--~---
El Thursday 16 August 2007 14:54:38 Saúl Ibarra escribió:
Umm, entonces tu no implementas desvios y demás?
Hombre, que no digo que no se pueda, que seguramente muchos lo hacen. Pero lo veo útil para un OpenSer que haga algo muy específico. Pero para casos más genéricos tal vez sea demasiado lío.. Bueno, y sobretodo lo digo porque, desde mi experiencia viendo a gente usando telefonía IP creo sinceramente que casi nadie quiere, en su trabajo, un buzón personal, y que si alguien le llama y no contesta le dejen un mensaje. Lo único que la gente quiere son buzones corporativos, en plan buzón del departamento tal.
Por ejemplo el DND se puede hacer con el telefono, pero el call forwarding? Los telefonos ip tienen funciones para eso?
Por supuesto, que yo sepa la gran mayoría. :)
El 16/08/07, Iñaki Baz Castillo ibc@in.ilimit.es escribió:
El Thursday 16 August 2007 14:54:38 Saúl Ibarra escribió:
Umm, entonces tu no implementas desvios y demás?
Hombre, que no digo que no se pueda, que seguramente muchos lo hacen. Pero lo veo útil para un OpenSer que haga algo muy específico. Pero para casos más genéricos tal vez sea demasiado lío.. Bueno, y sobretodo lo digo porque, desde mi experiencia viendo a gente usando telefonía IP creo sinceramente que casi nadie quiere, en su trabajo, un buzón personal, y que si alguien le llama y no contesta le dejen un mensaje. Lo único que la gente quiere son buzones corporativos, en plan buzón del departamento tal.
En eso tienes razon, lo que pasa es que mayormente estoy intentado probar con OpenSER todo lo que se me ocurre, para ir aprendiendo mas. Ahora me falta meterme con la muerte (NAT), pero creo que desde donde estoy lo tengo chungo... no es un entorno muy "adecuando" para pruebas... :P
Por ejemplo el DND se puede hacer con el telefono, pero el call forwarding? Los telefonos ip tienen funciones para eso?
Por supuesto, que yo sepa la gran mayoría. :)
Lo del DND si, pero el transfer no recuerdo haberlo visto en GrandStream... no recuerdo. No obstante, creo que estos servicios estan, pero casi nadie los usa...
-- Iñaki Baz Castillo ibc@in.ilimit.es
Users-es mailing list Users-es@openser.org http://openser.org/cgi-bin/mailman/listinfo/users-es
Hola,
El Thursday 16 August 2007 14:54:38 Saúl Ibarra escribió:
Umm, entonces tu no implementas desvios y demás?
El tema de los desvíos en un proxy SIP es algo peliagudo si tienes que cobrar esas llamadas ya que la información que te quedará en el accounting es que se ha generado una llamada por un usuario que no es tuyo... y ¿a quién le cobras esa llamada?.
Una solución es usar el módulo "diversion" pero está basado en un draft que ha expirado y pocos equipos lo soportan.
Otra opción es usar el módulo UAC de OpenSER pero tiene varias limitaciones.
Otra opción es usar un b2bua que genere la nueva llamada del desvío como el usuario que ha desviado la llamada... para esto puedes usar asterisk o WeSIP.
Cualquier cosa que implique cierta lógica compleja es complicado de implementar directamente en un proxy... SIP desde luego no se hizo pensando en la gente que tiene que facturar sesiones SIP :-)
Saludos JesusR.
------------------------------------ Jesus Rodriguez VozTelecom Sistemas, S.L. jesusr@voztele.com http://www.voztele.com Tel. 902360305 -------------------------------------
Aha, ya entiendo... De momento no me he metido con accounting... pero los desvios funcionan, mi duda era tb a ver si se podria hacer que la llamada entre otra vez en el bucle...
El 16/08/07, Jesus Rodriguez jesusr@voztele.com escribió:
Hola,
El Thursday 16 August 2007 14:54:38 Saúl Ibarra escribió:
Umm, entonces tu no implementas desvios y demás?
El tema de los desvíos en un proxy SIP es algo peliagudo si tienes que cobrar esas llamadas ya que la información que te quedará en el accounting es que se ha generado una llamada por un usuario que no es tuyo... y ¿a quién le cobras esa llamada?.
Una solución es usar el módulo "diversion" pero está basado en un draft que ha expirado y pocos equipos lo soportan.
Otra opción es usar el módulo UAC de OpenSER pero tiene varias limitaciones.
Otra opción es usar un b2bua que genere la nueva llamada del desvío como el usuario que ha desviado la llamada... para esto puedes usar asterisk o WeSIP.
Cualquier cosa que implique cierta lógica compleja es complicado de implementar directamente en un proxy... SIP desde luego no se hizo pensando en la gente que tiene que facturar sesiones SIP :-)
Saludos JesusR.
Jesus Rodriguez VozTelecom Sistemas, S.L. jesusr@voztele.com http://www.voztele.com Tel. 902360305
Users-es mailing list Users-es@openser.org http://openser.org/cgi-bin/mailman/listinfo/users-es
sr-users-es@lists.kamailio.org