Trucos Asterisk, Entrega número 1
Comienzo esta serie de entregas poniendo los "trucos" o maniobras que voy utilizando en Asterisk para conseguir hacer lo que necesito. Asterisk al ser tan manejable nos permitirá hacer casi lo que queramos, tiene muchísimas posibilidades, pero hay que saber hacerlas.
En esta primera entrega os contaré como hacer lo siguiente:
– Un usuario, una extensión interna, no pueda llamar a números que no empiecen por 9. Anulando de esta forma cualquier llamada aunque sea interna.
– Si empiezan por el número 9 que oculte el número de teléfono desde el cual está llamando.
– A su vez asociaremos un número de teléfono de People Call a esa extensión, para que siempre que llamen a ese número solo pueda responder esa extensión.
Manos a la obra:
Nos basaremos en la instalación que he realizado con el documento expuesto en Improvisa, aquí.
Empezaré contandoos que la instalación de freepbx nos anula la utilización de, por ejemplo, el archivo extensions.conf pudiendo utilizar solamente para este fin extensions_custom.conf. Os digo esto para que no realiceis cambios en en extensions.conf ya que de primeras os va a funcionar pero en cuanto apliqueis cambios en el portal de freepbx, freepbx volcará los datos contenidos en mysql al fichero, es decir os machacará los cambios que hagais en extensions.conf.
Yo he tenido que dar a un usuario externo acceso a la centralita, para que pueda realizar sus llamadas a través de las lineas que tienen tarifa plana de mi casa, pero claro yo no quiero que luego me llamen a mi preguntado por ese usuario, es decir tengo que ocultar todas las llamadas que salgan de él para que nadie asocie mi número de teléfono con el nombre de usuario que le está llamando. Además no quiero que utilice mi linea para hacer llamadas no gratuitas, que se gaste el el dinero ;-).
Empezemos dando de alta la extensión que queramos, en el protal freepbx, poniéndole como contexto from-gorron, crearemos este contexto para saber que quien esta llamando es la extensión que queremos.
Ahora debemos decirle a Asterisk que hacer si la llamada proviene de esa extensión, para ello editaremos el archivo extensions_custom.conf y añadiremos lo siguiente, al principio:
operadora:/# vi /etc/asterisk/extensions_custom.conf
[from-gorron]
exten => _X.,1,Noop(Comienza from-gorron)
exten => _X.,2,Noop(Exten=${EXTEN:0:1})
exten => _X.,3,GotoIf($["${EXTEN:0:1}" != "9"]?prohibe_llamada,${EXTEN},1:oculta_llamada,${EXTEN},1)
Si os fijais lo único que estamos haciendo es que si el número por el que comienza el numero al que el "gorron" llama no empieza por 9 lo denegaremos y si comienza por 9 lo ocultaremos.
Los Noop solo nos informan de los valores que tengan las variables, para poder ver que todo lo hace bien ejecutad la consola de asterisk con el comando asterisk -rvvvvv
El GotoIf nos manda a un contexto o a otro segun la condición.
Ahora simplemente debemos prohibir la llamada, añadiendo debajo del contexto from-gorron:
[prohibe_llamada]
exten => _X.,1,Noop(Inicio Prohibe llamada)
exten => _X.,2,Playback(custom/Solo_Empiezan_por_9)
exten => _X.,3,Hangup
Aqui lo único que hago es avisar a esa extensión que no puede llamar a números que no empiecen por 9 y colgarle.
Para ocultar la llamada poned esto debajo de el contexto prohibe_llamada
[oculta_llamada]
exten => _X.,1,Noop(Inicio_oculta_llamada)
exten => _X.,2,Macro(dialout-trunk,1,067${EXTEN},,)
exten => _X.,n,Macro(dialout-trunk,2,067${EXTEN},,)
exten => _X.,n,Macro(dialout-trunk,5,067${EXTEN},,)
exten => _X.,n,Macro(outisbusy,)
Lo único que tenemos que hacer es seleccionar el orden de los trunks por los cuales tiene que salir la llamada oculta. Para ocultar la llamada en la red de telefonica es el codigo 067. Intenta salir por el trunk numero 1 si la linea la tengo ocupada pasa al 2 y si sigue comunicando pasará al trunk 5.
Sólo falta añadir el trunk de PeopleCall a nuestra centralita y asociarlo en Inbound Routes para que cuando llamen a ese número lo pasemos a esa extensión.
Espero que os haya valido, para modificaciones o preguntas sobre el truco, o el script o como querais llamarlo, por favor al foro.
Gracias a los gurus de Asterisk ;-):
Alfonso de Microalcarria.
Juan Carlos Valero de Capatres.
Warning: Use of undefined constant type - assumed 'type' (this will throw an Error in a future version of PHP) in /home/improvisa_com/web/improvisa.com/public_html/wp-content/themes/grassland/comments.php on line 38
Muchas gracias Juanmi!
Creo que dentro de poco igual me atrevo con ello, aunque ya sabes que en mi caso, primero hay otras cosas que aprender, poco a poco.
Salu2 😀
P.D.No puedo evitar sonreír con from-gorron…. anda que!.. jejeje
Jeje, mola el nombre del contexto, lo hago con cariño eso es obvio si realmente fuese un gorron pues no se lo hacia, pero el nombre lo dice todo, es de fuera ;-).
Estoy desenado que te animes, ademas dentro de poco te hará más que falta 😉
El mejor truco, tomarse la pócima del mago Merlín, y bajarse a los romanos.
🙁 no me valoras…………
Te voy a dar yo a ti merlis, el de Agus en las pelotas 😉