Merge "res_calendar: Specialized calendars depend on symbols of general calendar."
[asterisk/asterisk.git] / main / sdp_private.h
1 /*
2  * Asterisk -- An open source telephony toolkit.
3  *
4  * Copyright (C) 2017, Digium, Inc.
5  *
6  * Mark Michelson <mmichelson@digium.com>
7  *
8  * See http://www.asterisk.org for more information about
9  * the Asterisk project. Please do not directly contact
10  * any of the maintainers of this project for assistance;
11  * the project provides a web site, mailing lists and IRC
12  * channels for your use.
13  *
14  * This program is free software, distributed under the terms of
15  * the GNU General Public License Version 2. See the LICENSE file
16  * at the top of the source tree.
17  */
18
19 #ifndef _MAIN_SDP_PRIVATE_H
20 #define _MAIN_SDP_PRIVATE_H
21
22 #include "asterisk/stringfields.h"
23 #include "asterisk/sdp_options.h"
24
25 struct ast_sdp_options {
26         AST_DECLARE_STRING_FIELDS(
27                 /*! Media address to advertise in SDP session c= line */
28                 AST_STRING_FIELD(media_address);
29                 /*! Optional address of the interface media should use. */
30                 AST_STRING_FIELD(interface_address);
31                 /*! SDP origin username */
32                 AST_STRING_FIELD(sdpowner);
33                 /*! SDP session name */
34                 AST_STRING_FIELD(sdpsession);
35                 /*! RTP Engine Name */
36                 AST_STRING_FIELD(rtp_engine);
37         );
38         /*! Scheduler context for the media stream types (Mainly for RTP) */
39         struct ast_sched_context *sched[AST_MEDIA_TYPE_END];
40         /*! Capabilities to create new streams of the indexed media type. */
41         struct ast_format_cap *caps[AST_MEDIA_TYPE_END];
42         /*! User supplied context data pointer for the SDP state. */
43         void *state_context;
44         /*! Modify negotiated topology before create answer SDP callback. */
45         ast_sdp_answerer_modify_cb answerer_modify_cb;
46         /*! Modify proposed topology before create offer SDP callback. */
47         ast_sdp_offerer_modify_cb offerer_modify_cb;
48         /*! Configure proposed topology extra stream options before create offer SDP callback. */
49         ast_sdp_offerer_config_cb offerer_config_cb;
50         /*! Negotiated topology is about to be applied callback. */
51         ast_sdp_preapply_cb preapply_cb;
52         /*! Negotiated topology was just applied callback. */
53         ast_sdp_postapply_cb postapply_cb;
54         struct {
55                 unsigned int rtp_symmetric:1;
56                 unsigned int udptl_symmetric:1;
57                 unsigned int rtp_ipv6:1;
58                 unsigned int g726_non_standard:1;
59                 unsigned int rtcp_mux:1;
60                 unsigned int ssrc:1;
61         };
62         struct {
63                 unsigned int tos_audio;
64                 unsigned int cos_audio;
65                 unsigned int tos_video;
66                 unsigned int cos_video;
67                 unsigned int udptl_far_max_datagram;
68                 /*! Maximum number of streams to allow. */
69                 unsigned int max_streams;
70         };
71         enum ast_sdp_options_dtmf dtmf;
72         enum ast_sdp_options_ice ice;
73         enum ast_sdp_options_impl impl;
74         enum ast_sdp_options_encryption encryption;
75         enum ast_t38_ec_modes udptl_error_correction;
76 };
77
78 #endif /* _MAIN_SDP_PRIVATE_H */