Настройка интеграции Мегаплан.
В кабинете администратора мегаплан нажимаем в правом верхнем углу на учетную запись, переходим в пункт «настройки».
В открывшемся меню переходим на верхней панели в пункт «Интеграция», после чего в левом меню выбираем пункт «Телефония». Находим «Подключение к телефонии по 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>