Prosody H.223 Mux: API

The following functions are provided by the Prosody H.223 Mux API:

API call W Description
sm_h223mux_add_entry() P Add mux entry
sm_h223mux_close_lc() P Close logical channel
sm_h223mux_create() P Create an H.223 Mux
sm_h223mux_datafeed_connect() P Connect datafeed to an H.223 MUX.
sm_h223mux_delete_session() P Delete the H.223 session
sm_h223mux_destroy() P Destroy an H.223 Mux
sm_h223mux_get_datafeed() P Get datafeed from H.223 MUX.
sm_h223mux_get_event() P Get an event for the H.223 mux
sm_h223mux_new_session() P Create new session for the H.223 mux
sm_h223mux_open_lc() P Open logical channel
sm_h223mux_reconfig() P Reconfigure the H.223 multiplex
sm_h223mux_set_caps() P Set the multiplex capabilities for a specific terminal
sm_h223mux_status() P Fetch status info on H.223 mux
sm_h223mux_stop() P Stop H.223 mux

Key to W column:

P Preliminary documentation - this functionality is under development. It could be changed or withdrawn, and may not be implemented in this release

This document is also available as separate pages for each function.


Prosody H.223 Mux: API: sm_h223mux_add_entry

This function is under development. It could be changed or withdrawn, and may not be implemented in this release.

Prototype Definition

int sm_h223mux_add_entry(struct sm_h223mux_add_entry_parms *entryp)

Parameters

*entryp
a structure of the following type:
typedef struct sm_h223mux_add_entry_parms {
	tSMH223muxId h223mux;					/* in */
	enum kSMH223muxTableEntryDirection {
		kSMH223muxTableEntryDirectionTransmit,
		kSMH223muxTableEntryDirectionReceive,
	} direction;						/* in */
	tSM_INT entry_number;					/* in */
	tSM_INT descriptor_len;					/* in */
	char *descriptor;					/* in */
} SM_H223MUX_ADD_ENTRY_PARMS;

Description

This function will add an entry to the multiplex table. The entry may be transmit or receive.

Fields

h223mux (Only in Preliminary Documentation)
The mux to add the table entry to.
direction (Only in Preliminary Documentation)
The logical channel direction.
One of these values:
kSMH223muxTableEntryDirectionTransmit
Table entry relates to transmit direction.
kSMH223muxTableEntryDirectionReceive
Table entry relates to receive direction.
entry_number (Only in Preliminary Documentation)
The multiplex table entry number
descriptor_len (Only in Preliminary Documentation)
The length of the descriptor in octets.
descriptor (Only in Preliminary Documentation)
The multiplex entry descriptor as defined in ITU-T H.223 Table 2.

Returns

0 if call completed successfully, otherwise a standard error such as:


Prosody H.223 Mux: API: sm_h223mux_close_lc

This function is under development. It could be changed or withdrawn, and may not be implemented in this release.

Prototype Definition

int sm_h223mux_close_lc(struct sm_h223mux_close_lc_parms *close_lcp)

Parameters

*close_lcp
a structure of the following type:
typedef struct sm_h223mux_close_lc_parms {
	tSMH223muxId h223mux;					/* in */
	enum kSMH223muxChannelDirection {
		kSMH223muxChannelDirectionTransmit,
		kSMH223muxChannelDirectionReceive,
	} direction;						/* in */
	tSM_INT lcn;						/* in */
} SM_H223MUX_CLOSE_LC_PARMS;

Description

This function will close a specific logical channel.

Fields

h223mux (Only in Preliminary Documentation)
The mux to close the logical channel on.
direction (Only in Preliminary Documentation)
One of these values:
kSMH223muxChannelDirectionTransmit
logical channel transmit
kSMH223muxChannelDirectionReceive
logical channel receive
lcn (Only in Preliminary Documentation)
logical channel number

Returns

0 if call completed successfully, otherwise a standard error such as:


Prosody H.223 Mux: API: sm_h223mux_create

This function is under development. It could be changed or withdrawn, and may not be implemented in this release.

Prototype Definition

int sm_h223mux_create(struct sm_h223mux_create_parms *createp)

Parameters

*createp
a structure of the following type:
typedef struct sm_h223mux_create_parms {
	tSMH223muxId h223mux;					/* out */
	tSMModuleId module;					/* in */
} SM_H223MUX_CREATE_PARMS;

Description

Creates an H.223 Mux.

Fields

h223mux (Only in Preliminary Documentation)
The created mux.
module (Only in Preliminary Documentation)
A value obtained from sm_open_module() which indicates the module on which the mux is to be created.

Returns

0 if call completed successfully, otherwise a standard error such as:


Prosody H.223 Mux: API: sm_h223mux_datafeed_connect

This function is under development. It could be changed or withdrawn, and may not be implemented in this release.

Prototype Definition

int sm_h223mux_datafeed_connect(struct sm_h223mux_datafeed_connect_parms *datafeedp)

Parameters

*datafeedp
a structure of the following type:
typedef struct sm_h223mux_datafeed_connect_parms {
	tSMDatafeedId datafeed;					/* in */
	enum kSMH223muxInputType {
		kSMH223muxInputTypeH245Ctl,
		kSMH223muxInputTypeAudio,
		kSMH223muxInputTypeVideo,
		kSMH223muxInputTypeMux,
	} port;							/* in */
	tSMH223muxId h223mux;					/* in */
} SM_H223MUX_DATAFEED_CONNECT_PARMS;

Description

Connect a datafeed to one of the three inputs of the H.223 mux.

Fields

datafeed (Only in Preliminary Documentation)
The datafeed object to be connected.
port (Only in Preliminary Documentation)
Which input of the mux to connect the datafeed to.
One of these values:
kSMH223muxInputTypeH245Ctl
Indicates that the datafeed should be connected to the H.245 input
kSMH223muxInputTypeAudio
Indicates that the datafeed should be connected to the audio input
kSMH223muxInputTypeVideo
Indicates that the datafeed should be connected to the video input
kSMH223muxInputTypeMux
Indicates that the datafeed should be connected to the muxed data input
h223mux (Only in Preliminary Documentation)
The mux to connect the datafeed to.

Returns

0 if call completed successfully, otherwise a standard error such as:


Prosody H.223 Mux: API: sm_h223mux_delete_session

This function is under development. It could be changed or withdrawn, and may not be implemented in this release.

Prototype Definition

int sm_h223mux_delete_session(struct sm_h223mux_delete_session_parms *sessionp)

Parameters

*sessionp
a structure of the following type:
typedef struct sm_h223mux_delete_session_parms {
	tSMH223muxId h223mux;					/* in */
} SM_H223MUX_DELETE_SESSION_PARMS;

Description

This function will delete the H.223 session previously created by sm_h223mux_new_session.

Fields

h223mux (Only in Preliminary Documentation)
The mux to delete the session on.

Returns

0 if call completed successfully, otherwise a standard error such as:


Prosody H.223 Mux: API: sm_h223mux_destroy

This function is under development. It could be changed or withdrawn, and may not be implemented in this release.

Prototype Definition

int sm_h223mux_destroy(tSMH223muxId mux)

Parameters

mux
The mux to destroy. Must have been previously created by a call to sm_h223mux_create() .

Description

Destroys an H.223 Mux.

Returns

0 if call completed successfully, otherwise a standard error such as:


Prosody H.223 Mux: API: sm_h223mux_get_datafeed

This function is under development. It could be changed or withdrawn, and may not be implemented in this release.

Prototype Definition

int sm_h223mux_get_datafeed(struct sm_h223mux_datafeed_parms *datafeedp)

Parameters

*datafeedp
a structure of the following type:
typedef struct sm_h223mux_datafeed_parms {
	tSMH223muxId h223mux;					/* in */
	enum kSMH223muxOutputType {
		kSMH223muxOutputTypeH245Ctl,
		kSMH223muxOutputTypeAudio,
		kSMH223muxOutputTypeVideo,
		kSMH223muxOutputTypeMux,
	} port;							/* in */
	tSMDatafeedId datafeed;					/* out */
} SM_H223MUX_DATAFEED_PARMS;

Description

Request a datafeed identifier from an H.223 mux. This identifier can subsequently used in a call to sm_channel_datafeed_connect() .

Fields

h223mux (Only in Preliminary Documentation)
The mux from which to obtain a datafeed.
port (Only in Preliminary Documentation)
Which output of the mux to get the datafeed for.
One of these values:
kSMH223muxOutputTypeH245Ctl
Indicates that the datafeed should be connected to the H.245 output
kSMH223muxOutputTypeAudio
Indicates that the datafeed should be connected to the audio output
kSMH223muxOutputTypeVideo
Indicates that the datafeed should be connected to the video output
kSMH223muxOutputTypeMux
Indicates that the datafeed should be connected to the muxed data output
datafeed (Only in Preliminary Documentation)
The datafeed object associated with the H.223 mux.

Returns

0 if call completed successfully, otherwise a standard error such as:


Prosody H.223 Mux: API: sm_h223mux_get_event

This function is under development. It could be changed or withdrawn, and may not be implemented in this release.

Prototype Definition

int sm_h223mux_get_event(struct sm_h223mux_event_parms *eventp)

Parameters

*eventp
a structure of the following type:
typedef struct sm_h223mux_event_parms {
	tSMH223muxId h223mux;					/* in */
	tSMEventId event;					/* out */
} SM_H223MUX_EVENT_PARMS;

Description

the event will be signalled when a status change occurs on the mux.

Fields

h223mux (Only in Preliminary Documentation)
The mux.
event (Only in Preliminary Documentation)
The aevent identifier

Returns

0 if call completed successfully, otherwise a standard error such as:


Prosody H.223 Mux: API: sm_h223mux_new_session

This function is under development. It could be changed or withdrawn, and may not be implemented in this release.

Prototype Definition

int sm_h223mux_new_session(struct sm_h223mux_new_session_parms *sessionp)

Parameters

*sessionp
a structure of the following type:
typedef struct sm_h223mux_new_session_parms {
	tSMH223muxId h223mux;					/* in */
	tSM_INT level;						/* in */
	enum kSMH223muxTransmissionBitOrder {
		kSMH223muxTransmissionBitOrderLSBFirst,
		kSMH223muxTransmissionBitOrderMSBFirst,
	} bit_order;						/* in */
} SM_H223MUX_NEW_SESSION_PARMS;

Description

This function will create and initialise an H.223 session.

Fields

h223mux (Only in Preliminary Documentation)
The mux to create the new session on.
level (Only in Preliminary Documentation)
The mobile startup level for the new session.
bit_order (Only in Preliminary Documentation)
Network bit order for transmission of H.223 data.
One of these values:
kSMH223muxTransmissionBitOrderLSBFirst
The output bytes from the H.223 session to the network will be sent LSB first.
kSMH223muxTransmissionBitOrderMSBFirst
The output bytes from the H.223 session to the network will be sent MSB first.

Returns

0 if call completed successfully, otherwise a standard error such as:


Prosody H.223 Mux: API: sm_h223mux_open_lc

This function is under development. It could be changed or withdrawn, and may not be implemented in this release.

Prototype Definition

int sm_h223mux_open_lc(struct sm_h223mux_open_lc_parms *open_lcp)

Parameters

*open_lcp
a structure of the following type:
typedef struct sm_h223mux_open_lc_parms {
	tSMH223muxId h223mux;					/* in */
	tSM_UT32 segmentable_flag;				/* in */
	enum kSMH223muxLogicalChannelType {
		kSMH223muxLogicalChannelTypeUnidirectional,
		kSMH223muxLogicalChannelTypeBidirectional,
	} type;							/* in */
	struct {
		tSM_INT lcn;					/* in */
		enum kSMH223muxLogicalChannelDirection {
			kSMH223muxLogicalChannelDirectionTransmit,
			kSMH223muxLogicalChannelDirectionReceive,
		} direction;					/* in */
		struct {
			enum kSMH223muxMarkUnit {
				kSMH223muxMarkUnitBytes,
				kSMH223muxMarkUnitALSDU,
			} mark_unit;
			tSM_INT hi_mark;			/* in */
			tSM_INT lo_mark;			/* in */
		} transmit_lc;					/* in */
		enum kSMH223muxAdaptationLayerType {
			kSMH223muxAdaptationLayerTypeNonStandard,
			kSMH223muxAdaptationLayerTypeAL1Framed,
			kSMH223muxAdaptationLayerTypeAL1NotFramed,
			kSMH223muxAdaptationLayerTypeAL2WithoutSequenceNumbers,
			kSMH223muxAdaptationLayerTypeAL2WithSequenceNumbers,
			kSMH223muxAdaptationLayerTypeAL3,
		} adaptation_layer_type;
		union {
			struct {
				tSM_INT control_field_octets;	/* in */
				tSM_INT send_buffer_size;	/* in */
			} al3;					/* in */
		} u_al;						/* in */
	} forward_channel;					/* in */
	struct {
		tSM_INT lcn;					/* in */
		enum kSMH223muxLogicalChannelDirection {
			kSMH223muxLogicalChannelDirectionTransmit,
			kSMH223muxLogicalChannelDirectionReceive,
		} direction;					/* in */
		struct {
			enum kSMH223muxMarkUnit {
				kSMH223muxMarkUnitBytes,
				kSMH223muxMarkUnitALSDU,
			} mark_unit;
			tSM_INT hi_mark;			/* in */
			tSM_INT lo_mark;			/* in */
		} transmit_lc;					/* in */
		enum kSMH223muxAdaptationLayerType {
			kSMH223muxAdaptationLayerTypeNonStandard,
			kSMH223muxAdaptationLayerTypeAL1Framed,
			kSMH223muxAdaptationLayerTypeAL1NotFramed,
			kSMH223muxAdaptationLayerTypeAL2WithoutSequenceNumbers,
			kSMH223muxAdaptationLayerTypeAL2WithSequenceNumbers,
			kSMH223muxAdaptationLayerTypeAL3,
		} adaptation_layer_type;
		union {
			struct {
				tSM_INT control_field_octets;	/* in */
				tSM_INT send_buffer_size;	/* in */
			} al3;					/* in */
		} u_al;						/* in */
	} reverse_channel;					/* in */
} SM_H223MUX_OPEN_LC_PARMS;

