I was slaving away configuring a Cisco 2801 Router to behave as a telephone switch, and each time a caller rang in with a blocked Caller ID number, the IP Phone would show the incoming caller as "911," which was rather alarming. Obviously you don’t want to confuse that with a legitimate inbound call from 911.
I did a little hunting on the issue. The first hit on the problem came from this mailing list entry at osdir.com. In the thread, a Call Manager user was experiencing the same issue, but Cisco’s solution did not solve the problem.
The problem is apparently caused when an inbound POTS call contains an empty Caller ID string. This string is then matched against the dial-peer list to route the call. Since no dial-peer matches, the first dial-peer is hit. I’m not completely convinced of this, but I haven’t run enough tests to find out whether the first dial-peer is hit or not. My dial-peer destination-pattern match order appears to begin with 911 (dial-peer voice 4 pots on port 0/0/0.) I assume since dial-peers 1 through 3 are not associated with POTS ports they are skipped.
Anyway, the solution was to qualify the 911 dial-pattern with an explicit "destination-pattern [9]11." I also added, as Cisco suggests, the dummy dial-peer entries containing only "incoming called-number ." and the "port 0/0/0" as dial-peers 1 and 2. Dial-peer 3 is a voip destination on another CME device.
Until I added the [9]11 pattern, the phone continued to display ‘911’ on the inbound call tag. Afterward, ‘Unknown Caller’ was displayed, as desired.
If you are having trouble with this issue, try it out.