If you are missing your Caller ID on outbound calls follow the steps below to diagnose and resolve:
*Note: Sangoma cards do not have any affect on caller ID. Sangoma cards simply pass the information along, as received.
The steps below help you diagnose what software/hardware (around the Sangoma card/driver) is causing the issue.
Take a line trace to check for caller ID
The first step to identify missing caller ID is take a line trace for an outbound call (which will contain the caller id).
If you DO see the correct caller ID present in the trace, then you must contact your telco to have them resolve your caller ID issue.
*A common issue is that the caller ID you are setting is being reset by the telco with the main number. Contacting the telco resolves this issue.
If you do NOT see the caller ID in the trace, this means the caller ID is being removed (or not set properly) on your SIP phone, or SIP network.
To take a line trace, simply use the utility called wanpipemon that comes with the Sangoma driver for your card:
Enter the following command in your Linux command line, which will start a line trace
-> wanpipemon -i w1g1 -pcap -pcap_file isdn.pcap -prot ISDN -full -systime -c trd
-> w1g1 above represents port 1 on your Sangoma card. If your outbound call will exit on a different port, change w1g1 to wXg1 (replace X with the correct port number. (the linux command ifconfig will show you all the wXg1 interfaces, where X represents the port number)
-> The trace will save a file called isdn.pcap in the local directory that the trace was taken.
- When you press <enter> the line trace will begin, which will look similar to the following output:
- Make an outbound call to reproduce the issue
- Once you have made the inbound call where caller ID is missing, press <enter> to end the line trace
- Open the issn.pcap file in wireshark to analyze if caller ID was received by the telco
Analyzing the line trace using Wireshark
Now that you have captured a pcap trace from the steps above, it is time to analyze them in wireshark.
-> If your pcap trace does not open up properly in wireshark, verify that the trace is not 0 bytes. If the trace is empty, that means you have taken the trace on the wrong interface (i.e. w1g1 instead of w2g1)
Below is an example of a wireshark trace for an outbound call:
Notice how the screen is divided into two panes. The top portion will show you Q931 messages (i.e. SETUP, CONNECT, DISCONNECT).
When clicking on each one, the bottom pane describes the details of each message.
Notice the source and destination Columns. This tells you where the call originated from and is being sent to, respectively. If source = ‘Local User’ this means your server initiated the message(i.e the call, if the message is SETUP). If source = ‘Remote Network’ this means the telco initiated the message (i.e. the call, if the message is SETUP). Use the same analogy to analyze the destination
Click on the SETUP message, then expand the bottom portion where it says 'Q.931.
Caller ID comes in the SETUP message.
Below is a sample of a trace that displays the Caller ID present on the line. If your trace does not show a phone number is the same area as the trace below, contact your telco to resolve your missing caller ID issue.
Take a SIP trace to check for Caller ID
If caller ID was missing from the ISDN line trace taken from the previous section you should take a SIP trace.
A SIP trace will verify if caller ID is being sent to your PBX properly. If the SIP trace does not present caller ID (or corrupt caller ID), this is the reason why the caller ID is not being transmitted out the ISDN line.
To take a SIP trace simply run the following command on your Linux command line:
-> tcpdump -ni eth0 -s 0 -w outboundcall.pcap
The above line will take a sip wireshark trace on eth0 and save a file called 'outboundcall.pcap' in the local directory
(If your calls use another interface other than eth0, replace eth0 with that interface)
-> Press <enter> to start the trace, and CTRL + c to stop the trace.
-> Open the trace with wireshark and click on the INVITE message and investigate if you see caller ID