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 (10)

  1. Annapureddy Thirupathaiah says:

    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

  2. cenet says:

    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.

  3. kevin haynie says:

    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!

  4. cenet says:

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

    Windows CE came out with RTC 1.5 with Windows CE Embedded 6.0 release.

    Hope this helps.

    <<Rajesh>>

    Any help would be greatly appreciated!

  5. GSM Codec says:

    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.

     

  6. David says:

    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.

  7. Vel says:

    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.

  8. Stefano, Italy says:

    Could please you help me implementing the GSM codec for VOIP in WM6 as I’m a little confused about whether it can be done in WM6. In other words are these registry settings functional with the GSM codec provided with the OS. IN case they aren’t, why exactly isn’t the GSM codec implemented by default and only high bandwidth codecs (G711 a/u) are available. This doesn’t allow VoIP on 2.5G (i.e. EDGE/GPRS)

    Thank you for your help!

    <<Rajesh>> I am not aware of an ARM optimized GSM codec shipped with Windows Mobile 6 platform. The one I am aware of is FPU based and hence not suitable for ARM, and hence it is not shipped with WM6 VOIP solution.

  9. Soeren says:

    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.

  10. Anil says:

    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.

Skip to main content