How to solve Source Identification issues
On this topic:
The source of a call must be identified for security. This FAQ explains how 3CX Phone System identifies the source of calls by default and how you can adjust the default to make it work with almost any VoIP provider.
The SIP INVITE
When a Call is made or received, the process is initiated using a SIP Invite. The SIP invite specifies who is calling who. When the source of a call can not be identified, the SIP INVITE in question is listed in the server status log (3CX Management Console > “Status” > “Server status”) Below is a sample SIP invite posted after a failed call identification:
[CM500002]: Unidentified incoming call. Review INVITE and adjust source identification:
INVITE sip: firstname.lastname@example.org SIP/2.0
Via: SIP/2.0/UDP 192.168.1.11:5060;branch=z9hG4bKdfb42f8f5
CSeq: 2018876368 INVITE
Supported: timer, replaces
User-Agent: Patton SN4554 2BIS EUI MxSF v188.8.131.52 00A0BA032F48 R3.21 2007-05-14 SIP
Possibly the most important line is the Request Line URI or INVITE, which is marked in BOLD
The Default source identification method
By default, the 3CX Phone System will identify the source of the call by matching the user part of the Request Line URI or INVITE line, in this example 6870903, with the authentication ID of one of the configured VoIP providers. In 90% of cases this will suffice.
Adjusting the Source identification rules
Some providers however, put your external VoIP line number in the user part of the Request line field. In the above SIP INVITE example, source identification failed because 6870903 was not the authentication ID or the external number of one of the configured VoIP Providers. In this case, you have to edit the source identification rules. To do this:
- In the 3CX Management Console, Go to “Lines” > “Manage”.
- Click on the Account/Line of the VoIP provider.
- Expand the section “Source identification”.
- Select which field to match to which value. In most cases its best to use the Request Line URI: User part as the SIP field to match. In our example this was 6870903.
- Now select which value this number matches in the Value column. Alternatively select “Custom Field” in the variable column and then in the “Custom Value” field that appears specify: 687093. You can use a custom value if you are sure that each invite from this provider will use this same custom value. If in doubt contact the VOIP provider.
- Click “OK” to save the change. Go to the server status log, clear it and try another outbound call. The call should be identified correctly by the server.
NOTE: If matching a field to an IP address, you MUST include the port number as well. For example to match a field to 184.108.40.206, enter 220.127.116.11:5060