Summary:ASTERISK-08986: pickup_exec: No target channel found for
Reporter:Juergen Roesch (chaoty2k)Labels:
Date Opened:2007-03-12 05:53:36Date Closed:2011-06-07 14:07:52
Versions:Frequency of
Environment:Attachments:( 0) verbosedebug_trimmed.txt
( 1) verbosedebug_trimmed_2nd.txt
asterisk 1.4.1 on gentoo

my extensions.conf [only the interesting part]:
exten => 123,1,Ringing
exten => 123,2,Dial(SIP/xxxx,20,r)
exten => 123,3,wait(90)
exten => 123,4,hangup

exten => 456,1,pickup(123@incoming_1)

both are sip-accounts and have pickupgroup=1 in the sip.conf
so my idea is, when anybody calls at 123 my mobile is ringing and i call
back on 456 and will be connected to the caller

the callout and all other are runnig, but at the pickup there is always:
pickup_exec: No target channel found for 123@incoming_1

I've already tried to insert a answer before the pickup and do a pickup
without the context but nothing runs...

I changed the source of app_directed_pickup.c as described in the comment of http://www.voip-info.org/wiki/view/Asterisk+cmd+Pickup but the bug is also present.

ns1*CLI> core show channels
Channel Location State Application(Data)
IAX2/XXX.XX.217.52:4 79@wrn:2 Ring Wait(90)
1 active channel
1 active call

-- Executing [80@wrn:2] Pickup("IAX2/XXX.XX.217.52:4569-4", "79@wrn") in new stack
[Mar 12 09:09:08] NOTICE[30639]: app_directed_pickup.c:99 pickup_by_exten: exten: 80 - context: wrn in .
[Mar 12 09:09:08] NOTICE[30639]: app_directed_pickup.c:99 pickup_by_exten: exten: 79 - context: wrn in .
[Mar 12 09:09:08] NOTICE[30639]: app_directed_pickup.c:162 pickup_exec: No target channel found for 79.

the both lines extra came from a log-entry i've put in the source:
ast_log(LOG_NOTICE, "exten: %s - context: %s in %s.\n", target->exten,context,target->dialcontext);

in pickup_by_exten as first line in the while-way.

I don't think its a problem of the ringing-State because i commented the "can_pickup(target))" in the if-cause two lines later out.

Comments:By: Serge Vecher (serge-v) 2007-03-12 10:12:43

Please produce the following debug log on an unpatched system please.
1) Prepare test environment (reduce the amount of unrelated traffic on the server);
2) Make sure your logger.conf has the following line:
  console => notice,warning,error,debug
3) restart Asterisk with the following command:
  'asterisk -Tvvvvvdddddngc | tee /tmp/verbosedebug.txt'
4) Set logging parameters with the following CLI commands (1.4/trunk commands in parenthesis):
set debug 4 (core set debug 4)
set verbose 4 (core set verbose 4)
5) Reproduce the problem
6) Trim startup information and attach verbosedebug.txt to the issue.

By: Juergen Roesch (chaoty2k) 2007-03-12 10:37:22

sorry, i selected the wrong file first, please delete verbosedebug.txt and see the bug at verbosedebug_trimmed.txt

By: Serge Vecher (serge-v) 2007-03-12 11:01:21

you've forgotten to do "core show channels" in the end ;). Second question -- does this work in 1.4.0?

By: Serge Vecher (serge-v) 2007-03-12 11:31:18

also, the line numbers in the debug output do not match up to the sources -> make sure you use the *unmodified* sources.

By: Joshua C. Colp (jcolp) 2007-03-12 11:44:23

Directed pickup is written to pick up a phone call that is dialing another. In your case that already happened, and it is now in the Wait. Directed pickup is doing exactly as it should.

By: Juergen Roesch (chaoty2k) 2007-03-12 11:59:41

my actual extensions.conf:

exten => 123,1,Ringing
exten => 123,2,wait(90)
exten => 123,3,hangup

so, i think, pickup should catch the call in the 90 secs of wait?

By: Juergen Roesch (chaoty2k) 2007-03-12 12:00:49

i added the verbose-debug with the show channels

By: Joshua C. Colp (jcolp) 2007-03-12 12:00:52

Directed pickup is *not* written to do that. It is written to pick up a call that is in Dial() to something.

By: Juergen Roesch (chaoty2k) 2007-03-12 12:04:51

ehm okay...  i thought i could do this with pickup
so I'll try my luck in the Forum for a new idea how i could bridge two incoming calls
Thanx a lot