diff options
Diffstat (limited to 'pbx/ael/ael-test/ael-test7/extensions.ael')
-rw-r--r-- | pbx/ael/ael-test/ael-test7/extensions.ael | 460 |
1 files changed, 0 insertions, 460 deletions
diff --git a/pbx/ael/ael-test/ael-test7/extensions.ael b/pbx/ael/ael-test/ael-test7/extensions.ael deleted file mode 100644 index 52f9a077a..000000000 --- a/pbx/ael/ael-test/ael-test7/extensions.ael +++ /dev/null @@ -1,460 +0,0 @@ -// -// Example AEL config file -// - -globals { - CONSOLE=Console/dsp; - TRUNKMSD=0; //MSD digits to strip (usually 1 or 0) - TRUNCPROTO=SIP; - TRUNK=sunrocket; - PSTN=pstn-spa3k; - PSTNPROTO=SIP; - TARIOPROTO=SIP; - TARIO=tario; - CPPROTO=SIP; - CPACKET1=callpacket1; - CPACKET2=callpacket2; - SELLVOIP=1577040314; - SVPROTO=IAX2; -}; - - -macro stdexten (ext , dev ) { - PrivacyManager(3,10); - if("${PRIVACYMGRSTATUS}" = "FAILED") { - Playback(vm-goodbye); - Hangup(); - }; - - AGI(calleridnamelookup.agi); - Dial(${dev}/${ext},30,t); - switch(${DIALSTATUS}) { - case BUSY: - Voicemail(b${ext}); - break; - default: - Voicemail(u${ext}); - }; - catch a { - VoiceMailMain(${ext}); - return; - }; -}; - -macro announce_minutes(minutes) { - Playback(vm-youhave); - SayNumber(${minutes}); - Playback(vm-minutes); - Wait(1); -}; - -// Check if given provider allows only some free minutes per month -// and announce number of free minutes remaining. -// The limit will be reset monthly by cron job. -// The macro sets the following variables: -// MINUTES_LIMIT - number of free minutes per month -// MINUTES_USED - number of free minutes used in the current month -// PROVIDER - provider name - -macro checkanddial(prov,proto,ext,arg1,arg2,arg3,arg4) { - Set(MINUTES_LIMIT=0); - Set(MINUTES_USED=0); - Set(PROVIDER=${prov}); - - if(${DB_EXISTS(Provider/${prov}/used)}) - Set(MINUTES_USED=${DB_RESULT}); - - country_c = 0; - switch(${LEN(${ext})}) { //assuming all international numbers are 11 digits long. - case 10: //NXXNXXXXXX - country_c=1; - break; - case 11: //XNXXNXXXXXX - country_c = ${ext:0:1}; - break; - default: //011XNXXNXXXXXX - country_c = ${ext:3:1}; - break; - }; - - if("${prov}" = "${TRUNK}" & ${country_c} != 1) { // SunRocket international calls - Set(MINUTES_LIMIT=${DB(Provider/${prov}/limit)}); - &announce_minutes($[${MINUTES_LIMIT} - ${MINUTES_USED}]); - }; - if("${prov}" = "${CPACKET1}" | "${prov}" = "${CPACKET2}") { // Callpacket has a limit on domestic calls - Set(MINUTES_LIMIT=${DB(Provider/${prov}/limit)}); - &announce_minutes($[${MINUTES_LIMIT} - ${MINUTES_USED}]); - }; - DeadAGI(dial.agi,${proto}/${ext}@${prov},${arg1},${arg2},${arg3},${arg4}); -}; - -macro trunkdial(ext) { // Dial sunrocket and set correct collerid - if("${CALLERID(number)}" = "1") { - Set(CALLERID(number)=7322271653); - } else { - Set(CALLERID(number)=7326260100); - }; - Set(CALLERID(name)=Sergey Okhapkin); - &checkanddial(${TRUNK},${TRUNCPROTO},${ext},60,T); - Hangup; -}; - -macro checklocal(ext) { // lookup the number in DB and call the number via pstn or sunrocket - Set(AREACODE=${ext:0:3}); - Set(EXCHANGE=${ext:3:3}); - Set(IS_LOCAL=${DB_EXISTS(localnum/${AREACODE}/${EXCHANGE})}); - if(${IS_LOCAL}) { - &checkanddial(${PSTN},${PSTNPROTO},${ext},60,T); - if ("${DIALSTATUS}" = "BUSY") - &trunkdial(${ext}); - } else - &trunkdial(${ext}); -}; - -macro autodial(ext) { // Find Least Cost Route - LCDial(${ext},60,T); - if("${DIALSTATUS}" = "NOPROVIDER") - Playback(invalid); - Hangup(); -}; - -context default { // Calls to us - s => { - Wait(1); - Answer; -start: - Set(TIMEOUT(digit)=3); - Set(TIMEOUT(response)=10); -repeat: - for (x=0; ${x} < 5; x=${x} + 1) { - Background(home/greeting); - WaitExten(); - }; - }; - t => jump *; - i => { // invalid extension - Playback(invalid); - goto s|repeat; - }; - _* => { - Playback(vm-goodbye); - Wait(1); - Hangup; - }; - 1 => &stdexten(1,SIP/1); - 2 => &stdexten(2,SIP/2); - 3 => &stdexten(3,SIP/3); - - 2271653 => jump 1; - 7322271653 => jump 1; - 17322271653 => jump 1; - - 6260100 => jump 2; - 7326260100 => jump 2; - 17326260100 => jump 2; - 8058701100 => jump 2; - 3103622835 => jump 2; - sos => jump 2; - 1400898 => jump 2; - - 6260101 => jump s; - 7326260101 => jump s; - 17326260101 => jump s; - - 2271677 => jump 3; - 7322271677 => jump 3; - 17322271677 => jump 3; - galka => jump 3; - 911 => Dial(${PSTNPROTO}/911@${PSTN},60,); - 380 => Dial(SIP/topspeen@212.40.38.70,60,T); - - // Fun stuff - 100 => { - SayUnixTime(); - goto s|start; - }; - 101 => { // Voicemail - VoicemailMain(${CALLERID(number)}); - Hangup; - }; - 102 => MusicOnHold(); -// 103 => { -// Wait(1); -//start: -// Read(NUMBER,vm-enter-num-to-call); -// LCDial(${NUMBER},T); -// goto start; -// }; - 105 => jump s@phrase-menu; - 7312 => { - ForkCDR; - Set(CALLERID(name)=Sergey Okhapkin); - Set(CALLERID(number)=7326260100); - DISA(1111|home); - }; -}; - -context goiax { - s => { - Answer(); - Ringing(); - Wait(1); -start: - Read(NUMBER,vm-enter-num-to-call); - Set(CALLERID(name)=Central NJ); - Dial(IAX2/14301@fwdOUT/q${NUMBER},60,T); - goto start; - }; - -}; - -context phrase-menu { - - s => { - Answer; // Answer the line - TIMEOUT(digit)=2; // Set Digit Timeout to 5 seconds - TIMEOUT(response)=10; // Set Response Timeout to 10 seconds - BackGround(custom/phrase-menu); // Play main menu. - }; - 1 => { // Phrase Recording - Wait(1); - Read(PHRASEID|custom/enter-phrase-num); - Wait(2); // give yourself 2 secs to take a breath and wait for beep - Record(custom/${PHRASEID}:gsm); - Wait(2); - Playback(custom/${PHRASEID}); - Wait(1); - jump s; - }; - 2 => { // Phrase review - Wait(1); - Read(PHRASEID|custom/enter-phrase-num); - Wait(1); - Playback(custom/${PHRASEID}); - Wait(1); - jump s; - }; - t => Hangup; - i => { - Playback(custom/invalid-option); - jump s; - }; -}; - -context outbound { - // North America seven-, ten- and eleven digits - _NXXXXXX => &autodial(1732${EXTEN}); - _NXXNXXXXXX => &autodial(1${EXTEN}); - _ZNXXNXXXXX. => &autodial(${EXTEN}); - // Toll free numbers via PSTN -// _1800NXXXXXX => &checkanddial(${PSTN},${PSTNPROTO},${EXTEN},60,T); -// _1888NXXXXXX => &checkanddial(${PSTN},${PSTNPROTO},${EXTEN},60,T); -// _1877NXXXXXX => &checkanddial(${PSTN},${PSTNPROTO},${EXTEN},60,T); -// _1866NXXXXXX => &checkanddial(${PSTN},${PSTNPROTO},${EXTEN},60,T); - - _011. => { //International context accessed through trunk - &trunkdial(${EXTEN}); - }; - _012. => { //fwdOUT - Set(CALLERID(name)=Central NJ); - Dial(IAX2/14301@fwdOUT/q${EXTEN:3},60,T); - }; - _013X. => { //NECC - Dial(${PSTNPROTO}/011${EXTEN:3}@${PSTN},60,T); - }; - _0131. => { //NECC to US - Dial(${PSTNPROTO}/${EXTEN:3}@${PSTN},60,T); - }; - _014. => { //TARIO by SIP ID - Set(CALLERID(name)=Sergey Okhapkin); - Set(CALLERID(number)=1400898); - Dial(${TARIOPROTO}/${EXTEN:3}@${TARIO},60,T); - }; - _0157. => { //TARIO outbound Russia - Set(CALLERID(name)=Sergey Okhapkin); - Set(CALLERID(number)=1400898); - Dial(${TARIOPROTO}/8${EXTEN:4}@${TARIO},60,T); - }; -// _015. => { //TARIO outbound international -// CALLERID(name)="Sergey Okhapkin"; -// CALLERID(number)=1400898; -// Dial(${TARIOPROTO}/810${EXTEN:3}@${TARIO},60,T); -// }; - _0161NXXNXXXXXX => { //Callpacket outbound USA/Canada - &checkanddial(${CPACKET1},${CPPROTO},${EXTEN:3},60,T); - }; - _0171NXXNXXXXXX => { //Callpacket outbound USA/Canada - &checkanddial(${CPACKET2},${CPPROTO},${EXTEN:3},60,T); - }; - _0181NXXNXXXXXX => { //sellvoip outbound USA/Canada - Dial(${SVPROTO}/${SELLVOIP}@${SELLVOIP}/${EXTEN:3},60,T); - }; - _019. => { //Voipbuster - Dial(IAX2/sokhapkin@voipbuster/00${EXTEN:3},60,T); - }; -}; - -context home { //calls from us - includes { - default; - outbound; - }; -}; - -context sunrocket-in { - 7322271653 => jump s; - 7326260100 => jump 2@default; - s => { - if("${CALLERID(number)}" = "sunrocketcom") - Set(CALLERID(number)=); - switch(${CALLERID(RDNIS)}) { - case 7326260100: - jump 2@default; - break; - case 7326260101: - jump s@default; - break; - default: - jump 1@default; - break; - }; - }; -}; - -context pstn-in { - 3 => { - if ("${CALLERID(number)}" = "7322271677") - Set(CALLERID(number)=); - jump 3@default; - }; -}; - -context tario.net-in { - _X. => { - Set(CALLERID(name)=); - if("${CALLERID(number):-11:1}" = "8") - Set(CALLERID(number)=7${CALLERID(number):1}); - if("${SIP_HEADER(To)}" = "<sip:2271677@sipnet.ru>") { - jump 3@default; - } else if("${SIP_HEADER(To)}" = "<sip:2271653@sipnet.ru>") { - jump 1@default; - } else - jump 2@default; - }; -}; - -context from-callpacket { - 8058701100 => jump 2@default; - 3103622835 => { - Answer; - Ringing; - Wait(10); - Voicemail(b3103622835); - Hangup; - }; - a => Hangup; -}; - -context fromfwdOUT { // make sure we only accept US and Canada calls, limit to 30 minutes - includes { - fromfwdOUT-catchbad; - fromfwdOUT-isgood; - fromfwdOUT-catchall; - }; -}; - -context fromfwdOUT-isgood { - _17326260100 => jump 2@default; - _17326260101 => jump s@default; - _17322271653 => jump 1@default; - _17322271677 => jump 3@default; - _1NXXNXXXXXX => { - Set(CALLERID(name)=Sergey Okhapkin); -// Set(CALLERID(number)=7326260100); -// Dial(${TRUNCPROTO}/*67${EXTEN:${TRUNKMSD}}@${TRUNK},60,,L(1800000:60000)); - Dial(${CPPROTO}/${EXTEN}@${CPACKET2},60,,L(1800000:60000)); - }; -}; - -context fromfwdOUT-catchbad { //block bahamas, etc - _1900. => congestion ; //N11 - _1XXX976. => congestion ; //N11 - _1XXX555. => congestion ; //N11 - _1X11. => congestion ; //N11 - _1867. => congestion ; //Yukon (sorry mike) - - // exten => _1NPA Country - _1242. => congestion; //BAHAMAS - _1246. => congestion; //BARBADOS - _1264. => congestion; //ANGUILLA - _1268. => congestion; //ANTIGUA/BARBUDA - _1284. => congestion; //BRITISH VIRGIN ISLANDS - _1345. => congestion; //CAYMAN ISLANDS - _1441. => congestion; //BERMUDA - _1473. => congestion; //GRENADA - _1649. => congestion; //TURKS & CAICOS ISLANDS - _1664. => congestion; //MONTSERRAT - _1758. => congestion; //ST. LUCIA - _1767. => congestion; //DOMINICA - _1784. => congestion; //ST. VINCENT & GRENADINES - _1809. => congestion; //DOMINICAN REPUBLIC - _1829. => congestion; //DOMINICAN REPUBLIC - _1868. => congestion; //TRINIDAD AND TOBAGO - _1869. => congestion; //ST. KITTS AND NEVIS - _1876. => congestion; //JAMAICA - _1787. => congestion; //Puerto Rico 787, 939 $0.07 - _1939. => congestion; //Puerto Rico 787, 939 $0.07 - _1671. => congestion; //Guam 671 $0.08 - _1340. => congestion; //U.S. Virgin Islands 340 $0.06 -}; - -context fromfwdOUT-catchall { - _X. => Congestion; - h => Hangup ; //hangup event - i => Hangup ; //invalid event - t => Hangup ; //timeout event -}; - -context ael-demo { - s => { - Wait(1); - Answer(); - TIMEOUT(digit)=5; - TIMEOUT(response)=10; -restart: - Background(demo-congrats); -instructions: - for (x=0; ${x} < 3; x=${x} + 1) { - Background(demo-instruct); - WaitExten(); - }; - }; - 2 => { - Background(demo-moreinfo); - goto s|instructions; - }; - 3 => { - LANGUAGE()=fr; - goto s|restart; - }; - 500 => { - Playback(demo-abouttotry); - Dial(IAX2/guest@misery.digium.com); - Playback(demo-nogo); - goto s|instructions; - }; - 600 => { - Playback(demo-echotest); - Echo(); - Playback(demo-echodone); - goto s|instructions; - }; - _1234 => &std-exten-ael(${EXTEN}, "IAX2"); - # => { - Playback(demo-thanks); - Hangup(); - }; - t => jump #; - i => Playback(invalid); -}; - |