artem
20.12.2012
24162

FreePBX CallerID Lookup или подстановка имени абонента из внешнего источника

Настройка подстановки имени абонента.

FreePBX CallerID Lookup или подстановка имени абонента из внешнего источника

  1. Какую задачу хочется решить
  2. Инструмент FreePBX CallerID Lookup
  3. Источник поиска — Internal (Внутренний)
  4. Источник поиска — MySQL
  5. Источник поиска — SugarCRM
  6. Источник поиска — HTTP
  7. Источник поиска — ENUM

1. Какую задачу хочется решить

Давайте рассмотрим обычный сотовый телефон.
В нем есть телефонная книга, куда вы заносите своих родственников, друзей, клиентов и т. д. Когда вам звонит один из них, то на экране вы уже видите его имя и нет надобности вспоминать по номеру, кто это. Вещь тривиальная и давно всеми используемая.

А что если мы имеем IP-АТС на базе Астериск, которая также понимает и передает номера? (в отличи от аналоговых АТС и линий, в общем случае). Допустим нам требуется, чтобы когда нам звонит важный клиент, то его секретарь или оператор приветствовал по имени отчеству. Т. е. чтобы на экране телефона было видно в дополнении к номеру и имя звонящего. Тут и приходит на помощь модуль FreePBX CallerID Lookup.

2. Инструмент FreePBX CallerID Lookup

Данный модуль идет в стандартной поставке, устанавливать дополнительно его не надо. Попасть в версии FreePBX 2.10 в него можно так: Admin → CallerID Lookup Sources (Администратор — Источники поиска номера ИД)
Модуль уже содержит описание. Выглядит он так:

Чтобы его использовать, необходимо выполнить следующие условия:

  • добавить рабочий источник
  • в пункте меню Inbound routes (Входящая маршрутизация) выбрать данный источник

И все. Теперь при прихождении звонка через данное правило входящей маршрутизации, будет делаться запрос номера в указанный источник и если он вернет нам что-то   , то это и будет подставлено в качестве имени звонящего абонента, в дополнении к его номеру.

Примечание: нужно помнить формат CallerID абонента. Напоминает почтовый ящик: «имя абонента» <номер>, т. е. есть деление на CallerID name и CallerID number, имя абонента — текстовое значение, например: Ivan Petrov, Иван Петров, номер — числа 0-9 и знак +, например: 74959898533, +78003337533 Все вместе CallerID будет таким: «Ivan Petrov» <74959898533>

Теперь посмоторим, откуда и как можно получать нам имена.

3. Источник поиска — Internal (Внутренний)

Из названия ясно, что источник где-то        внутри. Так и есть, внутри FreePBX это, так называемая, Asterisk Phonebook (Телефонная книга Астериск). Попасть в нее можно Admin → Asterisk Phonebook (Администратор — Телефонная книга Астериск)
Пока она пустая, но мы легко добавим нужные нам номера вручную или загрузим. csv файл, предварительно его подготовив (можно выгрузить и посмотреть на структуру). Итак, добавляем имя, номер, код быстрого набора (необязательный параметр).



«Применить изменить» и видим, что появилась запись:

Теперь создаем источник в нашем модуле. Для этого достаточно дать ему любое имя. Он сам привяжется к телефонной книге астериск. Справа появится надпись созданного нами источника. Теперь идем во входящую маршрутизацию и указываем наш источник:

Сохраняем и применяем изменения.
Теперь можно пробовать. Если все правильно сделали, то на IP телефоне или софтфоне увидите имя и номер из телефонной книги.

Примечание: номер от разных операторов может приходить по-разному: 9251234567, 79251234567, +79251234567. В телефонной книге нужно точно сооблюдать формат.

4. Источник поиска — MySQL

