README.math 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. Mathematical dialplan function
  2. Yeah, I thought it was a little insane too..
  3. adds:
  4. Sum, Multiply, Divide, Subtract, Modulus, GT, LT, GTE, LTE, EQ functions to Asterisk
  5. All functions follow the same basic pattern for parameters:
  6. parameter 1 = the math expression
  7. parameter 2 = the type of result
  8. Perform calculation on number 1 to number 2. Valid ops are:
  9. +,-,/,*,%,<,>,>=,<=,==
  10. and behave as their C equivalents.
  11. <type_of_result> - wanted type of result:
  12. f, float - float(default)
  13. i, int - integer,
  14. h, hex - hex,
  15. c, char - char
  16. Each math expression is performed as
  17. Action param1 on param2
  18. eg:
  19. Action = Divide
  20. Param1 = 10
  21. Param2 = 2
  22. Results in
  23. Divide 10 by 2
  24. Example dialplan:
  25. exten => 11099,1,Set(RV=${MATH(1+20)})
  26. exten => 11099,n,NOOP(${RV})
  27. exten => 11099,n,Set(RV=${MATH(10*2)})
  28. exten => 11099,n,NOOP(${RV})
  29. exten => 11099,n,Set(RV=${MATH(10*2)})
  30. exten => 11099,n,NOOP(${RV})
  31. exten => 11099,n,Set(RV=${MATH(10-2)})
  32. exten => 11099,n,NOOP(${RV})
  33. exten => 11099,n,Set(RV=${MATH(2%10)})
  34. exten => 11099,n,NOOP(${RV})
  35. exten => 11099,n,Set(RV=${MATH(10/0)})
  36. exten => 11099,n,NOOP(${RV})
  37. exten => 11099,n,Set(RV=${MATH(10-200)})
  38. exten => 11099,n,NOOP(${RV})
  39. exten => 11099,n,Set(RV=${MATH(1-20)})
  40. exten => 11099,n,NOOP(${RV})
  41. exten => 11099,n,Set(RV=${MATH(1<20)})
  42. exten => 11099,n,NOOP(${RV})
  43. exten => 11099,n,Set(RV=${MATH(1>=20)})
  44. exten => 11099,n,NOOP(${RV})
  45. exten => 11099,n,Set(RV=${MATH(101>20)})
  46. exten => 11099,n,NOOP(${RV})
  47. exten => 11099,n,Set(RV=${MATH(1==20)})
  48. exten => 11099,n,NOOP(${RV})
  49. exten => 11099,n,Set(RV=${MATH(20<=20)})
  50. exten => 11099,n,NOOP(${RV})
  51. exten => 11099,n,Set(RV=${MATH(123%16,int)})
  52. exten => 11099,n,NOOP(${RV})