;#################################################################### ;# Begining of Extensions Config File # ;#################################################################### ; ;######################################################## ;# Basic exten nmbrs in the US + Canada ;######################################################## ; *00 - Inward Voice Activated Services (English) ; *01 - Inward Voice Activated Services (French) Canada ; *02 - Deactivation/Activation of In-Session Activation (ISA) on a per line basis ; *03 - Deactivation of In-Session Activation (ISA) on a per call basis ; *2X - Reserved for expansion to 3digit VSCs ; *228 - Over-the-Air Service Provisioning ; *272 - Access Wireless Priority Service ; *3X - Reserved for expansion to 3-digit VSCs ; *40 - Change Forward-To Number for Customer Programmable Call Forwarding Busy Line ; *41 - Six-Way Conference Calling Activation ; *42 - Change Forward-To Number for Customer Programmable Call Forwarding Don't Answer ; *43 - Drop last member of Six-Way Conference Call ; *44 - Voice Activated Dialing ; *45 - Voice Dialing Extended Dial Tone ; *46 - French Voice Activated Network Control Canada ; *47 - Override Feature Authorization ; *48 - Override Do Not Disturb ; *49 - Long Distance Signal ; *50 - Voice Activated Network Control ; *51 - Who Called Me? ; *52 - Single Line Variety Package (SVP) - Call Hold ; *53 - Single Line Variety Package (SVP) - Distinctive Ring B ; *54 - Single Line Variety Package (SVP) - Distinctive Ring C ; *55 - Single Line Variety Package (SVP) - Distinctive Ring D ; *56 - Change Forward-To Number for ISDN Call Forwarding ; *57 - Customer Originated Trace ; *58 - ISDN MBKS Manual Exclusion Activation ; *59 - ISDN MBKS Manual Exclusion Deactivation ; *60 - Selective Call Rejection Activation ; *61 - Distinctive Ringing/Call Waiting Activation ; *62 - Selective Call Waiting ; *63 - Selective Call Forwarding Activation ; *64 - Selective Call Acceptance Activation ; *65 - Calling Number Delivery Activation ; *66 - Automatic Callback Activation ; *67 - Calling Number Delivery Blocking ; *68 - Call Forwarding Busy Line/Don't Answer Activation ; *69 - Automatic Recall Activation ; *70 - Cancel Call Waiting ; *71 - Usage Sensitive Three-way Calling ; *72 - Call Forwarding Activation ; *73 - Call Forwarding Deactivation ; *74 - Speed Calling 8 - Change List ; *75 - Speed Calling 30 - Change List ; *76 - Advanced Call Waiting Deluxe ; *77 - Anonymous Call Rejection Activation ; *78 - Do Not Disturb Activation ; *79 - Do Not Disturb Deactivation ; *80 - Selective Call Rejection Deactivation ; *81 - Distinctive Ringing/Call Waiting Deactivation ; *82 - Line Blocking Deactivation ; *83 - Selective Call Forwarding Deactivation ; *84 - Selective Call Acceptance Deactivation ; *85 - Calling Number Delivery Deactivation ; *86 - Automatic Callback Deactivation ; *87 - Anonymous Call Rejection Deactivation ; *88 - Call Forwarding Busy Line/Don't Answer Deactivation ; *89 - Automatic Recall Deactivation ; *90 - Customer Programmable Call Forwarding Busy Line Activation ; *91 - Customer Programmable Call Forwarding Busy Line Deactivation ; *92 - Customer Programmable Call Forwarding Don't Answer Activation ; *93 - Customer Programmable Call Forwarding Don't Answer Deactivation ; *94 - Reserved For Local Assignment ; *95 - Reserved For Local Assignment ; *96 - Reserved For Local Assignment ; *97 - Reserved For Local Assignment ; *98 - Reserved For Local Assignment ; *99 - Reserved For Local Assignment ; ############################################################################ ; Magic Extensions to be used within a context ; ############################################################################ ; s = start ; t = This gets jumped to on timeout waiting for keypress ; i = This gets jumped to on an invalid extension ; h = This gets jumped to when a call in a given context is hung up ; fax = This gets jumped to on fax tone detection ; ############################################################################ ; Dial Options ; ############################################################################ ; Dial jumps to priority n+101 on busy if n+101 exists ; 't' -- Allow the user to dial # then an extension to transfer ; 'T' -- to allow the calling user to transfer the call. ; 'r' -- indicate ringing to the calling party, pass no audio until answer. ; 'm' -- provide hold music to the calling party until answered. ; 'd' -- data-quality (modem) call (minimum delay). ; 'c' -- clear-channel data call (PRI-PRI only). ; 'H' -- allow caller to hang up by hitting *. ; 'C' -- reset call detail record for this call. ; 'P[(x)]' -- privacy mode, using 'x' as database if provided. ; 'g' -- goes on in context if the destination channel hangs up ; ####################################################### ; Zaptel Acceptable Dial Strings ; ####################################################### ; ; Digits 0 - 9 ; Symbols # * ; Wait W ; ; Ranges: ; Apps : *XX ; Corp Exten:10 - 40 ; Extensions:1000 - 8500 not currently mapped ; Test Tools:900 - 909 ; Call Park :700,701 - 709 ; Meetme :8505 - 8507 ; ACD : ; ;############################################################## [general] static=yes writeprotect=yes ; [globals] CONSOLE=Console/dsp ; ;Sip/Voip Provider - This is you DID Provider Like Broadvoice or Voice Pulse LINE= USERID= COMPANY= PROTOCOL= ; COMPANYNAME=Company Name Here ; Your Comapny Name here ; ;SipPhone.com user info SIPLINE= ;your SipPhone.com Number Here SIPUSERID= ;Your User ID here SIPPASS= ;Your Password here ; ;IAXTEL user info IAXLINE= IAXTELUSER= IAXTELPASS= ; ;##################################### ;# Used for rollover ;##################################### ; ;your Hard Line Phone NMbr ZAPLINENMBR1= ZAPLINENMBR2= ZAPLINENMBR3= ZAPLINENMBR4= ; ;Sip Out-bound Dialing Rollover ;SIPLINE1= ;SIPLINE2= ;SIPLINE3= ;SIPLINE4= ; ;Zap Out-Bound Dialing Rollover ;LINE1=zap1 ;LINE2=zap2 ;LINE3=zap3 ;LINE4=zap4 ; CALLFILENAME=foo FOO=foo ; ;#################################################################### ;#inbound call mapping ;#################################################################### ; [inbound] ;Extensions with Voicemail exten => s,1,Macro(exten-vm,${EXTEN},${VM_DELAY}) ; ; Extensions with no voicemail exten => s,1,Macro(exten-novm,${EXTEN},${NO_VM_TIMEOUT}) ; ;This Exten Goes to Automated attendant after putting caller ID into the Database exten => s,1,Set(Last/Caller=${CALLERIDNUM}) exten => s,2,Goto(autoattend,s,1) ; ;This exten Dial your ZAP lines it goe from here to all-exten to exten => s2,1,dbput(Last/Caller=${CALLERIDNUM}) exten => s2,2,Dial(ZAP1,s,1) ;replace # with exten nmbr. ; ;#################################################################### ;# Sip outbound mapping ;#################################################################### ; [broadvoice] ;US LD & Canada exten => _NXXNXXXXXX,1,SetCallerID(${LINE}) exten => _NXXNXXXXXX,2,SetCIDName(${COMPANYNAME}) exten => _NXXNXXXXXX,3,Dial(${PROTOCOL}/${EXTEN}@${COMPANY}) exten => _NXXNXXXXXX,4,Congestion exten => _NXXNXXXXXX,5,Hangup ; ; International exten => _011NXXNXXXXXX,1,SetCallerID(${LINE}) exten => _011NXXNXXXXXX,2,SetCIDName(${COMPANY}) exten => _011NXXNXXXXXX,3,Dial(SIP/${EXTEN}@sip.broadvoice.com) exten => _011NXXNXXXXXX,4,Congestion exten => _011NXXNXXXXXX,5,Hangup ; [iaxtel] exten => _1700NXXXXXX,1,SetCallerID(${IAXLINE}) exten => _1700NXXXXXX,2,SetCIDName(${COMPANYNAME}) exten => _1700NXXXXXX,3,Dial(IAX2/${IAXTELUSER}:{IAXTELPASS}@iaxtel.com/${EXTEN}@iaxtel) exten => _1700NXXXXXX,4,Congestion exten => _1700NXXXXXX,5,Hangup ; [sipphone] ;exten => _1747NXXXXXX,1,SetCallerID(${SIPLINE}) ;exten => _1747NXXXXXX,2,Dial(SIP/${EXTEN:1}@sipphone) ;exten => _1747NXXXXXX,3,Playback(invalid) ;exten => _1747NXXXXXX,4,Congestion ;exten => _1747NXXXXXX,5,Hangup ; ;################################################################# ;#zap outbound mapping ;################################################################# ; ;ignorepat => 9 ; [zap1] exten => _NXXXXXX,1,SetCallerID(${ZAPLINE}) exten => _NXXXXXX,2,Dial(Zap1/${EXTEN}) exten => _NXXXXXX,3,Playback(invalid) exten => _NXXXXXX,4,Congestion exten => _NXXXXXX,5,Hangup ; exten => _1NXXNXXXXXX,1,SetCallerID(${ZAPLINE}) exten => _1NXXNXXXXXX,2,Dial(Zap1/${EXTEN}) exten => _1NXXNXXXXXX,3,Playback(invalid) exten => _1NXXNXXXXXX,4,Congestion exten => _1NXXNXXXXXX,5,Hangup ; ;####################################################### ;# Blocking 1-900 Calls and 976 Calls # ;####################################################### ; [blocked] exten => _900NXXXXXX,1,Playback(ss-noservice) exten => _NXX976XXXX,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] exten => 211,1,Dial(console/dsp) exten => 211,2,Answer exten => 211,3,Wait(1) exten => 211,4,Playback(touchtone1) exten => 211,5,Playback(touchtone1) exten => 211,6,Playback(touchtone1) exten => 211,7,Wait(1) exten => 211,8,Hangup ; [non-emerg-311] ; not yet setup for e911 Non Emerg 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/${EXTEN}) 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 ;####################################################### ; [internal-vm] 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 ;######################################################## ; [internal-conf] exten => _850[5-6],1,Answer exten => _850[5-6],2,Wait(1) exten => _850[5-6],3,Macro(meet,${EXTEN}) ; [external-conf] exten => _850[7-8],1,Answer exten => _850[7-8],2,Wait(1) exten => _850[7-8],3,Macro(meet,${EXTEN}) ; ;######################################################## ;# ;# Auto attendant configuration ;# ;# Also included is autoattendant when we aren't open ;######################################################## ; [default] include => autoattend ; [autoattend] include => selection include => all-exten include => pbx-2-pbx ; 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-18:00|mon-fri|*|* ; OPEN w00t! include => day|09:00-16:00|sat|*|* ; OPEN w00t! ; [day] exten => s,1,Wait,2 exten => s,2,Answer exten => s,3,Background,day-msg exten => s,4,DigitTimeout,5 exten => s,5,ResponseTimeout,10 ; [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 exten => 5,1,Background,stafflisting ; ;6 exten => 6,1,Playback,vm-goodbye exten => 6,2,Hangup ; ;7 exten => 7,1,Playback,vm-goodbye exten => 7,2,Hangup ; ;8 Fax Extension exten => 8,1,SetVar(CALLEDFAX=${EXTEN}) exten => 8,2,Answer exten => 8,3,Goto(fax,${EXTEN},1) ; ;9 exten => 9,1,Playback,vm-goodbye exten => 9,2,Hangup ; ;0 exten => 0,1,Playback,vm-goodbye exten => 0,2,Hangup ; ;##################################### ;# 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 ; [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 ; ;######################################################## ;# 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 ;######################################################## {scripted] ;fax exten => s,1,Macro(faxreceive) exten => h,1,System(/usr/local/share/asterisk/scripts/fax,sh "${CALLERIDNUM}" "${CALLEDFAX}" "${EXTNAME}" "${EXTEMAIL}" "${FAXFILE}" "${EXTCOMPANY}") ; ;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 ; ;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,Set(${DB(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,Set(${DB(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,Set(${DB(CW/${CALLERIDNUM}=YES)}) exten => *74,2,Playback(activated) exten => *74,3,Hangup ; ;dnd ; Do not disturb - *78 to enable, *79 to disable exten = *78,1,Answer exten = *78,2,Set(${DB(DND/${CALLERIDNUM}=1)}) exten = *78,3,Wait(1) exten = *78,4,Playback(do-not-disturb) exten = *78,5,Playback(activated) exten = *78,6,Hangup exten = *79,1,Answer exten = *79,2,Set(${DB(DND/${CALLERIDNUM})}) exten = *79,3,Wait(1) exten = *79,4,Playback(do-not-disturb) exten = *79,5,Playback(de-activated) exten = *79,6,Hangup ; ;pbx-transfer exten => *75,1,Playback,pbx-transfer exten => *75,2,Set($DB(temp=SIP/${ARG1})}) exten => *75,3,Goto(all-exten,${temp}|1) exten => *75,103,Goto(s|4) exten => *75,4,Set(${DB(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 ; ;blind-parking exten => _70X,1,Answer exten => _70X,2,Wait(1) exten => _70X,3,ParkAndAnnounce(pbx-transfer:PARKED|7200|SIP/${EXTEN:1}|default,${EXTEN:1},1) ; ;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}) ; ; [stream] ; Conference Room exten => 760,1,Answer exten => 760,2,Wait(1) exten => 760,3,MeetMe(8508) ; ; Music On Hold exten => 761,1,Answer exten => 761,2,Wait(1) exten => 761,3,MusicOnHold(default) ; Stream exten => 762,1,Answer exten => 762,2,Wait(1) exten => 762,3,Ices(/usr/local/etc/asterisk/asterisk-ices.xml) ; ;######################################################### ;# ;# enum lookup serveice ;# ;######################################################### [Enum164e] ; Home telephone from E164.org lookup exten => 15552556690,1,Dial(${HOMEPHONES},20) exten => 15552556690,2,Voicemail2(u44) exten => 15552556690,3,HangUp ; ; Business Line from E164.org lookup exten => 15552553925,1,Dial(${WORKPHONES},20) exten => 15552553925,2,Voicemail(u21) exten => 15552553925,3,HangUp ; [internal] exten => _XXXNXXXXXX,1,Macro(enum-call,localcall,1${EXTEN}) exten => _1604NXXXXXX,1,Macro(enum-call,localcall,${EXTEN}) exten => _011XXXXNXXXXXX,1,Macro(enum-call,localcall,${EXTEN:3}) exten => _0111NXXNXXXXXX,1,Macro(enum-call,NA,${EXTEN:3}) exten => _NXXNXXXXXX,1,Prefix(1) exten => _1NXXNXXXXXX,1,Macro(enum-call,NA,${EXTEN}) exten => _011X.,1,Macro(enum-call,international,${EXTEN:3}) ; [macro-enum-call] exten => s,1,SetCallerID(1XXX5551212) exten => s,2,EnumLookup(${ARG2}) exten => s,53,Goto(${ARG1},${ARG2},1) exten => s,103,Goto(${ARG1},${ARG2},1) exten => s,3,GotoIf($[$[${ENUM:0:3} = SIP] | $[${ENUM:0:3} = IAX]]?4:5) exten => s,4,Dial(${ENUM}) exten => s,5,Goto(${ARG1},${ARG2},1) exten => s,105,Goto(${ARG1},${ARG2},1) ; ; ; ----------------------------------------------------------------------------- ; Dialplan Special Applications ; ----------------------------------------------------------------------------- [prompts] ; ;697 - Prompt management exten = 697,1,Goto(app-prompt-management,s,1) ; ; 698 - Special announcement admin (Easy IVR) exten = 698,1,Goto(app-special-message,s,1) ; [app-special-message] ; Record/replay/turn on/off the special message played before ACD queue calls exten = s,1,Answer exten = s,2,Wait(1) exten = s,3,DigitTimeout(5) exten = s,4,BackGround(T-to-hear-cur-ancmnt) exten = s,5,BackGround(press-1) exten = s,6,BackGround(T-to-rec-ancmnt) exten = s,7,BackGround(press-2) exten = s,8,BackGround(T-to-enable-ancmnt) exten = s,9,BackGround(press-3) exten = s,10,BackGround(T-to-disable-ancmnt) exten = s,11,BackGround(press-4) ; exten = t,1,Playback(goodbye) exten = t,2,Hangup ; exten = i,1,Playback(pbx-invalid) exten = i,2,Goto(s,4) ; exten = 1,1,Playback(cc-special-message) exten = 1,2,Goto(s,4) ; exten = 2,1,Goto(app-special-message-record,s,1) ; exten = 3,1,SET($DB(SpecialMessage/1=1)}) exten = 3,2,Playback(enabled) exten = 3,3,Goto(s,4) ; exten = 4,1,DBdel(SpecialMessage/1) exten = 4,2,Playback(disabled) exten = 4,3,Goto(s,4) ; exten = *,1,Playback(goodbye) exten = *,2,Hangup ; [app-special-message-record] ; Record the new special message exten = s,1,Playback(vm-intro) exten = s,2,Record(new-special-message:wav) exten = s,3,Playback(beep) exten = s,4,BackGround(new-special-message) exten = s,5,BackGround(save-announce-press) exten = s,6,BackGround(digits/1) exten = s,7,BackGround(to-rerecord-announce) exten = s,8,BackGround(digits/2) exten = i,1,Playback(invalid) exten = i,2,Goto(s,3) ; exten = t,1,Goto(s,3) ; exten = 1,1,System(cp -f /var/lib/asterisk/sounds/new-special-message.wav /var/lib/asterisk/sounds/special-message.wav) exten = 1,2,Playback(your-msg-has-been-saved) exten = 1,3,Goto(app-special-message,s,1) ; exten = 2,1,Goto(s,1) ; exten = *,1,Goto(app-special-message,s,1) ; [macro-check-special-message] ; If the flag is set, play the special message, otherwise continue exten = s,1,Set(${DB(SpecialMessage=SpecialMessage/1)}) exten = s,2,Playback(system-status-msg) exten = s,3,Playback(special-message) exten = s,4,Ringing exten = s,5,Wait(4) exten = s,102,Noop ; [app-prompt-management] ; Flexible prompt recording exten = s,1,Answer exten = s,2,Wait(1) exten = s,3,DigitTimeout(5) exten = s,4,Read(PROMPT_NUMBER|enter-prompt-number|3) exten = s,5,SayDigits(${PROMPT_NUMBER}) exten = s,6,BackGround(T-to-hear-cur-ancmnt) exten = s,7,BackGround(press-1) exten = s,8,BackGround(T-to-rec-ancmnt) exten = s,9,BackGround(press-2) ; exten = t,1,Playback(goodbye) exten = t,2,Hangup ; exten = i,1,Playback(pbx-invalid) exten = i,2,Goto(s,5) ; exten = 1,1,Playback(beep) exten = 1,2,Playback(bsky-prompt-${PROMPT_NUMBER}) exten = 1,3,Playback(beep) exten = 1,4,Goto(s,6) ; exten = 2,1,Goto(app-prompt-management-record,s,1) ; exten = *,1,Playback(goodbye) exten = *,2,Hangup ; [app-prompt-management-record] ; New prompt recording exten = s,1,Playback(vm-intro) exten = s,2,Record(tmp-newprompt:wav) exten = s,3,Playback(beep) exten = s,4,BackGround(tmp-newprompt) exten = s,5,BackGround(save-announce-press) exten = s,6,BackGround(digits/1) exten = s,7,BackGround(to-rerecord-announce) exten = s,8,BackGround(digits/2) ; exten = i,1,Playback(invalid) exten = i,2,Goto(s,3) ; exten = t,1,Goto(s,3) ; exten = 1,1,System(cp -f /var/lib/asterisk/sounds/tmp-newprompt.wav /var/lib/asterisk/sounds/-prompt-${PROMPT_NUMBER}.wav) exten = 1,2,Playback(your-msg-has-been-saved) exten = 1,3,Goto(app-prompt-management,s,4) ; exten = 2,1,Goto(s,1) ; exten = *,1,Goto(app-prompt-management,s,4) ; ;######################################################### ;# Xmas Santa Line ;######################################################### [santa-line] exten = ####,1,Goto(app-xmas-record,s,1) exten = ####,1,Goto(app-xmas-playback,s,1) ; [app-xmas-record] exten = s,1,Ringing exten = s,2,Wait(4) exten = s,3,Answer exten = s,4,Playback(xmas-welcome) exten = s,5,Set(${DB(MessageCount=xmas/${CALLERIDNUM})}) exten = s,6,Set(${DB(MessageCount=$[${MessageCount} + 1])}) exten = s,7,Set(${DB(xmas/${CALLERIDNUM}=${MessageCount})}) exten = s,8,Record(xmas/${CALLERIDNUM}-${MessageCount}:gsm|10|60) exten = s,9,Playback(xmas-done) exten = s,10,Hangup exten = s,106,Set(${DB(MessageCount=1)}) exten = s,107,Goto(s,7) ; [app-xmas-playback] exten = s,1,Ringing exten = s,2,Wait(4) exten = s,3,Answer exten = s,4,Set(${DB(MessageCount=xmas/${CALLERIDNUM})}) exten = s,5,Set(${DB(CurrentMessage=1)}) exten = s,6,Playback(xmas2-recorded) exten = s,7,Playback(xmas/${CALLERIDNUM}-${CurrentMessage}) exten = s,8,Set(CurrentMessage=$[${CurrentMessage} + 1]) exten = s,9,GotoIf(${DB([${CurrentMessage} ${MessageCount}]?12:10)}) exten = s,10,Playback(beep) exten = s,11,Goto(s,7) exten = s,12,Playback(xmas2-goodbye) exten = s,13,Hangup exten = s,105,Playback(xmas2-notrecorded) exten = s,106,Hangup ; ;######################################################## ;# System Macro's area. ;######################################################## ;[macro-stdexten] exten => s,1,GotoIf(${DB(CFIM/${ARG1})}?2:3) ; Get CFIM key exten => s,2,Dial(Local/${DB(CF/${ARG1})}/n) ; Unconditional forward exten => s,3,GotoIf(${DB(DND/${ARG1})}?106) exten => s,4,Set(${DB(LASTCALL/${ARG1})=${CALLERIDNUM}) exten => s,5,Dial(SIP/${ARG1}|20|r) ; 20sec timeout exten => s,6,Voicemail(u${ARG1}) exten => s,7,Hangup exten => s,106,Voicemail(b${ARG1}) exten => s,107,Hangup ; [macro-exten-vm] ; Call extension ${ARG1} for ${ARG2} seconds, divert to voicemail on busy or noreply exten => s,1,GotoIf(${DB(CFIM/${ARG1})}?2:3) ; Get CFIM key exten => s,2,Dial(Local/${DB(CF/${ARG1})}/n) ; Unconditional forward exten => s,3,Set(${DB(DNDStatus=DND/${ARG1}) exten => s,4,GotoIf(${DNDStatus}=1?107:6) exten => s,5,Set(${DB(LASTCALL/${ARG1})=${CALLERIDNUM}) exten => s,6,Dial(SIP/${ARG1},${ARG2}) exten => s,7,Voicemail(u${ARG1}) exten => s,8,Playback(vm-goodbye) exten => s,9,Hangup exten => s,107,Voicemail(b${ARG1}) exten => s,108,Playback(vm-goodbye) exten => s,109,Hangup ; [macro-exten-novm] ; Call extension ${ARG1} for ${ARG2} seconds exten => s,1,GotoIf(${DB(CFIM/${ARG1})}?2:3) ; Get CFIM key exten => s,2,Dial(Local/${DB(CF/${ARG1})}/n) ; Unconditional forward exten => s,3,Set(${DB(DNDStatus=DND/${ARG1})}) exten => s,4,GotoIf(${DNDStatus}=1?103:102) exten => s,102,Dial(SIP/${ARG1},${ARG2}) exten => s,103,Playback(the-party-you-are-calling) exten => s,104,Playback(is-curntly-unavail) exten => s,105,Playback(pls-try-call-later) exten => s,106,Hangup exten => s,203,Busy ; [macro-unassigned-number] ; Gives tritone + number unassigned message to vacant numbers exten => s,1,Answer exten => s,2,Playback(the-number-u-dialed,noanswer) exten => s,3,SayDigits(${ARG1}) exten => s,4,Playback(not-yet-assigned,noanswer) exten => s,5,Busy ; [macro-calltrace] exten => s,1,Answer exten => s,2,Wait(1) exten => s,3,Set(${DB(LastCaller=LASTCALL/${ARG1})}) exten => s,4,GotoIf($[${LastCaller}]?5:10) exten => s,5,SayDigits(${LastCaller}) exten => s,6,Set(TIMEOUT(ditig)=3) exten => s,7,Set(TIMEOUT(response)=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-add-callerid] exten => s,1,Answer() exten => s,2,Read(EXTENSION|enter-extension-num|4) exten => s,3,Read(DIALCID|enter-new-outbound-cid|10) exten => s,4,DBPut(CID/${EXTENSION}=${DIALCID}) exten => s,5,Saydigits(${EXTENSION}) exten => s,6,Playback(has-been-set-to) exten => s,7,Saydigits(${DIALCID}) exten => s,8,Playback(auth-thankyou) exten => s,9,SetVar(AGAIN=0) exten => s,10,Read(AGAIN|enter-another-value|1) ; one for yes, any other num; exten => s,11,GotoIf($[${AGAIN} = 1]?2:12) exten => s,12,Playback(goodbye) exten => s,13,Hangup() ; [macro-faxreceive] exten => s,1,SetVar(FAXFILE=/var/spool/asterisk/fax/${CALLEDFAX}/${UNIQUEID}) exten => s,2,Set(EXTEMAIL=${MACRO_EXTEN}/xEmail) exten => s,3,NoOP() exten => s,4,Set(EXTNAME=${MACRO_EXTEN}/xName) exten => s,5,NoOP() exten => s,6,Set(EXTCOMPANY=${MACRO_EXTEN}/xCompany) exten => s,7,rxfax(${FAXFILE}.tif) exten => s,103,Set(EXTMAIL=fax@company.com) exten => s,104,Goto(7) exten => s,105,Set(EXTNAME=Unknown) exten => s,106,Goto(7) exten => s,107,Set(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 ; [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},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-call-intercom] exten => s,1,AGI(callall|${CALLERIDNUM}|${CALLERIDNUM}|${ARG1}|${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 ; [in-analog] ;used for private line answering machine...... exten => s,1,Zapateller(answer|nocallerid) exten => s,2,NoOp exten => s,2,Macro(record-on,${MYHOMEPHONE},${CALLERIDNUM}) exten => s,3,PrivacyManager exten => s,4,Dial(${PHONE1}&${PHONE2},30,Tt) exten => s,5,Answer exten => s,6,Wait(1) exten => s,7,Playback() exten => s,8,Playback() exten => s,9,Playback() exten => s,10,Voicemail(u${EXTEN}) exten => s,11,Hangup exten => s,108,Wait(2) exten => s,109,Voicemail(b${EXTEN}) exten => s,110,Hangup exten => h,1,Macro(record-cleanup) ; [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 ; [macro-sip-rollover] exten => s,1,GotoIf($[${sipline1} = Congestion]?3:2) exten => s,2,Dial(${sipline1},15,rt) exten => s,3,GotoIf($[${sipline2} = Congestion]?5:4) exten => s,4,Dial(${sipline2},15,rt) exten => s,5,GotoIf($[${sipline3} = Congestion]?7:6) exten => s,6,Dial(${sipline3},15,rt) exten => s,7,GotoIf($[${sipline4} = Congestion]?1:8) exten => s,8,Dial(${sipline4},15,rt) exten => s,9,Hangup ; [macro-zap-rollover] exten => s,1,GotoIf($[${zapline1} = Congestion]?3:2) exten => s,2,Dial(${zapline1},15,rt) exten => s,3,GotoIf($[${zapline2} = Congestion]?5:4) exten => s,4,Dial(${zapline2},15,rt) exten => s,5,GotoIf($[${zapline3} = Congestion]?7:6) exten => s,6,Dial(${zapline3},15,rt) exten => s,7,GotoIf($[${zapline4} = Congestion]?1:8) exten => s,8,Dial(${zapline4},15,rt) exten => s,9,Hangup [macro-rollover] ; Rollover macro one call per line ; This will limite the calls to one ; per line. (No call waiting). ; exten => s,1,NoOp exten => s,2,Ringing exten => s,3,Wait(2) exten => s,4,SetGroup(${CALLWAIT1}) exten => s,5,CheckGroup(1) exten => s,6,Dial(${ARG1}) exten => s,7,SetGroup(${CALLWAIT2}) exten => s,8,CheckGroup(1) exten => s,9,Dial(${ARG2}) exten => s,10,SetGroup(${CALLWAIT3}) exten => s,11,CheckGroup(1) exten => s,12,Dial($ARG3}) exten => s,13,SetGroup(${CALLWAIT4}) exten => s,14,CheckGroup(1) exten => s,15,Dial(${ARG4}) exten => s,16,Congestion exten => s,107,SetGroup(${CALLWAIT2}) exten => s,108,CheckGroup(1) exten => s,109,Dial(${ARG2}) exten => s,110,Dial(${ARG3}) exten => s,111,Dial(${ARG4}) exten => s,112,Congestion exten => s,210,SetGroup(${CALLWAIT3}) exten => s,211,CheckGroup(1) exten => s,212,Dial(${ARG3}) exten => s,213,Dial(${ARG4}) exten => s,214,Dial(${ARG1}) exten => s,215,Congestion exten => s,313,SetGroup(${CALLWAIT4}) exten => s,314,CheckGroup(1) exten => s,315,Dial(${ARG4}) exten => s,316,Dial(${ARG1}) exten => s,317,Dial(${ARG2}) exten => s,318,Dial(${ARG3}) exten => s,319,Congestion ; [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 I 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 ; [macro-system-page] ; Still developing..... exten => s,1,AbsoluteTimeout(11) exten => s,2,NoOp,${ARG1} exten => s,3,AGI,allcall.agi|SIP/${ARG1} ${EX-DESIGN} ${EX-SALES1} ; ;############################################################# ;# New Extension Testing & Debuging Tools ;############################################################# ; [ext-testing] ; exten => 899,1,AGI(systat.agi) ; requires sysstat.agi exten => 899,2,Wait(1) exten => 899,3,Playback(loadavgis) exten => 899,4,SayDigits(${LOADAVGPRE}) exten => 899,5,Playback(point) exten => 899,6,SayDigits(${LOADAVGSUF}) exten => 899,7,Wait(1) exten => 899,8,Playback(thereare) exten => 899,9,SayDigits(${NUMUSER}) exten => 899,10,Playback(userson) exten => 899,11,Wait(1) exten => 899,12,Hangup ; 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 => asterlink include => broadvoice include => iaxtel include => sipphone include => fwd include=zap1 include=zap2 include=zap3 include=zap4 include => blocked include => info-411 include => callwake-511 include => repair-611 include => paging-211 include => emerg-911 include => internal-vm include => internal-conf include => external-conf 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 => offhook include => callforward include => system-stat include => stream include => iax2-exten ; ;#################################################################### ;# All Extensions ;# Office Extensions ;# Staff Extensions ;# exten 1-9 used for autoattend menu ;# exten 10 - 40 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}) ; ;################################################### ;#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 ; ;#################################################################### ;# End of Extensions Config File # ;####################################################################