artem
20.12.2012
37000

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 выполняет свои функции.

Книга 101 функция Asterisk
Познакомьтесь с возможностями Asterisk. Найдите инструменты, которые помогут вашей компании развиваться.
Скачать книгу
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

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

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

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


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

10 доводов в пользу Asterisk

Распространяется бесплатно.

Asterisk – программное обеспечение с открытым исходным кодом, распространяется по лицензии GPL. Следовательно, установив один раз Asterisk вам не придется дополнительно платить за новых абонентов, подключение новых транков, расширение функционала и прочие лицензии. Это приближает стоимость владения станцией к нулю.

Безопасен в использовании.

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

Надежен в эксплуатации.

Время работы серверов некоторых наших клиентов исчисляется годами. Это значит, что Asterisk работает несколько лет, ему не требуются никакие перезагрузки или принудительные отключения. А еще это говорит о том, что в районе отличная ситуация с электроэнергией, но это уже не заслуга Asterisk.

Гибкий в настройке.

Зачастую возможности Asterisk ограничивает только фантазия пользователя. Ни один конструктор шаблонов не сравнится с Asterisk по гибкости настройки. Это позволяет решать с помощью Asterisk любые бизнес задачи, даже те, в которых выбор в его пользу не кажется изначально очевидным.

Имеет огромный функционал.

Во многом именно Asterisk показал какой должна быть современная телефонная станция. За многие годы развития функциональность Asterisk расширилась, а все основные возможности по-прежнему доступны бесплатно сразу после установки.

Интегрируется с любыми системами.

То, что Asterisk не умеет сам, он позволяет реализовать за счет интеграции. Это могут быть интеграции с коммерческими телефонными станциями, CRM, ERP системами, биллингом, сервисами колл-трекинга, колл-бэка и модулями статистики и аналитики.

Позволяет телефонизировать офис за считанные часы.

В нашей практике были проекты, реализованные за один рабочий день. Это значит, что утром к нам обращался клиент, а уже через несколько часов он пользовался новой IP-АТС. Безусловно, такая скорость редкость, ведь АТС – инструмент зарабатывания денег для многих компаний и спешка во внедрении не уместна. Но в случае острой необходимости Asterisk готов к быстрому старту.

Отличная масштабируемость.

Очень утомительно постоянно возвращаться к одному и тому же вопросу. Такое часто бывает в случае некачественного исполнения работ или выбора заведомо неподходящего бизнес-решения. С Asterisk точно не будет такой проблемы! Телефонная станция, построенная на Asterisk может быть масштабируема до немыслимых размеров. Главное – правильно подобрать оборудование.

Повышает управляемость бизнеса.

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

Снижает расходы на связь.

Связь между внутренними абонентами IP-АТС бесплатна всегда, независимо от их географического расположения. Также к Asterisk можно подключить любых операторов телефонии, в том числе GSM сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.