diff options
Diffstat (limited to 'third_party/sipcc/ccsdp.h')
-rw-r--r-- | third_party/sipcc/ccsdp.h | 212 |
1 files changed, 212 insertions, 0 deletions
diff --git a/third_party/sipcc/ccsdp.h b/third_party/sipcc/ccsdp.h new file mode 100644 index 0000000000..39e3c71f68 --- /dev/null +++ b/third_party/sipcc/ccsdp.h @@ -0,0 +1,212 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef __CCSDP_H__ +#define __CCSDP_H__ + +#include "cpr_types.h" +#include "ccsdp_rtcp_fb.h" + +#define SIPSDP_ILBC_MODE20 20 + +/** + * Return codes for sdp helper APIs + */ +typedef enum rtp_ptype_ +{ + RTP_NONE = -1, + RTP_PCMU = 0, + RTP_CELP = 1, + RTP_G726 = 2, + RTP_GSM = 3, + RTP_G723 = 4, + RTP_DVI4 = 5, + RTP_DVI4_II = 6, + RTP_LPC = 7, + RTP_PCMA = 8, + RTP_G722 = 9, + RTP_G728 = 15, + RTP_G729 = 18, + RTP_JPEG = 26, + RTP_NV = 28, + RTP_H261 = 31, + RTP_H264_P0 = 97, + RTP_H264_P1 = 126, + RTP_TELEPHONE_EVENT = 101, + RTP_L16 = 102, + RTP_H263 = 103, + RTP_ILBC = 116, /* used only to make an offer */ + RTP_OPUS = 109, + RTP_VP8 = 120, + RTP_VP9 = 121, + RTP_RED = 122, + RTP_ULPFEC = 123, + RTP_I420 = 124, + RTP_ISAC = 124, + RTP_RTX = 125 +} rtp_ptype; + +typedef struct { + const char *name; + int value; +} ccsdp_key_table_entry_t; + +typedef enum max_coded_audio_bandwidth_ { + opus_nb = 0, /* Narrowband */ + opus_mb = 1, /* Mediumband */ + opus_wb = 2, /* Wideband */ + opus_swb = 3, /* Super-wideband */ + opus_fb = 4 /* Fullband */ +} max_coded_audio_bandwidth; + +static const ccsdp_key_table_entry_t max_coded_audio_bandwidth_table[] = { + {"nb", opus_nb}, + {"mb", opus_mb}, + {"wb", opus_wb}, + {"swb", opus_swb}, + {"fb", opus_fb} +}; + +typedef enum { + SDP_SUCCESS, /**< Success */ + SDP_FAILURE, + SDP_INVALID_SDP_PTR, + SDP_NOT_SDP_DESCRIPTION, + SDP_INVALID_TOKEN_ORDERING, + SDP_INVALID_PARAMETER, + SDP_INVALID_MEDIA_LEVEL, + SDP_INVALID_CAPABILITY, + SDP_NO_RESOURCE, + SDP_UNRECOGNIZED_TOKEN, + SDP_NULL_BUF_PTR, + SDP_POTENTIAL_SDP_OVERFLOW, + SDP_EMPTY_TOKEN, + SDP_MAX_RC +} sdp_result_e; + +/** + * Indicates invalid bandwidth value + */ +#define SDP_INVALID_VALUE (-2) + +/** + * Bandwidth modifier type for b= SDP line + */ +typedef enum { + SDP_BW_MODIFIER_INVALID = -1, + SDP_BW_MODIFIER_AS, /** < b=AS: */ + SDP_BW_MODIFIER_CT, /** < b=CT: */ + SDP_BW_MODIFIER_TIAS, /** < b=TIAS: */ + SDP_MAX_BW_MODIFIER_VAL, + SDP_BW_MODIFIER_UNSUPPORTED +} sdp_bw_modifier_e; + +/** + * SDP attribute types + */ +/* Attribute Types */ +typedef enum { + SDP_ATTR_BEARER = 0, + SDP_ATTR_CALLED, + SDP_ATTR_CONN_TYPE, + SDP_ATTR_DIALED, + SDP_ATTR_DIALING, + SDP_ATTR_DIRECTION, + SDP_ATTR_EECID, + SDP_ATTR_FMTP, + SDP_ATTR_SCTPMAP, + SDP_ATTR_FRAMING, + SDP_ATTR_INACTIVE, + SDP_ATTR_PTIME, + SDP_ATTR_QOS, + SDP_ATTR_CURR, + SDP_ATTR_DES, + SDP_ATTR_CONF, + SDP_ATTR_RECVONLY, + SDP_ATTR_RTPMAP, + SDP_ATTR_SECURE, + SDP_ATTR_SENDONLY, + SDP_ATTR_SENDRECV, + SDP_ATTR_SUBNET, + SDP_ATTR_T38_VERSION, + SDP_ATTR_T38_MAXBITRATE, + SDP_ATTR_T38_FILLBITREMOVAL, + SDP_ATTR_T38_TRANSCODINGMMR, + SDP_ATTR_T38_TRANSCODINGJBIG, + SDP_ATTR_T38_RATEMGMT, + SDP_ATTR_T38_MAXBUFFER, + SDP_ATTR_T38_MAXDGRAM, + SDP_ATTR_T38_UDPEC, + SDP_ATTR_X_CAP, + SDP_ATTR_X_CPAR, + SDP_ATTR_X_PC_CODEC, + SDP_ATTR_X_PC_QOS, + SDP_ATTR_X_QOS, + SDP_ATTR_X_SQN, + SDP_ATTR_TMRGWXID, + SDP_ATTR_TC1_PAYLOAD_BYTES, + SDP_ATTR_TC1_WINDOW_SIZE, + SDP_ATTR_TC2_PAYLOAD_BYTES, + SDP_ATTR_TC2_WINDOW_SIZE, + SDP_ATTR_RTCP, + SDP_ATTR_RTR, + SDP_ATTR_SILENCESUPP, + SDP_ATTR_SRTP_CONTEXT, /* version 2 sdescriptions */ + SDP_ATTR_MPTIME, + SDP_ATTR_X_SIDIN, + SDP_ATTR_X_SIDOUT, + SDP_ATTR_X_CONFID, + SDP_ATTR_GROUP, + SDP_ATTR_MID, + SDP_ATTR_SOURCE_FILTER, + SDP_ATTR_RTCP_UNICAST, + SDP_ATTR_MAXPRATE, + SDP_ATTR_SQN, + SDP_ATTR_CDSC, + SDP_ATTR_CPAR, + SDP_ATTR_SPRTMAP, + SDP_ATTR_SDESCRIPTIONS, /* version 9 sdescriptions */ + SDP_ATTR_LABEL, + SDP_ATTR_FRAMERATE, + SDP_ATTR_ICE_CANDIDATE, + SDP_ATTR_ICE_UFRAG, + SDP_ATTR_ICE_PWD, + SDP_ATTR_ICE_LITE, + SDP_ATTR_RTCP_MUX, + SDP_ATTR_DTLS_FINGERPRINT, + SDP_ATTR_MAXPTIME, + SDP_ATTR_RTCP_FB, /* RFC 4585 */ + SDP_ATTR_SETUP, + SDP_ATTR_CONNECTION, + SDP_ATTR_EXTMAP, /* RFC 5285 */ + SDP_ATTR_IDENTITY, + SDP_ATTR_MSID, + SDP_ATTR_MSID_SEMANTIC, + SDP_ATTR_BUNDLE_ONLY, + SDP_ATTR_END_OF_CANDIDATES, + SDP_ATTR_ICE_OPTIONS, + SDP_ATTR_SSRC, + SDP_ATTR_IMAGEATTR, + SDP_ATTR_SIMULCAST, + SDP_ATTR_RID, + SDP_ATTR_DTLS_MESSAGE, + SDP_ATTR_SCTPPORT, + SDP_ATTR_MAXMESSAGESIZE, + SDP_ATTR_SSRC_GROUP, + SDP_ATTR_RTCP_RSIZE, + SDP_MAX_ATTR_TYPES, + SDP_ATTR_INVALID +} sdp_attr_e; + +typedef enum { + SDP_SETUP_NOT_FOUND = -1, + SDP_SETUP_ACTIVE = 0, + SDP_SETUP_PASSIVE, + SDP_SETUP_ACTPASS, + SDP_SETUP_HOLDCONN, + SDP_MAX_SETUP, + SDP_SETUP_UNKNOWN +} sdp_setup_type_e; + +#endif |