Business Client need Mobile App Development

Contact person: Business Client

Phone:Show

Email:Show

Location: Santo Domingo, Dominican Republic

Budget: Recommended by industry experts

Time to start: As soon as possible

Project description:
"I need the open-source Linphone client modified please read [login to view URL]



Main Linphone Android GitHub (THIS IS THE ONE YOU MODIFY)
Linphone Android App
GitHub:
[login to view URL]
This is the official Linphone Android client (Kotlin + Java) where you will enforce audio routing.

Key Submodules You MUST Modify (Critical)
Linphone uses native C/C++ + Java/Kotlin, so forcing audio jack requires changes in both layers.

Android Audio Routing (Java / Kotlin layer)
Path
linphone-android/
└── app/src/main/java/org/linphone/core/tools/
Files to edit
• [login to view URL]
• [login to view URL]
• [login to view URL]
What to FORCE here
You must hard-lock wired headset:
[login to view URL] = false
[login to view URL]()
[login to view URL] = false
[login to view URL] = AudioManager.MODE_IN_COMMUNICATION
Then reject all routes except WIRED_HEADSET / WIRED_HEADPHONES.

Core Audio Engine (C/C++) – HARD ENFORCEMENT
Path
linphone-android/
└── submodules/linphone/
└── coreapi/
Files to modify
coreapi/audio_device.c
coreapi/audio_device.h
What to do
Disable everything except AUDIO_DEVICE_WIRED_HEADSET
Example logic:
if (device->type != LinphoneAudioDeviceTypeWiredHeadset) {
return FALSE; // reject speaker, earpiece, bluetooth
}

MediaStreamer2 (MOST IMPORTANT FOR LOOPBACK)
Path
linphone-android/
└── submodules/mediastreamer2/
Files to modify
src/android/[login to view URL]
src/android/androidsound.h
Why this matters
This layer talks directly to Audio HAL.
You can force:
• Input → wired mic only
• Output → wired headset only
Example:
audio_source = AUDIO_SOURCE_MIC;
audio_stream_type = AUDIO_STREAM_VOICE_CALL;
Then block:
• AUDIO_DEVICE_OUT_SPEAKER
• AUDIO_DEVICE_OUT_EARPIECE
• AUDIO_DEVICE_OUT_BLUETOOTH_*

Disable Bluetooth at Compile Time (Recommended)
In:
mediastreamer2/src/android/[login to view URL]
Remove or comment:
enableBluetoothSco();

Build System (NDK + Gradle)
You must rebuild:
• Linphone native core
• MediaStreamer2
• Android APK
Build guide (official)
[login to view URL]

Optional BUT STRONGLY RECOMMENDED (Your Use Case)
Because you're doing SIM ↔ SIP loopback on Redmi 4A:
Add a HARD FAIL if headset not connected
if (![login to view URL]) {
throw RuntimeException("WIRED HEADSET REQUIRED")
}
This prevents Android from silently switching routes.



Summary – Repos You Need
Purpose Repo
Android app [login to view URL]
SIP core submodules/linphone
Audio engine submodules/mediastreamer2



.

Experience with VoIP stacks, SIP, C/C++, Java/Kotlin or Objective-C/Swift, and familiarity with Belledonne’s build system will be key. Please let me know the most complex Linphone (or comparable VoIP) customization you have shipped and the timeline you’d propose for this one." (client-provided description)


Matched companies (3)

...

April Innovations

April Innovations is one of the leading Enterprise Software Development companies in Mumbai, with clients being serviced in the USA, UK, and India. T… Read more

...

TechGigs LLP

We deliver cutting-edge technology solutions to businesses of all sizes. From mobile and web development to AR/VR, AI, and enterprise software, our t… Read more

...

Appsdiary Technologies

AppsDiary is a software house that designs and develops mobile applications, websites, and custom software solutions. They work with businesses to c… Read more