| 1 |
MODIFICHE EXTENSIONS_CUSTOM.CONF |
|---|
| 2 |
|
|---|
| 3 |
[from-internal-additional-custom] |
|---|
| 4 |
include => app-pintrunk-on |
|---|
| 5 |
include => app-pintrunk-off |
|---|
| 6 |
|
|---|
| 7 |
[app-pintrunk-off] |
|---|
| 8 |
exten => *59,1,Answer |
|---|
| 9 |
exten => *59,n,Wait(1) |
|---|
| 10 |
exten => *59,n,Macro(user-callerid,) |
|---|
| 11 |
exten => *59,n,Set(pintrunkuser=${DB(PINTRUNK/${CALLERID(number)})}) |
|---|
| 12 |
exten => *59,n,GotoIf($[${LEN(${PINTRUNKUSER})} = 0]?s-NOPIN,1) |
|---|
| 13 |
exten => *59,n,Authenticate(${PINTRUNKUSER}) |
|---|
| 14 |
exten => *59,n,Wait(1) |
|---|
| 15 |
exten => *59,n,dbDel(PINTRUNK/${CALLERID(number)}) |
|---|
| 16 |
exten => *59,n,Playback(vm-no&vm-password) |
|---|
| 17 |
;exten => *59,n,Playback(vm-password&de-activated) |
|---|
| 18 |
exten => *59,n,Macro(hangupcall,) |
|---|
| 19 |
exten => s-NOPIN,1,Playback(vm-no&vm-password) |
|---|
| 20 |
exten => s-NOPIN,n,Macro(hangupcall,) |
|---|
| 21 |
|
|---|
| 22 |
[app-pintrunk-on] |
|---|
| 23 |
exten => *58,1,Answer |
|---|
| 24 |
exten => *58,n,Wait(1) |
|---|
| 25 |
exten => *58,n,Macro(user-callerid,) |
|---|
| 26 |
exten => *58,n,Set(pintrunkuser=${DB(PINTRUNK/${CALLERID(number)})}) |
|---|
| 27 |
exten => *58,n,GotoIf($[${LEN(${PINTRUNKUSER})} = 0]?s-SETPIN,1) |
|---|
| 28 |
exten => *58,n,Authenticate(${PINTRUNKUSER}) |
|---|
| 29 |
exten => *58,n,Wait(1) |
|---|
| 30 |
exten => *58,n,Goto(s-SETNEWPIN,1) |
|---|
| 31 |
exten => s-SETPIN,1,Read(PINTRUNKCODE,vm-password) |
|---|
| 32 |
exten => s-SETPIN,n,Set(DB(PINTRUNK/${CALLERID(number)})=${PINTRUNKCODE}) |
|---|
| 33 |
exten => s-SETPIN,n,Playback(vm-passchanged) |
|---|
| 34 |
exten => s-SETPIN,n,Macro(hangupcall,) |
|---|
| 35 |
exten => s-SETNEWPIN,1,Read(PINTRUNKCODE,vm-reenterpassword) |
|---|
| 36 |
exten => s-SETNEWPIN,n,Set(DB(PINTRUNK/${CALLERID(number)})=${PINTRUNKCODE}) |
|---|
| 37 |
exten => s-SETNEWPIN,n,Playback(vm-passchanged) |
|---|
| 38 |
exten => s-SETNEWPIN,n,Macro(hangupcall,) |
|---|
| 39 |
|
|---|
| 40 |
MODIFICHE EXTENSIONS.CONF |
|---|
| 41 |
|
|---|
| 42 |
[macro-dialout-trunk] |
|---|
| 43 |
exten => s,1,Set(DIAL_TRUNK=${ARG1}) |
|---|
| 44 |
|
|---|
| 45 |
; If NODEST is set, clear it. No point in remembering since dialout-trunk will just end in the |
|---|
| 46 |
; bit bucket. But if answered by an outside line with transfer capability, we want NODEST to be |
|---|
| 47 |
; clear so a subsequent transfer to an internal extension works and goes to voicmail or other |
|---|
| 48 |
; destinations. |
|---|
| 49 |
; |
|---|
| 50 |
exten => s,n,Set(_NODEST=) |
|---|
| 51 |
exten => s,n,Set(DIAL_NUMBER=${ARG2}) |
|---|
| 52 |
exten => s,n,Set(ROUTE_PASSWD=${ARG3}) |
|---|
| 53 |
exten => s,n,Set(DIAL_TRUNK_OPTIONS=${DIAL_OPTIONS}) // will be reset to TRUNK_OPTIONS if not intra-company |
|---|
| 54 |
exten => s,n,GotoIf($["${ROUTE_PASSWD}" = ""]?noauth) ; arg3 is pattern password |
|---|
| 55 |
exten => s,n(auth),Authenticate(${ROUTE_PASSWD}) |
|---|
| 56 |
exten => s,n(noauth),Set(GROUP()=OUT_${DIAL_TRUNK}) |
|---|
| 57 |
exten => s,n,Macro(user-callerid,SKIPTTL) |
|---|
| 58 |
exten => s,n,Macro(record-enable,${CALLERID(number)},OUT) |
|---|
| 59 |
;modifica macro per blocco password singolo interno |
|---|
| 60 |
exten => s,n,Set(pintrunkuser=${DB(PINTRUNK/${CALLERID(number)})}) |
|---|
| 61 |
exten => s,n,GotoIf($["${DIAL_NUMBER:0:2}" = "11"]?trunkok) |
|---|
| 62 |
exten => s,n,GotoIf($[${LEN(${PINTRUNKUSER})} = 0]?trunkok) |
|---|
| 63 |
exten => s,n,Authenticate(${PINTRUNKUSER}) |
|---|
| 64 |
exten => s,n(trunkok),NoOp(No password or password ok) |
|---|
| 65 |
;fine modifica macro per blocco password singolo interno |
|---|
| 66 |
exten => s,n,GotoIf($["${INTRACOMPANYROUTE}" = "YES"]?skipoutcid) ;Set to YES if treated like internal |
|---|
| 67 |
exten => s,n,Set(DIAL_TRUNK_OPTIONS=${TRUNK_OPTIONS}) |
|---|
| 68 |
exten => s,n,Macro(outbound-callerid,${DIAL_TRUNK}) |
|---|
| 69 |
exten => s,n(skipoutcid),GotoIf($["${OUTMAXCHANS_${DIAL_TRUNK}}foo" = "foo"]?nomax) |
|---|
| 70 |
exten => s,n(checkmax),GotoIf($[ ${GROUP_COUNT()} > ${OUTMAXCHANS_${DIAL_TRUNK}} ]?chanfull) |
|---|
| 71 |
exten => s,n(nomax),DeadAGI(fixlocalprefix) ; this sets DIAL_NUMBER to the proper dial string for this trunk |
|---|
| 72 |
exten => s,n,Set(OUTNUM=${OUTPREFIX_${DIAL_TRUNK}}${DIAL_NUMBER}) ; OUTNUM is the final dial number |
|---|
| 73 |
exten => s,n,Set(custom=${CUT(OUT_${DIAL_TRUNK},:,1)}) ; Custom trunks are prefixed with "AMP:" |
|---|
| 74 |
exten => s,n,GotoIf($["${custom}" = "AMP"]?customtrunk) |
|---|
| 75 |
exten => s,n,Dial(${OUT_${DIAL_TRUNK}}/${OUTNUM},300,${DIAL_TRUNK_OPTIONS}) ; Regular Trunk Dial |
|---|
| 76 |
exten => s,n,Goto(s-${DIALSTATUS},1) |
|---|
| 77 |
exten => s,n(customtrunk),Set(pre_num=${CUT(OUT_${DIAL_TRUNK},$,1)}) |
|---|
| 78 |
exten => s,n,Set(the_num=${CUT(OUT_${DIAL_TRUNK},$,2)}) ; this is where we expect to find string OUTNUM |
|---|
| 79 |
exten => s,n,Set(post_num=${CUT(OUT_${DIAL_TRUNK},$,3)}) |
|---|
| 80 |
exten => s,n,GotoIf($["${the_num}" = "OUTNUM"]?outnum:skipoutnum) ; if we didn't find "OUTNUM", then skip to Dial |
|---|
| 81 |
exten => s,n(outnum),Set(the_num=${OUTNUM}) ; replace "OUTNUM" with the actual number to dial |
|---|
| 82 |
exten => s,n(skipoutnum),Dial(${pre_num:4}${the_num}${post_num},300,${DIAL_TRUNK_OPTIONS}) |
|---|
| 83 |
exten => s,n,Goto(s-${DIALSTATUS},1) |
|---|
| 84 |
|
|---|
| 85 |
exten => s,n(chanfull),Noop(max channels used up) |
|---|
| 86 |
|
|---|
| 87 |
exten => s-BUSY,1,NoOp(Dial failed due to trunk reporting BUSY - giving up) |
|---|
| 88 |
exten => s-BUSY,2,Busy(20) |
|---|
| 89 |
|
|---|
| 90 |
exten => s-NOANSWER,1,NoOp(Dial failed due to trunk reporting NOANSWER - giving up) |
|---|
| 91 |
exten => s-NOANSWER,2,Playtones(congestion) |
|---|
| 92 |
exten => s-NOANSWER,3,Congestion(20) |
|---|
| 93 |
|
|---|
| 94 |
exten => s-CANCEL,1,NoOp(Dial failed due to trunk reporting CANCEL - giving up) |
|---|
| 95 |
exten => s-CANCEL,2,Playtones(congestion) |
|---|
| 96 |
exten => s-CANCEL,3,Congestion(20) |
|---|
| 97 |
|
|---|
| 98 |
exten => _s-.,1,NoOp(Dial failed due to ${DIALSTATUS} - failing through to other trunks) |
|---|
| 99 |
|
|---|
| 100 |
exten => h,1,Macro(hangupcall) |
|---|