Show / Hide Table of Contents

    Interface IAudioSocket

    Interface to an AudioSocket.

    Inherited Members
    IDisposable.Dispose()
    Namespace: Microsoft.Skype.Bots.Media
    Assembly: Microsoft.Skype.Bots.Media.dll
    Syntax
    public interface IAudioSocket : IDisposable

    Methods

    GetQualityOfExperienceData()

    Get the Quality of Experience (QoE) data for the audio socket.

    Declaration
    AudioQualityOfExperienceData GetQualityOfExperienceData()
    Returns
    Type Description
    AudioQualityOfExperienceData
    Remarks

    The bot should fetch the QoE data no more than once every 30 seconds. To get accurate metrics, the bot should let media flow for at least 30 seconds before fetching the QoE data.

    Send(AudioMediaBuffer)

    Sends a frame of audio media, where a frame contains 20 milliseconds of audio content (PCM samples).

    Declaration
    void Send(AudioMediaBuffer buffer)
    Parameters
    Type Name Description
    AudioMediaBuffer buffer

    AudioMediaBuffer containing the frame of audio media to send.

    Remarks

    The application must create a concrete class which derives from the AudioMediaBuffer abstract class. The buffer object passed to the Send method is still potentially in-use after the method returns to the caller. The application must not free the buffer's frame data until the the buffer object's Dispose() method is invoked by the Media Platform.

    The application should be sending 50 frames of audio media per second with each frame containing 20 milliseconds of audio content.

    The AudioSocket must be enabled to send media via the AudioSocketSettings.StreamDirections property.

    SendDtmfTone(ToneId)

    Sends a DTMF tone.

    Declaration
    void SendDtmfTone(ToneId tone)
    Parameters
    Type Name Description
    ToneId tone

    The DTMF digit. Ranges from 0-16.

    Remarks

    Sending DTMF tone is only allowed if the AudioSocket is configured for sending media.

    SendDtmfTones(IEnumerable<ToneId>, Int32)

    Sends a sequence of DTMF tones with an optional delay between each tone.

    Declaration
    void SendDtmfTones(IEnumerable<ToneId> tones, int delayBetweenTonesInMilliseconds = -1)
    Parameters
    Type Name Description
    IEnumerable<ToneId> tones

    The list of DTMF digits to be sent. Ranges from 0-16.

    Int32 delayBetweenTonesInMilliseconds

    Delay (in milliseconds) between each DTMF tone sent.

    Remarks

    By default, the delay is set to -1 which picks a random time between 0 to 500 milliseconds.

    Events

    AudioMediaReceived

    If the application has configured the AudioSocket to receive media, this event is raised each time a frame of audio media is received, where a frame contains 20 milliseconds of audio content (PCM samples). Once the application has consumed the buffer, it must call the buffer's Dispose() method.

    Declaration
    event EventHandler<AudioMediaReceivedEventArgs> AudioMediaReceived
    Event Type
    Type Description
    EventHandler<AudioMediaReceivedEventArgs>
    Remarks

    The application must be able to handle at least 50 incoming audio buffers per second. Events are serialized, so only one event at a time is raised to the app. The event handler should return as quickly as possible; any time-consuming per-frame processing should be performed asynchronously from the event handler.

    AudioSendStatusChanged

    If the application has configured the AudioSocket to send media, this event is raised to inform the application when it may begin sending media and when it should stop. The application cannot send media before receiving a MediaSendStatusChanged event indicating the SendStatus is Started.

    Declaration
    event EventHandler<AudioSendStatusChangedEventArgs> AudioSendStatusChanged
    Event Type
    Type Description
    EventHandler<AudioSendStatusChangedEventArgs>

    DominantSpeakerChanged

    This event is raised when there is a change in the dominant speaker in the conference. If there is no dominant speaker in the conference, the CurrentDominantSpeaker argument in the event will have the value None (0xFFFFFFFF).

    Declaration
    event EventHandler<DominantSpeakerChangedEventArgs> DominantSpeakerChanged
    Event Type
    Type Description
    EventHandler<DominantSpeakerChangedEventArgs>

    MediaStreamFailure

    This event is raised if there is a network connection failure with the peer. To recover, the bot will need to start a new call or rejoin the meeting.

    Declaration
    event EventHandler<MediaStreamFailureEventArgs> MediaStreamFailure
    Event Type
    Type Description
    EventHandler<MediaStreamFailureEventArgs>

    ToneReceived

    This event is raised when the DTMF tone is received. ToneId enum in the event arguments indicates the tone value.

    Declaration
    event EventHandler<ToneReceivedEventArgs> ToneReceived
    Event Type
    Type Description
    EventHandler<ToneReceivedEventArgs>
    Back to top Copyright (c) Microsoft Corporation. All rights reserved.