Астериск может работать с MySQL нативно без дополнительных обработчиков, т. е. имеет встроенного mysql клиента. Все что нужно, это:

  • хост — где располагается MySQL сервер
  • база данных — к ней будет происходить обращение
  • запрос — SQL запрос к нашей БД, который возвращает запись с одной строкой и одним полем, т. е. единственное значение.
  • имя пользователя — пользователь в MySQL, которому выдана привелегия на select для интересующей нас БД. Обратите внимание, что в пользователе также должен быть указан хост, с которого будет возможно подключение.
  • пароль — пароль нашего пользователя в MySQL

Например, если наша БД называется mycrm, расположена в локальной сети на IP 192.168.0.10, пользователь asterisk, пароль lookN@me1
SQL запрос может выглядеть так:
SELECT name FROM clients WHERE number LIKE ‘%9251234567’

Данные собрали, проверили (с помощью mysql клиента) что наш запрос возвращает «Ivan Petrov», например. Теперь создаем источник:

SQL запрос:
SELECT name FROM clients WHERE number LIKE ‘%[NUMBER]’
Видим, как правильно писать номер. Данная информация есть в подсказке. При звонке вместо [NUMBER] будет подставляться реальное значение, а % дает возможность не учитывать возможный префикс.

Далее не забываем установить наш новый источник на входящей маршрутизации. Сохраняем и применяем. Пробуем звонить. И если все сделано правильно, то на экране IP телефона увидим имя абонента из БД.

Примечание. Если хотите использовать русские буквы в имени, то первое, в чем нужно убедится, это в соответствии кодировок. Лучше если этот будет UTF8. Возможно придется подкрутить charset в запросе. А второе — поддерживает ли ваш IP телефон UTF8 шрифт.

5. Источник поиска — SugarCRM

Данным пунктом можно воспользоваться в том случае, если CRM система SugarCRM установлена непосредственно в СУБД MySQL на том же сервере, что и наш астериск. БД должна называться sugarcrm. Если эти условия выполнены, то наш модуль сам возьмет нужные данные для SQL запроса. Если по каким-то причинам надпись «Пока не обеспечивается» не исчезает, то какие-то условия не были выполнены. Хотя при этом все может быть работать нормально. В таком случае, просто используйте источник MySQL с нужными параметрами.

6. Источник поиска — HTTP

Тоже весьма интересная вещь. Позволяет использовать PHP скрипты или API систем. Все что нужно, иметь рабочую ссылку с параметрами. Например, если мы вставляем в адресную строку URL вида:
http://mysupercrm.ru/action/name.php?num=9251234567
А нам возвращается имя того, кому принадлежит номер 9251234567, знакомый нам «Ivan Petrov». То мы можем использовать данный HTTP GET запрос, в качестве источника. Создаем источник HTTP так:

Опять же, не забываем во входящей маршрутизации указать его в качестве источника. Пробуем делать звонки.
Если HTTP протокол требует авторизации, то указывайте имя пользователя и пароль. Тут надо различать, о какой авторизации идет речь.

7. Источник поиска — ENUM

По аналогии с обратным DNS, который использует зону in-addr.arpa, телефонным номерам также может быть сопоставлены некоторые значения PTR, TXT. Так вот, если имеется DNS сервер, который обладает такими записями, то можно использовать ENUM источник, для сопаставления номер-имя. Например, для номера 79251234567 должна существовать DNS запись 7.6.5.4.3.2.1.5.2.9.7.e164.arpa типа TXT равная «Имя абонента». Если все условия выполненты, мы увидим «Имя абонента» на экране нашего IP-телефона. Таким образом в asterisk callerID выполняет свои функции.

 
avatar
  Подписаться  
Уведомление о

Остались вопросы?

Я - Кондрашин Игорь, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование

ближайшие курсы

ближайшие Вебинары

ONLINE

Why Choose HUGE?

Unlimited pre-designed elements

Each and every design element is designed for retina ready display on all kind of devices

User friendly interface and design

Each and every design element is designed for retina ready display on all kind of devices

100% editable layered PSD files

Each and every design element is designed for retina ready display on all kind of devices

Created using shape layers

Each and every design element is designed for retina ready display on all kind of devices