sofia-sip/soa_tag.h File Reference


Detailed Description

Tags for SDP Offer/Answer Application Interface.

Author:
Pekka Pessi <Pekka.Pessi@nokia-email.address.hidden>
Date:
Created: Mon Aug 1 15:43:53 EEST 2005 ppessi

#include <sofia-sip/su_tag.h>
#include <sofia-sip/sdp_tag.h>

Include dependency graph for soa_tag.h:

Go to the source code of this file.

Defines

#define SOATAG_ANY()
 Filter tag matching any soa tag.
#define SOATAG_USER_SDP(x)
 Pass parsed user session description to soa session object.
#define SOATAG_USER_SDP_STR(x)
 Pass unparsed user session description to soa session object.
#define SOATAG_CAPS_SDP(x)
 Pass parsed capability description to soa session object.
#define SOATAG_CAPS_SDP_STR(x)
 Pass capability description to soa session object.
#define SOATAG_REMOTE_SDP(x)
 Pass parsed remote session description to soa session object.
#define SOATAG_REMOTE_SDP_STR(x)
 Pass media description file name to the NUA stack.
#define SOATAG_AF(x)
 Preferred address family for media.
#define SOATAG_ADDRESS(x)
 Pass media address.
#define SOATAG_RTP_SELECT(x)
 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.
#define SOATAG_AUDIO_AUX(x)
 The named audio codecs are considered auxiliary, that is, they are considered as common codec only when they are the only codec listed on the media line.
#define SOATAG_RTP_SORT(x)
 When selecting the common codecs, soa can either select first local codec supported by remote end, or first remote codec supported by local codecs.
#define SOATAG_RTP_MISMATCH(x)
 Accept media line even if the SDP negotation code determines that there are no common codecs between local and remote media.
#define SOATAG_ACTIVE_AUDIO(x)
 Audio session status.
#define SOATAG_ACTIVE_VIDEO(x)
 Video session status.
#define SOATAG_ACTIVE_IMAGE(x)
 Active image session status.
#define SOATAG_ACTIVE_CHAT(x)
 Active chat session status.
#define SOATAG_SRTP_ENABLE(x)
 Enable SRTP.
#define SOATAG_SRTP_CONFIDENTIALITY(x)
 Enable SRTP confidentiality negotiation.
#define SOATAG_SRTP_INTEGRITY(x)
 Enable SRTP integrity protection.
#define SOATAG_HOLD(x)
 Hold media stream or streams.
#define SOATAG_ORDERED_USER(x)
 Take account strict ordering of user SDP m=lines.

Enumerations

enum  {
  SOA_ACTIVE_REJECTED,
  SOA_ACTIVE_DISABLED,
  SOA_ACTIVE_INACTIVE,
  SOA_ACTIVE_SENDONLY,
  SOA_ACTIVE_RECVONLY,
  SOA_ACTIVE_SENDRECV
}
 Media states. More...
enum  soa_af {
  SOA_AF_ANY,
  SOA_AF_IP4_ONLY,
  SOA_AF_IP6_ONLY,
  SOA_AF_IP4_IP6,
  SOA_AF_IP6_IP4
}
 SOATAG_AF() parameter type. More...
enum  {
  SOA_RTP_SELECT_SINGLE,
  SOA_RTP_SELECT_COMMON,
  SOA_RTP_SELECT_ALL
}
 Parameter type for SOATAG_RTP_SELECT(). More...
enum  {
  SOA_RTP_SORT_DEFAULT,
  SOA_RTP_SORT_LOCAL,
  SOA_RTP_SORT_REMOTE
}
 Parameter type for SOATAG_RTP_SORT(). More...

Variables

tagi_t soa_tag_list []
 List of base SOA tags (defined in base SOA module).


Define Documentation

#define SOATAG_ACTIVE_AUDIO (  ) 

Audio session status.

