# OpalParamGeneral Struct Reference

`#include <opal.h>`

## Data Fields

const char * | m_audioRecordDevice
const char * | m_audioPlayerDevice
const char * | m_videoInputDevice
const char * | m_videoOutputDevice
const char * | m_videoPreviewDevice
const char * | m_mediaOrder
const char * | m_mediaMask
const char * | m_autoRxMedia
const char * | m_autoTxMedia
const char * | m_natMethod
const char * | m_natServer
unsigned | m_tcpPortBase
unsigned | m_tcpPortMax
unsigned | m_udpPortBase
unsigned | m_udpPortMax
unsigned | m_rtpPortBase
unsigned | m_rtpPortMax
unsigned | m_rtpTypeOfService
unsigned | m_rtpMaxPayloadSize
unsigned | m_minAudioJitter
unsigned | m_maxAudioJitter
OpalSilenceDetectMode | m_silenceDetectMode
unsigned | m_silenceThreshold
unsigned | m_signalDeadband
unsigned | m_silenceDeadband
unsigned | m_silenceAdaptPeriod
OpalEchoCancelMode | m_echoCancellation
unsigned | m_audioBuffers
OpalMediaDataFunction | m_mediaReadData
OpalMediaDataFunction | m_mediaWriteData
OpalMediaDataType | m_mediaDataHeader
OpalMessageAvailableFunction | m_messageAvailable
const char * | m_mediaOptions
unsigned | m_audioBufferTime
unsigned | m_manualAlerting
OpalMediaTiming | m_mediaTiming
OpalMediaTiming | m_videoSourceTiming

## Detailed Description

General parameters for the OpalCmdSetGeneralParameters command. This is only passed to and returned from the OpalSendMessage() function.

Example: `OpalMessage command; OpalMessage * response;`

`memset(&command, 0, sizeof(command)); command.m_type = OpalCmdSetGeneralParameters; command.m_param.m_general.m_stunServer = "stun.voxgratia.org"; command.m_param.m_general.m_mediaMask = "RFC4175*"; response = OpalSendMessage(hOPAL, &command);`

For m_mediaOrder and m_mediaMask, each '
' seperated sub-string in the array is checked using a simple wildcard matching algorithm.

The '*' character indicates substrings, for example: "G.711*" would remove "G.711-uLaw-64k" and "G.711-ALaw-64k".

The '@' character indicates a type of media format, so say "\@video" would remove all video codecs.

The '!' character indicates a negative test. That is the entres that do NOT match the string are removed. The string after the '!' may contain '*' and '@' characters.

It should be noted that when the ! operator is used, they are combined differently to the usual application of each entry in turn. Thus, the string "!A\n!B" will result in keeping both A and B formats.

## Field Documentation

unsigned OpalParamGeneral::m_audioBuffers

Set the number of hardware sound buffers to use. Note the largest of m_audioBuffers and m_audioBufferTime/frametime will be used.

unsigned OpalParamGeneral::m_audioBufferTime

Set the hardware sound buffers to use in milliseconds. Note the largest of m_audioBuffers and m_audioBufferTime/frametime will be used.

const char* OpalParamGeneral::m_audioPlayerDevice

Audio playback device name

const char* OpalParamGeneral::m_audioRecordDevice

Audio recording device name

const char* OpalParamGeneral::m_autoRxMedia

List of media types (e.g. audio, video) separated by spaces which may automatically be received automatically. If NULL no change is made, but if "" then all media is prevented from auto-starting.

const char* OpalParamGeneral::m_autoTxMedia

List of media types (e.g. audio, video) separated by spaces which may automatically be transmitted automatically. If NULL no change is made, but if "" then all media is prevented from auto-starting.

OpalEchoCancelMode OpalParamGeneral::m_echoCancellation

Accoustic Echo Cancellation control. 0=no change, 1=disabled, 2=enabled.

unsigned OpalParamGeneral::m_manualAlerting

Indicate that an "alerting" message is automatically (value=1) or manually (value=2) sent to the remote on receipt of an OpalIndIncomingCall message. If set to manual then it is up to the application to send a OpalCmdAlerting message to indicate to the remote system that we are "ringing". If zero then no change is made.

unsigned OpalParamGeneral::m_maxAudioJitter

Maximum jitter time in milliseconds. For audio RTP data being received this sets the maximum time of the adaptive jitter buffer which smooths out irregularities in the transmission of audio data over the Internet.

OpalMediaDataType OpalParamGeneral::m_mediaDataHeader

Indicate that the media read/write callback function is passed the full RTP header or just the payload. 0=no change, 1=payload only, 2=with RTP header.

const char* OpalParamGeneral::m_mediaMask

List of media format names to set media to be excluded. This list of names (e.g. "G.723.1") is separated by the '
' character.

const char* OpalParamGeneral::m_mediaOptions

List of media format options to be set. This is a '
' separated list of entries of the form "codec:option=value". Codec is either a media type (e.g. "Audio" or "Video") or a specific media format, for example: `"G.723.1:Tx Frames Per Packet=2\nH.263:Annex T=0\n" "Video:Max Rx Frame Width=176\nVideo:Max Rx Frame Height=144"`

const char* OpalParamGeneral::m_mediaOrder

List of media format names to set the preference order for media. This list of names (e.g. "G.723.1") is separated by the '
' character.

OpalMediaDataFunction OpalParamGeneral::m_mediaReadData

Callback function for reading raw media data. See OpalMediaDataFunction for more information.

OpalMediaTiming OpalParamGeneral::m_mediaTiming

Indicate how the media read/write callback function handles the real time aspects of the media flow. 0=no change, 1=synchronous, 2=asynchronous, 3=simulate synchronous.

OpalMediaDataFunction OpalParamGeneral::m_mediaWriteData

Callback function for writing raw media data. See OpalMediaDataFunction for more information.

OpalMessageAvailableFunction OpalParamGeneral::m_messageAvailable

If non-null then this function is called before the message is queued for return in the GetMessage(). See the OpalMessageAvailableFunction for more details.

unsigned OpalParamGeneral::m_minAudioJitter

Minimum jitter time in milliseconds. For audio RTP data being received this sets the minimum time of the adaptive jitter buffer which smooths out irregularities in the transmission of audio data over the Internet.

const char* OpalParamGeneral::m_natMethod

The Network Address Translation method to use. If an empty string and m_natServer is not empty, then "STUN" is assumed. For backward compatibility, if this is a host name or IP address of then a "Fixed" method for the NAT router is used.

const char* OpalParamGeneral::m_natServer

The host name or IP address of the NAT (e.g. STUN) server which may be used to determine the NAT router characteristics automatically.

unsigned OpalParamGeneral::m_rtpMaxPayloadSize

Maximum payload size for RTP packets. This may sometimes need to be set according to the MTU or the underlying network.

unsigned OpalParamGeneral::m_rtpPortBase

Base of range of ports to use for RTP/UDP communications. This may be required by some firewalls.

unsigned OpalParamGeneral::m_rtpPortMax

Max of range of ports to use for RTP/UDP communications. This may be required by some firewalls.

unsigned OpalParamGeneral::m_rtpTypeOfService

Value for the Type Of Service byte with UDP/IP packets which may be used by some routers for simple Quality of Service control.

unsigned OpalParamGeneral::m_signalDeadband

Time signal is required before audio is transmitted. This is is RTP timestamp units (8000Hz).

unsigned OpalParamGeneral::m_silenceAdaptPeriod

Window for adapting the silence threashold. This applies if m_silenceDetectMode is adaptive (3). This is is RTP timestamp units (8000Hz).

unsigned OpalParamGeneral::m_silenceDeadband

Time silence is required before audio is transmission is stopped. This is is RTP timestamp units (8000Hz).

OpalSilenceDetectMode OpalParamGeneral::m_silenceDetectMode

Silence detection mode. This controls the silence detection algorithm for audio transmission: 0=no change, 1=disabled, 2=fixed, 3=adaptive.

unsigned OpalParamGeneral::m_silenceThreshold

Silence detection threshold value. This applies if m_silenceDetectMode is fixed (2) and is a PCM-16 value.

unsigned OpalParamGeneral::m_tcpPortBase

Base of range of ports to use for TCP communications. This may be required by some firewalls.

unsigned OpalParamGeneral::m_tcpPortMax

Max of range of ports to use for TCP communications. This may be required by some firewalls.

unsigned OpalParamGeneral::m_udpPortBase

Base of range of ports to use for UDP communications. This may be required by some firewalls.

unsigned OpalParamGeneral::m_udpPortMax

Max of range of ports to use for UDP communications. This may be required by some firewalls.

const char* OpalParamGeneral::m_videoInputDevice

Video input (e.g. camera) device name

const char* OpalParamGeneral::m_videoOutputDevice

Video output (e.g. window) device name

const char* OpalParamGeneral::m_videoPreviewDevice

Video preview (e.g. window) device name

OpalMediaTiming OpalParamGeneral::m_videoSourceTiming

Indicate that the video read callback function handles the real time aspects of the media flow. This can override the m_mediaTiming.

The documentation for this struct was generated from the following file:

- opal.h