Как и в случае с минимальными пакетными тарифами, условия весьма схожи, но цена уже различается.
Цены на звонки в другие страны у МТС для пакетов типа «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 от компании Locnet [30]. Для использования программы нужны root права. Данная программа содержит макросы, в которые можно записать какие символы будут вводиться с каким промежутком. Можно настроить размер и положение на экране виртуальной кнопки, которая будет активировать макрос. С телефона создавать макрос для этой программы достаточно тяжело, поэтому область её применения ограничивается небольшим количеством любимых номеров. Данная программа поддерживает профили, поэтому теоретически можно разработать приложение, которое создаст макрос для набранного номера и свяжет с кнопкой. Данное решение позволит абоненту не хранить в памяти номер абонента и не набирать весь номер целиком. Однако дополнительные действия от пользователя всё равно требуются.
Root права - права на доступ ко всем функциям UNIX систем. Так как Android является UNIX-подобной операционной системой, в ней тоже предусмотрены root права, однако производители телефонов часто ограничивают доступ к ним. Производитель может программное усложнить получение root прав, сделать запрет на перепрошивку. Производитель может сам дать инструмент для получения root прав, но при отказе от гарантий пользователем, который получил root права. Несмотря на это, бывает, что единственный способ реализовать какой-то функционал - это иметь доступ root.
Большинство решений для DTMF Callback завязано на использование конкретного оператора. При наличии программных средств, упрощающих использование DTMF Callback, нет комплексного решения, которое нацелено конкретно на решение данной задачи. Владельцам собственных серверов по предоставлению VoIP связи выгодно пользоваться DTMF способом.
Основным языком для написания пользовательских приложений под 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 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.
На данный момент, официальной средой интегрированной разработки (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 всё является объектами: строки, классы, числа и т.д. Если, допустим, взять число «1» и сложить с ним число «2»:
«1+2»,
то на самом деле будет вызван метод __add__ у объекта 1, который получит тип Integer, поэтому следующая запись даст такой же результат:
(1).__add__(2)
· Динамическая типизация. Тип задаётся автоматически во время выполнения программы [37]. Плюсом данного вида типизации является лёгкость написания программ и быстрое освоение программистом данного метода. В python можно самому указать тип. С помощью функции «type» можно узнать тип объекта. С помощью функции «int» и «float» можно изменить тип. Так можно число 1 представить строкой со значением 1 или числом с плавающей запятой. Пример: