soa 1.12.10
|
00001 /* 00002 * This file is part of the Sofia-SIP package 00003 * 00004 * Copyright (C) 2005 Nokia Corporation. 00005 * 00006 * Contact: Pekka Pessi <pekka.pessi@nokia-email.address.hidden> 00007 * 00008 * This library is free software; you can redistribute it and/or 00009 * modify it under the terms of the GNU Lesser General Public License 00010 * as published by the Free Software Foundation; either version 2.1 of 00011 * the License, or (at your option) any later version. 00012 * 00013 * This library is distributed in the hope that it will be useful, but 00014 * WITHOUT ANY WARRANTY; without even the implied warranty of 00015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00016 * Lesser General Public License for more details. 00017 * 00018 * You should have received a copy of the GNU Lesser General Public 00019 * License along with this library; if not, write to the Free Software 00020 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 00021 * 02110-1301 USA 00022 * 00023 */ 00024 00025 #ifndef SOA_TAG_H 00026 #define SOA_TAG_H 00027 00034 #ifndef SU_TAG_H 00035 #include <sofia-sip/su_tag.h> 00036 #endif 00037 #ifndef SDP_TAG_H 00038 #include <sofia-sip/sdp_tag.h> 00039 #endif 00040 00041 SOFIA_BEGIN_DECLS 00042 00044 SOFIAPUBVAR tagi_t soa_tag_list[]; 00045 00047 #define SOATAG_ANY() soatag_any, ((tag_value_t)0) 00048 SOFIAPUBVAR tag_typedef_t soatag_any; 00049 00053 enum { 00054 SOA_ACTIVE_REJECTED = -8, 00055 SOA_ACTIVE_DISABLED = -4, 00056 SOA_ACTIVE_INACTIVE = 0, 00057 SOA_ACTIVE_SENDONLY = 1, 00058 SOA_ACTIVE_RECVONLY = 2, 00059 SOA_ACTIVE_SENDRECV = SOA_ACTIVE_SENDONLY | SOA_ACTIVE_RECVONLY 00061 }; 00062 00063 #define SOA_ACTIVE_DISABLED SOA_ACTIVE_DISABLED 00064 #define SOA_ACTIVE_REJECTED SOA_ACTIVE_REJECTED 00065 #define SOA_ACTIVE_INACTIVE SOA_ACTIVE_INACTIVE 00066 #define SOA_ACTIVE_SENDONLY SOA_ACTIVE_SENDONLY 00067 #define SOA_ACTIVE_RECVONLY SOA_ACTIVE_RECVONLY 00068 #define SOA_ACTIVE_SENDRECV SOA_ACTIVE_SENDRECV 00069 00070 /* 00071 * SOA engine and media parameters set by soa_set_params(), get by 00072 * soa_get_params() or soa_get_paramlist() 00073 */ 00074 00075 #define SOATAG_LOCAL_SDP(x) soatag_local_sdp, sdptag_session_v(x) 00076 SOFIAPUBVAR tag_typedef_t soatag_local_sdp; 00077 #define SOATAG_LOCAL_SDP_REF(x) \ 00078 soatag_local_sdp_ref, sdptag_session_vr(&(x)) 00079 SOFIAPUBVAR tag_typedef_t soatag_local_sdp_ref; 00080 00081 #define SOATAG_LOCAL_SDP_STR(x) soatag_local_sdp_str, tag_str_v(x) 00082 SOFIAPUBVAR tag_typedef_t soatag_local_sdp_str; 00083 #define SOATAG_LOCAL_SDP_STR_REF(x) \ 00084 soatag_local_sdp_str_ref, tag_str_vr(&(x)) 00085 SOFIAPUBVAR tag_typedef_t soatag_local_sdp_str_ref; 00086 00087 #define SOATAG_USER_SDP(x) soatag_user_sdp, sdptag_session_v(x) 00088 SOFIAPUBVAR tag_typedef_t soatag_user_sdp; 00089 #define SOATAG_USER_SDP_REF(x) \ 00090 soatag_user_sdp_ref, sdptag_session_vr(&(x)) 00091 SOFIAPUBVAR tag_typedef_t soatag_user_sdp_ref; 00092 00093 #define SOATAG_USER_SDP_STR(x) soatag_user_sdp_str, tag_str_v(x) 00094 SOFIAPUBVAR tag_typedef_t soatag_user_sdp_str; 00095 #define SOATAG_USER_SDP_STR_REF(x) \ 00096 soatag_user_sdp_str_ref, tag_str_vr(&(x)) 00097 SOFIAPUBVAR tag_typedef_t soatag_user_sdp_str_ref; 00098 00099 #define SOATAG_CAPS_SDP(x) soatag_caps_sdp, sdptag_session_v(x) 00100 SOFIAPUBVAR tag_typedef_t soatag_caps_sdp; 00101 #define SOATAG_CAPS_SDP_REF(x) \ 00102 soatag_caps_sdp_ref, sdptag_session_vr(&(x)) 00103 SOFIAPUBVAR tag_typedef_t soatag_caps_sdp_ref; 00104 00105 #define SOATAG_CAPS_SDP_STR(x) soatag_caps_sdp_str, tag_str_v(x) 00106 SOFIAPUBVAR tag_typedef_t soatag_caps_sdp_str; 00107 #define SOATAG_CAPS_SDP_STR_REF(x) \ 00108 soatag_caps_sdp_str_ref, tag_str_vr(&(x)) 00109 SOFIAPUBVAR tag_typedef_t soatag_caps_sdp_str_ref; 00110 00111 #define SOATAG_REMOTE_SDP(x) soatag_remote_sdp, sdptag_session_v(x) 00112 SOFIAPUBVAR tag_typedef_t soatag_remote_sdp; 00113 #define SOATAG_REMOTE_SDP_REF(x) \ 00114 soatag_remote_sdp_ref, sdptag_session_vr(&(x)) 00115 SOFIAPUBVAR tag_typedef_t soatag_remote_sdp_ref; 00116 00117 #define SOATAG_REMOTE_SDP_STR(x) soatag_remote_sdp_str, tag_str_v(x) 00118 SOFIAPUBVAR tag_typedef_t soatag_remote_sdp_str; 00119 #define SOATAG_REMOTE_SDP_STR_REF(x) \ 00120 soatag_remote_sdp_str_ref, tag_str_vr(&(x)) 00121 SOFIAPUBVAR tag_typedef_t soatag_remote_sdp_str_ref; 00122 00123 #define SOATAG_LOCAL_SDP(x) soatag_local_sdp, sdptag_session_v(x) 00124 SOFIAPUBVAR tag_typedef_t soatag_local_sdp; 00125 #define SOATAG_LOCAL_SDP_REF(x) \ 00126 soatag_local_sdp_ref, sdptag_session_vr(&(x)) 00127 SOFIAPUBVAR tag_typedef_t soatag_local_sdp_ref; 00128 00129 #define SOATAG_LOCAL_SDP_STR(x) soatag_local_sdp_str, tag_str_v(x) 00130 SOFIAPUBVAR tag_typedef_t soatag_local_sdp_str; 00131 #define SOATAG_LOCAL_SDP_STR_REF(x) \ 00132 soatag_local_sdp_str_ref, tag_str_vr(&(x)) 00133 SOFIAPUBVAR tag_typedef_t soatag_session_sdp_str_ref; 00134 00135 #define SOATAG_AF(x) soatag_af, tag_int_v((x)) 00136 SOFIAPUBVAR tag_typedef_t soatag_af; 00137 00138 #define SOATAG_AF_REF(x) soatag_af_ref, tag_int_vr(&(x)) 00139 SOFIAPUBVAR tag_typedef_t soatag_af_ref; 00140 00142 enum soa_af { 00143 SOA_AF_ANY, 00144 SOA_AF_IP4_ONLY, 00145 SOA_AF_IP6_ONLY, 00146 SOA_AF_IP4_IP6, 00147 SOA_AF_IP6_IP4 00148 }; 00149 00150 #define SOA_AF_ANY SOA_AF_ANY 00151 #define SOA_AF_IP4_ONLY SOA_AF_IP4_ONLY 00152 #define SOA_AF_IP6_ONLY SOA_AF_IP6_ONLY 00153 #define SOA_AF_IP4_IP6 SOA_AF_IP4_IP6 00154 #define SOA_AF_IP6_IP4 SOA_AF_IP6_IP4 00155 00156 #define SOATAG_ADDRESS(x) soatag_address, tag_str_v(x) 00157 SOFIAPUBVAR tag_typedef_t soatag_address; 00158 #define SOATAG_ADDRESS_REF(x) soatag_address_ref, tag_str_vr(&(x)) 00159 SOFIAPUBVAR tag_typedef_t soatag_address_ref; 00160 00161 #define SOATAG_RTP_SELECT(x) soatag_rtp_select, tag_int_v(x) 00162 SOFIAPUBVAR tag_typedef_t soatag_rtp_select; 00163 #define SOATAG_RTP_SELECT_REF(x) soatag_rtp_select_ref, tag_int_vr(&(x)) 00164 SOFIAPUBVAR tag_typedef_t soatag_rtp_select_ref; 00165 00167 enum { 00168 SOA_RTP_SELECT_SINGLE, 00169 SOA_RTP_SELECT_COMMON, 00170 SOA_RTP_SELECT_ALL 00171 }; 00172 00173 #define SOATAG_AUDIO_AUX(x) soatag_audio_aux, tag_str_v(x) 00174 SOFIAPUBVAR tag_typedef_t soatag_audio_aux; 00175 #define SOATAG_AUDIO_AUX_REF(x) soatag_audio_aux_ref, tag_str_vr(&(x)) 00176 SOFIAPUBVAR tag_typedef_t soatag_audio_aux_ref; 00177 00178 #define SOATAG_RTP_SORT(x) soatag_rtp_sort, tag_int_v(x) 00179 SOFIAPUBVAR tag_typedef_t soatag_rtp_sort; 00180 #define SOATAG_RTP_SORT_REF(x) soatag_rtp_sort_ref, tag_int_vr(&(x)) 00181 SOFIAPUBVAR tag_typedef_t soatag_rtp_sort_ref; 00182 00184 enum { 00185 SOA_RTP_SORT_DEFAULT, 00189 SOA_RTP_SORT_LOCAL, 00190 SOA_RTP_SORT_REMOTE 00191 }; 00192 00193 #define SOATAG_RTP_MISMATCH(x) soatag_rtp_mismatch, tag_bool_v(x) 00194 SOFIAPUBVAR tag_typedef_t soatag_rtp_mismatch; 00195 #define SOATAG_RTP_MISMATCH_REF(x) soatag_rtp_mismatch_ref, tag_bool_vr(&(x)) 00196 SOFIAPUBVAR tag_typedef_t soatag_rtp_mismatch_ref; 00197 00198 #define SOATAG_ACTIVE_AUDIO(x) soatag_active_audio, tag_int_v(x) 00199 SOFIAPUBVAR tag_typedef_t soatag_active_audio; 00200 00201 #define SOATAG_ACTIVE_AUDIO_REF(x) soatag_active_audio_ref, tag_int_vr(&(x)) 00202 SOFIAPUBVAR tag_typedef_t soatag_active_audio_ref; 00203 00204 #define SOATAG_ACTIVE_VIDEO(x) soatag_active_video, tag_int_v(x) 00205 SOFIAPUBVAR tag_typedef_t soatag_active_video; 00206 00207 #define SOATAG_ACTIVE_VIDEO_REF(x) soatag_active_video_ref, tag_int_vr(&(x)) 00208 SOFIAPUBVAR tag_typedef_t soatag_active_video_ref; 00209 00210 #define SOATAG_ACTIVE_IMAGE(x) soatag_active_image, tag_int_v(x) 00211 SOFIAPUBVAR tag_typedef_t soatag_active_image; 00212 00213 #define SOATAG_ACTIVE_IMAGE_REF(x) soatag_active_image_ref, tag_int_vr(&(x)) 00214 SOFIAPUBVAR tag_typedef_t soatag_active_image_ref; 00215 00216 #define SOATAG_ACTIVE_CHAT(x) soatag_active_chat, tag_int_v(x) 00217 SOFIAPUBVAR tag_typedef_t soatag_active_chat; 00218 00219 #define SOATAG_ACTIVE_CHAT_REF(x) soatag_active_chat_ref, tag_int_vr(&(x)) 00220 SOFIAPUBVAR tag_typedef_t soatag_active_chat_ref; 00221 00223 #define SOATAG_SRTP_ENABLE(x) soatag_srtp_enable, tag_bool_v(x) 00224 SOFIAPUBVAR tag_typedef_t soatag_srtp_enable; 00225 00226 #define SOATAG_SRTP_ENABLE_REF(x) soatag_srtp_enable_ref, tag_bool_vr(&(x)) 00227 SOFIAPUBVAR tag_typedef_t soatag_srtp_enable_ref; 00228 00229 #define SOATAG_SRTP_CONFIDENTIALITY(x) soatag_srtp_confidentiality, tag_bool_v(x) 00230 SOFIAPUBVAR tag_typedef_t soatag_srtp_confidentiality; 00231 #define SOATAG_SRTP_CONFIDENTIALITY_REF(x) soatag_srtp_confidentiality_ref, tag_bool_vr(&(x)) 00232 SOFIAPUBVAR tag_typedef_t soatag_srtp_confidentiality_ref; 00233 00235 #define SOATAG_SRTP_INTEGRITY(x) soatag_srtp_integrity, tag_bool_v(x) 00236 SOFIAPUBVAR tag_typedef_t soatag_srtp_integrity; 00237 00238 #define SOATAG_SRTP_INTEGRITY_REF(x) \ 00239 soatag_srtp_integrity_ref, tag_bool_vr(&(x)) 00240 SOFIAPUBVAR tag_typedef_t soatag_srtp_integrity_ref; 00241 00242 #define SOATAG_HOLD(x) soatag_hold, tag_str_v(x) 00243 SOFIAPUBVAR tag_typedef_t soatag_hold; 00244 #define SOATAG_HOLD_REF(x) soatag_hold_ref, tag_str_vr(&(x)) 00245 SOFIAPUBVAR tag_typedef_t soatag_hold_ref; 00246 00247 #define SOATAG_ORDERED_USER(x) soatag_ordered_user, tag_bool_v(x) 00248 SOFIAPUBVAR tag_typedef_t soatag_ordered_user; 00249 00250 #define SOATAG_ORDERED_USER_REF(x) \ 00251 soatag_ordered_user_ref, tag_bool_vr(&(x)) 00252 SOFIAPUBVAR tag_typedef_t soatag_ordered_user_ref; 00253 00254 #define SOATAG_REUSE_REJECTED(x) soatag_reuse_rejected, tag_bool_v(x) 00255 SOFIAPUBVAR tag_typedef_t soatag_reuse_rejected; 00256 00257 #define SOATAG_REUSE_REJECTED_REF(x) \ 00258 soatag_reuse_rejected_ref, tag_bool_vr(&(x)) 00259 SOFIAPUBVAR tag_typedef_t soatag_reuse_rejected_ref; 00260 00261 SOFIA_END_DECLS 00262 00263 #endif /* SOA_TAG_H */