Script para chequear un numero de destino
Hola a todos. Voy a recibir trafico desde un Gateway A que mi FS enrutará hacia un Gateway B. Hasta ahy todo bien, el asunto es que antes de enrutar la llamada hacia el gateway B de alguna manera debo consultar el numero de destino en una base de datos si es así entonces se enruta la llamada en caso contrario la llamda la debo declinar de mi lado para que el Gateway A pueda enrutar esa llamada por otro proveedor distinto de mi. Entonces lo que pienso hacer es un Script usando event_socket para que haga la consulta en la base de datos, entonces si el numero de destino esta la base de datos se enruta la llamada en caso contrario la declino para que la llamada continue por otro proveedor. Mi tema es que no se me ocurre como hacer esto, imagino que en el dialplan para que dependiendo de la existencia del numero de destino en la base de datos haga una llamada o en caso contrario haga otra cosa. Agredecere aguna idea o sugerencia sobre como resolver este problema. Con Asterisk usaria DeadAgi para pasarle el control a un script que consulte con la base de datos y me retorne true si puedo llamar o false en caso contario. Y digo DeadAgi ya que el control lo toma el script, ya que si usara Agi el control sigue en Asterisk independiente de lo que este haciendo el Script. Aprovecho entonces de consultar con event_socket el control pasa al script o el dialplan continua ejecutandose. Agradecere cualquier idea o sugerencia. Saludos
I ran your email through google translate and from what I can tell you want freeswitch to route a call if the number exists in database X. That being said, the event socket is not the way to go, look at doing it via a lua script call from the dial plan, then you can have the lua query the database, if it exists, use the api to route the call, or set a flag for the dial plan, otherwise it can hang up, or play a message and hang up which ends the call and stops processing in your dial plan. 2011/4/27 FERNANDO VILLARROEL <fvillarroel@yahoo.com>
Hola a todos.
Voy a recibir trafico desde un Gateway A que mi FS enrutará hacia un Gateway B.
Hasta ahy todo bien, el asunto es que antes de enrutar la llamada hacia el gateway B de alguna manera debo consultar el numero de destino en una base de datos si es así entonces se enruta la llamada en caso contrario la llamda la debo declinar de mi lado para que el Gateway A pueda enrutar esa llamada por otro proveedor distinto de mi.
Entonces lo que pienso hacer es un Script usando event_socket para que haga la consulta en la base de datos, entonces si el numero de destino esta la base de datos se enruta la llamada en caso contrario la declino para que la llamada continue por otro proveedor.
Mi tema es que no se me ocurre como hacer esto, imagino que en el dialplan para que dependiendo de la existencia del numero de destino en la base de datos haga una llamada o en caso contrario haga otra cosa.
Agredecere aguna idea o sugerencia sobre como resolver este problema.
Con Asterisk usaria DeadAgi para pasarle el control a un script que consulte con la base de datos y me retorne true si puedo llamar o false en caso contario. Y digo DeadAgi ya que el control lo toma el script, ya que si usara Agi el control sigue en Asterisk independiente de lo que este haciendo el Script.
Aprovecho entonces de consultar con event_socket el control pasa al script o el dialplan continua ejecutandose.
Agradecere cualquier idea o sugerencia.
Saludos
_______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Routing a call if a number exists in a database... Hmmm sounds suspiciously a lot like mod_easyroute k On 4/27/11 8:24 PM, "Roger Castaldo" <roger.castaldo@gmail.com> wrote:
I ran your email through google translate and from what I can tell you want freeswitch to route a call if the number exists in database X. That being said, the event socket is not the way to go, look at doing it via a lua script call from the dial plan, then you can have the lua query the database, if it exists, use the api to route the call, or set a flag for the dial plan, otherwise it can hang up, or play a message and hang up which ends the call and stops processing in your dial plan.
2011/4/27 FERNANDO VILLARROEL <fvillarroel@yahoo.com>
Hola a todos.
Voy a recibir trafico desde un Gateway A que mi FS enrutará hacia un Gateway B.
Hasta ahy todo bien, el asunto es que antes de enrutar la llamada hacia el gateway B de alguna manera debo consultar el numero de destino en una base de datos si es así entonces se enruta la llamada en caso contrario la llamda la debo declinar de mi lado para que el Gateway A pueda enrutar esa llamada por otro proveedor distinto de mi.
Entonces lo que pienso hacer es un Script usando event_socket para que haga la consulta en la base de datos, entonces si el numero de destino esta la base de datos se enruta la llamada en caso contrario la declino para que la llamada continue por otro proveedor.
Mi tema es que no se me ocurre como hacer esto, imagino que en el dialplan para que dependiendo de la existencia del numero de destino en la base de datos haga una llamada o en caso contrario haga otra cosa.
Agredecere aguna idea o sugerencia sobre como resolver este problema.
Con Asterisk usaria DeadAgi para pasarle el control a un script que consulte con la base de datos y me retorne true si puedo llamar o false en caso contario. Y digo DeadAgi ya que el control lo toma el script, ya que si usara Agi el control sigue en Asterisk independiente de lo que este haciendo el Script.
Aprovecho entonces de consultar con event_socket el control pasa al script o el dialplan continua ejecutandose.
Agradecere cualquier idea o sugerencia.
Saludos
_______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
_______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Hola Fernando, Yo mas o menos hablo español así que trato de darte una mano. Tenés muchas opciones. mod_easyroute como lo menciona Ken es una, ESL (event_socket) es otra, xml_curl es otra y uno de los "bindings" como lua, python, perl, etc... es otra. Lo que tenemos que encontrar es lo que a vos te es mas comodo. Programás? En que lenguaje? Si no programás, mod_easyroute seguramente será lo mejor. ESL es lo más complicadito de todos ya que el dialplan entero lo tenes que programar desde tu socket y tirar los comandos hacia freeswitch en un orden especifico. XML_CURL es muy facil si sabes desarrollar en web. Enfim, espero noticias tuyas para que te pueda ayudar con un determinado camino. Saludos, João Mesquita 2011/4/27 Ken Rice <krice@freeswitch.org>
Routing a call if a number exists in a database... Hmmm sounds suspiciously a lot like mod_easyroute
k
On 4/27/11 8:24 PM, "Roger Castaldo" <roger.castaldo@gmail.com> wrote:
I ran your email through google translate and from what I can tell you want freeswitch to route a call if the number exists in database X. That being said, the event socket is not the way to go, look at doing it via a lua script call from the dial plan, then you can have the lua query the database, if it exists, use the api to route the call, or set a flag for the dial plan, otherwise it can hang up, or play a message and hang up which ends the call and stops processing in your dial plan.
2011/4/27 FERNANDO VILLARROEL <fvillarroel@yahoo.com>
Hola a todos.
Voy a recibir trafico desde un Gateway A que mi FS enrutará hacia un Gateway B.
Hasta ahy todo bien, el asunto es que antes de enrutar la llamada hacia el gateway B de alguna manera debo consultar el numero de destino en una base de datos si es así entonces se enruta la llamada en caso contrario la llamda la debo declinar de mi lado para que el Gateway A pueda enrutar esa llamada por otro proveedor distinto de mi.
Entonces lo que pienso hacer es un Script usando event_socket para que haga la consulta en la base de datos, entonces si el numero de destino esta la base de datos se enruta la llamada en caso contrario la declino para que la llamada continue por otro proveedor.
Mi tema es que no se me ocurre como hacer esto, imagino que en el dialplan para que dependiendo de la existencia del numero de destino en la base de datos haga una llamada o en caso contrario haga otra cosa.
Agredecere aguna idea o sugerencia sobre como resolver este problema.
Con Asterisk usaria DeadAgi para pasarle el control a un script que consulte con la base de datos y me retorne true si puedo llamar o false en caso contario. Y digo DeadAgi ya que el control lo toma el script, ya que si usara Agi el control sigue en Asterisk independiente de lo que este haciendo el Script.
Aprovecho entonces de consultar con event_socket el control pasa al script o el dialplan continua ejecutandose.
Agradecere cualquier idea o sugerencia.
Saludos
_______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
------------------------------ _______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
_______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Hey Mesquita! I was just speaking with Fernando on IRC... I suggested he look at http://wiki.freeswitch.org/wiki/Mod_odbc_query. This mixed with a little dialplan might be just what he needs. Appears he might be trying to only pass calls to say wireless destinations. Mi español es no bueno¹ tho so any help on the language barrier could prove useful for him. Thanks! On 4/27/11 9:36 PM, "João Mesquita" <jmesquita@freeswitch.org> wrote:
Hola Fernando,
Yo mas o menos hablo español así que trato de darte una mano. Tenés muchas opciones. mod_easyroute como lo menciona Ken es una, ESL (event_socket) es otra, xml_curl es otra y uno de los "bindings" como lua, python, perl, etc... es otra.
Lo que tenemos que encontrar es lo que a vos te es mas comodo. Programás? En que lenguaje? Si no programás, mod_easyroute seguramente será lo mejor. ESL es lo más complicadito de todos ya que el dialplan entero lo tenes que programar desde tu socket y tirar los comandos hacia freeswitch en un orden especifico. XML_CURL es muy facil si sabes desarrollar en web.
Enfim, espero noticias tuyas para que te pueda ayudar con un determinado camino.
Saludos,
João Mesquita
2011/4/27 Ken Rice <krice@freeswitch.org>
Routing a call if a number exists in a database... Hmmm sounds suspiciously a lot like mod_easyroute
k
On 4/27/11 8:24 PM, "Roger Castaldo" <roger.castaldo@gmail.com <http://roger.castaldo@gmail.com> > wrote:
I ran your email through google translate and from what I can tell you want freeswitch to route a call if the number exists in database X. That being said, the event socket is not the way to go, look at doing it via a lua script call from the dial plan, then you can have the lua query the database, if it exists, use the api to route the call, or set a flag for the dial plan, otherwise it can hang up, or play a message and hang up which ends the call and stops processing in your dial plan.
2011/4/27 FERNANDO VILLARROEL <fvillarroel@yahoo.com <http://fvillarroel@yahoo.com> >
Hola a todos.
Voy a recibir trafico desde un Gateway A que mi FS enrutará hacia un Gateway B.
Hasta ahy todo bien, el asunto es que antes de enrutar la llamada hacia el gateway B de alguna manera debo consultar el numero de destino en una base de datos si es así entonces se enruta la llamada en caso contrario la llamda la debo declinar de mi lado para que el Gateway A pueda enrutar esa llamada por otro proveedor distinto de mi.
Entonces lo que pienso hacer es un Script usando event_socket para que haga la consulta en la base de datos, entonces si el numero de destino esta la base de datos se enruta la llamada en caso contrario la declino para que la llamada continue por otro proveedor.
Mi tema es que no se me ocurre como hacer esto, imagino que en el dialplan para que dependiendo de la existencia del numero de destino en la base de datos haga una llamada o en caso contrario haga otra cosa.
Agredecere aguna idea o sugerencia sobre como resolver este problema.
Con Asterisk usaria DeadAgi para pasarle el control a un script que consulte con la base de datos y me retorne true si puedo llamar o false en caso contario. Y digo DeadAgi ya que el control lo toma el script, ya que si usara Agi el control sigue en Asterisk independiente de lo que este haciendo el Script.
Aprovecho entonces de consultar con event_socket el control pasa al script o el dialplan continua ejecutandose.
Agradecere cualquier idea o sugerencia.
Saludos
_______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org <http://FreeSWITCH-users@lists.freeswitch.org> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
_______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org <http://FreeSWITCH-users@lists.freeswitch.org> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
_______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
_______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Hola João. Si programo, mi lenguaje preferido es Python yo vengo de Asterisk donde usaba Python para programar AGI. En web algo me manejo tambien por lo que creo no tendre problemas, le he metido mano a Django y Web2py. Si no fuera mucho pedirte me gustaria aprender un poco de todo asi decido luego como lo voy haciendo, ESL me llama la atención ya que me gustaria comenzar a aprehender a usarlo, ya sabes capturar eventos de FS, enviar eventos a FS, etc. Pero bueno por ahora si me ayudas a resolver mi problema usando lo mas sencillo te lo agradeceria mucho. El problema es que debo crear una tabla con aproximadamente 4500 breackouts de numeros moviles, entonces si me entra una llamada con destination_number = 12345678 debo consultar si los 3 primeros dijitos estan presentes en la tabla si es si entonces reenvio la llamada a un Gateway y si no entonces la declino para que mi cliente la enrute por otro proveedor. Saludos. --- On Wed, 4/27/11, João Mesquita <jmesquita@freeswitch.org> wrote: From: João Mesquita <jmesquita@freeswitch.org> Subject: Re: [Freeswitch-users] Script para chequear un numero de destino To: "FreeSWITCH Users Help" <freeswitch-users@lists.freeswitch.org> Date: Wednesday, April 27, 2011, 11:36 PM Hola Fernando, Yo mas o menos hablo español así que trato de darte una mano. Tenés muchas opciones. mod_easyroute como lo menciona Ken es una, ESL (event_socket) es otra, xml_curl es otra y uno de los "bindings" como lua, python, perl, etc... es otra. Lo que tenemos que encontrar es lo que a vos te es mas comodo. Programás? En que lenguaje? Si no programás, mod_easyroute seguramente será lo mejor. ESL es lo más complicadito de todos ya que el dialplan entero lo tenes que programar desde tu socket y tirar los comandos hacia freeswitch en un orden especifico. XML_CURL es muy facil si sabes desarrollar en web. Enfim, espero noticias tuyas para que te pueda ayudar con un determinado camino. Saludos, João Mesquita 2011/4/27 Ken Rice <krice@freeswitch.org> Routing a call if a number exists in a database... Hmmm sounds suspiciously a lot like mod_easyroute k On 4/27/11 8:24 PM, "Roger Castaldo" <roger.castaldo@gmail.com> wrote: I ran your email through google translate and from what I can tell you want freeswitch to route a call if the number exists in database X. That being said, the event socket is not the way to go, look at doing it via a lua script call from the dial plan, then you can have the lua query the database, if it exists, use the api to route the call, or set a flag for the dial plan, otherwise it can hang up, or play a message and hang up which ends the call and stops processing in your dial plan. 2011/4/27 FERNANDO VILLARROEL <fvillarroel@yahoo.com> Hola a todos. Voy a recibir trafico desde un Gateway A que mi FS enrutará hacia un Gateway B. Hasta ahy todo bien, el asunto es que antes de enrutar la llamada hacia el gateway B de alguna manera debo consultar el numero de destino en una base de datos si es así entonces se enruta la llamada en caso contrario la llamda la debo declinar de mi lado para que el Gateway A pueda enrutar esa llamada por otro proveedor distinto de mi. Entonces lo que pienso hacer es un Script usando event_socket para que haga la consulta en la base de datos, entonces si el numero de destino esta la base de datos se enruta la llamada en caso contrario la declino para que la llamada continue por otro proveedor. Mi tema es que no se me ocurre como hacer esto, imagino que en el dialplan para que dependiendo de la existencia del numero de destino en la base de datos haga una llamada o en caso contrario haga otra cosa. Agredecere aguna idea o sugerencia sobre como resolver este problema. Con Asterisk usaria DeadAgi para pasarle el control a un script que consulte con la base de datos y me retorne true si puedo llamar o false en caso contario. Y digo DeadAgi ya que el control lo toma el script, ya que si usara Agi el control sigue en Asterisk independiente de lo que este haciendo el Script. Aprovecho entonces de consultar con event_socket el control pasa al script o el dialplan continua ejecutandose. Agradecere cualquier idea o sugerencia. Saludos _______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org _______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org _______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org -----Inline Attachment Follows----- _______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Hey Ken! Even tho spanish is not my native language, I live in Argentina, so I can pretty much get away with it. Any help on portuguese or spanish that this list may require, I am available to help. Fernando, La manera mas rapida es algo relativo. Depende mucho de con que te sentis mas comodo. Me gusta mucho ESL y también me gusta mucho xml_curl. odbc_query nunca lo use, pero parece sencillo. A mi me encanta Python tambien y suelo usarlo con ESL. Uso bastante también Pylons pero ya trabaje con Django tambien. Sea como for, lo que vos necesitás si vas a usar ESL es un outbound socket. Te recomiendo que empiezes leyendo esta pagina para que te vayas enterando de que se trata: http://wiki.freeswitch.org/wiki/Event_Socket_Outbound Cuando termines de leer, yo te puedo tirar unos "tips" de como implementar lo que necesitás en Python sin demasiados problemas. Saludos, João Mesquita 2011/4/28 FERNANDO VILLARROEL <fvillarroel@yahoo.com>
Hola João.
Si programo, mi lenguaje preferido es Python yo vengo de Asterisk donde usaba Python para programar AGI.
En web algo me manejo tambien por lo que creo no tendre problemas, le he metido mano a Django y Web2py.
Si no fuera mucho pedirte me gustaria aprender un poco de todo asi decido luego como lo voy haciendo, ESL me llama la atención ya que me gustaria comenzar a aprehender a usarlo, ya sabes capturar eventos de FS, enviar eventos a FS, etc.
Pero bueno por ahora si me ayudas a resolver mi problema usando lo mas sencillo te lo agradeceria mucho.
El problema es que debo crear una tabla con aproximadamente 4500 breackouts de numeros moviles, entonces si me entra una llamada con destination_number = 12345678 debo consultar si los 3 primeros dijitos estan presentes en la tabla si es si entonces reenvio la llamada a un Gateway y si no entonces la declino para que mi cliente la enrute por otro proveedor.
Saludos.
--- On *Wed, 4/27/11, João Mesquita <jmesquita@freeswitch.org>* wrote:
From: João Mesquita <jmesquita@freeswitch.org> Subject: Re: [Freeswitch-users] Script para chequear un numero de destino To: "FreeSWITCH Users Help" <freeswitch-users@lists.freeswitch.org> Date: Wednesday, April 27, 2011, 11:36 PM
Hola Fernando,
Yo mas o menos hablo español así que trato de darte una mano. Tenés muchas opciones. mod_easyroute como lo menciona Ken es una, ESL (event_socket) es otra, xml_curl es otra y uno de los "bindings" como lua, python, perl, etc... es otra.
Lo que tenemos que encontrar es lo que a vos te es mas comodo. Programás? En que lenguaje? Si no programás, mod_easyroute seguramente será lo mejor. ESL es lo más complicadito de todos ya que el dialplan entero lo tenes que programar desde tu socket y tirar los comandos hacia freeswitch en un orden especifico. XML_CURL es muy facil si sabes desarrollar en web.
Enfim, espero noticias tuyas para que te pueda ayudar con un determinado camino.
Saludos,
João Mesquita
2011/4/27 Ken Rice <krice@freeswitch.org<http://mc/compose?to=krice@freeswitch.org>
Routing a call if a number exists in a database... Hmmm sounds suspiciously a lot like mod_easyroute
k
On 4/27/11 8:24 PM, "Roger Castaldo" <roger.castaldo@gmail.com> wrote:
I ran your email through google translate and from what I can tell you want freeswitch to route a call if the number exists in database X. That being said, the event socket is not the way to go, look at doing it via a lua script call from the dial plan, then you can have the lua query the database, if it exists, use the api to route the call, or set a flag for the dial plan, otherwise it can hang up, or play a message and hang up which ends the call and stops processing in your dial plan.
2011/4/27 FERNANDO VILLARROEL <fvillarroel@yahoo.com>
Hola a todos.
Voy a recibir trafico desde un Gateway A que mi FS enrutará hacia un Gateway B.
Hasta ahy todo bien, el asunto es que antes de enrutar la llamada hacia el gateway B de alguna manera debo consultar el numero de destino en una base de datos si es así entonces se enruta la llamada en caso contrario la llamda la debo declinar de mi lado para que el Gateway A pueda enrutar esa llamada por otro proveedor distinto de mi.
Entonces lo que pienso hacer es un Script usando event_socket para que haga la consulta en la base de datos, entonces si el numero de destino esta la base de datos se enruta la llamada en caso contrario la declino para que la llamada continue por otro proveedor.
Mi tema es que no se me ocurre como hacer esto, imagino que en el dialplan para que dependiendo de la existencia del numero de destino en la base de datos haga una llamada o en caso contrario haga otra cosa.
Agredecere aguna idea o sugerencia sobre como resolver este problema.
Con Asterisk usaria DeadAgi para pasarle el control a un script que consulte con la base de datos y me retorne true si puedo llamar o false en caso contario. Y digo DeadAgi ya que el control lo toma el script, ya que si usara Agi el control sigue en Asterisk independiente de lo que este haciendo el Script.
Aprovecho entonces de consultar con event_socket el control pasa al script o el dialplan continua ejecutandose.
Agradecere cualquier idea o sugerencia.
Saludos
_______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
------------------------------ _______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
_______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org<http://mc/compose?to=FreeSWITCH-users@lists.freeswitch.org> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
-----Inline Attachment Follows-----
_______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org<http://mc/compose?to=FreeSWITCH-users@lists.freeswitch.org> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
_______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Now you are talking about ESL? Which scenarios are suitable for ESL? When would be nice to use ESL and when LUA? Regards 2011/4/28 João Mesquita <jmesquita@freeswitch.org>
Hey Ken! Even tho spanish is not my native language, I live in Argentina, so I can pretty much get away with it. Any help on portuguese or spanish that this list may require, I am available to help.
Fernando,
La manera mas rapida es algo relativo. Depende mucho de con que te sentis mas comodo. Me gusta mucho ESL y también me gusta mucho xml_curl. odbc_query nunca lo use, pero parece sencillo.
A mi me encanta Python tambien y suelo usarlo con ESL. Uso bastante también Pylons pero ya trabaje con Django tambien. Sea como for, lo que vos necesitás si vas a usar ESL es un outbound socket. Te recomiendo que empiezes leyendo esta pagina para que te vayas enterando de que se trata: http://wiki.freeswitch.org/wiki/Event_Socket_Outbound
Cuando termines de leer, yo te puedo tirar unos "tips" de como implementar lo que necesitás en Python sin demasiados problemas.
Saludos, João Mesquita
2011/4/28 FERNANDO VILLARROEL <fvillarroel@yahoo.com>
Hola João.
Si programo, mi lenguaje preferido es Python yo vengo de Asterisk donde usaba Python para programar AGI.
En web algo me manejo tambien por lo que creo no tendre problemas, le he metido mano a Django y Web2py.
Si no fuera mucho pedirte me gustaria aprender un poco de todo asi decido luego como lo voy haciendo, ESL me llama la atención ya que me gustaria comenzar a aprehender a usarlo, ya sabes capturar eventos de FS, enviar eventos a FS, etc.
Pero bueno por ahora si me ayudas a resolver mi problema usando lo mas sencillo te lo agradeceria mucho.
El problema es que debo crear una tabla con aproximadamente 4500 breackouts de numeros moviles, entonces si me entra una llamada con destination_number = 12345678 debo consultar si los 3 primeros dijitos estan presentes en la tabla si es si entonces reenvio la llamada a un Gateway y si no entonces la declino para que mi cliente la enrute por otro proveedor.
Saludos.
--- On *Wed, 4/27/11, João Mesquita <jmesquita@freeswitch.org>* wrote:
From: João Mesquita <jmesquita@freeswitch.org> Subject: Re: [Freeswitch-users] Script para chequear un numero de destino To: "FreeSWITCH Users Help" <freeswitch-users@lists.freeswitch.org> Date: Wednesday, April 27, 2011, 11:36 PM
Hola Fernando,
Yo mas o menos hablo español así que trato de darte una mano. Tenés muchas opciones. mod_easyroute como lo menciona Ken es una, ESL (event_socket) es otra, xml_curl es otra y uno de los "bindings" como lua, python, perl, etc... es otra.
Lo que tenemos que encontrar es lo que a vos te es mas comodo. Programás? En que lenguaje? Si no programás, mod_easyroute seguramente será lo mejor. ESL es lo más complicadito de todos ya que el dialplan entero lo tenes que programar desde tu socket y tirar los comandos hacia freeswitch en un orden especifico. XML_CURL es muy facil si sabes desarrollar en web.
Enfim, espero noticias tuyas para que te pueda ayudar con un determinado camino.
Saludos,
João Mesquita
2011/4/27 Ken Rice <krice@freeswitch.org<http://mc/compose?to=krice@freeswitch.org>
Routing a call if a number exists in a database... Hmmm sounds suspiciously a lot like mod_easyroute
k
On 4/27/11 8:24 PM, "Roger Castaldo" <roger.castaldo@gmail.com> wrote:
I ran your email through google translate and from what I can tell you want freeswitch to route a call if the number exists in database X. That being said, the event socket is not the way to go, look at doing it via a lua script call from the dial plan, then you can have the lua query the database, if it exists, use the api to route the call, or set a flag for the dial plan, otherwise it can hang up, or play a message and hang up which ends the call and stops processing in your dial plan.
2011/4/27 FERNANDO VILLARROEL <fvillarroel@yahoo.com>
Hola a todos.
Voy a recibir trafico desde un Gateway A que mi FS enrutará hacia un Gateway B.
Hasta ahy todo bien, el asunto es que antes de enrutar la llamada hacia el gateway B de alguna manera debo consultar el numero de destino en una base de datos si es así entonces se enruta la llamada en caso contrario la llamda la debo declinar de mi lado para que el Gateway A pueda enrutar esa llamada por otro proveedor distinto de mi.
Entonces lo que pienso hacer es un Script usando event_socket para que haga la consulta en la base de datos, entonces si el numero de destino esta la base de datos se enruta la llamada en caso contrario la declino para que la llamada continue por otro proveedor.
Mi tema es que no se me ocurre como hacer esto, imagino que en el dialplan para que dependiendo de la existencia del numero de destino en la base de datos haga una llamada o en caso contrario haga otra cosa.
Agredecere aguna idea o sugerencia sobre como resolver este problema.
Con Asterisk usaria DeadAgi para pasarle el control a un script que consulte con la base de datos y me retorne true si puedo llamar o false en caso contario. Y digo DeadAgi ya que el control lo toma el script, ya que si usara Agi el control sigue en Asterisk independiente de lo que este haciendo el Script.
Aprovecho entonces de consultar con event_socket el control pasa al script o el dialplan continua ejecutandose.
Agradecere cualquier idea o sugerencia.
Saludos
_______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
------------------------------ _______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
_______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org<http://mc/compose?to=FreeSWITCH-users@lists.freeswitch.org> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
-----Inline Attachment Follows-----
_______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org<http://mc/compose?to=FreeSWITCH-users@lists.freeswitch.org> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
_______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
_______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Hello Juan, By the Ibañez, I would assume you're also a spanish speaking person? IMHO, ESL and LUA for small scale applications is a matter of preference. They can accomplish the same. I do not program in LUA very well, so I normally prefer ESL, but I take it can be a bit more tricky since you need to control the full call flow. On the other hand, if you are talking about massive IVRs and such, I would definitely suggest ESL since you can run it on another box and leave all the processing power to freeswitch where freeswitch is hosted. LUA cant to that, it needs to run on the same box and you mix the logic where CPU is very sensitive. Does that make it clearer for you? Fernando, como estamos con la lectura? En que mas te puedo ayudar? Regards, João Mesquita 2011/4/28 Juan Antonio Ibañez Santorum <juanito1982@gmail.com>
Now you are talking about ESL? Which scenarios are suitable for ESL? When would be nice to use ESL and when LUA?
Regards
2011/4/28 João Mesquita <jmesquita@freeswitch.org>
Hey Ken! Even tho spanish is not my native language, I live in Argentina, so I can pretty much get away with it. Any help on portuguese or spanish that this list may require, I am available to help.
Fernando,
La manera mas rapida es algo relativo. Depende mucho de con que te sentis mas comodo. Me gusta mucho ESL y también me gusta mucho xml_curl. odbc_query nunca lo use, pero parece sencillo.
A mi me encanta Python tambien y suelo usarlo con ESL. Uso bastante también Pylons pero ya trabaje con Django tambien. Sea como for, lo que vos necesitás si vas a usar ESL es un outbound socket. Te recomiendo que empiezes leyendo esta pagina para que te vayas enterando de que se trata: http://wiki.freeswitch.org/wiki/Event_Socket_Outbound
Cuando termines de leer, yo te puedo tirar unos "tips" de como implementar lo que necesitás en Python sin demasiados problemas.
Saludos, João Mesquita
2011/4/28 FERNANDO VILLARROEL <fvillarroel@yahoo.com>
Hola João.
Si programo, mi lenguaje preferido es Python yo vengo de Asterisk donde usaba Python para programar AGI.
En web algo me manejo tambien por lo que creo no tendre problemas, le he metido mano a Django y Web2py.
Si no fuera mucho pedirte me gustaria aprender un poco de todo asi decido luego como lo voy haciendo, ESL me llama la atención ya que me gustaria comenzar a aprehender a usarlo, ya sabes capturar eventos de FS, enviar eventos a FS, etc.
Pero bueno por ahora si me ayudas a resolver mi problema usando lo mas sencillo te lo agradeceria mucho.
El problema es que debo crear una tabla con aproximadamente 4500 breackouts de numeros moviles, entonces si me entra una llamada con destination_number = 12345678 debo consultar si los 3 primeros dijitos estan presentes en la tabla si es si entonces reenvio la llamada a un Gateway y si no entonces la declino para que mi cliente la enrute por otro proveedor.
Saludos.
--- On *Wed, 4/27/11, João Mesquita <jmesquita@freeswitch.org>* wrote:
From: João Mesquita <jmesquita@freeswitch.org> Subject: Re: [Freeswitch-users] Script para chequear un numero de destino To: "FreeSWITCH Users Help" <freeswitch-users@lists.freeswitch.org> Date: Wednesday, April 27, 2011, 11:36 PM
Hola Fernando,
Yo mas o menos hablo español así que trato de darte una mano. Tenés muchas opciones. mod_easyroute como lo menciona Ken es una, ESL (event_socket) es otra, xml_curl es otra y uno de los "bindings" como lua, python, perl, etc... es otra.
Lo que tenemos que encontrar es lo que a vos te es mas comodo. Programás? En que lenguaje? Si no programás, mod_easyroute seguramente será lo mejor. ESL es lo más complicadito de todos ya que el dialplan entero lo tenes que programar desde tu socket y tirar los comandos hacia freeswitch en un orden especifico. XML_CURL es muy facil si sabes desarrollar en web.
Enfim, espero noticias tuyas para que te pueda ayudar con un determinado camino.
Saludos,
João Mesquita
2011/4/27 Ken Rice <krice@freeswitch.org<http://mc/compose?to=krice@freeswitch.org>
Routing a call if a number exists in a database... Hmmm sounds suspiciously a lot like mod_easyroute
k
On 4/27/11 8:24 PM, "Roger Castaldo" <roger.castaldo@gmail.com> wrote:
I ran your email through google translate and from what I can tell you want freeswitch to route a call if the number exists in database X. That being said, the event socket is not the way to go, look at doing it via a lua script call from the dial plan, then you can have the lua query the database, if it exists, use the api to route the call, or set a flag for the dial plan, otherwise it can hang up, or play a message and hang up which ends the call and stops processing in your dial plan.
2011/4/27 FERNANDO VILLARROEL <fvillarroel@yahoo.com>
Hola a todos.
Voy a recibir trafico desde un Gateway A que mi FS enrutará hacia un Gateway B.
Hasta ahy todo bien, el asunto es que antes de enrutar la llamada hacia el gateway B de alguna manera debo consultar el numero de destino en una base de datos si es así entonces se enruta la llamada en caso contrario la llamda la debo declinar de mi lado para que el Gateway A pueda enrutar esa llamada por otro proveedor distinto de mi.
Entonces lo que pienso hacer es un Script usando event_socket para que haga la consulta en la base de datos, entonces si el numero de destino esta la base de datos se enruta la llamada en caso contrario la declino para que la llamada continue por otro proveedor.
Mi tema es que no se me ocurre como hacer esto, imagino que en el dialplan para que dependiendo de la existencia del numero de destino en la base de datos haga una llamada o en caso contrario haga otra cosa.
Agredecere aguna idea o sugerencia sobre como resolver este problema.
Con Asterisk usaria DeadAgi para pasarle el control a un script que consulte con la base de datos y me retorne true si puedo llamar o false en caso contario. Y digo DeadAgi ya que el control lo toma el script, ya que si usara Agi el control sigue en Asterisk independiente de lo que este haciendo el Script.
Aprovecho entonces de consultar con event_socket el control pasa al script o el dialplan continua ejecutandose.
Agradecere cualquier idea o sugerencia.
Saludos
_______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
------------------------------ _______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
_______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org<http://mc/compose?to=FreeSWITCH-users@lists.freeswitch.org> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
-----Inline Attachment Follows-----
_______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org<http://mc/compose?to=FreeSWITCH-users@lists.freeswitch.org> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
_______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
_______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
_______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
2011/4/28 João Mesquita <jmesquita@freeswitch.org>
Hello Juan,
By the Ibañez, I would assume you're also a spanish speaking person?
IMHO, ESL and LUA for small scale applications is a matter of preference. They can accomplish the same. I do not program in LUA very well, so I normally prefer ESL, but I take it can be a bit more tricky since you need to control the full call flow.
On the other hand, if you are talking about massive IVRs and such, I would definitely suggest ESL since you can run it on another box and leave all the processing power to freeswitch where freeswitch is hosted. LUA cant to that, it needs to run on the same box and you mix the logic where CPU is very sensitive.
Does that make it clearer for you?
Fernando, como estamos con la lectura? En que mas te puedo ayudar?
Regards, João Mesquita
I agree with J. Lua is a great choice for doing simple things from the dialplan. Even basic IVRs can be done effectively with dialplan scripts in Lua. However, if you need to scale, or if your program needs to be able to react to system events, then ESL is probably the way to go. The good news about going with ESL is that there is quite literally nothing that a Lua dialplan script can do that an ESL program cannot. The only real difference is that Lua dp scripts are simpler and more limited than an ESL-based program. -MC
Let's make clear that this is not a limitation in Lua. You can also use Lua to connect to the Event Socket. Go to libs/esl and type 'make luamod' What you seem to be talking about is Mod_Lua and not the programming language iself. My 2 cents, On Apr 28, 2011, at 18:18 , Michael Collins wrote:
2011/4/28 João Mesquita <jmesquita@freeswitch.org> Hello Juan,
By the Ibañez, I would assume you're also a spanish speaking person?
IMHO, ESL and LUA for small scale applications is a matter of preference. They can accomplish the same. I do not program in LUA very well, so I normally prefer ESL, but I take it can be a bit more tricky since you need to control the full call flow.
On the other hand, if you are talking about massive IVRs and such, I would definitely suggest ESL since you can run it on another box and leave all the processing power to freeswitch where freeswitch is hosted. LUA cant to that, it needs to run on the same box and you mix the logic where CPU is very sensitive.
Does that make it clearer for you?
Fernando, como estamos con la lectura? En que mas te puedo ayudar?
Regards, João Mesquita
I agree with J. Lua is a great choice for doing simple things from the dialplan. Even basic IVRs can be done effectively with dialplan scripts in Lua. However, if you need to scale, or if your program needs to be able to react to system events, then ESL is probably the way to go. The good news about going with ESL is that there is quite literally nothing that a Lua dialplan script can do that an ESL program cannot. The only real difference is that Lua dp scripts are simpler and more limited than an ESL-based program.
-MC _______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Ariel Monaco – Systems Engineer Flylabs - Open Source Telecommunications and IT Consultants Address: Potosí 4456 C1199ACP - Buenos Aires - Argentina Web: http://flylabs.com E-Mail: arielmonaco@flylabs.com Tel. +54 (11) 4982-2689, +1 (315) 688-7333
2011/4/28 João Mesquita <jmesquita@freeswitch.org>
Hello Juan,
By the Ibañez, I would assume you're also a spanish speaking person?
You are OK
IMHO, ESL and LUA for small scale applications is a matter of preference. They can accomplish the same. I do not program in LUA very well, so I normally prefer ESL, but I take it can be a bit more tricky since you need to control the full call flow.
On the other hand, if you are talking about massive IVRs and such, I would definitely suggest ESL since you can run it on another box and leave all the processing power to freeswitch where freeswitch is hosted. LUA cant to that, it needs to run on the same box and you mix the logic where CPU is very sensitive.
Does that make it clearer for you?
Yes. I have not tested ESL already. I am going to do some tests. Regards
participants (7)
-
Ariel Monaco
-
FERNANDO VILLARROEL
-
João Mesquita
-
Juan Antonio Ibañez Santorum
-
Ken Rice
-
Michael Collins
-
Roger Castaldo