Phone Number Recognition in Integrations
One of the more complex issues in Computer Telephony Integration (CTI) is recognizing a caller by the phone number or sip uri of the caller. Especially the phone number of the caller can be hard to recognize in the system source used in the CTI. This is caused because the back end systems used in the integration often use a different phone number format than used in the CTI systems of the agent during a call. The UCC A Unified Contact Center, or UCC, is a queue of interactions (voice, email, IM, etc.) that are handled by Agents. Each UCC has its own settings, IVR menus and Agents. Agents can belong to one or several UCCs and can have multiple skills (competencies). A UCC can be visualized as a contact center “micro service”. Customers can utilize one UCC (e.g. a global helpdesk), a few UCC’s (e.g. for each department or regional office) or hundreds of UCC’s (e.g. for each bed at a hospital). They are interconnected and can all be managed from one central location. and related CTI systems like the (web) Extension Window for instance use the E164 The E.164 phone number format is an international (ITU) standard for dialing telephone numbers on the Public Switched Telephony Network (PSTN). Loosely formulated, only "+" and upto 15 digits (0-9) are allowed For example: +4433221100 (For number notation/display and storage see the E.123 standard) format for phone numbers by default. But linked backend systems (Dynamics, Salesforce, Afas etc.) will often use other more human readable phone number formats. Many of the integrated backend systems don't even enforce a single phone number format.
The Formats Overview section contains some generic solutions to resolve the phone number matching issues.
The AnywhereNow CRM Customer Relationship Management, or CRM, is (usually) a software-based, data management method to deal with interactions with customers and potential customers. Service is one of the most important frameworks to create integrations between AnywhereNow and other backend systems. The Configuration section proposes how some of the phone number recognitions solutions could possible be configured for the AnywhereNow CRM Service, using the Plugin Settings.

