Интерфейс Click2Call & ClickCallBack
- Подключение Вставка кнопки
- Вставка кнопки звонка Старт звонка по клику на существующем элементе страницы Завершение активного вызова Посылка DTMF Настройка вида интерфейса
Подключение
Подключение Click2Call осуществляется вызовом программного кода сервиса на страницах ресурса:
<head> ... <script type="text/javascript" src="http://ctc. ru. /ctc. js"></script> <script type="text/javascript"> itl_add_ctc_css(); </script> ... </head> |
Вставка кнопки
Вставка кнопки звонка
Вставка кнопки звонка в нужное место страницы осуществляется функцией itl_ctc:
itl_ctc(clientId, langId, interfaceMode, size); |
- Обязательные аргументы
- clientId - уникальникальный id клиента, получаемый при генерации кнопки в интерфейсе; langId - ru / en;
- interfaceMode - набор предопределенных констант, объединенных по "ИЛИ", описывающих режим отображения интерфейса click2call:
- ITL_CTC_DIALPAD - показывать dialpad; ITL_CTC_POPUP - открывать интерфейс звонка в новом окне; ITL_CTC_CALLBACK - использовать функцию обратного вызова: пользователь указывает номер телефона, на который он собирается позвонить, система звонит на этот номер, и если звонок успешный, соединяет его с клиентом.
Пример кода:
<body> ... <div> <script>itl_ctc("client1", "ru");</script> </div> |
В элемент-контейнер <div> будет добавлено все необходимое для отображения кнопки. Элемент кнопки звонка - <em class="ctc_button"></em>. По умолчанию стили для элемента "ctc_button" заданы в css, подключаемом с помощью функции itl_add_ctc_css(). Заказчик может переопределить стили (см. раздел Настройка вида интерфейса).
Старт звонка по клику на существующем элементе страницы
Связывание элемента страницы с функциональностью Click2Call осуществляется с помощью функции
itl_ctc_obj(elementId, clientId, langId, interfaceMode, size); |
- Обязательные аргументы
- elementId - идентификатор элемента, клик на котором будет инициировать звонок. Вместо id можно передавать и сам элемент, полученный с помощью метода getElementById(id); clientId - то же, что и в itl_ctc(); langId - то же, что и в itl_ctc();
- interfaceMode - набор предопределенных констант, объединенных по "ИЛИ", описывающих режим отображения интерфейса click2call:
- ITL_CTC_DIALPAD - показывать dialpad; ITL_CTC_POPUP - открывать интерфейс звонка в новом окне; ITL_CTC_CALLBACK - использовать функцию обратного вызова: пользователь указывает номер телефона, на который он собирается позвонить, система звонит на этот номер, и если звонок успешный, соединяет его с клиентом.
- mode - тоже самое, что и interfaceMode; callback - функция-обработчик для событий внутри системы. На вход получает два параметра: тип события и данные. Возможные типы событий:
- connected - XIMSS соединение успешно поднято disconnected - XIMSS соединение разорвано (вторым параметром в функцию может прийти описание ошибки) callProvisioned - звонок заметили на той стороне, там звонит телефон callConnected - звонок успешно начался callProgress - звонок продолжается, вторым параметром в функцию приходит количество секунд с начала звонка callDisconnected - звонок завершен (вторым параметром в функцию может прийти описание ошибки)
Запуск звонка по клику на существующий элемент страницы осуществляется следующим фрагментом кода:
<body> ... <img src="btn-accept. png" id="call2" style="cursor: pointer;"/><br/>Call me ... <script>itl_ctc_obj("call2", "client1", "ru");</script> |
"call2" - идентификатор элемента, клик на котором будет инициировать звонок. Вместо id можно передавать и сам элемент, например так:
<body> ... <img src="btn-accept. png" id="call2" style="cursor: pointer;"/><br/>Call me ... <script>itl_ctc_obj(document. getElementById("call2"), "clientId", "ru");</script> |
Пример вызова с обработчиком событий
<head> <script> var ctc = null; myCallback = function(eventType, errorMsg) { console. log(eventType+ (errorMsg?(": "+errorMsg):"")); } </script> </head> <body> WBDemo web2.0: <em id="call2" style="text-decoration: underline; cursor: pointer;">Call</em>^ <script>ctc = itl_ctc_obj(document. getElementById("call2"), "wbdemo", "en", {mode: ITL_CTC_DIALPAD, callback: myCallback});</script>^ </body> |
Примеры модификации интерфейса:
Только dialpad
<script>itl_ctc("calledName", "en", ITL_CTC_DIALPAD);</script> |
Новое окно + dialpad
<script>itl_ctc("calledName", "ru", ITL_CTC_POPUP|ITL_CTC_DIALPAD);</script> |
Новое окно + интерфейс заказа обратного звонка
<script>itl_ctc("calledName", "ru", ITL_CTC_POPUP|ITL_CTC_CALLBACK);</script> |
Завершение активного вызова
Для завершения активного вызова доступен метод hangup();
<body> ... <img src="btn-accept. png" id="call2" style="cursor: pointer;"/><br/>Call me ... <script>var ctc = itl_ctc_obj("call2", "client1", "ru");</script> |
"call2" - идентификатор элемента, клик на котором будет инициировать звонок. Вместо id можно передавать и сам элемент, например так:
<body> ... <img src="btn-hangup. png" id="call2" style="cursor: pointer;" onclick="ctc. hangup();"/><br/>Hangup ... <script>itl_ctc_obj(document. getElementById("call2"), "clientId", "ru");</script> |
Посылка DTMF
Для посылки DTMF во время активного вызова доступен метод sendDTMF(код);
Настройка вида интерфейса
| Ограничение |
В общем случае HTML код, генерируемый программой имеет вид:
<em class="ctc_button"></em> <em class="ctc_flash"><object... </em> <em class="ctc_arr"></em> <em class="ctc_info"> <em class="status">Talking</em> <em class="top"></em> <em class="info"> <h1> <em class="dpad"> <em class="dpad_row"><em class="dpad_btn"><em>1</em></em><em class="dpad_btn"><em>2</em></em><em class="dpad_btn"><em>3</em></em></em> <em class="dpad_row"><em class="dpad_btn"><em>4</em></em><em class="dpad_btn"><em>5</em></em><em class="dpad_btn"><em>6</em></em></em> <em class="dpad_row"><em class="dpad_btn"><em>7</em></em><em class="dpad_btn"><em>8</em></em><em class="dpad_btn"><em>9</em></em></em> <em class="dpad_row"><em class="dpad_btn"><em>*</em></em><em class="dpad_btn"><em>0</em></em><em class="dpad_btn"><em>*</em></em></em> </em> <em class="ctcInfoTime">00:13</em> </h1> <p>...</p> <h2 class="connected"> <u>Hangup</u> </h2> </em> <em class="bottom"></em> </em> |

