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

    После создания 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 (если у вас его еще нет) и, после активации через СМС, зайти в панель управления. Где мы увидим следующую картину:


    Теперь нам нужно выполнить следующие действия:
    • Зайти в раздел 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!

    Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

    Было бы вам интересно поучаствовать в конкурсе разработчиков VoxImplant?

    Voximplant

    194,00

    Облачная платформа голосовой и видеотелефонии

    Поделиться публикацией
    Комментарии 7
      0
      Только русские прейскурант делают ссылкой на CSV файл :)
      Сколько стоят звонки внутри сети?
        0
        Не только русские, могу дать пару ссылок на американские сайты платформ где тож есть CSV :) а вообще, чтобы показало цену надо в разделе Pricing выбрать откуда и куда идет звонок — схемку специально для этого делали, но, видимо, не слишком очевидно получилось. Сейчас 0,4 цента в минуту, но в будущем будем оптимизировать. + есть volume pricing
          0
          т.е. voip2voip 0,4 цента в минуту?
          Спасибо :)
            0
            Ну тут вопрос не в цене скорее всего :) ведь так? Вы же, наверное, ожидаете бесплатно — это тоже будет, когда будет p2p звонок. А за использование ресурсов платормы все равно надо будет платить, может быть и меньше чем 0,4 цента в будущем
              0
              p2p я бы за месячный бы план одобрил.
                0
                Учтем :)
        0
        Упс, в опросе чекбоксы :)

        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

        Самое читаемое