Asterisk: Отображение имени компании при входящем звонке

Отображение названия организации при входящем звонке на АТС Asterisk с использованием API Яндекс.

Функционал

Система отображает данные компании (название, веб-сайт, сферу деятельности и др.) до начала разговора. Это повышает эффективность работы, особенно в B2B секторе.

Функционал работает следующим образом:

  1. Входящий звонок поступает на Asterisk.
  2. Через AMI (Asterisk Manager Interface) и скрипт передаётся номер звонящего.
  3. Скрипт отправляет запрос к API Яндекс для определения организации по номеру.
  4. Яндекс возвращает данные в формате JSON.
  5. Скрипт обрабатывает данные, извлекая, например, имя компании.
  6. Имя компании присваивается переменной, доступной оператору.
  7. Оператор видит название компании при входящем звонке.

Взаимодействие с API Яндекс

Важно: бесплатный доступ к API Яндекс ограничен 500 запросами в сутки, хранение данных запрещено. Ознакомьтесь с условиями использования по ссылке (ссылка опущена). Превышение лимитов требует заключения договора.

Настройка скрипта

  1. Получение токена: На developer.tech.yandex.ru создайте ключ, назовите его (например, «asterisk») и выберите API «Поиск по организациям». Скопируйте токен.
  2. Скрипт: Используйте библиотеку requests. Файл скрипта должен находиться в /var/lib/asterisk. Укажите в скрипте полученный токен и URL API Яндекс. Скрипт обрабатывает JSON-ответ, извлекая необходимые данные (например, имя компании).
    # ... (код скрипта) ...
  3. Адаптация в Dialplan: Преобразуйте скрипт из DOS в UNIX формат (dos2unix). Добавьте скрипт в Dialplan с помощью команды AGI. Пример для контекста from-internal:
    exten => _X.,1,AGI(ваш_скрипт)
    exten => _X.,2,Set(CALLERID(name)=${LOOKUP_CIDNAME})

Интеграция с Telegram

Интеграция с Telegram позволяет отображать данные компании (номер, название, сферу деятельности, веб-сайт) в чате. Telegram парсит данные из метатегов, например, из описания.

Функционал повышает эффективность работы, отображая информацию о звонящей компании на экране. При возникновении проблем, см. комментарии (ссылка на видео опущена).

Что будем искать? Например,программа