Eeeeeek!

        -----Original Message----- 
        From: Eric "ManxPower" Wieling [mailto:[EMAIL PROTECTED] 
        Sent: Mon 2/20/2006 11:06 AM 
        To: Asterisk Users Mailing List - Non-Commercial Discussion 
        Cc: 
        Subject: Re: [Asterisk-Users] Loops and Variables
        
        

        Douglas Garstang wrote:
        > It was trying to perform looping in the dialplan that made me 
seriously look at AGI. Gee, I wonder what's easier.
        >
        > This:
        > exten => s,1,Set(COUNT=0)
        > exten => s,2,Goto(loop,1);this is where we start the loop
        > exten => loop,1,GotoIf($[${COUNT} > 5]?next,1);exit if more than 5 
esle start again
        > exten => loop,2,Set(COUNT=$[${COUNT} + 1])
        > exten => loop,3,Goto(1)
        > exten => next,1,Noop(${COUNT})
        >
        > or this...
        > loop = 0
        > while loop < 5:
        >       do-something
        >       loop += 1
        >
        > I really wasn't enthused about having to look at dialplan code months 
later and try and work out what I did earlier.
        > Nasty!
        
        If you think that's nasty.....
        
        [default]
        exten => 3528,1,SetVar([EMAIL PROTECTED])
        exten => 3528,2,SetVar(DIAL_DEST[1]=SIP/0004f201fbd8-a)
        exten => 3528,3,SetVar(DIAL_DEST[2]=SIP/0004f201fbd8-b)
        exten => 3528,4,Macro(std-exten)
        
        [macro-std-exten]
        exten =>
        s,1,AGI(callerid-fixup.agi,${CALLERIDNUM}&${MACRO_EXTEN}&0000000000)
        exten => s,2,Noop(AGI(set-ring))
        exten => s,3,GotoIf($[${LEN(${FAX_DEST})} = 0]?9:4)
        exten => s,4,Cut(TECHNOLOGY=CHANNEL,/,1)
        exten => s,5,GotoIf($["${TECHNOLOGY}" = "Zap"]?6:9)
        exten => s,6,Answer
        exten => s,7,Ringing
        exten => s,8,NVFaxDetect(4,d)
        exten => s,9,Goto(${MACRO_EXTEN},1)
        
        exten => _XXXX,1,GotoIf($[${LEN(${DIAL_DEST[1]})} = 0]?2:4)
        exten => _XXXX,2,GotoIf($[${LEN(${DIAL_DEST})} = 0]?14:3)
        exten => _XXXX,3,SetVar(DIAL_DEST[1]=${DIAL_DEST})
        exten => _XXXX,4,SetVar(INDEX=1)
        exten => _XXXX,5,GotoIf($[${LEN(${DIAL_TIMEOUT[${INDEX}]})} = 0]?6:7)
        exten => _XXXX,6,SetVar(DIAL_TIMEOUT[${INDEX}]=20)
        exten =>
        
_XXXX,7,Dial(${DIAL_DEST[${INDEX}]},${DIAL_TIMEOUT[${INDEX}]},${DIAL_OPTS[${INDEX}]}g)
        exten => _XXXX,8,GotoIf($["${DIALSTATUS}" = "BUSY" | "${DIALSTATUS}" =
        "CHANUNAVAIL" | "${DIALSTATUS}" = "CONGESTION"]?12:9)
        exten => _XXXX,9,GotoIf($["${DIALSTATUS}" = "NOANSWER"]?14:10)
        exten => _XXXX,10,Noop(DIALSTATUS=${DIALSTATUS})
        exten => _XXXX,11,Hangup
        exten => _XXXX,12,SetVar(INDEX=$[${INDEX} + 1])
        exten => _XXXX,13,GotoIf($[${LEN(${DIAL_DEST[${INDEX}]})} = 0]?14:5)
        exten => _XXXX,14,GotoIf($[${LEN(${VOICE_MAILBOX})} = 0]?19:15)
        exten => _XXXX,15,Voicemail(${VOICE_MAILBOX})
        exten => _XXXX,16,Wait(2)
        exten => _XXXX,17,Hangup
        exten => _XXXX,18,GotoIf($["${DIALSTATUS}" = "NOANSWER"]?19:22)
        exten => _XXXX,19,Voicemail(u${EXTEN})
        exten => _XXXX,20,Wait(2)
        exten => _XXXX,21,Hangup
        exten => _XXXX,22,Voicemail(b${EXTEN})
        exten => _XXXX,23,Wait(2)
        exten => _XXXX,24,Hangup
        exten => _XXXX,116,AbsoluteTimeout(30)
        exten => _XXXX,117,Playback(sorry-mailbox-full)
        exten => _XXXX,118,Wait(2)
        exten => _XXXX,119,Congestion
        exten => _XXXX,120,Goto(116)
        exten => _XXXX,123,Goto(116)
        
        exten => talk,1,Goto(${MACRO_EXTEN},1)
        
        exten => fax,1,Cut(FAX_TECH=FAX_DEST,/,1)
        exten => fax,2,GotoIf($["${FAX_TECH}" = "Zap"]?3:7)
        exten => fax,3,Dial(${FAX_DEST},20)
        exten => fax,4,AbsoluteTimeout(30)
        exten => fax,5,Wait(2)
        exten => fax,6,Congestion
        exten => fax,7,RxFax(/tmp/fax-${UNIQUEID}.tiff)
        exten =>
        fax,8,DeadAGI(/usr/local/bin/fax2email.pl,/tmp/fax-${UNIQUEID}.tiff)
        exten => fax,9,Hangup
        exten => fax,104,AbsoluteTimeout(30)
        exten => fax,105,Busy
        
        exten => a,1,Playback(/etc/asterisk/directvm)
        exten => a,2,VoicemailMain()
        exten => a,3,Wait(.5)
        exten => a,4,Goto(1)
        
        exten => o,1,GotoIf($[${LEN(${OPER_DEST})} = 0]?2:4)
        exten => o,2,Goto(extensions,0,1)
        exten => o,3,Hangup
        exten => o,4,GotoIf($[${OPER_TIMEOUT} = 0]?5:6)
        exten => o,5,SetVar(OPER_TIMEOUT=)
        exten => o,6,GotoIf($[${LEN(${OPER_MESSAGE})} = 0]?8:7)
        exten => o,7,Playback(${OPER_MESSAGE})
        exten => o,8,Dial(${OPER_DEST},${OPER_TIMEOUT},${OPER_FLAGS})
        exten => o,9,Voicemail(u${MACRO_EXTEN})
        exten => o,10,Hangup
        _______________________________________________
        --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
        

<<winmail.dat>>

_______________________________________________
--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