Материал: Разработка рабочего прототипа приложения, которое будет облегчать использование функции телефонии DTMF Callback на устройствах с Android

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Как и в случае с минимальными пакетными тарифами, условия весьма схожи, но цена уже различается.

Цены на звонки в другие страны у МТС для пакетов типа «Smart» не отличаются, как и у Мегафон для пакетов «Всё включено», а вот у Билайн в пакетах «Всё за» цены на за границу немного отличаются:

·        В тарифе «Всё за 400»: условия «Всё за 200» + первые 10 минут в день стоят 5 ₽, если звонить в страны СНГ, Крым и Севастополь.

·        В тарифе «Всё за 600»: условия «Всё за 400» + первые 10 минут в день стоят 7 ₽, если звонить в Азербайджан, Беларусь и Молдову

·        В тарифе «Всё за 900»: условия «Всё за 600» + первые 10 минут в день стоят 5 ₽, если звонить в Европу, США и Молдову

·        В тарифе «Всё за 1500»: условия «Всё за 900» + в Мальдивы, Мадагаскар, Бурунди, КНДР, Папуа-Новая Гвинея, Сейшельские острова, Сомали, Токелау, Тунис одна минута стоит 55 ₽

В следующей ценовой категории (средние пакетные тарифы) идут тарифы: «Всё включено M» - 590 ₽ [13] и «Всё за 600» [14] - 400 ₽, у МТС в данной ценовой категории пакетного тарифа нет.

Таблица 6. Средние пакетные тарифы


Билайн

Мегафон

Цена тарифа, рублей в месяц

600

590

Звонки внутри сети. Москва и МО, бесплатные минуты

Безлимит

Безлимит

Звонки внутри сети. Россия, бесплатные минуты


600

Звонки другим операторам. Москва и МО, бесплатные минуты

600


Звонки другим операторам. Россия, рублей в минуту

9,9

3


При равных местных тарифах, цена на звонки другим операторам по России у Мегафон в 3,3 раза дешевле.

В следующей ценовой категории (пакетные тарифы выше среднего) идут тарифы: «Smart +» [15] - 900 ₽ и «Всё за 900» [16] - 900 ₽.

Таблица 7. Тарифные пакеты выше среднего


МТС

Билайн

Цена тарифа, рублей в месяц

900

900

Звонки внутри сети. Москва и МО, бесплатные минуты

Безлимит

Безлимит

Звонки внутри сети. Россия, бесплатные минуты



Звонки другим операторам. Москва и МО, бесплатные минуты

1100

1000

Звонки другим операторам. Россия, рублей в минуту

3

9,9


При равных местных тарифах, цена на звонки другим операторам по России у МТС в 3,3 раза дешевле.

В следующей ценовой категории (большие тарифные пакеты) идут тарифы: «Smart +» [17] - 1500 ₽, «Всё включено L» [18] - 1290 ₽ и «Всё за 1500» [19] - 1500 ₽.

Таблица 8. Большие тарифные пакеты


МТС

Билайн

Мегафон

Цена тарифа, рублей в месяц

1500

1500

1290

Звонки внутри сети. Москва и МО, бесплатные минуты

Безлимит

Безлимит

Безлимит

Звонки внутри сети. Россия, бесплатные минуты



1800

Звонки другим операторам. Москва и МО, бесплатные минуты

2000

2000


Звонки другим операторам. Россия, бесплатные минуты





Данные местные тарифы имеют почти одинаковые условия.

В последней категории (максимальный тарифный пакет) оказался только Мегафон со своим тарифом «Всё включено VIP» [20] - 2500 ₽. Данный тариф предлагает 5000 минут для всех звонков по России.

Вывод


Пакетные тарифы весьма выгодные, если использовать их для звонков внутри сети. У конкурирующих операторов цены держатся примерно на одном уровне. Для обычного абонента, который говорит по 20-60 минут в день такие тарифы подходят. Если человеку необходимо разговаривать больше 120 минут в день, то ему придётся брать более дорогие тарифные пакеты ценой от 1500 до 2500, что уже достаточно дорого.

Для международного роуминга существуют свои условия, которые отличаются друг от друга. Данный роуминг у всех трёх операторов дорогой, тридцатиминутный разговор может превысить стоимость пакета услуг. Если абоненту приходится звонить в другие страны, то стоит выбрать другой тариф.

Тарифы для звонков в другие страны


Тарифы на звонки в другие страны были условно разделены на три группы:

.        Тарифы для родственников и друзей туристов

.        Тарифы для мигрантов

.        Тарифы для бизнесменов

Тарифы для родственников и друзей туристов


Для сравнения по тарифам для родственников и друзей туристов взято пять популярных курортных направлений [21]::

.        Испания

.        Турция

.        Греция

.        Кипр

.        Италия

Звонки по таким направлениям рассматриваются только при вызовах на сотовый телефон, так как турист вряд ли будет всё путешествие сидеть около стационарного телефона.

У МТС имеется тарифная опция «Выгодные международные звонки» [22]. Абонентская плата в месяц составляет 50 ₽. Звонки по этим пяти направления будут стоить 10 рублей в минуту. Тарифная опция совместима с другими тарифами, например с «Smart».

У Билайн имеется тариф «Добро пожаловать» [23]. Стоимость перехода на данный тариф составляет 150 ₽, ежемесячной абонентской платы за тариф нет, зато есть ежедневная плата в 4,45 ₽ за входящие в тариф опции. Стоимость звонков в Турцию составляет 6 ₽ в минуту. К сожалению, информации по другим из пяти туристических стран нет. На странице тарифа по ссылке:

#"897058.files/image011.jpg">

Рисунок 10. Скриншот области со страницы тарифа Билайн «Добро пожаловать»

Эта гиперссылка ведёт на адрес:

#"897058.files/image012.jpg">

Рисунок 11. Интерфейс страницы «Роуминг, междугородная и международная связь»

«Роуминг в путешествиях по миру», «Роуминг в путешествиях по России» и «Звонки из дома в другие города и страны». Очевидно, что цены на звонки в другие страны должны быть по третьей гиперссылке. Страница по этой ссылке предоставляет интерфейс для запроса к серверу Билайн за информацией.

Рисунок 12. Скриншот со страницы «Звонки из дома в другие города и страны» после запроса «Кипр» при тарифе «Добро пожаловать»

Если проверить цену, например, на Кипр, то вместо цен на Кипр будут указаны общие условия тарифа. Отдельных условий для Кипра указанно не будет. В пункте «Звонки в остальные страны» указана гиперссылка под названием «Согласно тарифам на международную связь» с адресом:

#"897058.files/image014.jpg">

Рисунок 14. Скриншот prefixer’а

Для исходящих звонков программа действительно добавляет prefix и suffix, но вот для входящих, вопреки настроенным правилам, она ничего не добавляет. То есть её на практике невозможно использовать для DTMF Callback связи, но зато можно использовать для реализации Callback от МТС.

Существует способ набрать на клавиатуре определённый символ или группу символов. Чаще всего программы с таким функционалом используются для расширения функций клавиатуры или интерфейса управления Android. Чтобы абонент не вводил полностью весь номер по памяти, когда ему перезвонил сервер Callback, он может воспользоваться эмуляцией нажатия номера. В данном случае телефон пошлёт DTMF сигналы, будто бы пользователь их вводил сам. Существует достаточно большое количество программ с данным функционалом.

Gamekeyboard


Для тестирования такой возможности была использованная Gamekeyboard от компании Locnet [30]. Для использования программы нужны root права. Данная программа содержит макросы, в которые можно записать какие символы будут вводиться с каким промежутком. Можно настроить размер и положение на экране виртуальной кнопки, которая будет активировать макрос. С телефона создавать макрос для этой программы достаточно тяжело, поэтому область её применения ограничивается небольшим количеством любимых номеров. Данная программа поддерживает профили, поэтому теоретически можно разработать приложение, которое создаст макрос для набранного номера и свяжет с кнопкой. Данное решение позволит абоненту не хранить в памяти номер абонента и не набирать весь номер целиком. Однако дополнительные действия от пользователя всё равно требуются.

Root права - права на доступ ко всем функциям UNIX систем. Так как Android является UNIX-подобной операционной системой, в ней тоже предусмотрены root права, однако производители телефонов часто ограничивают доступ к ним. Производитель может программное усложнить получение root прав, сделать запрет на перепрошивку. Производитель может сам дать инструмент для получения root прав, но при отказе от гарантий пользователем, который получил root права. Несмотря на это, бывает, что единственный способ реализовать какой-то функционал - это иметь доступ root.

Вывод


Большинство решений для DTMF Callback завязано на использование конкретного оператора. При наличии программных средств, упрощающих использование DTMF Callback, нет комплексного решения, которое нацелено конкретно на решение данной задачи. Владельцам собственных серверов по предоставлению VoIP связи выгодно пользоваться DTMF способом.

Технологическая часть

Анализ средств разработки под Android


Основным языком для написания пользовательских приложений под Android является Java [31]. Интерфейс программирования (API) для работы с функциями Android подразумевает использование Java. Для создания приложений, написанных на Java под Android, используются Build Tools из Android Software Sevelopment Kit (SDK). Существует способ написания приложений на C/C++ для обеспечения более высокой скорости работы приложений [32]. Для этого используется Native Development Kit. Существует решение для разработки под C# под названием Xamarin [33], которое позволяет создавать кроссплатформенные приложения. Для разработки на Python под Android можно использовать одно из нескольких решений [34] указанных в таблице:

Таблица 18. Сравнение реализаций python под Android

Project

Native Python

GUI libraries

APK generation

Custom build

Python for Android

Да

Да

Да

Да

PGS4A

Да

Да

Да

Нет

Android scripting

Нет

Нет

Нет

Нет

Python on a chip

Нет

Нет

Нет

Нет


Фреймворк kivy позволяет создавать кроссплатформенные приложения. Его можно связать с python for Android. Тогда становится возможным написание кроссплатформенных приложений, которые будут запускаться на Android. Также существует способ использовать обёртку для вызова Java классов из Android API под названием PyJNIus [35].

Такие решения как kivy или Xamarin имеют преимущества, если приложение разрабатывается не только под Android, но и под другие платформы. Однако при использовании специфичных Android-функций нужно использовать Android API. Преимущества для поставленной задачи это не даёт, так как в Android своя специфика с работой телефонных функций.

Средства для разработки под Android - SDK Tools


Основной инструментарий для разработки под Android входит в пакет инструментов - SDK Tools. В этот пакет входят инструменты для работы с виртуальными устройствами. Android Virtual Device Manager (AVD) предназначены для работы и настройки эмуляторов. Для того чтобы создать эмулятор используется образ системы. Такие образы можно скачать в графическом или консольном интерфейсе программы Android SDK Manager. В интерфейсе Android SDK Manager для одной версии Android можно выбрать несколько образов, которые будут эмулировать разные устройства.

Рисунок 15. Скриншот графического интерфейса Android SDK Manager

Одним из важных инструментов является Android Debug Bridge (adb), программа, предназначенная для отладки устройств на Android. Adb запускается из командной строки и управляется через консольный интерфейс. Adb работает с разными подключёнными устройствами к компьютеру:

·        Устройства, подключённые по USB

·        Устройства, подключённые по Wifi

·        Эмулируемые устройства

Adb позволяет:

·        устанавливать или удалять приложения с устройства

·        работать с командной оболочкой устройства

·        работать с packet manager

·        запускать Intent

·        работать с LogCat

В SDK входит большой набор инструментов, которые так или иначе интегрированы в среды разработки, например Build Tools входят в Eclipse или Android Studio.

Среда интегрированной разработки Android Studio


На данный момент, официальной средой интегрированной разработки (IDE) для Android является Android Studio [36]. Данная IDE базируется на IntelliJ IDEA от JetBrains и включает в себя ряд функций:

·              Скрипты Gradle для сборки apk

·              Сборка вариантов и генерация множества apk

·              Шаблоны кода

·              Редактор слоёв (layouts)

·              подпись приложений

·              Встроенная поддержка Google Cloud Platform и возможность интеграции Google Cloud Messaging and App EngineStudio позволяет параллельно устанавливать собранные приложения на несколько устройств подключённых по adb.

Android Studio поддерживает работу с системами контроля версий.

Редактор исходного кода в Android Studio обладает рядом функций, которые упрощают разработку:

·              автозавершение слов

·              подсказка об ошибках в коде

·              подсветка синтаксиса java и xml файлов

·              автоматический импорт из библиотеки Android, если используется класс из неё

·              выделение серым цветом переменных, которые не были использованы

·              комментирование строк кода

·              прыжки по разным файлам проекта в поисках выделенного слова

Android Studio является мощным инструментом, который рекомендуется использовать при разработке под Android, поэтому было принято решение использовать её в разработке.

телефония callback android тестирование

Обзор языка программирования Python


Python является языком высокого уровня, который сочетает в себе несколько парадигм программирования, такие как:

·        Объектное ориентированное программирование. В python всё является объектами: строки, классы, числа и т.д. Если, допустим, взять число «1» и сложить с ним число «2»:

«1+2»,

то на самом деле будет вызван метод __add__ у объекта 1, который получит тип Integer, поэтому следующая запись даст такой же результат:

(1).__add__(2)

·        Динамическая типизация. Тип задаётся автоматически во время выполнения программы [37]. Плюсом данного вида типизации является лёгкость написания программ и быстрое освоение программистом данного метода. В python можно самому указать тип. С помощью функции «type» можно узнать тип объекта. С помощью функции «int» и «float» можно изменить тип. Так можно число 1 представить строкой со значением 1 или числом с плавающей запятой. Пример: