Free Applications and XML-Services for Cisco UC

External Caller ID for Cisco Unified Communications Manager

Free download

Share your email with us to download External Caller ID for CUCM for free -

Overview

"External Caller ID" is a web-application built with PHP and provided for free with its source code.

Integrated with Cisco Unified Communications Manager (CallManager) it retrieves the caller name from any SQL DB and shows it on your Cisco IP phone or Cisco Jabber during the incoming call.

How It Works

The application utilizes External Call Control feature available in Cisco Unified Communications manager (CUCM). Since the calling name modification is only available in CURRI 10.0 the application only works with CUCM v10 and higher.

1. The External Call Control Profile (ECCP) is configured in CUCM and applied to the line(s) that receives external incoming call.

2. Any incoming call to the specified line(s) causes CUCM to issue a route request to the "External Caller ID" app over the Cisco Unified Routing Rules XML Interface (CURRI).

3. The application performs the query to SQL DB (can be configured) to retrieve the caller name based on the calling number.

4. "External Caller ID" returns a Call Routing Response containing "Allowed" decision and a special instruction to modify the calling name.

Requirements

1. Cisco Unified Communications Manager 10
2. Web-server running PHP 5.5 and higher;
2.1 PHP libs required: php_mysql.dll, php_mysqli.dll, php_pdo_mysql.dll, php_pdo_oci.dll, php_pdo_odbc.dll, php_pdo_sqlite.dll.

How to Configure

Configure web application

1. Extract the archive to the web app root folder.

2. Open ./bin/admin.php and set up the admin login and password:
private $_login = "aurus";
private $_password = "abc1234";

3. Enable PHP extensions in php.ini:
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_pdo_mysql.dll
extension=php_pdo_oci.dll
extension=php_pdo_odbc.dll
extension=php_pdo_sqlite.dll
and restart the web server.

Configure CUCM

1. Login to CUCM with admin rights.

2. Create External Call Control Profile (External Call Control Profile Configuration) specifying:
Primary Web Service = http://Caller-ID-App-URL/index.php
Call Treatment on Failures = «Allow Calls»

3. Apply ECCP to the line(s) receiving incoming calls (Device/Phone):

Try the application in TEST mode

The TEST mode allows you to try the application without connecting to the DB.

1. Access the configuration page at http://Caller-ID-App-URL/admin.php and enter login and password specified earlier.

2. Configure the TEST mode:
  MODE = "TEST"
  Caller ID = the test phone number
  Display Name = the display name to be used for test phone number
Click "Save configuration"

3. Test the application:
Call from the test phone to the line you applies ECCP to. Your IP phone (or Cisco Jabber) should show the Display Name you specified at previous step.

Configure the connection to MySQL

If you deployed the application on *nix server you only can connect to MySQL to retrive the caller name:

1. Configure access to MySQL:
MODE = SQL
DataBase type = MySQL
DB Server: :
DB login:
DB password:
DB Base:

2. Enter the SQL query to retrieve the caller name. Note:
a) only one column should be selected, if you need to join 2 columns to generate the display name, do so with SQL functions, for example: "select Concat(name,surname) from clients where phone= ";
b) the query should end with missing phone number, like "where phone=";

3. Click "Save configuration" and try the application.

Configure ODBC sources for DB other than MySQL (example below is for Windows-deployment):

If you deployed the application on Windows you can configure ODBC source to be used by "External Caller ID" app:

1. Configure ODBC source:
Open Control Panel -> Admimistrative Tools -> Data Sources (ODBC)
Go to System DSN and add a new data source specifying the connection parameters:
 

2. Configure the "Caller ID" application (http://Caller-ID-App-URL/admin.php) to use the ODBC source:

MODE = SQL DataBase type: ODBC DB Server: DB login: DB password:

3. Enter the SQL query to retrieve the caller name. Note:
a) only one column should be selected, if you need to join 2 columns to generate the display name, do so with SQL functions, for example: "select Concat(name,surname) from clients where phone= ";
b) the query should end with missing phone number, like "where phone=";

3. Click "Save configuration" and try the application.