Commit fcb6dbe8 authored by Pekka Pessi's avatar Pekka Pessi
Browse files

soa: documented.

darcs-hash:20060926192422-65a35-b13ac7d1f757c1db032663652daf74f22b8592db.gz
parent b54684b2
This diff is collapsed.
......@@ -49,36 +49,31 @@ tag_typedef_t soatag_any = NSTAG_TYPEDEF(*);
* Pass parsed capability description to soa session object.
*
* @par Used with
* nua_set_params() \n
* nua_get_params() \n
* nua_create()
* soa_set_params() \n
* soa_get_params() \n
*
* @par Parameter type
* char const *
* #sdp_session_t *
*
* @par Values
* NULL terminated character string
* #sdp_session_t describing @soa capabilities
*
* Corresponding tag taking reference parameter is SOATAG_CAPS_SDP_REF()
*/
tag_typedef_t soatag_caps_sdp = SDPTAG_TYPEDEF(caps_sdp);
/**@def SOATAG_CAPS_SDP_STR(x)
* Pass capability description to soa session object.
*
* Pass name of media description file that contains media templates
* (normally mss.sdp) to the NUA stack.
* Pass capability description to @soa session object.
*
* @par Used with
* nua_set_params() \n
* nua_get_params() \n
* nua_create()
* soa_set_param() \n
* soa_get_params() \n
*
* @par Parameter type
* char const *
*
* @par Values
* NULL terminated character string
* String containing SDP description of @soa capabilities
*
* Corresponding tag taking reference parameter is SOATAG_CAPS_SDP_STR_REF()
*/
......@@ -88,15 +83,18 @@ tag_typedef_t soatag_caps_sdp_str = STRTAG_TYPEDEF(caps_sdp_str);
* Get parsed local session description from soa session object.
*
* @par Used with
* soa_set_params(), soa_get_params(), soa_get_paramlist() \n
* soa_get_params(), soa_get_paramlist() \n
*
* @par Parameter type
* char const *
* #sdp_session_t *
*
* @par Values
* pointer to #sdp_session_t.
*
* Corresponding tag taking reference parameter is SOATAG_LOCAL_SDP_REF()
*
* @sa soa_get_local_sdp(), SOATAG_LOCAL_SDP_STR(), SOATAG_USER_SDP(),
* SOATAG_USER_SDP_STR().
*/
tag_typedef_t soatag_local_sdp = SDPTAG_TYPEDEF(local_sdp);
......@@ -104,15 +102,18 @@ tag_typedef_t soatag_local_sdp = SDPTAG_TYPEDEF(local_sdp);
* Get local session description as a string from soa session object.
*
* @par Used with
* soa_set_paramas(), soa_get_params(), soa_get_paramlist().
* soa_get_params(), soa_get_paramlist() \n
*
* @par Parameter type
* char const *
*
* @par Values
* NULL terminated character string
* String containing SDP offer or answer.
*
* Corresponding tag taking reference parameter is SOATAG_LOCAL_SDP_STR_REF()..
*
* Corresponding tag taking reference parameter is SOATAG_LOCAL_SDP_STR_REF()
* @sa soa_get_local_sdp(), SOATAG_LOCAL_SDP(),
* SOATAG_USER_SDP(), SOATAG_USER_SDP_STR().
*/
tag_typedef_t soatag_local_sdp_str = STRTAG_TYPEDEF(local_sdp_str);
......@@ -120,15 +121,18 @@ tag_typedef_t soatag_local_sdp_str = STRTAG_TYPEDEF(local_sdp_str);
* Pass parsed remote session description to soa session object.
*
* @par Used with
* soa_set_params(), soa_get_params(), soa_get_paramlist() \n
* soa_get_params(), soa_get_paramlist() \n
*
* @par Parameter type
* char const *
* #sdp_session_t *
*
* @par Values
* pointer to #sdp_session_t.
*
* Corresponding tag taking reference parameter is SOATAG_REMOTE_SDP_REF()
*
* @sa soa_set_remote_sdp(), soa_get_remote_sdp(), SOATAG_REMOTE_SDP_STR(),
* SOATAG_LOCAL_SDP(), SOATAG_LOCAL_SDP_STR().
*/
tag_typedef_t soatag_remote_sdp = SDPTAG_TYPEDEF(remote_sdp);
......@@ -139,54 +143,78 @@ tag_typedef_t soatag_remote_sdp = SDPTAG_TYPEDEF(remote_sdp);
* (normally mss.sdp) to the NUA stack.
*
* @par Used with
* nua_set_params() \n
* nua_get_params() \n
* nua_create()
* soa_get_params(), soa_get_paramlist() \n
*
* @par Parameter type
* char const *
*
* @par Values
* NULL terminated character string
* String containing SDP description received from remote end.
*
* Corresponding tag taking reference parameter is SOATAG_REMOTE_SDP_STR_REF()
*
* @sa soa_set_remote_sdp(), soa_get_remote_sdp(), SOATAG_REMOTE_SDP(),
* SOATAG_LOCAL_SDP(), SOATAG_LOCAL_SDP_STR().
*/
tag_typedef_t soatag_remote_sdp_str = STRTAG_TYPEDEF(remote_sdp_str);
/**@def SOATAG_USER_SDP(x)
* Pass parsed user session description to soa session object.
*
* User SDP is used as basis for SDP Offer/Answer negotiation. It can be
* very minimal, consisting just sdp_session_t structures, sdp_media_t
* structures and sdp_rtpmap_t structures listing te supported media, used
* RTP port number, and RTP payload descriptions of supported codecs.
*
* When generating the offer or answer the user SDP is augmented with the
* required SDP lines (v=, o=, t=, c=, a=rtpmap, etc.) as required. The
* complete offer or answer generated by @soa is passed in
* SOATAG_LOCAL_SDP() (SOATAG_LOCAL_SDP_STR() contains same in text format).
*
* @par Used with
* soa_set_params(), soa_get_params(), soa_get_paramlist() \n
*
* @par Parameter type
* char const *
* #sdp_session_t *
*
* @par Values
* pointer to #sdp_session_t.
*
* Corresponding tag taking reference parameter is SOATAG_USER_SDP_REF()
*
* @sa soa_set_user_sdp(), soa_get_user_sdp(), SOATAG_USER_SDP_STR(),
* SOATAG_LOCAL_SDP(), SOATAG_LOCAL_SDP_STR().
*/
tag_typedef_t soatag_user_sdp = SDPTAG_TYPEDEF(user_sdp);
/**@def SOATAG_USER_SDP_STR(x)
* Pass media description file name to the NUA stack.
*
* Pass name of media description file that contains media templates
* (normally mss.sdp) to the NUA stack.
* Pass unparsed user session description to soa session object.
*
* User SDP is used as basis for SDP Offer/Answer negotiation. It can be
* very minimal, listing just m= lines with the port numbers and RTP payload
* numbers of supported codecs, like
* @code
* SOATAG_USER_SDP_STR("m=audio 5004 RTP/AVP 0 8")
* @endcode
* When generating the offer or answer the user SDP is augmented with the
* required SDP lines (v=, o=, t=, c=, a=rtpmap, etc.) as required. The
* complete offer or answer generated by @soa is passed in
* SOATAG_LOCAL_SDP_STR() (SOATAG_LOCAL_SDP() contains session in parsed
* format).
*
* @par Used with
* nua_set_params() \n
* nua_get_params() \n
* nua_create()
* soa_set_params(), soa_get_params(), soa_get_paramlist() \n
*
* @par Parameter type
* char const *
*
* @par Values
* NULL terminated character string
* String containing minimal SDP description.
*
* Corresponding tag taking reference parameter is SOATAG_USER_SDP_STR_REF()
*
* @sa soa_set_user_sdp(), soa_get_user_sdp(), SOATAG_USER_SDP(),
* SOATAG_LOCAL_SDP(), SOATAG_LOCAL_SDP_STR()
*/
tag_typedef_t soatag_user_sdp_str = STRTAG_TYPEDEF(user_sdp_str);
......@@ -195,24 +223,25 @@ tag_typedef_t soatag_user_sdp_str = STRTAG_TYPEDEF(user_sdp_str);
* Preferred address family for media.
*
* @par Used with
* nua_set_params() \n
* nua_get_params() \n
* nua_invite() \n
* nua_respond()
* soa_set_params(), soa_get_params(), soa_get_paramlist() \n
*
* @par Parameter type
* unsigned int
* enum #soa_af {
* #SOA_AF_ANY,
* #SOA_AF_IP4_ONLY, #SOA_AF_IP6_ONLY,
* #SOA_AF_IP4_IP6, #SOA_AF_IP6_IP4
* }
*
* @par Values
* @c SOATAG_AF_ANY (default) (0) any address family \n
* @c SOATAG_AF_IP4_ONLY (1) only IP version 4 \n
* @c SOATAG_AF_IP6_ONLY (2) only IP version 6 \n
* @c SOATAG_AF_IP4_IP6 (3) either IP version 4 or 6,
* version 4 preferred \n
* @c SOATAG_AF_IP6_IP4 (4) either IP version 4 or 6,
* version 6 preferred
* - #SOA_AF_ANY (0) any address family (default)
* - #SOA_AF_IP4_ONLY (1) only IP version 4
* - #SOA_AF_IP6_ONLY (2) only IP version 6
* - #SOA_AF_IP4_IP6 (3) either IP version 4 or 6, version 4 preferred
* - #SOA_AF_IP6_IP4 (4) either IP version 4 or 6, version 6 preferred
*
* Corresponding tag taking reference parameter is SOATAG_AF_REF()
*
* @sa SOATAG_ADDRESS()
*/
tag_typedef_t soatag_af = INTTAG_TYPEDEF(af);
......@@ -222,50 +251,50 @@ tag_typedef_t soatag_af = INTTAG_TYPEDEF(af);
* Pass media address.
*
* @par Used with
* nua_set_params() \n
* nua_get_params() \n
* nua_invite() \n
* nua_respond()
* soa_set_params(), soa_get_params(), soa_get_paramlist() \n
*
* @par Parameter type
* char const *
*
* @par Values
* NULL terminated character string containing a domain name,
* NUL-terminated C string containing a domain name,
* IPv4 address, or IPv6 address.
*
* Corresponding tag taking reference parameter is SOATAG_ADDRESS_REF()
*
* @sa SOATAG_AF()
*/
tag_typedef_t soatag_address = STRTAG_TYPEDEF(address);
/**@def SOATAG_RTP_SELECT(x)
*
* When generating answer or second offer, soa can include all the supported
* codec, only one codec, or only the codecs supported by both ends in the
* When generating answer or second offer, @soa can include all the supported
* codecs, only one codec, or only the codecs supported by both ends in the
* list of payload types on the m= line.
*
* @par Used with
* nua_set_params() \n
* nua_get_params() \n
* nua_invite() \n
* nua_update() \n
* nua_respond() \n
* soa_set_params(), soa_get_params(), soa_get_paramlist() \n
*
* @par Parameter type
* integer in range 0..2
* enum {
* #SOA_RTP_SELECT_SINGLE, #SOA_RTP_SELECT_COMMON, #SOA_RTP_SELECT_ALL
* } \n
* (int in range 0..2)
*
* @par Values
* 0 - select the best common codec \n
* 1 - select all common codecs \n
* 2 - select all local codecs \n
* - #SOA_RTP_SELECT_SINGLE (0) - select the best common codec
* - #SOA_RTP_SELECT_COMMON (1) - select all common codecs
* - #SOA_RTP_SELECT_ALL (2) - select all local codecs
*
* The default value is 0, only one RTP codec is selected. Note, however,
* that if there is no common codec (no local codec is supported by remote
* end), all the codecs are included in the list. In that case the media
* line is rejected, too, unless SOATAG_RTP_MISMATCH(1) has been used.
*
* Corresponding tag taking a reference parameter is SOATAG_RTP_SELECT_REF()
* Corresponding tag taking a reference parameter is SOATAG_RTP_SELECT_REF().
*
* @sa SOATAG_RTP_MISMATCH(), SOATAG_RTP_SORT(), SOATAG_AUDIO_AUX()
*/
tag_typedef_t soatag_rtp_select = INTTAG_TYPEDEF(rtp_select);
......@@ -276,16 +305,12 @@ tag_typedef_t soatag_rtp_select = INTTAG_TYPEDEF(rtp_select);
* considered as common codec only when they are the only codec listed on
* the media line.
*
* When generating answer or second offer soa includes auxiliary audio codecs in
* the list of codecs even if it is selecting only one codec or common
* codecs.
* When generating answer or second offer soa includes auxiliary audio
* codecs in the list of codecs even if it is selecting only one codec or
* common codecs.
*
* @par Used with
* nua_set_params() \n
* nua_get_params() \n
* nua_invite() \n
* nua_update() \n
* nua_respond() \n
* soa_set_params(), soa_get_params(), soa_get_paramlist() \n
*
* @par Parameter type
* A string with whitespace separated list of codec names.
......@@ -299,6 +324,8 @@ tag_typedef_t soatag_rtp_select = INTTAG_TYPEDEF(rtp_select);
* SOATAG_AUDIO_AUX_REF().
*
* @since New in @VERSION_1_12_2.
*
* @sa SOATAG_RTP_SELECT(), SOATAG_RTP_MISMATCH(), SOATAG_RTP_SORT()
*/
tag_typedef_t soatag_audio_aux = STRTAG_TYPEDEF(audio_aux);
......@@ -308,26 +335,30 @@ tag_typedef_t soatag_audio_aux = STRTAG_TYPEDEF(audio_aux);
* supported by remote end, or first remote codec supported by local codecs.
* The preference is indicated with ordering: the preferred codec is
* first and so on.
*
* The auxiliary audio codecs (specified with SOATAG_AUDIO_AUX()) are listed
* after other codecs.
*
* @par Used with
* nua_set_params() \n
* nua_get_params() \n
* nua_invite() \n
* nua_update() \n
* nua_respond() \n
* soa_set_params(), soa_get_params(), soa_get_paramlist() \n
*
* @par Parameter type
* Boolean (int)
* enum {
* #SOA_RTP_SORT_DEFAULT, #SOA_RTP_SORT_LOCAL, #SOA_RTP_SORT_REMOTE
* } \n
* (int in range 0..2)
*
* @par Values
* 0 - select by local preference if media is recvonly,
* remote preference othewise \n
* 1 - always select by local preference \n
* 2 - always select by remote preference \n
* - #SOA_RTP_SORT_DEFAULT (0) - select by local preference
* if media is recvonly, remote preference othewise
* - #SOA_RTP_SORT_LOCAL (1) - always select by local preference
* - #SOA_RTP_SORT_REMOTE (2) - always select by remote preference
*
* The default value is 0.
* The default value is #SOA_RTP_SORT_DEFAULT (0).
*
* Corresponding tag taking reference parameter is SOATAG_RTP_SORT_REF()
*
* @sa SOATAG_RTP_SELECT(), SOATAG_RTP_MISMATCH(), SOATAG_AUDIO_AUX()
*/
tag_typedef_t soatag_rtp_sort = INTTAG_TYPEDEF(rtp_sort);
......@@ -339,11 +370,7 @@ tag_typedef_t soatag_rtp_sort = INTTAG_TYPEDEF(rtp_sort);
* determines there are no common codecs, the media line is rejected.
*
* @par Used with
* nua_set_params() \n
* nua_get_params() \n
* nua_invite() \n
* nua_update() \n
* nua_respond() \n
* soa_set_params(), soa_get_params(), soa_get_paramlist() \n
*
* @par Parameter type
* Boolean (int)
......@@ -355,13 +382,15 @@ tag_typedef_t soatag_rtp_sort = INTTAG_TYPEDEF(rtp_sort);
* Default value is 0.
*
* Corresponding tag taking reference parameter is SOATAG_RTP_MISMATCH_REF()
*/
*
* @sa SOATAG_RTP_SELECT(), SOATAG_RTP_MISMATCH(), SOATAG_AUDIO_AUX()
*/
tag_typedef_t soatag_rtp_mismatch = BOOLTAG_TYPEDEF(rtp_mismatch);
/**@def SOATAG_ACTIVE_AUDIO(x)
*
* Audio session status
* Audio session status.
*
* @par Used with
*
......@@ -371,11 +400,11 @@ tag_typedef_t soatag_rtp_mismatch = BOOLTAG_TYPEDEF(rtp_mismatch);
* #SOA_ACTIVE_RECVONLY, #SOA_ACTIVE_SENDRECV }
*
* @par Values
* @c #SOA_ACTIVE_REJECTED (-8) \n
* @c #SOA_ACTIVE_INACTIVE (0) \n
* @c #SOA_ACTIVE_SENDONLY (1) \n
* @c #SOA_ACTIVE_RECVONLY (2) \n
* @c #SOA_ACTIVE_SENDRECV (3) \n
* - #SOA_ACTIVE_REJECTED (-8)
* - #SOA_ACTIVE_INACTIVE (0)
* - #SOA_ACTIVE_SENDONLY (1)
* - #SOA_ACTIVE_RECVONLY (2)
* - #SOA_ACTIVE_SENDRECV (3)
*
* Corresponding tag taking reference parameter is SOATAG_ACTIVE_AUDIO_REF()
*
......@@ -394,11 +423,11 @@ tag_typedef_t soatag_active_audio = INTTAG_TYPEDEF(active_audio);
* #SOA_ACTIVE_RECVONLY, #SOA_ACTIVE_SENDRECV }
*
* @par Values
* @c #SOA_ACTIVE_REJECTED (-8) \n
* @c #SOA_ACTIVE_INACTIVE (0) \n
* @c #SOA_ACTIVE_SENDONLY (1) \n
* @c #SOA_ACTIVE_RECVONLY (2) \n
* @c #SOA_ACTIVE_SENDRECV (3) \n
* - #SOA_ACTIVE_REJECTED (-8)
* - #SOA_ACTIVE_INACTIVE (0)
* - #SOA_ACTIVE_SENDONLY (1)
* - #SOA_ACTIVE_RECVONLY (2)
* - #SOA_ACTIVE_SENDRECV (3)
*
* Corresponding tag taking reference parameter is SOATAG_ACTIVE_VIDEO_REF()
*/
......@@ -418,11 +447,11 @@ tag_typedef_t soatag_active_video = INTTAG_TYPEDEF(active_video);
* #SOA_ACTIVE_RECVONLY, #SOA_ACTIVE_SENDRECV }
*
* @par Values
* @c #SOA_ACTIVE_REJECTED (-8) \n
* @c #SOA_ACTIVE_INACTIVE (0) \n
* @c #SOA_ACTIVE_SENDONLY (1) \n
* @c #SOA_ACTIVE_RECVONLY (2) \n
* @c #SOA_ACTIVE_SENDRECV (3) \n
* - #SOA_ACTIVE_REJECTED (-8)
* - #SOA_ACTIVE_INACTIVE (0)
* - #SOA_ACTIVE_SENDONLY (1)
* - #SOA_ACTIVE_RECVONLY (2)
* - #SOA_ACTIVE_SENDRECV (3)
*
* @par Parameter type
* enum { #SOA_ACTIVE_DISABLED, #SOA_ACTIVE_REJECTED,
......@@ -430,11 +459,11 @@ tag_typedef_t soatag_active_video = INTTAG_TYPEDEF(active_video);
* #SOA_ACTIVE_RECVONLY, #SOA_ACTIVE_SENDRECV }
*
* @par Values
* @c #SOA_ACTIVE_REJECTED (-8) \n
* @c #SOA_ACTIVE_INACTIVE (0) \n
* @c #SOA_ACTIVE_SENDONLY (1) \n
* @c #SOA_ACTIVE_RECVONLY (2) \n
* @c #SOA_ACTIVE_SENDRECV (3) \n
* - #SOA_ACTIVE_REJECTED (-8)
* - #SOA_ACTIVE_INACTIVE (0)
* - #SOA_ACTIVE_SENDONLY (1)
* - #SOA_ACTIVE_RECVONLY (2)
* - #SOA_ACTIVE_SENDRECV (3)
*
* Corresponding tag taking reference parameter is SOATAG_ACTIVE_IMAGE_REF()
*/
......@@ -454,11 +483,11 @@ tag_typedef_t soatag_active_image = INTTAG_TYPEDEF(active_image);
* #SOA_ACTIVE_RECVONLY, #SOA_ACTIVE_SENDRECV }
*
* @par Values
* @c #SOA_ACTIVE_REJECTED (-8) \n
* @c #SOA_ACTIVE_INACTIVE (0) \n
* @c #SOA_ACTIVE_SENDONLY (1) \n
* @c #SOA_ACTIVE_RECVONLY (2) \n
* @c #SOA_ACTIVE_SENDRECV (3) \n
* - #SOA_ACTIVE_REJECTED (-8)
* - #SOA_ACTIVE_INACTIVE (0)
* - #SOA_ACTIVE_SENDONLY (1)
* - #SOA_ACTIVE_RECVONLY (2)
* - #SOA_ACTIVE_SENDRECV (3)
*
* Corresponding tag taking reference parameter is SOATAG_ACTIVE_CHAT_REF()
*/
......@@ -469,42 +498,40 @@ tag_typedef_t soatag_active_chat = INTTAG_TYPEDEF(active_chat);
* Enable SRTP
*
* @par Used with
* nua_set_params() \n
* nua_get_params() \n
* nua_invite() \n
* nua_respond()
* soa_set_params(), soa_get_params(), soa_get_paramlist() \n
*
* @par Parameter type
* unsigned int
* boolean (int)
*
* @par Values
* @c 1 hold call \n
* @c 0 unhold call
* @c !=0 enable \n
* @c 0 disable
*
* Corresponding tag taking reference parameter is
* SOATAG_SRTP_ENABLE_REF()
*
* @todo SRTP functionality is not implemented.
*/
tag_typedef_t soatag_srtp_enable = BOOLTAG_TYPEDEF(srtp_enable);
/**@def SOATAG_SRTP_CONFIDENTIALITY(x)
*
* Enable SRTP confidentiality
* Enable SRTP confidentiality negotiation.
*
* @par Used with
* nua_set_params() \n
* nua_get_params() \n
* nua_invite() \n
* nua_respond()
* soa_set_params(), soa_get_params(), soa_get_paramlist() \n
*
* @par Parameter type
* int
* boolean (int)
*
* @par Values
* @c 1 hold call \n
* @c 0 unhold call
* @c != 0 enable SRTP confidentiality \n
* @c 0 disable SRTP conidentiality
*
* Corresponding tag taking reference parameter is
* SOATAG_SRTP_CONFIDENTIALITY_REF()
*
* @todo SRTP functionality is not implemented.
*/
tag_typedef_t soatag_srtp_confidentiality =
BOOLTAG_TYPEDEF(srtp_confidentiality);
......@@ -514,37 +541,42 @@ tag_typedef_t soatag_srtp_confidentiality =
* Enable SRTP integrity protection
*
* @par Used with
* nua_set_params() \n
* nua_get_params() \n
* nua_invite() \n
* nua_respond()
* soa_set_params(), soa_get_params(), soa_get_paramlist() \n
*
* @par Parameter type
* int
* boolean (int)
*
* @par Values
* @c !=0 enable
* @c !=0 enable \n
* @c 0 disable
*
* Corresponding tag taking reference parameter is
* SOATAG_SRTP_INTEGRITY_REF()
*
* @todo SRTP functionality is not implemented.
*/
tag_typedef_t soatag_srtp_integrity = BOOLTAG_TYPEDEF(srtp_integrity);
/**@def SOATAG_HOLD(x)
* Hold & unhold
*
* Hold media stream or streams. When putting a SIP session on hold, the
* application can include, e.g., SOATAG_HOLD("audio") or
* SOATAG_HOLD("video") or SOATAG_HOLD("audio, video") or SOATAG_HOLD("*")
* as @soa parameters. When resuming the session, it can include
* SOATAG_HOLD(NULL). Note that last SOATAG_HOLD() in the tag list will
* override the SOATAG_HOLD() tags before it.
*
* @par Used with
* nua_invite() \n
* nua_update()
* soa_set_params(), soa_get_params(), soa_get_paramlist() \n
*
* @par Parameter type
* unsigned int
* character string
*
* @par Values
* @c 1 hold call \n
* @c 0 unhold call
* Comma-separated media name ("audio", "video") or wildcard ("*").
*
* Corresponding tag taking reference parameter is SOATAG_HOLD_REF()
*
* @sa soa_set_params(), nua_invite(), @ref nua_event_diagram_call_hold
*/
tag_typedef_t soatag_hold = STRTAG_TYPEDEF(hold);
......@@ -122,13 +122,9 @@ SOFIAPUBFUN int soa_remote_sip_features(soa_session_t *ss,
SOFIAPUBFUN char **soa_media_features(soa_session_t *ss, int live, su_home_t *home);
/* Generate offer */
SOFIAPUBFUN int soa_generate_offer(soa_session_t *, int always, soa_callback_f *);
/* Process offer, generate answer */
SOFIAPUBFUN int soa_generate_answer(soa_session_t *, soa_callback_f *);
/* Process answer */
SOFIAPUBFUN int soa_process_answer(soa_session_t *, soa_callback_f *);
/* Process rejected offer */
SOFIAPUBFUN int soa_process_reject(soa_session_t *, soa_callback_f *);
SOFIAPUBFUN int soa_activate(soa_session_t *, char const *option);
......
......@@ -138,12 +138,13 @@ SOFIAPUBVAR tag_typedef_t soatag_af;
#define SOATAG_AF_REF(x) soatag_af_ref, tag_int_vr(&(x))
SOFIAPUBVAR tag_typedef_t soatag_af_ref;
/** SOATAG_AF() parameter type */
enum soa_af {
SOA_AF_ANY,
SOA_AF_IP4_ONLY,
SOA_AF_IP6_ONLY,
SOA_AF_IP4_IP6,
SOA_AF_IP6_IP4
SOA_AF_ANY, /**< Use any address family. */
SOA_AF_IP4_ONLY, /**< Use IP version 4 only */
SOA_AF_IP6_ONLY, /**< Use IP version 6 only */
SOA_AF_IP4_IP6, /**< Prefer IP4 to IP6 */
SOA_AF_IP6_IP4 /**< Prefer IP6 to IP4 */
};
#define SOA_AF_ANY SOA_AF_ANY
......@@ -162,7 +163,12 @@ SOFIAPUBVAR tag_typedef_t soatag_rtp_select;
#define SOATAG_RTP_SELECT_REF(x) soatag_rtp_select_ref, tag_int_vr(&(x))
SOFIAPUBVAR tag_typedef_t soatag_rtp_select_ref;
enum { SOA_RTP_SELECT_SINGLE, SOA_RTP_SELECT_COMMON, SOA_RTP_SELECT_ALL };
/** Parameter type for SOATAG_RTP_SELECT() */
enum {
SOA_RTP_SELECT_SINGLE, /**< Select the best common codec */
SOA_RTP_SELECT_COMMON, /**< Select all common codecs */
SOA_RTP_SELECT_ALL /**< Select all local codecs */
};
#define SOATAG_AUDIO_AUX(x) soatag_audio_aux, tag_str_v(x)