30$ One day Task: pjsip-android Integration with FreePBX/Asterisk
Budget: $10 – $30 USD
Integrate pjsip-android with osmocom/ofono for FreePBX/Asterisk
## Task Description
We are seeking a skilled Android developer for a **pure integration task** between the **pjsip-android** application [](https://gitea.osmocom.org/ofono/ofono) to achieve seamless integration with **FreePBX/Asterisk**. The task is **simple and extremely quick** (takes **very few hours**, less than a day), requiring prior experience with similar projects (oFono and SIP client integrations). Price: **$30 USD only** (fixed, non-negotiable). **Do not apply if you will ask about duration or price**, as both are clearly stated (one day, $30).
### Objective
- **Integrate Cellular and VoIP Calls**:
- **On incoming cellular calls** (GSM) to the phone, automatically create a connection in FreePBX/Asterisk, merging both calls (cellular and SIP over the internet) into a **conference bridge** instantly.
- **On outgoing calls from FreePBX/Asterisk** to a mobile number, initiate the call via the phone’s GSM modem and merge it with a SIP call simultaneously.
- **Core Functionality**: Transform a rooted Android device into a GSM gateway, bridging GSM calls with FreePBX/Asterisk via the device’s modem, with dynamic call control (initiate, disconnect, terminate), real-time audio processing, and echo cancellation.
Required Features
- **oFono Integration**: Use the rilmodem driver (from osmocom/ofono) to access the Radio Interface Layer (RIL) for controlling the GSM modem (making/receiving calls, SMS, data).
- **FreePBX/Asterisk Integration**: Create a SIP trunk to bridge GSM calls with VoIP using chan_dongle, supporting automatic conference bridge on incoming/outgoing calls.
- **Device Support**: Compatibility with modems (Quectel EC25/EG25, MediaTek MTK, Qualcomm Snapdragon) via oFono plugins.
- **Audio Processing**: Real-time audio capture, echo cancellation, and merging of GSM+SIP calls.
- **Dynamic Call Control**: Ability to disconnect/terminate calls as needed, with full control over the call lifecycle.
- **Android Compatibility**: Support for Android Telephony APIs and SELinux policies (with Magisk for permissive mode).
- **Simple UI**: Interface to connect the app and phone to FreePBX (SIP account setup, modem status).
### Key Requirements
- **Rooted Device**: The app must be tested on a fully rooted Android device (Android 9+, Magisk for SELinux bypass and D-Bus forwarding).
- **Prior Experience**: **Mandatory** to submit links to previous similar work (oFono, SIP client, or Asterisk/FreePBX integration projects). **Proposals without prior work will not be considered**.
- **No Questions on Duration/Price**: The task takes **one day** (a few hours), and the price is **$30**. Do not apply if you will ask about these.
- **FreePBX/Asterisk Script**: Developers can request a ready-made script to install FreePBX/Asterisk on Ubuntu 24.04 in **15 minutes** (provided upon request).
- **Experienced Developers Only**: Applicants must have worked on similar projects (oFono, SIP, Asterisk).
### Why This Project is Quick and Easy?
- **pjsip-android**: An open-source SIP service app[](https://github.com/VoiSmart/pjsip-android) with a ready APK in releases, integrating instantly with FreePBX/Asterisk via PJSIP stack. Building a new APK (if needed) takes minutes via Gradle.
- **osmocom/ofono**: A modern telephony library (2025, ~25 commits), providing rilmodem driver for RIL access. Integration via JNI wrapper is simple and fast (2-3 minutes). Pre-built binaries available at https://gitea.osmocom.org/ofono/ofono/releases.
- **Pure Integration Task**: No development from scratch, just linking pjsip-android’s PJSIP stack with oFono’s D-Bus API and setting up a SIP trunk in FreePBX.
### Work Stages and Timeline
Total duration: **Very few hours** (2-4 hours, max one day).
1. **Download and Install pjsip-android (5 minutes)**:
- Download APK from https://github.com/VoiSmart/pjsip-android/releases or clone: `git clone https://github.com/VoiSmart/pjsip-android`.
- Build APK (if needed): `gradle build` in Android Studio.
- Install: `adb install pjsip-android.apk` on a rooted device (Android 9+, Magisk).
2. **Install osmocom/ofono (5-10 minutes)**:
- Download pre-built oFono from https://gitea.osmocom.org/ofono/ofono/releases.
- Or clone: `git clone https://gitea.osmocom.org/ofono/ofono`, and build:
```bash
./autogen.sh
./configure --enable-rilmodem --enable-android-ril --enable-modem-Quectel
make && make install
- Build APK (if needed): `gradle build` in Android Studio.
- Install: `adb install pjsip-android.apk` on a rooted device (Android 9+, Magisk).
2. **Install osmocom/ofono (5-10 minutes)**:
- Download pre-built oFono from https://gitea.osmocom.org/ofono/ofono/releases.
- Or clone: `git clone https://gitea.osmocom.org/ofono/ofono`, and build:
```bash
./autogen.sh
./configure --enable-rilmodem --enable-android-ril --enable-modem-Quectel
make && make install
Install on rooted device: adb push ofono /system/bin/.
Stop rild: su -c "stop ril-daemon".
Integrate oFono with pjsip-android via JNI (30-60 minutes):
Create a JNI wrapper in pjsip-android to link D-Bus API with PJSIP:
Add Java class (OFonoBridge.java):
javapublic class OFonoBridge {
static { System.loadLibrary("ofono"); }
public native void makeCall(String number);
public native void enableRadio();
public native void bridgeCall(String sipCallId);
}
Link ofonoctl call and ofonoctl radio on with PJSIP’s call control (in PJSipService.java).
Add audio processing (echo cancellation, GSM+SIP merging) via PJSIP’s audio APIs.
Rebuild APK: gradle build.
Connect to FreePBX/Asterisk (30-45 minutes):
In pjsip-android, add SIP account: Settings > SIP Account > Add (host=FreePBX IP, port=5060, username/password).
In FreePBX, add SIP trunk: Connectivity > Trunks > Add SIP (host=Android IP, qualify=yes).
Install chan_dongle on Asterisk:
bashgit clone https://github.com/asterisk/chan_dongle
cd chan_dongle
./configure && make && make install
asterisk -rx "module load chan_dongle.so"
Set up automatic conference bridge via ARI (in Asterisk, configure /etc/asterisk/ari.conf).
Test the Application (30 minutes):
Test on a rooted device (Magisk, Android 9+).
Make an incoming GSM call, verify conference bridge creation in Asterisk logs (asterisk -rvvv).
Make an outgoing call from FreePBX, verify routing via GSM modem.
Monitor logs: ofonoctl monitor (D-Bus), adb logcat | grep RIL (RIL).
Application Requirements
Prior Experience Mandatory: Submit links to previous similar work (oFono, SIP client, or Asterisk/FreePBX integration projects). Proposals without prior work will not be accepted.
No Questions on Duration/Price: The task takes one day (2-4 hours), and the price is $30. Do not apply if you will ask about these.
FreePBX/Asterisk Script: Request a script to install FreePBX/Asterisk on Ubuntu 24.04 (15 minutes) if needed.
Device Testing: The app must be tested on a fully rooted device (Magisk, SELinux permissive).
Proposal Submission: Submit your proposal with links to previous similar work to [insert contact method, e.g., email or freelance platform].
Final Notes
The Project Takes Minimal Time: Integration is straightforward due to a ready APK (pjsip-android) and pre-built oFono. FreePBX integration is instant via PJSIP and chan_dongle.
Experienced Developers Only: Applicants must have worked on similar projects (oFono, SIP, Asterisk).
Testing: Ensure compatibility with modems like Quectel EC25 or Qualcomm Snapdragon other common etc.
## Task Description
We are seeking a skilled Android developer for a **pure integration task** between the **pjsip-android** application [](https://gitea.osmocom.org/ofono/ofono) to achieve seamless integration with **FreePBX/Asterisk**. The task is **simple and extremely quick** (takes **very few hours**, less than a day), requiring prior experience with similar projects (oFono and SIP client integrations). Price: **$30 USD only** (fixed, non-negotiable). **Do not apply if you will ask about duration or price**, as both are clearly stated (one day, $30).
### Objective
- **Integrate Cellular and VoIP Calls**:
- **On incoming cellular calls** (GSM) to the phone, automatically create a connection in FreePBX/Asterisk, merging both calls (cellular and SIP over the internet) into a **conference bridge** instantly.
- **On outgoing calls from FreePBX/Asterisk** to a mobile number, initiate the call via the phone’s GSM modem and merge it with a SIP call simultaneously.
- **Core Functionality**: Transform a rooted Android device into a GSM gateway, bridging GSM calls with FreePBX/Asterisk via the device’s modem, with dynamic call control (initiate, disconnect, terminate), real-time audio processing, and echo cancellation.
Required Features
- **oFono Integration**: Use the rilmodem driver (from osmocom/ofono) to access the Radio Interface Layer (RIL) for controlling the GSM modem (making/receiving calls, SMS, data).
- **FreePBX/Asterisk Integration**: Create a SIP trunk to bridge GSM calls with VoIP using chan_dongle, supporting automatic conference bridge on incoming/outgoing calls.
- **Device Support**: Compatibility with modems (Quectel EC25/EG25, MediaTek MTK, Qualcomm Snapdragon) via oFono plugins.
- **Audio Processing**: Real-time audio capture, echo cancellation, and merging of GSM+SIP calls.
- **Dynamic Call Control**: Ability to disconnect/terminate calls as needed, with full control over the call lifecycle.
- **Android Compatibility**: Support for Android Telephony APIs and SELinux policies (with Magisk for permissive mode).
- **Simple UI**: Interface to connect the app and phone to FreePBX (SIP account setup, modem status).
### Key Requirements
- **Rooted Device**: The app must be tested on a fully rooted Android device (Android 9+, Magisk for SELinux bypass and D-Bus forwarding).
- **Prior Experience**: **Mandatory** to submit links to previous similar work (oFono, SIP client, or Asterisk/FreePBX integration projects). **Proposals without prior work will not be considered**.
- **No Questions on Duration/Price**: The task takes **one day** (a few hours), and the price is **$30**. Do not apply if you will ask about these.
- **FreePBX/Asterisk Script**: Developers can request a ready-made script to install FreePBX/Asterisk on Ubuntu 24.04 in **15 minutes** (provided upon request).
- **Experienced Developers Only**: Applicants must have worked on similar projects (oFono, SIP, Asterisk).
### Why This Project is Quick and Easy?
- **pjsip-android**: An open-source SIP service app[](https://github.com/VoiSmart/pjsip-android) with a ready APK in releases, integrating instantly with FreePBX/Asterisk via PJSIP stack. Building a new APK (if needed) takes minutes via Gradle.
- **osmocom/ofono**: A modern telephony library (2025, ~25 commits), providing rilmodem driver for RIL access. Integration via JNI wrapper is simple and fast (2-3 minutes). Pre-built binaries available at https://gitea.osmocom.org/ofono/ofono/releases.
- **Pure Integration Task**: No development from scratch, just linking pjsip-android’s PJSIP stack with oFono’s D-Bus API and setting up a SIP trunk in FreePBX.
### Work Stages and Timeline
Total duration: **Very few hours** (2-4 hours, max one day).
1. **Download and Install pjsip-android (5 minutes)**:
- Download APK from https://github.com/VoiSmart/pjsip-android/releases or clone: `git clone https://github.com/VoiSmart/pjsip-android`.
- Build APK (if needed): `gradle build` in Android Studio.
- Install: `adb install pjsip-android.apk` on a rooted device (Android 9+, Magisk).
2. **Install osmocom/ofono (5-10 minutes)**:
- Download pre-built oFono from https://gitea.osmocom.org/ofono/ofono/releases.
- Or clone: `git clone https://gitea.osmocom.org/ofono/ofono`, and build:
```bash
./autogen.sh
./configure --enable-rilmodem --enable-android-ril --enable-modem-Quectel
make && make install
- Build APK (if needed): `gradle build` in Android Studio.
- Install: `adb install pjsip-android.apk` on a rooted device (Android 9+, Magisk).
2. **Install osmocom/ofono (5-10 minutes)**:
- Download pre-built oFono from https://gitea.osmocom.org/ofono/ofono/releases.
- Or clone: `git clone https://gitea.osmocom.org/ofono/ofono`, and build:
```bash
./autogen.sh
./configure --enable-rilmodem --enable-android-ril --enable-modem-Quectel
make && make install
Install on rooted device: adb push ofono /system/bin/.
Stop rild: su -c "stop ril-daemon".
Integrate oFono with pjsip-android via JNI (30-60 minutes):
Create a JNI wrapper in pjsip-android to link D-Bus API with PJSIP:
Add Java class (OFonoBridge.java):
javapublic class OFonoBridge {
static { System.loadLibrary("ofono"); }
public native void makeCall(String number);
public native void enableRadio();
public native void bridgeCall(String sipCallId);
}
Link ofonoctl call and ofonoctl radio on with PJSIP’s call control (in PJSipService.java).
Add audio processing (echo cancellation, GSM+SIP merging) via PJSIP’s audio APIs.
Rebuild APK: gradle build.
Connect to FreePBX/Asterisk (30-45 minutes):
In pjsip-android, add SIP account: Settings > SIP Account > Add (host=FreePBX IP, port=5060, username/password).
In FreePBX, add SIP trunk: Connectivity > Trunks > Add SIP (host=Android IP, qualify=yes).
Install chan_dongle on Asterisk:
bashgit clone https://github.com/asterisk/chan_dongle
cd chan_dongle
./configure && make && make install
asterisk -rx "module load chan_dongle.so"
Set up automatic conference bridge via ARI (in Asterisk, configure /etc/asterisk/ari.conf).
Test the Application (30 minutes):
Test on a rooted device (Magisk, Android 9+).
Make an incoming GSM call, verify conference bridge creation in Asterisk logs (asterisk -rvvv).
Make an outgoing call from FreePBX, verify routing via GSM modem.
Monitor logs: ofonoctl monitor (D-Bus), adb logcat | grep RIL (RIL).
Application Requirements
Prior Experience Mandatory: Submit links to previous similar work (oFono, SIP client, or Asterisk/FreePBX integration projects). Proposals without prior work will not be accepted.
No Questions on Duration/Price: The task takes one day (2-4 hours), and the price is $30. Do not apply if you will ask about these.
FreePBX/Asterisk Script: Request a script to install FreePBX/Asterisk on Ubuntu 24.04 (15 minutes) if needed.
Device Testing: The app must be tested on a fully rooted device (Magisk, SELinux permissive).
Proposal Submission: Submit your proposal with links to previous similar work to [insert contact method, e.g., email or freelance platform].
Final Notes
The Project Takes Minimal Time: Integration is straightforward due to a ready APK (pjsip-android) and pre-built oFono. FreePBX integration is instant via PJSIP and chan_dongle.
Experienced Developers Only: Applicants must have worked on similar projects (oFono, SIP, Asterisk).
Testing: Ensure compatibility with modems like Quectel EC25 or Qualcomm Snapdragon other common etc.