Using an AudioVideoFlow
This content is no longer actively maintained. It is provided as is, for anyone who may still be using these technologies, with no warranties or claims of accuracy with regard to the most recent product version or service release.
The AudioVideoFlow, AudioControl, and AudioChannel classes can be thought of as having the logical relationship shown in the following illustration. The Audio property on an AudioVideoFlow instance provides access to the AudioControl instance, and the GetChannels() method on the AudioControl instance returns a read-only IDictionary that can be used to find an AudioChannel instance by its label.
In Unified Communications Managed API 2.0 Core SDK an AudioControl instance must have exactly one AudioChannel instance.
Logical AudioVideoFlow structure
The preceding illustration also shows several of the properties on the three classes. Each property on an outer class affects not only its own class, but can affect an inner class. For example, the EncryptionPolicy indicates whether channel encryption is not supported, supported, or required, and therefore affects the value of the Encrypted property on the AudioChannel instance. The Encrypted value can be true if channel encryption is supported or required, but must be false if channel encryption is not supported.
Because the AudioVideoFlow class has no public constructors, it is not possible to directly create an instance of this class. Instead, an application must use the AudioVideoFlow instance created when an AudioVideoCall instance is created (and accessible through the Flow property on the AudioVideoCall instance). If an application intends to change the settings on an AudioVideoFlow instance, it must create an AudioVideoFlowTemplate instance to do so. For more information, see Using an AudioVideoFlowTemplate.