- Управляйте на расстоянии
- Задавайте переадресацию
- Держите связь
со всеми сотрудниками
Веб-телефоны становятся все более популярным инструментом исходящих звонков для поддержки отделов продаж и работы с клиентами. Сегодня такое решение предлагает и компания New-Tel. Рассказываем, как интегрировать WebPhone непосредственно в инфраструктуру бизнес-телефонии.
WebPhone— это клиентское программное обеспечение VoIP, основанное на стандартах SIP. Этот инструмент может быть встроен в любую веб-страницу в качестве программного браузера или использован как библиотека JavaScript VoIP для создания собственного веб-решения VoIP. Будь то простая кнопка вызова или интегрированное комплексное решение с вашей существующей бизнес-логикой, WebPhone обеспечивает эффективное взаимодействие со сторонними системами.
WebPhone разработан для компаний, которые работают с клиентами через собственные приложения, самописную CRM или личный кабинет. По сути, это дополнительная опция виртуальной АТС от компании New-Tel — интеграция телефонии и бизнес-решения организации.
Допустим, в компании есть 100 сотрудников, которые пользуются CRM. В обычной ситуации, чтобы обеспечить им доступ к телефонии, каждому нужно установить софтфон. Однако это долго и сложно.
С помощью интеграции с WebPhone компания может одновременно телефонизировать всех сотрудников. Какие преимущества создает такое решение:
Какие функции предусматривает интеграция с WebPhone:
WebPhone в разы упрощает коммуникацию с клиентом через единую систему веб-телефонии
Для работы с WebPhone необходимо сформировать два постоянных ключа в личном кабинете системы в разделе API:
Эти ключи будут использоваться для авторизации запросов, приходящих из вашей информационной системы. Если у зарегистрированного абонента используется несколько информационных систем, интегрированных с API «Нью-Тел», то для всех систем используется один комплект ключей.
ВАЖНО! Не размещайте виджет в открытом доступе в сети, иначе через ваш аккаунт сможет позвонить любой желающий.
Для авторизации запросов используется схема на основе токена Bearer. Достаточно в каждый запрос добавить токен Bearer в формате:
Authorization: Bearer token
Bearer-токен формируется для каждого запроса динамически и представляет собой строку длиной 112 символа:
Например, так формируется токен на PHP:
$token = $keyNewtel.$time.hash ("sha256", $methodName."\n".$time."\n".$keyNewtel."\n".$params."\n".$writeKey)
где:
Спасибо!
Ваша заявка отправлена!
Для всех запросов используется только метод POST по спецификации HTTP/1.1. Параметры запроса передаются в теле сообщения в формате application/json или application/x-www-form-urlencoded.
Строка параметров запроса должна быть сформирована в кодировке UTF-8 без дополнительных пробелов и переносов строк. Например, в PHP это можно сделать методами: json_encode($params) или http_build_query($params), где: $params – ассоциативный массив параметров или объект.
Формат данных запроса должен быть указан в заголовке: Content-Type.
Пример запроса для получения информации о состоянии компании-абонента:
URI
https://api.new-tel.net/company/get-state
HEAD
Authorization: Bearer df9b7fg89n79...
Content-Type: application/json
BODY
{}
Ответные данные возвращаются всегда в кодировке UTF-8. Формат данных может быть указан в заголовке запроса Accept, где допускаются следующие значения:
В случае отсутствия в запросе заголовка Accept данные возвращаются в формате JSON.
Ответы для всех запросов содержат следующие нестандартные HTTP-заголовки:
Если в ответе отсутствуют указанные заголовки, установите параметр CURLOPT_HEADER => 1 в запросе.
Тело ответа может содержать следующие атрибуты:
Клиентская сторона может проверять достоверность получаемых данных, сверяя подпись ответа. Подпись ответа вычисляется по алгоритму, аналогичному для вычисления подписи запроса, где вместо строки параметров запроса используется текстовый контент ответного HTTP-сообщения. Результат вычисления отправляется в текстовом виде с HTTP-заголовком: Signature.
Пример проверки подписи ответа сервера на языке PHP — формирование запроса для осуществления соединения между номерами +7 (904) 111-22-33 и +7 (999) 111-22-33 с отображением номера +7 (495) 111-22-33 при вызовах:
<?php
$data = json_encode([
'callerId' => ‘74951112233’,
'dstNumber' => '79041112233',
'srcNumber' => '79991112233',
'timeout' => 30,
]);
var_dump($data);
$time = time();
$resId = curl_init();
$key = getKey('call/start_simple_call',
$time,'616a2cbbc392c798c06161dae2bd0c2093af4f399e95f48d',
$data,'84c29e3807ccb092f50ea7e66537ba9b519628efdd741046');
curl_setopt_array($resId, [
CURLINFO_HEADER_OUT => true,
CURLOPT_HEADER => 0,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.$key ,
'Content-Type: application/json' ,
],
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_URL => 'https://api.new-tel.net/call/start_simple_call',
CURLOPT_POSTFIELDS => $data,
]);
$response = curl_exec($resId);
$curlInfo = curl_getinfo($resId);
echo $response;
function getKey ($methodName , $time , $keyNewtel , $params , $writeKey )
{
return $keyNewtel.$time.hash( 'sha256' ,
$methodName."\n".$time."\n".$keyNewtel."\n".
$params."\n".$writeKey);
}
Для успешного интегрирования виджета WebPhone в вашу систему вам необходимо выполнить настройку в личном кабинете «Нью-Тел», а также добавить соответствующий JavaScript-код на страницу вашего проекта.
Настройка личного кабинета New-Tel:
Настройка WebPhone со стороны клиента:
Добавьте следующий код в <head> секцию HTML-кода вашей страницы:
<link href="https://public.new-tel.net/webrtc/widget.css" rel="stylesheet">
Данный код подключает стили по умолчанию для виджета. Если вы хотите кастомизировать виджет, вы можете создать свои стили на основе данных стилей.
В <body> секции HTML-кода вашей страницы добавьте следующий код:
<script>
window.newtelWebrtcWidgetConfig = <?= json_encode($widgetConfig, JSON_UNESCAPED_SLASHES) ?>
</script>
<script
async src="https://public.new-tel.net/webrtc/widget.js">
</script>
Данный код создает и использует глобальный объект window.newtelWebrtcWidgetConfig, который содержит все параметры для виджета. Эти параметры можно получить через API-метод:
webrtc/get-widget-config
В данном примере параметры хранятся в переменной $widgetConfig и рендерятся в JSON-строку, после добавления кода на вашу страницу виджет будет доступен для использования.
Пример кода:
<style>
.widget-container {
background-color: #fff;
border: 1px solid #ccc;
border-radius: 5px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
position: fixed;
bottom: 20px;
right: 20px;
z-index: 9999;
}
</style>
<!-- Подключение стилей по умолчанию -->
<link href="https://public.new-tel.net/webrtc/widget.css" rel="stylesheet">
<?php
// API-ключи и данные для запроса
$api_key_new_tel = YOUR_API_KEY;
$writeKey_new_tel = YOUR_SIGNING_KEY;
$data =json_encode([
'internalNumber' => 100,
]);
// Вычисление ключа авторизации
$time = time();
$key = getKey_new_tel('webrtc/get-widget-config', $time, $api_key_new_tel, $data, $writeKey_new_tel);
// Опции для запроса
$resId = curl_init();
$options = [
CURLINFO_HEADER_OUT => true,
CURLOPT_HEADER => 0,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $key ,
'Content-Type: application/json',
],
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_URL => 'https://api.new-tel.net/webrtc/get-widget-config',
CURLOPT_POSTFIELDS => $data,
];
curl_setopt_array($resId, $options);
// Выполнение запроса и обработка ответа
$response = curl_exec($resId);
$curlInfo = curl_getinfo($resId);
$ajax = array();
$ajax = json_decode($response, true);
if (isset($ajax['status']) AND $ajax['status'] == 'success') {
?>
<!-- Создание и использование объекта конфигурации виджета -->
<script>window.newtelWebrtcWidgetConfig = <?php echo json_encode($ajax['data']['widgetConfig'],JSON_UNESCAPED_SLASHES); ?>;</script>
<!-- Подключение скрипта виджета -->
<script async src="https://public.new-tel.net/webrtc/widget.js"></script>
<!-- Контейнер виджета -->
<div class="widget-container">
<div class="widget-header">
<span>WebRTC виджет</span>
</div>
<div class="widget-body">
<p>Здесь будет содержимое виджета.</p>
</div>
</div>
<?php
}
function getKey_new_tel($methodName, $time, $keyNewtel, $params, $writeKey) {
return $keyNewtel . $time . hash('sha256', $methodName . "\n" . $time . "\n" . $keyNewtel . "\n" . $params . "\n" . $writeKey);
}
?>
Для управления WebPhone-виджетом существует ряд доступных методов. Если вам необходимы дополнительные методы для управления виджетом, вы можете обратиться в техническую поддержку ООО «Нью-Тел» по адресу: support@new-tel.net с запросом на разработку дополнительных методов. Наши специалисты будут рады помочь вам и предоставить дополнительную информацию о возможностях взаимодействия с WebPhone-виджетом.
Мы стремимся найти индивидуальный подход к каждому клиенту по стоимости и технической реализации
Оставьте ваш email и система автоматически вышлет вам коммерческое предложение
Мы стремимся найти индивидуальный подход к каждому клиенту по стоимости и технической реализации
Красивое голосовое приветствие - это изюминка Вашей компании
Перезвоним Вам в течении 10 секунд
Перезвоним Вам в течении 10 секунд