Page tree
Skip to end of metadata
Go to start of metadata

Sangoma Hardware does not interpret or interfere with caller ID on the line and simply passes this information up to the software (ie. Dahdi/Asterisk). 

If you wish to troubleshoot Caller ID issues, the following steps may help


A Caller ID issue could be caused by several factors. This section explores the possibility that the issue could be located at the telco or by noise on the lines. 

Test to verify you have caller ID from your telco

  1. Disconnect the FXO line from the back of the Sangoma card and plug it directly into an analog phone (that has a digital display).
  2. Place an inbound call to the line connected to the analog phone and verify that you see caller ID displayed on the screen of the phone.  If you do NOT see caller ID on the display (or not consistently) this means the issue is either with your telco or the analog line feeding up to the Asterisk server.  Call your telco to verify they are providing you with caller ID.  If they are, then you want to have a technician check the analog lines from the demark point.
  3. If caller ID is present on the analog phone then plug the line back into the port in the back of the Sangoma card and proceed with the next section  

If the analog phone shows the CallerID on every call, we could potentially be facing a misconfiguration of your Asterisk server. The following section will discuss how Caller ID detection works in Asterisk and the different options that you have avaialble. 

In Asterisk, the CallerID detection is done by the chan_dahdi module.  Normally its configuration file is located on /etc/asterisk/chan_dahdi.conf  and there are three variables that control how the feature works:

  • usecallerid: Sets whether to use caller ID, "yes" or "no" are the only available options
  • cidsignalling:  Determine type of caller ID signaling in use. The Caller ID signaling types supported by Asterisk are:
bell: bell202 as used in US (default)
v23: v23 as used in the UK
v23_jp: v23 as used in Japan   
dtmf: DTMF as used in Denmark, Sweden and Netherlands
smdi: Use SMDI for caller ID.  Requires SMDI to be enabled
  • cidstart: Determine signals the start of caller ID. The options supported by Asterisk are:
ring: A ring signals the start (default)
polarity: Polarity reversal signals the start
polarity_IN: Polarity reversal signals the start, DTMF dialtone detection in India
dtmf:  DTMF Caller ID spill begins only with DTMF, at various times before the ring.  This causes Asterisk to   constantly listen for DTMF CallerID signals on the specified channels
If cidstart is configured to use dtmf, the energy level on the line may need to be tuned to properly identify the DTMF tones. This tuning is done with the dtmfcidlevel configuration option. The specified value is compared to the average over a packet of audio level of the absolute value of 16 bit signed linear samples.  The default is set to 256, but this is completely arbitrary.  It must be set high enough to prevent false detections, while low enough to ensure no dtmf spills are missed.


If you are unsure how to set up these variables. Please contact your telco for more information about the type of signal that the use on the Caller ID (cidsignalling)and when their switches send it (cidstart) 

And example of the default configuration of Asterisk is:

file: chan_dahdi.conf 


Note: "..." means that other configuration unrelated to Caller ID could be there.  Please take into consideration that chan_dahdi controls more aspects than the Caller ID. Please do not delete the other variables if you are not sure what those do.

P.S.  We have seen at least once where a telco disabled Caller ID by attenuating the Caller ID signal.  This disables it for Asterisk and DAHDI, but a plain old telephone service (POTS) handset with Caller ID display can still show Caller ID information in this scenario.  If you're sure you have the chan_dahdi.conf settings correct for your location, and you're still not getting Caller ID, be sure to contact the provider and make sure they actually have Caller ID enabled on the line.

  • No labels