Phones Displaying Anonymous for Caller ID

We’ve just deployed new loads of CentOS, Asterisk, DAHDI and FreePBX to 3 of our servers.

We are now experiencing a strange issue.

There are 3 sites, all on the same provider with PRIs. Identical Hardware

All servers running the following versions:
Linux 2.6.18-274.3.1.el5 #1 SMP Tue Sep 6 20:13:52 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux
Asterisk 1.8.7.1 built by root @ 89-139-19-10.digium.internal on a x86_64 running Linux on 2011-10-17 19:00:52 UTC
DAHDI Version: 2.5.0.1

1 Site, Caller ID works fine.
2 other sites, core show channel reports correct inbound Caller Name and Number, sip debug shows ‘From:’ in SIP header is anonymous@anonymous.invalid and Phones display ‘Anonymous’

There’s very little different between the servers, does anyone have an idea where I should be looking first ?

All sites run Aastra 6757i phones fw: 2.6.0.2019

I face this issue and I believe it to be an issue with the phones themselves, it seems that if any part of the call shows as being anonymous it completely overwrites the caller ID client side to “Anonymous Caller” (atleast this is what I face with all my Linksys SPA9XX’s).

The only way round it is to detect server side when a call is anonymous and modify the caller ID slightly before sending it to the phones. If anyone knows of a client side way to disable the feature would love to hear it!

Best,

James Morris

The only thing that changed from a fully working environment to now is Asterisk upgrade from 1.6 to 1.8 and dahdi update.

Using SIP debug from asterisk cli, the very first SIP packet that sends to the phone when the extension is dialed shows anonymous as the SIP from address.

As you can see below, the first SIP packet has:
From: “Anonymous” sip:Anonymous@anonymous.invalid;tag=as51ee470f

[quote] – Executing [s@macro-user-callerid:24] Set(“DAHDI/i1/4445556666-a”, “CALLERID(number)=4445556666”) in new stack
– Executing [s@macro-user-callerid:25] Set(“DAHDI/i1/4445556666-a”, “CALLERID(name)=”) in new stack
– Executing [s@macro-user-callerid:26] Set(“DAHDI/i1/4445556666-a”, “CHANNEL(language)=en”) in new stack
– Executing [s@macro-exten-vm:2] Set(“DAHDI/i1/4445556666-a”, “RingGroupMethod=none”) in new stack
– Executing [s@macro-exten-vm:3] Set(“DAHDI/i1/4445556666-a”, “__EXTTOCALL=1399”) in new stack
– Executing [s@macro-exten-vm:4] Set(“DAHDI/i1/4445556666-a”, “__PICKUPMARK=1399”) in new stack
– Executing [s@macro-exten-vm:5] Set(“DAHDI/i1/4445556666-a”, “RT=”) in new stack
– Executing [s@macro-exten-vm:6] Macro(“DAHDI/i1/4445556666-a”, “record-enable,1399,IN”) in new stack
– Executing [s@macro-record-enable:1] GotoIf(“DAHDI/i1/4445556666-a”, “1?check”) in new stack
– Goto (macro-record-enable,s,4)
– Executing [s@macro-record-enable:4] ExecIf(“DAHDI/i1/4445556666-a”, “0?MacroExit()”) in new stack
– Executing [s@macro-record-enable:5] GotoIf(“DAHDI/i1/4445556666-a”, “0?Group:OUT”) in new stack
– Goto (macro-record-enable,s,14)
– Executing [s@macro-record-enable:14] GotoIf(“DAHDI/i1/4445556666-a”, “1?IN”) in new stack
– Goto (macro-record-enable,s,18)
– Executing [s@macro-record-enable:18] ExecIf(“DAHDI/i1/4445556666-a”, “1?MacroExit()”) in new stack
– Executing [s@macro-exten-vm:7] GotoIf(“DAHDI/i1/4445556666-a”, “1?macrodial”) in new stack
– Goto (macro-exten-vm,s,13)
– Executing [s@macro-exten-vm:13] GosubIf(“DAHDI/i1/4445556666-a”, “0?clrheader,1”) in new stack
– Executing [s@macro-exten-vm:14] Macro(“DAHDI/i1/4445556666-a”, “dial-one,tr,1399”) in new stack
– Executing [s@macro-dial-one:1] Set(“DAHDI/i1/4445556666-a”, “DEXTEN=1399”) in new stack
– Executing [s@macro-dial-one:2] Set(“DAHDI/i1/4445556666-a”, “DIALSTATUS_CW=”) in new stack
– Executing [s@macro-dial-one:3] GosubIf(“DAHDI/i1/4445556666-a”, “0?screen,1”) in new stack
– Executing [s@macro-dial-one:4] GosubIf(“DAHDI/i1/4445556666-a”, “0?cf,1”) in new stack
– Executing [s@macro-dial-one:5] GotoIf(“DAHDI/i1/4445556666-a”, “1?skip1”) in new stack
– Goto (macro-dial-one,s,8)
– Executing [s@macro-dial-one:8] GotoIf(“DAHDI/i1/4445556666-a”, “0?nodial”) in new stack
– Executing [s@macro-dial-one:9] GotoIf(“DAHDI/i1/4445556666-a”, “0?continue”) in new stack
– Executing [s@macro-dial-one:10] Set(“DAHDI/i1/4445556666-a”, “EXTHASCW=ENABLED”) in new stack
– Executing [s@macro-dial-one:11] GotoIf(“DAHDI/i1/4445556666-a”, “0?next1:cwinusebusy”) in new stack
– Goto (macro-dial-one,s,23)
– Executing [s@macro-dial-one:23] GotoIf(“DAHDI/i1/4445556666-a”, “1?next3:continue”) in new stack
– Goto (macro-dial-one,s,24)
– Executing [s@macro-dial-one:24] ExecIf(“DAHDI/i1/4445556666-a”, “0?Set(DIALSTATUS_CW=BUSY)”) in new stack
– Executing [s@macro-dial-one:25] GotoIf(“DAHDI/i1/4445556666-a”, “0?nodial”) in new stack
– Executing [s@macro-dial-one:26] GosubIf(“DAHDI/i1/4445556666-a”, “1?dstring,1:dlocal,1”) in new stack
– Executing [dstring@macro-dial-one:1] Set(“DAHDI/i1/4445556666-a”, “DSTRING=”) in new stack
– Executing [dstring@macro-dial-one:2] Set(“DAHDI/i1/4445556666-a”, “DEVICES=1399”) in new stack
– Executing [dstring@macro-dial-one:3] ExecIf(“DAHDI/i1/4445556666-a”, “0?Return()”) in new stack
– Executing [dstring@macro-dial-one:4] ExecIf(“DAHDI/i1/4445556666-a”, “0?Set(DEVICES=399)”) in new stack
– Executing [dstring@macro-dial-one:5] Set(“DAHDI/i1/4445556666-a”, “LOOPCNT=1”) in new stack
– Executing [dstring@macro-dial-one:6] Set(“DAHDI/i1/4445556666-a”, “ITER=1”) in new stack
– Executing [dstring@macro-dial-one:7] Set(“DAHDI/i1/4445556666-a”, “THISDIAL=SIP/1399”) in new stack
– Executing [dstring@macro-dial-one:8] GosubIf(“DAHDI/i1/4445556666-a”, “1?zap2dahdi,1”) in new stack
– Executing [zap2dahdi@macro-dial-one:1] ExecIf(“DAHDI/i1/4445556666-a”, “0?Return()”) in new stack
– Executing [zap2dahdi@macro-dial-one:2] Set(“DAHDI/i1/4445556666-a”, “NEWDIAL=”) in new stack
– Executing [zap2dahdi@macro-dial-one:3] Set(“DAHDI/i1/4445556666-a”, “LOOPCNT2=1”) in new stack
– Executing [zap2dahdi@macro-dial-one:4] Set(“DAHDI/i1/4445556666-a”, “ITER2=1”) in new stack
– Executing [zap2dahdi@macro-dial-one:5] Set(“DAHDI/i1/4445556666-a”, “THISPART2=SIP/1399”) in new stack
– Executing [zap2dahdi@macro-dial-one:6] ExecIf(“DAHDI/i1/4445556666-a”, “0?Set(THISPART2=DAHDI/1399)”) in new stack
– Executing [zap2dahdi@macro-dial-one:7] Set(“DAHDI/i1/4445556666-a”, “NEWDIAL=SIP/1399&”) in new stack
– Executing [zap2dahdi@macro-dial-one:8] Set(“DAHDI/i1/4445556666-a”, “ITER2=2”) in new stack
– Executing [zap2dahdi@macro-dial-one:9] GotoIf(“DAHDI/i1/4445556666-a”, “0?begin2”) in new stack
– Executing [zap2dahdi@macro-dial-one:10] Set(“DAHDI/i1/4445556666-a”, “THISDIAL=SIP/1399”) in new stack
– Executing [zap2dahdi@macro-dial-one:11] Return(“DAHDI/i1/4445556666-a”, “”) in new stack
– Executing [dstring@macro-dial-one:9] Set(“DAHDI/i1/4445556666-a”, “DSTRING=SIP/1399&”) in new stack
– Executing [dstring@macro-dial-one:10] Set(“DAHDI/i1/4445556666-a”, “ITER=2”) in new stack
– Executing [dstring@macro-dial-one:11] GotoIf(“DAHDI/i1/4445556666-a”, “0?begin”) in new stack
– Executing [dstring@macro-dial-one:12] Set(“DAHDI/i1/4445556666-a”, “DSTRING=SIP/1399”) in new stack
– Executing [dstring@macro-dial-one:13] Return(“DAHDI/i1/4445556666-a”, “”) in new stack
– Executing [s@macro-dial-one:27] GotoIf(“DAHDI/i1/4445556666-a”, “0?nodial”) in new stack
– Executing [s@macro-dial-one:28] GotoIf(“DAHDI/i1/4445556666-a”, “1?skiptrace”) in new stack
– Goto (macro-dial-one,s,30)
– Executing [s@macro-dial-one:30] Set(“DAHDI/i1/4445556666-a”, “D_OPTIONS=tr”) in new stack
– Executing [s@macro-dial-one:31] ExecIf(“DAHDI/i1/4445556666-a”, “0?SIPAddHeader(Alert-Info: )”) in new stack
– Executing [s@macro-dial-one:32] ExecIf(“DAHDI/i1/4445556666-a”, “0?SIPAddHeader()”) in new stack
– Executing [s@macro-dial-one:33] ExecIf(“DAHDI/i1/4445556666-a”, “0?Set(CHANNEL(musicclass)=)”) in new stack
– Executing [s@macro-dial-one:34] GosubIf(“DAHDI/i1/4445556666-a”, “0?qwait,1”) in new stack
– Executing [s@macro-dial-one:35] Set(“DAHDI/i1/4445556666-a”, “__CWIGNORE=”) in new stack
– Executing [s@macro-dial-one:36] Set(“DAHDI/i1/4445556666-a”, “__KEEPCID=TRUE”) in new stack
– Executing [s@macro-dial-one:37] GotoIf(“DAHDI/i1/4445556666-a”, “0?usegoto,1”) in new stack
– Executing [s@macro-dial-one:38] GotoIf(“DAHDI/i1/4445556666-a”, “0?godial”) in new stack
– Executing [s@macro-dial-one:39] Set(“DAHDI/i1/4445556666-a”, “CONNECTEDLINE(name,i)=Wes - Test”) in new stack
– Executing [s@macro-dial-one:40] Set(“DAHDI/i1/4445556666-a”, “CONNECTEDLINE(num)=1399”) in new stack
– Executing [s@macro-dial-one:41] Set(“DAHDI/i1/4445556666-a”, “D_OPTIONS=trI”) in new stack
– Executing [s@macro-dial-one:42] Dial(“DAHDI/i1/4445556666-a”, “SIP/1399,trI”) in new stack
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
Audio is at 5060
Adding codec 0x4 (ulaw) to SDP
Adding codec 0x8 (alaw) to SDP
Adding codec 0x2 (gsm) to SDP
Adding non-codec 0x1 (telephone-event) to SDP
Reliably Transmitting (no NAT) to 172.16.21.37:5060:
INVITE sip:1399@172.16.21.37:5060;transport=udp SIP/2.0
Via: SIP/2.0/UDP 192.168.13.8:5060;branch=z9hG4bK5336d0fe
Max-Forwards: 70
From: “Anonymous” sip:Anonymous@anonymous.invalid;tag=as51ee470f
To: sip:1399@172.16.21.37:5060;transport=udp
Contact: sip:Anonymous@192.168.13.8:5060
Call-ID: 4470d49579ddaecd4eb62d2324342391@192.168.13.8:5060
CSeq: 102 INVITE
User-Agent: FPBX-2.9.0(1.8.7.1)
Date: Wed, 23 Nov 2011 20:48:00 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Content-Type: application/sdp
Content-Length: 281

v=0
o=root 179812376 179812376 IN IP4 192.168.13.8
s=Asterisk PBX 1.8.7.1
c=IN IP4 192.168.13.8
t=0 0
m=audio 14092 RTP/AVP 0 8 3 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:3 GSM/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20
a=sendrecv


-- Called SIP/1399[/quote]

My guess is that the PRI circuits are configured slightly differently. Specifically, although the ANI may be getting delivered for the failed calls, it may be that the screening indicator for them is being set to private, and that Asterisk is honoring it and not sending the callerID to the end device. A good place to start would be to collect a DAHDI-side trace of both a working and non-working site to see what the differences are. That is, if you’re absolutely certain there are no relevant dialplan differences between the sites.

I took a perfectly working Asterisk 1.6.x.x site last night and upgraded to Asterisk 1.8.x.x as well as Dahdi.

Same issue now… no PRI change occured. Carrier assures all circuits are set identical.

PRI Debug indicates Caller ID Presentation is permitted.

SIP Debug shows header being built with From: sip:Anonymous for some reason.

chan_sip.so shows that is checks a variable AST_PRES_RESTRICTION to determine if it should set anonymous. I’m unable to find why that variable would be set to not allow CID to be transmitted.

I read that callcounter=yes should be set on each extension for AST_PRES_RESTRICTION to be unrestrictied, and this is set.

Unsure where to go from here. This is rather confusing and annoying.

I modified my dial plan some to specifically set a Caller ID Name / Number, echo that it is indeed set properly, set CallerID Presence to Allow, then dial the extension. And still it displays anonymous.

[code] – Executing [s@macro-dial-one:42] Set(“DAHDI/i1/4032223333-153”, “CALLERID(number)=4035552222”) in new stack
– Executing [s@macro-dial-one:43] Set(“DAHDI/i1/4032223333-153”, “CALLERID(name)=Wes”) in new stack
– Executing [s@macro-dial-one:44] NoOp(“DAHDI/i1/4032223333-153”, “4035552222 Wes”) in new stack
– Executing [s@macro-dial-one:45] Set(“DAHDI/i1/4032223333-153”, “CALLERID(num-pres)=allow”) in new stack
– Executing [s@macro-dial-one:46] Dial(“DAHDI/i1/4032223333-153”, “SIP/1151,20,tr”) in new stack
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
Audio is at 5060
Adding codec 0x4 (ulaw) to SDP
Adding codec 0x8 (alaw) to SDP
Adding codec 0x2 (gsm) to SDP
Adding non-codec 0x1 (telephone-event) to SDP
Reliably Transmitting (NAT) to 172.16.21.35:5060:
INVITE sip:1151@172.16.21.35:5060;transport=udp SIP/2.0
Via: SIP/2.0/UDP 172.16.5.8:5060;branch=z9hG4bK5acd99d0;rport
Max-Forwards: 70
From: “Anonymous” sip:Anonymous@anonymous.invalid;tag=as6065d1c9
To: sip:1151@172.16.21.35:5060;transport=udp
Contact: sip:Anonymous@172.16.5.8:5060
Call-ID: 045850e9293dbf710ba3f6714a758ace@172.16.5.8:5060
CSeq: 102 INVITE
User-Agent: FPBX-2.9.0(1.8.7.0)
Date: Mon, 05 Dec 2011 21:29:08 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Content-Type: application/sdp
Content-Length: 279

v=0
o=root 1798675859 1798675859 IN IP4 172.16.5.8
s=Asterisk PBX 1.8.7.0
c=IN IP4 172.16.5.8
t=0 0
m=audio 12566 RTP/AVP 0 8 3 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:3 GSM/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20
a=sendrecv[/code]

I looked in the source for chan_sip.c: I see where it sets the display to anonymous. I added sendrpid=yes in my sip.conf and the phone will display Unkown for name and number.

So my findings lead me to believe one of the following:
[] A variable or condition that determines if the Caller ID name/number should be sent in the SIP header in chan_sip.c is not set correctly
[
] chan_sip.c is not being passed the Name and Number properly for some reason

Anyone found a solution for this ? Same thing is happening in my case ater 1.6 to 1.8 upgrade .
viewtopic.php?f=1&t=80421
In my case i have ASTERISK acting as a tandem forwarding calls to ASTERISK 2 and always see anonymous caller id.
I find hard to believe that this would be a normal behavior.

That’s your problem. It is sufficiently abnormal that probably no-one else has actually experienced the problem.

What is actually being sent in the invite?

As pasted above.

== Using SIP RTP TOS bits 184 == Using SIP RTP CoS mark 5 Audio is at 5060 Adding codec 0x4 (ulaw) to SDP Adding codec 0x8 (alaw) to SDP Adding codec 0x2 (gsm) to SDP Adding non-codec 0x1 (telephone-event) to SDP Reliably Transmitting (NAT) to 172.16.21.35:5060: INVITE sip:1151@172.16.21.35:5060;transport=udp SIP/2.0 Via: SIP/2.0/UDP 172.16.5.8:5060;branch=z9hG4bK5acd99d0;rport Max-Forwards: 70 From: "Anonymous" <sip:Anonymous@anonymous.invalid>;tag=as6065d1c9 To: <sip:1151@172.16.21.35:5060;transport=udp> Contact: <sip:Anonymous@172.16.5.8:5060> Call-ID: 045850e9293dbf710ba3f6714a758ace@172.16.5.8:5060 CSeq: 102 INVITE User-Agent: FPBX-2.9.0(1.8.7.0) Date: Mon, 05 Dec 2011 21:29:08 GMT Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH Supported: replaces, timer Content-Type: application/sdp Content-Length: 279

And the inbound one?

Did you try trustrpid on the trunk?