Attended Call Transfer Yealink T42S and FreePBX



  • I'm testing the procedure that my users will eventually need to follow in order to transfer calls. I know there are two basic options: blind transfers and attended transfers.

    Blind Transfers seem to work fine:

    1. Answer incoming call.
    2. Press Transfer softkey. Original caller hears hold music.
    3. Dial the extension to which the call will be transferred.
    4. Hang up.
    5. Original caller hears a ring and extension receiving the transfer rings.
    6. Extension receiving the transfer answers, and the call goes about its merry way.
      If I hang up after the first ring of the new extension, the original caller's call is dropped. Perhaps that's normal behavior.

    Attended Call Transfers fail:

    1. Answer incoming call.
    2. Press the Transfer softkey
    3. Dial the extension to which the call will be transferred. Original caller hears hold music.
    4. New extension answers.
    5. Original extension hangs up.
    6. Call with original caller is dropped. New extension call remains, but with no participants.

    When this happens I see the following in the FreePBX log:
    [2017-09-26 09:49:47] ERROR[27520] res_pjsip_refer.c: Received REFER for remote session on channel 'PJSIP/200-0000002c' from endpoint '200' but 'external_replaces' extension not found in context from-internal-xfer

    This is the call flow for the test. Extension 100 calls Extension 200. Extension 200 is trying to do an attended transfer to Extension 201.

    Has anyone else experienced this kind of behavior with attended transfers? If not, can you identify what I might be doing wrong?



  • Have the person making the transfer complete the transfer with the transfer button instead of hanging up.



  • Result is the same. Even if I explicitly set "Transfer Mode via Dsskey" to Attended Transfer.
    0_1506435671396_820d76de-00af-48d1-bee4-8aff5a58a370-image.png
    All settings are the default, except for the "Transfer Mode via Dsskey" which defaults to Blind Transfer.



  • Here's one way I found to work around the problem. From the web interface on the phone Features > General information:
    0_1506441592501_196ebfff-5e2e-471f-804e-a1b55b0bb1c0-image.png
    Doing this sends *2 to Asterisk which is an attended transfer. If I wanted to do a blind transfer, then it looks like all I have to do is wait for the extension to ring once, then I can hang up.



  • @eddiejennings said in Attended Call Transfer Yealink T42S and FreePBX:

    Here's one way I found to work around the problem. From the web interface on the phone Features > General information:
    0_1506441592501_196ebfff-5e2e-471f-804e-a1b55b0bb1c0-image.png
    Doing this sends *2 to Asterisk which is an attended transfer. If I wanted to do a blind transfer, then it looks like all I have to do is wait for the extension to ring once, then I can hang up.

    Was busy yesterday sorry.

    Undo this change and also remove the Ghost transfer ringback fix from your config file and test again.



  • Got other things under control. Now I can get back to testing this.



  • Per FreePBX developer I believe Yealink hasn't been quick to follow up on compatibility testing with FreePBX releases. This was a response I got on the FreePBX forums.

    Have had different transfer issues myself when using FreePBX where you would transfer and the call would ring back (with no one there) wherever the extension transferred to was not picking up the call, instead of going to voicemail.



  • @bigbear said in Attended Call Transfer Yealink T42S and FreePBX:

    Per FreePBX developer I believe Yealink hasn't been quick to follow up on compatibility testing with FreePBX releases. This was a response I got on the FreePBX forums.

    Have had different transfer issues myself when using FreePBX where you would transfer and the call would ring back (with no one there) wherever the extension transferred to was not picking up the call, instead of going to voicemail.

    That specific issue is PJSIP only and has a known solution. I posted it. You have to use a config file to set it though. It does not have a setting in the GUI.