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 advanceAnonymous
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 removedAnonymous
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.