[general] static=yes writeprotect=yes autofallthrough=yes ; [globals] ;CONSOLE=Console/dsp ; ; CALLFILENAME=foo FOO=foo ;#################################################################### ;#inbound call mapping ;#################################################################### ; [inbound] ; ;This Exten Goes to Automated attendant after putting caller ID into the Database exten => s,1,dbput(Last/Caller=${CALLERIDNUM}) exten => s,2,Goto(autoattend) ; ; ;This exten Dial your Sip line it goes from here to all-exten to exten => XXXXXXX,1,dbput(Last/Caller=${CALLERIDNUM}) exten => XXXXXXX,1,Dial(SIP/${EXTEN},45,Tr) ;replace ${EXTEN} with exten nmbr. ; exten => 8667871709,1,Goto(autoattend) exten => 4715227,2,Goto(autoattend) [day-inbound] ; exten => s,1,Dial(pickupgroup,30,t) exten => s,2,VoiceMail(u4715227) exten => s,3,Hangup [pickupgroups] pickupgroup1=SIP/1001&SIP/1006&SIP/1011&SIP/1016&SIP/1021&SIP/1026&SIP/1031&SIP/1037&SIP/1042&SIP/1047 pickupgroup2=SIP/1002&SIP/1007&SIP/1012&SIP/1017&SIP/1022&SIP/1027&SIP/1032&SIP/1038&SIP/1043&SIP/1048 ; [in-pstn] ; under development..... exten => s,1,Macro(fixcid) exten => s,2,Answer exten => s,3,DigitTimeout(3) exten => s,4,ResponseTimeout(3) exten => s,5,Wait(1) exten => s,6,BackGround(pls-wait-connect-call) exten => s,7,Dial(SIP/${EXTEN},30,Tt) exten => i,1,Playback(pbx-invalid) exten => i,2,Hangup ; ;#################################################################### ;#outbound mapping ;#################################################################### [trunktollfree] exten => _800NXXXXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _800NXXXXXX,2,Congestion exten => _866NXXXXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _866NXXXXXX,2,Congestion exten => _877NXXXXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _877NXXXXXX,2,Congestion exten => _888NXXXXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _888NXXXXXX,2,Congestion [trunkint] exten => _011.,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _011.,2,Congestion [trunkld] exten => _1NXXN.,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _1NXXN.,2,Congestion [nas01-gnwd] exten => _252XXXX,1,Dial(SIP/${EXTEN}@greenwood,30) exten => _252XXXX,2,Congestion exten => _322XXXX,1,Dial(SIP/${EXTEN}@greenwood,30) exten => _322XXXX,2,Congestion exten => _357XXXX,1,Dial(SIP/${EXTEN}@greenwood,30) exten => _357XXXX,2,Congestion exten => _597XXXX,1,Dial(SIP/${EXTEN}@greenwood,30) exten => _597XXXX,2,Congestion exten => _638XXXX,1,Dial(SIP/${EXTEN}@greenwood,30) exten => _638XXXX,2,Congestion exten => _639XXXX,1,Dial(SIP/${EXTEN}@greenwood,30) exten => _639XXXX,2,Congestion exten => _996XXXX,1,Dial(SIP/${EXTEN}@greenwood,30) exten => _996XXXX,2,Congestion ; ; ; Fort Smith NXX's ; [nas02-ftsm] exten => _201XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _201XXXX,2,Congestion exten => _226XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _226XXXX,2,Congestion exten => _285XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _285XXXX,2,Congestion exten => _288XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _288XXXX,2,Congestion exten => _314XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _314XXXX,2,Congestion exten => _353XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _353XXXX,2,Congestion exten => _382XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _382XXXX,2,Congestion exten => _414XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _414XXXX,2,Congestion exten => _415XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _415XXXX,2,Congestion exten => _420XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _420XXXX,2,Congestion exten => _424XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _424XXXX,2,Congestion exten => _431XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _431XXXX,2,Congestion exten => _434XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _434XXXX,2,Congestion exten => _441XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _441XXXX,2,Congestion exten => _446XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _446XXXX,2,Congestion exten => _452XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _452XXXX,2,Congestion exten => _459XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _459XXXX,2,Congestion exten => _461XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _461XXXX,2,Congestion exten => _462XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _462XXXX,2,Congestion exten => _478XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _478XXXX,2,Congestion exten => _484XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _484XXXX,2,Congestion exten => _494XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _494XXXX,2,Congestion exten => _522XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _522XXXX,2,Congestion exten => _561XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _561XXXX,2,Congestion exten => _573XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _573XXXX,2,Congestion exten => _629XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _629XXXX,2,Congestion exten => _646XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _646XXXX,2,Congestion exten => _648XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _648XXXX,2,Congestion exten => _649XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _649XXXX,2,Congestion exten => _650XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _650XXXX,2,Congestion exten => _651XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _651XXXX,2,Congestion exten => _652XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _652XXXX,2,Congestion exten => _653XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _653XXXX,2,Congestion exten => _668XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _668XXXX,2,Congestion exten => _709XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _709XXXX,2,Congestion exten => _719XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _719XXXX,2,Congestion exten => _739XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _739XXXX,2,Congestion exten => _755XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _755XXXX,2,Congestion exten => _769XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _769XXXX,2,Congestion exten => _782XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _782XXXX,2,Congestion exten => _783XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _783XXXX,2,Congestion exten => _784XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _784XXXX,2,Congestion exten => _785XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _785XXXX,2,Congestion exten => _788XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _788XXXX,2,Congestion exten => _806XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _806XXXX,2,Congestion exten => _831XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _831XXXX,2,Congestion exten => _883XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _883XXXX,2,Congestion exten => _926XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _926XXXX,2,Congestion ; ; Van Buren NXX's ; ; ; Van Buren NXX's ; exten => _208XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _208XXXX,2,Congestion exten => _410XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _410XXXX,2,Congestion exten => _471XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _471XXXX,2,Congestion exten => _474XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _474XXXX,2,Congestion exten => _689XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _689XXXX,2,Congestion ; ; Oklahoma NXX's ; exten => _918427XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _918427XXXX,2,Congestion exten => _918436XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _918436XXXX,2,Congestion exten => _918875XXXX,1,Dial(SIP/${EXTEN}@fort_smith,30) exten => _918875XXXX,2,Congestion ; [nas06-alma] exten => _632XXXX,1,Dial(SIP/${EXTEN}@alma,30) exten => _632XXXX,2,Congestion exten => _634XXXX,1,Dial(SIP/${EXTEN}@alma,30) exten => _634XXXX,2,Congestion exten => _997XXXX,1,Dial(SIP/${EXTEN}@alma,30) exten => _997XXXX,2,Congestion exten => _430XXXX,1,Dial(SIP/${EXTEN}@alma,30) exten => _430XXXX,2,Congestion exten => _670XXXX,1,Dial(SIP/${EXTEN}@alma,30) exten => _670XXXX,2,Congestion [nas07-mnfd] exten => _928XXXX,1,Dial(SIP/${EXTEN}@mansfield,30) exten => _928XXXX,2,Congestion ;####################################################### ;# Blocking 1-900 Calls and 976 Calls # ;####################################################### ; [blocked] exten => _900NXXXXXX,1,Playback(ss-noservice) exten => _976XXXX,1,Playback(ss-noservice) ; ;####################################################### ;# outbound-emerg = 911 Calls Forth comming # ;# outbout-info = Directory Assistant's 411 # ;# outbout-repart = In-House Telco Repair Tech Line # ;####################################################### ; [paging-211] ;[conference] exten => *211,1,AbsoluteTimeout(21) exten => *211,2,AGI(callall) exten => *211,3,MeetMe(5555,dq) exten => *211,4,Hangup exten => t,1,Hangup exten => T,1,Hangup exten => h,1,Hangup ; [add-to-conference] exten => start,1,AbsoluteTimeout(20) exten => start,2,MeetMe(8508,dmq) exten => h,1,Hangup exten => t,1,Hangup exten => T,1,Hangup [intercom] exten => *30,1,AGI(callall|8508|${pickupgroup1}) ; Change to match the range of extensions you want to page exten => *30,2,Hangup exten => h,1,Hangup exten => 300,1,Macro(call-intercom,pickupgroup=1]) exten => 301,1,Macro(call-intercom,pickup) exten => 302,1,Macro(call-intercom,302) ; add your extensions here [macro-call-intercom] exten => s,1,AGI(callall|${CALLERIDNUM}|${CALLERIDNUM}|${ARG}|${ARG1}) exten => s,2,Hangup exten => h,1,Hangup [add-to-intercom] exten => start,1,Playback(beep) exten => start,2,MeetMe(${iConf},${iConfParm}) exten => start,3,Macro(hangupcall) exten => h,1,Hangup ; ; [non-emerg-311] ; not yet setup for e911 exten => 311,1,Dial(SIP/${EXTEN}) exten => 311,2,Congestion exten => 311,102,Playback(ss-noservice) exten => 311,103,Congestion ; [info-411] exten => 411,1,Dial(SIP/411@sip.broadvoice.com) exten => 411,2,hangup ; [callwake-511] exten => 511,1,Answer exten => 511,2,Wait(1) exten => 511,3,AGI(callback.agi) exten => 511,4,Wait(1) exten => 511,5,Hangup ; [repair-611] ; this dials broadvoice . exten => 611,1,Dial(SIP/611@sip.broadvoice.com) exten => 611,2,Hangup ; [emerg-911] ; not yet setup for e911 exten => 911,1,Dial(SIP/${EXTEN}) exten => 911,2,Congestion exten => 911,102,Playback(no-911-1) exten => 911,103,Congestion ; ;######################################################## ;# Voice Mail Access 8500 and 8501 ;# Voice Mail Access External 8502 ;####################################################### ; [voicemail] exten => 8500,1,VoicemailMain exten => 8500,2,Hangup ; exten => 8501,1,VoicemailMain(${CALLERIDNUM}) exten => 8501,2,Hangup ; ;######################################################## ;# Inturnal and Extenal Meet-Me Conference Rooms ;# 860[ Internal Conference Room ;# 8601 Extenal Conference Room ;######################################################## ; [confrences] exten => _850[5-8],1,Answer exten => _850[5-8],2,Wait(1) exten => _850[5-8],3,Macro(meet,${EXTEN}) ; ; ;######################################################## ;# ;# Auto attendant configuration ;# ;# Also included is autoattendant when we aren't open ;######################################################## ; [default] include => autoattend ; [autoattend] include => selection ; include => night|00:00-23:59|sun|*|* ; closed sundays include => night|16:01-23:59|sat|*|* ; closed include => night|00:00-08:59|sat|*|* ; closed before sat opens include => night|00:00-07:59|mon-fri|*|* ; closed include => night|18:01-23:59|mon-fri|*|* ; closed include => day|08:00-17:00|mon-fri|*|* ; OPEN w00t! include => night|09:00-16:00|sat|*|* ; OPEN w00t! ; [day] exten => s,1,Goto(day-inbound) ; [night] exten => s,1,Wait,2 exten => s,2,Answer exten => s,3,Background,night-msg exten => s,4,DigitTimeout,5 exten => s,5,ResponseTimeout,10 ; ;####################################################### ;# Agent Selections ;####################################################### ; [selection] ; ;1.sales Dept exten => 1,1,Playback,sales-hold exten => 1,2,SetMusicOnHold,default exten => 1,3,SetCallerID,1 exten => 1,4,SetCIDName,Sales exten => 1,5,Goto,callqueue|200|1 ; ;2.Tech Support Dept exten => 2,1,Playback,techsupport-hold exten => 2,2,SetMusicOnHold,default exten => 2,3,SetCallerID,2 exten => 2,4,SetCIDName,TechSupport exten => 2,5,Goto,callqueue|201|1 ; ;3.Billing Dept exten => 3,1,Playback,billing-hold exten => 3,2,SetMusicOnHold,default exten => 3,3,SetCallerID,3 exten => 3,4,SetMusicOnHold,default exten => 3,5,Goto,callqueue|202|1 ; ;4.System Status exten => 4,1,Playback,systemstatus exten => 4,2,Hangup ; ;5 Fax Extension exten => 5,1,SetVar(CALLEDFAX=${EXTEN}) exten => 5,2,Answer exten => 5,3,Goto(fax,${EXTEN},1) ; ; ;##################################### ;# Call Queue's ;# 200-299 ;##################################### ; [queues] ;1.Sales exten => 200,1,Answer exten => 200,2,Queue(sales|TtH) exten => 200,3,WaitMusicOnHold(45) exten => 200,4,Voicemail(u200) exten => 200,5,Playback(vm-goodbye) exten => 200,6,Hangup ; ;2.Tech Support exten => 201,1,Answer exten => 201,2,Queue(techsupport|TtH) exten => 201,3,WaitMusicOnHold(45) exten => 201,4,Voicemail(u201) exten => 201,5,Playback(vm-goodbye) exten => 201,6,Hangup ; ;3.Billing exten => 202,1,Answer exten => 202,2,Queue(billing|TtH) exten => 202,3,WaitMusicOnHold(45) exten => 202,4,Voicemail(u202) exten => 202,5,Playback(vm-goodbye) exten => 202,6,Hangup ; ;##################################################### ;# Put call in the queue for the next available agent. ;##################################################### [tranfer-queue] exten => *93,1,Answer exten => *93,2,Wait,1 exten => *93,3,Queue(sales) exten => *93,5,Hangup ; exten => *94,1,Answer exten => *94,2,Wait,1 exten => *94,3,Queue(techsupport) exten => *94,5,Hangup ; exten => *95,1,Answer exten => *95,2,Wait,1 exten => *95,3,Queue(billing) exten => *95,5,Hangup ; ;######################################################## ;# Queue Agents Login ;####################################################### ;# 1.Sales Turn on=100 Turn off=101 ;# 2.Tech Support Turn on=102 Turn off=103 ;# 3.Billing Turn on=104 Turn off=105 ;# 4 other queues Turn on=XXX Turn off=XXX ;######################################################## ; [agentlogin] ;1.Sales exten => 100,1,AddQueueMember(sales|SIP/${CALLERIDNUM}) exten => 100,2,Playback(agent-loginok) exten => 100,3,Hangup exten => 101,1,RemoveQueueMember(sales|SIP/${CALLERIDNUM}) exten => 101,2,Playback(agent-loggedoff) exten => 101,3,Hangup ; ;2.Tech Support exten => 102,1,AddQueueMember(techsupport|SIP/${CALLERIDNUM}) exten => 102,2,Playback(agent-loginok) exten => 102,3,Hangup exten => 103,1,RemoveQueueMember(techsupport|SIP/${CALLERIDNUM}) exten => 103,2,Playback(agent-loggedoff) exten => 103,3,Hangup ; ;3.Billing exten => 104,1,AddQueueMember(billing|SIP/${CALLERIDNUM}) exten => 104,2,Playback(agent-loginok) exten => 104,3,Hangup exten => 105,1,RemoveQueueMember(billing|SIP/${CALLERIDNUM}) exten => 105,2,Playback(agent-loggedoff) exten => 105,3,Hangup ; ; Login and wait for calls while offhook. When calls arrive, you will he ; a beeping tone and the caller will join automatically ;{offhook] exten => *99,1,Answer exten => *99,2,SetMusicOnHold(default) exten => *99,3,Wait,1 exten => *99,4,AgentLogin ; ;######################################################## ;# Scripted Functions ;######################################################## ; [fax] exten => s,1,Macro(faxreceive) exten => h,1,System(/usr/local/share/asterisk/scripts/fax,sh "${CALLERIDNUM}" "${CALLEDFAX}" "${EXTNAME}" "${EXTEMAIL}" "${FAXFILE}" "${EXTCOMPANY}") ; [disa] ;Dial inword System Remote Access exten => 99,1,DISA,1234|admin ; replace #### with your nmbrs ; ;[directory] ; not setup yet ;exten => *,1,Directory,default ;exten => *,2,Goto,s|1 ; ;[disconnect] ;exten => #,1,Playback,(vm-goodbye) ;exten => #,2,Hangup ; [dnd] ; DO NOT DISTURB exten => *60,1,DBdel(DND/${CALLERIDNUM}) exten => *60,2,Playback(de-activated) exten => *60,3,Hangup exten => *61,1,DBput(DND/${CALLERIDNUM}=YES) exten => *61,2,Playback(activated) exten => *61,3,Hangup ; [calltrace] ; We can't have our timeouts or dial digits collide with other applications ; or extensions, so we build the app in pieces exten => *69,1,Cut(CHANRES=CHANNEL|-|1) exten => *69,2,Cut(EXTENSION=CHANRES|/|2) exten => *69,3,Macro(calltrace,${EXTENSION}) ; [callforward] ;Turn Off exten => *70,1,DBdel(CF/${CALLERIDNUM}) exten => *70,2,Answer exten => *70,3,Wait(1) exten => *70,4,Playback(call-fwd-cancelled) exten => *70,5,Hangup ;Turn On exten => _*71.,1,DBput(CF/${CALLERIDNUM}=${EXTEN:3}) exten => _*71.,2,Answer exten => _*71.,3,Wait(1) exten => _*71.,4,Playback(call-fwd-unconditional) exten => _*71.,5,Playback(for) exten => _*71.,6,Playback(extension) exten => _*71.,7,SayDigits(${CALLERIDNUM}) exten => _*71.,8,Playback(is-set-to) exten => _*71.,9,SayDigits(${EXTEN:3}) exten => _*71.,10,Hangup ; [callwaiting] exten => *73,1,DBdel(CW/${CALLERIDNUM}) exten => *73,2,Playback(de-activated) exten => *73,3,Hangup exten => *74,1,DBput(CW/${CALLERIDNUM}=YES) exten => *74,2,Playback(activated) exten => *74,3,Hangup ; [pbx-transfer] exten => *75,1,Playback,pbx-transfer exten => *75,2,DBget(temp=SIP/${ARG1}) exten => *75,3,Goto(all-exten,${temp}|1) exten => *75,103,Goto(s|4) exten => *75,4,DBget(dnd=DND/${ARG1}) exten => *75,5,Goto(s|7) exten => *75,105,Goto(s|6) exten => *75,6,Dial(SIP/${ARG1},60,tr) exten => *75,7,Hangup exten => *75,107,Hangup ; [rec-prompt] ; used to record generic prompts exten => *96,1,Answer exten => *96,2,Wait(2) exten => *96,3,Record(/tmp/generic:gsm) exten => *96,4,Wait(2) exten => *96,5,Playback(/tmp/generic) exten => *96,6,Wait(2) exten => *96,7,Hangup ; [system-stat] ;use to record system status exten => *97,1,Answer exten => *97,2,Wait(2) exten => *97,3,Record(/usr/local/share/sounds/systemstatus:gsm) exten => *97,4,Wait(2) exten => *97,5,Playback(/usr/local/share/asterisk/sounds/systemstatus) exten => *97,6,Wait(2) exten => *97,7,Hangup ; [parkedcalls] exten => 700,1,Answer exten => 700,2,SetMusicOnHold(default) exten => 700,3,ParkAndAnnounce(PARKED,60,SIP/${ARG1},70,4) exten => 700,4,Macro(rg-inbound,20,tr) exten => 700,5,Goto(aa-nooneavail,s,1) exten => _70X[1-9],1,ParkedCall(${EXTEN}) ; [addcallerid] ; exten => 750,1,Answer() exten => 750,2,Read(EXTENSION|enter-extension-num|4) exten => 750,3,Read(DIALCID|enter-new-outbound-cid|10) exten => 750,4,DBPut(CID/${EXTENSION}=${DIALCID}) exten => 750,5,Saydigits(${EXTENSION}) exten => 750,6,Playback(has-been-set-to) exten => 750,7,Saydigits(${DIALCID}) exten => 750,8,Playback(auth-thankyou) exten => 750,9,SetVar(AGAIN=0) exten => 750,10,Read(AGAIN|enter-another-value|1) ; one for yes, any other num; exten => 750,11,GotoIf($[${AGAIN} = 1]?2:12) exten => 750,12,Playback(goodbye) exten => 750,13,Hangup() ; ;######################################################## ;# System Macro's area. ;######################################################## ; [macro-stdexten] exten => s,1,DBget(temp=CF/${ARG1}) exten => s,2,Goto(all-exten,${temp}|1) exten => s,102,Goto(s|3) exten => s,3,DBget(dnd=DND/${ARG1}) exten => s,4,DBPut(LASTCALL/${ARG1}=${CALLERIDNUM}) exten => s,5,Dial(SIP/${ARG1},30,Tr) exten => s,6,Voicemail(u${ARG1}) exten => s,7,Hangup exten => s,106,Voicemail(b${ARG1}) exten => s,107,Hangup ; [macro-stdexten-new] exten => s,1,DBget(temp=CF/${ARG1}) ; Get CFIM key, if not existing, goto 102 exten => s,2,Dial(Local/${temp}@pbx/n) ; Unconditional forward exten => s,102,Goto(s,3) exten => s,3,Dial(${ARG2},20) ; 20sec timeout exten => s,4,DBget(temp=CFBS/${ARG1}) ; Get CFBS key, if not existing, goto 105 exten => s,5,Dial(Local/${temp}@pbx/n) ; Forward on busy or unavailable exten => s,6,Voicemail(u${ARG1}) exten => s,7,Hangup exten => s,105,Busy exten => s,106,Voicemail(b${ARG1}) exten => s,107,Hangup ; [macro-distinct-ring] exten => s,1,SetVar(_ALERT_INFO=something) exten => s,2,Dial(SIP/myphone) ; [macro-calltrace] exten => s,1,Answer exten => s,2,Wait(1) exten => s,3,Dbget(LastCaller=LASTCALL/${ARG1}) exten => s,4,GotoIf($[${LastCaller}]?5:10) exten => s,5,SayDigits(${LastCaller}) exten => s,6,DigitTimeout(3) exten => s,7,ResponseTimeout(7) exten => s,8,Background(press-one-to-callback) exten => s,9,Goto(12) exten => s,10,Playback(unidentified) exten => s,11,Hangup exten => s,12,NoOp exten => 1,1,Goto(all-exten,${LastCaller},1); exten => i,1,Playback(pbx-invalid) exten => i,2,Hangup exten => t,1,Playback(vm-goodbye) exten => t,2,Hangup ; [macro-faxreceive] exten => s,1,SetVar(FAXFILE=/var/spool/asterisk/fax/${CALLEDFAX}/${UNIQUEID}) exten => s,2,DBGet(EXTEMAIL=${MACRO_EXTEN}/xEmail) exten => s,3,NoOP() exten => s,4,DBGet(EXTNAME=${MACRO_EXTEN}/xName) exten => s,5,NoOP() exten => s,6,DBGet(EXTCOMPANY=${MACRO_EXTEN}/xCompany) exten => s,7,rxfax(${FAXFILE}.tif) exten => s,103,SetVar(EXTMAIL=fax@company.com) exten => s,104,Goto(7) exten => s,105,SetVar(EXTNAME=Unknown) exten => s,106,Goto(7) exten => s,107,SetVar(EXTCOMPANY=Company) exten => s,108,Goto(7) ; [macro-festival] exten => s,1,Answer exten => s,2,Festival('Hello asterisk user, how are you today?') exten => s,3,Hangup ; [macro-meet] exten => s,1,Answer exten => s,2,Wait(1) exten => s,3,MeetMe({$ARG1},pdcMs) exten => s,4,Playback(vm-goodbye) exten => s,5,Hangup ; ;this is the old meetme config with guest count. [macro-announceandmeet] exten => s,1,MeetMeCount(${ARG1},COUNT) exten => s,2,SayNumber(${COUNT}) exten => s,3,MeetMe(${ARG1}) exten => s,4,Hangup ; [macro-qualityassure] exten => s,1,Answer exten => s,2,Macro(record-on) exten => s,3,BackGround(for-quality-purposes) exten => s,4,BackGround(this-call-may-be) exten => s,5,BackGround(recorded) exten => s,6,Dial(SIP/${EXTEN:1},120,tm) exten => s,7,Macro(rg-inbound,10,tr) exten => s,8,Hangup ; [macro-record-on] exten => s,1,AGI(set-timestamp.agi) exten => s,2,SetVar(CALLFILENAME=${timestamp}-${ARG2}-${ARG1}) exten => s,3,Monitor(gsm,${CALLFILENAME}) ; [macro-record-cleanup] exten => s,1,GotoIf($[${CALLFILENAME} = ${NULL}]?6:2) exten => s,2,SetVar(CFBASE=/var/spool/asterisk/monitor/${CALLFILENAME}) ; wmix takes the two seperate wavs and mixes them into a single stream ; It is available in my wavetools rpm exten => s,3,System(/usr/bin/wmix ${CFBASE}-in.wav ${CFBASE}-out.wav > ${CFBASE}) exten => s,4,System(/bin/rm ${CFBASE}-in.wav ${CFBASE}-out.wav) ; toast compresses the .wav files into a .gsm file ; It is available in my gsm rpm exten => s,5,System(/usr/bin/toast -F ${CFBASE}) exten => s,6,NoOp ; [macro-privacy] exten => s,1,PrivacyManager exten => s,2,Macro(record-on,${MYHOMEPHONE},${CALLERIDNUM}) ;exten => s,3,Monitor(wav|call-${EPOCH}-${CALLERIDNUM}) ;${DATETIME} Current date time in the format: YYYY-MM-DD_HH:MM:SS ;${UNIQUEID} Current call unique identifier exten => s,3,Dial(SIP/${EXTEN},20,tr) exten => s,103,Goto,s|6 exten => s,104,Goto,s|6 exten => s,4,Answer exten => s,5,Wait(1) exten => s,6,Voicemail2(u0) exten => s,7,Playback,vm-goodbye exten => s,8,Hangup ; [macro-fastbusy] ; I use this to send people I dont want to deal with. exten => s,1,Answer exten => s,2,Wait 1 exten => s,3,Playback(all-circuits-busy) exten => s,4,Wait(30) exten => s,5,Hangup ; ; [macro-callerid-fixup] ; ; This macro assumes the following: ; Extensions without a DID number have a CallerID number that is 4 digits ; Extensions with a DID number have their CallerID number set to their 10 digi ; The last 4 digits of a DID number is the same as the extension number ; ; This macro does the following if it is called without any parameters: ; If the Caller*ID number is 4 digits, do nothing ; If the Caller*ID number is not 4 digits, strip off the first 6 digits ; ; This macro does the following if it is called with a parameter ; If the Caller*ID number is 4 digits, reset the Caller*ID number to be the va ; If the Caller*ID number is not 4 digits, do nothing ; exten => s,1,NoOp(Entering Macro "callerid-fixup") exten => s,2,NoOp(Variable CALLERIDNUM is equal to ${CALLERIDNUM}) exten => s,3,GoToIf($["${ARG1}" != ""]?external,1) exten => s,4,GoToIf($["${ARG1}" = ""]?internal,1) ; exten => internal,1,GoToIf($[${LEN(${CALLERIDNUM})} = 4]?f,1) exten => internal,2,SetCIDNum(${CALLERIDNUM:6}) exten => internal,3,GoTo(f,1) ; exten => external,1,GoToIf($[${LEN(${CALLERIDNUM})}! = 4]?f,1) exten => external,2,SetCIDNum(${ARG1},a) exten => external,3,GoTo(f,1) ; exten => f,1,NoOp(Variable CALLERIDNUM is equal to ${CALLERIDNUM}) exten => f,2,NoOp(Leaving Macro "callerid-fixup") ; [macro-fixcid] ;################################################################# ;# My caller id name often comes in as O. If there is a CID number, ;# use that. Otherwise set the caller ID name to No Caller ID ;# ARGS: none ;# For some reason GotoIf($[${CALLERIDNAME} = O]?true:false) fails so use ;# this crappy system call instead :( I'm not sure if this is because ;# $CALLERIDNAME is usually 2 words or what but it sucks. ;###################################################################### ; exten => s,1,System(test "${CALLERIDNAME}" = "O") exten => s,2,GotoIf($[${CALLERIDNUM} = O]?3:5) exten => s,3,SetCIDName("No Caller ID") exten => s,4,Goto(6) exten => s,5,SetCIDName(${CALLERIDNUM}) exten => s,6,NoOp ; landing point for no caller id exten => s,102,Goto(autoattend,s,1) ; landing point for proper caller ID ; ; ;############################################################# ;# New Extension Testing & Debuging Tools ;############################################################# ; [ext-testing] exten => 900,1,Answer exten => 900,2,Wait(1) exten => 900,3,SayDigits(${CALLERIDNUM}) exten => 900,4,Hangup exten => 901,1,Answer exten => 901,2,Wait(1) exten => 901,3,Datetime exten => 901,4,Hangup exten => 902,1,Answer exten => 902,2,Wait(1) exten => 902,3,Playback(demo-echotest) exten => 902,4,Playback(beep) exten => 902,5,Echo exten => 902,6,Playback(demo-echodone) exten => 902,7,Hangup exten => 903,1,Answer exten => 903,2,Milliwatt exten => 903,3,Hangup exten => 904,1,Answer exten => 904,2,Wait(1) exten => 904,3,Record(record:gsm) exten => 904,4,Wait(1) exten => 904,5,Playback(record) exten => 904,6,Hangup exten => 905,1,Answer exten => 905,2,SetMusicOnHold(default) exten => 905,3,MusicOnHold exten => 906,1,Answer exten => 906,2,SetMusicOnHold(stream) exten => 906,3,MusicOnHold exten => 907,1,Cut(CHANTYPE=CHANNEL|/|1) exten => 907,2,Cut(CHANNELNEXT=CHANNEL|/|2) exten => 907,3,Cut(CHANNELNUM=CHANNELNEXT|-|1) exten => 907,4,Answer() exten => 907,5,Wait(1) exten => 907,6,Playback(${CHANTYPE}) exten => 907,7,SayPhonetic(${CHANNELNUM}) exten => 907,8,Wait(1) exten => 907,9,Playback(${CHANTYPE}) exten => 907,10,SayAlpha(${CHANNELNUM}) exten => 907,11,Playback(tt-monkeys) exten => 907,12,Hangup() exten => 908,1,Answer exten => 908,2,Playback(new/password) exten => 908,3,AGI(agi-test.agi,${pass}) exten => 908,4,Hangup exten => 909,1,Answer exten => 909,2,Playback(new/password) exten => 909,3,SetMusicOnHold,loud exten => 909,4,WaitMusicOnHold,30 exten => 909,5,Hangup ; ;###################################################### ;# User Permissions ;###################################################### ; [admin] include => disa include => dnd include => blocked include => paging-211 include => info-411 include => callwake-511 include => repair-611 include => non-emerg-311 include => emerg-911 include => voicemail include => confrences include => agentlogin include => queues include => parkedcalls include => pbx-transfer include => rec-prompt include => callwaiting ;include => disconnect ;include => directory include => all-exten include => pbx-2-pbx include => ext-testing include => calltrace include => callforward include => system-stat include => all-exten include => iax2-exten include => local include => international include => longdistance include =>pickupgroup ; [local] include => trunktollfree include => nas01-gnwd include => nas02-ftsm include => nas06-alma include => nas07-mnfd ; [international] include => trunkint ; [longdistance] include => trunkld ; ;#################################################################### ;# All Extensions ;# Office Extensions ;# Staff Extensions ;# exten 1-9 used for autoattend menu ;# exten 10 - 49 for Zap Extensions ;# exten 500-600 Iax2 Mapped Extensions ;# exten 990 - 999 are for PBX to PBX connection / Office to Office link ;# exten 1000 - 2999 Staff Extensions ;# exten 3000 - 9999 Open for use except 8500-8599 used for set exten ;#################################################################### ; [all-exten] exten => 0,1,Macro(stdexten,0,SIP/0) exten => _[1-4]X,1,Macro(stdexten,${EXTEN}) exten => _[1-2]XXX,1,Macro(stdexten,${EXTEN}) exten => _NXXXXXX,1,Macro(stdexten,${EXTEN}) ; ;################################################### ;#PBX to PBX ofice to office connections 990-999 ;################################################### ; [pbx-2-pbx] exten => 990,1,Dial(IAX2/guest@server/s@default) exten => 990,2,Hangup ; exten => 991,1,Dial() exten => 991,2,Hangup ; ;######################################################## ;Mapped IAX2 Extensions ;####################################################### ; [iax2-exten] ; exten => 500,1,Dial(IAX2/guest@misery.digium.com/s@default) exten => 500,2,Hangup ; to call digium for support ; exten => 501,1,Dial(IAX2/guest@66.250.68.194/996) exten => 501,2,Hangup ; ; ;#################################################################### ;# End of Extensions Config File # ;#################################################################### ;