To change this behavior you have to comment out the following lines in asterisk/apps/app_pickup.c:
/* strip the subchannel tag */
endptr = strrchr(evalchan, '/');
These lines transform a channel from ie. "SIP/40" to "SIP", thus making ALL ringing channels with the SIP protocol match the channels in the list. Not quite what's desired in our case.
innovative communication solutions