Share via


RTC 1.5 Useful registry Keys

 

RTC Core Layer and SIP protocol keys

Port manager related keys

Key Path:

HKLM\Comm\\RTC\\PortRange

Key Value(s)

Key Value Type

Description

Enabled

DWORD

Enables Port range as defined by subsequent port key values

MinSipDynamicPort

MaxSipDynamicPort

DWORD

Used for setting the port range for SIP signaling traffic.

MinMediaPort

MaxMediaPort

DWORD

Used for setting the port range for audio/video RTP and RTCP traffic.

Qos Related Keys

Key Path:

HKLM\Comm\\RTC\\QoS

Key Value(s)

Key Value Type

Description

Disabled

DWORD

When = 1, disables setting of DSCP field in IP header and layer 2 tagging. By default DSCP QoS is On

DSCPSIP

DWORD

Defines the DSCP index value to be used for SIP packets. By default, DSCPAudio (index 5) is used. DSCPAudio corresponds to 0x38 in IP DSCP/TOS  field.

SIP protocol related keys

Key Path:

HKLM\Comm\\RTC

Key Value(s)

Key Value Type

Description

MinExpiresTimeoutinSec

DWORD

Lets user set the minimum expiry time in sec, that is allowable by RTC. Any value lower than the value set in this registry (or default 19 sec when not set) from the server will be rejected.

The registry is settable in the range of 5 to 9999999

Media Stack

Devices

Key path:

HKLM\Comm\RTC\DeviceSettings

Key Value(s)

Key Value Type

Description

DeviceSSMode

DWORD

If set to 0, will disable silence suppression and all audio packets, including silence will be transmitted during an audio call.

DeviceAudioSamplingFrequency

DWORD

Should be set either to 8000 or 16000. This registry lets the devices to be opened either using 8K or 16K sampling frequency. By default devices are opened at 8K sampling frequency. Opening devices at 16K will cause increase in network bandwidth as more audio samples are sent over the network. CPU consumption also increases as more samples are processed by the media stack and AEC module (if enabled). However, audio quality also increases when 16K samples are used.

DisableAGC

DWORD

If set to 1, it disables AGC (Auto Gain Control in RTC)

Media Stack Performance Tuning

Key path:

HKLM\Comm\RTC\Threads

Key Value(s)

Key Value Type

Description

EngineThreadsPriority

DWORD

Lets user change the priority at which media stack thread is running (default is 221). Acceptable value is between 1 and 255. Caution should be used in changing the default priority as this may impact the way audio data is captured and rendered and may also affect other components running on the system.

TimerFrequency

DWORD

Lets user set the polling time period for the RTC media engine stack. Default is set to 5 msec (value 50000). Registry is settable between values 10000 (1 msec) and 1000000 (100 msec)

OverlappedSend

DWORD

If set to 0, will disable overlappedSend and used blocking send for WinSock sockets. This may increase processing time of the media stack thread.

TransportThreadsPriority

DWORD

Lets user change the priority at which media stack transport thread is running (default is 221). Acceptable value is between 1 and 255. Caution should be used in changing the default priority as this may impact the way media data is processed and may also affect other components running on the system.

Media Stack QoS

Key path:

HKLM\Comm\RTC\QoS

Key Value(s)

Key Value Type

Description

Disabled

DWORD

When = 1, disables setting of DSCP field in IP header and layer 2 tagging. By default DSCP QoS is On

DSCPAudioRTP

DWORD

Defines the DSCP index value to be used for Audio RTP packets. By default, DSCPAudio (index 5) is used. DSCPAudio corresponds to 0x38 in IP DSCP/TOS  field.

DSCPAudioRTCP

DWORD

Defines the DSCP index value to be used for Audio RTCP packets. By default, DSCPAudio (index 5) is used. DSCPAudio corresponds to 0x38 in IP DSCP/TOS  field.

Media Stack NAT work around

Key path:

HKLM\Comm\RTC\NAT

Key Value(s)

Key Value Type

Description

EnableEarlyUDPPackets

DWORD

When set to 1, enables sending Early UDP packets on RTP and RTCP ports, whenever RTC stack detects a change in remote address/port. This enables opening of ports on a NAT, incase RTC client is behind one. This way, traffic from the remote client can be received through the NAT.

Media Stack in-band DTMF

Key path:

HKLM\Comm\RTC\DTMF

Key Value(s)

Key Value Type

Description

InBandDTMFToneGap

DWORD

This lets user set the time gap that RTC should introduce between sending 2 in-band DTMF tones. The default value is 250msec and the reg key is settable in msec between 100 and 1000.

DisableOOBDTMFPlayback

DWORD

This lets user disable playback of Out of Band DTMF events. By default, RTC media stack plays back these events with the corresponding DTMF tones

OOBDTMFPlaybackDuration

DWORD

This key controls the duration of the OOB DTMF tone playback. This accepts value between 10 and 500 msec. By default, tones played back are of 200 msec.

Media Stack Pluggable Codec

Key path:

HKLM\Comm\RTC\ Codec

Key Value(s)

Key Value Type

Description

UseSirenAndG7221

DWORD

Activates use of Siren and G7221 codec inside of RTC. By default, these 2 codecs are turned off as they are floating point based and may not be suitable for ARM based devices.

UsePreferredCodec

DWORD

If set to 1, it enables preferred codec logic. A codec can be made preferred by setting this key and setting the reg key PreferredAudioCodec to the payload number of the codec, that needs to be made preferred

PreferredAudioCodec

DWORD

If set to a codec payload number, along with setting UsePreferredCodec to 1, makes the respective codec as the preferred codec. This ensures that RTC will select the respective codec over other codecs, if the remote party supports the preferred codec. Setting this key also causes RTC to list that codec as the first codec, in the SDP.

Key path:

HKLM\Comm\RTC\ ACM

Key Value(s)

Key Value Type

Description

<Codec Name>

Sub-Key

Each key Under HKLM\Comm\RTC\ACM

 Denotes a pluggable codec e.g.

HKLM\Comm\RTC\ACM\GSM can be used for GSM610 codec.

Key path:

HKLM\Comm\RTC\ACM\<Codec Name>

Key Value(s)

Key Value Type

Description

PayloadType

DWORD

Denotes playload type

FrameDuration

DWORD

Denotes frame duration in msec

CodecRank

DWORD

Denotes the rank of the codec

UseHealer

DWORD

Indicates weather internal RTC audio healing should be used for this codec or not. By default it is not used.

Driver

String

Indicates the dll name that implements the codec.

Key path:

HKEY_LOCAL_MACHINE\Comm\RTC\ACM\<Codec Name>\WaveFormat

Key Value(s)

Key Value Type

Description

FormatTag

DWORD

Denotes format tag

Channels

DWORD

Number of channels that the codec supports.

SamplesPerSec

DWORD

Denotes samples per sec that the codec supports.

AvgBytesPerSec

DWORD

Denotes Avg. Bytes per sec

BlockAlign

DWORD

Block Align

BitsPerSample

DWORD

Bite Per Sample

bSize

DWORD

Comments

  • Anonymous
    December 14, 2006
    Hi, Audio Healing: In the case of RTC Audio Healing disabled, the RTC Client should have a means to indicate to the audio codec plug-in about the lost/out-of-order packets, so that we can instruct our DSP to do the healing. Is there any specific API that the plug-in has to implement for handling thiese cases or not? AEC: Is there any registry flag to disable AEC in RTC Client implementation? if i were the application developer, i know it can be done programmatically using IRTCClient::PreferredAEC. But i am device driver developer and wants to disable RTC media stack AEC and enable it in the DSP through wave driver. Are there any hooks for doing so? DTMF tones and mixing: Wave driver (wavedev2), includes a mixer and dtmf tone generator. These tasks are offloaded to DSP in our implementation. In the case of RTC Media Stack playing the OOB DTMF tones, does it use wave driver mixing (mixing with downlink voice) and tone generator or it has its own mixing and tone generation engine? Thanks in advance

  • Anonymous
    December 18, 2006
    Audio Healing:In the case of RTC Audio Healing disabled, the RTC Client should have a means to indicate to the audio codec plug-in about the lost/out-of-order packets, so that we can instruct our DSP to do the healing. Is there any specific API that the plug-in has to implement for handling thiese cases or not?<<Rajesh>> No there is no API to let pluggable codec know of lost/out of order packets.AEC:Is there any registry flag to disable AEC in RTC Client implementation? if i were the application developer, i know it can be done programmatically using IRTCClient::PreferredAEC. But i am device driver developer and wants to disable RTC media stack AEC and enable it in the DSP through wave driver. Are there any hooks for doing so?<<Rajesh>> In RTC 1.5, AEC is not enabled. IRTCClient::put_PreferredAEC will return an error.DTMF tones and mixing:Wave driver (wavedev2), includes a mixer and dtmf tone generator. These tasks are offloaded to DSP in our implementation.In the case of RTC Media Stack playing the OOB DTMF tones, does it use wave driver mixing (mixing with downlink voice) and tone generator or it has its own mixing and tone generation engine?<<Rajesh>> When DTMF playback is done, RTC discards certain downstream packets to playback the tones. RTC has its own tone generation engine.

  • Anonymous
    January 23, 2007
    These are great registry entries for Win CE, but are there any such entries available for RTC 1.3 for standard Windows?  I'm specifically looking for an ability to disable AGC and to set the DSCP for SIP packets....   Any help would be greatly appreciated!

  • Anonymous
    January 23, 2007
    These are great registry entries for Win CE, but are there any such entries available for RTC 1.3 for standard Windows?  I'm specifically looking for an ability to disable AGC and to set the DSCP for SIP packets....  <<Rajesh>>Registry entries for RTC on Win CE would be different than that on Client Windows, though many of them may be the same. For registry settings for windows client version of RTC, you would need to look at documentation for Windows Client RTC (http://msdn2.microsoft.com/en-us/library/ms775893.aspx)On standard Windows, there is no newer version after RTC 1.3Windows CE came out with RTC 1.5 with Windows CE Embedded 6.0 release.Hope this helps.<<Rajesh>>Any help would be greatly appreciated!

  • Anonymous
    July 06, 2007
    Does GSM codec available from OS and voice works fine? thanks <<Rajesh>> Codec need to have ACM interface in order to be plugged into RTC. I dont beleive all GSM codecs have ACM wrappers written for them.  

  • Anonymous
    July 31, 2007
    Just a question my VOIP provider is Neuftalk (in France) same as WENGO VOIP provider. My settings are correct and when Wifi is connected my Voip is selected, but when i make a call the person called can't heard me, I ve think it's a codec problem but i don't know how to solve this problem, can i have any suggestions. Thanks by advance Sorry for my very bad english   <<Rajesh>> How do you know if it's a codec problem? You can do a network capture and see if both VOIP parties are using the same codec or not. RTC supports asymmetric codecs, but some VOIP devices do not.

  • Anonymous
    August 01, 2007
    I was looking for some way to set the codec priority, disable auto bandwidth adjustment and resolution settings for RTC 1.3 for Windows client.  Same kind of question that cenet and Kavin asked. I couldn't find any registry details for Windows client (RTC 1.3). Any help would be greatly appreciated! Thanks, Vel.   <<Rajesh>> RTC on CE and Windows Client, though are similar, have differences of their own. For example, Client RTC version does not support pluggable codecs, whereas CE version does. You would need to post your question on a blog which is specific to Windows Client RTC version. Sorry, I couldn't be of more help to you. Thanks.

  • Anonymous
    September 29, 2007
    The comment has been removed

  • Anonymous
    October 30, 2007
    Is there a key to disable usage of PRACK function as response for a initiated INVITE to keep backward compatibility? -> INVITE <- TRYING <- RINGING -> PRACK // this is bad, want a OK -- Thanks Soeren   <<Rajesh>> Are you referring to disabling prack events in RTC? if so, you can do that by using prack event filter flag RTCEF_PRACK In general, support for prack is through Supported: 100rel header. So only if both parties support prack, then prack woul dbe enabled, else it wont be.

  • Anonymous
    March 03, 2008
    I am planning to write ACM interface for a new speech codec where there is not format available in mmreg.h. Do i need to register new codec format FormatTag with microsoft before shipping? Can you explain what is the reason of this kind of registration?  <<Rajesh>>  You do not need to register the formmat tage with Microsoft. You can use the value WAVE_FORMAT_PCM (I think this value is ignored in the code). Please comment back if this does not work for you. Thanks.