<em class="ctc_button"> - сама кнопка (элемент может отсутствовать, если использовалась привязка программы к уже существующему элементу)
В процессе работы программы этому элементу добавляются классы, отражающие текущее состояние звонка, а именно:
- .dialing - устанавливается связь .ringing - звонит телефон клиента .connected - связь установлена
<em class="ctc_flash"> - контейнер для flash объекта. Стили для этого элемента менять не рекомендуется.
<em class="ctc_arr"> - контейнер для указателя (см. рисунок). В момент инициации звонка программа сама решает где удобнее показать окно с учетом этого контейнера. Контейнеру могут быть присвоены классы:
- .lefttop - стрелка будет слева-сверху .righttop - стрелка будет справа-сверху .leftbottom - стрелка будет слева-снизу .rightbottom - стрелка будет справа-снизу
<em class="ctc_info"> - контейнер для информационного окна звонка, содержит 4 дочерних элемента:
- <em class="status"> - в этот элемент программа выводит статус звонка <em class="top"> - верхний колонтитул <em class="info"> - контейнер для информации <em class="bottom"> - нижний колонтитул
<em class="info"> - контейнер для информации, содержит 3 дочерних элемента
- <h1> - контейнер для заголовка, в зависимости от состояния программы может содержать <em class="dpad"> (см. ниже), <em class="ctcInfoTime"> (см. ниже), <p> <p> - контейнер для дополнительной информации <h2> - контейнер для кнопок, в зависимости от состояния программы контейнеру могут быть добавлены классы:
- .calling - идет соединение .connected - соединение установлено .error - ошибка
<h2> - контейнер может содержать несколько элементов <u> - кнопок. При наведении мыши на <u> - элементу добавляется класс "hover";
<em class="dpad"> - контейнер для dialpad. Содержит 4 элемента <em class="dpad_row">, каждый из которых содержит по 3 элемента <em class="dpad_btn">. При наведении мыши на <em class="dpad_btn"> - элементу добавляется класс "hover"
<em class="ctcInfoTime"> - контейнер для счетчика времени, содержит строковое отображение продолжительности звонка.
Пример




