| CONTACT | DEVELOPER CENTER | PARTNERS | SITEMAP
GO
Useful Links
  • Search Helpweb
    
    

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





Feedback

Please rate the usefulness of this page:  

0 - not useful at all
1 - potentially useful
2 - quite useful
3 - very useful
4 - exactly the information I needed     

Please enter a comment about this page: