The adventure continues. This fun little project now has some Javascript running on nodejs and seems to function pretty flawlessly.
I now have four different presence states based on feedback from the Room Kit:
- Flashing Red - Do not disturb
- Red - On a Call
- Blue - Room occupied based on people count
- Green - available and empty
The expansion of different presence states was pretty easy. I incorporated people count, do not disturb and the call API's. Do not disturb is a little hard to find on a Cisco Touch 10 so my advice is if you want users to actually use DnD or know its available build a custom UI widget for it. This can be used to toggle DnD via a Macro.
The project was a little larger than expected so I created a github repository to get access to code if your interested.
https://github.com/voipnorm/CEbusyLightOmega
The design is pretty simple. The bl and endpoint files create class's for what you would think they are. The most interesting part of this project was creating a way to prioritise each presence state. What I created is based on the array index of a 4 element array [0,0,0,1]. Each presence state matches the following positions in the array:
- Flashing Red (DnD) - 0
- Red (in call) - 1
- Blue (people present) - 2
- Green (room is vacant) - 3
As the presence state changes so does the array. [1,0,1,1] means the room has been set to do not disturb and there are people in the room. The busylight shows a flashing red because it has the highest priority. The final element is alway left at 1 because it has the lowest priority default and it's not worth the effort to change. The "
let indexColor
= colorArray.
indexOf(
1);" looks up the first element in the array that has been set to 1 dictating what color to set the light.
Next step lets get it running on a Raspberry PI.
VoIPNorm
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.