Drupe
Еще одно однорукое решение, призванное облегчить работу с номеронабирателем и телефонной книгой. Таким образом, все контакты и мессенджеры собраны в одном месте, доступном на всех экранах рабочего стола. К слову, нечто подобное реализовано и в топовых «лаунчерах», которые мой коллега обозревал не так давно.
| Оценка в Google Play | 4.6 |
| Разработчик | drupe – Contacts Your Way |
| Количество загрузок в Google Play | 1 000 000-5 000 000 |
| Совместимость приложения с другими версиями ОС Android | 4.1 или более поздняя |
| Размер дистрибутива | 20 Мбайт |
| Версия приложения | 2.004.00120-Rel |
| Покупки в приложении | — |
Основные функции:
Truedialer
Приложение Truedialer требует регистрации телефонного номера, однако данная процедура необходима для создания этакого глобального телефонного справочника. «Truedialer это приложение от создателей сообщества Truecaller, насчитывающего более чем 200 миллионов пользователей по всему миру».
| Оценка в Google Play | 4.3 |
| Разработчик | True Software Scandinavia AB |
| Количество загрузок в Google Play | 10 000 000-50 000 000 |
| Совместимость приложения с другими версиями ОС Android | 4.0 или более поздняя |
| Размер дистрибутива | 5.2 Мбайт |
| Версия приложения | 3.65 |
| Покупки в приложении | — |
Основные функции:
- Поисковая интеграция с Truecaller предоставляет доступ к более 2 млрд контактов в России и по всему миру;
- Т9-поиск для быстрого доступа к контактам;
- Поддержка более 500 устройств с двумя сим-картами;
- Шустрый и простой в использовании номеронабиратель;
- Удобные шорткаты быстрого доступа к различным функциям (например, свайп вправо открывает подробную информацию об абоненте, свайп влево – новое сообщение);
- Разные цветовые темы на выбор.
Итак, как уже упоминалось выше, приложение требует, чтобы пользователь зарегистрировал номер своего телефона. После этого программа сделает на него автодозвон и вам останется «сознаться во всем», указав свое имя и фамилию, либо воспользовавшись быстрой регистрацией через социальные сети.
После всего этого меня ждал неприятный сюрприз. Данные-то о себе я отправил, а вот войти в Truedialer не смог. Помогла только перезагрузка приложения, и я снова засветился у друзей с соседнего континента.
Найти настройки, а также сортировку вызовов не так-то просто. Все это прячется под тремя точками в строке поиска. В настройках из интересного стоит отметить статус – при активированном интернете другие пользователи сего детища могут видеть, что вы заняты, либо находитесь на определенном мероприятии (и даже не смейте звонить, пока не освобожусь).
Не обошлось и без возможности кастомизации. Можно выбрать основной и второстепенный цвет интерфейса, сортировать по имени или фамилии, объединить элементы, а также включить напоминания о днях рождения для определенных номеров. К слову, полезная функция, хоть и не инновационная.
В общем, на первый взгляд перед нами простая «звонилка», к которой легко привыкнуть, если вы таковыми ранее пользовались. Теперь посмотрим, как это работает.
Набор номера осуществляется стандартно. На определенную цифру можно назначить контакт или телефонный номер. Это все знакомо нам еще по кнопочным телефонам.
Контакт в списке вызовов отображается без номера, однако напротив него предусмотрена ссылка на дополнительное меню, где мы можем пригласить человека использовать эту «звонилку», написать ему SMS (системный мессенджер), копировать контакт, а также внести его в черный список.
Теперь о нагрузке на систему. Truedialer нагружает оперативную память стандартно для таких приложений – 107 Мбайт ОЗУ, а вот процессор напрягается на 0.7%, что нехорошо для «звонилки», хоть и терпимо. Аккумулятор в течение часа проседает на 0.7%, что закономерно. Средняя нагрузка на АКБ – 3.0%.
Почему оценка не максимальная? Truedialer предлагает несколько запутанное управление и минимум дополнительной функциональности, а сам потребляет 0.7% аккумулятора в течение одного часа.
Кроме того, мне не претит необходимость регистрации своего номера и личной информации в системе. Тем более что о том, что она будет скрыта от самих разработчиков, сообщений не поступало. Да, знаю, что проформа, но юридически (пусть и условно) успокаивает. В остальном перед нами просто бесплатная «звонилка» с возможностью разумной кастомизации и без рекламы.
Оценка: 4.9 по пятибалльной шкале.
Zenui
Наша редакция уже сталкивалась с портированными на всея Android приложениями этой тайваньской оболочки. Таким образом, скоро будет возможно всецело превратить свой смартфон в мобильное устройство ASUS, если оно, конечно, надо. Перед нами довольно серьезная разработка, призванный затмить собой достаточно удобный 2GIS Dialer.
| Оценка в Google Play | 4.5 |
| Разработчик | ZenUI, ASUS Computer Inc. |
| Количество загрузок в Google Play | 10 000 000-50 000 000 |
| Совместимость приложения с другими версиями ОС Android | Зависит от устройства* |
| Размер дистрибутива | Зависит от устройства* |
| Версия приложения | Зависит от устройства* |
| Покупки в приложении | – |
*На Android 5.1 инсталлировалась версия 2.0.0.25_160715 размером 43 Мбайт.
Основные функции:
- Блокировка вызовов с неизвестных номеров;
- Быстрый смарт-поиск контактов;
- Восемь доступных слотов для мгновенного доступа к важным контактам из дозвонщика;
- Защита частных контактов;
- Смарт-привязка дублирующихся контактов;
- Персонализация телефонной книги.
ZenUI со сложным порядковым номером предлагает интеллектуальный набор номера – Smart Dial, который позволяет без труда находить контакты. Порадовали большие цифры номеронабирателя, а также возможность его быстро скрыть (левый нижний угол экрана). Также надо отметить, что поддержка двух SIM здесь также присутствует.
сего предусмотрено пять вкладок – журнал вызовов, телефонная книга, избранное, группы и черный список. Голосовой поиск реализован через сервис Google. Можно отображать контакты только с телефонами, упорядочить контакты, показывать в контактах сначала фамилию, а также включить классический стиль отображения телефонной книги (как в стандартной Android).
Элемент в списке звонков отображает номер абонента, время последнего вызова, его тип и SIM-карту с которой вызов осуществлялся. Не обошлось и без истории, где можно просмотреть контактные данные, установить фото и написать конкретное сообщение на конкретный номер.
Что интересно, программа в системе разбивается на два процесса. При этом первый потребляет 126 Мбайт ОЗУ при нуле на процессоре, второй – 46 Мбайт оперативы при нуле на процессоре. Тут все объяснимо – второй процесс идет с приставкой «remote». Расход аккумулятора не превышает 0,8% за час, нагрузка – 1,9%, то есть все стабильно.
Приложение ZenUI создано для поклонников этого интерфейса и только для них, так как функционально и внешне блекнет по сравнению с другими рассмотренными нами решениями. Лично мне не понятен раздутый размер приложения, так как ничего особенного здесь не предлагается.
Справедливости ради отмечу, что расход ресурсов здесь минимален, а сама программа работает стабильно, отклик элементов точен, задержек при вызове – нет.
Оценка: 4.5 по пятибалльной шкале.
Вторая линия на мотиве
Мотив — это региональный оператор сотовой связи, который на данный момент работает только в Свердловской области, Курганской области, ЯНАО и ХМАО.
Как и старшие коллеги, он предлагает опцию “Ожидание вызова”. Это базовая функция, которая включена в большинство тарифных планов и не требует дополнительных платежей.
Управлять опцией очень легко. Используйте 3 основные команды:
Также вы можете настроить функцию в Личном кабинете на сайте и в приложении, позвонить в службу поддержки по номеру 8 800 240 00 00, посетить офис продаж.
Опция работает только при положительном балансе. Если вы ушли в минус, даже входящие звонки удерживать не получится.
Абоненты, которые пользуются бизнес-тарифами “Диспетчер” и “Бизнес.Интернет”, воспользоваться этой услугой не смогут.
Вторая линия на сим-карте megafon
Оператор Мегафон предлагает 2 услуги в рамках второй линии:
- “Ожидание вызова”, которая позволяет вам дозвониться, даже если вы говорите с другим абонентом;
- “Удержание вызова”, которая дает возможность позвонить на два номера одновременно.
Обе функции предоставляются клиенту одновременно и подключаются автоматически на все сим-карты компании.
Есть и различия.
“Ожидание вызова” встроено в систему и не подлежит деактивации, а вот “Удержание вызова” можно отключить или подключить вручную.
За подключение опций плата не снимается, также нет ежедневной или ежемесячной абонентской платы. Но за удержание звонка вам нужно будет заплатить.
Оператор снимает по 5 руб. за каждый запрос, если их меньше 10 в месяц. С 11-го запроса удержание становится бесплатным.
Это актуально не для всех тарифов: на некоторых удержание бесплатно по умолчанию. Позвоните консультанту по номеру 0500 или посетите салон связи, чтобы узнать подробности.
Управление услугой “Удержание вызова” выполняется так:
Управлять опцией “Ожидание вызова” не получится. Вы можете посмотреть информацию о ней, использовав USSD-команду *#43#, но деактивировать ее нельзя.
Громкость звонка на андроиде
Можно регулировать громкость звонка следующим образом. Надо разблокировать экран смартфона. Затем нажать на кнопку, находящуюся на узкой левой боковой панели смартфона. Правда, у разных моделей смартфонов такая кнопка может находиться в другом месте.
После нажатия на соответствующую кнопку, появится шкала для регулировки громкости.
Двигая пальцем вдоль этой шкалы (рис. 10) влево или вправо, одновременно будет перемещаться движок (можно его назвать также бегунком) по шкале.
Если перемещать бегунок влево (к телефонной трубке), то громкость будет меньше. Чтобы совсем убрать громкость, надо довести бегунок до края левой границы.
Чтобы сделать громкость звонка максимально возможной, надо пальцем передвинуть бегунок до края правой границы шкалы.
Настройки громкости звонка
Если кликнуть по шестеренке (на рис. 10 обведена в красную рамку), откроются стандартные настройки громкости. Как видно на рис.11, можно установить на своем смартфоне разную громкость для звонка, для медиа, уведомлений и для сообщений от операционной системы Андроида.
Допустимые действия во время звонка
В отличие от обычного телефона во время звонка на Андроиде можно делать дополнительные действия. Честно говоря, во время звонка можно вообще делать все, что позволяет Андроид. Но проблема состоит в том, чтобы, делая что-то во время звонка, нужно не прекращать сам звонок, разговор с абонентом на том конце «провода», который нам заменяет радиосигнал.
Так вот, чтобы что-то дополнительное делать на Андроиде во время звонка надо в первую очередь перевести разговор на динамик – на громкую связь. Конечно, все окружающие люди тоже могут при этом слышать весь ваш разговор.
Обычно мы говорим, прикладывая телефон к уху, но в этом случае что-либо делать на Андроиде не получится. Поэтому для любых дополнительных действий нужно перевести разговор на громкую связь. Это делается путем нажатия на кнопку с изображением динамика с подписью «Динамик» (1 на рис. 8).
Чтобы данная картинка появилась на экране Андроида, надо на короткое время прервать разговор с абонентом, и оторвать Андроид от своего уха. Картинка, как на рис. 8, появится немедленно. И сразу же тапаем по кнопке «Динамик», разговор переходит в режим громкой связи, Андроид больше не нужно прикладывать к уху.
Далее, можно, например, отключить микрофон Андроида – кнопка «Выкл. микр.» (2 на рис. 8). В этом режиме Вы можете слышать, что говорит Ваш абонент, но абонент не будет слышать Вас.
Красная кнопка с изображением телефонной трубки и подписью «Завершить» (3 на рис. 8) завершает разговор с абонентом, она является прообразом действия «Положить трубку телефона».
Если во время такого разговора по громкой связи нажать на главную кнопку Андроида, то на экране появится главный экран Андроида, как показано выше на рис. 1. И теперь можно вызывать любую программу Андроида, например, можно открыть Контакты и посмотреть номер телефона любого другого абонента, кроме того, с кем в данный момент ведется разговор. Это нужно, например, чтобы продиктовать своему абоненту номер телефона другого общего знакомого.
Именно любую другую программу можно вызвать прямо во время разговора с собеседником по телефону. То есть, наш гаджет – это не просто телефон, это компьютер, позволяющий одновременно делать много разных действий (многозадачный режим).
И звонить по телефону – это одно из возможных действий, отнюдь не самое основное, не отменяющее других возможностей Андроида, причем, даже не прерывая разговора со своим собеседником. Это особенно полезно тем, кто умеет делать сразу несколько дел одновременно.
Журнал просмотра звонков
Открыв «Телефон» или «Контакты» (рис. 1), можно будет увидеть там вкладку «Журнал» (рис. 2). В журнал записываются все звонки и ваши действия по отношению к этим звонкам: ответили, сбросили, пропустили и др.
На рис. 12 показано, как выглядит в «Журнале» обычный входящий звонок (не видео-звонок), на который ответили и поговорили. Кстати, в данном случае звонок от абонента был получен по второй сим-карте для Андроида с 2-я симками (о чем свидетельствует зеленая цифра 2):
Если был сделан обычный исходящий звонок, то стрелка направлена в другую сторону (по сравнению со входящим звонком) и она красного цвета, цвета напоминания того факта, что звонок был Вами оплачен (рис. 13):
Если был сделан видео-звонок, то в журнале такой звонок будет с маленьким изображением, который обведен в красную рамку на рис. 14:
А вот решительное действие, когда при звонке была нажата красная кнопка, и звонок был сброшен, обозначается перечеркнутым кружочком наподобие дорожного запрещающего знака (на рис. 15 обведен в красную рамку):
Зачем махать пальцем вправо для приема или влево для отказа вызова?
Вы спросите, зачем надо не просто тапать, но и двигать пальцем в указанном направлении? Во-первых, это связано с законами о защите авторских прав. Если кто-то в других устройствах, например в iPhone, раньше Андроида сделал бы прием звонков по одному тапу, и затем запатентовал этот метод, то другие производители не могут сделать такой же тап без разрешения автора.
Во-вторых, простой тап может быть ошибочным. Скажем, хотели тапнуть по красной трубке, а тапнули по зеленой, промахнулись! А тут надо сделать своего рода подтверждение своих действий. Да, я пониманию, что хочу переговорить с вызывающим меня абонентом – для этого я делаю еще и сдвиг пальца в указанном направлении.
И все-таки, зачем подтверждать? Зачем как бы говорить «Да, я понимаю, что делаю!». Дело в том, что при нахождении в роуминге, и особенно при нахождении в международном роуминге, входящие звонки тоже могут быть платными. И не просто платными, а очень сильно платными.
Соглашаясь переговорить с абонентом, мы тем самым даем мысленное согласие на оплату предстоящего разговора, скажем этак по 50-100 рубликов за каждую минуту, а то и больше, если мы в момент приема звонка находимся где-нибудь в Новой Зеландии, например!
Вот для этого, в том числе, и делается подтверждение приема звонка путем не только тапа по изображению телефонной трубки, но и путем дополнительного сдвига пальца в указанном направлении. Мол, соединяемся, понимая при этом, что нам это может стоить некоторой суммы денег.
Зачем нужна вторая линия
Вторая линия, или удержание/ожидание звонка — это функция, которая позволяет вам совершать несколько входящих или исходящих звонков одновременно.
Благодаря второй линии вы можете не упустить важные звонки или набрать другой номер прямо во время телефонного разговора.
Это бывает очень полезно в рабочих целях: если во время беседы вам нужно уточнить данные у другого человека, вам не нужно сбрасывать звонок. Поставьте его на удержание, позвоните по нужному номеру и узнайте всю необходимую информацию.
Также вы не пропустите, если во время разговора с родителями к вам подъедет курьер, и так далее.
У второй линии есть 2 серьезных минуса:
- Удержанные исходящие звонки оплачиваются по стандартным ценам. Если вы 10 минут “повисите” в ожидании, пока собеседник общается с кем-то еще, за это придется заплатить. А ведь разговора по факту не было.
- Функция не работает для 2 и более сим-карт одновременно. Вторая линия может переключать вызовы лишь на одном номера, так что для совершения звонков с нескольких SIM используйте разные телефоны или делайте это по очереди.
Для активации и настройки функции ожидания вы можете использовать как стандартные настройки своего телефона, так и услуги операторов сотовой связи.
Звонок через «телефон» с использованием контактов андроида
Чтобы позвонить абоненту с Андроида, совсем не обязательно каждый раз набирать номер абонента с клавиатуры. Это не совсем удобно. Во-первых, номер абонента надо знать и помнить, а, во-вторых, надо набрать его без ошибок, что тоже непросто сделать, скажем, находясь на улице в плохую погоду.
Для набора номера из телефонной книжки надо тапнуть по наименованию вкладки «Контакты» (5 на рис. 2).
И тогда откроется телефонная книжка Андроида, называемая «Контакты» (рис. 3). Конечно, эта телефонная книжка появляется не сама по себе. В нее надо сначала занести номера своих абонентов. Но это, что называется, совсем другая история.
Предположим, что у нас есть Контакты, и в них внесены наши абоненты, с которыми мы хотим периодически беседовать по телефону.
Абоненты в Контактах расположены в алфавитном порядке.
- Находим нужного нам абонента,
- тапаем по его имени (фамилии, отчеству, если они тоже были внесены в телефонную книжку, чтобы их вспомнить при необходимости) и
- выбираем из списка его телефон – ведь у нашего абонента может быть не только сотовый телефон, но и рабочий, домашний, добавочный (если звоним на работу) и пр. Выбор делается также с помощью клика по выбранному телефонному номеру абонента (рис. 4).
Скажем, выбираем сотовый (мобильный) номер абонента. Тогда мы кликаем по номеру, называемому «Мобильный» в предлагаемом списке телефонов нашего абонента (1 на рис. 4).
После этого Андроид переходит из режима выбора номера абонента в режим дозвона. Начинается дозвон до абонента, после чего на «другом конце провода» раздастся звонок, и абонент ответит нам «Алло!».
Как подключить вторую линию на мтс
Вторая линия на МТС представляется в виде специальной услуги, которая называется “Ожидание и удержание вызова”. Она добавляет одновременно 2 режима: “Ожидание” и “Удержание”.
С 13 марта 2009 год опция автоматически включается во все тарифные планы. Абоненты, которые подключились к МТС ранее и не меняли тариф, должны установить ее вручную.
Для активации услуги используйте комбинацию *43#.
После того, как опция “Ожидание и удержание вызова” будет подключена, вы можете управлять ей такими способами:
- Продолжайте текущий разговор и игнорируйте новый вызов, пока абонент не сбросит его самостоятельно;
- Нажмите на кнопку “0” и значок трубки, чтобы сбросить второй звонок и продолжить разговор;
- Нажмите на кнопку “1” и значок трубки, чтобы сбросить первый звонок и принять второй вызов;
- Нажмите на кнопку “2” и значок трубки, чтобы принять второй звонок и оставить первого абонента на удержании.
На новых смартфонах использовать цифры не обязательно — все управление звонками происходит на экране вызова. Конкретные способы зависят от устройства и его прошивки.
Также вы можете ввести в меню любой номер и нажать на значок трубки — тогда текущий вызов автоматически будет удержан.
А вот как можно отключить вторую линию на МТС:
Также вы можете посетить салон связи, чтобы решить вопрос.
Важный момент! Вы не сможете удерживать звонки, если звоните по номерам 0850, 0876, 0887, 0880, 0890, 0990, 112. Чтобы принять звонок или позвонить кому-то еще, завершите разговор.
Как снять блокировку экрана на андроиде
Чтобы гаджет сам по себе не звонил, он обычно заблокирован. Блокировка означает, что гаджет не реагирует ни на какие нажатия, касания и другие внешние сигналы. Сделано это для того, чтобы гаджет сам не стал названивать, куда его не просят, принося беспокойство другим абонентам и лишние расходы его обладателю.
Обычно можно снять блокировку экрана на Андроиде, если нажать на главную кнопку, чтобы экран начал светиться. А затем надо провести пальцем по экрану наискосок (по диагонали) справа налево.
Некоторые пользователи устанавливают еще и пароль, чтобы никто, кроме них, не смог воспользоваться устройством. В этом случае, помимо разблокирования экрана при помощи движения пальцем наискосок по экрану, нужно еще и правильно без ошибок ввести пароль с экранной клавиатуры.
Другие устанавливают такую блокировку экрана, которая снимается по отпечатку пальца. Для такой блокировки скачивается соответствующее приложение для Андроида.
После снятия блокировки на экране обычно появляется стандартный начальный экран (рис. 1).
Если этот начальный экран не появился после разблокировки устройства, надо нажать на главную кнопку гаджета. Обычно эта кнопка расположена внизу под экраном гаджета. Нажимая ее, пользователь убирает с экрана все открытые окна активных программ, и возвращается на начальный экран устройства, как показано на рис. 1.
Можно позвонить кому-либо с помощью одной из двух иконок
- «Телефон» (1 на рис. 1),
- «Контакты» (2 на рис. 1).
Рассмотрим ниже оба варианта более подробно.
Обычный звонок или видео-звонок?
Набрав номер нашего абонента (с префиксом 8, либо с 7, либо просто номер без всяких «префиксов»), нужно затем еще тапнуть по зеленому значку с изображением снятой телефонной трубки (2 на рис. 2).
Пока мы вводим номер, исправляем введенные цифры и значки с помощью клавиши «Отмена» (3 на рис. 2) – мы еще не устанавливаем никаких соединений. Все наши действия фиксируются только на экране Андроида, но сам Андроид никому никуда не звонит.
А вот нажатие на зеленую телефонную трубку (2 на рис. 2) как раз и завершает наши труды по набору номера, и Андроид начинает дозваниваться по введенному номеру, по указанному номеру.
Внимание, на изображение зеленой трубки с фотографией абонента слева от изображения обычной снятой телефонной трубки (4 на рис. 2) – мы НЕ нажимаем. Иначе у нас будет произведен не обычный телефонный звонок, а видеозвонок с вызываемым абонентом. Мы будем не только слышать, но и будем видеть абонента. Это, конечно, круто и интересно, но оплачивается это совсем по другим тарифам!
Видео связь дорогая, ей альтернативой является связь через Интернет, где то же самое может быть совсем дешево или вообще бесплатно, не считая плату за пользование Интернетом.
Осуществление звонка с любого номера
Теперь перейдём к самому интересному – тому, что демонстрируется в видео, подтверждается комментариями к статье, а значит и реализовано – совершению звонков с абсолютно любых номеров.
Идея данного приёма заключается в том, что для звонка в телефонных сетях для идентификации вызывающей стороны (Caller’а) используются одновременно два идентификатора: идентификатор номера, по которому выставляется счёт, и номера, который высвечивается на оборудовании принимающей звонок стороны (Callee).
Для начала важно понимать, что обычная телефонная сеть на самом деле состоит из двух. Первая сеть используется для передачи трафика вызовов пользователей, вторая — сеть с коммутацией пакетов, которая используется для установления голосовых вызовов, их завершения, поддержки различных других возможностей, в частности caller id и особых номеров, начинающихся с 800. Эта сеть и есть общеканальная система сигнализации № 7 (Signal System 7, SS7). Изначально доступ к ней имели лишь узлы коммутации и базы данных операторов связи. Однако позже доступ был частично расширен и на PBX (private branch exchange — частные корпоративные линии) для предоставления доступа к caller id и другим возможностям SS7 через ISDN PRI (вид подключения к ISDN и кабеля, используемого для него).
Очевидно, что с возможностью манипулирования сигнальной информацией в SS7 открываются широкие возможности для различных трюков в телефонной сети, в том числе и подмена исходящего номера. Для того, чтобы понять каким образом это делается необходимо рассмотреть процесс установки звонка в обычной телефонной сети. Во время совершения вызова коммутатор на вызывающей стороне формирует и отсылает принимающему коммутационному оборудованию два сообщения по каналу сигнализации SS7. Первое сообщение называется IAM (Initial Address Message). Оно содержит номер абонента, к которому пытаются дозвониться, а также специальный номер ANI (Automated Number Identification) по старой терминологии, или как он сейчас называется CHARGED DN. Этот номер используется для идентификации звонящего абонента и выставления счета (биллинга). Манипулировать им, как правило, невозможно. Этот номер формируется и отправляется коммутационным оборудованием обслуживающего клиента оператора связи. ANI или CHARGED DN высвечивается при приеме звонка у экстренных служб (т.е. вариант позвонить в МЧС с фэйковым номером отпадает – у них на оборудовании отображается ANI, который в общем случае не подменить) и может быть получен частными клиентами для входящих вызовов при использовании доступа к телефонной сети при помощи PRI или SIP.
Коммутационное оборудование принимающего оператора в ответ на первое сообщение IAM формирует второе, которое называется INR (Information Request) и в свою очередь тоже отправляет его по каналу сигнализации SS7 коммутационному оборудованию оператора абонента, осуществляющего вызов.
В ответ на это сообщение, коммутационное оборудование оператора абонента, совершающего вызов, формирует второе сообщение INF. Именно это сообщение и содержит тот самый печально известный CPN (Called Party Number) / Caller ID. Это и есть тот самый номер, который отображается на экране телефона при приеме входящего вызова. Помимо самого номера в сообщении может присутствовать флаг «приватности», который предписывает принимающему коммутационному оборудованию не выдавать номер оборудованию конечного пользователя. В случае если у абонента подключена услуга, позволяющая ему видеть все номера входящих вызовов, то номер скорее всего отобразится в независимости от флага приватности.
Ниже схематично изображён процесс обмена описанными сообщениями:

Caller ID может быть изменен коммутатором, входящим в состав PBX, и подключенным к каналу сигнализации через PRI или SIP-шлюз.
Следует заметить, что CPN/Caller ID может высылаться сразу в первом сообщении IAM, в таком случае запрос INR и ответ INF не производятся. Однако сути это не меняет: есть отдельный номер, по которому выставляется счет, и отдельный номер, который просто высвечивается на экране телефона, принимающего звонок абонента.
Воздействовать на первый идентификатор (он носит название ANI (Automated Number Identification) или CHARGED DN) противозаконно и, как правило, невозможно. Манипулирование же вторым параметром (Caller ID) может совершаться любым PBX’ом (private branch exchange — частные корпоративные линии), подключённым к ISDN.
Таким образом, всякий обладающий доступом к телефонной линии через SIP или PRI, может менять Caller ID на какой ему вздумается не особо переживая о последствиях. Операторы телефонной связи ISDN обычно не проверяют соответствие Caller ID реальному. Провайдеры VoIP еще менее склонны к уменьшению функциональности своих клиентов.
Из этого следует, что номер, отображаемый на экране принимающей стороны подменить очень легко. Так же видно, что анонимность, при совершении вызова в телефонной сети общего пользования полностью отсутствует. Достигается это за счет ANI или CHARGED DN.
Практические руководства по тому, как можно это реализовать своими руками, Вы найдёте по запросу в поисковике «Caller ID spoofing».Кстати, забегая вперёд, скажем, что только звонки имеют Caller ID. При отправке sms’ки сообщение с этим полем не используется.
Установить PBX – по сути, обычную телефонную сеть в офисе – не составляет никакого труда, как с финансовой точки зрения, так и административной. PBX в свою очередь подключается к телефонной сети общего пользования при помощи PRI (провайдер протягивает кабель до Вашего офиса), либо при помощи SIP уже не по телефонному кабелю, а по доступному интернет-каналу.
Резюмируя только что сказанное: для звонка с произвольного номера необходимо просто заказать у телефонного оператора ISDN предоставление вам доступа к телефонной сети через PRI или у SIP провайдера телефонной связи доступ через SIP, с возможностью манипулировать некоторыми параметрами голосовых вызовов (в частности Caller ID).
Официальный регулирующий орган FCC (Federal Communications Commission, Федеральная комиссия по связи США) по этому поводу высказываются следующим образом: «Операторы связи должны предоставлять корректный номер для отображения для конечно пользователя, и по возможности имя компании, осуществляющей вызов».
Но, используя данный подход, можно позвонить с произвольным номером (как мы выяснили это Caller ID) лишь с телефона организации, которой принадлежит PBX, а провайдеры услуги произвольного номера заявляют и демонстрируют в многочисленных видео, что позвонить с заданным номером можно с любого мобильного телефона при отсутствии интернета и любого стороннего ПО.
Решение данной проблемы нам кажется действительно интересным (можно даже сказать хакерским). Процесс звонка с мобильного телефона на другой с произвольным исходящим Caller ID изображён на схеме:
На схеме изображено, как абонент с номером 1234567 (будем называть его абонент А) звонит абоненту 7654321 (абонент Б) с произвольным номером.
Первым делом, согласно инструкции с одного из сайтов, предоставляющих услугу sim-карты с возможностью менять исходящий номер, необходимо ввести USSD команду типа 150*номер_телефона*, что абонент А и делает.
Телефон подключён к сети, он находится в роуминге, поэтому первые два шага, изображённые на схеме выполняются тривиально, в полном соответствии с документацией GSM. На третьем шаге MSC (Mobile Switching Center), согласно своим таблицам маршрутизации отправляет запрос на HLR домашнего оператора sim-карты и получает указание на переадресацию USSD на номер 1234123, который в свою очередь является офисным телефоном организации, подключённым к PBX.
Последний при помощи кабеля, проложенного провайдером ISDN, через PRI ISDN подключён к SS7. Таким образом, на 4-ом шаге исходная USSD-команда доходит до АТС распространителей это sim-карты. На этом оборудовании, вероятно, запущено специфичное ПО, которое по данному запросу добавляет себе в конфиг правило по замене номера, от которого пришёл запрос, на номер в USSD команде.
Далее абонент А производит звонок абоненту Б. Шаги 1-5 в точности повторяются и звонок доходит до АТС, после чего она «сбрасывает» абонента А. Приложение на АТС в свою очередь, используя Caller ID spoofing для подмены номера, совершает звонок на номера абонентов А и Б.
Звонок доходит до абонента А и ему «высвечивается» либо случайный номер, либо номера телефона, подключённого к PBX, параллельно звонок доходит до абонента Б, на экране телефона он видит фэйковый номер телефона и берёт трубку. Далее АТС просто «пробрасывает» трафик, который передаётся во время разговора абонентов.
Хочется отметить, что хоть звонки и устанавливаются через стороннюю АТС, это не прибавляет анонимности, поскольку эту АТС всегда можно найти физически – она зарегистрирована. И после этого нужные люди обязательно узнают, кто и зачем через неё звонит, сопоставят время звонков и получат данные ничем не уступающие детализации звонков, которую можно получить от оператора в случае совершения звонка абонентом с обычной sim-карты.
Так как утверждается, что весь голосовой трафик проходит через одну АТС, несложно догадаться, что именно там меняется тональность голоса абонента. Но это и создает дополнительные риски – поскольку все звонки проходят через неё, не составляет особого труда их там записывать/сохранять/анализировать.
Ответ на звонок андроид: ответить или сбросить
Одно дело, когда звоним мы. Мы ведь звоним только знакомым людям, и, что называется, по делу. А если звонят нам? Если звонят незнакомые люди или не совсем по делу? Например, рекламный агент предлагает нам очередное «купи-купи». Или, не дай бог, судебный исполнитель.
Итак, нам поступил входящий звонок. Раздается звуковой сигнал, мы слышим, что нам звонят. И на экране Андроида мы видим, кто нам звонит (рис. 7).
Если абонент занесен в телефонную книгу, то Андроид высветит нам его имя и даже покажет его фотографию, если она есть у того, кто звонит. На-те, пожалуйста, вот кто Вам звонит, думайте, будете Вы с ним соединяться или нет!
А если абонент не занесен в телефонную книгу, в Контакты Андроида, то на экране будет высвечен только номер звонящего, его полный номер с префиксом 7, если звонок сделан из России. Если звонок поступил из-за границы, то префикс будет другой, например, 49 при звонке из Германии.
Чтобы отказать абоненту, и не соединяться с ним, достаточно прикоснуться к красному изображению телефонной трубки, и одновременно легко провести пальцем влево по направлению, указанному красными стрелочкам (2 на рис. 7), как бы смахнуть пыль влево. Звонок будет прерван, а звонящему будет выдано сообщение, что Вы отказались от приема его звонка – сбросили звонок.
Чтобы соединиться с абонентом, нужно прикоснуться к зеленому изображению телефонной трубки, и легко провести пальцем вправо по направлению, указанному зелеными стрелочками (1 на рис. 7), как бы аккуратно смахнуть с экрана пыль в указанном направлении — вправо. При этом важно не коснуться красной телефонной кнопки, иначе звонок будет сброшен.
Перехватываем звонок
Чтобы иметь возможность перехватывать событие «нам звонят», нужно добавить в манифест приложения запрос прав на считывание состояния телефона.
Там же зарегистрировать сервис для перехвата события «звонок».
И наконец — написать немного кода обработки этого события.
public class CallReceiver extends BroadcastReceiver { private static boolean incomingCall = false; @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals("android.intent.action.PHONE_STATE")) { String phoneState = intent.getStringExtra(TelephonyManager.EXTRA_STATE); if (phoneState.equals(TelephonyManager.EXTRA_STATE_RINGING)) { //Трубка не поднята, телефон звонит String phoneNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER); incomingCall = true; Log.debug("Show window: " phoneNumber); } else if (phoneState.equals(TelephonyManager.EXTRA_STATE_OFFHOOK)) { //Телефон находится в режиме звонка (набор номера при исходящем звонке / разговор) if (incomingCall) { Log.debug("Close window."); incomingCall = false; } } else if (phoneState.equals(TelephonyManager.EXTRA_STATE_IDLE)) { //Телефон находится в ждущем режиме - это событие наступает по окончанию разговора //или в ситуации "отказался поднимать трубку и сбросил звонок". if (incomingCall) { Log.debug("Close window."); incomingCall = false; } } } }
}Обратите внимание — в данном примере мы ловим только событие «входящий звонок», но по коду видно, как его можно переделать, если нужно отслеживать и исходящий тоже. Переменная с информацией о звонке статическая, потому что
живёт по принципу «принял сообщение — обработал его — умер», и события «поднял трубку/закончил разговор» будет принимать уже новый экземпляр объекта.
Подводные камни
К сожалению, всё не так радужно как кажется. Как часто бывает в андроиде, 100% совместимости хитрой фичи добиться сложно.
Во-первых, нужно понимать, что у пользователей могут быть телефоны с разными размером экрана, разным разрешением и разной версией андроида, и придется изрядно постараться, чтобы ваше окно не перекрыло родные элементы управления на всех возможных конфигурациях
Во-вторых, на части телефонов от HTC с собственной программой звонка блок с информацией просто-напросто не показывается! Похоже, их приложение-звонилка тоже отображается с системным приоритетом, поэтому наша плашка как бы оказывается «под их окном». Неприятно, но решения этой проблемы мы пока не нашли.
Демонстрационный проект на GitHub.
Подключение и регистрация в сети
При установке новой sim-карты, первым делом телефон пытается подключиться к домашней сети. Как уже было много раз написано, телефон сортирует доступные частоты по уровню сигнала в порядке убывания и затем настраивается на них по очереди в поисках своего оператора, пока данный процесс не завершится успехом.
Рассматриваемая sim-карта, как заявлено, работает в любых странах мира, поэтому, очевидно, что, как правило, работа её проходит не в домашней сети – sim-карта находится в роуминге и для связи использует базовые станции, предоставляемые другими операторами.
Однако, во-первых, ассоциация GSM старается широко распространить стандартизованные роуминговые соглашения, а во-вторых никто не проверял как работает данная сим-карта в других странах. По непроверенным данным в современном мире чаще всего у всех со всеми есть эти соглашения, но здесь важно не это, а то, что у провайдеров такой услуги должен быть лицензированный оператор, который предоставляет им sim-карты, а у оператора есть роуминговые соглашения.
Как было только, что сказано по умолчанию Ваш телефон подключается к базовой станции с наибольшим уровнем сигнала. Но в целях обеспечения безопасности, а именно – защиты от IMSI Catcher’ов, при использовании данной sim-карты подключение происходит ко второй по мощности BTS (Base Transceiver Station).
С технической точки зрения сделать это можно лишь на очень низком уровне, ведь всю логику работы с радиоканалом выполняет baseband processor (модем – отдельное устройство в Вашем телефоне со своей архитектурой и ОС). На Defcon 21 был представлен доклад «The Secret Life of SIM Cards», из него можно понять, что и на sim-карте есть своя ОС и свои приложения.
Данные приложения пишутся на сильно урезанной версии языка Java и для взаимодействия используют SIM Toolkit (STK) API. Документации по поводу работы SIM Applets и baseband processor’а мало, но если функция выбора второй по мощности базовой станции работает, то реализоваться это может именно с помощью SIM Applet’а.
Это действительно трудоёмкая и сложная работа (возможно даже невыполнимая — мы не изучали детально документацию на предоставляемый baseband’ом интерфейс), выполнить которую может только высококвалифицированный специалист, но наше мнение – эта функция не поддерживается в этих sim-картах, так как для её выполнения требуется очень много ресурсов, а результат мало того, что сомнительный, так и для абсолютного большинства незаметный (не каждый может проверить).
Поэтому скорее всего это просто маркетинговая уловка. Ещё одним аргументом в пользу того, что данная функция не реализована является то, что написанное приложение нужно «залить» на sim-карту. Сделать это, естественно, может не кто угодно, а лишь обладатель ключа OTA Install Key, уникального для каждой sim-карты.
В презентации, указанной выше, есть слайд с оператором Shadytel и распространяемой им sim-картой с Ki, IMSI и OTA Install Key. Мы не знаем является ли он лицензированным, но если является, и организаторы услуги «Hacker SIM» используют этого или подобного оператора, то пользователю данной sim-карты должно плохо спаться, потому что пока он спит на его карту третьи лица могут вовсю заливать код (ведь они знают OTA Install Key).
Что касается принудительного использования алгоритма шифрования A5/1 для трафика между MS и BTS при участии данной sim-карты, то это опять отсылает нас к предыдущему абзацу. Команда на установление алгоритма шифрования приходит MS от BTS в сообщении Ciphering Mode Command протокола Radio Resource Management (поверх LAPDm).
Таким образом, sim-карте нужно получить от baseband’а этот пакет и в случае «неподходящего» алгоритма отклонить команду и завершить соединение. Для всего этого baseband должен предоставлять sim-карте очень развитой интерфейс. И опять же встаёт проблема разработки и установки приложения на sim-карту (непонятно даже, что сложнее).
Кроме того, возникает ещё один риторический вопрос: а почему только алгоритм A5/1 используется? Понятно, что A5/1 нужен для совместимости со старым оборудованием, но если телефон пользователя и оборудование оператора поддерживают A5/3, то почему бы не использовать его, ведь он, по мнению специалистов в области криптографии, безопаснее? Так что скорее всего и эта фича не реализована.
Показываем плашку
Ну, а теперь самое интересное — показываем нашу плашку. Для этого, во-первых, нам понадобится добавить в манифест запрос прав для создания окон с флагом «системное уведомление».
Во-вторых, отредактируем метод OnRecieve и заменим простую запись в лог на вызов или закрытие нашего окна.
Log.debug("Show window: " phoneNumber);
showWindow(context, phoneNumber);//добавили
//[...]
Log.debug("Close window.");
closeWindow();//добавили
Ну и самое интересное — открытие и закрытие нашего окошка.
private static WindowManager windowManager;
private static ViewGroup windowLayout;
private void showWindow(Context context, String phone) { windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); WindowManager.LayoutParams params = new WindowManager.LayoutParams( WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.TYPE_SYSTEM_ALERT, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL, PixelFormat.TRANSLUCENT); params.gravity = Gravity.TOP; windowLayout = (ViewGroup) layoutInflater.inflate(R.layout.info, null); TextView textViewNumber=(TextView) windowLayout.findViewById(R.id.textViewNumber); Button buttonClose=(Button) windowLayout.findViewById(R.id.buttonClose); textViewNumber.setText(phone); buttonClose.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { closeWindow(); } }); windowManager.addView(windowLayout, params);
}
private void closeWindow() { if (windowLayout !=null){ windowManager.removeView(windowLayout); windowLayout =null; }
}Обратите внимание, для отображения окна мы не запускаем отдельную
activity
, а руками выводим новое окно через
WindowManager
. Почему? Новая
activity
попадает в общий стек экранов, поэтому если ваше приложение имеет хотя бы один экран и в момент звонка оно запущено — произойдёт следующее:
- на экран выводится родная телефонная звонилка
- на экран выводится активный экран вашего приложения
- на экран выводится ваше «окно поверх» звонилки
В результате пользователь не сможет ответить или отклонить звонок, не переключившись на звонилку самостоятельно. В случае же ручного создания окна пункт 2 не выполняется и пользователь увидит именно то, что мы хотели: телефонную звонилку и наше окно поверх неё.
Правила набора номера телефона андроид
На стационарном аппарате мы обычно набираем номер в виде последовательности цифр. Городской телефон абонента обычно 5-6-7-изначный. В Москве он стал с некоторых пор 10-изначный с обязательным добавлением цифры 8 в начале, перед номером.
Звонки на мобильные телефоны тоже делаются по 10-тизначному номеру с добавлением восьмерки в начале номера.
Но данное правило набора номера с клавиатуры работает, только если мы сами находимся на территории своей страны. При нахождении за границей нужно вместо цифры 8 в начале номера ввести последовательность из знака « » и цифры «7». То есть, если в России мы звоним абоненту по номеру 8 000 00000000, то из-за границы мы сможем дозвониться этому же абоненту только по номеру 7 000 00000000.
Это связано с тем, что в международной системе телефонных номеров у России код 7. Скажем, у Украины этот код 44, у США 1 и т.п. Поэтому, если мы часто пользуемся Андроидом для звонков по России, то ВСЕ номера наших абонентов желательно набирать на клавиатуре и сохранять в телефонной книжке контактов в международном формате 7 000 00000000.
Например, наш абонент, которому мы звоним, живет в Саратове и имеет телефонный номер 2-00-00-00. Тогда в телефонной книге нашего Андроида номер этого абонента должен быть записан как 78452000000, где 7 – это код России, 845 – это код Саратова, и далее – номер абонента. В такой же последовательности желательно набирать номер и на клавиатуре Андроида.
В приведенном примере можно, находясь в Саратове, с Андроида просто набрать номер абонента 2000000. Соединение будет установлено. Но, если этот номер записать в телефонную книгу, потом отъехать от Саратова в соседний район (даже не за пределы области) и попытаться позвонить по указанному номеру – будут проблемы.
Выводы
В завершении хочется выразить мнение, что звонок с любого номера с выбранной тональностью голоса – штука, бесспорно крутая для розыгрышей и приколов – мы уверены теперь сможет сделать при наличии желания любой читатель, защищённость разговоров, не превышающая обычную, а местами так и уступающая дефолтной защищённости в 2G-сетях (операторы зачастую используют A5/3, о 3G-сетях даже не говорим), отсутствие декларированной анонимности и защиты от прослушки, отсутствие поддержки смс и Интернета, а также потенциальная возможность сбора Вашего голосового трафика третьими лицами (ведь понятно, что они могут не только менять тональность голоса, но и параллельно сохранять и анализировать), — сомнительная услуга за немалые деньги даже при учёте издержек на роуминг.
Отдельно хочется выделить «хакерскую» мысль разработчиков, которые задействовав возможности, которые предоставляет оператор, абсолютно легально (за исключением, быть может, продажи sim-карт без документов) – а ведь у многих первым делом возникал вопрос о легальности данного сервиса – организовали данную услугу. Но, к сожалению, это тот случай, когда выглядит всё намного привлекательнее, чем есть на самом деле.
Следует отметить, что предлагаемая реализация данной услуги с высокой долей вероятности совпадает с тем, что реализовано у людей, её продающих. Но при этом не стоит забывать, что и мы можем ошибаться. Для того же, чтобы расставить все точки над “i”, необходимо приобрести данную sim-карту и поисследовать, как она работает. Но стоимость данного мероприятия остужает исследовательский пыл.
