The Vocera Messaging Interface (VMI) is an application programming interface (API) that enables text messaging between external systems and Vocera voice devices (badges and smartphone clients) via the Vocera Voice Server. VMI allows a client (for example, a nurse call system) to send a text message to a device and to receive acknowledgements that describe the delivery status of the message, along with optional responses from a message recipient.
VMI is not updated with every Vocera Voice Server release; it is updated only when significant features are implemented or when critical defects require fixes.
These release notes describe changes that affect the VMI-client side application interface as well as changes on the Vocera Voice Server that affect the end user experience of VMI message interaction.
No upgrade needed. Vocera Voice Server 5.2 packages VMI product version 1.1.5.1. Because neither the vmi.dll nor the VMI API version has changed, you neither need to rebuild your application nor upgrade the vmi.dll used by your application.
The combination of VMI product version, Vocera Voice Server version, and the VMI API version determines the compatibility of your application in various Vocera environments. The VMI product version, Vocera Voice Server version, and VMI API version can all change independently:
The VMI product version changes whenever the vmi.dll itself is updated. An update to the API always triggers an update to the .dll, but the .dll may also be updated due to a feature implementation or a defect fix that does not affect the API. For example, in VMI product version 1.1.2.0 the vmi.dll was updated to implement SSL support without affecting the API.
The Vocera Voice Server version indicates the revision level of the Voice Server, and it helps you determine the compatibility of a specific version of the Voice Server with a specific VMI product version. For example, if your application is packaged with VMI product version 1.1.3.0, it is compatible with both Voice Server 4.3 SP2 and 4.3 SP1. If your application did not use any of the new APIs introduced in API Version 4.3, your application is also compatible with earlier versions of the Vocera Voice Server.
The VMI API version changes whenever the interfaces in the VMI product version change. The interfaces have not changed since the Vocera Voice Server 4.3 GA release.
The following table provides version compatibility information for the VMI product version and the Vocera Voice Server.
Voice Server Version | VMI Product Version | VMI API Version |
---|---|---|
5.2.0 |
1.1.5.2 |
4.3 |
5.1.0 |
1.1.5.1 |
4.3 |
5.0.1 |
1.1.5.1 |
4.3 |
4.4.4 |
1.1.5.1 |
4.3 |
4.4.3 |
1.1.5.1 |
4.3 |
4.4.2 |
1.1.5.1 |
4.3 |
4.4.0 |
1.1.4.0 |
4.3 |
4.3 SP3 |
1.1.3.0 |
4.3 |
4.3 SP2 |
1.1.3.0 |
4.3 |
4.3 SP1 |
1.1.2.0 |
4.3 |
4.3 GA |
1.1.1.0 |
4.3 |
4.2 GA |
1.0.0.1 |
4.2 |
4.1 SP5 |
1.0.0.1 |
4.1 |
4.1 GA |
N/A |
4.1 |
4.0 GA |
N/A |
4.0 |
3.1 GA |
N/A |
3.1 |
This section summarizes the new features and fixed defects in each VMI product version (each version of vmi.dll).
This section summarizes the new features and fixed defects in VMI product version 1.1.5.2. (vmi.dll version 1.1.5.2).
Fixed bug for writing UTF8 characters to the Vocera Voice Server. (DE79)
Prior to this fix, certain characters passed in a VMI message could cause the VMI connection to drop.
This section summarizes the new features and fixed defects in VMI product version 1.1.5.1. (vmi.dll version 1.1.5.1).
Logging updates.
Supports library logging enabled by setting environment variable VOCERA_RTSLOG.
Fixed bug in which multiple reader threads can get created. (DE2251)
This was a race condition around VMI::Close, where receiving signals may cause an exception.
This section summarizes the new features and fixed defects in VMI product version 1.1.4.0. (vmi.dll version 1.1.4.0).
IPv6 support
The VMI library now supports IPv6 addresses in addition to IPv4.
This section summarizes the new features and fixed defects in VMI product version 1.1.3.0. (vmi.dll version 1.1.3.0).
VMI client gets stuck in an endless loop using SSL. (17506)
For VMI clients using SSL, when the connection is closed by the Vocera Voice Server to the client, you will see the VMI client spin in an endless loop (100% CPU utilization).
Vocera Server should log the VMI version on connect. (16908)
The VMI client library has been updated to pass the product and file version information of the library when connecting to the Vocera Server. VS 4.3 SP2 will provide this information in a log line.
This section summarizes the new features and fixed defects in VMI product version 1.1.2.0. (vmi.dll version 1.1.2.0).
VMI over SSL. (16659)
VMI communication can now be encrypted using SSL. The VMI library SSL functionality is enabled via a registry setting on the server on which the VMI library is running.
Signal write should be buffered so as to write a complete signal to TCP socket to avoid fragmentation, increase performance. (16516)
VMI packets are no longer fragmented in to multiple packets before being sent to the Vocera server. Each message is sent as one packet.
TCP_NODELAY setting not initialized correctly causing it to be set to false. (16514)
In 1.1.1.0 a bug was exposed which limits the speed at which VMI messages can be sent by the client. This has been fixed in 1.1.2.0.
VMI LogEvent() sEventInfo field should support 10 items with 64 maximum length per item. (16237)
A bug was found in 1.1.0 which was inadvertently limiting the sEventInfo string to 25 characters instead of the documented 64 characters.
This section summarizes the new features and fixed defects in VMI product version 1.1.1.0. (vmi.dll version 1.1.1.0).
LogEvent API.
Log Event API allows integration partners to provide transactions arround messaging events. Minor revision number incremented. Since the API has changed GetVersion() has been updated to return "4.3", although binary backwards compatibility remains. Thus, this DLL can be dropped in replace of an older version with out recompilation.
VMI trims initial or trailing spaces from sVoceraIPAddr parameter of VMI::Open(). (14949)
Previously, the VMI library caused an application to crash when calling VMI::Open() if the IP address specified for sVoceraIPAddr had initial or trailing spaces. VMI now trims initial or trailing spaces from the sVoceraIPAddr string.
Update VMI build to VS2005 and add x64 (64-bit) support. (15354)
This release now provides 32-bit and 64-bit libraries built with Visual Studio 2005. The directory structure has been reorganized in order to support this.
This section summarizes the new features and fixed defects in VMI product version 1.0.0.1. (vmi.dll version 1.0.0.1).
Argument and range checking added to public API. (13213)
The methods in the VMI class now to range and argument checking. There was no new error code added, in order to preserve API backwards compatibility. The API will simply return rcFailed if the call fails due to an argument or range check failure.
Added embedded windows version information into the VMI dll. (13789)
The VMI dll now contains embedded version information and implements it's own revision numbering. Right click on the vmi.dll, select Properties and then Details. Product version versions updates to the VMI dll itself. The File version number indicates the Vocera Server release in which the VMI dll was packaged.
Windows handle leak during open/close. (13759)
The VMI dll was leaking handles. One leak per successful open/close and three handles on an unsuccessful open.
This section summarizes any changes to the Vocera Voice Server (new features or fixes) that affect the VMI.
This section summarizes the VMI-related changes in VS 4.4.0.
Logging of active VMI connections – At the top of each Vocera Voice Server log file, the log indicates the number of active VMI connections and lists each VMI client and its version information.
Configure text messages to be played aloud on Vocera badges per VMI client, site, or both - The MsgEnunciateMode property in properties.txt allows you to enter a comma-delimited list of values to specify the enunciate mode for a VMI client, a site, or both. This helps you control which text messages are enunciated for each VMI application or site.
For details, see the Vocera Administration Guide.
VMI broadcast prompts can cut into message enunciation - VMI broadcast messages now have an initial three seconds of silence, thus allowing prompts to finish playing before the message starts. (Issue 19852)
The initial silence for VMI broadcasts is configurable via a Vocera Voice Server property that you can add to \vocera\server\properties.txt:
VMIBroadcastInitialSilence = 3
There are no known issues in VMI product version 1.1.5.1 or in Voice Server version 5.x (related to VMI).