Тут на МВидео выложили статью про 10 лучших приложений для записи звонков на смартфонах, а на 4pda выложили статью, что Гугл совсем запрещает запись звонков на Андроиде. Тема мне близка, т.к. недавно занимался разработкой приложения для записи звонков и все вышло не так как хотелось. Что и как — далее подробно.
* Цель статьи рассказать свой путь и принять обратную связь и ваши идеи, мысли, размышления.
Кто я? Что я? Я разработчик, занимаюсь разработкой сервиса виртуальной АТС для корпоративных клиентов. И, конечно, есть клиенты, у которых есть не только офисные работники, которым достаточно поставить стационарные SIP-телефоны или раздать в офисе/складе/магазине SIP-DECT-трубки.
В чем проблема?
Есть менеджеры «в полях». Которые весь день на объектах, в разъездах. И постоянно на созвоне. На созвоне с клиентами, партнерами, офисным бекендом. С точки зрения шефа эти менеджеры на мобильниках немного бесконтрольны.
И хотелось бы знать с кем они разговаривают, как долго и о чем. Чисто хотя бы чтобы после разруливать конфликты проще было, кто что кому обещал или нет сделать. Обычно запись звонка, прослушанная обеими сторонами совместно, резко проясняет ситуацию. Хотя по разному бывает?
ЛУЧШАЯ В МИРЕ ЗВОНИЛКА 2 Часть! Если НЕ РАБОТАЕТ ЗАПИСЬ ЗВОНКОВ НА ТЕЛЕФОНЕ включи эти настройки
В общем, служебную запись звонков менеджеров в разъездах сделать не повредит.
Какие варианты решения? Разные операторы связи и виртуальных АТС предлагают и 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?
При первом запуске необходимо настроить приложение: указать свой номер и адрес вашего сервера, куда со смартфона будут приходить события, данные по звонку и запись разговора.
Что такое события и данные по звонку?
Это данные в формате JSON. События (events) — это начало звонка, ответ, завершение звонка.
Данные по звонку (calldata) — это все данные по звонку: время начала, длительность, номер звонящего (формируется по завершению звонка).
Как работает приложение?
Приложение висит как сервис — вы всегда видите в трее иконку callagent, а в штроке уведомлений будет висесть оповещение о запущенном сервисе. При звонке приложение отслеживает события и отправляет данные каждого события (events) на сервер.
По завершению звонка приложение формирует данные по звонку (calldata) и также отправляет на сервер.
Затем находит в указанной директории запись звонка (запись делается штатными средствами прошивки) и тоже отправляет на сервер.
Что делать с этими данными?
В репо есть пример сервера. Т.е. вы можете получить данные на сервере и обработать как вам надо.
Ниже скрин моего тестового веб-интерфейса, где видны все полученные данные, а также результат последующей передачи данных в CRM.
callagent неприхотлив, немного места в трее занимает, не сильно памяти кушает. Несколько пользователей активно пользуется каждый день, их шеф собирает много данных и все анализирует.
И так что в итоге?
Т.е. получается, что мы можем записывать служебные разговоры у менеджеров и передавать их на сервер, если выдадим им определенные смартфоны, включим в штатной звонилке запись звонков и поставим callagent, чтобы он передавал записи на сервер. А на сервере с данными по звонкам и записями делаем все по потребностям бизнеса.
Репозиторий callagent
В репозитории исходники приложения в открытом доступе, вы можете скачать готовую apk или собрать свою apk-шку из исходников.
В репо есть также список смартфонов, которые точно записывают разговоры.
P.S. В общем, эта заметка — сбор моих немногочисленных знаний по этой теме, приобретенных в попытке разобраться с записью звонков и сделать свое приложение записи. Не сильно разбираюсь в Android API, возможно что-то можно было бы сделать иначе.
Надеюсь, кому-то будет интересно и полезно. Вопросы, идеи, мысли буду рад обсудить — или в комментариях, или в телеграм-группе https://t.me/callagent
Использую в быту запись разговоров сейчас по умолчанию. Т.е. записываются все звонки — звонят ли банки, родные, обзвонщики. Иногда очень удобно переслушать, что говорили, что сообщили.
Неудобно, что записи на мобильных идут в одноканальном режиме. Может быть на каких-то смартфонах можно и двухканальную запись включить? Двухканальную запись было бы удобно отправить в Яндекс на распознавание диалога и получение записанного диалога в тексте.
Презентация callagent на Asterconf 2021, посмотреть презентацию.
Ссылки на заметки, которые побудили переложить свой опыт на хабр:
Источник: habr.com
Программа ACR: запись разговора на телефон Samsung
«ACR запись звонков» — бесплатное приложение, с помощью которого удобно записывать телефонные разговоры в ОС Android. В этом мини-обзоре мы расскажем, как записать разговор на телефонах таких брендов как Samsung и Huawei.
Примечание: имейте в виду: скрытая запись телефонных разговоров незаконна, и во многих странах — наказуема. Устанавливая ACR на телефон, вы соглашаетесь с условиями использования приложения и с тем, что запись разговоров в стране, где она производится, разрешена.
Как записать разговор на смартфоне (Samsung)
- Скачайте приложение ACR по ссылке.
- Установите программу на смартфон и запустите ее.
- Согласитесь со всеми разрешениями на доступ, условиями использования программы.
Как только вы звоните абоненту или принимаете звонок, активируется запись и сохранение файла на мобильное устройство. Поскольку запись на телефоне включается автоматически, никаких дополнительных действий со стороны пользователя не требуется.
Где в телефоне найти запись разговора
Зайдите в Настройки -> Запись -> Общие настройки -> Папка для записей. Чаще всего, в качестве места сохранения в ACR установлен следующий путь:
/storage/emulated/0/ACRCalls *
(* информация, как минимум, актуальна для смартфонов Samsung и Хуавей).
В ACR доступна сортировка по контактным данным, размеру файла. Сохраненные записи группируются по дате создания. Старые и короткие аудиофайлы (несколько секунд) удаляются автоматически.
В настройках программы также советуем указать удобный формат сохранения. На выбор доступно множество форматов, включая mp3, ogg и прочие.
Как прослушать запись телефонного разговора
Аудиозаписи телефонных разговоров хранятся в папке, указанной при сохранении (см. выше). Послушать можно любым аудиоплеером для Android. Кроме того, удобно прослушивать записи непосредственно через программу ACR, вкладки доступны на главном экране.
Для удобства, записи сгруппированы — Все, Входящие (вам кто-то звонил), Исходящие (вы звонили кому-то), Важно (отмеченные пользователем записи, которые требуют особого внимания).
Советы при записи
- Не используйте приложение ACR одновременно с другими программами для записи телефонных разговоров. Это может привести к системному конфликту Android или ошибке сохранения аудиофайлов.
- Не записывайте разговоры с абонентами, которые не дают на это согласие. Особенно это касается стран, в которых скрытая запись телефонных переговоров запрещена по закону
- Нет смысла указывать максимально качественный формат сохранения; Mp3 или m4a предостаточно для записи разговоров.
Источник: softdroid.net