Интеграция с IP телефонией посредством API

  • API-телефония (устаревша...pdf

Интеграция с IP телефонией, посредством API. Данный метод зависит от возможностей телефонного решения (популярные решения, например Asterisk поддерживают данные возможности). Суть метода следующая - на телефонной станции прописываются агенты helpdesk системы. В момент, когда оператор поднимает телефонную трубку (физически), телефонная станция отправляет в HelpDeskEddy информацию об этом, и у агента, который поднял трубку, появляется окно-карточка звонка. С данного интерфейса есть возможность создать заявку, посмотреть информацию по клиенту. При создании заявки, телефонная станция приложит записанный телефонный звонок.

 


ВНИМАНИЕ! На текущий момент в системе реализована новая, усовершенствованная версия интеграции с телефонией через API, в которой появилось множество дополнительных возможностей. В статье представлена информация для обеих версией, однако настоятельно рекомендуем ознакомиться с новой версией и, если вы всё еще пользуетесь старой, осуществить переход на обновленную, т.к. старая больше не обновляется и в ближайшее время будет отключена!


 

Интеграция ВАТС по средствам API (новая, текущая версия)

 

Интеграция позволяет фиксировать входящие/исходящие вызовы на ВАТС, а также показывать информацию о звонке в реальном времени сотруднику/группе сотрудников.

 

Детальнее с различными методами, параметрами API и примерами запросов можно ознакомиться в документации по ссылке: https://helpdeskeddy.ru/telephony.pdf

 

Для начала работы необходимо создать канал:

1. Перейти в Управление → "Настройки каналов связи" и нажать кнопку Добавить канал.

2. Выбрать канал — Телефония через API.

3. Выбрать департамент в котором будут создаваться заявки по умолчанию.

4. Указать «Название» канала, например это может быть номер телефона.

5. Нажать кнопку «Сохранить».

 

 

После сохранения канала, станет доступна уникальная ссылка, на которую необходимо отправлять все запросы, а также появится возможность установить связь между пользователями ВАТС и сотрудниками системы.

 

Для удобства интеграции все запросы необходимо отправлять на единую точку API HTTP методом POST на ссылку выданную в настройках канала в формате: https://домен_системы/api/v2/telephony/calls/@channelKey

 

Детальнее с различными методами, параметрами API и примерами запросов можно ознакомиться в документации по ссылке: https://helpdeskeddy.ru/telephony.pdf

 

 

Интеграция ВАТС по средствам API (предыдущая, устаревшая версия)

 

Популярные вопросы:

1. Где взять переменную call_id?

  •  в данном методе GET | /api/v2/telephony/show_call/{phone_number}/users/{?user_ids} будет отдан call id.

 

2. Какого формата должен быть номер телефона {phone_number} при передаче?

  • Привязка звонка к пользователю осуществляется при помощи вхождения номера в эту строку. Указывать номер необходимо в полном формате используемом в системе, например 7XXXXXXXXX0 либо XXXXXXXXX0.

 

С необходимыми методами и параметрами API для работы можно ознакомиться в прикреплённом файле.

 

Пример для Asterisk 13:

 

exten => s,n,AGI(tech_support.agi,${id_number},${call_number})

Содержание /var/lib/asterisk/agi-bin/tech_support.agi

#!/usr/bin/env php
<?php

include("phpagi.php");

/**********************************************************************************************************************/
$agi = new AGI();
$id_number = $argv[2];
//$id_number = 1; // На этапе отладки можно выставлять id принудительно
$call_number = $argv[1];
$agi->verbose("Номер id сотрудника $id_number");
$agi->verbose("Номер телефона входящий клиента $call_number");

if( $curl = curl_init() ) {
	$url = 'https://*.helpdeskeddy.com/api/v2/telephony/show_call/call_number/users/id_number';
	//* - название вашей системы

	$url=str_replace("call_number",$call_number,$url);
	$url=str_replace("id_number",$id_number,$url);
	$headers = array(
    	'Authorization: Basic dHJldHl*********************************************',
	);
	curl_setopt($curl,CURLOPT_HTTPHEADER,$headers);
	curl_setopt($curl,CURLOPT_URL,$url);
	curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
	$out = curl_exec($curl);
	echo $out;
	curl_close($curl);
}
exit(0);
?>