Git Product home page Git Product logo

bcr's Introduction

Signing keys

All signed commits, tags, and artifacts I create are signed with one of the following keys. Starting in 2023, unless GPG is required, most things will be signed with the SSH key.

This repo is pushed to Codeberg, Gitlab, and Github. All three repos should be identical and show commits signed with the keys below.

SSH signing key

  • Public key: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDOe6/tBnO7xZhAWXRj3ApUYgn+XZ0wnQiXM8B7tPgv4

GPG signing key

  • Fingerprint: 2233C479609BDCEC43BE9232F6A3B19090EFF32C
  • Signing subkey: 4E8D2BD62F5B7EFC4264CE03A923B14FECFFB81E
  • Public key: gpg.asc

bcr's People

Contributors

anenasa avatar bogachenko avatar chenxiaolong avatar deekshithsh avatar dhd2280 avatar eleoxda avatar fnldstntn avatar groozchique avatar harinworks avatar hdzungx avatar htht2001 avatar hutsulcoder avatar marat2509 avatar microdjs avatar mosheh65 avatar musenq avatar nmayorga092 avatar nso73 avatar patrykmis avatar phyrz91 avatar pr0phesyer avatar pvagner avatar quyenvsp avatar rze0 avatar symbuzzer avatar thedeathdragon avatar twoomatch avatar uvzen avatar y0geshx avatar yee2 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bcr's Issues

How to save to cloud storage

The description mentions that it supports to save the recording to cloud storage. How can we save the recording to cloud storage directly ?
And if let's say network is not available, is there a fallback to store it locally on sd card or internal storage ?

Version Info under About Section

Suggestion : Clicking on Version (Under About Section) should take the user directly to the Release Page / fetch the latest version.

If Readme is target then it would be easy if the download page is linked at the top of the Readme.

Example

FormatBottomSheetBinding

FormatBottomSheetFragment.kt there is a problem with the file, FormatBottomSheetBinding missing

Add support for additional (low-bitrate, lossy) codecs

I know I said in the README that this would not be implemented, but it seems like a useful enough feature to implement. I'll consider adding lossy compression formats if Android's MediaCodec's encoders for them aren't buggy.

Tentative plan:

  • Add OGG/Opus (Android 10+ only) and OGG/Vorbis (EDIT: M4A/AAC, see below) codecs
  • FLAC will remain the default
  • Both OGG/Opus and OGG/Vorbis will detail to a high bitrate for better quality, but the user will be able to change it

What will not be implemented:

  • Changing the sample rate. I don't want to deal with broken downsampling on some devices so recording always happens at the native sample rate, regardless of which codec is used to encode the output file. (Eg. Pixel 6 Pro's native sample rate for VOICE_LINE is 48kHz)
  • mp3, m4a/aac (EDIT: see below), or any other codec that might be patent encumbered in some countries
  • AMR-NB, AMR-WB, or any other extremely low bitrate codecs
  • wav because the audio is exactly the same as flac, but the file size is larger

Incompatibility due to targeting Android 13 "Tiramisu" as the target

Device: Redmi 5, Redmi Note 4
Android: 11, 12 (unofficial LineageOS builds)

After flashing the Magisk module, the application can't be found inside the app drawer. You can locate the APK under system/priv-app, but it's not functioning.

Curiously, if you manually try to sideload the APK using ADB, you'll get the following error:

adb: failed to install app-release.apk: Failure [INSTALL_FAILED_OLDER_SDK: Failed parse during installPackageLI: /data/app/vmdl822031778.tmp/base.apk (at Binary XML file line #7): Requires development platform Tiramisu but this is a release platform.]

I can see that android:compileSdkVersion is "32" and android:compileSdkVersionCodename is "Tiramisu" after decompiling the APK.

===

Device: Google Pixel 4a
Android: 13 Beta 2

If you manually try to sideload the APK using ADB, you'll get the following error:

adb: failed to install app-release.apk: Failure [INSTALL_FAILED_TEST_ONLY: installPackageLI]

I can only sideload it under Android 13 using the -t parameter (allow test packages).

The Pixel 4a's bootloader is locked, so I can't test the Magisk module yet. Will do so after backing up data from the device.

===

Android app development isn't my forte, but I think targeting Tiramisu is the primary issue here.

It does not record. Realme 7 Pro, custom rom

Hello, I installed the latest version 1.15 in Magisk.
After rebooting, I enabled recording, gave permissions.
After making a call, the call file is not created. The application does not record.

Realme 7 Pro
Android 12, custom rom RiceDroid Version 2.5 vanilla

So far I have used Axets Call Recorder, but it did not always record.
Below is a logcat file of a call attempt.

EDIT

Add contact name to filename

I may have misunderstood or you may have misunderstood. I want the name of a person in my phonebook to be in the audio recording file. If it's not in my phonebook it already has a phone number. Did you understand me?
Thank you.

Add Option for filenames

it would be great to be able to have the outgoing/incoming caller name/number included in the file name so you know what file you might need to look for later for reference.

Recordings Overlapping

Hi @chenxiaolong

I tried latest v1.4 too but the audio recording overlapping is still there!

Say If I record for a 20 seconds long call then sometimes it's the recorded duration only getting 7 seconds, sometimes it's 11 seconds and sometimes whole 20 seconds!

When the duration reducing say for 7 seconds long recording then the remaining recording of 13 seconds seems getting overlapped between 6th to 7th second of the recorded audio!

I've also allowed BCR to run in the background, So there's no issue with getting it killed in background.

Internet Calls

Great program. It would be great if you can add the functionality of recording internet calls such as whatsapp, viber etc...

Jumps in recorded file.

Hi,
Thanks for this project efforts!

Recorded files with (all version including Version 1.6) sounds have random small jumps (sounds like hiccups)
It seems there is no problem with the BCR-1.4.r3.gaa21633-debug-dump_raw_wave_16kHz.zip you provided in other issue#39.

I have Redmi K30 Pro (Poco F2 Pro) - with LOS 19.1 (Android 12)
Sample file having jumps - errors- in it:
sample error from recorded sound
Original recorded file is 1 minutes 10 sec - this sample is from ~27seconds where the error started, and as you can hear after a 5 seconds sounds good again as it was earlier and after.

This is the Codec debug info:
`OMX.qcom.video.encoder.heic:

  • Canonical name: OMX.qcom.video.encoder.heic
  • Is alias: false
  • Is hardware accelerated: true
  • Is software only: false
  • Is vendor: true
  • Supported types:
    • image/vnd.android.heic

OMX.qcom.video.encoder.avc:

  • Canonical name: OMX.qcom.video.encoder.avc
  • Is alias: false
  • Is hardware accelerated: true
  • Is software only: false
  • Is vendor: true
  • Supported types:
    • video/avc

OMX.qcom.video.encoder.h263sw:

  • Canonical name: OMX.qcom.video.encoder.h263sw
  • Is alias: false
  • Is hardware accelerated: true
  • Is software only: false
  • Is vendor: true
  • Supported types:
    • video/3gpp

OMX.qcom.video.encoder.hevc:

  • Canonical name: OMX.qcom.video.encoder.hevc
  • Is alias: false
  • Is hardware accelerated: true
  • Is software only: false
  • Is vendor: true
  • Supported types:
    • video/hevc

OMX.qcom.video.encoder.hevc.cq:

  • Canonical name: OMX.qcom.video.encoder.hevc.cq
  • Is alias: false
  • Is hardware accelerated: true
  • Is software only: false
  • Is vendor: true
  • Supported types:
    • video/hevc

OMX.qcom.video.encoder.mpeg4sw:

  • Canonical name: OMX.qcom.video.encoder.mpeg4sw
  • Is alias: false
  • Is hardware accelerated: false
  • Is software only: false
  • Is vendor: true
  • Supported types:
    • video/mp4v-es

OMX.qcom.video.encoder.vp8:

  • Canonical name: OMX.qcom.video.encoder.vp8
  • Is alias: false
  • Is hardware accelerated: true
  • Is software only: false
  • Is vendor: true
  • Supported types:
    • video/x-vnd.on2.vp8

c2.android.aac.encoder:

  • Canonical name: c2.android.aac.encoder
  • Is alias: false
  • Is hardware accelerated: false
  • Is software only: true
  • Is vendor: false
  • Supported types:
    • audio/mp4a-latm
      • Bitrate range: [8000, 510000]
      • Sample rate ranges: [[8000, 8000], [11025, 11025], [12000, 12000], [16000, 16000], [22050, 22050], [24000, 24000], [32000, 32000], [44100, 44100], [48000, 48000]]
      • Sample rates: [8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000]

OMX.google.aac.encoder:

  • Canonical name: c2.android.aac.encoder
  • Is alias: true
  • Is hardware accelerated: false
  • Is software only: true
  • Is vendor: false
  • Supported types:
    • audio/mp4a-latm
      • Bitrate range: [8000, 510000]
      • Sample rate ranges: [[8000, 8000], [11025, 11025], [12000, 12000], [16000, 16000], [22050, 22050], [24000, 24000], [32000, 32000], [44100, 44100], [48000, 48000]]
      • Sample rates: [8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000]

c2.android.amrnb.encoder:

  • Canonical name: c2.android.amrnb.encoder
  • Is alias: false
  • Is hardware accelerated: false
  • Is software only: true
  • Is vendor: false
  • Supported types:
    • audio/3gpp
      • Bitrate range: [4750, 12200]
      • Sample rate ranges: [[8000, 8000]]
      • Sample rates: [8000]

OMX.google.amrnb.encoder:

  • Canonical name: c2.android.amrnb.encoder
  • Is alias: true
  • Is hardware accelerated: false
  • Is software only: true
  • Is vendor: false
  • Supported types:
    • audio/3gpp
      • Bitrate range: [4750, 12200]
      • Sample rate ranges: [[8000, 8000]]
      • Sample rates: [8000]

c2.android.amrwb.encoder:

  • Canonical name: c2.android.amrwb.encoder
  • Is alias: false
  • Is hardware accelerated: false
  • Is software only: true
  • Is vendor: false
  • Supported types:
    • audio/amr-wb
      • Bitrate range: [6600, 23850]
      • Sample rate ranges: [[16000, 16000]]
      • Sample rates: [16000]

OMX.google.amrwb.encoder:

  • Canonical name: c2.android.amrwb.encoder
  • Is alias: true
  • Is hardware accelerated: false
  • Is software only: true
  • Is vendor: false
  • Supported types:
    • audio/amr-wb
      • Bitrate range: [6600, 23850]
      • Sample rate ranges: [[16000, 16000]]
      • Sample rates: [16000]

c2.android.flac.encoder:

  • Canonical name: c2.android.flac.encoder
  • Is alias: false
  • Is hardware accelerated: false
  • Is software only: true
  • Is vendor: false
  • Supported types:
    • audio/flac
      • Bitrate range: [1, 21000000]
      • Sample rate ranges: [[7350, 192000]]
      • Sample rates: null

OMX.google.flac.encoder:

  • Canonical name: c2.android.flac.encoder
  • Is alias: true
  • Is hardware accelerated: false
  • Is software only: true
  • Is vendor: false
  • Supported types:
    • audio/flac
      • Bitrate range: [1, 21000000]
      • Sample rate ranges: [[7350, 192000]]
      • Sample rates: null

c2.android.opus.encoder:

  • Canonical name: c2.android.opus.encoder
  • Is alias: false
  • Is hardware accelerated: false
  • Is software only: true
  • Is vendor: false
  • Supported types:
    • audio/opus
      • Bitrate range: [6000, 510000]
      • Sample rate ranges: [[8000, 8000], [12000, 12000], [16000, 16000], [24000, 24000], [48000, 48000]]
      • Sample rates: [8000, 12000, 16000, 24000, 48000]

c2.android.avc.encoder:

  • Canonical name: c2.android.avc.encoder
  • Is alias: false
  • Is hardware accelerated: false
  • Is software only: true
  • Is vendor: false
  • Supported types:
    • video/avc

OMX.google.h264.encoder:

  • Canonical name: c2.android.avc.encoder
  • Is alias: true
  • Is hardware accelerated: false
  • Is software only: true
  • Is vendor: false
  • Supported types:
    • video/avc

c2.android.h263.encoder:

  • Canonical name: c2.android.h263.encoder
  • Is alias: false
  • Is hardware accelerated: false
  • Is software only: true
  • Is vendor: false
  • Supported types:
    • video/3gpp

OMX.google.h263.encoder:

  • Canonical name: c2.android.h263.encoder
  • Is alias: true
  • Is hardware accelerated: false
  • Is software only: true
  • Is vendor: false
  • Supported types:
    • video/3gpp

c2.android.hevc.encoder:

  • Canonical name: c2.android.hevc.encoder
  • Is alias: false
  • Is hardware accelerated: false
  • Is software only: true
  • Is vendor: false
  • Supported types:
    • video/hevc

c2.android.mpeg4.encoder:

  • Canonical name: c2.android.mpeg4.encoder
  • Is alias: false
  • Is hardware accelerated: false
  • Is software only: true
  • Is vendor: false
  • Supported types:
    • video/mp4v-es

OMX.google.mpeg4.encoder:

  • Canonical name: c2.android.mpeg4.encoder
  • Is alias: true
  • Is hardware accelerated: false
  • Is software only: true
  • Is vendor: false
  • Supported types:
    • video/mp4v-es

c2.android.vp8.encoder:

  • Canonical name: c2.android.vp8.encoder
  • Is alias: false
  • Is hardware accelerated: false
  • Is software only: true
  • Is vendor: false
  • Supported types:
    • video/x-vnd.on2.vp8

OMX.google.vp8.encoder:

  • Canonical name: c2.android.vp8.encoder
  • Is alias: true
  • Is hardware accelerated: false
  • Is software only: true
  • Is vendor: false
  • Supported types:
    • video/x-vnd.on2.vp8

c2.android.vp9.encoder:

  • Canonical name: c2.android.vp9.encoder
  • Is alias: false
  • Is hardware accelerated: false
  • Is software only: true
  • Is vendor: false
  • Supported types:
    • video/x-vnd.on2.vp9

OMX.google.vp9.encoder:

  • Canonical name: c2.android.vp9.encoder
  • Is alias: true
  • Is hardware accelerated: false
  • Is software only: true
  • Is vendor: false
  • Supported types:
    • video/x-vnd.on2.vp9
      `

How can i provide debug info to you?

Can the oga and m4a filename extensions be changed to ogg and aac?

They are more common file extensions. The problem is that my Android file Explorer does not recognise oga as an audio file and suggest suitable media players. Also other apps do not detect them as audio when scanning folders, which is important as BCR itself not offer a UI to view and playback recordings.

Failed to record call

Unable to retrieve audiorecod pointer For framecount()
Screenshot_20220717-222524_MX_Player_Pro

Cant record call and have this error message...
I am on lineageos 17.1 (android 10) . Using BCR 1.15

I try change some settings but nothing happened..

white screen

I test BCR on oneplus 10 pro last Europe update Android 12
I have a white screen when i start apps.

I use magisk for installation and 1.9 version

Can the app indicate native sample rate?

The github description mentions sampling at native rate, so it sounds like the app already has a way of detecting this. Is it possible to display a line of text indicating the native call sample rate at the screen where output format is selected? I suppose if you're really enthusiastic, you could change the text on the buttons to something like "16kHz (native)".
It's hard for the user to know and wasteful to sample at a higher rate than the call outputs.

Ability to record calls by contact.

I know, I know, KISS. An issue I have, however, is that I don't want to record all of my calls. I really only want to record calls from unknown numbers and from a few contacts.

I already checked the non-features list, and this isn't in it.

Apologies if this isn't the right place to request a feature.

Can't tap on seek bar nor total duration is showing

I'm on BCR v1.2 and can't tap on the seek bar(audio progress bar) in any media player while playing the recorded calls, due to this not able to tap on a timestamp to play recording at a desired time.
Also the total duration of audio is not showing in the player.

Not working on OOS 12 OP8

When I open the system app after installing it through Magisk.... All I get is a grey screen without any options.

Screenshot_2022-05-22-09-49-48-95_88a63a93497fdafe6b6f2215ec875412
Screenshot_2022-05-22-09-49-57-04_b783bf344239542886fee7b48fa4b892
Screenshot_2022-05-22-09-50-22-52_fc704e6b13c4fb26bf5e411f75da84f2

Create a call recorder that doesn't need to be a system app

Hi
I want to change this repo to create a call recorder that doesn't need to be a system app. Could you please give me some advice?
First of all I tried to change creating instance of AudioRecord. One time I tried using MediaRecorder.AudioSource.VOICE_COMMUNICATION and another time I tried using MediaRecorder.AudioSource.VOICE_RECOGNITION but none of them worked.
It just created a file but when I play it doesn't contain any sound.
I know that you have good knowledge about creating call recorder apps. My device is rooted and my requirement is to create a call recorder app that doesn't need to be a system app. It would be thankful if you give some advice and help me to proceed and find a way.

Thanks in advance

caller ID

please Write the caller ID to the record file name. I'm having trouble distinguishing. It is not clear who is calling.

File output looks more complex (no real "basic")

Sorry bro, i really appreciate this app (now also file retention, so good!) but file output looks very complex atm.
Also, by default is 48khz but if not in error only some pro pixel support this (so, unuseful for most others device).
Imho, can be simply optimized with 3 quality levels: low, medium, full. No more, no less 😅
Screenshot_20220621-180706_BCR

Problems with bluetooth

BCR works great but I have a problem with bluetooth connections. I am using it on Motorola edge pro + magisk. Connected with bluetooth headphones but even more frequently with the bluetooth of the car, after 30/60 seconds the interlocutor no longer hears my voice while I hear well and BCR records everything perfectly both voices. Is there a solution?

app opens to a blank screen

Been using BCR for a while on my OP 8T and it has been great. Just magisk rooted my realme GT 2 Pro on Android 12 (A.17 stock ROM) and installed BCR through magisk but the app just opens to a blank screen. Only other module I am using so far is USNF. Any advice?

edit: Sorry I should probably read the other issues or at least the README before I post. Seems like someone else had this exact issue on a OnePlus 9 Pro so looks like it also applies to some realme phones as well (but not to my OP 8T on android 12 oddly) Tried the suggestion of removing BCR module and rebooting, reflashing the module in magisk then extracting the apk from the zip and installing normally before final reboot. This worked like a charm good to go. Thanks for the great work!

White screen on OnePlus 9 Pro

Hi there

I simply get a white screen when starting the app. I can kill it and start it again, however it just results in the same white screen.

Phone: OnePlus 9 Pro
BCR 1.15
Magisk 25.1
Android 12
Firmware Stock LE21231_11.C.48

Any way I can help with debugging?

I seems to be the same issue mentioned in #8 but even with only the bcr module, no deny list and no zygisk I still get the white screen.

Maybe it has to do with the OnePlus Multi User Features or Parallel Apps space?

Interesting is that in the folder /data/user/0/com.chiller.3.bcr exists with two empty folders cache and code cache, but no folder com.chiller.3.bcr does not exist in /data/user_de/0/

Thanks

Empty recording

Hi, after making a call, I get a record file with [nothing.(<10KB)]
I use this mod apk or magisk mod and also get Empty recording, realme x2 with pixel extended 4.3 android12 . (https://github.com/jacopotediosi/GoogleDialerMod/issues/12)
https://github.com/jacopotediosi/GoogleDialerMod-Magisk
How can I debug this, thanks!
logcat.txt

05-27 23:58:33.989 D/[email protected](768): Failed to fetch the lookup information of the device 00000004
05-27 23:58:33.989 D/ACDB-LOADER(768): Error: ACDB AFE returned = -19
05-27 23:58:33.989 D/ACDB-LOADER(768): ACDB -> AUDIO_SET_AFE_CAL cal_type[17] acdb_id[4]
05-27 23:58:33.989 D/ACDB-LOADER(768): ACDB -> send_hw_delay : acdb_id = 4 path = 1
05-27 23:58:33.989 D/ACDB-LOADER(768): ACDB -> ACDB_AVSYNC_INFO: ACDB_CMD_GET_DEVICE_PROPERTY
05-27 23:58:33.989 D/audio_hw_primary(768): enable_audio_route: apply mixer and update path: incall-rec-uplink-and-downlink
05-27 23:58:33.989 D/audio_route(768): Apply path: incall-rec-uplink-and-downlink
05-27 23:58:33.989 D/audio_hw_primary(768): select_devices: acdb_id_in: 41
05-27 23:58:33.989 D/audio_hw_primary(768): select_devices: done
05-27 23:58:33.990 W/OggWriter(3831): failed to read next buffer

Doesn't record when number withheld

If the recipient withholds their phone number (also known as private number), the app won't record the incoming phone call. Apart from that, your app is perfect.

I'm unsure about other countries, but in Britain you can test this (withhold your phone number) by prefixing 141 before the dialing mobile number that bcr is installed on.

Ability to send voice from an audio file instead of microphone and record

Hello,
Thanks for your effort behind this app. It is a lovely app ❤️ .
I am unsure if this place is relevant to asking my question or not. I need to send a voice from another source than the phone's microphone, like an audio file. Is it possible to do that with a rooted android? or does it need modifying the android kernel?

[Question] Custom rom > root > install BCR > unroot

Can it be installed by placing its files in root/system folder using file explorer with root permission, and after installing BCR, can magisk be uninstalled? So that BCR can work like system app, but without magisk.

Basically, this app is perfect; but with magisk, few banking apps are not working properly.

Thanks

Not working on Android 12, LOS+microG

What happened

  • Nothing at all (no recordings, no empty files, no errors)

What did I do?

  • enabled call recording
  • selected output directory
  • disabled buttery optimization
  • call on 123456 number to get input

Other

  • Tested with both enabled and disabled VOC_REC_* mixers in /vendor/etc
  • Axet's call recorder works weirdly, maybe because it's 2 mixers in /vendor/etc/mixer_paths_tasha.xml. If to play with switches, it may start working but not for long. Also it seems that skip silence somehow affects recording too
  • Mixer info is at the end of the issue
  • ROM: https://download.lineage.microg.org/cheeseburger/

DeviceInfo

build.board: msm8998
build.bootloader: unknown
build.brand: OnePlus
build.cpu_abi: arm64-v8a
build.cpu_abi2: 
build.device: OnePlus5
build.display: lineage_cheeseburger-userdebug 12 SP2A.220505.002 eng.root.20220608.224223 dev-keys
build.fingerprint: OnePlus/OnePlus5/OnePlus5:10/QKQ1.191014.012/2010292059:user/release-keys
build.hardware: qcom
build.host: a6c8e04ec309
build.id: SP2A.220505.002
build.manufacturer: OnePlus
build.model: ONEPLUS A5000
build.product: OnePlus5
build.radio: unknown
build.serial: unknown
build.tags: dev-keys
build.time: 1654728040000
build.type: userdebug
build.user: root
version.codename: REL
version.incremental: eng.root.20220608.224223
version.release: 12
version.sdk_int: 32

Logcat

06-16 20:10:56.584 I/Telecom (1498): InCallServiceBindingConnection: Attempting to bind to InCall [ComponentInfo{com.chiller3.bcr/com.chiller3.bcr.RecorderInCallService} supportsExternal? false supportsSelfMg?false], with Intent { act=android.telecom.InCallService cmp=com.chiller3.bcr/.RecorderInCallService (has extras) }: TSI.pC->CM.fOCP->CM.sOCPA->CM.dSMCP->CM.dSPA->CM.pASP@BQc
06-16 20:10:56.600 I/Telecom (1498): InCallController: onConnected to ComponentInfo{com.chiller3.bcr/com.chiller3.bcr.RecorderInCallService}: ICSBC.oSC(ccb)@BQg
06-16 20:10:56.601 I/Telecom (1498): InCallController: Adding 1 calls to InCallService after onConnected: ComponentInfo{com.chiller3.bcr/com.chiller3.bcr.RecorderInCallService}, including external calls: ICSBC.oSC(ccb)@BQg
06-16 20:10:56.663 I/Telecom (1498): InCallController: Components updated: [ComponentInfo{com.android.dialer/com.android.incallui.InCallServiceImpl}, ComponentInfo{com.chiller3.bcr/com.chiller3.bcr.RecorderInCallService}]: NOCBIR.oR@BRE
06-16 20:10:56.736 I/Telecom (1498): InCallController: Components updated: [ComponentInfo{com.android.dialer/com.android.incallui.InCallServiceImpl}, ComponentInfo{com.chiller3.bcr/com.chiller3.bcr.RecorderInCallService}]: (...->CS.crCo->H.CS.crCo->H.CS.crCo.pICR)->CSW.hCCC(cap/cast)@E-E-BRI
06-16 20:10:56.737 I/Telecom (1498): InCallController: Components updated: [ComponentInfo{com.android.dialer/com.android.incallui.InCallServiceImpl}, ComponentInfo{com.chiller3.bcr/com.chiller3.bcr.RecorderInCallService}]: (...->CS.crCo->H.CS.crCo->H.CS.crCo.pICR)->CSW.hCCC(cap/cast)@E-E-BRI
06-16 20:10:56.740 I/Telecom (1498): InCallController: Components updated: [ComponentInfo{com.android.dialer/com.android.incallui.InCallServiceImpl}, ComponentInfo{com.chiller3.bcr/com.chiller3.bcr.RecorderInCallService}]: (...->CS.crCo->H.CS.crCo->H.CS.crCo.pICR)->CSW.hCCC(cap/cast)@E-E-BRI
06-16 20:10:56.741 I/Telecom (1498): InCallController: Components updated: [ComponentInfo{com.android.dialer/com.android.incallui.InCallServiceImpl}, ComponentInfo{com.chiller3.bcr/com.chiller3.bcr.RecorderInCallService}]: (...->CS.crCo->H.CS.crCo->H.CS.crCo.pICR)->CSW.hCCC(cap/cast)@E-E-BRI
06-16 20:10:56.744 I/Telecom (1498): InCallController: Components updated: [ComponentInfo{com.android.dialer/com.android.incallui.InCallServiceImpl}, ComponentInfo{com.chiller3.bcr/com.chiller3.bcr.RecorderInCallService}]: (...->CS.crCo->H.CS.crCo->H.CS.crCo.pICR)->CSW.hCCC(cap/cast)@E-E-BRI
06-16 20:10:56.744 I/Telecom (1498): InCallController: Components updated: [ComponentInfo{com.android.dialer/com.android.incallui.InCallServiceImpl}, ComponentInfo{com.chiller3.bcr/com.chiller3.bcr.RecorderInCallService}]: (...->CS.crCo->H.CS.crCo->H.CS.crCo.pICR)->CSW.hCCC(cap/cast)@E-E-BRI
06-16 20:10:56.745 I/Telecom (1498): InCallController: Components updated: [ComponentInfo{com.android.dialer/com.android.incallui.InCallServiceImpl}, ComponentInfo{com.chiller3.bcr/com.chiller3.bcr.RecorderInCallService}]: (...->CS.crCo->H.CS.crCo->H.CS.crCo.pICR)->CSW.hCCC(cap/cast)@E-E-BRI
06-16 20:10:56.751 I/Telecom (1498): InCallController: Components updated: [ComponentInfo{com.android.dialer/com.android.incallui.InCallServiceImpl}, ComponentInfo{com.chiller3.bcr/com.chiller3.bcr.RecorderInCallService}]: (...->CS.crCo->H.CS.crCo->H.CS.crCo.pICR)->CSW.hCCC(cap/cast)@E-E-BRI
06-16 20:10:56.755 I/Telecom (1498): InCallController: Components updated: [ComponentInfo{com.android.dialer/com.android.incallui.InCallServiceImpl}, ComponentInfo{com.chiller3.bcr/com.chiller3.bcr.RecorderInCallService}]: CSW.sSH(cap)@BRk
06-16 20:10:56.756 I/Telecom (1498): InCallController: Components updated: [ComponentInfo{com.android.dialer/com.android.incallui.InCallServiceImpl}, ComponentInfo{com.chiller3.bcr/com.chiller3.bcr.RecorderInCallService}]: CSW.rE(cap)@BRo
06-16 20:10:56.758 I/Telecom (1498): InCallController: Components updated: [ComponentInfo{com.android.dialer/com.android.incallui.InCallServiceImpl}, ComponentInfo{com.chiller3.bcr/com.chiller3.bcr.RecorderInCallService}]: CSW.rE(cap)@BRs
06-16 20:10:56.759 I/Telecom (1498): InCallController: Components updated: [ComponentInfo{com.android.dialer/com.android.incallui.InCallServiceImpl}, ComponentInfo{com.chiller3.bcr/com.chiller3.bcr.RecorderInCallService}]: CSW.sSH(cap)@BRw
06-16 20:10:56.761 I/Telecom (1498): InCallController: Components updated: [ComponentInfo{com.android.dialer/com.android.incallui.InCallServiceImpl}, ComponentInfo{com.chiller3.bcr/com.chiller3.bcr.RecorderInCallService}]: CSW.rE(cap)@BR0
06-16 20:10:56.763 I/Telecom (1498): InCallController: Components updated: [ComponentInfo{com.android.dialer/com.android.incallui.InCallServiceImpl}, ComponentInfo{com.chiller3.bcr/com.chiller3.bcr.RecorderInCallService}]: CSW.rE(cap)@BR4
06-16 20:10:56.867 I/Telecom (1498): InCallController: Components updated: [ComponentInfo{com.android.dialer/com.android.incallui.InCallServiceImpl}, ComponentInfo{com.chiller3.bcr/com.chiller3.bcr.RecorderInCallService}]: CSW.sSH(cap)@BVo
06-16 20:10:56.869 I/Telecom (1498): InCallController: Components updated: [ComponentInfo{com.android.dialer/com.android.incallui.InCallServiceImpl}, ComponentInfo{com.chiller3.bcr/com.chiller3.bcr.RecorderInCallService}]: CSW.sCDN(cap)@BVw
06-16 20:10:56.870 I/Telecom (1498): InCallController: Components updated: [ComponentInfo{com.android.dialer/com.android.incallui.InCallServiceImpl}, ComponentInfo{com.chiller3.bcr/com.chiller3.bcr.RecorderInCallService}]: CSW.rE(cap)@BV4
06-16 20:10:56.871 I/Telecom (1498): InCallController: Components updated: [ComponentInfo{com.android.dialer/com.android.incallui.InCallServiceImpl}, ComponentInfo{com.chiller3.bcr/com.chiller3.bcr.RecorderInCallService}]: CSW.rE(cap)@BV8
06-16 20:10:59.656 I/Telecom (1498): InCallController: Components updated: [ComponentInfo{com.android.dialer/com.android.incallui.InCallServiceImpl}, ComponentInfo{com.chiller3.bcr/com.chiller3.bcr.RecorderInCallService}]: CSW.sCC(cap)@Beg
06-16 20:10:59.664 I/Telecom (1498): InCallController: Components updated: [ComponentInfo{com.android.dialer/com.android.incallui.InCallServiceImpl}, ComponentInfo{com.chiller3.bcr/com.chiller3.bcr.RecorderInCallService}]: CSW.sSH(cap)@Bek
06-16 20:10:59.670 I/Telecom (1498): InCallController: Components updated: [ComponentInfo{com.android.dialer/com.android.incallui.InCallServiceImpl}, ComponentInfo{com.chiller3.bcr/com.chiller3.bcr.RecorderInCallService}]: CSW.rE(cap)@Bes
06-16 20:10:59.676 I/Telecom (1498): InCallController: Components updated: [ComponentInfo{com.android.dialer/com.android.incallui.InCallServiceImpl}, ComponentInfo{com.chiller3.bcr/com.chiller3.bcr.RecorderInCallService}]: CSW.rE(cap)@Be0
06-16 20:11:06.623 I/Telecom (1498): InCallController: Components updated: [ComponentInfo{com.android.dialer/com.android.incallui.InCallServiceImpl}, ComponentInfo{com.chiller3.bcr/com.chiller3.bcr.RecorderInCallService}]: CSW.sSH(cap)@BhQ
06-16 20:11:06.625 I/Telecom (1498): InCallController: Components updated: [ComponentInfo{com.android.dialer/com.android.incallui.InCallServiceImpl}, ComponentInfo{com.chiller3.bcr/com.chiller3.bcr.RecorderInCallService}]: CSW.sDc(cap)@BhU
06-16 20:11:06.642 I/Telecom (1498): InCallController: Components updated: [ComponentInfo{com.android.dialer/com.android.incallui.InCallServiceImpl}, ComponentInfo{com.chiller3.bcr/com.chiller3.bcr.RecorderInCallService}]: CSW.sCC(cap)@Bhg
06-16 20:11:06.644 I/Telecom (1498): InCallController: Components updated: [ComponentInfo{com.android.dialer/com.android.incallui.InCallServiceImpl}, ComponentInfo{com.chiller3.bcr/com.chiller3.bcr.RecorderInCallService}]: CSW.sCC(cap)@Bhs
06-16 20:11:08.650 I/Telecom (1498): InCallController: ICSBC#disconnect: unbinding after 12066 ms;[ComponentInfo{com.chiller3.bcr/com.chiller3.bcr.RecorderInCallService} supportsExternal? false supportsSelfMg?false]. isCrashed: false: CSW.rC->CM.pR->ICC.oCR(cap)@Bhw
06-16 20:11:08.660 I/Telecom (1498): InCallController: onDisconnected from ComponentInfo{com.chiller3.bcr/com.chiller3.bcr.RecorderInCallService}: CSW.rC->CM.pR->ICC.oCR(cap)@Bhw

Mixer

    <!-- Incall Recording -->
    <ctl name="MultiMedia9 Mixer VOC_REC_UL" value="0" />
    <ctl name="MultiMedia9 Mixer VOC_REC_DL" value="0" />
    <ctl name="MultiMedia8 Mixer VOC_REC_UL" value="0" />
    <ctl name="MultiMedia8 Mixer VOC_REC_DL" value="0" />
    <!-- Incall Recording End -->
--
    <path name="incall-rec-uplink">
        <ctl name="MultiMedia9 Mixer VOC_REC_UL" value="0" />
    </path>
--
    <path name="incall-rec-uplink-compress">
        <ctl name="MultiMedia8 Mixer VOC_REC_UL" value="0" />
    </path>
--
    <path name="incall-rec-downlink">
        <ctl name="MultiMedia9 Mixer VOC_REC_DL" value="0" />
    </path>
--
    <path name="incall-rec-downlink-compress">
        <ctl name="MultiMedia8 Mixer VOC_REC_DL" value="0" />
    </path>

Filename inconsistent

File name do not contain phone contact name.
Can u fix this? Maybe something like datetime-contact (name if exist or number)?
Atm if u have a lot of files isn't simple to find one specific record.

Ty

Edit: ok, add contact permission. Now contact name is present, sorry.
Eg:

Date.    Time.  ??? T.Z. out number.      ContactName
20220614_113922.459+0200_out_800003322__PosteItaliane_

App crashing upon trying to change the output directory

I'm on latest v.1.15,,, earlier when I was somwhere around 1.10(can't remember the exact version) I was able to change the output directory normally. Now the app closes instantly. I'm on android 11. Btw I've been using this app since a long time, it worked really fine. Please guide.

Buy you a coffee

How can I buy you a coffee or otherwise make a small token donation to say thank you for your work? 🤙

Automatic deletion of old recordings

Contrary to the list of non-features, the ability to automatically delete old recordings is essential. The reason is that it will consume all of the storage space on the device over time, eventually leading to system failures, which is not acceptable.

It is not necessary to have substantial ability to control the feature, it can be hardcoded to delete all recordings that are over one month old.

Themed Icon Support

Hi Andrew!

It was really great for working together n helping to fix the Audio Overlapping Issue :)

As that major issue has been fixed, I would suggest you some minor enhancement for the app.

  1. As currently the BCR doesn't support Themed Icon, You can look into this for future updates.
    I've attached the screenshot, As you can see WhatsApp and other app icons are themed according to the System Theme.
    IMG_20220614_204017.jpg

  2. For me the app hasn't permission for the contact and that's why it wasn't saving contacts name in the recordings. When I provided the permission manually then It was saving the Contacts name with recordings.
    You can mention it in GitHub's Readme.md for manually providing Contacts Permission will record the contacts name in recordings or an option within the app that will specifically ask for the same.

Best Regards,
Yash

Unable to create new Folder

Hello. Thank you very much for your successful project. The problem is : It saves successfully after selecting folder for recording in local storage. However, after performing cloud synchronization with third-party applications, the local folder can be deleted.When the local folder is deleted, the BCR cannot create the local folder again, so it does not record. I have to recreate the local folder each time. Can this situation be resolved? Thank you and have nice work.

call information

Your program is beautiful. It will be very nice to find the caller information, timestamp, who called and incoming or outgoing call information on the file name where the call is saved.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.