We create applications to make Cisco phones more accessible to people with disabilities. We are trying to give blind users an ability to know whether they are logged into a hunt group or not. Currently, this is not accessible to a user with a vision impairment.
- If the user is logged in, our application will announce it audibly.
- Our application will also toggle hunt group login for them as well.
Should we use AXL for this or some other API. We currently use TAPI for other features but this is limited and does not support this dev specific feature.
The hunt login status of a particular device is present in the 'devicehlogdynamic' table of UCM, however it turns out that this info is not too helpful:
- There is no good way to get a notification of changes to this table, and it is impractical to poll as the contents could be large
- '*dynamic' type tables are special tables intended to handle semi-real-time feature (like DND, Callforward, and Hunt status) and may contain entries only for devices directly registered to the same node. This info may not be available at the Publisher or from other nodes
- Directly inserting/modifying entries in this table will _not_ affect a real-time hunt group status change in UCM call processing.
Unfortunately I am not aware of any way for an application to affect a hunt status operation, using any API. Two distant possibilities:
- Implement a complete 'hunt group' feature/functionality solution via UCM's CTI interfaces (TAPI or JTAPI) - for which you could build-in any automation features you might want - and have customers use this solution instead of the built-in UCM solution
- Use the IP Phone Services API to simulate phone button presses using the 'CiscoIPPhoneExecute' request. The challenge being that this mechanism works by simulating 'push Softkey #4', and the app will have difficulty knowing for sure whether pressing Softkey #4 at any given time will have the intended effect, as the function of Softkey #4 could change at any time depending on call state or user interaction (e.g. navigating services, settings, or conferencing a call.)
Thanks David. What if we simply wanted to poll the status and not affect it as you mention? In other words, our users will use the desk set to change the status but will use our application to determine if they are logged in or not. Will TAPI allow this?
TAPI does not support hunt login status from either a read or write POV.
The only possibility I can suggest would be to periodically query the 'devicehlogdynamic' table to check the hunt status via AXL <executeSqlQuery>. If this was done at a reasonable interval, and the query was specific to a small-ish list of specific devices (i.e. not the entire table) it might be workable - it would be important to test the performance in various scenarios of scale.