This project demonstrates how to use the Linphone library to create a Radio over IP (ROIP) gateway. It manages VoIP calls, codec configurations, and audio streams, enabling communication between radio systems and IP networks.
- Drop Call: Drop an ongoing call by extension using HTTP requests.
- Registration: Register and unregister with a SIP server.
- Codec Management: Enable, disable, and list audio and video codecs.
- Sound Device Configuration: Configure sound devices for playback and capture.
- Call State Monitoring: Track call state changes and detect voice activity.
- Linphone core library
- CURL library
- pthread library
- DropCallByExtension: Sends an HTTP request to drop a call by extension.
- Register: Registers the user agent (UA) with the SIP server.
- Unregister: Unregisters the UA from the SIP server.
- TestCall: Initiates a call to a specified destination.
- RoipCall: Specialized function for handling ROIP gateway calls.
- ListCodecs: Lists available audio or video codecs.
- VoiceActivityDetection: Detects voice activity based on bandwidth.
- Build: Compile the code using a C compiler with necessary libraries linked.
- Configure: Update the
identity
andpassword
variables with your SIP credentials. - Run: Execute the compiled binary to start the ROIP gateway.
gcc -o linphone_roip_gateway main.c -l linphone -l curl -lpthread
./linphone_roip_gateway
To make a call through the ROIP gateway:
RoipCall(lc, "*100@10.10.10.20:5070");
This project is licensed under the MIT License. See the LICENSE file for details.