[globals] FMDEVSTATE = TRUE DNDDEVSTATE = TRUE CFDEVSTATE = TRUE QUEDEVSTATE = TRUE INTERCOMCODE = *80 CALLFILENAME = "" DIAL_OPTIONS = tk TRUNK_OPTIONS = TK DIAL_OUT = 0 FAX = INCOMING = group-all NULL = "" OPERATOR = PARKNOTIFY = SIP/200 RECORDEXTEN = "" RINGTIMER = 20 DIRECTORY = last AFTER_INCOMING = IN_OVERRIDE = forcereghours REGTIME = 7:55-17:05 REGDAYS = mon-fri DIRECTORY_OPTS = DIALOUTIDS = 1/10/11/12/13/14/15/16/17/18/19/2/20/21/22/23/24/2 VM_PREFIX = * TONEZONE = it ALLOW_SIP_ANON = yes VM_DDTYPE = u VM_GAIN = OPERATOR_XTN = VM_OPTS = s TIMEFORMAT = kM VMX_CONTEXT = from-internal VMX_PRI = 1 VMX_TIMEDEST_CONTEXT = VMX_TIMEDEST_EXT = dovm VMX_TIMEDEST_PRI = 1 VMX_LOOPDEST_CONTEXT = VMX_LOOPDEST_EXT = dovm VMX_LOOPDEST_PRI = 1 VMX_OPTS_TIMEOUT = VMX_OPTS_LOOP = VMX_OPTS_DOVM = VMX_TIMEOUT = 2 VMX_REPEAT = 1 VMX_LOOPS = 1 TRANSFER_CONTEXT = from-internal-xfer ZAPTEL_DELAY = 0 MIXMON_FORMAT = wav MIXMON_DIR = MIXMON_POST = RECORDING_STATE = DISABLED ASTETCDIR = /etc/asterisk ASTMODDIR = /usr/lib/asterisk/modules ASTVARLIBDIR = /var/lib/asterisk ASTAGIDIR = /var/lib/asterisk/agi-bin ASTSPOOLDIR = /var/spool/asterisk ASTRUNDIR = /var/run/asterisk ASTLOGDIR = /var/log/asterisk CWINUSEBUSY = true AMPMGRUSER = admin AMPMGRPASS = AMPDBENGINE = mysql AMPDBHOST = localhost AMPDBNAME = asterisk AMPDBUSER = asteriskuser AMPDBPASS = ASTVERSION = 1.4.35 ASTCHANDAHDI = 1 OUT_2 = SIP/gsm4 OUTCID_2 = OUTMAXCHANS_2 = OUTFAIL_2 = OUTPREFIX_2 = OUTDISABLE_2 = off OUTKEEPCID_2 = off FORCEDOUTCID_2 = [from-internal-xfer] include => from-internal-custom include => parkedcalls include => ext-local-confirm include => findmefollow-ringallv2 include => from-internal-additional exten => s,1,Macro(hangupcall) exten => h,1,Macro(hangupcall) [from-internal] include => from-internal-xfer include => bad-number [bad-number] exten => _X.,1,ResetCDR() exten => _X.,n,NoCDR() exten => _X.,n,Progress exten => _X.,n,Wait(1) exten => _X.,n,Playback(silence/1&cannot-complete-as-dialed&check-number-dial-again,noanswer) exten => _X.,n,Wait(1) exten => _X.,n,Congestion(20) exten => _X.,n,Hangup [from-internal-additional] include => outbound-allroutes [macro-dialout-trunk] exten => s,1,Set(DIAL_TRUNK=${ARG1}) exten => s,n,GosubIf($[$["${ARG3}" != ""] & $["${DB(AMPUSER/${AMPUSER}/pinless)}" != "NOPASSWD"]]?sub-pincheck,s,1) exten => s,n,GotoIf($["x${OUTDISABLE_${DIAL_TRUNK}}" = "xon"]?disabletrunk,1) exten => s,n,Set(DIAL_NUMBER=${ARG2}) exten => s,n,Set(DIAL_TRUNK_OPTIONS=${DIAL_OPTIONS}) exten => s,n,Set(OUTBOUND_GROUP=OUT_${DIAL_TRUNK}) exten => s,n,GotoIf($["${OUTMAXCHANS_${DIAL_TRUNK}}foo" = "foo"]?nomax) exten => s,n,GotoIf($[ ${GROUP_COUNT(OUT_${DIAL_TRUNK})} >= ${OUTMAXCHANS_${DIAL_TRUNK}} ]?chanfull) exten => s,n(nomax),GotoIf($["${INTRACOMPANYROUTE}" = "YES"]?skipoutcid) exten => s,n,Set(DIAL_TRUNK_OPTIONS=${TRUNK_OPTIONS}) exten => s,n,Macro(outbound-callerid,${DIAL_TRUNK}) exten => s,n(skipoutcid),ExecIf($["${PREFIX_TRUNK_${DIAL_TRUNK}}" != ""]?AGI(fixlocalprefix)) exten => s,n,Set(OUTNUM=${OUTPREFIX_${DIAL_TRUNK}}${DIAL_NUMBER}) exten => s,n,Set(custom=${CUT(OUT_${DIAL_TRUNK},:,1)}) exten => s,n,ExecIf($[$["${MOHCLASS}" != "default"] & $["${MOHCLASS}" != ""]]?Set(DIAL_TRUNK_OPTIONS=M(setmusic^${MOHCLASS})${DIAL_TRUNK_OPTIONS})) exten => s,n(gocall),Macro(dialout-trunk-predial-hook,) exten => s,n,GotoIf($["${PREDIAL_HOOK_RET}" = "BYPASS"]?bypass,1) exten => s,n,GotoIf($["${custom}" = "AMP"]?customtrunk) exten => s,n,Dial(${OUT_${DIAL_TRUNK}}/${OUTNUM},300,${DIAL_TRUNK_OPTIONS}) exten => s,n,Noop(Dial failed for some reason with DIALSTATUS = ${DIALSTATUS} and HANGUPCAUSE = ${HANGUPCAUSE}) exten => s,n,Goto(s-${DIALSTATUS},1) exten => s,n(customtrunk),Set(pre_num=${CUT(OUT_${DIAL_TRUNK},$,1)}) exten => s,n,Set(the_num=${CUT(OUT_${DIAL_TRUNK},$,2)}) exten => s,n,Set(post_num=${CUT(OUT_${DIAL_TRUNK},$,3)}) exten => s,n,GotoIf($["${the_num}" = "OUTNUM"]?outnum:skipoutnum) exten => s,n(outnum),Set(the_num=${OUTNUM}) exten => s,n(skipoutnum),Dial(${pre_num:4}${the_num}${post_num},300,${DIAL_TRUNK_OPTIONS}) exten => s,n,Noop(Dial failed for some reason with DIALSTATUS = ${DIALSTATUS} and HANGUPCAUSE = ${HANGUPCAUSE}) exten => s,n,Goto(s-${DIALSTATUS},1) exten => s,n(chanfull),Noop(max channels used up) exten => s-BUSY,1,Noop(Dial failed due to trunk reporting BUSY - giving up) exten => s-BUSY,n,Playtones(busy) exten => s-BUSY,n,Busy(20) exten => s-ANSWER,1,Noop(Call successfully answered - Hanging up now) exten => s-ANSWER,n,Macro(hangupcall,) exten => s-NOANSWER,1,Noop(Dial failed due to trunk reporting NOANSWER - giving up) exten => s-NOANSWER,n,Progress exten => s-NOANSWER,n,Playtones(congestion) exten => s-NOANSWER,n,Congestion(20) exten => s-INVALIDNMBR,1,Noop(Dial failed due to trunk reporting Address Incomplete - giving up) exten => s-INVALIDNMBR,n,Progress exten => s-INVALIDNMBR,n,Playtones(congestion) exten => s-INVALIDNMBR,n,Busy(20) exten => s-CHANGED,1,Noop(Dial failed due to trunk reporting Number Changed - giving up) exten => s-CHANGED,n,Playtones(busy) exten => s-CHANGED,n,Busy(20) exten => _s-.,1,Set(RC=${IF($[${ISNULL(${HANGUPCAUSE})}]?0:${HANGUPCAUSE})}) exten => _s-.,n,Goto(${RC},1) exten => 17,1,Goto(s-BUSY,1) exten => 18,1,Goto(s-NOANSWER,1) exten => 22,1,Goto(s-CHANGED,1) exten => 23,1,Goto(s-CHANGED,1) exten => 28,1,Goto(s-INVALIDNMBR,1) exten => _X,1,Goto(continue,1) exten => _X.,1,Goto(continue,1) exten => continue,1,GotoIf($["${OUTFAIL_${ARG1}}" = ""]?noreport) exten => continue,n,AGI(${OUTFAIL_${ARG1}}) exten => continue,n(noreport),Noop(TRUNK Dial failed due to ${DIALSTATUS} HANGUPCAUSE: ${HANGUPCAUSE} - failing through to other trunks) exten => continue,n,Set(CALLERID(number)=${AMPUSER}) exten => disabletrunk,1,Noop(TRUNK: ${OUT_${DIAL_TRUNK}} DISABLED - falling through to next trunk) exten => bypass,1,Noop(TRUNK: ${OUT_${DIAL_TRUNK}} BYPASSING because dialout-trunk-predial-hook) exten => h,1,Macro(hangupcall,) [macro-outbound-callerid] exten => s,1,ExecIf($["${CALLINGPRES_SV}" != ""]?Set(CALLERPRES()=${CALLINGPRES_SV})) exten => s,n,ExecIf($["${REALCALLERIDNUM:1:2}" = ""]?Set(REALCALLERIDNUM=${CALLERID(number)})) exten => s,n(start),GotoIf($[ $["${REALCALLERIDNUM}" = ""] | $["${KEEPCID}" != "TRUE"] | $["${OUTKEEPCID_${ARG1}}" = "on"] ]?normcid) exten => s,n,Set(USEROUTCID=${REALCALLERIDNUM}) exten => s,n,GotoIf($["foo${DB(AMPUSER/${REALCALLERIDNUM}/device)}" = "foo"]?bypass) exten => s,n(normcid),Set(USEROUTCID=${DB(AMPUSER/${AMPUSER}/outboundcid)}) exten => s,n(bypass),Set(EMERGENCYCID=${DB(DEVICE/${REALCALLERIDNUM}/emergency_cid)}) exten => s,n,Set(TRUNKOUTCID=${OUTCID_${ARG1}}) exten => s,n,GotoIf($["${EMERGENCYROUTE:1:2}" = "" | "${EMERGENCYCID:1:2}" = ""]?trunkcid) exten => s,n,Set(CALLERID(all)=${EMERGENCYCID}) exten => s,n(exit),MacroExit() exten => s,n(trunkcid),ExecIf($[${LEN(${TRUNKOUTCID})} != 0]?Set(CALLERID(all)=${TRUNKOUTCID})) exten => s,n(usercid),ExecIf($[${LEN(${USEROUTCID})} != 0]?Set(CALLERID(all)=${USEROUTCID})) exten => s,n,ExecIf($[${LEN(${TRUNKCIDOVERRIDE})} != 0 | ${LEN(${FORCEDOUTCID_${ARG1}})} != 0]?Set(CALLERID(all)=${IF($[${LEN(${FORCEDOUTCID_${ARG1}})}=0]?${TRUNKCIDOVERRIDE}:${FORCEDOUTCID_${ARG1}})})) exten => s,n(hidecid),ExecIf($["${CALLERID(name)}"="hidden"]?Set(CALLERPRES()=prohib_passed_screen)) [macro-user-callerid] exten => s,1,Set(AMPUSER=${IF($["foo${AMPUSER}" = "foo"]?${CALLERID(number)}:${AMPUSER})}) exten => s,n,GotoIf($["${CHANNEL:0:5}" = "Local"]?report) exten => s,n,ExecIf($["${REALCALLERIDNUM:1:2}" = ""]?Set(REALCALLERIDNUM=${CALLERID(number)})) exten => s,n,Set(AMPUSER=${DB(DEVICE/${REALCALLERIDNUM}/user)}) exten => s,n,Set(AMPUSERCIDNAME=${DB(AMPUSER/${AMPUSER}/cidname)}) exten => s,n,GotoIf($["x${AMPUSERCIDNAME:1:2}" = "x"]?report) exten => s,n,Set(AMPUSERCID=${IF($["${DB_EXISTS(AMPUSER/${AMPUSER}/cidnum)}" = "1"]?${DB_RESULT}:${AMPUSER})}) exten => s,n,Set(CALLERID(all)="${AMPUSERCIDNAME}" <${AMPUSERCID}>) exten => s,n,ExecIf($["${DB(AMPUSER/${AMPUSER}/language)}" != ""]?Set(CHANNEL(language)=${DB(AMPUSER/${AMPUSER}/language)})) exten => s,n(report),GotoIf($[ "${ARG1}" = "SKIPTTL" ]?continue) exten => s,n(report2),Set(__TTL=${IF($["foo${TTL}" = "foo"]?64:$[ ${TTL} - 1 ])}) exten => s,n,GotoIf($[ ${TTL} > 0 ]?continue) exten => s,n,Wait(${RINGTIMER}) exten => s,n,Answer exten => s,n,Wait(2) exten => s,n,Playback(im-sorry&an-error-has-occured&with&call-forwarding) exten => s,n,Macro(hangupcall,) exten => s,n,Congestion(20) exten => s,n(continue),Noop(Using CallerID ${CALLERID(all)}) exten => h,1,Macro(hangupcall,) [macro-outisbusy] exten => s,1,Progress exten => s,n,GotoIf($["${EMERGENCYROUTE}" = "YES"]?emergency,1) exten => s,n,GotoIf($["${INTRACOMPANYROUTE}" = "YES"]?intracompany,1) exten => s,n,Playtones(congestion) exten => s,n,Congestion(20) exten => s,n,Hangup exten => intracompany,1,Playtones(congestion) exten => intracompany,n,Congestion(20) exten => intracompany,n,Hangup exten => emergency,1,Playtones(congestion) exten => emergency,n,Congestion(20) exten => emergency,n,Hangup [macro-record-enable] exten => s,1,MacroExit() [macro-hangupcall] exten => s,1(start),GotoIf($["${USE_CONFIRMATION}"="" | "${RINGGROUP_INDEX}"="" | "${CHANNEL}"!="${UNIQCHAN}"]?skiprg) exten => s,n,Noop(Cleaning Up Confirmation Flag: RG/${RINGGROUP_INDEX}/${CHANNEL}) exten => s,n(delrgi),Noop(Deleting: RG/${RINGGROUP_INDEX}/${CHANNEL} ${DB_DELETE(RG/${RINGGROUP_INDEX}/${CHANNEL})}) exten => s,n(skiprg),GotoIf($["${BLKVM_BASE}"="" | "BLKVM/${BLKVM_BASE}/${CHANNEL}"!="${BLKVM_OVERRIDE}"]?skipblkvm) exten => s,n,Noop(Cleaning Up Block VM Flag: ${BLKVM_OVERRIDE}) exten => s,n(delblkvm),Noop(Deleting: ${BLKVM_OVERRIDE} ${DB_DELETE(${BLKVM_OVERRIDE})}) exten => s,n(skipblkvm),GotoIf($["${FMGRP}"="" | "${FMUNIQUE}"="" | "${CHANNEL}"!="${FMUNIQUE}"]?theend) exten => s,n(delfmrgp),Noop(Deleting: FM/DND/${FMGRP}/${CHANNEL} ${DB_DELETE(FM/DND/${FMGRP}/${CHANNEL})}) exten => s,n(theend),Hangup [outbound-allroutes] include => outrt-02-Cellulari [outrt-02-Cellulari] exten => _X.,1,Macro(user-callerid,SKIPTTL,) exten => _X.,n,Set(_NODEST=) exten => _X.,n,Macro(record-enable,${AMPUSER},OUT,) exten => _X.,n,Macro(dialout-trunk,2,${EXTEN},,) exten => _X.,n,Macro(outisbusy,)