00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
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
00072
00073
00074
00075 #define SOATAG_USER_SDP(x) soatag_user_sdp, sdptag_session_v(x)
00076 SOFIAPUBVAR tag_typedef_t soatag_user_sdp;
00077 #define SOATAG_USER_SDP_REF(x) \
00078 soatag_user_sdp_ref, sdptag_session_vr(&(x))
00079 SOFIAPUBVAR tag_typedef_t soatag_user_sdp_ref;
00080
00081 #define SOATAG_USER_SDP_STR(x) soatag_user_sdp_str, tag_str_v(x)
00082 SOFIAPUBVAR tag_typedef_t soatag_user_sdp_str;
00083 #define SOATAG_USER_SDP_STR_REF(x) \
00084 soatag_user_sdp_str_ref, tag_str_vr(&(x))
00085 SOFIAPUBVAR tag_typedef_t soatag_user_sdp_str_ref;
00086
00087 #define SOATAG_CAPS_SDP(x) soatag_caps_sdp, sdptag_session_v(x)
00088 SOFIAPUBVAR tag_typedef_t soatag_caps_sdp;
00089 #define SOATAG_CAPS_SDP_REF(x) \
00090 soatag_caps_sdp_ref, sdptag_session_vr(&(x))
00091 SOFIAPUBVAR tag_typedef_t soatag_caps_sdp_ref;
00092
00093 #define SOATAG_CAPS_SDP_STR(x) soatag_caps_sdp_str, tag_str_v(x)
00094 SOFIAPUBVAR tag_typedef_t soatag_caps_sdp_str;
00095 #define SOATAG_CAPS_SDP_STR_REF(x) \
00096 soatag_caps_sdp_str_ref, tag_str_vr(&(x))
00097 SOFIAPUBVAR tag_typedef_t soatag_caps_sdp_str_ref;
00098
00099 #define SOATAG_REMOTE_SDP(x) soatag_remote_sdp, sdptag_session_v(x)
00100 SOFIAPUBVAR tag_typedef_t soatag_remote_sdp;
00101 #define SOATAG_REMOTE_SDP_REF(x) \
00102 soatag_remote_sdp_ref, sdptag_session_vr(&(x))
00103 SOFIAPUBVAR tag_typedef_t soatag_remote_sdp_ref;
00104
00105 #define SOATAG_REMOTE_SDP_STR(x) soatag_remote_sdp_str, tag_str_v(x)
00106 SOFIAPUBVAR tag_typedef_t soatag_remote_sdp_str;
00107 #define SOATAG_REMOTE_SDP_STR_REF(x) \
00108 soatag_remote_sdp_str_ref, tag_str_vr(&(x))
00109 SOFIAPUBVAR tag_typedef_t soatag_remote_sdp_str_ref;
00110
00111 #define SOATAG_LOCAL_SDP(x) soatag_local_sdp, sdptag_session_v(x)
00112 SOFIAPUBVAR tag_typedef_t soatag_local_sdp;
00113 #define SOATAG_LOCAL_SDP_REF(x) \
00114 soatag_local_sdp_ref, sdptag_session_vr(&(x))
00115 SOFIAPUBVAR tag_typedef_t soatag_local_sdp_ref;
00116
00117 #define SOATAG_LOCAL_SDP_STR(x) soatag_local_sdp_str, tag_str_v(x)
00118 SOFIAPUBVAR tag_typedef_t soatag_local_sdp_str;
00119 #define SOATAG_LOCAL_SDP_STR_REF(x) \
00120 soatag_local_sdp_str_ref, tag_str_vr(&(x))
00121 SOFIAPUBVAR tag_typedef_t soatag_session_sdp_str_ref;
00122
00123 #define SOATAG_AF(x) soatag_af, tag_int_v((x))
00124 SOFIAPUBVAR tag_typedef_t soatag_af;
00125
00126 #define SOATAG_AF_REF(x) soatag_af_ref, tag_int_vr(&(x))
00127 SOFIAPUBVAR tag_typedef_t soatag_af_ref;
00128
00130 enum soa_af {
00131 SOA_AF_ANY,
00132 SOA_AF_IP4_ONLY,
00133 SOA_AF_IP6_ONLY,
00134 SOA_AF_IP4_IP6,
00135 SOA_AF_IP6_IP4
00136 };
00137
00138 #define SOA_AF_ANY SOA_AF_ANY
00139 #define SOA_AF_IP4_ONLY SOA_AF_IP4_ONLY
00140 #define SOA_AF_IP6_ONLY SOA_AF_IP6_ONLY
00141 #define SOA_AF_IP4_IP6 SOA_AF_IP4_IP6
00142 #define SOA_AF_IP6_IP4 SOA_AF_IP6_IP4
00143
00144 #define SOATAG_ADDRESS(x) soatag_address, tag_str_v(x)
00145 SOFIAPUBVAR tag_typedef_t soatag_address;
00146 #define SOATAG_ADDRESS_REF(x) soatag_address_ref, tag_str_vr(&(x))
00147 SOFIAPUBVAR tag_typedef_t soatag_address_ref;
00148
00149 #define SOATAG_RTP_SELECT(x) soatag_rtp_select, tag_int_v(x)
00150 SOFIAPUBVAR tag_typedef_t soatag_rtp_select;
00151 #define SOATAG_RTP_SELECT_REF(x) soatag_rtp_select_ref, tag_int_vr(&(x))
00152 SOFIAPUBVAR tag_typedef_t soatag_rtp_select_ref;
00153
00155 enum {
00156 SOA_RTP_SELECT_SINGLE,
00157 SOA_RTP_SELECT_COMMON,
00158 SOA_RTP_SELECT_ALL
00159 };
00160
00161 #define SOATAG_AUDIO_AUX(x) soatag_audio_aux, tag_str_v(x)
00162 SOFIAPUBVAR tag_typedef_t soatag_audio_aux;
00163 #define SOATAG_AUDIO_AUX_REF(x) soatag_audio_aux_ref, tag_str_vr(&(x))
00164 SOFIAPUBVAR tag_typedef_t soatag_audio_aux_ref;
00165
00166 #define SOATAG_RTP_SORT(x) soatag_rtp_sort, tag_int_v(x)
00167 SOFIAPUBVAR tag_typedef_t soatag_rtp_sort;
00168 #define SOATAG_RTP_SORT_REF(x) soatag_rtp_sort_ref, tag_int_vr(&(x))
00169 SOFIAPUBVAR tag_typedef_t soatag_rtp_sort_ref;
00170
00172 enum {
00173 SOA_RTP_SORT_DEFAULT,
00177 SOA_RTP_SORT_LOCAL,
00178 SOA_RTP_SORT_REMOTE
00179 };
00180
00181 #define SOATAG_RTP_MISMATCH(x) soatag_rtp_mismatch, tag_bool_v(x)
00182 SOFIAPUBVAR tag_typedef_t soatag_rtp_mismatch;
00183 #define SOATAG_RTP_MISMATCH_REF(x) soatag_rtp_mismatch_ref, tag_bool_vr(&(x))
00184 SOFIAPUBVAR tag_typedef_t soatag_rtp_mismatch_ref;
00185
00186 #define SOATAG_ACTIVE_AUDIO(x) soatag_active_audio, tag_int_v(x)
00187 SOFIAPUBVAR tag_typedef_t soatag_active_audio;
00188
00189 #define SOATAG_ACTIVE_AUDIO_REF(x) soatag_active_audio_ref, tag_int_vr(&(x))
00190 SOFIAPUBVAR tag_typedef_t soatag_active_audio_ref;
00191
00192 #define SOATAG_ACTIVE_VIDEO(x) soatag_active_video, tag_int_v(x)
00193 SOFIAPUBVAR tag_typedef_t soatag_active_video;
00194
00195 #define SOATAG_ACTIVE_VIDEO_REF(x) soatag_active_video_ref, tag_int_vr(&(x))
00196 SOFIAPUBVAR tag_typedef_t soatag_active_video_ref;
00197
00198 #define SOATAG_ACTIVE_IMAGE(x) soatag_active_image, tag_int_v(x)
00199 SOFIAPUBVAR tag_typedef_t soatag_active_image;
00200
00201 #define SOATAG_ACTIVE_IMAGE_REF(x) soatag_active_image_ref, tag_int_vr(&(x))
00202 SOFIAPUBVAR tag_typedef_t soatag_active_image_ref;
00203
00204 #define SOATAG_ACTIVE_CHAT(x) soatag_active_chat, tag_int_v(x)
00205 SOFIAPUBVAR tag_typedef_t soatag_active_chat;
00206
00207 #define SOATAG_ACTIVE_CHAT_REF(x) soatag_active_chat_ref, tag_int_vr(&(x))
00208 SOFIAPUBVAR tag_typedef_t soatag_active_chat_ref;
00209
00211 #define SOATAG_SRTP_ENABLE(x) soatag_srtp_enable, tag_bool_v(x)
00212 SOFIAPUBVAR tag_typedef_t soatag_srtp_enable;
00213
00214 #define SOATAG_SRTP_ENABLE_REF(x) soatag_srtp_enable_ref, tag_bool_vr(&(x))
00215 SOFIAPUBVAR tag_typedef_t soatag_srtp_enable_ref;
00216
00217 #define SOATAG_SRTP_CONFIDENTIALITY(x) soatag_srtp_confidentiality, tag_bool_v(x)
00218 SOFIAPUBVAR tag_typedef_t soatag_srtp_confidentiality;
00219 #define SOATAG_SRTP_CONFIDENTIALITY_REF(x) soatag_srtp_confidentiality_ref, tag_bool_vr(&(x))
00220 SOFIAPUBVAR tag_typedef_t soatag_srtp_confidentiality_ref;
00221
00223 #define SOATAG_SRTP_INTEGRITY(x) soatag_srtp_integrity, tag_bool_v(x)
00224 SOFIAPUBVAR tag_typedef_t soatag_srtp_integrity;
00225
00226 #define SOATAG_SRTP_INTEGRITY_REF(x) \
00227 soatag_srtp_integrity_ref, tag_bool_vr(&(x))
00228 SOFIAPUBVAR tag_typedef_t soatag_srtp_integrity_ref;
00229
00230 #define SOATAG_HOLD(x) soatag_hold, tag_str_v(x)
00231 SOFIAPUBVAR tag_typedef_t soatag_hold;
00232 #define SOATAG_HOLD_REF(x) soatag_hold_ref, tag_str_vr(&(x))
00233 SOFIAPUBVAR tag_typedef_t soatag_hold_ref;
00234
00235 #define SOATAG_ORDERED_USER(x) soatag_ordered_user, tag_bool_v(x)
00236 SOFIAPUBVAR tag_typedef_t soatag_ordered_user;
00237
00238 #define SOATAG_ORDERED_USER_REF(x) \
00239 soatag_ordered_user_ref, tag_bool_vr(&(x))
00240 SOFIAPUBVAR tag_typedef_t soatag_ordered_user_ref;
00241
00242 #define SOATAG_REUSE_REJECTED(x) soatag_reuse_rejected, tag_bool_v(x)
00243 SOFIAPUBVAR tag_typedef_t soatag_reuse_rejected;
00244
00245 #define SOATAG_REUSE_REJECTED_REF(x) \
00246 soatag_reuse_rejected_ref, tag_bool_vr(&(x))
00247 SOFIAPUBVAR tag_typedef_t soatag_reuse_rejected_ref;
00248
00249 #define SOATAG_DELAYED_OFFER_ENABLE(x) soatag_delayed_offer_enable, tag_bool_v(x)
00250 SOFIAPUBVAR tag_typedef_t soatag_delayed_offer_enable;
00251
00252 #define SOATAG_DELAYED_OFFER_ENABLE_REF(x) soatag_delayed_offer_enable_ref, tag_bool_vr(&(x))
00253 SOFIAPUBVAR tag_typedef_t soatag_delayed_offer_enable_ref;
00254
00255 SOFIA_END_DECLS
00256
00257 #endif