Used with
Parameter type
enum { SOA_ACTIVE_DISABLED, SOA_ACTIVE_REJECTED, SOA_ACTIVE_INACTIVE, SOA_ACTIVE_SENDONLY, SOA_ACTIVE_RECVONLY, SOA_ACTIVE_SENDRECV }
Values
Corresponding tag taking reference parameter is SOATAG_ACTIVE_AUDIO_REF()

#define SOATAG_ACTIVE_CHAT (  ) 

Active chat session status.

Used with
nua_i_active
nua_i_state
Parameter type
enum { SOA_ACTIVE_DISABLED, SOA_ACTIVE_REJECTED, SOA_ACTIVE_INACTIVE, SOA_ACTIVE_SENDONLY, SOA_ACTIVE_RECVONLY, SOA_ACTIVE_SENDRECV }
Values
Corresponding tag taking reference parameter is SOATAG_ACTIVE_CHAT_REF()

#define SOATAG_ACTIVE_IMAGE (  ) 

Active image session status.

Used with
nua_i_active
nua_i_state
Parameter type
enum { SOA_ACTIVE_DISABLED, SOA_ACTIVE_REJECTED, SOA_ACTIVE_INACTIVE, SOA_ACTIVE_SENDONLY, SOA_ACTIVE_RECVONLY, SOA_ACTIVE_SENDRECV }
Values
Parameter type
enum { SOA_ACTIVE_DISABLED, SOA_ACTIVE_REJECTED, SOA_ACTIVE_INACTIVE, SOA_ACTIVE_SENDONLY, SOA_ACTIVE_RECVONLY, SOA_ACTIVE_SENDRECV }
Values
Corresponding tag taking reference parameter is SOATAG_ACTIVE_IMAGE_REF()

#define SOATAG_ACTIVE_VIDEO (  ) 

Video session status.

Used with
Parameter type
enum { SOA_ACTIVE_DISABLED, SOA_ACTIVE_REJECTED, SOA_ACTIVE_INACTIVE, SOA_ACTIVE_SENDONLY, SOA_ACTIVE_RECVONLY, SOA_ACTIVE_SENDRECV }
Values
Corresponding tag taking reference parameter is SOATAG_ACTIVE_VIDEO_REF()

#define SOATAG_ADDRESS (  ) 

Pass media address.

Used with
soa_set_params(), soa_get_params(), soa_get_paramlist()
Parameter type
char const *
Values
NUL-terminated C string containing a domain name, IPv4 address, or IPv6 address.
Corresponding tag taking reference parameter is SOATAG_ADDRESS_REF()

See also:
SOATAG_AF()

#define SOATAG_AF (  ) 

Preferred address family for media.

Used with
soa_set_params(), soa_get_params(), soa_get_paramlist()
Parameter type
enum soa_af { SOA_AF_ANY, SOA_AF_IP4_ONLY, SOA_AF_IP6_ONLY, SOA_AF_IP4_IP6, SOA_AF_IP6_IP4 }
Values
Corresponding tag taking reference parameter is SOATAG_AF_REF()

See also:
SOATAG_ADDRESS()

#define SOATAG_AUDIO_AUX (  ) 

The named audio codecs are considered auxiliary, that is, they are 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.

Used with
soa_set_params(), soa_get_params(), soa_get_paramlist()
Parameter type
A string with whitespace separated list of codec names.
Values
E.g., "telephone-event cn".
By default, there are no auxiliary audio codecs.

Corresponding tag taking a reference parameter is SOATAG_AUDIO_AUX_REF().

Since:
New in 1.12.2.
See also:
SOATAG_RTP_SELECT(), SOATAG_RTP_MISMATCH(), SOATAG_RTP_SORT()

#define SOATAG_CAPS_SDP (  ) 

Pass parsed capability description to soa session object.

Used with
soa_set_params()
soa_get_params()
Parameter type
sdp_session_t *
Values
sdp_session_t describing soa capabilities
Corresponding tag taking reference parameter is SOATAG_CAPS_SDP_REF()

#define SOATAG_CAPS_SDP_STR (  ) 

Pass capability description to soa session object.

