diff options
Diffstat (limited to 'include/asterisk/sdp_options.h')
-rw-r--r-- | include/asterisk/sdp_options.h | 390 |
1 files changed, 332 insertions, 58 deletions
diff --git a/include/asterisk/sdp_options.h b/include/asterisk/sdp_options.h index a5c2d084e..3995faf4a 100644 --- a/include/asterisk/sdp_options.h +++ b/include/asterisk/sdp_options.h @@ -22,6 +22,48 @@ struct ast_sdp_options; /*! + * \brief ICE options + * + * This is an enum because it will support a TRICKLE-ICE option + * in the future. + */ +enum ast_sdp_options_ice { + /*! ICE is not enabled on this session */ + AST_SDP_ICE_DISABLED, + /*! Standard ICE is enabled on this session */ + AST_SDP_ICE_ENABLED_STANDARD, +}; + +/*! + * \brief Implementation of the SDP + * + * Users of the SDP API set the implementation based on what they + * natively handle. This indicates the type of SDP that the API expects + * when being given an SDP, and it indicates the type of SDP that the API + * returns when asked for one. + */ +enum ast_sdp_options_impl { + /*! SDP is represented as a string */ + AST_SDP_IMPL_STRING, + /*! SDP is represented as a pjmedia_sdp_session */ + AST_SDP_IMPL_PJMEDIA, + /*! End of the list */ + AST_SDP_IMPL_END, +}; + +/*! + * \brief SDP encryption options + */ +enum ast_sdp_options_encryption { + /*! No encryption */ + AST_SDP_ENCRYPTION_DISABLED, + /*! SRTP SDES encryption */ + AST_SDP_ENCRYPTION_SRTP_SDES, + /*! DTLS encryption */ + AST_SDP_ENCRYPTION_DTLS, +}; + +/*! * \since 15.0.0 * \brief Allocate a new SDP options structure. * @@ -47,111 +89,343 @@ struct ast_sdp_options *ast_sdp_options_alloc(void); void ast_sdp_options_free(struct ast_sdp_options *options); /*! - * \brief ICE options + * \since 15.0.0 + * \brief Set SDP Options media_address * - * This is an enum because it is predicted that this eventually - * support a TRICKLE-ICE option. + * \param options SDP Options + * \param media_address */ -enum ast_sdp_options_ice { - /*! ICE is not enabled on this session */ - AST_SDP_ICE_DISABLED, - /*! Standard ICE is enabled on this session */ - AST_SDP_ICE_ENABLED_STANDARD, -}; +void ast_sdp_options_set_media_address(struct ast_sdp_options *options, + const char *media_address); /*! * \since 15.0.0 - * \brief Set ICE options + * \brief Get SDP Options media_address + * + * \param options SDP Options * - * The default is AST_SDP_ICE_DISABLED + * \returns media_address */ -int ast_sdp_options_set_ice(struct ast_sdp_options *options, - enum ast_sdp_options_ice ice_setting); +const char *ast_sdp_options_get_media_address(struct ast_sdp_options *options); /*! * \since 15.0.0 - * \brief Retrieve ICE options + * \brief Set SDP Options sdpowner + * + * \param options SDP Options + * \param sdpowner */ -enum ast_sdp_options_ice ast_sdp_options_get_ice(const struct ast_sdp_options *options); +void ast_sdp_options_set_sdpowner(struct ast_sdp_options *options, + const char *sdpowner); /*! * \since 15.0.0 - * \brief Enable or disable telephone events. + * \brief Get SDP Options sdpowner * - * A non-zero value indicates telephone events are enabled. - * A zero value indicates telephone events are disabled. + * \param options SDP Options * - * The default is 0 + * \returns sdpowner */ -int ast_sdp_options_set_telephone_event(struct ast_sdp_options *options, - int telephone_event_enabled); +const char *ast_sdp_options_get_sdpowner(struct ast_sdp_options *options); /*! * \since 15.0.0 - * \brief Retrieve telephone event setting. + * \brief Set SDP Options sdpsession * - * \retval 0 Telephone events are currently disabled. - * \retval non-zero Telephone events are currently enabled. + * \param options SDP Options + * \param sdpsession */ -int ast_sdp_options_get_telephone_event(const struct ast_sdp_options *options); +void ast_sdp_options_set_sdpsession(struct ast_sdp_options *options, + const char *sdpsession); /*! - * \brief Representation of the SDP + * \since 15.0.0 + * \brief Get SDP Options sdpsession * - * Users of the SDP API set the representation based on what they - * natively handle. This indicates the type of SDP that the API expects - * when being given an SDP, and it indicates the type of SDP that the API - * returns when asked for one. + * \param options SDP Options + * + * \returns sdpsession */ -enum ast_sdp_options_repr { - /*! SDP is represented as a string */ - AST_SDP_REPR_STRING, - /*! SDP is represented as a pjmedia_sdp_session */ - AST_SDP_REPR_PJMEDIA, - /*! End of the list */ - AST_SDP_REPR_END, -}; +const char *ast_sdp_options_get_sdpsession(struct ast_sdp_options *options); /*! * \since 15.0.0 - * \brief Set the SDP representation + * \brief Set SDP Options rtp_engine * - * The default is AST_SDP_REPR_STRING + * \param options SDP Options + * \param rtp_engine */ -int ast_sdp_options_set_repr(struct ast_sdp_options *options, - enum ast_sdp_options_repr repr); +void ast_sdp_options_set_rtp_engine(struct ast_sdp_options *options, + const char *rtp_engine); /*! * \since 15.0.0 - * \brief Get the SDP representation + * \brief Get SDP Options rtp_engine + * + * \param options SDP Options + * + * \returns rtp_engine */ -enum ast_sdp_options_repr ast_sdp_options_get_repr(const struct ast_sdp_options *options); +const char *ast_sdp_options_get_rtp_engine(struct ast_sdp_options *options); /*! - * \brief SDP encryption options + * \since 15.0.0 + * \brief Set SDP Options bind_rtp_to_media_address + * + * \param options SDP Options + * \param bind_rtp_to_media_address */ -enum ast_sdp_options_encryption { - /*! No encryption */ - AST_SDP_ENCRYPTION_DISABLED, - /*! SRTP SDES encryption */ - AST_SDP_ENCRYPTION_SRTP_SDES, - /*! DTLS encryption */ - AST_SDP_ENCRYPTION_DTLS, -}; +void ast_sdp_options_set_bind_rtp_to_media_address(struct ast_sdp_options *options, + unsigned int bind_rtp_to_media_address); + +/*! + * \since 15.0.0 + * \brief Get SDP Options bind_rtp_to_media_address + * + * \param options SDP Options + * + * \returns bind_rtp_to_media_address + */ +unsigned int ast_sdp_options_get_bind_rtp_to_media_address(struct ast_sdp_options *options); /*! * \since 15.0.0 - * \brief Set the SDP encryption + * \brief Set SDP Options rtp_symmetric * - * The default is AST_SDP_ENCRYPTION_DISABLED + * \param options SDP Options + * \param rtp_symmetric */ -int ast_sdp_options_set_encryption(struct ast_sdp_options *options, +void ast_sdp_options_set_rtp_symmetric(struct ast_sdp_options *options, + unsigned int rtp_symmetric); + +/*! + * \since 15.0.0 + * \brief Get SDP Options rtp_symmetric + * + * \param options SDP Options + * + * \returns rtp_symmetric + */ +unsigned int ast_sdp_options_get_rtp_symmetric(struct ast_sdp_options *options); + +/*! + * \since 15.0.0 + * \brief Set SDP Options telephone_event + * + * \param options SDP Options + * \param telephone_event + */ +void ast_sdp_options_set_telephone_event(struct ast_sdp_options *options, + unsigned int telephone_event); + +/*! + * \since 15.0.0 + * \brief Get SDP Options telephone_event + * + * \param options SDP Options + * + * \returns telephone_event + */ +unsigned int ast_sdp_options_get_telephone_event(struct ast_sdp_options *options); + +/*! + * \since 15.0.0 + * \brief Set SDP Options rtp_ipv6 + * + * \param options SDP Options + * \param rtp_ipv6 + */ +void ast_sdp_options_set_rtp_ipv6(struct ast_sdp_options *options, + unsigned int rtp_ipv6); + +/*! + * \since 15.0.0 + * \brief Get SDP Options rtp_ipv6 + * + * \param options SDP Options + * + * \returns rtp_ipv6 + */ +unsigned int ast_sdp_options_get_rtp_ipv6(struct ast_sdp_options *options); + +/*! + * \since 15.0.0 + * \brief Set SDP Options g726_non_standard + * + * \param options SDP Options + * \param g726_non_standard + */ +void ast_sdp_options_set_g726_non_standard(struct ast_sdp_options *options, + unsigned int g726_non_standard); + +/*! + * \since 15.0.0 + * \brief Get SDP Options g726_non_standard + * + * \param options SDP Options + * + * \returns g726_non_standard + */ +unsigned int ast_sdp_options_get_g726_non_standard(struct ast_sdp_options *options); + +/*! + * \since 15.0.0 + * \brief Set SDP Options locally_held + * + * \param options SDP Options + * \param locally_held + */ +void ast_sdp_options_set_locally_held(struct ast_sdp_options *options, + unsigned int locally_held); + +/*! + * \since 15.0.0 + * \brief Get SDP Options locally_held + * + * \param options SDP Options + * + * \returns locally_held + */ +unsigned int ast_sdp_options_get_locally_held(struct ast_sdp_options *options); + +/*! + * \since 15.0.0 + * \brief Set SDP Options tos_audio + * + * \param options SDP Options + * \param tos_audio + */ +void ast_sdp_options_set_tos_audio(struct ast_sdp_options *options, + unsigned int tos_audio); + +/*! + * \since 15.0.0 + * \brief Get SDP Options tos_audio + * + * \param options SDP Options + * + * \returns tos_audio + */ +unsigned int ast_sdp_options_get_tos_audio(struct ast_sdp_options *options); + +/*! + * \since 15.0.0 + * \brief Set SDP Options cos_audio + * + * \param options SDP Options + * \param cos_audio + */ +void ast_sdp_options_set_cos_audio(struct ast_sdp_options *options, + unsigned int cos_audio); + +/*! + * \since 15.0.0 + * \brief Get SDP Options cos_audio + * + * \param options SDP Options + * + * \returns cos_audio + */ +unsigned int ast_sdp_options_get_cos_audio(struct ast_sdp_options *options); + +/*! + * \since 15.0.0 + * \brief Set SDP Options tos_video + * + * \param options SDP Options + * \param tos_video + */ +void ast_sdp_options_set_tos_video(struct ast_sdp_options *options, + unsigned int tos_video); + +/*! + * \since 15.0.0 + * \brief Get SDP Options tos_video + * + * \param options SDP Options + * + * \returns tos_video + */ +unsigned int ast_sdp_options_get_tos_video(struct ast_sdp_options *options); + +/*! + * \since 15.0.0 + * \brief Set SDP Options cos_video + * + * \param options SDP Options + * \param cos_video + */ +void ast_sdp_options_set_cos_video(struct ast_sdp_options *options, + unsigned int cos_video); + +/*! + * \since 15.0.0 + * \brief Get SDP Options cos_video + * + * \param options SDP Options + * + * \returns cos_video + */ +unsigned int ast_sdp_options_get_cos_video(struct ast_sdp_options *options); + +/*! + * \since 15.0.0 + * \brief Set SDP Options ice + * + * \param options SDP Options + * \param ice + */ +void ast_sdp_options_set_ice(struct ast_sdp_options *options, + enum ast_sdp_options_ice ice); + +/*! + * \since 15.0.0 + * \brief Get SDP Options ice + * + * \param options SDP Options + * + * \returns ice + */ +enum ast_sdp_options_ice ast_sdp_options_get_ice(struct ast_sdp_options *options); + +/*! + * \since 15.0.0 + * \brief Set SDP Options impl + * + * \param options SDP Options + * \param impl + */ +void ast_sdp_options_set_impl(struct ast_sdp_options *options, + enum ast_sdp_options_impl impl); + +/*! + * \since 15.0.0 + * \brief Get SDP Options impl + * + * \param options SDP Options + * + * \returns impl + */ +enum ast_sdp_options_impl ast_sdp_options_get_impl(struct ast_sdp_options *options); + +/*! + * \since 15.0.0 + * \brief Set SDP Options encryption + * + * \param options SDP Options + * \param encryption + */ +void ast_sdp_options_set_encryption(struct ast_sdp_options *options, enum ast_sdp_options_encryption encryption); /*! * \since 15.0.0 - * \brief Get the SDP encryption + * \brief Get SDP Options encryption + * + * \param options SDP Options + * + * \returns encryption */ -enum ast_sdp_options_encryption ast_sdp_options_get_encryption(const struct ast_sdp_options *options); +enum ast_sdp_options_encryption ast_sdp_options_get_encryption(struct ast_sdp_options *options); #endif /* _ASTERISK_SDP_OPTIONS_H */ |