Как сделать аудиозапись на смартфоне звонка
Как записывать телефонные разговоры на Android и в мессенджерах
Несмотря на то что запись телефонных разговоров во многих странах мира запрещена законом, поскольку нарушает конфиденциальность записываемого, обычно это никого не останавливает. Другое дело, что в какой-то момент Google решила, что это и впрямь опасная функция, а потому взяла и просто отключила её, лишив пользователей последних версий Android писать звонки. Поэтому в сети довольно часто встречаются вопросы о том, как записать звонок на Android или как записать звонок в WhatsApp, Telegram и других мессенджерах. Рассказываем, что к чему.
Хотите записать разговор на Android? Это будет непросто
Как записывать звонки на Android 10
Пожалуй, больше всего пользователей интересует, как записать звонки на смартфонах с Android 10. Дело в том, что в этой версии ОС Google отключила функцию записи, а потому все сторонние приложения, служащие этой цели, оказались бесполезными. Однако некоторые производители встраивают инструментарий для записи звонков в свои прошивки. Например, Xiaomi, Huawei, Honor и Meizu.
Если у вас смартфон Xiaomi или Meizu, вам не придётся совершать каких-либо манипуляций вроде установки специализированного софта для записи звонков в принципе – всё уже встроено по умолчанию. Достаточно набрать номер нужного абонента, а затем нажать на кнопку записи (иконка диктофона). После этого перейдите в приложение с файлами, отыщите папку call_rec и прослушайте записанный разговор.
Как записывать звонки на Huawei
А вот пользователям аппаратов Huawei и Honor придётся немного сложнее. Им нужно установить приложение HwCallRecorder, которое можно загрузить по этой ссылке. После этого необходимо открыть приложение «Телефон» — «Настройки» и включить параметр «Автоматическая запись вызовов». При этом записывать звонки отдельно не получится. Отыскать записи можно в приложении «Диктофон», которое поставляется с оболочкой EMUI по умолчанию.
Как записывать звонки Тинькофф Мобайл
Тинькофф Мобайл ввел услугу записи телефонных разговоров, она бесплатна
С недавних пор у абонентов «Тинькофф Мобайла» тоже появилась возможность записывать звонки. Для активации этой функции перейдите в приложение оператора и в разделе «Услуги» активируйте запись звонков. После этого откройте приложение «Телефон» и наберите номер 333. Затем нажмите на экране кнопку «Добавить» и наберите абонента, разговор с которым хотите записать. Как только он ответит, нажмите на экране кнопку «Объединить» для перехода в режим аудиоконференции, где специальный бот сможет писать звонки. Отыскать записи можно в приложении «Тинькофф Мобайл» — «События» — «Звонки».
Запись звонков на Android 8
У пользователей устройств под управлением Android 8.1 и более ранних версий никаких проблем с записью звонков нет. Поэтому, если вы относитесь к их числу, просто установите себе приложение ACR Cube. По-моему, это самая удобная утилита для записи звонков.
Справа — запись не ведётся, слева — запись ведётся
Установите приложение и раздайте ему запрашиваемые привилегии. После этого при совершении звонка из приложения «Телефон» на вашем смартфоне на экране будет появляться кнопка записи. Нажмите её, чтобы записать разговор или отключите, если запись не требуется.
Сохранённые записи можно добавить в избранное, как-то прокомментировать или поделиться
Чтобы найти запись, откройте приложение ACR Cube и на главной странице вы увидите список всех записанных разговоров с пометкой приложения, в котором велась запись. Это может быть либо штатное приложение «Телефон», либо WhatsApp, либо Telegram. Нажмите на запись, чтобы прослушать.
ACR Cube обладает широким перечнем настроек. Приложение позволяет включить автоматическую запись, активацию записи по подаче голоса кого-то из собеседников или в момент приёма вызова, и даже активировать геотаргетирование. То есть приложение будет записывать не только телефонный разговор, но и отметит место на карте, где вы совершили или приняли записанный звонок.
Если в записи слышен только ваш разговор, проверьте настройки
Если вы испытываете проблемы с записью звонков и либо слышите только себя, либо не слышите ни себя, ни собеседника, разработчики рекомендуют немного поколдовать с настройками. Перейдите в «Настройки» — «Запись» — «Источник аудио для записи звонков» и попробуйте выбрать другие параметры записи: Voice Communication, Voice call, Voice Recognition и т.д. Затем выкрутите ползунок параметра «Улучшение чёткости телефонных звонков» на максимум. Это должно решить проблему.
Как записывать разговоры в WhatsApp
ACR Cube позволяет записывать не только телефонные разговоры, но и звонки в VoIP-сервисах вроде Telegram или WhatsApp. Признаюсь честно, мне так и не удалось заставить приложение писать мои разговоры в мессенджерах. Первоначально я списал это на шифрование – дескать, продвинутые алгоритмы защиты не позволяют сторонней программе получить доступ к голосовым данным. Однако, как оказалось, тех, у кого всё сработало, на самом деле довольно много, а причина отказа в записи кроется в банальной несовместимости. Поэтому узнать, будет ли ваш смартфон записывать разговоры в мессенджерах, можно только на практике.
Запись звонков в WhatsApp, Telegram или Skype работает ровно по тому же принципу, что и сотовых звонков:
- Перейдите в чат с пользователем, которому хотите позвонить, и нажмите на кнопку трубки;
- При появлении экрана вызова нажмите на кнопку записи разговора, которая будет отображаться поверх интерфейса мессенджера;
Записывать разговоры можно не только в WhatsApp, но и в Telegram
- Остановите запись во время разговора, если нужно, нажав на ту же кнопку, либо завершите звонок – запись окончится автоматически.
Помните, что, записывая свой разговор с кем-то из собеседников, вы нарушаете его конфиденциальность. С другой стороны, иногда запись может реально выручить вас, став доказательством в экстренной ситуации. Поэтому, на мой взгляд, лучше, чтобы такая возможность была – просто на всякий случай.
Запись разговоров на мобильных
Тут на МВидео выложили статью про 10 лучших приложений для записи звонков на смартфонах, а на 4pda выложили статью, что Гугл совсем запрещает запись звонков на Андроиде. Тема мне близка, т.к. недавно занимался разработкой приложения для записи звонков и все вышло не так как хотелось. Что и как — далее подробно.
* Цель статьи рассказать свой путь и принять обратную связь и ваши идеи, мысли, размышления.
Кто я? Что я? Я разработчик, занимаюсь разработкой сервиса виртуальной АТС для корпоративных клиентов. И, конечно, есть клиенты, у которых есть не только офисные работники, которым достаточно поставить стационарные SIP-телефоны или раздать в офисе/складе/магазине SIP-DECT-трубки.
В чем проблема?
Есть менеджеры «в полях». Которые весь день на объектах, в разъездах. И постоянно на созвоне. На созвоне с клиентами, партнерами, офисным бекендом. С точки зрения шефа эти менеджеры на мобильниках немного бесконтрольны. И хотелось бы знать с кем они разговаривают, как долго и о чем. Чисто хотя бы чтобы после разруливать конфликты проще было, кто что кому обещал или нет сделать. Обычно запись звонка, прослушанная обеими сторонами совместно, резко проясняет ситуацию. Хотя по разному бывает?
В общем, служебную запись звонков менеджеров в разъездах сделать не повредит.
Какие варианты решения? Разные операторы связи и виртуальных АТС предлагают и FMC, и SIP-клиент, более продвинутые — ВАТС сразу с симками.
Какой еще есть вариант?
И, конечно, можно использовать приложение для записи. Для корпоративных клиентов есть облачные сервисы. Вы ставите на смартфон приложение, которое записывает звонок и передает его в облако. Затем вы смотрите в веб-интерфейсе отчеты по звонкам и слушаете записанные звонки со всех смартфонов подключенных к сервису. Удобно? Вполне.
Решил воспользоваться таким сервисом. К сожалению, выбор указанных смартфонов на сайте был неактуален, часть моделей уже отсутствовала в продаже, на других были оговорки. Почему часть смартфонов записывает звонки, другая записывает, но только при определенных условиях, а третья вовсе не записывает?
Во-первых, Android и iPhone. Могу быть не точен, но iPhone не записывает звонки. Вероятно, так было изначально, ориентир на приватность-конфиденциальность-защиту. Видел заметку, что где-то просочились скрины каких-то бизнес-функций для Айфона и вот там есть запись звонков. Но правда или нет, достоверно не знаю, может быть кто-то в комментариях прояснит тему.
Для Андроида все немного проще. Андроид был 4, 5, 6, 7, 8, 9, 10 и вот сейчас 11-я версия платформы, 12 на подходе. Гугл с каждой версией платформы меняет свою политику, делая ее более «строгой». Т.е. многие приложения записи работали легко на 4,5,6 версиях, а вот позднее стали записывать только при определенных условиях, либо переставали записывать вовсе.
При каких условиях могли записывать? Например, выбор другого источника звука. Т.е. в Андроиде есть LINE, и есть MIC. Вроде с 7 версии Андроид использовать LINE уже не получится, т.к. будет только либо один канал (исходящий, т.е. ваша речь) либо тишина во время записи телефонного разговора. А если выставить MIC, то можно записать, что идет с микрофона и если ваш собеседник громко говорит, то микрофон уловит это с динамика или громкой связи и запишет. Прикольно, не так ли?
Почему свое приложение?
Вернемся к моей истории. Позвонив в поддержку сервиса и попросив предоставить хотя бы одну модель, купив которую я бы смог точно записать звонок. Но поддержка сервиса затруднилась ответить. И не подсказала мне какой смартфон купить.
Чтобы точно записывались звонки, то вооружившись Android Studio и Asus ZenPhone на Android 6, написали совместно с коллегой (мы ж программисты. ) первый вариант своего приложения для записи звонков. Все работало отлично, но.
Но Android 6 уже устарел в 2019 году, кругом был Android 7, 8, набирал обороты Android 9. У клиентов, которым я дал потестировать приложение, был уже не тот Андроид что у меня. Тут стало понятно, что с LINE больше не запишешь. И почему не всякий смартфон порекомендуешь. Нюансов добавляет то, что даже рабочая модель смартфона может проапгрейдиться до следующего Андроида и потерять возможность записывать звонки. Т.е. доступные Android API станут нефункциональными.
Тут, пожалуйста, дальше читайте выразительно с придыханием: «это был жесткий облом!»
На самом деле были еще варианты.
Какие были требования к приложению для записи?
1. Собственно запись телефонного разговора.
2. Отслеживание событий звонка: начало, ответ, завершение.
3. Загрузка записанных звонков на сервер.
4. Понятный интерфейс.
Как видите, приложение не умело первый пункт — запись звонков. Ок.
С событиями в Андроид, конечно, тоже песня еще та. Их нет. Есть состояния. Во всех исходниках на гитхабе, которые работают с телефонией есть примерно один и тот же код, который переводит изменения состояния телефона в события. Т.е. например, телефон перешел из состояния покоя в состояние RINGING — значит в этот момент мы должны сделать все, что надо сделать на старт звонка. да это все обернуто в вашу функцию onStartCall ))
И еще прикол: вы не поймаете стандартным средством момент ответа на исходящий звонок, вопрос на Stackoverflow висит уже не первую пятилетку.
Ок, худо-бедно, второй пункт из требований программно сделать можно. Как собственно и 3.
Что все-таки делать с записью?
Кто-то скажет: «О, так можно же еще и рутовать устройства, там запись работает».
Да, возможно можно. Но очень хотелось бы, чтобы пользователь купил смартфон (возможно из какого-то рекомендованного списка), поставил приложение, сделал пару простых настроек, и вуаля! у него все работает: звонки записываются, передаются в CRM, отчеты строятся.
Все эти танцы с рутованием, версиями Андроидов, заменой номеронабирателя и т.д. хотелось бы оставить где-то сбоку. Хотелось чтобы для простого пользователя было все очень просто и понятно.
Так ведь есть же смартфоны со встроенной функцией записи?
Да, есть смартфоны, которые умеют записывать звонки штатной звонилкой, даже если у них Андроид 7, 8, 9 и 10. Это смартфоны брендов Oppo, Tecno, Realme. Т.е. штатная звонилка записывает разговор и складывает его в директорию.
У этих смартфонов свои оболочки — ColorOS, HiOS, Realme UI.
Для некоторых смартфонов Huawei и Honor можно использовать хаки с 4pda и также активировать функцию записи разговоров.
Сначала я не рассматривал такой вариант. Хотелось, чтобы одно приложение и звонки записывало, и передавало события по звонку и записи на сервер. Но если мы откажемся от одной функции, это же не значит, что мы совсем ничего делать не будем?
Поэтому можно использовать такой вариант: записывается звонок штатным средством, а события и загрузку записанных разговоров на удаленный сервер делаем нашим приложением.
При событиях звонка — можно делать разные полезные вещи — например, на входящий звонок получать инфо о звонящем клиенте. А после передачи записи ее можно прикрепить к клиенту в CRM, и распознать запись в текст, и какие-то еще полезные штуки.
Фиксация данных по звонку в CRM позволяет проанализировать работу менеджера: с кем разговаривал, когда и как долго, запись — о чем шел разговор. Конечно, приложение должно быть сервисом, который будет постоянно висеть и слушать события звонка. На некоторых оболочках происходит принудительная выгрузка из памяти резидентных сервисов, поэтому может понадобиться установить особое разрешение для приложения в режиме энергосбережения.
callagent
Результат всех моих изысканий и проб — в открытом доступе на гитхабе приложение callagent. Написано на Kotlin.
Простая схема работы callagent
Интерфейс callagent
Что делает callagent?
При первом запуске необходимо настроить приложение: указать свой номер и адрес вашего сервера, куда со смартфона будут приходить события, данные по звонку и запись разговора.
Что такое события и данные по звонку?
Это данные в формате JSON. События (events) — это начало звонка, ответ, завершение звонка.
Данные по звонку (calldata) — это все данные по звонку: время начала, длительность, номер звонящего (формируется по завершению звонка).
Как работает приложение?
Приложение висит как сервис — вы всегда видите в трее иконку callagent, а в штроке уведомлений будет висесть оповещение о запущенном сервисе. При звонке приложение отслеживает события и отправляет данные каждого события (events) на сервер.
По завершению звонка приложение формирует данные по звонку (calldata) и также отправляет на сервер.
Затем находит в указанной директории запись звонка (запись делается штатными средствами прошивки) и тоже отправляет на сервер.
Что делать с этими данными?
В репо есть пример сервера. Т.е. вы можете получить данные на сервере и обработать как вам надо.
Ниже скрин моего тестового веб-интерфейса, где видны все полученные данные, а также результат последующей передачи данных в CRM.
callagent неприхотлив, немного места в трее занимает, не сильно памяти кушает. Несколько пользователей активно пользуется каждый день, их шеф собирает много данных и все анализирует.
И так что в итоге?
Т.е. получается, что мы можем записывать служебные разговоры у менеджеров и передавать их на сервер, если выдадим им определенные смартфоны, включим в штатной звонилке запись звонков и поставим callagent, чтобы он передавал записи на сервер. А на сервере с данными по звонкам и записями делаем все по потребностям бизнеса.
Репозиторий callagent
В репозитории исходники приложения в открытом доступе, вы можете скачать готовую apk или собрать свою apk-шку из исходников.
В репо есть также список смартфонов, которые точно записывают разговоры.
P.S. В общем, эта заметка — сбор моих немногочисленных знаний по этой теме, приобретенных в попытке разобраться с записью звонков и сделать свое приложение записи. Не сильно разбираюсь в Android API, возможно что-то можно было бы сделать иначе.
Надеюсь, кому-то будет интересно и полезно. Вопросы, идеи, мысли буду рад обсудить — или в комментариях, или в телеграм-группе https://t.me/callagent
Использую в быту запись разговоров сейчас по умолчанию. Т.е. записываются все звонки — звонят ли банки, родные, обзвонщики. Иногда очень удобно переслушать, что говорили, что сообщили.
Неудобно, что записи на мобильных идут в одноканальном режиме. Может быть на каких-то смартфонах можно и двухканальную запись включить? Двухканальную запись было бы удобно отправить в Яндекс на распознавание диалога и получение записанного диалога в тексте.
Презентация callagent на Asterconf 2021, посмотреть презентацию.
Ссылки на заметки, которые побудили переложить свой опыт на хабр: