VoxImplant Android SDK: телефония и голосовые real-time коммуникации в вашем приложении

e60fd7e3b2d70fbf6dd47b6b2c10a70d.pngПосле создания 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, так как в проекте может быть другая версия указана. Если все сделано правильно, то получаем живой проект, который можно собрать и запустить. В результате на девайсе или эмуляторе получим следующий результат: 5f5cf3a7361a8b3ac4312cd02e619ee5.pngЛогично, что без аккаунта VoxImplant и какого-нибудь сценария обработки звонка приложение бесполезно, поэтому нам нужно создать аккаунт разработчика VoxImplant (если у вас его еще нет) и, после активации через СМС, зайти в панель управления. Где мы увидим следующую картину: d198be5e3aa4a666e981c5cddf042399.pngТеперь нам нужно выполнить следующие действия:

Зайти в раздел Applications/Приложения и создать приложение, назовем его testapplication В разделе Users создать юзера и прицепить его к приложению, последее можно сделать как во время создания юзера, так и после. Назовем юзера testuser Написать сценарий обработки звонка через приложение (об этом подробнее ниже) Назначить сценарий обработки звонка, указав паттерн номера при котором он должен сработать Сценарий обработки звонкаВсе сценарии пишутся на Javascript и выполняются при звонке движком, который мы называем VoxEngine. Конечно, к стандартным функциям и возможностям Javascript добавляется ряд классов, которые позволяют управлять звонками, делать HTTP-запросы и т.д. Более подробная информация о классах и функциях VoxEngine доступна тут http://voximplant.com/docs/references/appengine/. Мы же сейчас напишем очень простой сценарий, который просто завернет нам звук обратно, этакий echo-тест часто используемый в ряде систем IP-телефонии. Идем в разде Scenarios/Сценарии, нажимаем создать сценарий, называем его TestScenario и пишем следующий код: VoxEngine.addEventListener (AppEvents.CallAlerting, function (e) { e.call.answer (); e.call.addEventListener (CallEvents.Connected, function (e) { e.call.sendMediaTo (e.call); }); }); По сути, мы здесь отвечаем на звонок с SDK на стороне платформы, и после соединения заворачиваем приходящий звук обратно звонящему, получается эхо. Что произнесем, то и услышим обратно. Сохраняем сценарий и снова идем в раздел Applications/Приложения, выбираем редактирование нашего testapplication и открываем раздел Rules/Правила. Нажимем Add Rule и определяем правило, назвать можно как угодно, например, EchoRule. В поле Pattern пишем echo вместо .*, чтобы выполнить данный сценарий только если номер был echo и перетаскиваем TestScenario из Available в Assigned. Жмем Add, потом жмем Save. Все, миссия выполнена, теперь можно вернуться к нашему Android-приложению и посмотреть как это все работает (или не работает, если что-то по пути сделали не так:)Вводим логин в виде testuser@полное_название_вашего_приложения (testapplication.kraken.voximplant.com в моем случае), пароль и echo в качестве номера телефона, жмем Connect, после этого должна появится надпись Connected to server. Жмем Login и получаем Logged in successfully. Жмем Call и получаем наш звонок с эхо.Кастомизация сценария звонка Эхо — это, конечно, здорово, но мало применимо для каких-то реальных приложений, кроме случая для тестирования работы микрофона, поэтому давайте теперь сделаем так, чтобы заработали звонки на реальные номера. Идем в раздел сценариев и создаем следующий сценарий (назовем его PSTN): VoxEngine.forwardCallToPSTN (); Потом редактируем наше приложение, добавляя новое правило (Rule), в котором Pattern делаем вида [0–9]+ и в Assigned перетаскиваем наш PSTN сценарий. Сохраняем и снова идем в мобильное приложение. Теперь если вместо echo ввести номер телефона в формате код страны, код региона, номер (например, 79261002030) и позвонить, то звонок пойдет на реальный телефонный номер.Другие сценарии На базе VoxImplant можно делать разные сервисы и приложения. Например, можно сделать РМО оператора колл-центра на базе какого-нибудь Android-девайса или сделать VoIP-звонилку а-ля Viber (несмотря на то что мы еще оптимизируем платформу для таких сценариев, есть компании, которые уже сделали такой функционал и встроили его в свои приложения). Мы уже писали про создание облачной IP АТС на базе VoxImplant, соответственно можно реализовать какой-нибудь мобильный клиент к такой АТС в дополнение к SIP-девайсам или софтфонам, если есть такое желание. В ближайшем будущем мы добавим поддержку видео-звонков в Android SDK, чтобы его функционал полностью соответствовал iOS-версии.Документация Документация по Android SDK доступна по ссылке http://voximplant.com/docs/references/mobilesdk/android/. Мы осознаем исключительную важность документации и трудимся над ее улучшением, пока она далека от идеала, но мы стараемся отвечать на вопросы, которые нам присылают разработчики. Если у вас возник вопрос во время разработки, то не стесняйтесь написать нам, мы будем рады помочь.Конкурс Есть у нас такое интересное желание — провести конкурс для разработчиков на лучшее приложение/сервис с использованием VoxImplant. Как только мы завершим разработку ряда важных на наш взгляд функций платформы (например, конференций), которые позволят реализовать больше ваших фантазий, и окончательно определимся с призовым фондом, критериями и условиями, то объявим об этом. Как говорится, stay tuned!

© Habrahabr.ru