Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; This file contains example extensions_custom.conf entries.
- ; extensions_custom.conf should be used to include customizations
- ; to AMP's Asterisk dialplan.
- ; Extensions in AMP have access to the 'from-internal' context.
- ; The context 'from-internal-custom' is included in 'from-internal' by default
- [from-internal-custom]
- ;# // BEGIN Star
- exten => *,1,Answer
- exten => *,n,Wait(1)
- exten => *,n,Set(TIMEOUT(digit)=7)
- exten => *,n,Set(TIMEOUT(response)=10)
- ;exten => *,n(retryit),Flite("Star, at your service. How can I help you today.")
- exten => *,n(retryit),agi(ibmtts.php,"Star, at your service. How can I help you today.",en)
- exten => *,n,agi(speech-recog.agi,en-US)
- exten => *,n,Noop(= Script returned: ${status} , ${id} , ${confidence} , ${utterance} =)
- ;exten => *,n,GotoIf($["${confidence}" > "0.4"]?proceednow:retryit)
- ;exten => *,n(proceednow),agi(googletts.agi,"${utterance}. Here we go.",en)
- exten => *,n(proceednow),agi(ibmtts.php,"${utterance}. Here we go.",en)
- exten => *,n,AGI(nv-star.php,${utterance})
- exten => *,n,NoOp(Answer: ${ANSWER})
- exten => *,n,GotoIf($["${ANSWER}" = "*WOLFRAMALPHA"]?4747,12)
- exten => *,n,GotoIf($["${ANSWER}" = "*CALL"]?callproc)
- exten => *,n,GotoIf($["${ANSWER}" = "*DIAL"]?dialproc:playit)
- exten => *,n(callproc),Set(NAME2CALL=${utterance:5})
- exten => *,n,Set(utterance=${NAME2CALL})
- exten => *,n,Goto(411,11)
- exten => *,n(dialproc),Set(DIAL=${utterance})
- ;exten => *,n,Dial(local/${DIAL}@from-internal)
- exten => *,n,Goto(outbound-allroutes,${DIAL},1)
- exten => *,n,Hangup
- ;exten => *,n(playit),Flite("${ANSWER}")
- exten => *,n(playit),agi(ibmtts.php,"${ANSWER}",en)
- exten => *,n,Hangup
- ;# // END Star
- ;# // BEGIN Reminders
- exten => 123,1,Answer
- exten => 123,2,Wait(1)
- exten => 123,3,Authenticate(123456)
- exten => 123,4,Goto(reminder,s,1)
- ;# // END Reminders
- ;# // BEGIN Wolfram Alpha
- ; Wolfram Alpha Dialplan Interface for Incredible PBX 13-13 servers
- ; Before use, enter your Wolfram Alpha App ID in /var/lib/asterisk/agi-bin/wolfram.sh
- ; See the Nerd Vittles tutorial for details: http://nerdvittles.com/?p=798
- exten => 4747,1,Answer()
- exten => 4747,n,Wait(1)
- ;exten => 4747,n,flite("After the beep, Say your command, then Press the pound key.")
- exten => 4747,n,agi(ibmtts.php,"After the beep, Say your command, then Press the pound key.")
- exten => 4747,n,Set(RANDFILE=${RAND(8000,8599)})
- exten => 4747,n,Record(/tmp/${RANDFILE}.wav,3,10)
- ;exten => 4747,n,Flite("I think you said:")
- exten => 4747,n,agi(ibmtts.php,"I think you said:")
- exten => 4747,n,Playback(/tmp/${RANDFILE})
- ;exten => 4747,n,Flite("If this is correct. press 1.")
- exten => 4747,n,agi(ibmtts.php,"If this is correct. press 1.")
- exten => 4747,n,Read(MYCHOICE,beep,1)
- exten => 4747,n,GotoIf($["foo${MYCHOICE}" = "foo1"]?wolfproceed:wolfdone)
- ;exten => 4747,n(wolfproceed),Flite("One moment please while we contact wolfrum alpha.")
- exten => 4747,n(wolfproceed),agi(ibmtts.php,"One moment please while we contact wolfrum alpha.")
- exten => 4747,n,AGI(wolfram.sh,${RANDFILE})
- exten => 4747,n,Set(foo=${FILE(/tmp/results.txt)})
- exten => 4747,n,flite("${foo}")
- ;exten => 4747,n,agi(ibmtts.php,"${foo}")
- ;exten => 4747,n(wolfdone),flite("Have a nice day! Good bye.")
- exten => 4747,n(wolfdone),agi(ibmtts.php,"Have a nice day! Good bye.")
- exten => 4747,n,hangup
- ;# // END Wolfram Alpha
- ;# // BEGIN SMS Dictator
- exten => 767,1,Answer
- exten => 767,n,Wait(1)
- exten => 767,n,Flite("Please enter the 10 digit S.M.S number.")
- exten => 767,n,Read(SMSNUM,beep,10)
- exten => 767,n,Flite("S.M.S message will be sent two.")
- exten => 767,n,SayDigits("${SMSNUM}")
- exten => 767,n,Flite("To proceed. press 1.")
- exten => 767,n,Read(MYPICK,beep,1)
- exten => 767,n,GotoIf($["foo${MYPICK}" = "foo1"]?smsrecord:smsdone)
- exten => 767,n(smsrecord),Flite("After the beep. I will reecord your S.M.S message. When you're finished. press the pound key.")
- exten => 767,n,Set(RANDFILE=${RAND(8000,8599)})
- exten => 767,n,Record(/tmp/${RANDFILE}.wav,3,10)
- exten => 767,n,Flite("I think you said:")
- exten => 767,n,Playback(/tmp/${RANDFILE})
- exten => 767,n,Flite("If this is correct. press 1.")
- exten => 767,n,Read(MYCHOICE,beep,1)
- exten => 767,n,GotoIf($["foo${MYCHOICE}" = "foo1"]?smsproceed:smsdone)
- exten => 767,n(smsproceed),Flite("One moment please while we send your message.")
- exten => 767,n,AGI(smsgen.sh,${RANDFILE},${SMSNUM})
- exten => 767,n,Flite("S.M.S message has been sent.")
- exten => 767,n(smsdone),Playback(goodbye)
- exten => 767,n,Hangup
- ;# // END SMS Dictator
- ;# // BEGIN Call by Name
- exten => 411,1,Answer
- exten => 411,n,Playback(custom/411)
- exten => 411,n,Set(RANDFILE=${RAND(8000,8599)})
- exten => 411,n,Record(/tmp/${RANDFILE}.wav,3,10)
- exten => 411,n,Playback(/tmp/${RANDFILE})
- exten => 411,n,AGI(getnumber.sh,${RANDFILE})
- exten => 411,n,NoOp(Party to call : ${PTY2CALL})
- exten => 411,n,NoOp(Number to call: ${NUM2CALL})
- exten => 411,n,Goto(outbound-allroutes,${NUM2CALL},1)
- exten => 411,n,Hangup()
- exten => h,1,Hangup()
- ;# // END Call by Name
- ;# // BEGIN nv-news-yahoo
- exten => 951,1,Answer
- exten => 951,n,Wait(1)
- exten => 951,n,Set(TIMEOUT(digit)=7)
- exten => 951,n,Set(TIMEOUT(response)=10)
- ;exten => 951,n(proceed),agi(picotts.agi,"Please hold a moment while we retrieve the latest Yahoo news headlines.",en-US)
- exten => 951,n,Playback(/var/lib/asterisk/agi-bin/pleaseholdyahoo)
- exten => 951,n,AGI(nv-news-yahoo.php,10)
- exten => 951,n,NoOp(News: ${NEWS})
- ;exten => 951,n,Flite("${NEWS}")
- ;exten => 951,n,AGI(googletts.agi,"${NEWS}",en)
- ;exten => 951,n,AGI(picotts.agi,"${NEWS}",en-US)
- exten => 951,n,agi(ibmtts.php,"${NEWS}")
- exten => 951,n,Hangup
- ;# // END nv-news-yahoo
- ;# // BEGIN Weather by ZIP
- exten => 947,1,Answer
- exten => 947,n,Wait(1)
- exten => 947,n,Set(TIMEOUT(digit)=7)
- exten => 947,n,Set(TIMEOUT(response)=10)
- ;exten => 947,n,agi(picotts.agi,"At the beep enter the five digit zip code for the weather report you wish to retrieve.",en-US)
- exten => 947,n,Playback(/var/lib/asterisk/agi-bin/zipcode)
- exten => 947,n,Read(ZIPCODE,beep,5)
- ;exten => 947,n,agi(picotts.agi,"Please hold a moment while we contact the National Weather Service.",en-US)
- exten => 947,n,Playback(/var/lib/asterisk/agi-bin/pleaseholdnws)
- exten => 947,n,System(sqlite3 /var/lib/asterisk/agi-bin/zipcodes.sqlite "select city,latitude,longitude from zipcodes where zip=${ZIPCODE}" > /tmp/${ZIPCODE})
- exten => 947,n,AGI(nv-weather-zip.php,${ZIPCODE})
- exten => 947,n,NoOp(Weather: ${WEATHER})
- ;exten => 947,n,Flite("${WEATHER}")
- ;exten => 947,n,AGI(googletts.agi,"${WEATHER}",en)
- ;exten => 947,n,AGI(picotts.agi,"${WEATHER}",en-US)
- exten => 947,n,agi(ibmtts.php,"${WEATHER}")
- exten => 947,n,Hangup
- ;# // END Weather by ZIP
- ;# // BEGIN Travelin' Man 4 Dialer
- exten => 864,1,Answer
- exten => 864,n,Wait(2)
- exten => 864,n,Flite("Please enter your account number.")
- exten => 864,n,Read(MYACCTNO,beep,8)
- exten => 864,n,NoOp(ACCTNO: ${MYACCTNO})
- exten => 864,n,Flite("Please enter your PIN.")
- exten => 864,n,Read(MYPIN,beep,5)
- exten => 864,n,NoOp(PIN: ${MYPIN})
- exten => 864,n,Set(USERDATA=${ODBC_TRAVMAN4(${MYACCTNO})})
- exten => 864,n,GotoIf($["${USERDATA},foo" = ",foo"]?notfound)
- exten => 864,n,Set(ACCTNO=${CUT(USERDATA,\,,1)})
- exten => 864,n,Set(PIN=${CUT(USERDATA,\,,2)})
- exten => 864,n,GotoIf($["${MYPIN}" = "${PIN}"]?anothertry:notfound)
- exten => 864,n(theanswer),Flite("Account number:")
- exten => 864,n,SayDigits(${ACCTNO})
- exten => 864,n,Flite("PIN:")
- exten => 864,n,SayDigits(${PIN})
- exten => 864,n,NoOp(Entry: ${ACCTNO} - ${PIN})
- exten => 864,n(anothertry),Flite("After the beep. Please enter I.P. add dress using the star key for periods. Press pound key when finished.")
- exten => 864,n,Read(MYIP,beep,16)
- exten => 864,n,Flite("I.P. ADD DRESS:")
- exten => 864,n,SayDigits(${MYIP})
- exten => 864,n(confirm),Flite("After the beep. Press 1 to process this entry. Or press 2 to start over.")
- exten => 864,n,Read(REPEAT,beep,1)
- exten => 864,n,GotoIf($["${REPEAT}" = "2"]?anothertry)
- exten => 864,n,GotoIf($["${REPEAT}" = "1"]?saveit)
- exten => 864,n,Goto(confirm)
- exten => 864,n,Flite("Entry aborted. Have a nice day. Good bye.")
- exten => 864,n,Hangup
- exten => 864,n(notfound),Flite("No matching entry on file. Good bye.")
- exten => 864,n,Hangup
- exten => 864,n(saveit),System(echo -e "${MYIP}" > /etc/asterisk/tm4/${ACCTNO})
- exten => 864,n,Flite("Your I.P. address has been saved. An e mail will be sent when new address has been activated. Good bye.")
- exten => 864,n,Hangup
- ;# // END Travelin' Man 4 Dialer
- #include odbc.conf
- #include extensions_user_custom.conf
- #include extensions_google.conf
- include => phone
- include => google_api
- #include extensions_alexa.conf
- include => alexa_tts
- ;# // BEGIN Today in History
- exten => 86329,1,Answer
- exten => 86329,n,Wait(1)
- exten => 86329,n,Set(TIMEOUT(digit)=7)
- exten => 86329,n,Set(TIMEOUT(response)=10)
- exten => 86329,n,AGI(nv-today.php)
- exten => 86329,n,Playback(/tmp/today)
- exten => 86329,n,Hangup
- ;# // END Today in History
- ;# // BEGIN Call by Code
- exten => 412,1,Answer
- exten => 412,2,Wait(1)
- exten => 412,3,Set(TIMEOUT(digit)=7)
- exten => 412,4,Set(TIMEOUT(response)=10)
- exten => 412,5,GotoIf($[${STAT(e,/usr/bin/swift)}]?8)
- exten => 412,6,Flite("At the beep enter the first three letters of the name of the person you wish to contact.")
- exten => 412,7,Goto(412,9)
- exten => 412,8,Swift("At the beep enter the first three letters of the name of the person you wish to contact.")
- exten => 412,9,Read(DIALCODE,beep,3)
- exten => 412,10,NoOp(Name lookup: ${DIALCODE})
- exten => 412,11,AGI(nv-callwho2.php,${DIALCODE})
- exten => 412,12,NoOp(Number to call: ${NUM2CALL})
- exten => 412,13,GotoIf($["foo${NUM2CALL}" = "foo0"]?15)
- exten => 412,14,Goto(outbound-allroutes,${NUM2CALL},1)
- exten => 412,15,Wait(1)
- exten => 412,16,Hangup
- ;# // END Call by Code
- ;# // BEGIN xTide
- exten => 8433,1,Answer
- exten => 8433,n,Wait(1)
- exten => 8433,n,System(/var/lib/asterisk/agi-bin/xtide)
- exten => 8433,n,Playback(/tmp/xtide)
- exten => 8433,n,Wait(1)
- exten => 8433,n,Hangup
- ;# // END xTide
- ;# // BEGIN AsteriDex SpeedDial
- exten => _000.,1,Answer
- exten => _000.,n,SayDigits(${EXTEN:3}) ; extensions dialed with 000 prefix get looked up in AsteriDex
- exten => _000.,n,AGI(asteridex.php,${EXTEN})
- exten => _000.,n,GotoIf($["${DIAL:0:3}" = "000"]?97)
- exten => _000.,n,NoOp(Number to Dial: ${DIAL})
- exten => _000.,n,NoOp(Person to Dial: ${DUDE})
- exten => _000.,n,Flite("Connecting to: ${DUDE}. One moment please.")
- exten => _000.,n,Dial(local/${DIAL}@from-internal)
- exten => _000.,n,Goto(outbound-allroutes,${DIAL},1)
- exten => _000.,n,Hangup()
- exten => _000.,97,Playback(num-not-in-db)
- exten => _000.,98,Playback(goodbye)
- exten => _000.,99,Hangup()
- ;# // END AsteriDex SpeedDial
- exten => 1234,1,Answer
- exten => 1234,n,Playback(custom/call-intro)
- exten => 1234,n(startagain),Playback(custom/name-dob)
- exten => 1234,n,Set(RANDFILE1=${RAND(8000,8599)})
- exten => 1234,n,Record(/tmp/${RANDFILE1}.wav,5,20)
- exten => 1234,n,Playback(/tmp/${RANDFILE1})
- exten => 1234,n,NoOp(File name: /tmp/${RANDFILE1})
- exten => 1234,n,Playback(custom/address)
- exten => 1234,n,Set(RANDFILE2=${RAND(8000,8599)})
- exten => 1234,n,Record(/tmp/${RANDFILE2}.wav,5,30)
- exten => 1234,n,Playback(/tmp/${RANDFILE2})
- exten => 1234,n,NoOp(File name: /tmp/${RANDFILE2})
- exten => 1234,n,Playback(custom/scripts)
- exten => 1234,n,Set(RANDFILE3=${RAND(8000,8599)})
- exten => 1234,n,Record(/tmp/${RANDFILE3}.wav,5,40)
- exten => 1234,n,Playback(/tmp/${RANDFILE3})
- exten => 1234,n,NoOp(File name: /tmp/${RANDFILE3})
- exten => 1234,n,System(/usr/bin/sox /tmp/${RANDFILE1}.wav /tmp/${RANDFILE2}.wav /tmp/${RANDFILE3}.wav /tmp/recordingsox.wav)
- exten => 1234,n,System(rm -f /tmp/8*.wav)
- exten => 1234,n,Set(TIMEOUT(response)=10)
- exten => 1234,n(askagain),Playback(/tmp/recordingsox)
- exten => 1234,n,Playback(to-rerecord-yr-message)
- exten => 1234,n,Playback(press)
- exten => 1234,n,Playback(digits/star)
- exten => 1234,n,Playback(otherwise-press)
- exten => 1234,n,Playback(digits/1)
- exten => 1234,n,Read(MYCHOICE,beep,1)
- exten => 1234,n,GotoIf($["${MYCHOICE}" = "1"]?notagain)
- exten => 1234,n,GotoIf($["${MYCHOICE}" = "*"]?startagain)
- exten => 1234,n,Goto(askagain)
- exten => 1234,n(notagain),System(echo "Channel: local/*701@from-internal" > /tmp/alert.call)
- exten => 1234,n,System(echo "MaxRetries: 0" >> /tmp/alert.call)
- exten => 1234,n,System(echo "RetryTime: 0" >> /tmp/alert.call)
- exten => 1234,n,System(echo "WaitTime: 30" >> /tmp/alert.call)
- exten => 1234,n,System(echo "Context: from-internal-custom" >> /tmp/alert.call)
- exten => 1234,n,System(echo "Extension: 12345" >> /tmp/alert.call)
- exten => 1234,n,System(echo "Priority: 1" >> /tmp/alert.call)
- exten => 1234,n,System(mv /tmp/alert.call /var/spool/asterisk/outgoing)
- exten => 1234,n,Playback(your-msg-has-been-saved)
- exten => 1234,n,Playback(goodbye)
- exten => 1234,n,Hangup()
- exten => 12345,1,Answer
- exten => 12345,n,Wait(10)
- exten => 12345,n,Set(THEANSWER="/tmp/sample2")
- exten => 12345,n,Playback(${THEANSWER})
- exten => 12345,n,Hangup
- include => custom-recordme ; extensions can also dial 5678
- ;# // BEGIN SIP URI Mod1
- ; Portions of the following code are Copyright (c) 2019, Ward Mundy & Associates LLC
- ; Licensed for use pursuant to GPL2: https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html
- exten => _.,1,Set(MyDomain=${CUT(SIPCALLID,@,2)})
- exten => _.,n,NoOp(SIPDOMAIN: ${SIPDOMAIN})
- exten => _.,n,GotoIf($["foo${MyDomain}" != "foo"]?FoundDomain)
- exten => _.,n,Set(SIPDOMAIN=${DB(MyDomain/FQDN)})
- exten => _.,n,Set(MyDomain=${DB(MyDomain/FQDN)})
- exten => _.,n(FoundDomain),GotoIf($["${MyDomain}" = "${SIPDOMAIN}"]?OutAllRoutes)
- exten => _.,n,Macro(uridial,${EXTEN}@${SIPDOMAIN})
- exten => _.,n(OutAllRoutes),Set(DSTRING=${LEN(${EXTEN})})
- exten => _.,n,ExecIf($["${DSTRING}" > "5"]?Goto(outbound-allroutes,${EXTEN},1)
- exten => _.,n,Dial(local/${EXTEN}@from-internal-additional)
- ;# // END SIP URI Mod1
- ; custom-count2four,s,1 can be used as a custom target for
- ; a Digital Receptionist menu or a Ring Group
- [custom-count2four]
- exten => s,1,SayDigits(1234)
- exten => s,2,Hangup
- ; custom-recordme,5678,1 can be used as a custom target for
- ; a Digital Receptionist menu or a Ring Group
- [custom-recordme]
- exten => 5678,1,Wait(2)
- exten => 5678,2,Record(/tmp/asterisk-recording:gsm)
- exten => 5678,3,Wait(2)
- exten => 5678,4,Playback(/tmp/asterisk-recording)
- exten => 5678,5,Wait(2)
- exten => 5678,6,Hangup
- ; This macro is for dev purposes and just dumps channel/app variables. Useful when designing new contexts.
- [macro-dumpvars]
- exten => s,1,Noop(ACCOUNTCODE=${ACCOUNTCODE})
- exten => s,2,Noop(ANSWEREDTIME=${ANSWEREDTIME})
- exten => s,3,Noop(BLINDTRANSFER=${BLINDTRANSFER})
- exten => s,4,Noop(CALLERID=${CALLERID(all)})
- exten => s,5,Noop(CALLERID(name)=${CALLERID(name)})
- exten => s,6,Noop(CALLERID(number)=${CALLERID(number)})
- exten => s,7,Noop(CALLINGPRES=${CALLINGPRES})
- exten => s,8,Noop(CHANNEL=${CHANNEL})
- exten => s,9,Noop(CONTEXT=${CONTEXT})
- exten => s,10,Noop(DATETIME=${STRFTIME(${EPOCH},,%d%m%Y-%H:%M:%S)})
- exten => s,11,Noop(DIALEDPEERNAME=${DIALEDPEERNAME})
- exten => s,12,Noop(DIALEDPEERNUMBER=${DIALEDPEERNUMBER})
- exten => s,13,Noop(DIALEDTIME=${DIALEDTIME})
- exten => s,14,Noop(DIALSTATUS=${DIALSTATUS})
- exten => s,15,Noop(DNID=${CALLERID(dnid)})
- exten => s,16,Noop(EPOCH=${EPOCH})
- exten => s,17,Noop(EXTEN=${EXTEN})
- exten => s,18,Noop(HANGUPCAUSE=${HANGUPCAUSE})
- exten => s,19,Noop(INVALID_EXTEN=${INVALID_EXTEN})
- exten => s,20,Noop(LANGUAGE=${LANGUAGE()})
- exten => s,21,Noop(MEETMESECS=${MEETMESECS})
- exten => s,22,Noop(PRIORITY=${PRIORITY})
- exten => s,23,Noop(RDNIS=${CALLERID(rdnis)}})
- exten => s,24,Noop(SIPDOMAIN=${SIPDOMAIN})
- exten => s,25,Noop(SIP_CODEC=${SIP_CODEC})
- exten => s,26,Noop(SIPCALLID=${SIPCALLID})
- exten => s,27,Noop(SIPUSERAGENT=${SIPUSERAGENT})
- exten => s,28,Noop(TXTCIDNAME=${TXTCIDNAME})
- exten => s,29,Noop(UNIQUEID=${UNIQUEID})
- exten => s,30,Noop(TOUCH_MONITOR=${TOUCH_MONITOR})
- exten => s,31,Noop(MACRO_CONTEXT=${MACRO_CONTEXT})
- exten => s,32,Noop(MACRO_EXTEN=${MACRO_EXTEN})
- exten => s,33,Noop(MACRO_PRIORITY=${MACRO_PRIORITY})
- ;[google-out]
- ; you will need to replace buddy@gmail.com with something real
- ;exten => 701,1,Dial(gtalk/gtalk_account/buddy@gmail.com)
- ;[google-in]
- ;exten => s,1,NoOp( Call from Gtalk )
- ;exten => s,n,Set(CALLERID(name)="From Google Talk")
- ;exten => s,n,Dial(SIP/100) ; this can be a ringgroup or direct extension
- ;jabber notification of inbound call
- ;exten => 703,1,JABBERSend(gtalk_account,buddy@gmail.com,Inbound call from ${CALLERID(all)})
- [custom-callboth]
- exten => _1NXXNXXXXXX,1,Wait(1)
- exten => _1NXXNXXXXXX,n,Background(pls-wait-connect-call)
- exten => _1NXXNXXXXXX,n,Goto(outbound-allroutes,${EXTEN},1)
- exten => _NXXNXXXXXX,1,Wait(1)
- exten => _NXXNXXXXXX,n,Background(pls-wait-connect-call)
- exten => _NXXNXXXXXX,n,Goto(outbound-allroutes,${EXTEN},1)
- [reminder]
- exten => s,1,Set(TIMEOUT(digit)=7)
- exten => s,2,Set(TIMEOUT(response)=10)
- exten => s,3,Playback(custom/reminder1)
- exten => s,4,Wait(2)
- exten => s,5,Set(TMPMSG=${CUT(UNIQUEID,.,-1)}${CUT(UNIQUEID,.,2-)})
- exten => s,6,Record(custom/${TMPMSG}:gsm)
- exten => s,7,Wait(1)
- exten => s,8,Playback(custom/${TMPMSG})
- exten => s,9,Wait(1)
- exten => s,10,Background(vm-review)
- exten => s,11,WaitExten()
- exten => 1,1,Goto(reminder7,s,1)
- exten => 2,1,Goto(s,8)
- exten => 3,1,Goto(s,3)
- exten => t,1,Goto(s,10)
- exten => i,1,Playback(goodbye)
- exten => i,2,Hangup
- exten => h,1,Hangup
- [reminder2]
- exten => s,1,Set(TIMEOUT(digit)=7)
- exten => s,2,Set(TIMEOUT(response)=10)
- exten => s,3,Read(APPTDT,custom/reminder2,8)
- exten => s,4,AGI(checkdate.php,${APPTDT})
- exten => s,5,GotoIf($["foo${HOTDATE}" = "fooBAD"]?99,1)
- exten => s,6,Playback(you-entered)
- exten => s,7,GotoIf($["foo${HOTDATE}" = "fooTODAY"]?s,10)
- exten => s,8,SayUnixTime(${HOTDATE},,ABdY)
- exten => s,9,Goto(s,11)
- exten => s,10,Playback(custom/today)
- exten => s,11,Goto(reminder3,s,1)
- exten => 99,1,Playback(conf-errormenu)
- exten => 99,2,Goto(s,3)
- exten => t,1,Goto(s,3)
- exten => i,1,Goto(s,3)
- exten => h,1,Hangup
- [reminder3]
- exten => s,1,Set(TIMEOUT(digit)=7)
- exten => s,2,Set(TIMEOUT(response)=10)
- exten => s,3,Background(if-correct-press)
- exten => s,4,Background(digits/1)
- exten => s,5,Background(otherwise-press)
- exten => s,6,Background(digits/2)
- exten => s,7,Background(press-star-cancel)
- exten => s,8,WaitExten()
- exten => 1,1,Goto(reminder4,s,1)
- exten => 2,1,Goto(reminder2,s,1)
- exten => *,1,Playback(goodbye)
- exten => *,2,System(/bin/rm -f /var/lib/asterisk/sounds/custom/${TMPMSG}.gsm)
- exten => *,3,Hangup
- exten => t,1,Goto(reminder2,s,6)
- exten => i,1,Goto(reminder2,s,6)
- exten => h,1,Hangup
- [reminder4]
- exten => s,1,Set(TIMEOUT(digit)=7)
- exten => s,2,Set(TIMEOUT(response)=10)
- exten => s,3,Read(APPTTIME,custom/reminder3,4)
- exten => s,4,GotoIf($["foo${APPTTIME}" < "foo1200"]?reminder5,s,1)
- exten => s,5,AGI(checktime.php,${APPTDT},${APPTTIME},0,${APPTPHONE})
- exten => s,6,GotoIf($["foo${HOTTIME}" = "fooBAD"]?99,1)
- exten => s,7,Playback(you-entered)
- exten => s,8,SayUnixTime(${HOTTIME},,ABdY)
- exten => s,9,Playback(digits/at)
- exten => s,10,SayUnixTime(${HOTTIME},,IMP)
- exten => s,11,Goto(s,18)
- exten => s,12,AGI(checktime.php,${APPTDT},${APPTTIME},1200,${APPTPHONE})
- exten => s,13,GotoIf($["foo${HOTTIME}" = "fooBAD"]?99,1)
- exten => s,14,Playback(you-entered)
- exten => s,15,SayUnixTime(${HOTTIME},,ABdY)
- exten => s,16,Playback(digits/at)
- exten => s,17,SayUnixTime(${HOTTIME},,IMp)
- exten => s,18,Goto(reminder6,s,1)
- exten => 99,1,Playback(conf-errormenu)
- exten => 99,2,Goto(s,3)
- exten => t,1,Goto(s,3)
- exten => i,1,Goto(s,3)
- exten => h,1,Hangup
- [reminder5]
- exten => s,1,Set(TIMEOUT(digit)=7)
- exten => s,2,Set(TIMEOUT(response)=10)
- exten => s,3,Background(1-for-am-2-for-pm)
- exten => s,4,WaitExten()
- exten => 1,1,Goto(reminder4,s,5)
- exten => 2,1,Goto(reminder4,s,12)
- exten => *,1,Playback(goodbye)
- exten => *,2,System(/bin/rm -f /var/lib/asterisk/sounds/custom/${TMPMSG}.gsm)
- exten => *,3,Hangup
- exten => t,1,Goto(reminder4,s,1)
- exten => i,1,Goto(s,1)
- exten => h,1,Hangup
- [reminder6]
- exten => s,1,Set(TIMEOUT(digit)=7)
- exten => s,2,Set(TIMEOUT(response)=10)
- exten => s,3,Background(if-correct-press)
- exten => s,4,Background(digits/1)
- exten => s,5,Background(otherwise-press)
- exten => s,6,Background(digits/2)
- exten => s,7,Background(press-star-cancel)
- exten => s,8,WaitExten()
- exten => 1,1,Goto(reminder9,s,1)
- exten => 2,1,Goto(reminder4,s,1)
- exten => *,1,Playback(goodbye)
- exten => *,2,System(/bin/rm -f /var/lib/asterisk/sounds/custom/${TMPMSG}.gsm)
- exten => *,3,Hangup
- exten => t,1,Goto(reminder6,s,3)
- exten => i,1,Goto(reminder6,s,3)
- exten => h,1,Hangup
- [reminder7]
- exten => s,1,Set(TIMEOUT(digit)=7)
- exten => s,2,Set(TIMEOUT(response)=10)
- exten => s,3,Read(APPTPHONE,custom/reminder4,0)
- exten => s,4,Goto(reminder8,s,1)
- exten => t,1,Goto(reminder8,s,1)
- exten => i,1,Goto(s,3)
- exten => #,1,Goto(reminder8,s,1)
- exten => h,1,Hangup
- [reminder8]
- exten => s,1,Set(TIMEOUT(digit)=7)
- exten => s,2,Set(TIMEOUT(response)=10)
- exten => s,3,GotoIf($["foo${APPTPHONE}" = "foo"]?4:5)
- exten => s,4,Set(APPTPHONE=${CALLERID(number)})
- exten => s,5,Playback(you-entered)
- exten => s,6,SayDigits(${APPTPHONE})
- exten => s,7,Background(if-correct-press)
- exten => s,8,Background(digits/1)
- exten => s,9,Background(otherwise-press)
- exten => s,10,Background(digits/2)
- exten => s,11,Background(press-star-cancel)
- exten => s,12,WaitExten()
- exten => 1,1,Goto(reminder2,s,1)
- exten => 2,1,Goto(reminder7,s,1)
- exten => *,1,Playback(goodbye)
- exten => *,2,System(/bin/rm -f /var/lib/asterisk/sounds/custom/${TMPMSG}.gsm)
- exten => *,3,Hangup
- exten => t,1,Goto(reminder8,s,5)
- exten => i,1,Goto(reminder8,s,5)
- exten => h,1,Hangup
- [reminder9]
- exten => s,1,Set(TIMEOUT(digit)=7)
- exten => s,2,Set(TIMEOUT(response)=10)
- exten => s,3,Read(APPTRECUR,custom/reminder6,1)
- exten => s,4,Goto(reminder9a,s,1)
- exten => t,1,Goto(s,3)
- exten => i,1,Goto(s,3)
- exten => #,1,Goto(reminder9a,s,1)
- exten => h,1,Hangup
- [reminder9a]
- exten => s,1,NoOp(APPTDT: ${APPTDT})
- exten => s,2,NoOp(APPTTIME: ${APPTTIME})
- exten => s,3,NoOp(APPTPHONE: ${APPTPHONE})
- exten => s,4,NoOp(RECURRING: ${APPTRECUR})
- exten => s,5,NoOp(APPTMSG: /var/lib/asterisk/sounds/custom/${APPTTIME}.${APPTDT}.${APPTPHONE}.gsm)
- exten => s,6,Playback(your-msg-has-been-saved)
- exten => s,7,Playback(goodbye)
- exten => s,8,Wait(2)
- exten => s,9,Hangup
- exten => h,1,System(/bin/mv -f /var/lib/asterisk/sounds/custom/${TMPMSG}.gsm /var/lib/asterisk/sounds/custom/${APPTTIME}.${APPTDT}.${APPTPHONE}.gsm)
- exten => h,2,DeadAGI(reminder.php,${APPTDT},${APPTTIME},${APPTPHONE},${APPTRECUR})
- exten => h,3,Hangup
- [remindem]
- exten => s,1,Answer
- exten => s,2,Wait(2)
- exten => s,3,Set(TIMEOUT(digit)=7)
- exten => s,4,Set(TIMEOUT(response)=10)
- exten => s,5,Playback(custom/reminder5)
- exten => s,6,Wait(2)
- exten => s,7,Playback(custom/${MSG})
- exten => s,8,Set(TIMEOUT(digit)=4)
- exten => s,9,Set(TIMEOUT(response)=5)
- exten => s,10,Set(counter=1)
- exten => s,11,Background(to-hear-msg-again)
- exten => s,12,Background(press-1)
- exten => s,13,Background(otherwise-press)
- exten => s,14,Read(lepick,digits/2,1)
- exten => s,15,GotoIf($["${lepick}" = "2"]?alldone,1:onemo,1)
- exten => onemo,1,NoOp(Callee Replayed Message. Dialed: ${APPTPHONE}.)
- exten => onemo,2,Playback(custom/${MSG}) ; playing again by request
- exten => onemo,3,Set(counter=${counter}+1)
- exten => onemo,4,GotoIf($["${counter}" = "1+1+1"]?alldone,1:s,11)
- exten => alldone,1,Background(goodbye)
- exten => alldone,2,NoOp(Callee Acknowledged Call. Dialed: ${APPTPHONE}.)
- exten => alldone,3,Hangup
- exten => t,1,NoOp(Callee's Answering Machine probably answered. Dialed: ${APPTPHONE}.)
- exten => t,2,Background(restarting)
- exten => t,3,Wait(1)
- exten => t,4,Playback(custom/${MSG}) ; playing again for ans machine
- exten => t,5,Background(goodbye)
- exten => t,6,Hangup
- exten => i,1,Goto(t,2)
- exten => o,1,Goto(t,2)
- exten => h,1,Set(email=${DB(EMAIL/${APPTPHONE})}) ; see if number to call has an associated email address
- exten => h,2,GotoIf($["foo${email}" = "foo"]?4)
- exten => h,3,system(mime-construct --to ${email} --subject "Telephone Reminder" --file /var/lib/asterisk/sounds/custom/${APPTTIME}.${APPTDT}.${APPTPHONE}.gsm --type audio/gsm)
- exten => h,4,NoOp(Callee hung up. Dialed: ${APPTPHONE}.)
- exten => h,5,System(/bin/rm -f /var/lib/asterisk/sounds/custom/${APPTTIME}.${APPTDT}.${APPTPHONE}.gsm)
- exten => h,6,Hangup
- [custom-fax-iaxmodem]
- exten => s,1,Answer
- exten => s,n,Wait(1)
- exten => s,n,SendDTMF(1)
- exten => s,n,Dial(IAX2/iax-fax0/${EXTEN})
- exten => s,n,Dial(IAX2/iax-fax1/${EXTEN})
- exten => s,n,Dial(IAX2/iax-fax2/${EXTEN})
- exten => s,n,Dial(IAX2/iax-fax3/${EXTEN})
- exten => s,n,Busy
- exten => s,n,Hangup
- [from-fax]
- exten => _x.,1,Dial(local/${EXTEN}@from-internal)
- exten => _x.,n,Goto(outbound-allroutes,${EXTEN},1)
- exten => _x.,n,Hangup
- [new-time]
- exten => s,1,ringing
- exten => s,2,Set(FutureTime=$[${EPOCH} + 8])
- exten => s,3,Set(FutureTimeMod=$[${FutureTime} % 10])
- exten => s,4,Set(FutureTime=$[${FutureTime} - ${FutureTimeMod}])
- ;180 in next line is max # seconds connection can be held open. Use multiples of 10.
- exten => s,5,Set(MaxConnectTime=$[${FutureTime} + 180])
- exten => s,6,Set(FutureTimeMod=$[${FutureTime} - ${EPOCH}])
- exten => s,7,GotoIf($["${FutureTimeMod}" < "0"]?10:8)
- exten => s,8,wait(1)
- exten => s,9,goto(6)
- exten => s,10,Answer
- exten => s,11,Set(FutureTime=$[${FutureTime} + 10])
- exten => s,12,Set(FutureTimeMod=$[${FutureTime} % 60])
- exten => s,13,wait(1)
- exten => s,14,playback(at-tone-time-exactly)
- exten => s,15,SayUnixTime(${FutureTime},,IM)
- exten => s,16,GotoIf($["${FutureTimeMod}" = "0"]?17:19)
- exten => s,17,SayUnixTime(${FutureTime},,p)
- exten => s,18,goto(22)
- exten => s,19,playback(and)
- exten => s,20,SayUnixTime(${FutureTime},,S)
- exten => s,21,playback(seconds)
- exten => s,22,Set(FutureTimeMod=$[${FutureTime} - ${EPOCH}])
- exten => s,23,GotoIf($["${FutureTimeMod}" < "1"]?26:24)
- exten => s,24,wait(1)
- exten => s,25,goto(22)
- exten => s,26,playback(beep)
- exten => s,27,Set(FutureTimeMod=$[${MaxConnectTime} - ${EPOCH}])
- exten => s,28,GotoIf($["${FutureTimeMod}" < "1"]?29:11)
- exten => s,29,Hangup
- [ext-did-custom]
- exten => fax,1,Noop(Fax detected!)
- exten => fax,2,Goto(custom-fax-iaxmodem,s,1)
- ; end of extensions_custom.conf
- [custom-fax-iaxmodem]
- exten => s,1,Answer
- exten => s,n,Wait(1)
- exten => s,n,SendDTMF(1)
- exten => s,n,Dial(IAX2/iax-fax0/${EXTEN})
- exten => s,n,Dial(IAX2/iax-fax1/${EXTEN})
- exten => s,n,Dial(IAX2/iax-fax2/${EXTEN})
- exten => s,n,Dial(IAX2/iax-fax3/${EXTEN})
- exten => s,n,Busy
- exten => s,n,Hangup
- [from-fax]
- exten => _x.,1,Dial(local/${EXTEN}@from-internal)
- exten => _x.,n,Hangup
- [custom-fax-iaxmodem]
- exten => s,1,Answer
- exten => s,n,Wait(1)
- exten => s,n,SendDTMF(1)
- exten => s,n,Dial(IAX2/iax-fax0/)
- exten => s,n,Dial(IAX2/iax-fax1/)
- exten => s,n,Dial(IAX2/iax-fax2/)
- exten => s,n,Dial(IAX2/iax-fax3/)
- exten => s,n,Busy
- exten => s,n,Hangup
- [from-fax]
- exten => _x.,1,Dial(local/@from-internal)
- exten => _x.,n,Goto(outbound-allroutes,,1)
- exten => _x.,n,Hangup
- [ext-did-custom]
- exten => fax,1,Noop(Fax detected!)
- exten => fax,2,Goto(custom-fax-iaxmodem,s,1)
- [from-trunk-custom]
- exten => _X.,1,GotoIf($["${CALLERID(num):0:1}" != "+"]?noplusatstart)
- exten => _X.,n,GotoIf($["${CALLERID(num):0:2}" != "+1"]?noplusatstart)
- exten => _X.,n,NoOp(Changing Caller ID number from ${CALLERID(num)} to ${CALLERID(num):2})
- exten => _X.,n,Set(CALLERID(num)=${CALLERID(num):2})
- exten => _X.,n,Set(CALLERID(ANI)=${CALLERID(num)})
- exten => _X.,n(noplusatstart),Goto(from-trunk,${EXTEN},1)
- [sub-log-caller]
- exten => s,1,Set(DB(cidname/${CALLERID(number)})=${CALLERID(name)})
- exten => s,n,Set(CALLERID(all)="${CALLERID(name)} <${CALLERID(number)}>")
- exten => s,n,NoOp(*** CALLER added to Asterisk Phonebook ***)
- exten => s,n,Return()
- ;# // BEGIN SIP URI Mod2
- ; Portions of the following code are Copyright (c) 2019, Ward Mundy & Associates LLC
- ; Licensed for use pursuant to GPL2: https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html
- [macro-uridial]
- exten => s,1,Set(dialuri=${CUT(ARG1,\;,1)})
- exten => s,n,Set(CALLERID(number)=${DB(${CALLERID(number)}/user_sipname)})
- exten => s,n,ExecIf($["${CALLERID(number)}" = ""]?Set(CALLERID(number)=Anonymous))
- exten => s,n,NoOp(Called SIP URI: ${dialuri})
- exten => s,n,NoOp(Calling From : ${CALLERID(all)} ?^?^?)
- exten => s,n,Dial(SIP/${dialuri},60,tr)
- exten => s,n,Congestion()
- exten => s,n,Return
- ;# // END SIP URI Mod2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement