Icono del sitio Sinologic

Calculadora básica en Asterisk

CalculadoraHaciendo un ejemplo de cosas tontas que puede hacer Asterisk, se me ha ocurrido un ejemplo curioso y lo pongo aquí por si a alguien le gusta seguir haciendo pruebas.

El funcionamiento es bastante sencillo, marcamos ‘*’ y el primer número, esperamos hasta que nos lo repita y marcamos el segundo número con el que queramos operar y por último seleccionamos la operación utilizando el * como indicador:

* = suma
** = resta
*** = multiplicacion
**** = division

exten=>*,1,Answer()
exten=>*,n,Read(primero)
exten=>*,n,SayNumber(${primero})
exten=>*,n,Read(segundo)
exten=>*,n,SayNumber(${segundo})
exten=>*,n,Read(operacion)
exten=>*,n,GotoIF($[«${operacion}»=»*»]?suma)
exten=>*,n,GotoIF($[«${operacion}»=»**»]?resta)
exten=>*,n,GotoIF($[«${operacion}»=»***»]?multiplicacion)
exten=>*,n,GotoIF($[«${operacion}»=»****»]?division)
exten=>*,n(suma),Set(res=$[${primero}+${segundo}])
exten=>*,n(suma),SayNumber(${res})
exten=>*,n(suma),Hangup()
exten=>*,n(resta),Set(res=$[${primero}-${segundo}])
exten=>*,n(resta),SayNumber(${res})
exten=>*,n(resta),Hangup()
exten=>*,n(multiplicacion),Set(res=$[${primero}*${segundo}])
exten=>*,n(multiplicacion),SayNumber(${res})
exten=>*,n(multiplicacion),Hangup()
exten=>*,n(division),Set(res=$[${primero}/${segundo}])
exten=>*,n(division),SayNumber(${res})
exten=>*,n(division),Hangup()

Así por ejemplo, si queremos restar 245-126 marcamos:

* – Para acceder a la calculadora básica.
245 – Para introducir el primer número.
126 – Para introducir el segundo número.
** – Para seleccionar la operación ‘resta’

Seguro que a más de uno le parece una tontería, y creo además que no admite decimales, igual en una nueva versión… 😀

Salir de la versión móvil