Настройка интеграции Мегаплан.

В кабинете администратора мегаплан нажимаем в правом верхнем углу на учетную запись, переходим в пункт «настройки».

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

файл