Дипломная работа Реализация sip-телефонии для мобильных устройств с операционной системой Android Допущено к защите



страница1/8
Дата14.06.2018
Размер1.15 Mb.
ТипДиплом
  1   2   3   4   5   6   7   8
Санкт-Петербургский Государственный Университет

Математико-механический факультет
Кафедра системного программирования

Малышев Виталий Владиславович

Дипломная работа

Реализация SIP-телефонии для мобильных устройств с операционной системой Android

Допущено к защите

Зав. кафедрой

д.ф.-м.н, проф. А.Н. Терехов

Научный руководитель

д.т.н., проф. кафедры информатики В.О. Сафонов

Рецензент

аспирант кафедры информатики В.С. Соловьев

г. Санкт-Петербург

2010 год


St. Petersburg State University

Faculty of Mathematics and Mechanics
Chair of Software Engineering

Malyshev Vitaly Vladislavovich

Graduate paper

SIP-telephony implementation for mobile devices powered by Android operating system

Admitted to proof

Head of the chair

Dr. of Phys. and Math. Sci., Professor A.N. Terekhov

Scientific advisor

Doctor of Sciences, Professor of Computer Science V. O. Safonov

Reviewer

Post-graduate student of Computer Science V.S. Soloviev

St. Petersburg

2010

Оглавление


1.Введение 4

1.1.Постановка задач­­­и 4

1.2. Этапы работы 7

1.3.Введение в предметную область 9

1.3.1.Общие сведения о SIP телефонии 9

1.3.2.Принципы SIP протокола 10

1.3.3.Архитектура сети 11

1.3.4.Сообщения протокола SIP 12

1.3.5.Сравнение SIP с H.323[5] 14

1.3.6.Сравнение SIP с Skype[6] 16

2.Описание предлагаемого решения 18

2.1.Выбор платформы решения 18

2.2.Описание использования приложения 19

3.Реализация решения 23

3.1.Реализация низкоуровнего модуля, работающего со звуком напрямую 23

24


25

3.1.1.AudioRecordWrapper 25

3.1.2.AudioTrackWrapper 26

3.1.3.QueuedBuffer 27

3.2. Принцип работы “Handover” 28

29


3.3.Архитектура проекта “MC Client” 30

3.4. Ключевые классы элементов архитектуры. 31

3.4.1.Activity. 32

3.4.2.SipServiceWrapper 33

3.4.3.Service 34

3.4.4.SIPEngine 37

4.Реализация и применение решения 41

5.Сравнительный анализ 43

6.Заключение 45

7.Список литературы 46



  1. Введение

    1. Постановка задач­­­и

Для пользователей персональных компьютеров уже давно стало привычным голосовое общение через Интернет, но для мобильных устройств качественных решений до недавнего времени просто не существовало. Однако развитие современных мобильных технологий, а именно появление мобильных устройств с быстрым доступом в Интернет и работающих под операционной системой Android[1], открывает новые возможности.

В июле 2005 Google приобрела небольшую компанию Android, Inc., занимающуюся развитием собственных проектов. В то время было немного известно про компанию Android, Inc. – только то, что компания занималась разработкой программного обеспечения для мобильных телефонов. Как раз тогда и пошли слухи о том, что Google собирается выйти на рынок мобильных устройств.

Под руководством Google команда разработала операционную систему, основанную на ядре Linux, гибкую и предлагающую широкие возможности по конфигурации. В ноябре 2007 Open Handset Alliance (OHA)[2] - консорциум множества компаний, куда входит и Google, поставил перед собой задачу разработки открытых стандартов для мобильных устройств. Тогда же OHA и выпустил свой первый продукт – операционную систему Android, основанную на ядре Linux версии 2.6. Основными особенностями данной системы являлась открытость и многозадачность. Официальный выход первого смартфона HTC Dream (G1), под управлением ОС Android, на рынок США состоялся 22 октября 2008 года.

После появления первого устройства под управлением Android, стало возможным предоставить пользователю возможность использовать Интернет-телефонию так же, как и GSM телефонию. Широкополосный доступ в Интернет, многозадачность операционной системы дали возможность пользователю забыть о проблемах, связанных с Интернет связью. До Android самые удобные приложения Интернет-телефонии предлагала ОС iPhone, но с ее ограниченной многозадачностью невозможно использовать другие приложения вместе с Интернет-телефонией, что означает, например, невозможность читать документы и одновременно принимать звонки.

На данный момент существует ряд решений по обеспечению Интернет-телефонии для Android, однако все они обладают существенными ограничениями по использованию.

Данная работа ставит целью проведение анализа существующих решений Интернет-телефонии для ОС Android и создание приложения SIP телефонии под Android, удовлетворяющего следующим требованиям:



  • Приложение должно работать на всех существующих версиях ОС Android[3]. Следует учитывать старые версии Android (1.1 и 1.5), так как общий процент устройств под управлением данных версий ОС достаточно велик, что видно из рисунка 1.



