[asterisk-commits] branch murf/AEL2 r20251 - in
/team/murf/AEL2/pbx/ael-test: ./ ael-test1/ ael-...
asterisk-commits at lists.digium.com
asterisk-commits at lists.digium.com
Fri Apr 14 18:49:40 MST 2006
Author: murf
Date: Fri Apr 14 20:49:31 2006
New Revision: 20251
URL: http://svn.digium.com/view/asterisk?rev=20251&view=rev
Log:
Added the regression tests;
had to update aelparse to use a new module convention
to call the load_module routine differently, for both
ael and ael2.
Had to update ael2 to declare the load related routines
as "static", and include the macro call.
Have to keep up with the changes!
Added:
team/murf/AEL2/pbx/ael-test/
team/murf/AEL2/pbx/ael-test/ael-test1/
team/murf/AEL2/pbx/ael-test/ael-test1/extensions.ael2 (with props)
team/murf/AEL2/pbx/ael-test/ael-test2/
team/murf/AEL2/pbx/ael-test/ael-test2/apptest.ael2 (with props)
team/murf/AEL2/pbx/ael-test/ael-test2/extensions.ael2 (with props)
team/murf/AEL2/pbx/ael-test/ael-test3/
team/murf/AEL2/pbx/ael-test/ael-test3/extensions.ael2 (with props)
team/murf/AEL2/pbx/ael-test/ael-test3/include1.ael2 (with props)
team/murf/AEL2/pbx/ael-test/ael-test3/include2.ael2 (with props)
team/murf/AEL2/pbx/ael-test/ael-test3/include3.ael2 (with props)
team/murf/AEL2/pbx/ael-test/ael-test3/include4.ael2 (with props)
team/murf/AEL2/pbx/ael-test/ael-test3/include5.ael2 (with props)
team/murf/AEL2/pbx/ael-test/ael-test4/
team/murf/AEL2/pbx/ael-test/ael-test4/apptest.ael2 (with props)
team/murf/AEL2/pbx/ael-test/ael-test4/extensions.ael2 (with props)
team/murf/AEL2/pbx/ael-test/ref.ael-test1 (with props)
team/murf/AEL2/pbx/ael-test/ref.ael-test2 (with props)
team/murf/AEL2/pbx/ael-test/ref.ael-test3 (with props)
team/murf/AEL2/pbx/ael-test/ref.ael-test4 (with props)
team/murf/AEL2/pbx/ael-test/runtests (with props)
team/murf/AEL2/pbx/ael-test/setref (with props)
Added: team/murf/AEL2/pbx/ael-test/ael-test1/extensions.ael2
URL: http://svn.digium.com/view/asterisk/team/murf/AEL2/pbx/ael-test/ael-test1/extensions.ael2?rev=20251&view=auto
==============================================================================
--- team/murf/AEL2/pbx/ael-test/ael-test1/extensions.ael2 (added)
+++ team/murf/AEL2/pbx/ael-test/ael-test1/extensions.ael2 Fri Apr 14 20:49:31 2006
@@ -1,0 +1,163 @@
+
+macro testdial(number, timeout) {
+ Dial(IAX2/vpconnect-t02/${number},${timeout},${OG_DIAL_FLAGS});
+ switch (${DIALSTATUS}) {
+ case CHANUNAVAIL:
+ goto dial-trunk2;
+ break;
+ default:
+ NoOp(t02 Unavailable - ${DIALSTATUS});
+ return;
+ }
+
+dial-trunk2:
+ Dial(IAX2/vpconnect-t01/${number},${timeout},${OG_DIAL_FLAGS});
+
+}
+
+macro exten-gen(name,pword)
+{
+ if( ${DB_EXISTS(org/${GroupID}/${name}/secret)} = 0 )
+ goto other|nomatch|begin;
+ if( ${DB(org/${GroupID}/${name}/secret)}foo != ${pword}foo )
+ goto other|nomatch|begin;
+
+};
+
+context what {
+ who =>
+ {
+ random(51) NoOp(This should appear 51% of the time);
+
+ random( 60 )
+ {
+ NoOp( This should appear 60% of the time );
+ }
+ else
+ {
+ random(75)
+ {
+ NoOp( This should appear 30% of the time! );
+ }
+ else
+ {
+ NoOp( This should appear 10% of the time! );
+ }
+ }
+ }
+}
+
+context other {
+ nomatch => {
+ begin:
+ NoOp(Hello!);
+ switch(${DIALSTATUS})
+ {
+ case BUSY:
+ NoOp(wow);
+ case TORTURE:
+ NoOp(woow);
+ };
+ NoOp(woohoo);
+ };
+};
+
+context testloop {
+ includes {
+ other|16:00-23:59|m0n-fri|*|*;
+ };
+
+ 1 => {
+ for (x=0; ${x} < 3; x=${x} + 1) {
+ Verbose(x is ${x} !);
+ if( ${x} = 1 )
+ continue;
+ if( ${x} = 2 )
+ break;
+ };
+ ifTime(14:00-25:00|sat-sun|*|*) {
+ BackGround(Hello);
+ } else
+ BackGround(Sorry);
+ NoOp(This is a totally useless NOOP);
+ };
+ 2 => {
+ y=10;
+ while (${y} >= 0) {
+ Verbose(y is ${y} !);
+ if( ${y} = 1 )
+ continue;
+ if( ${y} = 2 )
+ break;
+ if( ${y} = 3 )
+ return;
+ y=${y}-1;
+ };
+ };
+ regexten hint(nasty/Thingy) 3 => {
+ for (x=0; ${x} < 3; x=${x} + 1)
+ {
+ Verbose(x is ${x} !);
+ if( ${x} = 4 )
+ break;
+ if( ${x} = 5 )
+ continue;
+ if( ${x} = 6 )
+ return;
+
+ y=10;
+ while (${y} >= 0)
+ {
+ Verbose(y is ${y} !);
+ if( ${y} = 4 )
+ break;
+ if( ${y} = 5 )
+ continue;
+ if( ${y} = 6 )
+ return;
+ y=${y}-1;
+ };
+ };
+ };
+ 4 => {
+ y=10;
+ while (${y} >= 0)
+ {
+ Verbose(y is ${y} !);
+ if( ${y} = 4 )
+ break;
+ if( ${y} = 5 )
+ continue;
+ if( ${y} = 6 )
+ return;
+ for (x=0; ${x} < 3; x=${x} + 1)
+ {
+ Verbose(x is ${x} !);
+ if( ${x} = 4 )
+ break;
+ if( ${x} = 5 )
+ continue;
+ if( ${x} = 6 )
+ return;
+ for (z=0; ${z} < 17; z=${z} + 1)
+ {
+ Verbose(z is ${z} !);
+ Verbose(z is ${z} !);
+ if( ${z} = 4 )
+ break;
+ if( ${z} = 5 )
+ continue;
+ if( ${z} = 6 )
+ return;
+ Verbose(z is ${z} !);
+ Verbose(z is ${z} !);
+ };
+
+ };
+ y=${y}-1;
+ };
+ };
+ 5 => {
+ &exten-gen(axel,brain);
+ };
+};
Propchange: team/murf/AEL2/pbx/ael-test/ael-test1/extensions.ael2
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: team/murf/AEL2/pbx/ael-test/ael-test1/extensions.ael2
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: team/murf/AEL2/pbx/ael-test/ael-test1/extensions.ael2
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: team/murf/AEL2/pbx/ael-test/ael-test2/apptest.ael2
URL: http://svn.digium.com/view/asterisk/team/murf/AEL2/pbx/ael-test/ael-test2/apptest.ael2?rev=20251&view=auto
==============================================================================
--- team/murf/AEL2/pbx/ael-test/ael-test2/apptest.ael2 (added)
+++ team/murf/AEL2/pbx/ael-test/ael-test2/apptest.ael2 Fri Apr 14 20:49:31 2006
@@ -1,0 +1,146 @@
+// this is a quick test to see how many of the apps we can spot j options in
+// include this in a macro or extension
+// at this moment, there are 18 apps that accept the j option.
+
+ AddQueueMember(zork,iface,20,j);
+ ADSIProg(sfile);
+ AgentCallbackLogin(agent,s,30 at cont);
+ AgentLogin(agent,s);
+ AgentMonitorOutgoing(dcn);
+ AGI(whatever);
+ AlarmReceiver();
+ Answer(2);
+ AppendCDRUserField(value);
+ Authenticate(pword,adjmr);
+ BackGround(filename,snm,eng);
+ BackgroundDetect(filename,20,2,10);
+ Busy(10);
+ ChangeMonitor(fnamebase);
+ ChanIsAvail(Zap/5,sj);
+ ChanSpy(prefix,bg()qrv);
+ Congestion(5);
+ ControlPlayback(filename,10,6,4,0,5,7,j);
+ DateTime(unixtime,tz,fmt);
+ DBdel(fam/key);
+ DBdeltree(fam);
+ DeadAGI(command);
+ Dial(zap/1,45,A()CdD()fgG()hHjL()m()M()nNoprS()tTwW);
+ Dictate(basedir);
+ Directory(cont,dcont,f);
+ DISA(68986869876,context);
+ DumpChan(verblev);
+ DUNDiLookup(90709780978,context,bj);
+ EAGI(command);
+ Echo();
+ EndWhile();
+ Exec(appname,args);
+ ExecIf(expr,app,data);
+ ExecIfTime(*,*,*,*,appname);
+ ExternalIVR(command,arg1);
+ Festival(text);
+ Flash();
+ ForkCDR(v);
+ GetCPEID();
+ Gosub(cont,exten,priority);
+ GosubIf(cond?label);
+ Goto(cont,exten,prior);
+ GotoIf(cond?t:f);
+ GotoIfTime(*,*,*,*?cont,ext,prior);
+ Hangup();
+ HasNewVoicemail(vmbox,var,j);
+ HasVoicemail(vmbox,var,j);
+ IAX2Provision(template);
+ ICES(xmlconfig);
+ ImportVar(nevar at chann,var);
+ Log(NOTICE,message);
+ LookupBlacklist(j);
+ LookupCIDName();
+ Macro(macro,arg1);
+ MacroExit();
+ MacroIf(expr?etc);
+ MailboxExists(mbox at cont,j);
+ Math(v,2+2);
+ MeetMe(5555,aAbcdDeimMpPqrstTovwxX);
+ MeetMeAdmin(5555,e,user);
+ MeetMeCount(5555,var);
+ Milliwatt();
+ MixMonitor(filename,abv()V()W(),command);
+ Monitor(file.fmt,base,mb);
+ MP3Player(location);
+ MusicOnHold(class);
+ NBScat();
+ NoCDR();
+ NoOp(ignored);
+ Page(Zap/1,dq);
+ Park(exten);
+ ParkAndAnnounce(template,5,238,retcont);
+ ParkedCall(exten);
+ PauseQueueMember(queue,zap,j);
+ Pickup(ext at cont);
+ Playback(file,j);
+ PlayTones(arg);
+ PrivacyManager(3,4,j);
+ Progress();
+ Queue(queuename,dhHnrtTwW,http://www.where.what,over,5);
+ Random(30,cont,ext,pri);
+ Read(var,fname,10,skip,2,5);
+ ReadFile(var=file,10);
+ RealTime(fam,2,val,prefix);
+ RealTimeUpdate(fam,2,val,2,newval);
+ Record(file,2,10,anqst);
+ RemoveQueueMember(queuename,iface,j);
+ ResetCDR(wav);
+ RetryDial(annound,4,2);
+ Return();
+ Ringing();
+ RxFAX(fname,caller);
+ SayAlpha(string);
+ SayDigits(string);
+ SayNumber(digits);
+ SayPhonetic(string);
+ SayUnixTime(unixtime,tz,fmt);
+ SendDTMF(digits,10);
+ SendImage(filename);
+ SendText(text,j);
+ SendURL(URL);
+ Set(a=b);
+ SetAMAFlags();
+ SetCallerID(clid,a);
+ SetCallerPres(allowed_passed_screen);
+ SetCDRUserField(value);
+ SetGlobalVar(var=val);
+ SetMusicOnHold(class);
+ SetTransferCapability(SPEECH);
+ SIPAddHeader(header);
+ SIPDtmfMode(inband,info,rfc);
+ SIPGetHeader(var at headername);
+ SMS(name);
+ SoftHangup(zap/1,a);
+ StackPop();
+ StartMusicOnHold(class);
+ StopMonitor();
+ StopMusicOnHold();
+ StopPlayTones();
+ System(command);
+ TestClient(testid);
+ TestServer();
+ Transfer(zap/1,j);
+ TrySystem(command);
+ TxFAX(filename,caller,debug);
+ UnpauseQueueMember(queuename,iface,j);
+ UserEvent(eventanme,body);
+ Verbose(5,message);
+ VMAuthenticate(mailbox at cont,s);
+ VoiceMail(mailbox at cont,bg()suj);
+ VoiceMailMain(mailbox at cont,pg()s);
+ Wait(2);
+ WaitExten(3,m());
+ WaitForRing(2);
+ WaitForSilence(2,y);
+ WaitMusicOnHold(2);
+ While(expr);
+ Zapateller(answer,5);
+ ZapBarge(channel);
+ ZapRAS(arg);
+ ZapScan(group);
+ ZapSendKeypadFacility();
Propchange: team/murf/AEL2/pbx/ael-test/ael-test2/apptest.ael2
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: team/murf/AEL2/pbx/ael-test/ael-test2/apptest.ael2
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: team/murf/AEL2/pbx/ael-test/ael-test2/apptest.ael2
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: team/murf/AEL2/pbx/ael-test/ael-test2/extensions.ael2
URL: http://svn.digium.com/view/asterisk/team/murf/AEL2/pbx/ael-test/ael-test2/extensions.ael2?rev=20251&view=auto
==============================================================================
--- team/murf/AEL2/pbx/ael-test/ael-test2/extensions.ael2 (added)
+++ team/murf/AEL2/pbx/ael-test/ael-test2/extensions.ael2 Fri Apr 14 20:49:31 2006
@@ -1,0 +1,8 @@
+context test1
+{
+ s =>
+ {
+ #include "apptest.ael2";
+ }
+}
+
Propchange: team/murf/AEL2/pbx/ael-test/ael-test2/extensions.ael2
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: team/murf/AEL2/pbx/ael-test/ael-test2/extensions.ael2
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: team/murf/AEL2/pbx/ael-test/ael-test2/extensions.ael2
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: team/murf/AEL2/pbx/ael-test/ael-test3/extensions.ael2
URL: http://svn.digium.com/view/asterisk/team/murf/AEL2/pbx/ael-test/ael-test3/extensions.ael2?rev=20251&view=auto
==============================================================================
--- team/murf/AEL2/pbx/ael-test/ael-test3/extensions.ael2 (added)
+++ team/murf/AEL2/pbx/ael-test/ael-test3/extensions.ael2 Fri Apr 14 20:49:31 2006
@@ -1,0 +1,1285 @@
+globals
+{
+ static=yes;
+ writeprotect=yes;
+ CONSOLE=Console/dsp; // Console interface for demo
+ IAXINFO=murf:tlhfckoct; // IAXtel username/password
+ FWDNUMBER=544716 ; // your calling number
+ FWDCIDNAME="Steve-Murphy"; // your caller id
+ FWDPASSWORD=tlhfckoct ; // your password
+ FWDRINGS=Zap/6 ; // the phone to ring
+ FWDVMBOX=1 ; // the VM box for this user
+}
+
+macro std-exten( ext , dev )
+{
+ Dial(${dev}/${ext},20);
+ switch(${DIALSTATUS})
+ {
+ case BUSY:
+ Voicemail(b${ext});
+ break;
+ case NOANSWER:
+ Voicemail(u${ext});
+ break;
+ case ANSWER:
+ break;
+ default:
+ Voicemail(u${ext});
+ }
+ catch a {
+ VoiceMailMain(${ext});
+ }
+}
+
+macro std-priv-exten( dev, ext , timeout, opts, torcont, dontcont )
+{
+ Dial(${dev},${timeout},${opts});
+ NoOp(${DIALSTATUS} was chosen);
+ switch(${DIALSTATUS})
+ {
+ case TORTURE:
+ goto ${torcont}|s|begin;
+ break;
+ case DONTCALL:
+ goto ${dontcont}|s|begin;
+ break;
+ case BUSY:
+ Voicemail(b${ext});
+ break;
+ case ANSWER:
+ break;
+ case NOANSWER:
+ Voicemail(u${ext});
+ break;
+ default:
+ Voicemail(u${ext});
+ }
+}
+
+macro fillcidname()
+{
+ if( "${CALLERID(number)}" = "" ) // nothing to work with, quit!!!
+ return;
+ Set(cidn=${DB(cidname/${CALLERID(num)})});
+ if( "${CALLERID(name)}" != "" )
+ {
+ if( ("${cidn}" = "Privacy Manager" & "${CALLERID(name)}" != "Privacy Manager") | "${cidn}" = "" ) // if the entry isn't in the database,
+ // or if an entry exists, and it's "Privacy Manager", empty, (or add other useless possibilities).
+ {
+ Set(DB(cidname/${CALLERID(number)})=${CALLERID(name)}); // then set or override what's in the DB
+ }
+ }
+ // Now, we fill in the callerid info from the incoming entry, if it's stuff worth using
+ // Ignore fundamentally semi-anonymous information from local cell phones
+ // if the db has an entry for this number, and it's not a canned string from a cell phone company
+ if( ( "${cidn}" != "" ) & ( "${CALLERID(name)}" = ""
+ | "${CALLERID(name)}" = "CODY,WY "
+ | "${CALLERID(name)}" = "POWELL,WY "
+ | "${CALLERID(name)}" = "WIRELESS CALLER"
+ | "${CALLERID(name)}" = "SUBSCRIBER,WIRE"
+ | "${CALLERID(name)}" = "CELLULAR ONE"
+ | "${CALLERID(name)}" = "Cellular One Customer"
+ | "${CALLERID(name)}" = "CELLULAR ONE "
+ | "${CALLERID(name)}" = "Privacy Manager"
+ | "${CALLERID(name)}" = "RIVERTON,WY "
+ | "${CALLERID(name)}" = "BASIN,WY "
+ | "${CALLERID(name)}" = "BILLINGS,MT "
+ | "${CALLERID(name)}" = "PROVO,UT "
+ | "${CALLERID(name)}" = "TOLL FREE " ) ) // put stuff in the above, that the phone company tends to put in your callerid,
+ // that you would rather override with DB info
+ // there's no way to guess them all, but you can get the most popular ones...
+ // why cell phones can't do CID like everybody else, ....?
+ {
+ Set(CALLERID(name)=${cidn}); // Override what the phone company provides with what's in the DB for this number.
+ }
+}
+
+macro ciddial(dialnum, lookup, waittime, dialopts, ddev)
+{
+ Set(cidnu=${CALLERID(num)});
+ Set(cidn=${DB(cidname/${lookup})});
+ Set(CALLERID(name)=${cidn});
+ Dial(${ddev}/${dialnum}|${waittime}|${dialopts});
+ if( "${DIALSTATUS}" = "CHANUNAVAIL" )
+ {
+ BackGround(try_voip);
+ CALLERID(num)=3075689101;
+ Dial(SIP/1${lookup}@tctwest,${waittime},${dialopts});
+ if( "${DIALSTATUS}" = "CHANUNAVAIL" )
+ {
+ BackGround(try_cell);
+ CALLERID(num)=${cidnu}; // put the original number back
+ Dial(Zap/2/${lookup},${waittime},${dialopts});
+ }
+ }
+}
+
+macro ciddial3(dialnum, lookup, waittime, dialopts, ddev)
+{
+ Set(cidnu=${CALLERID(num)});
+ Set(cidn=${DB(cidname/${lookup})});
+ Set(CALLERID(name)=${cidn});
+ Dial(${ddev}/${dialnum}|${waittime}|${dialopts});
+ if( "${DIALSTATUS}" = "CHANUNAVAIL" )
+ {
+ BackGround(try_cell);
+ Dial(Zap/2/${lookup},${waittime},${dialopts});
+ }
+}
+
+macro ciddial2(dialnum, lookup, waittime, dialopts, ddev) // give priority to tctwest, then the ZAP in emergencies
+{
+ Set(cidn=${DB(cidname/${lookup})});
+ Set(cidnu=${CALLERID(num)});
+ Set(CALLERID(name)=${cidn});
+ Set(CALLERID(num)=3075689101);
+ Dial(SIP/1${lookup}@tctwest,${waittime},${dialopts});
+ if( "${DIALSTATUS}" = "CHANUNAVAIL" )
+ {
+ Set(CALLERID(num)=${cidnu}); // put the original number back
+ BackGround(try_zap);
+ Dial(${ddev}/${dialnum},${waittime}|${dialopts});
+ if( "${DIALSTATUS}" = "CHANUNAVAIL" )
+ {
+ BackGround(try_cell);
+ Dial(Zap/2/${lookup},${waittime},${dialopts});
+ }
+ }
+}
+
+macro callerid-liar()
+{
+ TrySystem(/usr/bin/play /var/lib/asterisk/sounds/priv-callerintros/LIAR.gsm&);
+ Background(priv-liar); // Script: OOOps! Sorry! I don't allow men with ski masks pulled over their
+ // faces to get in the front door, and unidentified callers won't fair
+ // any better. You entered *MY* phone number. That won't work.
+ // If you are telemarketing, cross me off the list, and don't call again.
+ // If you did this by mistake, forgive my defenses, and call again.
+ // Alternate: (priv-liar2)
+ // Script: You have chosen to try to deceive my system and withold your CallerID,
+ // by entering my own phone number as YOUR CallerID. I find this
+ // offensive because you are being dishonest. I will not do business nor
+ // waste my time talking to anyone who is less than honest and forthcoming.
+ // Take me off your call list and do not call me again.
+ Hangup();
+}
+
+macro callerid-bad()
+{
+ mycid=${CALLERID(num)}:"1([0-9]+)";
+ Set(CALLERID(num)=${mycid});
+ Wait(0);
+}
+
+context privacyManagerFailed {
+ s => {
+ begin:
+ Background(PrivManInstructions); // Script: OOps, that didn't go well. You need to enter *your* area code, and *your* 7 digit
+ // phone number, for a total of 10 digits, or you'll be handed over to the monkeys. Let's
+ // try this again, and hopefully you can get past our front-line defenses!
+ PrivacyManager();
+ if( "${PRIVACYMGRSTATUS}" = "FAILED" )
+ {
+ Background(tt-allbusy);
+ Background(tt-somethingwrong);
+ Background(tt-monkeysintro);
+ Background(tt-monkeys);
+ Background(tt-weasels);
+ Hangup();
+ }
+ else
+ {
+ goto homeline|s|postPriv;
+ }
+ }
+}
+
+// Some comments
+// Some more comments
+
+context homeline {
+ s => {
+ begin:
+ Answer();
+ Set(repeatcount=0);
+ Zapateller(nocallerid);
+ PrivacyManager();
+ if( "${PRIVACYMGRSTATUS}" = "FAILED" )
+ {
+ TrySystem(/usr/bin/play /var/lib/asterisk/sounds/privmanfailed.gsm);
+ &std-priv-exten(Zap/3r1&Zap/5r1,2,25,mtw,telemarket,telemarket);
+ Hangup();
+ return;
+// goto privacyManagerFailed|s|begin;
+ }
+ postPriv:
+ &fillcidname();
+ Set(CONFCIDNA=${CALLERID(name)});
+ Set(CONFCIDNU=${CALLERID(num)});
+ AGI(callall);
+ AGI(submit-announce.agi);
+ if( "${CALLERID(num)}" : "1" )
+ {
+ &callerid-bad();
+ }
+ if( "${CALLERID(num)}" = "3077545675" & "${CALLERID(name)}" : "Privacy Manager" )
+ {
+ &callerid-liar();
+ }
+ TrySystem(/usr/local/bin/who-is-it ${CALLERID(num)} "${CALLERID(name)}"&);
+ Set(lds=${DB(playlds/${CALLERID(num)})});
+ if( "${lds}" = "1" )
+ {
+ SetMusicOnHold(mohlds);
+ }
+ direct=${DB(DirectCall/${CALLERID(num)})};
+ if( "${direct}" != "" & ${direct} != 0 )
+ {
+ verbose(direct is XXX#${direct}XXXX);
+ Playback(greetings/direct); // Welcome to the Murphy residence. This system will automatically try to connect you to...
+ Playback(/var/spool/asterisk/voicemail/default/${direct}/greet);
+ TrySystem(/usr/bin/play /var/lib/asterisk/sounds/call-for.gsm);
+ TrySystem(/usr/bin/play /var/spool/asterisk/voicemail/default/${direct}/greet.wav&);
+ switch(${direct})
+ {
+ case 1: //Steve
+ &std-priv-exten(Zap/6r3&Sip/murf,1,25,mpA(beep)tw,telemarket,telemarket);
+ goto s|loopback;
+ case 2: //Sonya
+ &std-priv-exten(Zap/3r1&Zap/5r1,2,25,mtw,telemarket,telemarket);
+ goto s|loopback;
+ default: // all the kids
+ Set(z=${direct}-2);
+ goto homeline-kids|${z}|1;
+ }
+ }
+ loopback:
+ ifTime(*|*|20-25|dec)
+ {
+ Playback(greetings/christmas);
+ }
+ else ifTime(*|*|31|dec)
+ {
+ Playback(greetings/newyear);
+ }
+ else ifTime(*|*|1|jan)
+ {
+ Playback(greetings/newyear);
+ }
+ else ifTime(*|*|14|feb)
+ {
+ Playback(greetings/valentines);
+ }
+ else ifTime(*|*|17|mar)
+ {
+ Playback(greetings/stPat);
+ }
+ else ifTime(*|*|31|oct)
+ {
+ Playback(greetings/halloween);
+ }
+ else ifTime(*|mon|15-21|jan)
+ {
+ Playback(greetings/mlkDay);
+ }
+ else ifTime(*|thu|22-28|nov)
+ {
+ Playback(greetings/thanksgiving);
+ }
+ else ifTime(*|mon|25-31|may)
+ {
+ Playback(greetings/memorial);
+ }
+ else ifTime(*|mon|1-7|sep)
+ {
+ Playback(greetings/labor);
+ }
+ else ifTime(*|mon|15-21|feb)
+ {
+ Playback(greetings/president);
+ }
+ else ifTime(*|sun|8-14|may)
+ {
+ Playback(greetings/mothers);
+ }
+ else ifTime(*|sun|15-21|jun)
+ {
+ Playback(greetings/fathers);
+ }
+ else
+ {
+ Playback(greetings/hello); // None of the above? Just a plain hello will do
+ }
+ Background(murphy-homeline-intro1); // Script: Hello-- Welcome to the Murphy's! If you already know what
+ // option you want, you don't have to wait for this entire spiel-- just
+ // have at it.
+ // If you are calling because this number is on a list of some sort, dial 6.
+ // If you want Sonya, dial 1.
+ // If you want one of the kids, dial 2.
+ // If you want Steve, dial 3.
+ // to play with your introduction, dial 5.
+ // If we don't seem to be giving you the time of day, try 7.
+ // Have a good day!
+
+ }
+ 1 => { // Sonya
+ TrySystem(/usr/bin/play /var/lib/asterisk/sounds/call-for.gsm);
+ TrySystem(/usr/bin/play /var/spool/asterisk/voicemail/default/2/greet.wav&);
+ &std-priv-exten(Zap/3r1&Zap/5r1,2,25,mtw,telemarket,telemarket);
+ goto s|loopback;
+ }
+ 2 => { // Kids
+ goto homeline-kids|s|begin;
+ }
+ 21 => {
+ Dial(IAX2/seaniax,20,T);
+ }
+ 3 => { // Steve
+ &std-priv-exten(Zap/6r3&Sip/murf,1,25,mpA(beep)tw,telemarket,telemarket);
+ goto s|loopback;
+ }
+ 4 => { // Voicemail
+ VoicemailMain();
+ goto s|loopback;
+ }
+ 5 => { // play with intro
+ goto home-introduction|s|begin;
+ }
+ 6 => { // Telemarketers
+ goto telemarket|s|begin;
+ }
+ 7 => { // time of day, riddle
+ agi(tts-riddle.agi);
+ Background(gsm/what-time-it-is2);
+ SayUnixTime();
+ goto s|loopback;
+ }
+ 792 => { // Page All
+ goto pageall|s|begin;
+ }
+ 793 => { // check the tone recognition
+ Read(zz,,0,,1,0);
+ SayDigits(${zz});
+ }
+ t => {
+ Set(repeatcount=${repeatcount} + 1);
+ if( ${repeatcount} < 3 )
+ {
+ goto s|loopback; // just loopback isn't enough
+ }
+ Hangup();
+ }
+ i => {
+ Background(invalid);
+ goto s|loopback;
+ }
+ o => {
+ Congestion();
+ }
+ fax => {
+ Dial(Zap/4);
+ }
+}
+
+// Some comments
+// Some more comments
+
+context pageall {
+ s => {
+ begin:
+ AGI(callall);
+ MeetMe(5555,dtqp);
+ MeetMeAdmin(5555,K);
+ Hangup();
+ }
+
+ h => {
+ begin:
+ MeetMeAdmin(5555,K);
+ Background(conf-muted);
+ Hangup();
+ }
+}
+
+// Some comments
+// Some more comments
+
+context add-to-conference {
+ start => {
+ NoCDR();
+ MeetMe(5555,dmqp);
+ }
+ h => {
+ Hangup();
+ }
+}
+
+context home-introduction {
+ s => {
+ begin:
+ Background(intro-options); // Script: To hear your Introduction, dial 1.
+ // to record a new introduction, dial 2.
+ // to return to the main menu, dial 3.
+ // to hear what this is all about, dial 4.
+ }
+ 1 => {
+ Playback(priv-callerintros/${CALLERID(num)});
+ goto s|begin;
+ }
+ 2 => {
+ goto home-introduction-record|s|begin;
+ }
+ 3 => {
+ goto homeline|s|loopback;
+ }
+ 4 => {
+ Playback(intro-intro); // Script:
+ // This may seem a little strange, but it really is a neat
+ // thing, both for you and for us. I've taped a short introduction
+ // for many of the folks who normally call us. Using the Caller ID
+ // from each incoming call, the system plays the introduction
+ // for that phone number over a speaker, just as the call comes in.
+ // This helps the folks
+ // here in the house more quickly determine who is calling.
+ // and gets the right ones to gravitate to the phone.
+ // You can listen to, and record a new intro for your phone number
+ // using this menu.
+ goto s|begin;
+ }
+ t => {
+ goto s|begin;
+ }
+ i => {
+ Background(invalid);
+ goto s|begin;
+ }
+ o => {
+ goto s|begin;
+ }
+}
+
+context home-introduction-record {
+ s => {
+ begin:
+ Background(intro-record-choices); // Script:
+ // If you want some advice about recording your
+ // introduction, dial 1.
+ // otherwise, dial 2, and introduce yourself after
+ // the beep.
+ }
+ 1 => {
+ Playback(intro-record);
+ // Your introduction should be short and sweet and crisp.
+ // Your introduction will be limited to 10 seconds.
+ // This is NOT meant to be a voice mail message, so
+ // please, don't say anything about why you are calling.
+ // After we are done making the recording, your introduction
+ // will be saved for playback.
+ // If you are the only person that would call from this number,
+ // please state your name. Otherwise, state your business
+ // or residence name instead. For instance, if you are
+ // friend of the family, say, Olie McPherson, and both
+ // you and your kids might call here a lot, you might
+ // say: "This is the distinguished Olie McPherson Residence!"
+ // If you are the only person calling, you might say this:
+ // "This is the illustrious Kermit McFrog! Pick up the Phone, someone!!"
+ // If you are calling from a business, you might pronounce a more sedate introduction,like,
+ // "Fritz from McDonalds calling.", or perhaps the more original introduction:
+ // "John, from the Park County Morgue. You stab 'em, we slab 'em!".
+ // Just one caution: the kids will hear what you record every time
+ // you call. So watch your language!
+ // I will begin recording after the tone.
+ // When you are done, hit the # key. Gather your thoughts and get
+ // ready. Remember, the # key will end the recording, and play back
+ // your intro. Good Luck, and Thank you!"
+ goto 2|begin;
+ }
+ 2 => {
+ begin:
+ Background(intro-start);
+ // OK, here we go! After the beep, please give your introduction.
+ Background(beep);
+ Record(priv-callerintros/${CALLERID(num)}:gsm,3);
+ Background(priv-callerintros/${CALLERID(num)});
+ goto home-introduction|s|begin;
+ }
+ t => {
+ goto s|begin;
+ }
+ i => {
+ Background(invalid);
+ goto s|begin;
+ }
+ o => {
+ goto s|begin;
+ }
+}
+
+context homeline-kids {
+ s => {
+ begin:
+ Background(murphy-homeline-kids); // Which Kid? 1=Sean, 2:Eric, 3:Ryan, 4:Kyle, 5:Amber, 6:Alex, 7:Neal
+ }
+ 1 => { // SEAN
+ TrySystem(/usr/bin/play /var/lib/asterisk/sounds/call-for.gsm);
+ TrySystem(/usr/bin/play /var/spool/asterisk/voicemail/default/3/greet.wav&);
+ // &std-priv-exten(Zap/3r2&Zap/5r2,3,35,mtw,telemarket,telemarket);
+ &std-priv-exten(IAX2/seaniax&Zap/5r2,3,35,mtw,telemarket,telemarket);
+ goto homeline|s|loopback;
+ }
+ 2 => { // ERIC
+ TrySystem(/usr/bin/play /var/lib/asterisk/sounds/call-for.gsm);
+ TrySystem(/usr/bin/play /var/spool/asterisk/voicemail/default/4/greet.wav&);
+ Voicemail(u4);
+ goto homeline|s|loopback;
+
+ // SetMusicOnHold(erics);
+ // TrySystem(/usr/bin/play /var/lib/asterisk/sounds/call-for.gsm);
+ // TrySystem(/usr/bin/play /var/spool/asterisk/voicemail/default/4/greet.wav&);
+ // &std-priv-exten(Zap/3r2&Zap/5r2,4,35,mtw,telemarket,telemarket);
+ // goto homeline|s|loopback;
+ }
+ 3 => { // RYAN
+ TrySystem(/usr/bin/play /var/lib/asterisk/sounds/call-for.gsm);
+ TrySystem(/usr/bin/play /var/spool/asterisk/voicemail/default/5/greet.wav&);
+ &std-priv-exten(Zap/3r2&Zap/5r2,5,35,mtw,telemarket,telemarket);
+ goto homeline|s|loopback;
+ }
+ 4 => { // KYLE
+ TrySystem(/usr/bin/play /var/lib/asterisk/sounds/call-for.gsm);
+ TrySystem(/usr/bin/play /var/spool/asterisk/voicemail/default/6/greet.wav&);
+ &std-priv-exten(Zap/3r2&Zap/5r2,6,35,mtw,telemarket,telemarket);
+ goto homeline|s|loopback;
+ }
+ 5 => {
+ TrySystem(/usr/bin/play /var/lib/asterisk/sounds/call-for.gsm);
+ TrySystem(/usr/bin/play /var/spool/asterisk/voicemail/default/7/greet.wav&);
+ &std-priv-exten(Zap/3r2&Zap/5r2,7,35,mtw,telemarket,telemarket);
+ goto homeline|s|loopback;
+
+ }
+ 6 => {
+ TrySystem(/usr/bin/play /var/lib/asterisk/sounds/call-for.gsm);
+ TrySystem(/usr/bin/play /var/spool/asterisk/voicemail/default/8/greet.wav&);
+ &std-priv-exten(Zap/3r2&Zap/5r2,8,35,mtw,telemarket,telemarket);
+ goto homeline|s|loopback;
+ }
+ 7 => {
+ TrySystem(/usr/bin/play /var/lib/asterisk/sounds/call-for.gsm);
+ TrySystem(/usr/bin/play /var/spool/asterisk/voicemail/default/9/greet.wav&);
+ &std-priv-exten(Zap/3r2&Zap/5r2,9,35,mtw,telemarket,telemarket);
+ goto homeline|s|loopback;
+ }
+ t => {
+ goto s|begin;
+ }
+ i => {
+ Background(invalid);
+ goto s|begin;
+ }
+ o => {
+ goto s|begin;
+ }
+}
+
+context voipworkline {
+ s => {
+ begin:
+ Answer();
+ TrySystem(/usr/local/bin/who-is-it ${CALLERID(num)} "${CALLERID(name)}"&);
+ goto workline|s|loopback;
+ }
+ 3075689101 => {
+ Answer();
+ TrySystem(/usr/local/bin/who-is-it ${CALLERID(num)} "${CALLERID(name)}"&);
+ goto workline|s|loopback;
+ }
+}
+
+context workline {
+ s => {
+ begin:
+ Answer();
+ Wait(1);
+ Set(repeatcount=0);
+ Zapateller(nocallerid);
+// PrivacyManager();
+// if( "${PRIVACYMGRSTATUS}" = "FAILED" )
+// {
+// goto privacyManagerFailed|s|begin;
+// }
+ &fillcidname();
+ TrySystem(/usr/local/bin/who-is-it ${CALLERID(num)} "${CALLERID(name)}"&);
+ loopback:
+ Background(greetings/greeting); //script: Hello
+ Background(murphy-office-intro1); //script: welcome to Steve Murphy's office. If you are dialing
+ // this number because it was on a calling list of any sort, dial 6.
+ // Otherwise, dial 1, and hopefully, you will reach Steve.
+ }
+ 1 => {
+ TrySystem(/usr/bin/play /var/lib/asterisk/sounds/call-for.gsm);
+ TrySystem(/usr/bin/play /var/spool/asterisk/voicemail/default/1/greet.wav&);
+
+ &std-priv-exten(Zap/6&Sip/murf,1,30,mtw,telemarket,telemarket);
+ goto s|loopback;
+ }
+ 4 => {
+ VoicemailMain();
+ goto s|loopback;
+ }
+ 6 => {
+ goto telemarket|s|begin;
+ }
+ 793 => { // check the tone recognition
+ Read(zz,,0,,1,0);
+ SayDigits(${zz});
+ }
+ t => {
+ repeatcount=${repeatcount} + 1;
+ if( ${repeatcount} < 3 )
+ {
+ goto s|loopback; // just loopback isn't enough
+ }
+ Hangup();
+ }
+ i => {
+ Background(invalid);
+ goto s|loopback;
+ }
+ o => {
+ Congestion();
+ }
+ fax => {
+ Answer();
+ Dial(Zap/4);
+ }
+}
+
+context dialFWD {
+ ignorepat => 8;
+ ignorepat => 9;
+ _83. => {
+ Set(CALLERID(name)=${FWDCIDNAME});
+ Dial(IAX2/${FWDNUMBER}:${FWDPASSWORD}@iax2.fwdnet.net/${EXTEN:2},60,r);
+ Congestion();
+ }
+ _82NXX => {
+ Set(CALLERID(name)=${FWDCIDNAME});
+ Dial(IAX2/${FWDNUMBER}:${FWDPASSWORD}@iax2.fwdnet.net/${EXTEN:2},60,r);
+ Congestion();
+ }
+ _92NXX => {
+ Set(CALLERID(name)=${FWDCIDNAME});
+ Dial(IAX2/${FWDNUMBER}:${FWDPASSWORD}@iax2.fwdnet.net/${EXTEN:2},60,r);
+ Congestion();
+ }
+}
+
+context dialiaxtel {
+ ignorepat => 8;
+ ignorepat => 9;
+ _81700NXXXXXX => {
+ Dial(IAX2/murf:tlhfckoct at iaxtel.com/${EXTEN:1}@iaxtel);
+ }
+ _81800NXXXXXX => {
+ Dial(IAX2/murf:tlhfckoct at iaxtel.com/${EXTEN:1}@iaxtel);
+ }
+ _91700NXXXXXX => {
+ Dial(IAX2/murf:tlhfckoct at iaxtel.com/${EXTEN:1}@iaxtel);
+ }
+ _91800NXXXXXX => {
+ Dial(IAX2/murf:tlhfckoct at iaxtel.com/${EXTEN:1}@iaxtel);
+ }
+
+}
+
+context dialgoiax {
+ ignorepat => 9;
+ _93. => {
+ Set(CALLERID(name)="Steve Murphy");
+ Dial(IAX2/878201000178:zippety-do-dah at server1.goiax.com/${EXTEN:2},60,r);
+ Congestion();
+ }
+
+}
+
+context homefirst {
+ ignorepat => 9;
+ _91NXXNXXXXXX => {
+ &ciddial(${EXTEN:1},${EXTEN:2},30,TW,Zap/1);
+ }
+ _9754XXXX => {
+ &ciddial(${EXTEN:1},307${EXTEN:1},30,TW,Zap/1);
+ }
+ _9574XXXX => {
+ &ciddial(${EXTEN:1},307${EXTEN:1},30,TW,Zap/1);
+ }
+ _9202XXXX => {
+ &ciddial(${EXTEN:1},307${EXTEN:1},30,TW,Zap/1);
+ }
+ _9219XXXX => {
+ &ciddial(${EXTEN:1},307${EXTEN:1},30,TW,Zap/1);
+ }
+ _9254XXXX => {
+ &ciddial(${EXTEN:1},307${EXTEN:1},30,TW,Zap/1);
+ }
+ _9716XXXX => {
+ &ciddial(${EXTEN:1},307${EXTEN:1},30,TW,Zap/1);
+ }
+ _9NXXXXXX => {
+ &ciddial(1307${EXTEN:1},307${EXTEN:1},30,TW,Zap/1);
+ }
+ _9011. => {
+ &ciddial(${EXTEN:1},${EXTEN:1},30,TW,Zap/1);
+ }
+ _9911 => {
+ Dial(Zap/1/911,30,T);
+ }
+ _9411 => {
+ Dial(Zap/1/411,30,T);
+ }
+}
+
+context workfirst {
+ ignorepat => 9;
+ _91NXXNXXXXXX => {
+ &ciddial2(${EXTEN:1},${EXTEN:2},30,TW,Zap/1);
+ }
+ _9754XXXX => {
+ &ciddial2(${EXTEN:1},307${EXTEN:1},30,TW,Zap/1);
+ }
+ _9574XXXX => {
+ &ciddial2(${EXTEN:1},307${EXTEN:1},30,TW,Zap/1);
+ }
+ _9202XXXX => {
+ &ciddial2(${EXTEN:1},307${EXTEN:1},30,TW,Zap/1);
+ }
+ _9219XXXX => {
+ &ciddial2(${EXTEN:1},307${EXTEN:1},30,TW,Zap/1);
+ }
+ _9254XXXX => {
+ &ciddial2(${EXTEN:1},307${EXTEN:1},30,TW,Zap/1);
+ }
+ _9716XXXX => {
+ &ciddial2(${EXTEN:1},307${EXTEN:1},30,TW,Zap/1);
+ }
+ _9NXXXXXX => {
+ &ciddial2(1307${EXTEN:1},307${EXTEN:1},30,TW,Zap/1);
+ }
+ _9911 => {
+ Dial(Zap/1/911,30,T);
+ }
+ _9411 => {
+ Dial(Zap/1/411,30,T);
+ }
+}
+
+context force_cell {
+ ignorepat => 8;
+ _81NXXNXXXXXX => {
+ &ciddial(${EXTEN:1}#,${EXTEN:2},30,TW,Zap/2);
+ }
+ _8754XXXX => {
+ &ciddial(${EXTEN:1}#,307${EXTEN:1},30,TW,Zap/2);
+ }
+ _8574XXXX => {
+ &ciddial(${EXTEN:1}#,307${EXTEN:1},30,TW,Zap/2);
+ }
+ _8202XXXX => {
+ &ciddial(${EXTEN:1}#,307${EXTEN:1},30,TW,Zap/2);
+ }
+ _8219XXXX => {
+ &ciddial(${EXTEN:1}#,307${EXTEN:1},30,TW,Zap/2);
+ }
+ _8254XXXX => {
+ &ciddial(${EXTEN:1}#,307${EXTEN:1},30,TW,Zap/2);
+ }
+ _8716XXXX => {
+ &ciddial(${EXTEN:1}#,307${EXTEN:1},30,TW,Zap/2);
+ }
+ _8NXXXXXX => {
+ &ciddial(${EXTEN:1}#,307${EXTEN:1},30,TW,Zap/2);
+ }
+ _8911 => {
+ Dial(Zap/1/911|30|T);
+ }
+ _8411 => {
+ Dial(Zap/1/411|30|T);
+ }
+}
+
+context force_home {
+ ignorepat => 8;
+ _81NXXNXXXXXX => {
+ &ciddial3(${EXTEN:1}#,${EXTEN:2},30,TW,Zap/1);
+ }
+ _8754XXXX => {
+ &ciddial3(${EXTEN:1}#,307${EXTEN:1},30,TW,Zap/1);
+ }
+ _8574XXXX => {
+ &ciddial3(${EXTEN:1}#,307${EXTEN:1},30,TW,Zap/1);
+ }
+ _8202XXXX => {
+ &ciddial3(${EXTEN:1}#,307${EXTEN:1},30,TW,Zap/1);
+ }
+ _8219XXXX => {
+ &ciddial3(${EXTEN:1}#,307${EXTEN:1},30,TW,Zap/1);
+ }
+ _8254XXXX => {
+ &ciddial3(${EXTEN:1}#,307${EXTEN:1},30,TW,Zap/1);
+ }
+ _8716XXXX => {
+ &ciddial3(${EXTEN:1}#,307${EXTEN:1},30,TW,Zap/1);
+ }
+ _8NXXXXXX => {
+ &ciddial3(1307${EXTEN:1}#,307${EXTEN:1},30,TW,Zap/1);
+ }
+ _8911 => {
+ Dial(Zap/1/911|30|T);
+ }
+ _8411 => {
+ Dial(Zap/1/411|30|T);
+ }
+}
+
+context homeext {
+ ignorepat => 8;
+ ignorepat => 9;
+ includes {
+ parkedcalls;
+ homefirst;
+ force_cell;
+ }
+ s => {
+ loopback:
+ Wait(0);
+ }
+ 1 => {
+ &std-priv-exten(Zap/3&Zap/5,2,35,mtw,telemarket,telemarket);
+ goto s|loopback;
+ }
+ 2 => {
+ &std-priv-exten(Zap/6&Zap/5,1,35,mpA(beep3)Tt,telemarket,telemarket);
+ goto s|loopback;
+ }
+ 4 => {
+ VoicemailMain();
+ }
+ 5 => {
+ Record(recording:gsm);
+ Background(recording);
+ }
+ 6 => {
+ Background(recording);
+ }
+ 760 => {
+ DateTime();
+ goto s|loopback;
+ }
+ 761 => {
+ Record(announcement:gsm);
+ TrySystem(/usr/bin/play /var/lib/asterisk/sounds/announcement.gsm&);
+ goto s|loopback;
+ }
+ 762 => {
+ agi(tts-riddle.agi);
+ Background(gsm/what-time-it-is2);
+ SayUnixTime();
+ goto s|loopback;
+ }
+ 763 => {
+ Set(CALLERID(num)=);
+ Dial(Zap/6r3,35,mptA(beep3)); //results: it should ALWAYS ask for an intro; the intro should not be left behind
+ Hangup();
+ }
+ 764 => {
+ Set(CALLERID(num)=);
+ Dial(Zap/6r3,35,mptnA(beep3)); //results: Don't save the intro; shouldn't anyway if no callerid
+ Hangup();
+ }
+ 765 => {
+ Set(CALLERID(num)=);
+ Dial(Zap/6r3,35,mptNA(beep3)); //results: Don't screen if there's CALLERID; it should screen the call.
+ Hangup();
+ }
+ 766 => {
+ Dial(Zap/6r3,35,mptNA(beep3)); //results: Don't screen if there's CALLERID; it should screen the call.
+ Hangup();
+ }
+ 767 => {
+ Dial(Zap/6r3,35,mptnA(beep3)); //results: Don't save the intro; the interesting case, because callerID should be present.
+ Hangup();
+ }
+ 769 => {
+ Playtones(dial);
+ Wait(2);
+ Playtones(busy);
+ Wait(2);
+ Playtones(ring);
+ Wait(2);
+ Playtones(congestion);
+ Wait(2);
+ Playtones(callwaiting);
+ Wait(2);
+ Playtones(dialrecall);
+ Wait(2);
+ Playtones(record);
+ Wait(2);
+ Playtones(info);
+ Wait(5);
+ Hangup();
+ }
+ 790 => {
+ MeetMe(790,p);
+ }
+ 792 => {
+ goto pageall|s|begin;
+ }
+ 795 => {
+ AGI(wakeup.agi);Congestion();
+ }
+ 544716 => { // Incoming call from FWD
+ TrySystem(/usr/local/bin/who-is-it ${CALLERID(num)} "${CALLERID(name)}"&);
+ goto s|loopback;
+ }
+
+ i => {
+ Background(invalid);
+ goto s|loopback;
+ }
+ o => {
+ goto s|loopback;
+ }
+ t => {
+ Congestion();
+ }
+}
+
+context fromvmhome {
+ 1 => {
+ Dial(Zap/6&Sip/murf|20|Tt);
+ }
+ 2 => {
+ Dial(Zap/3&Zap/5|20|Tt);
+ }
+ _307202XXXX => {
+ &ciddial(1${EXTEN:3},${EXTEN},30,TW,Zap/1);
+ }
[... 878 lines stripped ...]
More information about the asterisk-commits
mailing list