MSDN Library
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

CallControl class

Represents the properties, commands and events for handling calls on a telephony related device.


var callControl = Windows.Media.Devices.CallControl;


The CallControl class has these types of members:


The CallControl class has these events.

AnswerRequested Occurs when the device receives a request to answer a call.
AudioTransferRequested Occurs when the device receives a request for an audio transfer.
DialRequested Occurs when a number is dialed from the device.
HangUpRequested Occurs when the device receives a request to hang up a call.
KeypadPressed Occurs when a keypad button on the device has been pressed.
RedialRequested Occurs when the device receives a request to redial.



The CallControl class has these methods. With C#, Visual Basic, and C++, it also inherits methods from the Object class.

EndCall Ends the specified call.
FromId Returns a CallControl class that represents the audio communications device specified by the DeviceInformation ID being passed.
GetDefault Returns a CallControl class that represents the default audio communications device.
IndicateActiveCall Indicates that the specified call is now active.
IndicateNewIncomingCall Informs the device that there is an incoming call.
IndicateNewOutgoingCall Updates device indicators to indicate an outgoing call.



The CallControl class has these properties.

PropertyAccess typeDescription


Read-onlyIndicates whether the telephony device has a built-in ringer.



This class provides access to events that can be monitored and used for modifying the behavior of your telephony-aware app. The following JavaScript code snippet shows how to add event listeners to the CallControl class, and then to respond to one of the events, AnswerRequested.

// Define the user-defined valriables
var callControls = null;
var audioTag;

// Add code to initialize your user-defined variables as needed
<code goes here>

// Initialize the telephony device
    function initDevice() {
        if (!callControls) {
            try {
                callControls = Windows.Media.Devices.CallControl.getDefault();

                if (callControls) {
                    // Add the event listener to listen for the various button presses
                    callControls.addEventListener("answerrequested", answerButton, false);
                    callControls.addEventListener("hanguprequested", hangupButton, false);
                    callControls.addEventListener("audiotransferrequested", audiotransferButton, false);
                    callControls.addEventListener("redialrequested", redialButton, false);
                    callControls.addEventListener("dialrequested", dialButton, false);

                    sdkSample.displayStatus("Call Controls Initialized");
                    id("scenario1Ring").disabled = false;
                } else {
                    sdkSample.displayError("No Bluetooth device detected.");
            catch (e) {                
                sdkSample.displayError("No Bluetooth device detected.");

// Event handler code to respond to the AnswerRequested event
    function answerButton() {
        // When the answer button is pressed indicate to the device that the call was answered
        // and start a song on the headset (this is done by streaming music to the bluetooth
        // device in this sample)
        sdkSample.displayStatus("Answer requested: " + callToken);
        audiotag = document.getElementById("audiotag");;

For the complete listing of this sample see How to manage calls on the default Bluetooth communications device.

Requirements (Windows 10 device family)

Device family

Desktop, introduced version 10.0.10240.0

API contract

Windows.Media.Devices.CallControlContract, introduced version 1.0


Windows::Media::Devices [C++]



Requirements (Windows 8.x and Windows Phone 8.x)

Minimum supported client

Windows 8 [Windows Store apps, desktop apps]

Minimum supported server

Windows Server 2012 [Windows Store apps, desktop apps]

Minimum supported phone

None supported


Windows::Media::Devices [C++]





See also

How to manage calls on the default Bluetooth communications device



© 2015 Microsoft