[user_services] ; any services accesible by users will go here (voicemail, meetme, etc) ;handle external polycom dnd redirects exten => _voicemail.,1,Wait(1) exten => _voicemail.,n,VoiceMail(u${EXTEN:9}@default) exten => _voicemail.,n,Hangup() ;handle voicemail retrieval from Polycom sets exten => _getmail.,1,Answer() exten => _getmail.,n,Wait(1) exten => _getmail.,n,VoiceMailMain(${EXTEN:7}@default) exten => _getmail.,n,Hangup() exten => _getmailrem.,1,noop(--==[ enter reference vmb for ${EXTEN:10} ]==--) exten => _getmailrem.,n,VoiceMail(${EXTEN:10}@default) exten => _getmailrem.,n,Hangup() ; voicemail transfer exten => _5[45]00,1,Answer() exten => _5[45]00,n,Wait(1) exten => _5[45]00,n,VoiceMailMain(${EXTEN:1}@default) exten => _5[45]00,n,Hangup() exten => _52XX,1,Answer() exten => _52XX,n,Wait(1) exten => _52XX,n,VoiceMailMain(${EXTEN:1}@default) exten => _52XX,n,Hangup() exten => _530[01],1,Answer() exten => _530[01],n,Wait(1) exten => _530[01],n,VoiceMailMain(${EXTEN:1}@default) exten => _530[01],n,Hangup() ;handle remote notification exten => _vmremote.,1,Wait(9) exten => _vmremote.,n,Set(acknowleged=0) ; initialize the variable exten => _vmremote.,n,Read(acknowleged,${varCustom_Prompts_Dir}vmremote,1,option,5,5) exten => _vmremote.,n,Verbose(2,acknowleged=${acknowleged}) exten => _vmremote.,n,Gotoif($[foo${acknowleged} = foo]?hangup:acknowleged) exten => _vmremote.,n(acknowleged),VoicemailMain(${EXTEN:8}@default,g(5)) exten => _vmremote.,n(hangup),Hangup() ; Voicemail retrieval (from perhaps external) exten => 6000,1,Wait(1) exten => 6000,n,VoiceMailMain(,g(15)) exten => 6000,n,Hangup() exten => 555,1,goto(6000,1) ; Conference rooms ; (PIN matches number - change in /etc/asterisk/meetme.conf) ; Personal Meetme Rooms ; exten => 6210,1,MeetMe(6610|MpIx) ; exten => 6210,n,Hangup() ; exten => 6211,1,MeetMe(6611|MpIx) ; exten => 6211,n,Hangup() exten => 333,1,MeetMe(|MIxp) exten => 333,n,Hangup() exten => _66XX.,1,noop(--==[ lines testing ]==--) exten => _66XX.,n,dial(zap/${EXTEN:2:2}/${EXTEN:4}) exten => _66XX.,n,Hangup() ; Play music on hold exten => 6012,1,Answer() exten => 6012,n,Musiconhold(test) exten => 6012,n,Hangup() exten => 6013,1,Answer() exten => 6013,n,Musiconhold(default) exten => 6013,n,Hangup() ; Echo test exten => 6014,1,Answer() exten => 6014,n,Echo() exten => 6014,n,Hangup() ; Internal ANIC exten => 6015,1,Answer() exten => 6015,n,Wait(1) exten => 6015,n,SayDigits(${CALLERID(num)}) exten => 6015,n,Hangup() ; test zap exten => 6016,1,Answer() exten => 6016,n,Wait(1) exten => 6016,n,Read(zap_test,enter-phone-number10,10,,,4) exten => 6016,n,GotoIf($[ ${ISNULL(${zap_test})} = 1 ]?6016,1) exten => 6016,n,Playback(the-num-i-have-is) exten => 6016,n,SayDigits(${zap_test}) exten => 6016,n(zapchn),Read(zap_num,conf-getchannel,2,,,4) exten => 6016,n,GotoIf($[ ${ISNULL(${zap_num})} = 1 ]?zapchn) exten => 6016,n,GotoIf($[${zap_num}<1]?zapchn) exten => 6016,n,GotoIf($[${zap_num}>20]?zapchn) exten => 6016,n,Set(CALLERID(name)=${MAIN_CALLER_NM}) exten => 6016,n,Set(CALLERID(num)=${MAIN_CALLER_ID}) exten => 6016,n,Noop(-----> ${CALLERID(name)} [${CALLERID(num)}] <-----) exten => 6016,n,Dial(ZAP/${zap_num}/1${zap_test},,ftT) exten => 6016,n,Hangup() ; exten => 6018,1,Answer() ; exten => 6018,n,macro(alt_number_add,412) ;${number}) ; exten => 6018,n,Hangup() ; exten => 6222,1,Noop(--== [test ] ==--) ; exten => 6222,n,Set(CALLERID(name)=Agility Recovery) ; exten => 6222,n,Set(CALLERID(num)=${MAIN_CALLER_ID}) ; exten => 6222,n,Dial(${POTS}/&Local/6018,20,r) ; exten => 6222,n,Hangup() exten => 6018,1,Noop(-----> AAT service calls) exten => 6018,n,Wait(1) exten => 6018,n,Set(DAY_NOW=$[${STRFTIME(||%H%M)}]) exten => 6018,n,noop(---> ${DAY_NOW} <---) exten => 6018,n,Hangup() exten => 6020,1,goto(main_menu,s,1) exten => 6020,n,Hangup() exten => 6021,1,goto(after_hours,s,1) exten => 6021,n,Hangup() ;Page phones exten => 6724,1,Verbose(2,${_ALERT_INFO}) exten => 6724,n,Set(_ALERT_INFO="Auto Answer") exten => 6724,n,Verbose(2,${_ALERT_INFO}) exten => 6724,n,Gotoif($[${EXISTS({PAGEROOM})}=0]?end) exten => 6724,n,Page(${PAGEROOM}|q) exten => 6724,n(end),Hangup() ; locate-me ; exten => 6777,1,Noop(-----> locate-me (${number})<------) ; exten => 6777,n,Answer() ; exten => 6777,n,Goto(loacte_me_setup,loc_me_${number},1) ; exten => 6777,n,Hangup() ; Paging port ; exten => 6017,1,Dial(ZAP/32) ; exten => 6017,n,Hangup() ; Paging all zones ; exten => 6018,1,Dial(ZAP/32,,D(ww00)) ; exten => 6018,n,Hangup() ; Reception ringer ; exten => 6054,1,Dial(SIP/554) ; exten => 6054,n,Verbose(3,row 348: ${CHANNEL} :: ${EXTEN}) ; exten => 6054,n,Voicemail(u${receptionDN}) ; exten => 6054,n,Hangup() ; ; Pickup reception ringer ; exten => 6055,1,Pickup(554) ; Speed Dial exten => _6[01]XX,1,Verbose(3,"System Speed Dial") exten => _6[01]XX,n,GoToIf($[${REGEX("60..",${EXTEN})} = 1 ]?systemspeeddial:personalspeeddial) exten => _6[01]XX,n(personalspeeddial),Set(Chan=${CUT(CHANNEL,-,1)}) exten => _6[01]XX,n,Set(ChanType=${CUT(Chan,/,1)}) exten => _6[01]XX,n,Set(ChanName=${CUT(Chan,/,2)}) exten => _6[01]XX,n,Noop(-----> ${chanvar${ChanType}${ChanName}}) exten => _6[01]XX,n,GotoIf($[ ${EXISTS(${chanvar${ChanType}${ChanName}})} = 1]?:invalid) exten => _6[01]XX,n,Set(userDN=${CUT(chanvar${ChanType}${ChanName},:,1)}) exten => _6[01]XX,n,Goto(speeddial) exten => _6[01]XX,n(systemspeeddial),Set(userDN=systemspeeddial) exten => _6[01]XX,n,Goto(speeddial) exten => _6[01]XX,n(speeddial),Noop(-----> userDN is ${userDN}) exten => _6[01]XX,n,Gotoif($["${EXTEN}"="6000"]?speeddialentry,s,1:) exten => _6[01]XX,n,Gotoif($["${EXTEN}"="6100"]?speeddialentry,s,1:) exten => _6[01]XX,n,Set(vartmpSD=${DB(SpeedDial/${userDN}/${EXTEN})}) exten => _6[01]XX,n,Gotoif($[${ISNULL(${vartmpSD})}=1]?invalidsd:${vartmpSD},1) exten => _6[01]XX,n,Hangup() exten => _6[01]XX,n(invalidsd),Noop(-----> ${BLINDTRANSFER}) exten => _6[01]XX,n,GotoIf($[${ISNULL(${BLINDTRANSFER})}=1]?invalidannounce:invalidbt) exten => _6[01]XX,n,Hangup() exten => _6[01]XX,n(invalidannounce),Answer() exten => _6[01]XX,n,Wait(1) exten => _6[01]XX,n,Playback(invalid) exten => _6[01]XX,n,Hangup() exten => _6[01]XX,n(invalidbt),Noop(-----> Send back to person who transfered) exten => _6[01]XX,n,Wait(3) exten => _6[01]XX,n,Goto(${CUT(CUT(BLINDTRANSFER,,1),/,2)},1) exten => _6[01]XX,n,Hangup() exten => _6[01]XX,n(invalid),Noop(-----> no valid chanVAR) exten => _6[01]XX,n,Hangup() ; Transfer directly to voicemail exten => _64XX,1,Answer() exten => _64XX,n,Noop(---> ${EXTEN:2} <---) exten => _64XX,n,Set(Voicemailbox=${IF($[${ISNULL(${RefVM${EXTEN:1}})}=1]?2${EXTEN:2}:${RefVM${EXTEN:2}})}) exten => _64XX,n,Gotoif($[${ISNULL(${RefIAXVM${EXTEN:1}})}=1]?:getmailrem${RefIAXVM${EXTEN:1}},1) exten => _64XX,n,VoiceMail(${Voicemailbox},u) exten => _64XX,n,Hangup() ; Remote forwarding "393" spells FWD on the dialpad exten => _63XX,1,Answer() exten => _63XX,n,Authenticate(4${EXTEN:2}) exten => _63XX,n,Set(ExtFwd=4${EXTEN:2}) exten => _63XX,n,Goto(remote_forwarding,s,1) exten => _63XX,n,Hangup() ; Personal Meetme Rooms ; #include /etc/asterisk/extensions_meetme.conf ; Holiday prompt recording (6HOL) exten => 6765,1,Answer() exten => 6765,n(newprompt),Record(${varCustom_Prompts_Dir}holiday.wav) exten => 6765,n,Wait(1) exten => 6765,n(promptexists),Playback(${varCustom_Prompts_Dir}holiday) exten => 6765,n,Hangup() ; Prompt recording (these prompts are placed in the /tmp folder, from which ; they can be copied to wherever they are needed exten => _65XX,1,Wait(1) exten => _65XX,n,Record(/tmp/${EXTEN}.wav) exten => _65XX,n,Wait(2) exten => _65XX,n,Playback(/tmp/${EXTEN}) exten => _65XX,n,Hangup() ;#extension preceeded by 4 announces transferred call exten=>_42XX,1,Answer() exten=>_42XX,n,Dial(Sip/${EXTEN:1},40,M(trx-announce)); exten=>_42XX,n,Hangup() ; Dial ZERO for Operator ;exten => 0,1,Noop() ;exten => 0,n,Verbose(2,${EVAL(${${RECEPTION}})}) ;exten => 0,n,Verbose(2,${CUT(${${RECEPTION}},/,1)}) ;exten => 0,n,Verbose(2,${${RECEPTION}}) ;exten => 0,n,Macro(reception,${CUT(RECEPTION,N,2)},${${RECEPTION}}) include => parkedcalls