Mod cidlookup

From FusionPBX
Revision as of 21:52, 28 October 2012 by Gerritv (talk | contribs) (Preface)
Jump to: navigation, search

Overview

The scope of this is to allow the use of FusionPBX's Contacts module to populate phones with Caller ID Name.

Preface

There's one major drawback of using this - you cannot assign multiple people the same number as it will only return the first result. A workaround is to create separate contacts for the company and users within the company.
The CIDlookup module provides more functionality than described here. See the FreeSwitch wiki page for more details.

Requirements

  • unixODBC for linux users, appropriate ODBC driver for Windows users
  • mod_cidlookup

Additional Info

Optional

memcached

unixODBC

For CentOS:

yum install unixodbc unixodbc-dev
cd /usr/src/freeswitch
./configure && make mod_cidlookup-install

For Ubuntu

apt-get install unixodbc
apt-get install unixodbc-dev

You need to create a DSN that points to your database as well as the required credentials.

Windows ODBC

Install an appropriate ODBC driver for the database you are using. For Sqlite use this http://www.ch-werner.de/sqliteodbc/. You then need to create a DSN using Control Panel/Administrative Tools/Data Sources.

cidlookup.conf.xml

Sqlite or PostgreSQL (fusionpbx version 3 or higher)

SELECT v_contacts.contact_name_given || ' ' || v_contacts.contact_name_family ||' ('||v_contact_phones.phone_type||')' AS name, v_contact_phones.phone_number AS number
FROM v_contacts, v_contact_phones
WHERE v_contact_phones.contact_uuid = v_contacts.contact_uuid AND v_contact_phones.phone_number = '${caller_id_number}'
LIMIT 1


Sqlite or PostgreSQL (fusionpbx version 2):

SELECT v_contacts.n_given || ' ' || v_contacts.n_family ||' ('||v_contacts_tel.tel_type||')' AS name, v_contacts_tel.tel_number AS number
FROM v_contacts, v_contacts_tel
WHERE v_contacts_tel.contact_id = v_contacts.contact_id AND v_contacts_tel.tel_number = '${caller_id_number}'
LIMIT 1


MySQL: (fusionpbx version 2)

SELECT CONCAT(v_contacts.n_given, ' ', v_contacts.n_family) AS name, v_contacts_tel.tel_number AS number
FROM v_contacts, v_contacts_tel
WHERE v_contacts_tel.contact_id = v_contacts.contact_id AND v_contacts_tel.tel_number = '${caller_id_number}'

TODO

if CID Name = Fname Lname (fax) send to fax extension.