Peter,
The most likely cause is that you a recieving the caller ID but the callmanager does not know how to present it so will display it as an Unknown number
As you have an H323 gateway you have two options, you can either apply this on the Callmanager or on the gateway using a translation rule.
Assuming you also wish to prefix a 9 so that the user can call back then you can use a simple translations to do the job. You have two options I prefer the second but its personal choice
The second option is dependant on the country dial pattern. This is based on the uk where local calls had 6 digits (some areas have 7) and then 10, 11 and 12 digits for national and international etc
Option 1 is more straightforward
voice translation-rule 1
rule 1 /^0./ /90/
rule 2 /^1/ /901/
rule 3 /^2/ /902/
rule 4 /^3/ /903/
rule 5 /^4/ /904/
rule 6 /^5/ /905/
rule 7 /^6/ /906/
rule 8 /^7/ /907/
rule 9 /^8/ /908/
rule 10 /^9/ /909/
rule 11 /^00/ /900/
Option 2 is a little more complex
voice translation-rule 1
rule 1 /\(^......$\)/ /9\1/
rule 2 /\(^..........$\)/ /9\1/
rule 3 /\(^...........$\)/ /9\1/
rule 4 /\(^............$\)/ /9\1/
They are both added in the same way
voice translation-profile Prefix_9
translate calling 1
voice-port 0/0/0:15
translation-profile incoming 1
You could also apply to the incoming dial-peers
or you could apply the incoming on the callmanager in the Service Paramterers got to
Clusterwide Paramters (Device – Phone)
Nation number prefix 90
International number prefix 900
Finally double check that you are actually getting caller ID coming in, normall logging will help but run either a debug isdn q931 or a debug voice ccapi inout. If Caller ID is enabled then you should see the incmoing number usually missing the leading zero, this may be the reason CM cant recognise it
Hope this helps
Thanks
Paul