[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