Dialogic Support Helpweb
Dialogic® Host Media Processing (HMP) Software
Dialogic Device Discovery
A Utility for Discovery of Dialog R4 Devices
Problem Description
When a Dialogic board-based or Host Media Processing (HMP) system is assembled, configured and started, a number of physical and virtual boards and their channels are available for use. Naming conventions, capabilities and partitioning of channels between virtual boards may not be clear. For example, which of the voice devices on a system can be used for Continuous Speech Processing? (CSP) Which contain fax resources? Which can only be used for tone detect and generation? Device discovery can answer these questions.
Solution Summary
Several different API functions exist for device and capability discovery. and there is no ready-to-use utility for basic device discovery. This tech note provides the code for a device discovery utility and explains how it works. When it is run, information on all devices available in the system is printed and logged. The code is also a good example of how device discovery may be used in a larger application.
Technical Discussion
A Dialogic system is comprised of some number of physical boards, virtual boards, and then individual channels on a virtual board. This is true even on an HMP system, where there is no physical board. The HMP system itself is considered a “physical” board.
Applications may deal with board-level devices, or with individual channels. Both are enumerated when doing device discovery.
A system must be configured using DCM and the system services must be running before the device discovery utility will work.
Device discovery will work on Dialogic HMP and System Releases, on either the Windows or Linux operating systems.
Discovery Algorithm
Most of device discovery is done using System Runtime Library (SRL) calls. If a channel contains a voice device, it is opened and queried for its capabilities using voice (DX) calls.
Walking through all boards and channels on a system is relatively simple. The utility works like this:
Get number of physical boards
Loop over each physical board
Get number of virtual boards on physical board
Loop over each virtual board
Get number of subdevices on virtual board
Loop over each subdevice
Print subdevice name, type and description
If subdevice is a voice device
Open voice subdevice
Get voice features
Print all play, record, tone, fax front end and
miscellaneous features
Close voice device
End if voice device
End loop over subdevice
End loop over virtual board
End loop over physical board
Consult the source code for more details on the exact API calls used and the parameters needed.
Building Device Discovery
Windows
The demo code is accompanied by Microsoft Visual C++ 6.0 project files. This, or a later version of one of Microsoft’s development tools can be used to build and run the utility. A pre-built executable is also included.
Linux
A makefile is included to build the utility under Linux. Typing “make” at a shell prompt will compile and link to produce an executable.
Running Device Discovery
No arguments are needed to run the utility. Output is sent to stdout and is logged in the text file devdiscovery.log.
Product List
Device discovery applies to all Dialogic System Releases (board-based systems) and HMP releases on both Windows and Linux.
Attachments
devdiscovery.zip
Related Documentation
Standard Runtime Library API Library Reference
Voice API for Host Media Processing Library Reference
Glossary of Acronyms / Terms
API Application Programming Interface
CSP Continuous Speech Processing
DCM Dialogic Configuration manager
HMP Host media Processing
SRL System Runtime Library
First Published
03/19/2007
Last Updated
03/19/2007


