Интеграция Asterisk и VK через API

Работаете с IP – АТС Asterisk? Тогда этот материал для вас. Говорить будем про отправку уведомлений в VK (Вконтакте) при входящем звонке. От слов к делу.

icon strelka icons icons

узнай больше на курсе

Базовый курс по Asterisk
Двухнедельный онлайн курс по Asterisk от Мерион Нетворкс. 5 блоков обучения с домашним заданием. Именной сертификат с уникальным номером при успешной сдаче экзамена
Подробнее о курсе
DevOps-инженер с нуля
Освой Linux, Docker, Kubernetes и CI/CD и собери свой пайплайн: 4 месяца онлайн, практика и сертификат. Смотри программу и тарифы.
Подробнее о курсе
Полный курс по сетевым технологиям
Разберись в TCP/IP, коммутации и маршрутизации с нуля: 2 месяца онлайн, лабы и сертификат. Открой программу и выбери свой тариф.
Подробнее о курсе

Получаем access_token

Первым делом, перейдите Developers раздел VK. В хедере (верхнем меню навигации) нажмите Мои приложения после чего нажмите Создать приложение:

Настройка приложения в API VK
  • Название - дайте имя для вашего аппликейшна. Например, Asterisk;
  • Платформа - выбираем Standalone-приложение;

Переходим в раздел настроек созданного приложения. Копируем ID приложения, как показано на рисунке ниже:

Получение ID приложения VK API

Отлично. Теперь скопируйте ссылку ниже:

https://oauth.vk.com/authorize?client_id=1234567&scope= offline,messages&redirect_uri=https://oauth.vk.com/blank.html&display=page&v=5.37&response_type=token

Предварительно замените client_id на ваше значение, полученное ранее (ID приложения). VK API спросит разрешения на доступ к некоторым данным:

Получение access_token VK API

Если все ОК, то VK вернет нам токен:

Сохраняем access_token Вконтакте
Если вы столкнулись с ошибкой вида «{"error":"invalid_request","error_description":"Security Error"}», то перелогиньтесь в вашей учетной записи в VK и повторите попытку

Сохраняем значение и переходим к настройке скрипта на стороне Asterisk.


Адаптация на Asterisk

Реализацию скрипта сделаем на .php. Создайте файл asteriskvk.php и наполните его следующим содержимым:

#!/usr/bin/php -q
<?php
require('phpagi.php'); 
$agi = new AGI(); 
$message = "Сейчас поступит звонок с номера: ";
$message .= $agi->request['agi_callerid'];
$id = "ID получателя сообщения";
$token = "Токен";
function send($id , $message, $token)
{
    $url = 'https://api.vk.com/method/messages.send';
    $params = array(
        'user_id' => $id,
        'message' => $message,
        'access_token' => $token,
        'v' => '5.37',
    );
     $result = file_get_contents($url, false, stream_context_create(array(
        'http' => array(
            'method'  => 'POST',
            'header'  => 'Content-type: application/x-www-form-urlencoded',
            'content' => http_build_query($params)
        )
    )));
}
send($id, $message, $token);
Скачать скрипт

В скрипте вам необходимо поменять следующие переменные:

  • $id - идентификатор пользователя, которому будет отправлено сообщение. Помимо user_id, это может быть ID группового чата;
  • $token - API - токен, который вы получили ранее;

Сохраняйте файл и загрузите в директорию /var/lib/asterisk/agi-bin/ после чего дайте следующие команды в консоли сервера:

chmod 755 /var/lib/asterisk/agi-bin/asteriskvk.php 
chown asterisk:asterisk /var/lib/asterisk/agi-bin/asteriskvk.php 
dos2unix /var/lib/asterisk/agi-bin/asteriskvk.php

Лезем в диалплан и на входящем маршруте адаптируем простенькую конструкцию:

exten => _.,n,AGI(asteriskvk.php)

Звоним и проверяем:

Интеграция Asterisk и VK через API
Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
icon strelka icons icons

узнай больше на курсе

Базовый курс по Asterisk
Двухнедельный онлайн курс по Asterisk от Мерион Нетворкс. 5 блоков обучения с домашним заданием. Именной сертификат с уникальным номером при успешной сдаче экзамена
Подробнее о курсе
DevOps-инженер с нуля
Освой Linux, Docker, Kubernetes и CI/CD и собери свой пайплайн: 4 месяца онлайн, практика и сертификат. Смотри программу и тарифы.
Подробнее о курсе
Полный курс по сетевым технологиям
Разберись в TCP/IP, коммутации и маршрутизации с нуля: 2 месяца онлайн, лабы и сертификат. Открой программу и выбери свой тариф.
Подробнее о курсе
Онлайн-курс по сетевой безопасности
Научись защищать сеть: firewall, VPN, сегментация и мониторинг. 2 месяца онлайн, практика и сертификат. Смотри программу курса.
Подробнее о курсе
Онлайн-курс по кибербезопасности
Научись защищать сети и данные и разбирать атаки: 2 месяца онлайн, практика в лабах и сертификат. Открой программу и тарифы.
Подробнее о курсе
Этичный хакинг
Освой пентест: разведка, поиск уязвимостей и отчёты для заказчика. 4 месяца онлайн, практика и сертификат. Смотри программу.
Подробнее о курсе
Еще по теме:
Мы создали калькулятор инсталляции IP - АТС Asterisk. При планировании сервера и необходимого оборудования заполните соответствующие поля для расчета производительности, шлюзов и плат
Скачать руководство администратора Cisco UCM/CME на русском языке
Скачать руководство администратора FreePBX на русском языке
Рассказываем как рассчитать пропускную способность для IP-вызовов Cisco
Рассказываем как настроить отправку СМС сообщений из контакт-центра Октелл через Ростелеком СМС Реклама
ОСЕННИЕ СКИДКИ
30%
40%
50%
До конца акции: 30 дней 24 : 59 : 59