Attended transfer

Discussion in 'General' started by exzim, Dec 3, 2009.

  1. exzim

    Joined:
    Nov 8, 2007
    Messages:
    3
    Likes Received:
    0
    I have been using Elastix since early 2007 and have always had excellent results.
    There is only one problem to date I have had and thats the attended transfer.

    I am using snom 300 handsets and currently on 1.3-2.

    When I answer a call and want to transfer it to another extension, I put the caller on hold, select "line2" on the snom300 and dial the extension. If the person answers the call I tell him there is a caller etc. Then I simply press the transfer button and the call is transferred. Now, my problem is this If the person is not there, how can I get the call to come back to me? In my understanding this is what *2 is for. Am I overlooking something? or not doing something right?

    If I use the unatended transfer to a Dhadi extension it will return the call to me, if the person does not pick up.

    Any help would be appreciated.
     
  2. ramoncio

    Joined:
    May 12, 2010
    Messages:
    1,663
    Likes Received:
    0
    Hi exzim, wellcome to Elastix's forum!!

    What I usually do to solve that problem is to create a ring group for each extension, and transfer the call to the ring group, not to the extension.
    And the ring group has the 'Destination if no answer:' option, where you can send the call to the operator or wherever you want.
     
  3. exzim

    Joined:
    Nov 8, 2007
    Messages:
    3
    Likes Received:
    0
    I have found this , and is exactly what im looking for!


    Any chance we could integrate it in future releases?

    http://www.freepbx.org/trac/ticket/2678



    From http://www.freepbx.org/trac/ticket/2678
    Hi,

    I cant believe that blind transfer callback has still not been attended to. This is a feature that works on all PBXs in the world, at least all in Europe. All complicating discussions that people have over this on net are absurd. A simple request to achieve this:

    Add the code to [macro-exten-vm] that handles blind transfer and looks like this (at least for 2.3.1.3, you can figure out the changes necessary):

    [macro-exten-vm] exten => s,1,Macro(user-callerid)

    exten => s,n,Set(FROMCONTEXT=exten-vm) exten => s,n,Set(VMBOX=${ARG1}) exten => s,n,Set(EXTTOCALL=${ARG2}) exten => s,n,Set(CFUEXT=${DB(CFU/${EXTTOCALL})}) exten => s,n,Set(CFBEXT=${DB(CFB/${EXTTOCALL})}) exten => s,n,Set(RT=${IF($[$["${VMBOX}"!="novm"] | $["foo${CFUEXT}"!="foo"]]?${RINGTIMER}:"")}) exten => s,n,Macro(record-enable,${EXTTOCALL},IN)

    exten => s,n,Macro(dial,${RT},${DIAL_OPTIONS},${EXTTOCALL}) exten => s,n,Set(SV_DIALSTATUS=${DIALSTATUS}) exten => s,n,GosubIf?($[$["${SV_DIALSTATUS}"="NOANSWER"] & $["foo${CFUEXT}"!="foo"]]?docfu,1) ; check for CFU in use on no answer exten => s,n,GosubIf?($[$["${SV_DIALSTATUS}"="BUSY"] & $["foo${CFBEXT}"!="foo"]]?docfb,1) ; check for CFB in use on busy exten => s,n,Set(DIALSTATUS=${SV_DIALSTATUS}) exten => s,n,NoOp?(Voicemail is '${VMBOX}') exten => s,n,GotoIf?($["${VMBOX}" = "novm"]?s-${DIALSTATUS},1) ; no voicemail in use for this extension exten => s,n,NoOp?(Sending to Voicemail box ${EXTTOCALL}) exten => s,n,Macro(vm,${VMBOX},${DIALSTATUS})

    ; Try the Call Forward on No Answer / Unavailable number exten => docfu,1,Set(RTCFU=${IF($["${VMBOX}"!="novm"]?${RINGTIMER}:"")}) exten => docfu,n,Dial(Local/${CFUEXT}@from-internal/n,${RTCFU},${DIAL_OPTIONS}) exten => docfu,n,Return

    ; Try the Call Forward on Busy number exten => docfb,1,Set(RTCFB=${IF($["${VMBOX}"!="novm"]?${RINGTIMER}:"")}) exten => docfb,n,Dial(Local/${CFBEXT}@from-internal/n,${RTCFB},${DIAL_OPTIONS}) exten => docfb,n,Return

    ; Extensions with no Voicemail box reporting BUSY come here exten => s-BUSY,1,NoOp?(Extension is reporting BUSY and not passing to Voicemail)

    exten => s-BUSY,n,GotoIf?($[${LEN(${BLINDTRANSFER})} > 0]?blindtr,1) ; check if blindtransfer

    exten => s-BUSY,n,Playtones(busy) exten => s-BUSY,n,Busy(20)

    ; Anything but BUSY comes here ;exten => _s-.,1,Playtones(congestion)

    exten => _s-.,1,GotoIf?($[${LEN(${BLINDTRANSFER})} > 0]?blindtr,1) ; check if blindtransfer exten => _s-.,n,Playtones(congestion)

    exten => _s-.,n,Congestion(10)

    exten => blindtr,1,NoOp?(CallingBack? ${BLINDTRANSFER}) exten => blindtr,n,Set(blindtrdevice=${CUT(BLINDTRANSFER,/,2-)}) exten => blindtr,n,Set(blindtrext=${CUT(BLINDTRDEVICE1)})

    exten => blindtr,n,Wait(2) exten => blindtr,n,Set(blindtransfer="") exten => blindtr,n,Macro(dial,${RT},${DIAL_OPTIONS},${BLINDTREXT}) exten => blindtr,n,GotoIf?($["${DIALSTATUS}"="BUSY"]?blindtroperator,1) exten => blindtroperator,1,Goto(from-internal,${OPERATOR_XTN},1)

    I agree, that if voicemail is enabled for extension, callback for blind transfer is ignored (or make a switch in general settings). Also you need to add a timeout for callback to be activated in general settings: Change the code in dialparties.agi that will handle the timeout for blindtransfered calls back to initiator when that timeout occures. All code has been tested at all my clients and it works 100%. Simple work, 5 minutes.

    Code to be changed in dialparties.agi: look for:

    if (empty($timer)) {

    $timer = 0;

    }

    and change it to:

    $BLINDTRANSFERTIMEOUT = 30; //add to general settings

    if (empty($timer)) { $BLINDTRANSFER = get_var( $AGI, "BLINDTRANSFER" ); if ($BLINDTRANSFER != "")

    $timer = $BLINDTRANSFERTIMEOUT;

    else

    $timer = 0;

    }

    Thanks, J.
     
  4. cassioac

    Joined:
    Nov 14, 2009
    Messages:
    10
    Likes Received:
    0
    I know this is an old thread, but I still miss this feature, will it ever be incorporated in future releaes?
     

Share This Page