Description

This function will open a new logical channel.

Fields

h223mux (Only in Preliminary Documentation)
The mux to open the logical channel on.
segmentable_flag (Only in Preliminary Documentation)
When set to non-zero indicates that the channel is designated to be segmentable, and when equal to zero indicates that the channel is designated to be non-segmentable.
type (Only in Preliminary Documentation)
The type of logical channel to be opened.
One of these values:
kSMH223muxLogicalChannelTypeUnidirectional
Unidirectional channel.
kSMH223muxLogicalChannelTypeBidirectional
Bidirectional channel.
forward_channel (Only in Preliminary Documentation)
lcn
The logical channel number.
direction
The logical channel direction. One of these values:
kSMH223muxLogicalChannelDirectionTransmit
Logical channel is to be opened for transmission.
kSMH223muxLogicalChannelDirectionReceive
Logical channel is to be opened for receive.
transmit_lc
This structure is only valid if direction is kSMH223muxLogicalChannelDirectionTransmit.
mark_unit
One of these values:
kSMH223muxMarkUnitBytes
Unit of measurement is in bytes.
kSMH223muxMarkUnitALSDU
Unit of measurement is in AL-SDUs
hi_mark
Higher level threshold. Represents bytes or AL-SDUs depending on value of mark_unit.
lo_mark
Lower level threshold. Represents bytes or AL-SDUs depending on value of mark_unit.
adaptation_layer_type
One of these values:
kSMH223muxAdaptationLayerTypeNonStandard
Non standard. Please note that this is currently unsupported.
kSMH223muxAdaptationLayerTypeAL1Framed
AL1 framed mode.
kSMH223muxAdaptationLayerTypeAL1NotFramed
AL1 unframed mode.
kSMH223muxAdaptationLayerTypeAL2WithoutSequenceNumbers
AL2 with no sequence numbers present.
kSMH223muxAdaptationLayerTypeAL2WithSequenceNumbers
AL2 with sequence numbers present.
kSMH223muxAdaptationLayerTypeAL3
AL3 with the specified parameters. See below.
u_al
al3
This structure is only valid if adaptation_layer_type is kSMH223muxAdaptationLayerTypeAL3
control_field_octets
Number of control field octets
send_buffer_size
Size of the send buffer that will be used. The size being measured in octets.
reverse_channel (Only in Preliminary Documentation)
This structure is only valid if type is kSMH223muxLogicalChannelTypeBidirectional.
lcn
The logical channel number.
direction
The logical channel direction. One of these values:
kSMH223muxLogicalChannelDirectionTransmit
Logical channel is to be opened for transmission.
kSMH223muxLogicalChannelDirectionReceive
Logical channel is to be opened for receive.
transmit_lc
This structure is only valid if direction is kSMH223muxLogicalChannelDirectionTransmit.
mark_unit
One of these values:
kSMH223muxMarkUnitBytes
Unit of measurement is in bytes.
kSMH223muxMarkUnitALSDU
Unit of measurement is in AL-SDUs
hi_mark
Higher level threshold. Represents bytes or AL-SDUs depending on value of mark_unit.
lo_mark
Lower level threshold. Represents bytes or AL-SDUs depending on value of mark_unit.
adaptation_layer_type
One of these values:
kSMH223muxAdaptationLayerTypeNonStandard
Non standard. Please note that this is currently unsupported.
kSMH223muxAdaptationLayerTypeAL1Framed
AL1 framed mode.
kSMH223muxAdaptationLayerTypeAL1NotFramed
AL1 unframed mode.
kSMH223muxAdaptationLayerTypeAL2WithoutSequenceNumbers
AL2 with no sequence numbers present.
kSMH223muxAdaptationLayerTypeAL2WithSequenceNumbers
AL2 with sequence numbers present.
kSMH223muxAdaptationLayerTypeAL3
AL3 with the specified parameters. See below.
u_al
al3
This structure is only valid if adaptation_layer_type is kSMH223muxAdaptationLayerTypeAL3
control_field_octets
Number of control field octets
send_buffer_size
Size of the send buffer that will be used. The size being measured in octets.

Returns

0 if call completed successfully, otherwise a standard error such as:


Prosody H.223 Mux: API: sm_h223mux_reconfig

This function is under development. It could be changed or withdrawn, and may not be implemented in this release.

Prototype Definition

int sm_h223mux_reconfig(struct sm_h223mux_reconfig_parms *reconfigp)

Parameters

*reconfigp
a structure of the following type:
typedef struct sm_h223mux_reconfig_parms {
	tSMH223muxId h223mux;					/* in */
	enum kSMH223muxReconfigLevelChangeDirection {
		kSMH223muxReconfigLevelChangeDirectionTransmit,
		kSMH223muxReconfigLevelChangeDirectionReceive,
	} direction;						/* in */
	struct {
		enum kSMH223muxReconfigChoice {
			kSMH223muxReconfigModeChange,
			kSMH223muxReconfigAnnexADoubleFlag,
		} choice;
		union {
			enum kSMH223muxReconfigModeChange {
				kSMH223muxReconfigModeChangeToLevel0,
				kSMH223muxReconfigModeChangeToLevel1,
				kSMH223muxReconfigModeChangeToLevel2,
				kSMH223muxReconfigModeChangeToLevel2WithOptionalHeader,
			} mode_change;
			enum kSMH223muxReconfigAnnexADoubleFlag {
				kSMH223muxReconfigAnnexADoubleFlagStart,
				kSMH223muxReconfigAnnexADoubleFlagStop,
			} annex_a_double_flag;
		} u;
	} multiplex_reconfiguration;
} SM_H223MUX_RECONFIG_PARMS;

Description

Reconfigure the H.223 multiplex ie changing to another level, or adopting double flag mode vs. basic flag.

Fields

h223mux (Only in Preliminary Documentation)
The mux to reconfigure.
direction (Only in Preliminary Documentation)
The direction of dynamic level change request.
One of these values:
kSMH223muxReconfigLevelChangeDirectionTransmit
Indicates that the transmitter side shall change from current to new level ie. H.245 command h223ModeChange was received from the remote end.
kSMH223muxReconfigLevelChangeDirectionReceive
Indicates that the receiver side shall change from current to new level ie. H.245 command h223ModeChange was sent to the remote end.
multiplex_reconfiguration (Only in Preliminary Documentation)
choice
Reconfiguration options. One of these values:
kSMH223muxReconfigModeChange
Change the level of multiplex mode as described in Annex C/H.324 to level 0, level 1, level 2 or level 2 with Annex B/H.223 optional header.
kSMH223muxReconfigAnnexADoubleFlag
Start or stop the use of double-flag mode of Annex A/H.223.
u

Returns

0 if call completed successfully, otherwise a standard error such as:


Prosody H.223 Mux: API: sm_h223mux_set_caps

This function is under development. It could be changed or withdrawn, and may not be implemented in this release.

Prototype Definition

int sm_h223mux_set_caps(struct sm_h223mux_set_caps_parms *capsp)

Parameters

*capsp
a structure of the following type:
typedef struct sm_h223mux_set_caps_parms {
	tSMH223muxId h223mux;					/* in */
	enum kSMH223muxSetCapsRole {
		kSMH223muxSetCapsRoleLocal,
		kSMH223muxSetCapsRoleRemote,
	} role;							/* in */
	tSM_INT optional_ext;					/* in */
	tSM_UT32 transport_with_i_frames;			/* in */
	tSM_UT32 video_with_AL1;				/* in */
	tSM_UT32 video_with_AL2;				/* in */
	tSM_UT32 video_with_AL3;				/* in */
	tSM_UT32 audio_with_AL1;				/* in */
	tSM_UT32 audio_with_AL2;				/* in */
	tSM_UT32 audio_with_AL3;				/* in */
	tSM_UT32 data_with_AL1;					/* in */
	tSM_UT32 data_with_AL2;					/* in */
	tSM_UT32 data_with_AL3;					/* in */
	tSM_INT maximum_AL2_sdu_size;				/* in */
	tSM_INT maximum_AL3_sdu_size;				/* in */
	tSM_INT maximum_delay_jitter;				/* in */
	tSM_UT32 max_MUX_PDU_size_capability;			/* in */
	tSM_UT32 nsrp_support;					/* in */
	tSM_INT bit_rate_o;					/* in */
	struct {
		tSM_UT32 mode_change_capability;		/* in */
		tSM_UT32 h223_AnnexA;				/* in */
		tSM_UT32 h223_AnnexA_double_flag;		/* in */
		tSM_UT32 h223_AnnexB;				/* in */
		tSM_UT32 h223_AnnexB_with_header;		/* in */
	} mobile_operation_transmit_capability_o;		/* in */
	struct {
		tSM_INT maximum_sample_size;			/* in */
		tSM_INT maximum_payload_length;			/* in */
	} mobile_multilink_frame_capability_o;			/* in */
	struct {
		tSM_UT32 video_with_AL1M;			/* in */
		tSM_UT32 video_with_AL2M;			/* in */
		tSM_UT32 video_with_AL3M;			/* in */
		tSM_UT32 audio_with_AL1M;			/* in */
		tSM_UT32 audio_with_AL2M;			/* in */
		tSM_UT32 audio_with_AL3M;			/* in */
		tSM_UT32 data_with_AL1M;			/* in */
		tSM_UT32 data_with_AL2M;			/* in */
		tSM_UT32 data_with_AL3M;			/* in */
		tSM_UT32 alpdu_interleaving;			/* in */
		tSM_INT maximum_AL1M_pdu_size;			/* in */
		tSM_INT maximum_AL2M_pdu_size;			/* in */
		tSM_INT maximum_AL3M_pdu_size;			/* in */
		tSM_UT32 rs_code_capability;			/* in */
	} H223_AnnexC_capability_o;				/* in */
} SM_H223MUX_SET_CAPS_PARMS;

Description

This function will set the negotiated capabilities on the H.223 multiplexer.

Fields

h223mux (Only in Preliminary Documentation)
The mux to send the capabilities to.
role (Only in Preliminary Documentation)
Indicates what terminal these capabilities apply to.
One of these values:
kSMH223muxSetCapsRoleLocal
Capabilities relate to the local terminal.
kSMH223muxSetCapsRoleRemote
Capabilities relate to the remote terminal.
optional_ext (Only in Preliminary Documentation)
A bitmap field, representing the optional fields (_o) that will be present in this structure. The bit values for each field are as follows : H223MUX_H245_CAP_O_MOBILE_OPERATION_TRANSMIT_CAP 0x04, H223MUX_H245_CAP_O_ANNEX_C 0x08, H223MUX_H245_CAP_O_BIT_RATE 0x10, H223MUX_H245_CAP_O_MOBILE_MULTILINK_FRAME_CAP 0x20
transport_with_i_frames (Only in Preliminary Documentation)
When set to non-zero, indicates that the terminal is capable of sending and receiving control channel messages using LAPM I-frames as defined in ITU-T Recommendation V.42 (2002).
video_with_AL1 (Only in Preliminary Documentation)
When set to non-zero, indicates the capability to receive video using AL1.
video_with_AL2 (Only in Preliminary Documentation)
When set to non-zero, indicates the capability to receive video using AL2.
video_with_AL3 (Only in Preliminary Documentation)
When set to non-zero, indicates the capability to receive video using AL3.
audio_with_AL1 (Only in Preliminary Documentation)
When set to non-zero, indicates the capability to receive audio using AL1.
audio_with_AL2 (Only in Preliminary Documentation)
When set to non-zero, indicates the capability to receive audio using AL2.
audio_with_AL3 (Only in Preliminary Documentation)
When set to non-zero, indicates the capability to receive audio using AL3.
data_with_AL1 (Only in Preliminary Documentation)
When set to non-zero, indicates the capability to receive data using AL1.
data_with_AL2 (Only in Preliminary Documentation)
When set to non-zero, indicates the capability to receive data using AL2.
data_with_AL3 (Only in Preliminary Documentation)
When set to non-zero, indicates the capability to receive data using AL3.
maximum_AL2_sdu_size (Only in Preliminary Documentation)
Indicates the maximum number of octets in each SDU that the terminal can receive when using adaptation layer type 2.
maximum_AL3_sdu_size (Only in Preliminary Documentation)
Indicates the maximum number of octets in each SDU that the terminal can receive when using adaptation layer type 3.
maximum_delay_jitter (Only in Preliminary Documentation)
Indicates the maximum peak-to-peak multiplexing jitter that the transmitter shall cause. Measured in milliseconds.
max_MUX_PDU_size_capability (Only in Preliminary Documentation)
When set to non-zero, indicates that the transmitter is able to restrict the size of the H.223 MUX-PDUs that it transmits. Has no meaning when part of a receive capability.
nsrp_support (Only in Preliminary Documentation)
When set to non-zero, indicates support of the Annex A/H.324 NSRP mode.
bit_rate_o (Only in Preliminary Documentation)
Indicates the bit rate to transmit the bitstream output from the H.223 multiplexer. Please note that this parameter is optional.
mobile_operation_transmit_capability_o (Only in Preliminary Documentation)
The parameters in this structure indicate the capability to transmit the multiplex layers described in Annex A/H.223 and Annex B/H.223. Please note that this structure is optional.
mode_change_capability
When set to non-zero, indicates the terminal has the capability to change H.223 multiplex levels or options during a session. The levels and options supported are listed below. If set to zero the remainder of the structure will be ignored.
h223_AnnexA
When set to non-zero, indicates the terminal can transmit the MUX-PDUs as defined in Annex A/H.223.
h223_AnnexA_double_flag
When set to non-zero, indicates the terminal can transmit the MUX-PDUs as defined in Annex A/H.223 with it's optional double-flag mode.
h223_AnnexB
When set to non-zero, indicates the terminal can transmit the MUX-PDUs as defined in AnnexB/H.223.
h223_AnnexB_with_header
When set to non-zero, indicates the terminal can transmit the MUX-PDUs as defined in AnnexB/H.223 with its optional header field.
mobile_multilink_frame_capability_o (Only in Preliminary Documentation)
The parameters in this structure indicate the capability to receive and process mobile multilink frames. Please note that this structure is optional.
maximum_sample_size
Indicates the maximum number of octets in each sample that the terminal can process.
maximum_payload_length
Indicates the maximum length of frames in octets that the terminal can process.
H223_AnnexC_capability_o (Only in Preliminary Documentation)
The parameters in this structure indicate the capability to receive and process AL-PDUs as described in Annex C/H.223. Please note that this structure is optional.
video_with_AL1M
When set to non-zero, indicates the capability to receive video using AL1M.
video_with_AL2M
When set to non-zero, indicates the capability to receive video using AL2M.
video_with_AL3M
When set to non-zero, indicates the capability to receive video using AL3M.
audio_with_AL1M
When set to non-zero, indicates the capability to receive audio using AL1M.
audio_with_AL2M
When set to non-zero, indicates the capability to receive audio using AL2M.
audio_with_AL3M
When set to non-zero, indicates the capability to receive audio using AL3M.
data_with_AL1M
When set to non-zero, indicates the capability to receive data using AL1M.
data_with_AL2M
When set to non-zero, indicates the capability to receive data using AL2M.
data_with_AL3M
When set to non-zero, indicates the capability to receive data using AL3M.
alpdu_interleaving
When set to non-zero, indicates the capability to receive and process AL-PDUs for which interleaving is applied.
maximum_AL1M_pdu_size
Indicates the maximum number of octets in each PDU that the terminal can receive when using adaptation layer AL1M.
maximum_AL2M_pdu_size
Indicates the maximum number of octets in each PDU that the terminal can receive when using adaptation layer AL2M.
maximum_AL3M_pdu_size
Indicates the maximum number of octets in each PDU that the terminal can receive when using adaptation layer AL3M.
rs_code_capability
When set to non-zero, indicates the capability to receive the AL-PDUs for which Reed-Solomon coding is indicated.

Returns

0 if call completed successfully, otherwise a standard error such as:


Prosody H.223 Mux: API: sm_h223mux_status

This function is under development. It could be changed or withdrawn, and may not be implemented in this release.

Prototype Definition

int sm_h223mux_status(struct sm_h223mux_status_parms *statusp)

Parameters

*statusp
a structure of the following type:
typedef struct sm_h223mux_status_parms {
	tSMH223muxId h223mux;					/* in */
	enum kSMH223muxStatus {
		kSMH223muxStatusRunning,
		kSMH223muxStatusStopped,
		kSMH223muxStatusSessionStarted,
		kSMH223muxStatusCreateSessionFailed,
		kSMH223muxStatusDeleteSessionFailed,
		kSMH223muxStatusSetCapsFailed,
		kSMH223muxStatusAddEntryFailed,
		kSMH223muxStatusOpenLCFailed,
		kSMH223muxStatusCloseLCFailed,
		kSMH223muxStatusReconfigLevelChange,
		kSMH223muxStatusReconfigFailed,
		kSMH223muxStatusInternalError,
		kSMH223muxStatusVideoPFrameDrop,
		kSMH223muxStatusVideoPFrameSend,
	} status;						/* out */
	union {
		struct {
			tSM_INT level;				/* out */
		} session_transport;				/* out */
		struct {
			tSM_INT num_errors;			/* out */
		} internal_error;				/* out */
	} u;							/* out */
} SM_H223MUX_STATUS_PARMS;

Description

returns the status of the H.223 mux.

Fields

h223mux (Only in Preliminary Documentation)
The mux.
status (Only in Preliminary Documentation)
One of these values:
kSMH223muxStatusRunning
The H.223 session is running.
kSMH223muxStatusStopped
The H.223 session has stopped and it is now safe to destroy.
kSMH223muxStatusSessionStarted
H.223 session has started and the setup level has been negotiated successfully.
kSMH223muxStatusCreateSessionFailed
H.223 session creation has failed.
kSMH223muxStatusDeleteSessionFailed
H.223 session deletion has failed.
kSMH223muxStatusSetCapsFailed
The setting of terminal capabilities has failed.
kSMH223muxStatusAddEntryFailed
Multiplex table entry addition has failed.
kSMH223muxStatusOpenLCFailed
Open logical channel request has failed.
kSMH223muxStatusCloseLCFailed
Close logical channel request has failed.
kSMH223muxStatusReconfigLevelChange
Level has changed as a result of a reconfiguration request.
kSMH223muxStatusReconfigFailed
Multiplex reconfiguration request has failed.
kSMH223muxStatusInternalError
The H.223 session encountered one or more internal errors during processing. These errors are likely to result in missing data. Note that such errors are not fatal and the H.223 session will continue to run. These status reports are throttled in order to maintain a sensibly low rate of reporting even in the event of a high rate of errors.
kSMH223muxStatusVideoPFrameDrop
The video logical channel has entered a busy situation and will now drop all subsequent P-frames added to the transmit queue until an I-frame is received.
kSMH223muxStatusVideoPFrameSend
An I-frame has been received on the video channel queue after entering a busy situation, so subsequent P-frames will now be sent.
u (Only in Preliminary Documentation)
Additional information relating to the current status of the H.223 mux.
session_transport
This field is only valid if the status is kSMH223muxStatusSessionStarted or kSMH223muxStatusReconfigLevelChange.
level
The H.223 transport level negotiated for the session.
internal_error
This field is only valid if the status is kSMH223muxStatusInternalError.
num_errors
The number of internal errors encountered by the H.223 session covered by this status report.

Returns

0 if call completed successfully, otherwise a standard error such as:


Prosody H.223 Mux: API: sm_h223mux_stop

This function is under development. It could be changed or withdrawn, and may not be implemented in this release.

Prototype Definition

int sm_h223mux_stop(struct sm_h223mux_stop_parms *stopp)

Parameters

*stopp
a structure of the following type:
typedef struct sm_h223mux_stop_parms {
	tSMH223muxId h223mux;					/* in */
} SM_H223MUX_STOP_PARMS;

Description

Stops the H.223 Mux.

Fields

h223mux (Only in Preliminary Documentation)
the mux

Returns

0 if call completed successfully, otherwise a standard error such as:


These functions constitute the Prosody H.223 Mux API.