[Asterisk-Dev] Pickup problem with SIP

Vangelis Koukis vkoukis at cslab.ece.ntua.gr
Mon Jun 20 15:00:18 MST 2005


Dear List,

I have been experimenting with Asterisk recently, and came upon a
problem with call pickup when using chan_sip. There are three SIP
phones, with extensions 401, 402, 403. In sip.conf, callgroup=1,
pickupgroup=1 for all three of them. In features.conf, pickupexten = *8.
I am running Asterisk-1.0.7 as packaged for Debian unstable, show
version says:

Asterisk 1.0.7-BRIstuffed-0.2.0-RC7k built by kk at nyx on a x86_64 running Linux

When 401 dials 402, and starts ringing, I dial *8 on 403, and get an
error on the console from chan_sip.c: Nothing to pick up

I took a look at chan_sip.c:7384, where ast_pickup_call() is called,
then at res_features.c:957, where ast_pickup_call() is defined and noticed
this condition:

               if ((!cur->pbx &&
                        (cur != chan) &&
                        (chan->pickupgroup & cur->callgroup) &&
                        ((cur->_state == AST_STATE_RINGING) ||
                         (cur->_state == AST_STATE_RING))) {
                                break;
                }

The problem went away when I removed the first one, !cur->pbx, changing
the first line to:
               if ( //(!cur->pbx &&

I have very limited experience with the Asterisk source, so I don't know
if this change breaks something else, or why this condition was there in
the first place, but it seems to have solved my problem and call pickups work
without problems. Why exactly is !cur->pbx needed at this point?

Thanks in advance.

-- 
Vangelis Koukis
vkoukis at cslab.ece.ntua.gr
OpenPGP public key ID:
pub  1024D/1D038E97 2003-07-13 Vangelis Koukis <vkoukis at cslab.ece.ntua.gr>
     Key fingerprint = C5CD E02E 2C78 7C10 8A00  53D8 FBFC 3799 1D03 8E97




More information about the asterisk-dev mailing list