[asterisk-users] Help with FUNC_MATH

Dovid Bender
Thu, 13 Feb 2020 10:47:11 -0000

Hi,

I have some dialplan code that is trying to convert 12 hour time with AM/PM
to 24 hour format. The code has something like this:
Exten =>
2,1,ExecIf(${MATH(${HOUR_SELECTED}<12)}?Set(HOUR_SELECTED=${MATH(${HOUR_SELECTED}+12,int)}))

Earlier on in the dialplan HOUR_SELECTED is set to 12. When they press
option 2 they are selecting PM. If the time is from 1PM to 11PM then I want
to add 12 to the number (so if it's 1 make it 13 etc.). When I run the
above the logs show the result as false yet if the user sets HOUR_SELECTED
to 12 then after this line of dialplan code it gets switched to 24. What am
I doing wrong here?

The exact DP code is:
Exten => 2,     1, Noop(BEFORE CHECK HOUR_SELECTED is ${HOUR_SELECTED})
 same =>        n,
ExecIf(${MATH(${HOUR_SELECTED}<12)}?Set(HOUR_SELECTED=${MATH(${HOUR_SELECTED}+12,int)}))
 same =>        n, Noop(AFTER CHECK HOUR_SELECTED IS ${HOUR_SELECTED})

And the output of the logs is:
[Feb 13 10:46:18] VERBOSE[1580][C-00007bc6] pbx.c: Executing [2 at
am_pm_select:1]
NoOp("SIP/204.145.219.31-000081c6", "BEFORE CHECK HOUR_SELECTED
is 12") in
new stack
[Feb 13 10:46:18] DEBUG[1580][C-00007bc6] pbx_variables.c: Result of
'HOUR_SELECTED' is '12'
[Feb 13 10:46:18] DEBUG[1580][C-00007bc6] pbx_variables.c: Function
MATH(12<12) result is 'FALSE'
[Feb 13 10:46:18] DEBUG[1580][C-00007bc6] pbx_variables.c: Result of
'HOUR_SELECTED' is '12'
[Feb 13 10:46:18] DEBUG[1580][C-00007bc6] pbx_variables.c: Function
MATH(12+12,int) result is '24'
[Feb 13 10:46:18] DEBUG[1580][C-00007bc6] pbx.c: Launching 'ExecIf'
[Feb 13 10:46:18] VERBOSE[1580][C-00007bc6] pbx.c: Executing [2 at
am_pm_select:2]
ExecIf("SIP/204.145.219.31-000081c6",
"FALSE?Set(HOUR_SELECTED=24)") in new
stack
[Feb 13 10:46:18] DEBUG[1580][C-00007bc6] pbx_variables.c: Result of
'HOUR_SELECTED' is '24'
[Feb 13 10:46:18] DEBUG[1580][C-00007bc6] pbx.c: Launching 'NoOp'
[Feb 13 10:46:18] VERBOSE[1580][C-00007bc6] pbx.c: Executing [2 at
am_pm_select:3]
NoOp("SIP/204.145.219.31-000081c6", "AFTER CHECK HOUR_SELECTED IS
24") in
new stack


TIA.

Dovid
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.digium.com/pipermail/asterisk-users/attachments/20200213/685d3dd1/attachment.html>