Contador estandar

21. Septiembre 2007

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… :D



Deja tu comentario


*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word