Voice to cloud

675 views
633 views

Published on

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
675
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Здравствуйте! Я - Тимофеев Илья, студент магистратуры факультета ВМиК, группа м-211. Представляю работу по теме «Разработка универсального телекоммуникационного сервиса по записи звонков для Asterisk ». Научный руководитель – Дмитрий Евгеньевич Намиот.
  • В настоящее время очень быстро развивается рынок смартфонов и коммуникаторов. Такие мобильные устройства способны выполнять настоящие программы в частности для обработки звуковой информации от пользователей. Но по прежнему самым распространенным способом генерации звуковой информации для большинства пользователей является звонок по обычному телефону. Разработке подхода для создания сервисов по работе с такой информацией и посвящена данная работа.
  • Результаты работы могут быть применены для создания таких сервисов, как: Голосовая почта с хранением файлов вне сервера атс Сервиса подкастов Публикация голосовой записи в блоге Одно из наиболее важных применений - публикация голосового описания проблем в системе ushahidi Автоматизация действий работников техподдержки по созданию задачи в системе трекинга и прикрепление к ней звукового файла разговора с клиентом
  • Исходя из актуальности темы ставится следующая цель: «Разработать подход и его реализацию для обработки звуковой информации, полученной от пользователя». К решение предъявляются следующие требования: 1 2 3
  • Существуют компании, предоставляющие облачные телекоммуникационные сервисы. Проблема заключается в том, что они являются платными и закрытыми. Сервис VoiceLJ позволяет клиентам сохранить запись их звонка в ЖЖ. Этот сервис основан на тесном взаимодействии с одним из операторов связи и не может быть использован при решении других задач. В рамках данной работы создано полностью открытое решение, являющееся универсальным облачным сервисом по записи звонков.
  • Относительно недавно стали появляться программные реализации автоматических телефонных станций, что позволило широкому кругу программистов (а не только людям работающим на владельцев этих атс) создавать свои телекоммуникационные сервисы. В основу решения положен наиболее широко распространённая и открытая реализация атс Asterisk. Популярность и кроссплатформенность java явились определяющими факторами выбора ее, в качестве языка реализации. AGI-proxy – система с открытыми исходными кодами, разработанная в МГУ будет использоваться для получения звукового файла звонка. Полученный файл желательно хранить не на локальной машине, а на отдельной. Наиболее гибким решением является использование специальных сервисов хранения файлов в интернет. Для выполнения требования расширяемости все модули программы будут общаться через четко определенные интерфейсы. Применение принципа Inversion of control позволяет упростит создание дополнительных модулей сторонними разработчиками.
  • Наиболее простым и эффективным решение задачи получения звукового файла звонка является использование разработанного ранее прокси, переадресующего телефонные вызовы в http запросы . Алгоритм работы следующий. Пользователь звонит через астериск. Этот звонок обрабатывается через вызов API, который в свою очередь переадресуется прокси. Он же посылает http запрос на сервер. В ответ приходят команды «поднять трубку» и «записать звонок в файл», которые так же переадресуются астериску. Все завершается, когда пользователь кладет трубку.
  • Таким образом на предыдущем шаге получилась запись звонка. Теперь эти записи нужно где-то хранить. Были исследованы наиболее популярные сервисы для хранения файлов. Сравнение некоторых параметров приведены на этой таблице. Наиболее важным параметром является наличие прямой ссылки на файл, а не на экран загрузки файла с капчей, как у narod.yandex.ru Прямую ссылку можно подать на вход к флеш плееру, который сможет сразу и проиграть этот файл. Как видно из таблицы наиболее выгодными являются сервисы от Amazon и Dropbox.
  • Изучив API перечисленных выше сервисов, я пришел к выводу, что следующая схема работы будет наиболее универсальной, подходящей для работы с любым из них. Перед началом работы нужно провести инициализацию. Объект типа PropertySet содержит настройки. Перед завершением работы некоторым сервисам нужно выполнить завершающие действия. Таким образом метод init и destroy выполняются только один раз. Непосредственно перед загрузкой файла нужно выполнить предварительные действия, например, установить соединение. В результате загрузки получаем ссылку или URL по которой можно получить к нему доступ. После этого нужно выполнить закрыть соединение в методе clean.
  • В итоге, алгоритм работы получился следующим. Пользователь звонит через Asterisk , который производит запись звонка. После этого разработанный фреймворк заботится о получении этого файла, подключении конкретного модуля, получении настроек для модуля, производит все приготовительные мероприятия и вызывает у модуля метод upload. Это и есть реализация принципа инверсии контроля. Конкретная реализация модуля выполняет сохранения файла и возвращает его URL . После этого, похожая последовательность действий происходит и при публикации записи в блоге, например.
  • В итоге Предложено решение, позволяющее быстро и просто реализовывать сервисы, использующие записи звонков пользователей Проведено исследование сервисов хранения файлов в интернет с открытыми API Реализованы несколько сервисов, использующих предложенное решение, что показывает его состоятельность и конформность требованиям
  • Voice to cloud

    1. 1. Разработка универсального телекоммуникационного сервиса по записи звонков для Asterisk Научный руководитель: канд. физ.-мат. наук, с.н.с. лаборатории Открытых Информационных Технологий Дмитрий Евгеньевич Намиот Выполнил: студент факультета ВМиК, м-211 Илья Вячеславович Тимофеев
    2. 2. Актуальность <ul><li>Самый простой способ ввести звуковую информацию в компьютер – воспользоваться телефоном </li></ul><ul><li>Нужен простой и удобный способ создания приложений для обработки такой информации </li></ul>
    3. 3. Возможные применения <ul><li>Голосовая почта </li></ul><ul><li>Создание подкастов </li></ul><ul><li>Публикация записи в блоге </li></ul><ul><li>Публикация голосового отчета в системе Ushahidi </li></ul><ul><li>Помощь в работе тех. поддержки </li></ul>
    4. 4. Цель и требования <ul><li>Разработать подход и его реализацию для обработки звуковой информации, полученной от пользователя </li></ul><ul><ul><li>От пользователя не должно требоваться ничего, кроме звонка по определенному телефонному номеру </li></ul></ul><ul><ul><li>Решение должно быть : </li></ul></ul><ul><ul><ul><li>Универсальным </li></ul></ul></ul><ul><ul><ul><li>Расширяемым </li></ul></ul></ul><ul><ul><ul><li>Простым в использовании </li></ul></ul></ul>
    5. 5. Аналоги <ul><li>API для телекоммуникационных сервисов </li></ul><ul><ul><li>Twilio </li></ul></ul><ul><ul><li>Voxeo </li></ul></ul><ul><ul><li>Cloudvox </li></ul></ul><ul><li>VoiceLJ </li></ul>
    6. 6. Подход <ul><li>Инструменты </li></ul><ul><ul><li>Asterisk </li></ul></ul><ul><ul><li>Java </li></ul></ul><ul><ul><li>AGI-proxy </li></ul></ul><ul><ul><li>Хранение файлов: ftp, amazon s3, google storage, dropbox </li></ul></ul><ul><li>Архитектура </li></ul><ul><ul><li>Разработка интерфейсов </li></ul></ul><ul><ul><li>Реализация принципа Inversion of control </li></ul></ul>
    7. 7. Получение звукового файла <ul><li>Fast AGI – AGI-proxy </li></ul><ul><li>Доработан для поддержки команды записи в файл </li></ul>
    8. 8. Сервисы хранения данных с открытыми API
    9. 9. Обобщение API сервисов
    10. 10. Алгоритм работы
    11. 11. Результат работы программы 1
    12. 12. Результат работы программы 2
    13. 13. Заключение <ul><li>Предложено решение, позволяющее просто реализовывать сервисы, использующие записи звонков пользователей </li></ul><ul><li>Проведено исследование сервисов хранения файлов в интернет с отрытыми API </li></ul><ul><li>Реализовано несколько прикладных сервисов , демонстрирующих состоятельность предложенного решения </li></ul>

    ×