[asterisk-users] BUG or ???
Richard Mudgett
rmudgett at digium.com
Fri Feb 24 15:44:09 CST 2017
On Fri, Feb 24, 2017 at 3:30 PM, Антон Сацкий <satskiy.a at gmail.com> wrote:
> Got a strange situation
>
> [ext-queues]
> ...
> exten => h,2,ExecIf($[${CALLERID(num)} = ' ']?Set(var29=${SHELL(curl -X
> POST --header "Content-Type: application/json" --header "Accept:
> application/json" -d "{\"Phone\": ${FROMEXTEN}, \"Source\": \"asterisk\"}" "
> http://sIte.com:80/api/v1/calls?apiKey=UABVAEI&clientId=3")}))
>
> exten => h,3,NoOp(${var29})
> exten => h,4,Macro(hangupcall,)
> ;--== end of [ext-queues] ==--;
>
>
> so when i execute it got
>
>
> -- Executing [h at ext-queues:1] NoOp("SIP/100-00000050", "100") in new stack
> -- Executing [h at ext-queues:2] ExecIf("SIP/100-00000050", "0
> ?Set(var29=[{"RequestedCount":0,"MissedCount":7,"Total":7}])") in new
> stack
> -- Executing [h at ext-queues:3] NoOp("SIP/100-00000050", "") in new
> stack
> -- Executing [h at ext-queues:4] Macro("SIP/100-00000050",
> "hangupcall,") in new st
>
>
> U can see that Execif = 0 = falce but somehow
> Shell ${SHELL(curl -X POST --header "Content-Type: application/json"
> --header "Accept: application/json" -d "{\"Phone\": ${FROMEXTEN},
> \"Source\": \"asterisk\"}" "http://sIte.com:80/api/v1/
> calls?apiKey=UABVAEI&clientId=3")}
> executes and get answer from the server [{"RequestedCount":0,"
> MissedCount":7,"Total":7}]
>
The Set isn't being executed by the ExecIf. However the ${} substitution
containing
the SHELL is evaluated before anything else is examined. This isn't a bug
but the
order of how things are evaluated. You will have to do what you want
another way:
same = n,GotoIf($["${CALLERID(num)}" = ""]?skip)
same = n,Set(var29=${SHELL(...)})
same = n(skip),NoOp(${var29})
Richard
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20170224/68846cde/attachment.html>
More information about the asterisk-users
mailing list