Used with
soa_set_param()
soa_get_params()
Parameter type
char const *
Values
String containing SDP description of soa capabilities
Corresponding tag taking reference parameter is SOATAG_CAPS_SDP_STR_REF()

#define SOATAG_HOLD (  ) 

Hold media stream or streams.

The hold media stream will have the attribute a=sendonly (meaning that some hold announcements or pause music is sent to the held party but that the held party should not generate any media) or a=inactive (meaning that no media is sent).

When putting a SIP session on hold with sendonly, 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 using inactive instead, the application should use "#" or "audio=inactive" instead. When resuming the session, application should include the tag SOATAG_HOLD(NULL).

Note that last SOATAG_HOLD() in the tag list will override the SOATAG_HOLD() tags before it.

Used with
soa_set_params(), soa_get_params(), soa_get_paramlist()
Parameter type
character string
Values
Comma-separated media name ("audio", "video") or wildcard ("*").
Corresponding tag taking reference parameter is SOATAG_HOLD_REF()

See also:
soa_set_params(), nua_invite(), nua_event_diagram_call_hold

#define SOATAG_ORDERED_USER (  ) 

Take account strict ordering of user SDP m=lines.

If user SDP has been updated, the new media lines replace old ones even if the media type has been changed. This allows the application to replace m=audio with m=image/t38, for instance.

Used with
soa_set_params(), soa_get_params(), soa_get_paramlist()
Parameter type
boolean
Values
  • false (0) - update session with user SDP based on media type
  • true (1) - update session with m= line in user SDP based on their order
The default value is false and session are updated based on media types.

Corresponding tag taking a reference parameter is SOATAG_RTP_SELECT_REF().

See also:
RFC 3264 section 8.3.3, T.38
Since:
New in 1.12.7.

#define SOATAG_REMOTE_SDP (  ) 

Pass parsed remote session description to soa session object.

Used with
soa_get_params(), soa_get_paramlist()
Parameter type
sdp_session_t *
Values
pointer to sdp_session_t.
Corresponding tag taking reference parameter is SOATAG_REMOTE_SDP_REF()

See also:
soa_set_remote_sdp(), soa_get_remote_sdp(), SOATAG_REMOTE_SDP_STR(), SOATAG_LOCAL_SDP(), SOATAG_LOCAL_SDP_STR().

#define SOATAG_REMOTE_SDP_STR (  ) 

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.

Used with
soa_get_params(), soa_get_paramlist()
Parameter type
char const *
Values
String containing SDP description received from remote end.
Corresponding tag taking reference parameter is SOATAG_REMOTE_SDP_STR_REF()

See also:
soa_set_remote_sdp(), soa_get_remote_sdp(), SOATAG_REMOTE_SDP(), SOATAG_LOCAL_SDP(), SOATAG_LOCAL_SDP_STR().

#define SOATAG_RTP_MISMATCH (  ) 

Accept media line even if the SDP negotation code determines that there are no common codecs between local and remote media.

Normally, if the soa determines there are no common codecs, the media line is rejected.

Used with
soa_set_params(), soa_get_params(), soa_get_paramlist()
Parameter type
Boolean (int)
Values
0 - reject media if there are no common codecs
1 (!= 0) - accept media even if there are no common codecs
Default value is 0.

Corresponding tag taking reference parameter is SOATAG_RTP_MISMATCH_REF()

See also:
SOATAG_RTP_SELECT(), SOATAG_RTP_MISMATCH(), SOATAG_AUDIO_AUX()

#define SOATAG_RTP_SELECT (  ) 

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.

Used with
soa_set_params(), soa_get_params(), soa_get_paramlist()
Parameter type
enum { SOA_RTP_SELECT_SINGLE, SOA_RTP_SELECT_COMMON, SOA_RTP_SELECT_ALL }
(int in range 0..2)
Values
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().

See also:
SOATAG_RTP_MISMATCH(), SOATAG_RTP_SORT(), SOATAG_AUDIO_AUX()

#define SOATAG_RTP_SORT (  ) 

