A high-performance, production-ready SIP recording (SIPREC) server that implements RFC 7865/7866 with real-time transcription capabilities.
- 📞 SIPREC Protocol - Full RFC 7865/7866 compliance for SIP session recording
- 🎙️ Real-time Transcription - Integration with multiple Speech-to-Text providers
- 🔐 Security - TLS/SRTP support with end-to-end encryption options
- 📊 Scalable - Handle thousands of concurrent sessions
- 🌐 WebSocket Streaming - Real-time transcription delivery
- 📨 Message Queue - AMQP integration for reliable message delivery
- 🎵 Audio Processing - VAD, noise reduction, multi-channel support
- 📈 Production Ready - Health checks, metrics, and comprehensive monitoring
# Linux installation (recommended)
wget https://raw.githubusercontent.com/loreste/siprec/main/install_siprec_linux.sh
chmod +x install_siprec_linux.sh
sudo ./install_siprec_linux.sh
docker run -d \
--name siprec \
-p 5060:5060/udp \
-p 5060:5060/tcp \
-p 8080:8080 \
-v $(pwd)/recordings:/opt/siprec/recordings \
ghcr.io/loreste/siprec:latest
Create a .env
file:
# Network
SIP_PORTS=5060
EXTERNAL_IP=auto
# STT Provider
STT_VENDORS=mock # or google, deepgram, openai, etc.
# Audio Processing
VAD_ENABLED=true
NOISE_REDUCTION_ENABLED=true
For detailed configuration, see Configuration Guide.
Comprehensive documentation is available in the docs directory:
- 📚 Getting Started Guide
- 🔧 Installation Guide
- ⚙️ Configuration Reference
- 🚀 Production Deployment
- 🔒 Security Guide
SIPREC Server is built with a modular architecture:
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ SIP/RTP │────▶│ Audio │────▶│ STT │
│ Handler │ │ Processing │ │ Provider │
└─────────────┘ └─────────────┘ └─────────────┘
│ │
▼ ▼
┌─────────────┐ ┌─────────────┐
│ Recording │ │ WebSocket/ │
│ Storage │ │ AMQP │
└─────────────┘ └─────────────┘
GET /health
- Health check endpointGET /health/live
- Kubernetes liveness probeGET /health/ready
- Kubernetes readiness probeGET /metrics
- Prometheus metricsGET /api/sessions
- Active sessionsGET /api/sessions/stats
- Session statistics
WS /ws/transcriptions
- Real-time transcription stream
See API Reference for details.
We welcome contributions! Please see our Contributing Guide for details.
# Clone the repository
git clone https://github.com/loreste/siprec.git
cd siprec
# Install dependencies
go mod download
# Run tests
make test
# Build
make build
SIPREC Server is designed for high performance:
- Handle 1000+ concurrent sessions
- Process 50,000+ RTP packets/second
- Sub-100ms transcription latency
- Minimal CPU and memory footprint
See Performance Tuning Guide for optimization tips.
Security features include:
- TLS 1.3 for SIP signaling
- SRTP for media encryption
- End-to-end encryption for recordings
- API authentication
- IP whitelisting
See Security Guide for configuration.
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with sipgo for SIP handling
- Uses pion/sdp for SDP parsing
- Integrates with multiple STT providers
Current Version: v1.0.0 | Go Version: 1.21+ | Status: Production Ready