Picking up forwarded call

Hello friends,
i need some help in figuring out how to do a call pickup on a call that is forwarded from the phone itself. Here is the call flow.

  1. a call comes in via PSTN and is routed to the attendant console.
  2. this call can currently be picked up at the attendant console or from any other phone by dialing the correct extension.

the attendant has the option to forward the call to another extension from the phone itself. nothing is being setup in asterisk, and this is where i need the help. how can i configure asterisk to let me pickup the call forwarded from the attendant console?

thanks in advance.

Asterisk wont handle calls at all unless set up.

Asterisk has no concept of an attendant console, although might be used as part of implementing one. Please explain what you mean by “the attendant console”.

What do you mean by “the correct extension”. Again any such behavour has to be explicitly configured.

Please confirm that you are using Asterisk without any GUI, as GUIs are not supported here.

let me clarify this, i have this currently working,

  1. a call comes in to the PSTN and is routed to a phone which we are calling the attendant console.
  2. currently calls that are routed to this phone can be picked up by dialing the correct extension which is configured in the dialplan.

what i would like to be able to do is set forwarding on the attendant phone, and then be able to dial the configured extension to pickup the incoming call that had been forwarded by the phone i am calling the attendant console.

we can even forget about how the calls are routed and break it down to its base requirement.

Given an a phone, i would like to be able to pick up the call coming to the phone even if the call has been forwarded to another extension.

ie)
i have extension 500. the phone that is on extension 500 forwards calls to extension 501. a call comes in to extension 500, i would like to be able to dial an extension that will pick up the call that is going to ext 500, but ringing on 501 since the call was forwarded.

hopefully that makes sense.

also this is plain asterisk, no FreePBX or anything like that.

If you are using the Pickup application, I can see two approaches:

  1. " 2) If the extension is specified with a context of the special string PICKUPMARK (for example 10@PICKUPMARK), the application will pickup a channel which has defined the channel variable PICKUPMARK with the same value as extension (in this example, 10 )." You’d need to set PICKUPMARK before the actual redirection.

  2. Dial the destination device from the original extension.

Another option might be to set a global variable, named after the original extension, to the channel unique ID, and pick it up using PickupChan, indirected through the global variable.

In the last option, you could also use Bridge, to pick it up even if it had been answered at the redirected destination.

I’ve assumed the number is being forwarded by the dialplan, not transferred by the phone. If transferred by the phone, it would get more difficult. You might not be able to set channel variables, and the channel unique ID might change, so you would need to use the channel name.

hey,
thanks for the info. I’ve been trying to figure out how to use pickupmark without much success, if there is a dialplan example you can point me to i’d appreciate it. Also the call isn’t being forwarded by the dialplan its being forwarded by the phone itself. I was trying to figure out if there is a way to globally set the channel name of this call so i can try to do the pickup.

thanks

i managed to get this working using PICKUPMARK. once i figured out the syntax it was pretty straight forward, and is able to handle my use case, which is forwarding the call from the phone itself, and not configuring anything in asterisk.

the lua syntax is
channel._PICKUPMARK = “name of pickup mark”
in the exten you want to dial to pickup
app.pickup(“name of pickup mark@PICKUPMARK”

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.