About International phone number standards
The CRM Service supports several widely accepted phone number standard formats:
Format | Description |
---|---|
E.164 The E.164 phone number format is an international (ITU) standard for dialing telephone numbers on the Public Switched Telephony Network (PSTN). Loosely formulated, only "+" and upto 15 digits (0-9) are allowed For example: +4433221100 (For number notation/display and storage see the E.123 standard) |
The most commonly used phone number format in the UCC and related CTI systems is the E.164 format. E.164 numbers are formatted [+][country code] [subscriber number including area code] and can have a maximum of fifteen digits. Example: +3114440216. The simplest scenario would be that the backend systems used in the CTI integration also use the E.164 format, either by default or because of changes in the used backend system (for instance additional custom phone number fields normalized to the E.164 format). Unfortunately this will often not be the case. |
E.123 The E.123 format is an international (ITU) standard for notation and storage of international telephone numbers, email addresses and web addresses. Loosely formulated, "+ ", digits, non alphanumeric characters (like brackets, hyphens) and spaces are allowed For example: +44 (333) 221-100 |
The international format consistent with the definition in ITU-T Recommendation E.123. This format looks a lot like E.164, but uses separating symbols like spaces. For example: +41 44 668 1800 See documentation from International Communication Union for more details. |
RFC 3966 |
This format is very similar to the international format described above but with all spaces and other separating symbols replaced with a hyphen. The phone number from the previous example becomes +41-44-668-1800 See documentation from RFC Editor for more details. |
About the use of wildcard characters when searching for phone numbers
In case the backend system of the customer uses wildly different phone number formats than the E164 format and no fixed formats are used, it will often be necessary to use a wild card search on a phone number. This usually translates to using the national phone number part of the phone number received in the UCC (the full E164 format phone number minus the international land code), and then use wild cards between each number as well at the start and the end. So phone number +31614440216 would translate to %6%1%4%4%4%0%2%1%6%.
The wildcards (%) in this format ensure that separator symbols like dots, underscores, spaces etc. are ignored. Using a wild card search however is an expensive search. A "like" search with wild cards could use more resources and could take a lot more time to complete than an "equals" search with all phone numbers in the same format. It also requires additional checks to verify if the retrieved records really are a match, because a match returned by the wild card search does not have to be a real match. The land code could be different for instance. It will often be necessary to check if the phone number in the retrieved record and the phone number received in the UCC are truly a match. Some backend systems also do not allow such an extensive search with a wild card between each digit.
About Phone Number Patterns
In case the backend system used by the CTI system does support fixed phone number formats, but not the E164 format, the phone number received in the UCC could potentially be formatted to the correct format. This format can be described as a pattern based on the country code and the national phone number.
The following examples explain how number formats can display:
Example
Format with more spaces
-
Phone number in E.164 format: +48227860243
-
Phone number format used in the back end system: +48 22 7860243
Pattern to change the phone number to the supported format:
- The first part of the pattern +[country_code] retrieves the country code from the phone number. In this case this translates to +48.
- Between the first part of the pattern and the second part is a space. This also translates to a space in the phone number format.
- The second part of the pattern [national_number]{0,2} uses the first 2 digits of the national number. This translates in the example above to 22. The 2 patterns parts combined translate to +48 22.
- Between the second part of the pattern and the last part is a space. This also translates to a space in the phone number format.
- The last part of the pattern [national_number]{2} retrieves all digits from the national number beyond the second digit.
Example
Land code starting with 00 instead of +
- Phone number in E.164 format: +49768147404
- Phone number used in the backend system: 0049 7681 47404
Pattern to change the phone number to the supported format:
Example
Hyphen in phone number format
-
Phone number in E.164 format: +492242916590
-
Phone number used in the backend system: +49 2242 91659-0
Pattern to change the phone number to the supported format:
The benefit of using one or multiple phone number patterns are:
- It still allows to do an equals search on phone numbers without wild cards which means more efficient searches in the backend systems of the customer than using a wild card search.
- It allows for more flexibility to deal with phone number formats that are not supported out of the box.
How to configure Phone number format settings in the AnywhereNow CRM Service
The AnywhereNow CRM Service supports the following phone number formats for a search:
- E164
- International (The international format consistent with the definition in ITU-T Recommendation E123 The E.123 format is an international (ITU) standard for notation and storage of international telephone numbers, email addresses and web addresses. Loosely formulated, "+ ", digits, non alphanumeric characters (like brackets, hyphens) and spaces are allowed For example: +44 (333) 221-100)
- Rfc3966 The rfc3966 format defines an international (IETF) standard for dialing (and storing) a telephone number as a URI. Loosely formulated, start the URI with "tel:" followed by an E.164 or E.123 formatted phone number. For example: tel:+44333221100
- Wildcard (For instance national number with all digits between wild cards, or at the front and end, depending on the integration.)
- Pattern (Search on a predefined pattern)
These formats can be configured in the PluginSettings list in your UCC SharePoint Dashboard using the PhoneNumberFormat setting:
Setting | Value | Scope |
---|---|---|
PhoneNumberFormat |
[choose E164 / International / Rfc3966 / Wildcard / Pattern] |
CrmService |
The CRM Service will automatically convert the search value to any of these phone number formats.
Additionally there is one more PhoneNumberFormat option: Pattern. This setting allows to define one or more phone number formats. Read the information About Phone Number Patterns in the Formats overview above to see examples of phone number patterns.
But these patterns have to be defined in additional settings. For each pattern add a setting called PhoneNumberPattern with an incremental integer at the end starting from 1. So if we use 2 example patterns, the new settings become:
Pattern | Value | Scope |
---|---|---|
PhoneNumberFormat |
Pattern |
CrmService |
PhoneNumberPattern1 |
+[country_code]-[national_number]{0,1}-[national_number]{1} |
CrmService |
PhoneNumberPattern2 |
00[country_code] [national_number]{0,4} [national_number]{4} |
CrmService |