После создания iOS SDK мы активно взялись за работу над Android-версией, так как современные тренды не позволяют усомниться в необходимости поддержки данной платформы. К тому же уже есть компании, интегрировавшие функционал звонков в свои мобильные приложения для iOS, и они активно намекали, что пора бы и для Android им выдать инструменты. В результате, в семействе SDK, которые могут взаимодействовать с платформой VoxImplant, произошло пополнение. О том какие возможности доступны разработчикам и что с ними можно построить, а также о нашей идее про конкурс для разработчиков VoxImplant можно узнать под катом.
Итак, что нам нужно для того, чтобы создать приложение для Android с функционалом real-time коммуникаций от VoxImplant? Во-первых, фантазия чтобы придумать что и зачем делаем, во-вторых, инструменты для реализации нашей идеи. Для начала скачаем сборку Eclipse под названием ADT с по этой ссылке с сайта developer.android.com (как вариант, теперь еще есть Android Studio на базе IntelliJ IDEA на том же сайте). Затем нам потребуется скачать VoxImplant Android SDK по этой ссылке. В этом архиве на самом деле не просто библиотеки, но и пример приложения, чтобы проще было разобраться. Распаковываем архив и импортируем проект в ADT. Возможно придется поправить некоторые импорты библотек JRE и Android, так как в проекте может быть другая версия указана. Если все сделано правильно, то получаем живой проект, который можно собрать и запустить. В результате на девайсе или эмуляторе получим следующий результат:
Логично, что без аккаунта VoxImplant и какого-нибудь сценария обработки звонка приложение бесполезно, поэтому нам нужно создать аккаунт разработчика VoxImplant (если у вас его еще нет) и, после активации через СМС, зайти в панель управления. Где мы увидим следующую картину:
Теперь нам нужно выполнить следующие действия:
Все сценарии пишутся на Javascript и выполняются при звонке движком, который мы называем VoxEngine. Конечно, к стандартным функциям и возможностям Javascript добавляется ряд классов, которые позволяют управлять звонками, делать HTTP-запросы и т.д. Более подробная информация о классах и функциях VoxEngine доступна в документации. Мы же сейчас напишем очень простой сценарий, который просто завернет нам звук обратно, этакий echo-тест часто используемый в ряде систем IP-телефонии. Внутри нашего нового приложения находим раздел «Сценарии», нажимаем создать сценарий, называем его TestScenario и пишем следующий код:
По сути, мы здесь отвечаем на звонок с SDK на стороне платформы, и после соединения заворачиваем приходящий звук обратно звонящему, получается эхо. Что произнесем, то и услышим обратно. Сохраняем сценарий и открываем раздел «Роутинг». Добавляем правило, назвать можно как угодно, например, EchoRule. В поле Маска пишем echo вместо .*, чтобы выполнить данный сценарий, только если номер был echo, и прикрепляем TestScenario, сохраняем. Все, миссия выполнена, теперь можно вернуться к нашему Android-приложению и посмотреть как это все работает (или не работает, если что-то по пути сделали не так :)
Вводим логин в виде testuser@полное_название_вашего_приложения (testapplication.kraken.voximplant.com в моем случае), пароль и echo в качестве номера телефона, жмем Connect, после этого должна появится надпись Connected to server. Жмем Login и получаем Logged in successfully. Жмем Call и получаем наш звонок с эхо.
Эхо — это, конечно, здорово, но мало применимо для каких-то реальных приложений, кроме случая для тестирования работы микрофона, поэтому давайте теперь сделаем так, чтобы заработали звонки на реальные номера. Идем в раздел сценариев и создаем следующий сценарий (назовем его PSTN):
Потом добавляем новое правило, в котором Pattern/Маску делаем вида [0-9]+ и перетаскиваем наш PSTN сценарий. Сохраняем и снова идем в мобильное приложение. Теперь если вместо echo ввести номер телефона в формате код страны, код региона, номер (например, 79261002030) и позвонить, то звонок пойдет на реальный телефонный номер.
На базе VoxImplant можно делать разные сервисы и приложения. Например, можно сделать РМО оператора колл-центра на базе какого-нибудь Android-девайса или сделать VoIP-звонилку а-ля Viber (несмотря на то что мы еще оптимизируем платформу для таких сценариев, есть компании, которые уже сделали такой функционал и встроили его в свои приложения). Мы уже писали про создание облачной IP АТС на базе VoxImplant, соответственно можно реализовать какой-нибудь мобильный клиент к такой АТС в дополнение к SIP-девайсам или софтфонам, если есть такое желание. В ближайшем будущем мы добавим поддержку видео-звонков в Android SDK, чтобы его функционал полностью соответствовал iOS-версии.
Документация по Android SDK доступна по ссылке. Мы осознаем исключительную важность документации и трудимся над ее улучшением, пока она далека от идеала, но мы стараемся отвечать на вопросы, которые нам присылают разработчики. Если у вас возник вопрос во время разработки, то не стесняйтесь написать нам, мы будем рады помочь.
Есть у нас такое интересное желание — провести конкурс для разработчиков на лучшее приложение/сервис с использованием VoxImplant. Как только мы завершим разработку ряда важных на наш взгляд функций платформы (например, конференций), которые позволят реализовать больше ваших фантазий, и окончательно определимся с призовым фондом, критериями и условиями, то объявим об этом. Как говорится, stay tuned!
Итак, что нам нужно для того, чтобы создать приложение для Android с функционалом real-time коммуникаций от VoxImplant? Во-первых, фантазия чтобы придумать что и зачем делаем, во-вторых, инструменты для реализации нашей идеи. Для начала скачаем сборку Eclipse под названием ADT с по этой ссылке с сайта developer.android.com (как вариант, теперь еще есть Android Studio на базе IntelliJ IDEA на том же сайте). Затем нам потребуется скачать VoxImplant Android SDK по этой ссылке. В этом архиве на самом деле не просто библиотеки, но и пример приложения, чтобы проще было разобраться. Распаковываем архив и импортируем проект в ADT. Возможно придется поправить некоторые импорты библотек JRE и Android, так как в проекте может быть другая версия указана. Если все сделано правильно, то получаем живой проект, который можно собрать и запустить. В результате на девайсе или эмуляторе получим следующий результат:
Логично, что без аккаунта VoxImplant и какого-нибудь сценария обработки звонка приложение бесполезно, поэтому нам нужно создать аккаунт разработчика VoxImplant (если у вас его еще нет) и, после активации через СМС, зайти в панель управления. Где мы увидим следующую картину:
Теперь нам нужно выполнить следующие действия:
- Зайти в раздел «Приложения» в меню слев и создать новое, назовем его testapplication
- В разделе «Пользователи» внутри приложения создать юзера, назовем его testuser
- Написать сценарий обработки звонка (об этом подробнее ниже)
- Назначить сценарий обработки звонка правилу и указать маску номера, при которой он должен сработать
Сценарий обработки звонка
Все сценарии пишутся на Javascript и выполняются при звонке движком, который мы называем VoxEngine. Конечно, к стандартным функциям и возможностям Javascript добавляется ряд классов, которые позволяют управлять звонками, делать HTTP-запросы и т.д. Более подробная информация о классах и функциях VoxEngine доступна в документации. Мы же сейчас напишем очень простой сценарий, который просто завернет нам звук обратно, этакий echo-тест часто используемый в ряде систем IP-телефонии. Внутри нашего нового приложения находим раздел «Сценарии», нажимаем создать сценарий, называем его TestScenario и пишем следующий код:
VoxEngine.addEventListener(AppEvents.CallAlerting, function(e) {
e.call.answer();
e.call.addEventListener(CallEvents.Connected, function(e) {
e.call.sendMediaTo(e.call);
});
});
По сути, мы здесь отвечаем на звонок с SDK на стороне платформы, и после соединения заворачиваем приходящий звук обратно звонящему, получается эхо. Что произнесем, то и услышим обратно. Сохраняем сценарий и открываем раздел «Роутинг». Добавляем правило, назвать можно как угодно, например, EchoRule. В поле Маска пишем echo вместо .*, чтобы выполнить данный сценарий, только если номер был echo, и прикрепляем TestScenario, сохраняем. Все, миссия выполнена, теперь можно вернуться к нашему Android-приложению и посмотреть как это все работает (или не работает, если что-то по пути сделали не так :)
Вводим логин в виде testuser@полное_название_вашего_приложения (testapplication.kraken.voximplant.com в моем случае), пароль и echo в качестве номера телефона, жмем Connect, после этого должна появится надпись Connected to server. Жмем Login и получаем Logged in successfully. Жмем Call и получаем наш звонок с эхо.
Кастомизация сценария звонка
Эхо — это, конечно, здорово, но мало применимо для каких-то реальных приложений, кроме случая для тестирования работы микрофона, поэтому давайте теперь сделаем так, чтобы заработали звонки на реальные номера. Идем в раздел сценариев и создаем следующий сценарий (назовем его PSTN):
VoxEngine.forwardCallToPSTN();
Потом добавляем новое правило, в котором Pattern/Маску делаем вида [0-9]+ и перетаскиваем наш PSTN сценарий. Сохраняем и снова идем в мобильное приложение. Теперь если вместо echo ввести номер телефона в формате код страны, код региона, номер (например, 79261002030) и позвонить, то звонок пойдет на реальный телефонный номер.
Другие сценарии
На базе VoxImplant можно делать разные сервисы и приложения. Например, можно сделать РМО оператора колл-центра на базе какого-нибудь Android-девайса или сделать VoIP-звонилку а-ля Viber (несмотря на то что мы еще оптимизируем платформу для таких сценариев, есть компании, которые уже сделали такой функционал и встроили его в свои приложения). Мы уже писали про создание облачной IP АТС на базе VoxImplant, соответственно можно реализовать какой-нибудь мобильный клиент к такой АТС в дополнение к SIP-девайсам или софтфонам, если есть такое желание. В ближайшем будущем мы добавим поддержку видео-звонков в Android SDK, чтобы его функционал полностью соответствовал iOS-версии.
Документация
Документация по Android SDK доступна по ссылке. Мы осознаем исключительную важность документации и трудимся над ее улучшением, пока она далека от идеала, но мы стараемся отвечать на вопросы, которые нам присылают разработчики. Если у вас возник вопрос во время разработки, то не стесняйтесь написать нам, мы будем рады помочь.
Конкурс
Есть у нас такое интересное желание — провести конкурс для разработчиков на лучшее приложение/сервис с использованием VoxImplant. Как только мы завершим разработку ряда важных на наш взгляд функций платформы (например, конференций), которые позволят реализовать больше ваших фантазий, и окончательно определимся с призовым фондом, критериями и условиями, то объявим об этом. Как говорится, stay tuned!
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Было бы вам интересно поучаствовать в конкурсе разработчиков VoxImplant?
34.15% Да14
43.9% Нет18
51.22% Зависит от приза :)21
Проголосовал 41 пользователь. Воздержались 12 пользователей.