Настройка интеграции Мегаплан.
В кабинете администратора мегаплан нажимаем в правом верхнем углу на учетную запись, переходим в пункт «настройки».
В открывшемся меню переходим на верхней панели в пункт «Интеграция», после чего в левом меню выбираем пункт «Телефония». Находим «Подключение к телефонии по API» и переходим к настройкам.
Во вкладке «Основное» производим настройки в соответствии с необходимыми для АТС.
ВАЖНО! Должно стоять галочка на «Использовать коммуникации призвонках через телефонию» и типы коммуникаци для исходящих и входящих звонков должны быть соответствующими, иначе виджета не будет. Учитывать внутренние звонки для учета переводов.
Отсюда переносим «Token приложения» в поле «Ключ» в настройке crm в АТС, url в поле «URL». Тип события: «до и после», CRM:megaplan.
На вкладке «пользователи» добавляем сотрудников и прописываем их внутренний номер телефона.
После настройки телефонии переходим в приложения в верхнем меню, здесь автоматически создано приложение «Call API Integration». Выбираем его для редактирования.
В нижней части программы находим каталог «Виджеты» и создаем виджет
Заполняем «Название»: Smart_widget, «Плейсхолдер»: «Общий виджет/Виджет телефонии (common_telephony_widget)». В «Содержимое» копируем следующий скрипт, только поменять в строке
«sendCallbackEvent('http://193.110.238.228/megaplan/makeCall.php?clientId=YYD5N2CvbCz80xzl4EkV&code='+ userPhone + '&phone=' + callInfo.toPhone + '&call_id=' + callInfo.id, mpCallJsSdk);»
на нужный ip и clientId на «ключ для вызова»:
<script type="text/javascript">
a9n.callSDK().then(function(mpCallJsSdk){
var userPhone = mpCallJsSdk.getUserInternalNumberConfig();
mpCallJsSdk.on('connect', function () {
mpCallJsSdk.connected();
});
mpCallJsSdk.on('disconnect', function () {
mpCallJsSdk.disconnected();
});
/*
При изменении состояния звонка, а следовательно, и виджета
(например, через hhtp запрос) в неглавной вкладке,
можно получать изменения callInfo:
*/
mpCallJsSdk.on('updateCallInfo', function(callInfo){
console.log(callInfo);
});
var callInfo =mpCallJsSdk.getCurrentCallInfo();
mpCallJsSdk.on('call', function(callInfo){
sendCallbackEvent('http://193.110.238.228/megaplan/makeCall.php?clientId=YYD5N2CvbCz80xzl4EkV&code=' + userPhone + '&phone='
+ callInfo.toPhone + '&call_id=' + callInfo.id, mpCallJsSdk);
});
mpCallJsSdk.calling(callInfo);
mpCallJsSdk.talking(callInfo);
mpCallJsSdk.finished(callInfo);
mpCallJsSdk.setCapabilities({
'WEBTALK': false,
'ANSWER': false,
'END_TALK': false,
'TRANSFER': false,
'AWAY_MODE': false,
'MUTE': false,
'CLEAR_STATE': false,
});
});
function sendCallbackEvent(theUrl, sdk)
{
var XHR = ("onload" in new XMLHttpRequest()) ? XMLHttpRequest : XDomainRequest;
var xhr = new XHR();
xhr.open('GET', theUrl, true);
sdk.badCall();xhr.send();
}
</script>
<div>Smart</div>