The role of a plugin is to monitor, respond, and update the physical user interface features of a device such as its buttons, switches, and indicator lights. Headsets and other accessories containing a microphone and speaker can work with a Cisco application with no extra work (i.e no plugin) required on the part of the vendor. However if the accessory has call control buttons and/or a display and LEDs, then these items can be integrated with Cisco's call control system, via a plugin written by the vendor which merges the vendor's hardware with Cisco's application.
A plugin's core functional responsibility is to monitor the device's user interface and invoke call control related tasks such as answering a call, selecting an active device, etc. while maintaining the necessary information to track the states of these devices.
A plugin is loaded by the Cisco application and interfaces with Cisco's Accessories Manager as shown here:
Tasks not handled by a Plugin
It's important to note that a plugin does not directly perform media related tasks such as:
- choosing audio codecs
- turning on/off echo cancellation
- performing audio or video path functionality
Such tasks are handled by the application via a component called the ECC which communicates directly with the device. The ECC will be discussed in detail in the developer guide.