summaryrefslogtreecommitdiff
path: root/include/asterisk/sdp_options.h
diff options
context:
space:
mode:
authorGeorge Joseph <gjoseph@digium.com>2017-03-02 16:11:06 -0700
committerGeorge Joseph <gjoseph@digium.com>2017-03-14 12:26:32 -0600
commit8470c2bdea89f1ed89d8a773d775de96ededf3fb (patch)
tree82c15910f51fa05dca89ed75d3528b9e063b0805 /include/asterisk/sdp_options.h
parent018e01543dd7392fd99873090b1781c05362b3cf (diff)
RFC sdp: Initial SDP creation
* Added additional fields to ast_sdp_options. * Re-organized ast_sdp. * Updated field names to correspond to RFC4566 terminology. * Created allocs/frees for SDP children. * Created getters/setters for SDP children where appropriate. * Added ast_sdp_create_from_state. * Refactored res_sdp_translator_pjmedia for changes. Change-Id: Iefbd877af7f5a4d3c74deead1bff8802661b0d48
Diffstat (limited to 'include/asterisk/sdp_options.h')
-rw-r--r--include/asterisk/sdp_options.h390
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 */