USB HID telefony plugin for tSIP
This plugin is very similar to HidControl.dll, but it is dedicated to handling USB devices supporting HID Telephony profile (0xB) - this would be mainly USB headsets. It also tries to control ring and call state LEDs of the device. With HID usages mechanism it should also theoretically work with different devices without the need for any configuration.
- copy HidPhone.dll from Release directory of archive to tSIP /phone subdirectory
- start tSIP, go to Settings/Phones (plugins) and double click HidPhone.dll on the list
- close tSIP - HidPhone.cfg would be created in /phone subdirectory next to HidPhone.dll
- edit HidPhone.cfg if needed with text editor or JSON editor (as this is short file any text editor would be sufficient, I still might recommend JSONedit)
- start tSIP and check log if plugin has connection with device
When handling HID report reception this DLL first tries to match it against report list defined in its configuration, reportActions array. If no match is found, DLL is looking through device usages for matches.
Plugin settings are contained in HidPhone.cfg file that is created first time after HidPhone.dll was enabled in tSIP and then tSIP was closed. It can be then edited with any text editor or JSON editor.
Source and binary
This DLL was built with Code::Blocks 16.01/MinGW. Using newer version of Code::Blocks might be more difficult as it looks like 32-bit libraries (hid.a, setupapi.a) are no longer distributed with Code::Blocks 20.
- 2023.03.30. Initial release: tSIP-plugin-HidPhone-0.1.zip.
Tested with Jabra Evolve 65 connected directly using USB cable.
Issues: hanging up confirmed call with single tap takes about 3 seconds, I'm not sure why.
Should work with other headsets, but contains some Jabra specific code - ignoring offhook event for a 1 second after offhook is sent to headset and hardcoded reject report handling (0x02 0x10 0x00 when double-tapping button in incoming call state).
In default configuration plugin opens first found USB device with telephony profile, but VID/PID can be forced manually through configuration file.
Back to tSIP softphone