Changeset 3318

Show
Ignore:
Timestamp:
12/13/06 23:59:30 (5 years ago)
Author:
p_lindheimer
Message:

Hopefully the final fix to get all modes of transfering a received call that came in from a queue, ringgroup or followme to subsequent users or direct to their voicemail. Finally able to get rid of dolocaldial, meaning the queue transfers in particular won't ring forever. These change REQUIRE updating findmefollow, ringgroups and queues to the latest

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • freepbx/trunk/amp_conf/astetc/extensions.conf

    r3307 r3318  
    9393exten => s,1,Macro(user-callerid) 
    9494 
    95 ; Don't go to destinations like vm if NODEST is set 
    96 ; 
    97 exten => s,n,Noop(CAME FROM: ${NODEST}) 
    98 exten => s,n,Set(RRNODEST=${NODEST}) 
    99 exten => s,n,Set(_NODEST=) 
    100  
    10195exten => s,n,Set(FROMCONTEXT=exten-vm) 
    10296exten => s,n,Set(VMBOX=${ARG1}) 
     
    106100exten => s,n,Macro(record-enable,${EXTTOCALL},IN) 
    107101 
    108  
    109 ; If NODEST then bypass voicemail regardless 
    110 ; 
    111 ;exten => s,n,GotoIf($["${CHANNEL:0:5}" = "Local"]?dolocaldial,1) ; if the channel is Local 
    112 exten => s,n,GotoIf($["foo${RRNODEST}" != "foo"]?dolocaldial,1) ; don't do voicemail 
    113  
    114102exten => s,n,Macro(dial,${RT},${DIAL_OPTIONS},${EXTTOCALL}) 
    115103exten => s,n,GosubIf($[$["${DIALSTATUS}"="NOANSWER"] & $["foo${CFUEXT}"!="foo"]]?docfu,1) ; check for CFU in use on no answer 
     
    117105exten => s,n,GotoIf($["${VMBOX}" = "novm"]?s-${DIALSTATUS},1) ; no voicemail in use for this extension 
    118106exten => s,n,NoOp(Sending to Voicemail box ${EXTTOCALL}) 
    119 exten => s,n,Set(BLKVM=) 
    120107exten => s,n,Macro(vm,${VMBOX},${DIALSTATUS}) 
    121  
    122 ; Local channel should try to ring the phone only then come back out 
    123 ; i.e. it's wrong for it to Answer the call in any way (including Congestion 
    124 ; and stop the initiating dialplan from being returned to) 
    125 ; 
    126 exten => dolocaldial,1,Set(RECALL=${BLKVM}) 
    127 exten => dolocaldial,n,Set(__BLKVM=${RRNODEST}) 
    128  
    129 exten => dolocaldial,n,Macro(dial,,${DIAL_OPTIONS},${EXTTOCALL}) 
    130  
    131 exten => dolocaldial,n,Set(__BLKVM=${RECALL}) 
    132 exten => dolocaldial,n,NoOp(Returned to dolocaldial with DIALSTATUS '${DIALSTATUS}') 
    133108 
    134109; Try the Call Forward on No Answer / Unavailable number 
     
    150125exten => s,n,Set(VMGAIN=${IF($["foo${VM_GAIN}"!="foo"]?"g(${VM_GAIN})":"")}) 
    151126; 
    152 ; If NODEST was set, then we want to block voicemail (not answer) 
    153 
    154 exten => s,n,GotoIf($["foo${BLKVM}" = "foo"]?s-${ARG2},1) 
    155 ;exten => s,n,GotoIf($["foo${NODEST}" = "foo"]?s-${ARG2},1) 
     127; If BLKVM_OVERRIDE is set, then someone told us to block calls from going to 
     128; voicemail. This variable is reset by the answering channel so subsequent 
     129; transfers will properly function. 
     130
     131exten => s,n,GotoIf($["foo${DB(${BLKVM_OVERRIDE})}" != "fooTRUE"]?s-${ARG2},1) 
    156132; 
    157133; we didn't branch so block this from voicemail 
    158134; 
    159 exten => s,n,Noop(CAME FROM: ${NODEST} - Blocking VM) 
    160 exten => s,n,Noop(BLKVM CAME FROM: ${BLKVM} - Blocking VM) 
     135exten => s,n,Noop(CAME FROM: ${NODEST} - Blocking VM cause of key: ${DB(BLKVM_OVERRIDE)}) 
    161136 
    162137exten => s-BUSY,1,NoOp(BUSY voicemail) 
     
    224199exten => s,n,Macro(record-enable,${EXTTOCALL},IN) 
    225200 
    226 exten => s,n,Set(RECALL=${NODEST}) 
    227 exten => s,n,Set(__BLKVM=${NODEST}) 
    228 exten => s,n,Set(__NODEST=) 
    229  
    230 exten => s,n,Macro(dial,${RT},${DIAL_OPTIONS},${EXTTOCALL}) 
    231  
    232 exten => s,n,Set(__BLKVM=) 
    233 exten => s,n,Set(__NODEST=${RECALL}) 
     201exten => s,n,Set(BVM=${IF($[$["${DIAL_OPTIONS:-13}"!="M(auto-blkvm)"]]?M(auto-blkvm):"")}) 
     202 
     203exten => s,n,Macro(dial,${RT},${DIAL_OPTIONS}${BVM},${EXTTOCALL}) 
     204 
    234205exten => s,n,Set(PR_DIALSTATUS=${DIALSTATUS}) 
    235206 
     
    310281exten => s,n,NoCDR() 
    311282  
    312 ; Cleanup any remaining RG flags 
    313 ; 
    314 exten => s,n,GotoIf($["foo${USE_CONFIRMATION}" = "foo" | "foo${RINGGROUP_INDEX}" = "foo" | "${CHANNEL}" != "${UNIQCHAN}"]?theend
     283; Cleanup any remaining RG flag 
     284; 
     285exten => s,n,GotoIf($[ "foo${USE_CONFIRMATION}" = "foo" | "foo${RINGGROUP_INDEX}" = "foo" | "${CHANNEL}" != "${UNIQCHAN}"]?skiprg
    315286exten => s,n,Noop(Cleaning Up Confirmation Flag: RG/${RINGGROUP_INDEX}/${CHANNEL}) 
    316287exten => s,n,DBDel(RG/${RINGGROUP_INDEX}/${CHANNEL}) 
     288 
     289; Cleanup any remaining BLKVM flag 
     290; 
     291exten => s,n(skiprg),GotoIf($[ "foo${BLKVM_BASE}" = "foo" | "BLKVM/${BLKVM_BASE}/${CHANNEL}" != "${BLKVM_OVERRIDE}" ]?theend) 
     292exten => s,n,Noop(Cleaning Up Block VM Flag: ${BLKVM_OVERRIDE}) 
     293exten => s,n,DBDel(${BLKVM_OVERRIDE}) 
     294 
    317295exten => s,n(theend),Wait(5) 
    318296exten => s,n,Hangup 
     
    947925exten => s,n,Set(ARG4=) ; otherwise it gets passed to dialparties.agi which processes it (prob bug)  
    948926 
    949 exten => s,n,Set(__BLKVM=${NODEST}) 
    950 exten => s,n,Set(RECALL=${NODEST}) 
    951 exten => s,n,Set(__NODEST=) 
    952927exten => s,n,Macro(dial,${ARG1},${ARG2},${ARG3}) 
    953 exten => s,n,Set(__NODEST=${RECALL}) 
    954 exten => s,n,Set(__BLKVM=) 
    955928 
    956929exten => s,n,Set(USE_CONFIRMATION=) 
     
    971944[macro-auto-confirm] 
    972945exten => s,1,Set(__MACRO_RESULT=) 
     946exten => s,n,DBDel(${BLKVM_OVERRIDE}) 
    973947exten => s,n,DBDel(RG/${ARG1}/${UNIQCHAN}) 
    974 exten => s,n(fin),NoOp(Finished) 
     948 
     949;------------------------------------------------------------------------ 
     950; [macro-auto-blkvm] 
     951;------------------------------------------------------------------------ 
     952; This macro is called for any extension dialed form a queue, ringgroup 
     953; or followme, so that the answering extension can clear the voicemail block 
     954; override allow subsequent transfers to properly operate. 
     955
     956;------------------------------------------------------------------------ 
     957[macro-auto-blkvm] 
     958exten => s,1,Set(__MACRO_RESULT=) 
     959exten => s,n,DBDel(${BLKVM_OVERRIDE}) 
    975960 
    976961;------------------------------------------------------------------------ 
     
    10541039; MACRO_RESULT variable to NOTHING. This is the magic string that joins both legs of the call together 
    10551040exten => s,n(ok),DBDel(RG/${ARG3}/${UNIQCHAN}) 
     1041exten => s,n,DBDel(${BLKVM_OVERRIDE}) 
    10561042exten => s,n,Set(__MACRO_RESULT=) 
    10571043