Рисунок 1: Соотношение числа устройств, работающих под управлением конкретной версии ОС Android. Данные приведены по состоянию на 01.04.2010

  • Приложение должно уметь осуществлять переключение типа звонка с SIP на GSM и обратно – так называемый “Handover”. Т.е. при наличии широкого Интернет канала звонок идет по SIP, а если ширины канала начинает не хватать, то идет переключение звонка с SIP на GSM незаметно для пользователя. Как только ширина канала становится снова достаточной, идет переключение обратно на SIP.

  • Приложение должно работать на заднем плане, не ограничивая пользователя в работе с коммуникатором.

  • Приложение не должно уступать другим приложениям по качеству звука и скорости работы.

  • Приложение должно использовать по максимуму возможности Dialer - приложения для совершения GSM звонков, встроенного в ОС Android (пример возможностей - телефонная книга, учет совершенных звонков).

    1. Этапы работы

Разработку SIP телефонии возможно разбить на несколько этапов:

  1. Получение доступа к звуку на ранних версиях ОС

Так как одним из основных требований является работа на всех версиях ОС, то необходимо написать низкоуровневый модуль, работающий со звуком напрямую - записывать голос с устройства и передавать звук в динамики – на ранних версиях ОС (Android 1.1 и Android 1.5) такой возможности не было.

  1. Сборка низкоуровнего модуля в виде библиотеки, которую возможно подключить и использовать в приложениях под Android

В Android есть механизм подключения низкоуровневых библиотек в формате “.so” – формате понятном Linux, на ядре которого базируется Android. Сборка осуществляется с помощью компилятора arm gcc.

  1. Адаптация java библиотеки SIP телефонии для Android

В качестве базы для обмена SIP сообщений используется Open Source библиотека “MjSip”[4]. К данному этапу уже необходимо создать простейшее приложение, которое позволяет звонить и принимать звонки через Интернет.

  1. Обеспечение дополнительных возможностей SIP клиента

Для удобства использования необходимо обеспечить возможность конфигурации клиента и возможность управления звонками. На данном этапе должна быть реализована возможность совершения автоматического и ручного “Handover” – переключение звонка с GSM на SIP и обратно.

Мною были спроектированы и реализованы этапы 1, 3, 4, в ходе чего были получены результаты, которые легли в основу данной работы. Этап 2 реализовали Смирнов Олег и Семаков Семен.

Стоит отметить, что проект по разработки SIP телефонии для Android является коммерческим, поэтому исходный код проекта является коммерческой тайной компании ООО “e-Legion Ltd.”.

В связи с этим в данной работе будут приведены описания только тех частей проекта, что отражают основные результаты.

Проект, являющийся результатом разработка SIP телефонии для Android, описан в разделе “Реализация и применение решения”.


    1. Введение в предметную область

      1. Общие сведения о SIP телефонии

SIP (Session Initiation Protocol — протокол установления сессии) - стандарт установления и завершения пользовательского Интернет-сеанса, включающего обмен мультимедийным содержимым (видео - и аудиоконференция, мгновенные сообщения).

В модели взаимодействия открытых систем SIP является сетевым протоколом прикладного уровня.



Протокол описывает, каким образом клиентское приложение (например, MC Client) запрашивает начало соединения у другого, возможно физически удалённого, клиента, находящегося в той же сети, используя его уникальное имя. Протокол определяет способ согласования между клиентами об открытии каналов обмена на основе других протоколов, которые могут использоваться для непосредственной передачи информации (например, RTP). Допускается добавление или удаление таких каналов в течение установленного сеанса, а также подключение и отключение дополнительных клиентов (то есть допускается участие в обмене более двух сторон — конференцсвязь). Протокол также определяет порядок завершения сеанса. Схему организации работы по протоколу SIP можно видеть на рисунке 2.



Каталог: diploma -> 2010
diploma -> 1. История вопроса 3 Современное состояние области 4
diploma -> 2. Курс «Дипломатия» в системе подготовки современного специалиста-международника 3 Система государственной службы рф: общая характеристика 4 Дипломатическая служба в системе гос службы РФ 6
diploma -> Приложение к диплому, разработанное европейской комиссией, советом европы, юнеско/cepes
diploma -> Дипломная работа студента 544 группы
diploma -> Формы политической самоорганизации «креативного класса» на примере протестных движений в России 2011-2012 гг
diploma -> Учебное пособие для техникумов / А. Ф. Гаевой, С. А. Усик; под ред. А. Ф. Гаевого. Подольск: Б. и., 2004. 264с
2010 -> Анализ и фильтрация электроокулограмм в задаче распознавания движений глаз


Поделитесь с Вашими друзьями:
  1   2   3   4   5   6   7   8


База данных защищена авторским правом ©grazit.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал