Cell phone handoff during a call

Hi, on a Mitel 3300 MCD PBX, there’s feature call Mobile Handoff, basically this is a mid-call feature that allow you to swap your call between different device in a personal ring group (Ring group with the same extension number as your primary Desk phone). So basically let say that you have a ring group with the extension 200, in this ring group you’ve got your Desk phone with also the extension 200 and you’ve got a virtual extension 300 which is forward to your cell phone. If a caller dial 200 your desk phone and your cell will ring at the same time (mobile twinning), if you answer the cellphone obiviously the call will stop ringing your desk phone, but if in the middle of your conversation you would like to transfer the call on you desk phone the handoff feature allow to pickup the handset on your deskphone and transfer transparently the call on your deskphone the caller will not notice anything. Handoff also give you the possibility to swap the call back on your cell by pressing again on handoff the phone system will call the cellphone and As soon as you’ll answer the call will be swap to your cell phone. I would like to know if there’s a way in freepbx to program a feature like that?

Not out of the box but a nice feature to have. Probably u need to develop something from scratch. Like channel redirect …

Might be interesting to make such a feature :slight_smile:

I’d vote for this feature.

The core components needed to achieve this are built into FreePBX/Asterisk already. It’s not quite as seamless as the Mitel way, but on the flip side it’s actually more versatile. The trick is to do an In-call transfer. If you look under Feature Codes, there is an option for “In-Call Asterisk Blind Transfer” (or something like that, don’t remember the exact wording now). It usually defaults to # or ##.

When you’re on any call that comes from the system, you can dial that In-call transfer sequence. The person you’re talking to gets put on hold, and you can dial whoever you want to transfer them to.

So in this scenario you’ve got desk phone 200, and virtual extension 300 which is your cell. Call comes in, rings to desk phone 200 (which could also have Follow-me setup to ring 300 at the same time). Once you answer the call (either on 200 or 300, whatever), you talk blah blah then when you want to switch devices, you just dial ## (wait a second)300. Your cell rings, and when you answer the caller is now connected to you. Vice versa also goes.

Depending on which SIP phone you’re using you should be able to program a button to send that ## sequence if you wanted to mimic the Mitel. The main advantage over the Mitel is that you don’t have to just switch to your mobile, you can transfer to anyone on the system (or anywhere). So for example, take a call on your cell, walking into the office transfer the call to the parking lot. Then you can pick it up from there again later without having to keep the caller “live” until you’re actually at your desk.

Right, but how could we make that seamless so the call is never put on hold during the process?

Ok, so I worked out how to do this on asterisk, was easier than I expected, using the ‘bridge’ dialplan function, never used freepbx so I’m not sure how much overlap there is:

Setting up ring group etc is not necessary (but should work just the same). I have just set it up so that when someone calls my cell, it will store a global variable containing their Channel ID when dialing out if the outbound dialing number matches my cell. (Assuming cell is 123456789, the Channel ID will be stored in MyGlobalVar1):

exten => _X.,n,Set(GLOBAL(MyGlobalVar1)=${IF($["${EXTEN}"=“123456789”]?${CHANNEL}:)})

Then to pull the call to your desk phone, simply dial 123:

exten => 123,1,Bridge(${MyGlobalVar1})

This should be totally seamless for the calling party. We’ve only set it up for two of us, if you have a lot users you’re setting this up for, rather than storing global variables for each person, it would probably be better to store them via an odbc connection etc.

1 Like

Thanks for that. Back in my teleco days 12 years ago my company had a hosted system based on the GenBand platform that did that. Windstream bought us and the product went away because everything else on their network was metaswitch. But I haven’t seen that capability since.

One thing I want to mention. The #key on the system was set to disable the ability of the other party to hear tones when you pushed a key on the phone. Then 88 was used to trigger the handoff to the cell phone. So #88 allowed it to happen silently. I’m not sure how the tone sounds work here but you might want to check and see if the caller can hear the tones and if so, look for a way to disable it as with the #key as part of the handoff.