From 86b7aea7ee500956217436ac967c91665f9b3c36 Mon Sep 17 00:00:00 2001 From: brancan Date: Fri, 14 Nov 2025 08:13:52 -0300 Subject: [PATCH] feat(libapi): add RtpSecureMediaEnum for RTP/SRTP security modes - Introduced `RtpSecureMediaEnum` to define security modes for RTP/SRTP: mandatory, optional, forbidden, and false. - Updated `MediaModel` to include `rtp_secure_media` field, allowing configuration of RTP/SRTP security settings. This commit enhances media configuration capabilities by providing explicit options for RTP security modes. --- liberator/libreapi.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/liberator/libreapi.py b/liberator/libreapi.py index c5cbc15..f80b8db 100644 --- a/liberator/libreapi.py +++ b/liberator/libreapi.py @@ -985,6 +985,12 @@ class DtmfModeEnum(str, Enum): info = 'info' none = 'none' +class RtpSecureMediaEnum(str, Enum): + mandatory = 'mandatory' + optional = 'optional' + forbidden = 'forbidden' + false = 'false' + class MediaModel(BaseModel): name: str = Field(pattern=_NAME_, max_length=32, description='name of Media class (identifier)') desc: Optional[str] = Field(default='', max_length=64, description='description') @@ -992,6 +998,7 @@ class MediaModel(BaseModel): codec_negotiation: NegotiationMode = Field(default='generous', description='codec negotiation mode, generous: refer remote, greedy: refer local, scrooge: enforce local') media_mode: MediaModeEnum = Field(default='transcode', description='media processing mode') dtmf_mode: DtmfModeEnum = Field(default='rfc2833', description='Dual-tone multi-frequency mode') + rtp_secure_media: RtpSecureMediaEnum = Field(default='false', description='RTP/SRTP security mode: mandatory=always SRTP, optional=SRTP if supported, forbidden=never SRTP, false=no SRTP') cng: bool = Field(default=False, description='comfort noise generate') vad: bool = Field(default=False, description='voice active detection, no transmit data when no party speaking') # validate