[general] static=yes writeprotect=no [globals] TRUNKMSD=1 ; MSD digits to strip (usually 1 or 0) [default] ;--------------------------------------------------------------------------- ; BEGIN DEFAULT CONTEXT ; To allow name --> extension aliases, include sipaliases context include => sipalias ; To allow inbound calls, include inbound context include => inbound ; To allow access to applications, include applications context include => applications ; To allow calls to/from local extensions, include local context include => local ; To allow calls to/from friend extensions, include friends context include => friends ; END DEFAULT CONTEXT ;--------------------------------------------------------------------------- ;--------------------------------------------------------------------------- ; BEGIN MACROS ; Standard local extension macro [macro-stdexten] ; ARG1 = Extension ; ARG2 = Device exten => s,1,Playback(transfer) exten => s,2,SetMusicOnHold(default) exten => s,3,Dial(${ARG2},20) exten => s,4,Goto(s-${DIALSTATUS},1) exten => s-NOANSWER,1,Voicemail(u${ARG1}) exten => s-NOANSWER,2,Goto(default,s,1) exten => s-BUSY,1,Voicemail(b${ARG1}) exten => s-BUSY,2,Goto(default,s,1) exten => _s-.,1,Goto(s-NOANSWER,1) exten => a,1,VoicemailMain(${ARG1}) ; Inbound call macro [macro-inbound] ; ARG1 = Country Code text or prefix text ; ARG2 = Country Code number ; ARG3 = Extension to ring ; ARG4 = Voicemail to go to exten => s,1,SetMusicOnHold(default) ;exten => s,2,SetCallerID("${ARG1} (+${ARG2}-${CALLERIDNAME})" <+${ARG2}-${CALLERIDNUM}>) exten => s,2,Dial(SIP/${ARG3},20) exten => s,3,Goto(s-${DIALSTATUS},1) exten => s-NOANSWER,1,Voicemail(u${ARG4}) exten => s-NOANSWER,2,Goto(default,s,1) exten => s-BUSY,1,Voicemail(b${ARG4}) exten => s-BUSY,2,Goto(default,s,1) exten => _s-.,1,Goto(s-NOANSWER,1) exten => a,1,VoicemailMain(${ARG4}) ; Inbound fax [macro-faxreceive] exten => s,1,SetVar(FAXFILE=/var/spool/asterisk-fax/${UNIQUEID}.tif) exten => s,2,DBGet(EMAILADDR=extensionemail/${MACRO_EXTEN}) exten => s,3,rxfax(${FAXFILE}) exten => s,103,SetVar(EMAILADDR=x86@office.shellshark.net) exten => s,104,Goto(3) ; END MACROS ;--------------------------------------------------------------------------- [applications] ;--------------------------------------------------------------------------- ; BEGIN APPLICATION EXTENSIONS ; Voicemail exten => 7600,1,VoiceMailMain(${CALLERIDNUM}) exten => 7600,2,Playback(Goodbye) exten => 7600,3,Hangup ; Record something exten => 9998,1,Playback(vm-intro) exten => 9998,2,Wait(2) exten => 9998,3,Record(/tmp/asterisk-recording:wav) exten => 9998,4,Wait(2) exten => 9998,5,Playback (/tmp/asterisk-recording) exten => 9998,6,Wait(2) exten => 9998,7,Hangup ; Listen to temp recording exten => 9999,1,Playback(/tmp/asterisk-recording) exten => 9999,2,Hangup ; Generate and listen to weather exten => 9997,1,Answer exten => 9997,2,Playback(one-moment-please) exten => 9997,3,System(/usr/local/bin/speakweather) exten => 9997,4,Playback(/tmp/weather) exten => 9997,5,System(rm -f /tmp/weather.wav) exten => 9997,6,Wait(2) exten => 9997,7,Playback(goodbye) exten => 9997,8,Hangup ; Run IVR exten => 9996,1,Goto(ivr,s,1) ; END APPLICATION EXTENSIONS ;--------------------------------------------------------------------------- [ivr] ;--------------------------------------------------------------------------- ; BEGIN IVR APPLICATION ; Main IVR menu exten => s,1,Answer exten => s,2,SetMusicOnHold(default) exten => s,3,DigitTimeout,5 exten => s,4,ResponseTimeout,10 exten => s,5,Wait(1) exten => s,6,Playback(tyfc-ssn) exten => s,7,Wait(1) exten => s,8,Background(iyk) exten => s,9,Background(menu) ; Transfer to acct. dept. exten => 1,1,Playback(transfer) exten => 1,2,Macro(inbound,"IVR Accounting Call",1,101,101) ; Transfer to sales dept. exten => 2,1,Playback(transfer) exten => 2,2,Macro(inbound,"IVR Sales Call",1,103,100) ; Transfer to service dept. exten => 3,1,Playback(transfer) exten => 3,2,Macro(inbound,"IVR Service Call",1,103,100) ; Repeat options if they press 0 exten => 0,1,Goto(ivr,s,7) ; Timeout exten => t,1,Goto(#,1) ; Invalid choice exten => i,1,Playback(invalid) exten => i,2,Goto(ivr,s,7) ; Hangup exten => #,1,Playback(goodbye) exten => #,2,Hangup include => phones-friends include => phones-local ; END IVR APPLICATION ;--------------------------------------------------------------------------- [inbound] ;--------------------------------------------------------------------------- ; BEGIN INBOUND EXTENSIONS ; IPStar.us inbound (UK) exten => 5000,1,Goto(ivr,s,1) ; FWD inbound (SIP-SIP only, works about 25% of the time) exten => _750159,1,Macro(inbound,"FWD Call",1,100,100) ; Stanaphone inbound (NY, US) exten => 08140616,1,Goto(ivr,s,1) exten => 08140722,1,Goto(ivr,s,1) ; GoIAX inbound (SIP-SIP only; use primarily for outbound toll-free) exten => _878201002644,1,Goto(ivr,s,1) ; IPKall.com (WA, US) exten => 5001,1,Goto(ivr,s,1) exten => 5002,1,Goto(fax,2000,1) exten => fax,1,Goto(fax,2000,1) ; IPKall.com - Ben Hearsum's DID exten => 5004,1,Macro(inbound,"PSTN Call",1,406,406) ; Telasip.com (IL, US; 309-698-5584) exten => 5003,1,Goto(ivr,s,1) ; END INBOUND EXTENSIONS ;--------------------------------------------------------------------------- [fax] ;--------------------------------------------------------------------------- ; BEGIN FAX CONTEXT exten => 2000,1,Macro(faxreceive) exten => 2001,1,Macro(faxreceive) exten => h,1,system(/usr/local/sbin/mailfax ${FAXFILE} ${EMAILADDR} "${CALLERIDNUM} ${CALLERIDNAME}") ; END FAX CONTEXT ;--------------------------------------------------------------------------- [sipalias] ;--------------------------------------------------------------------------- ; BEGIN SIP ALIASES CONTEXT ; Locals exten => bryce,1,Goto(local,103,1) exten => kassi,1,Goto(local,101,1) exten => ed,1,Goto(local,102,1) ; Friends exten => dolphin,1,Goto(friends,400,1) exten => sherif,1,Goto(friends,401,1) exten => boody,1,Goto(friends,402,1) exten => odd,1,Goto(friends,403,1) exten => spacepeanut,1,Goto(friends,404,1) exten => pakipenguin,1,Goto(friends,405,1) exten => bhearsum,1,Goto(friends,406,1) exten => russ,1,Goto(friends,407,1) ; END SIP ALIASES CONTEXT ;--------------------------------------------------------------------------- [phones-friends] exten => 400,1,Macro(stdexten,400,SIP/400) exten => 401,1,Macro(stdexten,401,SIP/401) exten => 402,1,Macro(stdexten,402,SIP/402) exten => 403,1,Macro(stdexten,403,SIP/403) exten => 404,1,Macro(stdexten,404,SIP/404) exten => 405,1,Macro(stdexten,405,SIP/405) exten => 406,1,Macro(stdexten,406,SIP/406) exten => 407,1,Macro(stdexten,407,SIP/407) [phones-local] exten => 100,1,Macro(stdexten,100,SIP/100) exten => 101,1,Macro(stdexten,101,SIP/101) exten => 102,1,Macro(stdexten,102,SIP/102) exten => 103,1,Macro(stdexten,103,SIP/103) [access-standard] include => applications include => tollfree-outbound include => siptosip-outbound include => toll-outbound include => international-outbound [local] ;--------------------------------------------------------------------------- ; BEGIN STANDARD LOCAL EXTENSIONS ; See sip.conf for descriptions of extensions include => phones-local include => phones-friends include => access-standard ; END STANDARD LOCAL EXTENSIONS ;--------------------------------------------------------------------------- [friends] ;--------------------------------------------------------------------------- ; START FRIEND EXTENSIONS ; See sip.conf for descriptions of extensions include => phones-local include => phones-friends include => access-standard ; END FRIEND EXTENSIONS ;--------------------------------------------------------------------------- [international-outbound] ;--------------------------------------------------------------------------- ; BEGIN INTERNATIONAL OUTBOUND DIALPLAN ; If the call is an international call, use PakiPenguin's trunk exten => _6X.,1,Authenticate(9999) exten => _6X.,2,Dial(IAX2/x86:alpha@prepaid.todial.net/${EXTEN:1}) exten => _6X.,3,Hangup ; END INTERNATIONAL OUTBOUND DIALPLAN ;--------------------------------------------------------------------------- [tollfree-outbound] ;--------------------------------------------------------------------------- ; BEGIN TOLL-FREE OUTBOUND DIALPLAN ; If the call is a toll-free outbound call, first try GoIAX (which is free) ;exten => _818XXXXXXXXX,1,SetCallerID(ShellShark Networks <(360) 227-6548>) exten => _818XXXXXXXXX,1,Dial(IAX2/goiax/${EXTEN:1},100,tr) ; If that fails, try FWD exten => _818XXXXXXXXX,2,Dial(IAX2/fwd-750159/*${EXTEN:1},100,tr) ; END TOLL-FREE OUTBOUND DIALPLAN ;--------------------------------------------------------------------------- [siptosip-outbound] ;--------------------------------------------------------------------------- ; BEGIN SIP-SIP OUTBOUND DIALPLAN ; First, try via FWD ;exten => _5XX.,1,SetCallerID(ShellShark Networks <(360) 227-6548>) exten => _5XX.,1,Dial(IAX2/fwd-750159/${EXTEN:1},30,tr) ; Then, try via GoIAX exten => _5XX.,2,Dial(IAX2/goiax/${EXTEN:1},30,tr) ; END SIP-SIP OUTBOUND DIALPLAN ;--------------------------------------------------------------------------- [toll-outbound] ;--------------------------------------------------------------------------- ; BEGIN TOLL OUTBOUND DIALPLAN ; If the call is a toll call, use TelIAX (which is NOT free) exten => _8XXXXXXXXX.,1,Authenticate(9999) ;exten => _8XXXXXXXXX.,2,SetCallerID(ShellShark Networks <(360) 227-6548>) exten => _8XXXXXXXXX.,2,Dial(IAX2/shellshark@teliax/${EXTEN:1},100,tr) exten => _8XXXXXXXXX.,3,Playback(Goodbye) exten => _8XXXXXXXXX.,4,Hangup ; END TOLL OUTBOUND DIALPLAN ;---------------------------------------------------------------------------