When selecting the common codecs, soa can either select first local codec 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.

Used with
soa_set_params(), soa_get_params(), soa_get_paramlist()
Parameter type
enum { SOA_RTP_SORT_DEFAULT, SOA_RTP_SORT_LOCAL, SOA_RTP_SORT_REMOTE }
(int in range 0..2)
Values
The default value is SOA_RTP_SORT_DEFAULT (0).

Corresponding tag taking reference parameter is SOATAG_RTP_SORT_REF()

See also:
SOATAG_RTP_SELECT(), SOATAG_RTP_MISMATCH(), SOATAG_AUDIO_AUX()

#define SOATAG_SRTP_CONFIDENTIALITY (  ) 

Enable SRTP confidentiality negotiation.

Used with
soa_set_params(), soa_get_params(), soa_get_paramlist()
Parameter type
boolean (int)
Values
!= 0 enable SRTP confidentiality
0 disable SRTP conidentiality
Corresponding tag taking reference parameter is SOATAG_SRTP_CONFIDENTIALITY_REF()

Todo:
SRTP functionality is not implemented.

#define SOATAG_SRTP_ENABLE (  ) 

Enable SRTP.

Used with
soa_set_params(), soa_get_params(), soa_get_paramlist()
Parameter type
boolean (int)
Values
!=0 enable
0 disable
Corresponding tag taking reference parameter is SOATAG_SRTP_ENABLE_REF()

Todo:
SRTP functionality is not implemented.

#define SOATAG_SRTP_INTEGRITY (  ) 

Enable SRTP integrity protection.

Used with
soa_set_params(), soa_get_params(), soa_get_paramlist()
Parameter type
boolean (int)
Values
!=0 enable
0 disable
Corresponding tag taking reference parameter is SOATAG_SRTP_INTEGRITY_REF()

Todo:
SRTP functionality is not implemented.

#define SOATAG_USER_SDP (  ) 

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).

Used with
soa_set_params(), soa_get_params(), soa_get_paramlist()
Parameter type
sdp_session_t *
Values
pointer to sdp_session_t.
Corresponding tag taking reference parameter is SOATAG_USER_SDP_REF()

See also:
soa_set_user_sdp(), soa_get_user_sdp(), SOATAG_USER_SDP_STR(), SOATAG_LOCAL_SDP(), SOATAG_LOCAL_SDP_STR().

#define SOATAG_USER_SDP_STR (  ) 

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

   SOATAG_USER_SDP_STR("m=audio 5004 RTP/AVP 0 8")
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).

Used with
soa_set_params(), soa_get_params(), soa_get_paramlist()
Parameter type
char const *
Values
String containing minimal SDP description.
Corresponding tag taking reference parameter is SOATAG_USER_SDP_STR_REF()

See also:
soa_set_user_sdp(), soa_get_user_sdp(), SOATAG_USER_SDP(), SOATAG_LOCAL_SDP(), SOATAG_LOCAL_SDP_STR()


Enumeration Type Documentation

anonymous enum

Media states.

Enumerator:
SOA_ACTIVE_REJECTED  Media rejected in negotiation.
SOA_ACTIVE_DISABLED  Media not negotiated.
SOA_ACTIVE_INACTIVE  Media is inactive: no RTP.
SOA_ACTIVE_SENDONLY  Media is sent only.
SOA_ACTIVE_RECVONLY  Media is received only.
SOA_ACTIVE_SENDRECV  Media is bidirectional.

anonymous enum

Parameter type for SOATAG_RTP_SELECT().

Enumerator:
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.

anonymous enum

Parameter type for SOATAG_RTP_SORT().

Enumerator:
SOA_RTP_SORT_DEFAULT  Select codecs by local preference when media is recvonly, remote preference othewise.
SOA_RTP_SORT_LOCAL  Select codecs by local preference.
SOA_RTP_SORT_REMOTE  Select codecs by remote preference.

enum soa_af

SOATAG_AF() parameter type.

Enumerator:
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.


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