soa  1.12.11devel
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
soa_tag.h
Go to the documentation of this file.
1 /*
2  * This file is part of the Sofia-SIP package
3  *
4  * Copyright (C) 2005 Nokia Corporation.
5  *
6  * Contact: Pekka Pessi <pekka.pessi@nokia-email.address.hidden>
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public License
10  * as published by the Free Software Foundation; either version 2.1 of
11  * the License, or (at your option) any later version.
12  *
13  * This library is distributed in the hope that it will be useful, but
14  * WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  * Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with this library; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
21  * 02110-1301 USA
22  *
23  */
24 
25 #ifndef SOA_TAG_H
26 #define SOA_TAG_H
27 
34 #ifndef SU_TAG_H
35 #include <sofia-sip/su_tag.h>
36 #endif
37 #ifndef SDP_TAG_H
38 #include <sofia-sip/sdp_tag.h>
39 #endif
40 
41 SOFIA_BEGIN_DECLS
42 
45 
47 #define SOATAG_ANY() soatag_any, ((tag_value_t)0)
48 SOFIAPUBVAR tag_typedef_t soatag_any;
49 
53 enum {
61 };
62 
63 #define SOA_ACTIVE_DISABLED SOA_ACTIVE_DISABLED
64 #define SOA_ACTIVE_REJECTED SOA_ACTIVE_REJECTED
65 #define SOA_ACTIVE_INACTIVE SOA_ACTIVE_INACTIVE
66 #define SOA_ACTIVE_SENDONLY SOA_ACTIVE_SENDONLY
67 #define SOA_ACTIVE_RECVONLY SOA_ACTIVE_RECVONLY
68 #define SOA_ACTIVE_SENDRECV SOA_ACTIVE_SENDRECV
69 
70 /*
71  * SOA engine and media parameters set by soa_set_params(), get by
72  * soa_get_params() or soa_get_paramlist()
73  */
74 
75 #define SOATAG_USER_SDP(x) soatag_user_sdp, sdptag_session_v(x)
76 SOFIAPUBVAR tag_typedef_t soatag_user_sdp;
77 #define SOATAG_USER_SDP_REF(x) \
78  soatag_user_sdp_ref, sdptag_session_vr(&(x))
79 SOFIAPUBVAR tag_typedef_t soatag_user_sdp_ref;
80 
81 #define SOATAG_USER_SDP_STR(x) soatag_user_sdp_str, tag_str_v(x)
82 SOFIAPUBVAR tag_typedef_t soatag_user_sdp_str;
83 #define SOATAG_USER_SDP_STR_REF(x) \
84  soatag_user_sdp_str_ref, tag_str_vr(&(x))
85 SOFIAPUBVAR tag_typedef_t soatag_user_sdp_str_ref;
86 
87 #define SOATAG_CAPS_SDP(x) soatag_caps_sdp, sdptag_session_v(x)
88 SOFIAPUBVAR tag_typedef_t soatag_caps_sdp;
89 #define SOATAG_CAPS_SDP_REF(x) \
90  soatag_caps_sdp_ref, sdptag_session_vr(&(x))
91 SOFIAPUBVAR tag_typedef_t soatag_caps_sdp_ref;
92 
93 #define SOATAG_CAPS_SDP_STR(x) soatag_caps_sdp_str, tag_str_v(x)
94 SOFIAPUBVAR tag_typedef_t soatag_caps_sdp_str;
95 #define SOATAG_CAPS_SDP_STR_REF(x) \
96  soatag_caps_sdp_str_ref, tag_str_vr(&(x))
97 SOFIAPUBVAR tag_typedef_t soatag_caps_sdp_str_ref;
98 
99 #define SOATAG_REMOTE_SDP(x) soatag_remote_sdp, sdptag_session_v(x)
100 SOFIAPUBVAR tag_typedef_t soatag_remote_sdp;
101 #define SOATAG_REMOTE_SDP_REF(x) \
102  soatag_remote_sdp_ref, sdptag_session_vr(&(x))
103 SOFIAPUBVAR tag_typedef_t soatag_remote_sdp_ref;
104 
105 #define SOATAG_REMOTE_SDP_STR(x) soatag_remote_sdp_str, tag_str_v(x)
106 SOFIAPUBVAR tag_typedef_t soatag_remote_sdp_str;
107 #define SOATAG_REMOTE_SDP_STR_REF(x) \
108  soatag_remote_sdp_str_ref, tag_str_vr(&(x))
109 SOFIAPUBVAR tag_typedef_t soatag_remote_sdp_str_ref;
110 
111 #define SOATAG_LOCAL_SDP(x) soatag_local_sdp, sdptag_session_v(x)
112 SOFIAPUBVAR tag_typedef_t soatag_local_sdp;
113 #define SOATAG_LOCAL_SDP_REF(x) \
114  soatag_local_sdp_ref, sdptag_session_vr(&(x))
115 SOFIAPUBVAR tag_typedef_t soatag_local_sdp_ref;
116 
117 #define SOATAG_LOCAL_SDP_STR(x) soatag_local_sdp_str, tag_str_v(x)
118 SOFIAPUBVAR tag_typedef_t soatag_local_sdp_str;
119 #define SOATAG_LOCAL_SDP_STR_REF(x) \
120  soatag_local_sdp_str_ref, tag_str_vr(&(x))
121 SOFIAPUBVAR tag_typedef_t soatag_local_sdp_str_ref;
122 
123 #define SOATAG_AF(x) soatag_af, tag_int_v((x))
124 SOFIAPUBVAR tag_typedef_t soatag_af;
125 
126 #define SOATAG_AF_REF(x) soatag_af_ref, tag_int_vr(&(x))
127 SOFIAPUBVAR tag_typedef_t soatag_af_ref;
128 
130 enum soa_af {
136 };
137 
138 #define SOA_AF_ANY SOA_AF_ANY
139 #define SOA_AF_IP4_ONLY SOA_AF_IP4_ONLY
140 #define SOA_AF_IP6_ONLY SOA_AF_IP6_ONLY
141 #define SOA_AF_IP4_IP6 SOA_AF_IP4_IP6
142 #define SOA_AF_IP6_IP4 SOA_AF_IP6_IP4
143 
144 #define SOATAG_ADDRESS(x) soatag_address, tag_str_v(x)
145 SOFIAPUBVAR tag_typedef_t soatag_address;
146 #define SOATAG_ADDRESS_REF(x) soatag_address_ref, tag_str_vr(&(x))
147 SOFIAPUBVAR tag_typedef_t soatag_address_ref;
148 
149 #define SOATAG_RTP_SELECT(x) soatag_rtp_select, tag_int_v(x)
150 SOFIAPUBVAR tag_typedef_t soatag_rtp_select;
151 #define SOATAG_RTP_SELECT_REF(x) soatag_rtp_select_ref, tag_int_vr(&(x))
152 SOFIAPUBVAR tag_typedef_t soatag_rtp_select_ref;
153 
155 enum {
159  };
160 
161 #define SOATAG_AUDIO_AUX(x) soatag_audio_aux, tag_str_v(x)
162 SOFIAPUBVAR tag_typedef_t soatag_audio_aux;
163 #define SOATAG_AUDIO_AUX_REF(x) soatag_audio_aux_ref, tag_str_vr(&(x))
164 SOFIAPUBVAR tag_typedef_t soatag_audio_aux_ref;
165 
166 #define SOATAG_RTP_SORT(x) soatag_rtp_sort, tag_int_v(x)
167 SOFIAPUBVAR tag_typedef_t soatag_rtp_sort;
168 #define SOATAG_RTP_SORT_REF(x) soatag_rtp_sort_ref, tag_int_vr(&(x))
169 SOFIAPUBVAR tag_typedef_t soatag_rtp_sort_ref;
170 
172 enum {
179  };
180 
181 #define SOATAG_RTP_MISMATCH(x) soatag_rtp_mismatch, tag_bool_v(x)
182 SOFIAPUBVAR tag_typedef_t soatag_rtp_mismatch;
183 #define SOATAG_RTP_MISMATCH_REF(x) soatag_rtp_mismatch_ref, tag_bool_vr(&(x))
184 SOFIAPUBVAR tag_typedef_t soatag_rtp_mismatch_ref;
185 
186 #define SOATAG_ACTIVE_AUDIO(x) soatag_active_audio, tag_int_v(x)
187 SOFIAPUBVAR tag_typedef_t soatag_active_audio;
188 
189 #define SOATAG_ACTIVE_AUDIO_REF(x) soatag_active_audio_ref, tag_int_vr(&(x))
190 SOFIAPUBVAR tag_typedef_t soatag_active_audio_ref;
191 
192 #define SOATAG_ACTIVE_VIDEO(x) soatag_active_video, tag_int_v(x)
193 SOFIAPUBVAR tag_typedef_t soatag_active_video;
194 
195 #define SOATAG_ACTIVE_VIDEO_REF(x) soatag_active_video_ref, tag_int_vr(&(x))
196 SOFIAPUBVAR tag_typedef_t soatag_active_video_ref;
197 
198 #define SOATAG_ACTIVE_IMAGE(x) soatag_active_image, tag_int_v(x)
199 SOFIAPUBVAR tag_typedef_t soatag_active_image;
200 
201 #define SOATAG_ACTIVE_IMAGE_REF(x) soatag_active_image_ref, tag_int_vr(&(x))
202 SOFIAPUBVAR tag_typedef_t soatag_active_image_ref;
203 
204 #define SOATAG_ACTIVE_CHAT(x) soatag_active_chat, tag_int_v(x)
205 SOFIAPUBVAR tag_typedef_t soatag_active_chat;
206 
207 #define SOATAG_ACTIVE_CHAT_REF(x) soatag_active_chat_ref, tag_int_vr(&(x))
208 SOFIAPUBVAR tag_typedef_t soatag_active_chat_ref;
209 
211 #define SOATAG_SRTP_ENABLE(x) soatag_srtp_enable, tag_bool_v(x)
212 SOFIAPUBVAR tag_typedef_t soatag_srtp_enable;
213 
214 #define SOATAG_SRTP_ENABLE_REF(x) soatag_srtp_enable_ref, tag_bool_vr(&(x))
215 SOFIAPUBVAR tag_typedef_t soatag_srtp_enable_ref;
216 
217 #define SOATAG_SRTP_CONFIDENTIALITY(x) soatag_srtp_confidentiality, tag_bool_v(x)
218 SOFIAPUBVAR tag_typedef_t soatag_srtp_confidentiality;
219 #define SOATAG_SRTP_CONFIDENTIALITY_REF(x) soatag_srtp_confidentiality_ref, tag_bool_vr(&(x))
220 SOFIAPUBVAR tag_typedef_t soatag_srtp_confidentiality_ref;
221 
223 #define SOATAG_SRTP_INTEGRITY(x) soatag_srtp_integrity, tag_bool_v(x)
224 SOFIAPUBVAR tag_typedef_t soatag_srtp_integrity;
225 
226 #define SOATAG_SRTP_INTEGRITY_REF(x) \
227  soatag_srtp_integrity_ref, tag_bool_vr(&(x))
228 SOFIAPUBVAR tag_typedef_t soatag_srtp_integrity_ref;
229 
230 #define SOATAG_HOLD(x) soatag_hold, tag_str_v(x)
231 SOFIAPUBVAR tag_typedef_t soatag_hold;
232 #define SOATAG_HOLD_REF(x) soatag_hold_ref, tag_str_vr(&(x))
233 SOFIAPUBVAR tag_typedef_t soatag_hold_ref;
234 
235 #define SOATAG_ORDERED_USER(x) soatag_ordered_user, tag_bool_v(x)
236 SOFIAPUBVAR tag_typedef_t soatag_ordered_user;
237 
238 #define SOATAG_ORDERED_USER_REF(x) \
239  soatag_ordered_user_ref, tag_bool_vr(&(x))
240 SOFIAPUBVAR tag_typedef_t soatag_ordered_user_ref;
241 
242 #define SOATAG_REUSE_REJECTED(x) soatag_reuse_rejected, tag_bool_v(x)
243 SOFIAPUBVAR tag_typedef_t soatag_reuse_rejected;
244 
245 #define SOATAG_REUSE_REJECTED_REF(x) \
246  soatag_reuse_rejected_ref, tag_bool_vr(&(x))
247 SOFIAPUBVAR tag_typedef_t soatag_reuse_rejected_ref;
248 
249 #define SOATAG_DELAYED_OFFER_ENABLE(x) soatag_delayed_offer_enable, tag_bool_v(x)
250 SOFIAPUBVAR tag_typedef_t soatag_delayed_offer_enable;
251 
252 #define SOATAG_DELAYED_OFFER_ENABLE_REF(x) soatag_delayed_offer_enable_ref, tag_bool_vr(&(x))
253 SOFIAPUBVAR tag_typedef_t soatag_delayed_offer_enable_ref;
254 
255 #define SOATAG_USER_O_LINE(x) soatag_user_o_line, tag_bool_v(x)
256 SOFIAPUBVAR tag_typedef_t soatag_user_o_line;
257 #define SOATAG_USER_O_LINE_REF(x) soatag_user_o_line_ref, tag_bool_vr(&(x))
258 SOFIAPUBVAR tag_typedef_t soatag_user_o_line_ref;
259 
260 SOFIA_END_DECLS
261 
262 #endif /* SOA_TAG_H */
struct tag_type_s const tag_typedef_t[1]
tagi_t soa_tag_list[]
List of base SOA tags (defined in base SOA module).
Use IP version 6 only.
Definition: soa_tag.h:133
Use IP version 4 only.
Definition: soa_tag.h:132
Media is inactive: no RTP.
Definition: soa_tag.h:56
Select all local codecs.
Definition: soa_tag.h:158
Media is sent only.
Definition: soa_tag.h:57
Select codecs by local preference when media is recvonly, remote preference othewise.
Definition: soa_tag.h:173
soa_af
SOATAG_AF() parameter type.
Definition: soa_tag.h:130
Media is bidirectional.
Definition: soa_tag.h:59
Prefer IP4 to IP6.
Definition: soa_tag.h:134
#define SOFIAPUBVAR
Media not negotiated.
Definition: soa_tag.h:55
Select all common codecs.
Definition: soa_tag.h:157
Prefer IP6 to IP4.
Definition: soa_tag.h:135
Select codecs by remote preference.
Definition: soa_tag.h:178
Media rejected in negotiation.
Definition: soa_tag.h:54
Select the best common codec.
Definition: soa_tag.h:156
Use any address family.
Definition: soa_tag.h:131
Media is received only.
Definition: soa_tag.h:58
Select codecs by local preference.
Definition: soa_tag.h:177

Sofia-SIP 1.12.11devel - Copyright (C) 2006 Nokia Corporation. All rights reserved. Licensed under the terms of the GNU Lesser General Public License.