Helo List,

Sorry I missed the rest of my email in my previous post. Please see below.

I'm having an issue using the AND (&) operator evaluation in the code of my dialplan. The dial plan is coded to detect inbound DTMF digits from callers. key "1" is equivalent to "yes" and key "2" is equivalent to "no" in two diferent contexts in the dial plan. When a caller presses 1, yes is passed as a value in a varialble and same when 2 is pressed a "no" is passed.

When the values are both set to "yes" from previous contexts in the dialplan; the evaluation of the AND operation in the following expression is true and works fine jumping to the correct priority within the context,

exten => s,3,Gotoif($[${test11} = yes]& $[${test12} = yes]?7:4)

Debug output

-- Goto (test-check,s,1)
   -- Executing NoOp("SIP/123-e131", "yes") in new stack
   -- Executing NoOp("SIP/123-e131", "yes") in new stack
   -- Executing GotoIf("SIP/123-e131", "1& 1?7:4") in new stack
   -- Goto (test-check,s,7)
-- Executing System("SIP/123-e131", "mail -s "Test=Yes" [EMAIL PROTECTED]") in new stack
   -- Executing Goto("SIP/123-e131", "14") in new stack
   -- Goto (test-check,s,14)
   -- Executing Playback("SIP/123-e131", "end") in new stack

The issue occurs when the values are passed with different values. For instance when the variables test11 and test12, shown below, are set with values yes and no respectively. The AND operation is evaluated as true, as seen in the debug output below, it jumps to priority 7 within the context instead of jumping to priority 4 as it should be the case when evaluated as false as it should,

exten => s,3,Gotoif($[${test11} = yes]& $[${test12} = yes]?7:4)
exten => s,4,Gotoif($[${test11} = yes] & $[${test12} = no]?9:5)

Debug output:

-- Executing NoOp("SIP/123-1c20", "yes") in new stack
   -- Executing NoOp("SIP/123-1c20", "no") in new stack
   -- Executing GotoIf("SIP/123-1c20", "1& 0?7:4") in new stack
   -- Goto (test-check,s,7)
-- Executing System("SIP/123-1c20", "mail -s "Test=Yes" [EMAIL PROTECTED]") in new stack
   -- Executing Goto("SIP/123-1c20", "14") in new stack
   -- Goto (test-check,s,14)
   -- Executing Playback("SIP/123-1c20", "end") in new stack

Following is the rest of code for the context processing the AND operations,

[test-check]
exten => s,1,NoOp(${test11})
exten => s,2,NoOp(${test12})
exten => s,3,Gotoif($[${test11} = yes]& $[${test12} = yes]?7:4)
exten => s,4,Gotoif($[${test11} = yes] & $[${test12} = no]?9:5)
exten => s,5,Gotoif($[${test11} = no] & $[${test12} = no]?11:6)
exten => s,6,Gotoif($[${test11} = yes] & $[${test12} = yes]?13:15)
exten => s,7,System(mail -s "Test=Yes" [EMAIL PROTECTED])
exten => s,8,Goto(14)
exten => s,9,System(mail -s "Test=yes,no" [EMAIL PROTECTED])
exten => s,10,Goto(14)
exten => s,11,System(mail -s "Test=no" [EMAIL PROTECTED])
exten => s,12,Goto(14)
exten => s,13,System(mail -s "Test=no,yes" [EMAIL PROTECTED])
exten => s,14,Playback(ExetelIVR/end)
exten => s,15,Goto(ack-message,s,1)
exten => t,1,Playback(vm-goodbye)
exten => t,2,Hangup

Can someone please assist and explain how the AND operation works in Asterisk?

Regards,

Paul

_________________________________________________________________
See Jet live in LA. Download music for a chance to win! http://ninemsn.com.au/share/redir/adTrack.asp?mode=click&clientID=721&referral=hotmailtagline&URL=http://music.ninemsn.com.au/section.aspx?sectionid=2465&sectionname=artistfeature&subsectionid=5692&subsectionname=jet

_______________________________________________
--Bandwidth and Colocation provided by Easynews.com --

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
  http://lists.digium.com/mailman/listinfo/asterisk-users

Reply via email to