Pickup calls coming from queues

Home » Asterisk Users » Pickup calls coming from queues
Asterisk Users 17 Comments

I have some phones monitoring several extensions, I want them being able
to pickup calls using Busy Lamp Field. Unfortunately it doesn’t work
when the calls come from a queue.


Phone 110 wants to monitor phone 102. Phone 102 is a member of the queue
“Test”, it has been added to this queue using AddQueueMember.
A call comes from the ISDN and goes to the “Test” queue, phone 102
starts ringing. Phone 110 sees 102’s Busy Lamp Field blinking but can’t
pick up the call.

Please help me, I really need this feature. I’m using asterisk 1.8.7.


17 thoughts on - Pickup calls coming from queues

  • How exactly are you trying to pick up the call? Are you using *8 or are
    you using application Pickup/ChanPickup?


  • Il 20/01/2012 19:16, Ishfaq Malik ha scritto:

    exten => multiple,hint,SIP/155&SIP/152

    exten => multiple,1,Pickup(155)
    exten => multiple,n,Pickup(152)

    Il 20/01/2012 19:12, Alberto Llamas ha scritto:

    How? Consider not all calls come from a queue!

    Il 20/01/2012 19:52, Kevin P. Fleming ha scritto:

    Il 20/01/2012 19:53, Matthew Jordan ha scritto:

    I’m sorry, I didn’t want to cross post but I don’t know if it’s a
    feature request or I’m simply doing something wrong. According to Snom’s
    technical support it *IS* a feature request:

    I read the bug tracker does no longer accept feature requests and I
    should use the mailing list instead… I will drop asterisk-dev in
    future replies unless told otherwise.

    Il 20/01/2012 20:32, Alec Davis ha scritto:

    BLF *does* lamp, but when trying to pickup I get “DECLINED”.

    Here is the log:

  • For the most part, if it worked in 1.8.5 it should work in unless
    specifically noted in changes.

  • Il 23/01/2012 21:03, Olivier ha scritto:

    Are you sure? Hopefully I will test it in the week end.


  • Great to hear it’s working for others.

    Regarding inclusion into 1.8 branch, as it’s a new feature, it would only
    ever go into trunk, unless there is an outcry from the community.

    To assist others implementing this, and from a different viewpoint, would
    you mind documenting how you implemented it.

    I’m sure I’ve over complicated my examples.


  • Il 20/01/2012 20:32, Alec Davis ha scritto:

    The hint does work very well but I really didn’t understand how you did
    pickup the call in example 2…

    I don’t have static members and each (dynamic) member may be logged to
    another queue too. So even if I know SIP/155 is a (dynamic) member of
    Queue1 I can’t pick up 155 if it’s ringing because of another call
    coming from Queue2.


  • The trick is, don’t try to pickup the ringing device (SIP/155), pickup the
    queue’s extension, in our example Pickup(itg@trusted).

    We too, have some users logged into 3 queues at the same time, with more
    than 3 others only watching one of the queues.

    [ivr-dialextension] < << (1)
    exten => 8501,1,Goto(itg-queue,itg,1) ;Jump to the ITG queue context

    [itg-queue] < << (2)
    exten => itg,1,Queue(itg_queue,crhH,,,127)

    [trusted] < << (3)
    exten => 8501,hint,Queue:itg_queue ;Provide a hint for the queue
    exten => _**8501,1,Pickup(itg@trusted) ;Pickup the queue

    With the above 3 contexts;
    (1) the caller finally has dialled 8501 from the IVR
    (2) Which jumps to the itg-queue context and rings the phones that are
    dynamically logged in.
    (3) all phones start in the ‘trusted’ context, and dialling **8501 will
    pickup the ringing extension.

    I just dialled into our IVR, and the execution path was as follows

    (1) — Executing [8501@ivr-dialextension:1] Goto(“DAHDI/i1/214XXXXX-cea”,
    “itg-queue,itg,1”) in new stack

  • I suspected it, but it didn’t work at first. I fear I didn’t understand
    what the context refers to in Pickup(extension[@context]).

    I will make an example: phone-100 wants to pick up a ringing phone-200
    (call comes from my-sip-provider).

    This is my sip.conf




    This is my extensions.conf

    exten => test,hint,Queue:MyQueue
    exten => test,1,Pickup(myphonenumber@from-my-sip-provider)


    exten => myphonenumber,1,Queue(MyQueue,r)
    same => n,Hangup()

    I expected to use from-my-sip-provider as context in Pickup,
    unfortunately it didn’t work.
    So I tried both context-100 and context-200 as context in Pickup and
    they *both* worked! What’s the logic behind Pickup’s context?


  • There is some missing information here. What is the strategy of the
    queue? How are the queue members listed (i.e. are they SIP channels or
    local channels)? My suspicion is that the queue is simultaneously
    dialing local channels in contexts [context-100] and [context-200].
    Since there are no ringing channels in context [from-my-sip-provider]
    there are no calls to pick up there. However, since [context-100] and
    [context-200] both have ringing channels, doing a call pickup in either
    of these results in a successful pickup.

    Mark Michelson

  • Ok. Didn’t make 1.8 or 10.

    Hints for a ringing queue and queue available has been commited to asterisk-11-beta2 and trunk.

    Alec Davis