Share via


ToneController

The ToneController class is responsible for handling telephony tone communication between an AudioVideoFlow instance and an application. A ToneController instance can send telephone keypad tones to or receive them from an attached AudioVideoFlow instance. Although ToneController and AudioVideoFlow instances operate independently of one other, communication is effective only when the attached AudioVideoFlow instance is in the Active state (that is, the State property on the AudioVideoFlow instance is Active).

An application can send a tone by calling one of the overloaded Send methods, and provided that the attached AudioVideoFlow instance is in the Active state. If the AudioVideoFlow instance is in a state other than Active (that is, Idle or Terminated), an exception is not thrown.

An application can receive a tone if it has registered a handler for the ToneReceived event.

In Microsoft Unified Communications Managed API (UCMA) 3.0, a new event and an associated class have been added to the ToneController class to enable an application to detect when a fax tone is received from a remote peer. An application that has subscribed to the IncomingFaxDetected event on the ToneController class can detect an incoming fax tone in either of the following situations.

  • In-band fax tone (CNG tone event in the RTP stream sent according to RFC 2833)

  • Out-of-band fax tone (CNG tone is sent over the RTP event)

  • The endpoint receives a SIP ReINVITE with a=image

New class or member

Description

IncomingFaxDetectedEventArgs class

Represents event arguments forwarded by a ToneController instance as notification that a fax tone was received.

NoteNote
There are no public members of this class.

IncomingFaxDetected event

Raised when a fax tone is detected.