Eric Chamberlain
2010-Feb-26 00:41 UTC
[asterisk-users] How can we pickup a call that is not going to a real extension?
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
