142 lines
4.2 KiB
Plaintext
142 lines
4.2 KiB
Plaintext
# RTPhone Platform
|
|
|
|
RTPhone is a comprehensive real-time communication (RTC) platform that provides a complete software stack for building VoIP/SIP-based communication applications. Developed by VoIP Objects (Sevana), RTPhone delivers production-ready voice communication capabilities with extensive codec support and cross-platform compatibility.
|
|
|
|
## Overview
|
|
|
|
RTPhone serves as a static library (`librtphone.a`) that can be integrated into larger telephony and communication systems. It provides a JSON-based command interface for easy integration and control, making it suitable for building softphones, PBX systems, WebRTC gateways, and carrier-grade voice solutions.
|
|
|
|
## Key Features
|
|
|
|
### Audio Codec Support
|
|
RTPhone supports an extensive range of audio codecs:
|
|
|
|
**Standard Codecs:**
|
|
- G.711 (A-law/¼-law)
|
|
- G.722 (16kHz wideband)
|
|
- G.729
|
|
- GSM (Full Rate, Half Rate, Enhanced Full Rate)
|
|
- iLBC (20ms/30ms)
|
|
- ISAC (16kHz/32kHz)
|
|
|
|
**Advanced Codecs:**
|
|
- AMR-NB/AMR-WB (Adaptive Multi-Rate Narrowband/Wideband) - please be aware - there is no patents for AMR codecs usage included ! You should acquire them on your own.
|
|
- EVS (Enhanced Voice Services) - 3GPP's latest codec. Again - please be aware - there is no patents for EVS codec usage included ! You should acquire them on your own.
|
|
- Opus - Modern low-latency codec
|
|
- Speex (with acoustic echo cancellation)
|
|
|
|
**Codec Features:**
|
|
- Bandwidth-efficient and octet-aligned modes
|
|
- IuUP (Iu User Plane) protocol support for 3G networks
|
|
- Dynamic codec switching
|
|
- Packet loss concealment (PLC)
|
|
- Comfort noise generation (CNG)
|
|
|
|
### Network & Protocol Support
|
|
|
|
**SIP Features:**
|
|
- Full SIP 2.0 implementation via reSIProcate
|
|
- Multiple transport protocols (UDP, TCP, TLS)
|
|
- Registration, authentication, and session management
|
|
- SIP MESSAGE, presence, and REFER support
|
|
|
|
**Media Transport:**
|
|
- RTP/RTCP for media streaming
|
|
- SRTP for secure media
|
|
- ICE for NAT traversal with STUN/TURN support
|
|
- WebRTC integration components
|
|
- IPv4 and IPv6 support
|
|
|
|
### Cross-Platform Audio Support
|
|
- DirectSound/WMME (Windows)
|
|
- Core Audio (macOS/iOS)
|
|
- ALSA/PulseAudio (Linux)
|
|
- Oboe (Android) for low-latency audio
|
|
- PortAudio fallback support
|
|
|
|
### Audio Quality Features
|
|
- 48kHz sample rate support
|
|
- Acoustic Echo Cancellation (AEC)
|
|
- Audio resampling and format conversion
|
|
- Multi-channel audio mixing
|
|
- Perceptual Voice Quality Assessment (PVQA)
|
|
|
|
## Architecture
|
|
|
|
The platform is organized into several core modules:
|
|
|
|
- **Engine/Agent**: JSON-based command interface
|
|
- **Engine/Endpoint**: SIP user agent implementation
|
|
- **Engine/Media**: Audio codec management and processing
|
|
- **Engine/Audio**: Cross-platform audio I/O handling
|
|
- **Engine/Helper**: Utility functions (networking, logging, threading)
|
|
|
|
## Supported Platforms
|
|
|
|
- Linux (x64, ARM/Raspberry Pi)
|
|
- Windows (32/64-bit)
|
|
- macOS
|
|
- Android (with Oboe integration)
|
|
- iOS
|
|
|
|
## Building
|
|
|
|
RTPhone uses a CMake-based build system with cross-compilation support:
|
|
|
|
### Linux
|
|
```bash
|
|
python3 build_linux.py
|
|
```
|
|
|
|
### Android
|
|
```bash
|
|
python3 build_android.py
|
|
# or
|
|
./build_android.sh
|
|
```
|
|
|
|
### Dependencies
|
|
- CMake 3.10+
|
|
- OpenSSL 1.1+
|
|
- Boost libraries
|
|
- Platform-specific audio libraries
|
|
|
|
## Recent Updates
|
|
|
|
Recent development has focused on:
|
|
- AMR codec parsing and decoding improvements
|
|
- Octet-aligned mode fixes for AMR-WB
|
|
- RTP SSRC handling enhancements
|
|
- Build system optimizations
|
|
- Code modernization to C++20
|
|
|
|
## Use Cases
|
|
|
|
RTPhone is good for building:
|
|
- VoIP softphones and mobile applications
|
|
- PBX and telephony server systems
|
|
- RTP proxies
|
|
- Carrier-grade voice communication platforms
|
|
- 3GPP/IMS-compliant systems
|
|
|
|
## Security
|
|
|
|
RTPhone includes comprehensive security features:
|
|
- OpenSSL 1.1 integration for encryption
|
|
- TLS transport layer security
|
|
- SRTP media encryption
|
|
- Certificate management support
|
|
|
|
## Integration
|
|
|
|
The platform provides a developer-friendly interface with:
|
|
- Event-driven architecture
|
|
- Comprehensive logging system
|
|
- Modern C++20 codebase
|
|
|
|
For detailed integration instructions and API documentation, please refer to the source code and header files in the `/src/engine/` directory.
|
|
|
|
## License
|
|
|
|
Our source code is licensed under the MPL license. Naturally, any third-party components we use are subject to their respective licenses.
|