Summary:ASTERISK-08509: callerid.c loses name when returning PRIVATE_NUMBER flag
Reporter:Ben Brown (benbrown)Labels:
Date Opened:2007-01-07 10:42:11.000-0600Date Closed:2007-01-23 13:16:05.000-0600
Versions:Frequency of
Description:In callerid.c, in the callerid_get function, the name returned to chan_zap is set to NULL when CID_PRIVATE_NUMBER flag is set.

This prevents you from determining whether an incoming call is out-of-area or whether the calling party is withholding their number.  The if statement should test for CID_UNKNOWN_NAME | CID_PRIVATE_NAME rather than CID_UNKNOWN_NAME | CID_PRIVATE_NUMBER before resetting the name.

I don't see why you would want to return a null name, when CID has presented you with a valid and useful name "WITHHELD".


In my dialplan I check for the callerid name of WITHHELD to screen unwanted telemarketing calls.  As it stands I cannot do this without modifying callerid.c, otherwise the only method is to block any incoming call without a number.  I do not want to do this as I will also block incoming international calls.

There does not seem to be a mechanism in the dial plan for determining the actual flags that are passed from the callerid feature.  This would be a more useful long term feature.
Comments:By: Steve Murphy (murf) 2007-01-23 13:16:05.000-0600

Made the suggested change in 51683 (1.4) and 51684(trunk). This could be potentially disruptive to those who have already have code around this behavior, but it is hoped that the WITHHELD is worth the bother.