[asterisk-users] How can we pickup a call that is not going to a real extension?

Eric Chamberlain eric at rf.com
Thu Feb 25 18:41:31 CST 2010


Hello,

We have a situation where a call comes in, users are notified via an external process (curl request to web service), and we can't answer the call until a callee can call in and pickup the call.

How can we implement this functionality?

We tried using :

[caller-inbound-leg]

; code to send the CALL_UUID information to users.
exten => _[+0-9a-zA-Z*#_].,n(r203),Dial(LOCAL/${CALL_UUID}@inbound-wait-loop,,r)            ; wait for call pickup from callee's inbound leg

[inbound-wait-loop]

exten => _[+0-9a-zA-Z*#_].,1,Wait(30)


[callee-inbound-leg]

; code to figure out the CALL_UUID used for the callee-leg
exten => _[+0-9a-zA-Z*#_].,n,Pickup(${CALL_UUID}@inbound-wait-loop)


We thought Pickup() would work, but it only seems to work if the call is in the Dial state.

The logs have results like:

    -- Executing [5552233 at caller-inbound-leg:8] Pickup("SIP/20678350-5cd1-11de-bcf8-123139006632-0000004e", "14f0dff4-9a34-11dd-93fd-0015588ab9f3 at inbound-wait-loop") in new stack

[2010-02-25 19:20:28.936] NOTICE[18759]: app_directed_pickup.c:294 pickup_exec: No target channel found for 14f0dff4-9a34-11dd-93fd-0015588ab9f3.


Is there a way for a callee to pickup a call in the Wait state?

--
Eric Chamberlain









More information about the asterisk-users mailing list