You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add SIPREC recording support (RFC 7865/7866) to SBC
Implement a SIPREC Session Recording Client (SRC) as an SBC call_control
module (cc_siprec) that forks RTP to a Session Recording Server (SRS),
plus a minimal built-in SRS (siprec_srs) for testing.
SIP signaling (RFC 7866):
- INVITE with Require: siprec and +sip.src Contact feature tag
- multipart/mixed body: SDP offer + metadata XML
- Content-Disposition: recording-session on metadata parts
- Separate sendonly m-lines per CS direction with a=label
- Symmetric RTP with allocated local port pairs (RFC 7866 8.1.8)
- RTCP port allocation on port+1 (RFC 7866 8.1.1)
- Configurable RTP profile: RTP/AVP, RTP/SAVP, RTP/AVPF, RTP/SAVPF
- CANCEL for pending INVITE on call teardown
- re-INVITE for hold/resume with updated SDP + metadata
- BYE with final metadata and stop-time
Metadata XML (RFC 7865):
- Namespace urn:ietf:params:xml:ns:recording:1
- session, participant, stream elements with base64 IDs
- sessionrecordingassoc and participantsessionassoc elements
- participantstreamassoc with send/recv text-content stream refs
- ISO 8601 timestamps, partial updates on hold
Recording indication (RFC 7866 6.1.2):
- a=record:on injected into B-leg INVITE SDP
CS SDP codec extraction:
- Parses initial INVITE SDP to auto-detect codec for RS offer
- Falls back to configured codec (PCMA/PCMU) when unavailable
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
0 commit comments