Open NetviperZ opened 10 months ago
HidPhone.dll is only for telephony devices (Jabra headset, Gigaset Ion, Mairdi were tested) and it is very likely that HP Internet Handset is not implementing telephony usage page, 0xB (despite its appearance). I've seen few similar devices (starting with "Skype" EX-03 phone) and I believe they all might require custom configuration. They are shipped with custom software for Skype integration and they are using some custom protocol. HidControl plugin would be more suitable starting point for this handset, but creating configuration would require hands-on experimenting with this headset - basically catching HID reports that device is sending and assigning actions (scripts) to them. If this device is stateful or has hardware ring then original Skype plugin might be helpful to determine what commands should be sent to it.
Update: It worked, but only when I specify usbUsagePage and leave usbPid and usbPid empty. When I put values for usbPid and usbPid, it says, "Error opening USB device (USB VID 0x0000, PID 0x0000, usage page 0xB): Device not found."
Working:
"usbPid" : 0,
"usbUsagePage" : 12,
"usbVid" : 0
Not working:
"usbPid" : 0x1c07,
"usbUsagePage" : 12,
"usbVid" : 0x03f0
Log:
[HidPhone.dll] HID REPORT_IN received 3 B: 0x00 0x00 0x37
[HidPhone.dll] Received 0 usage(s)
[HidPhone.dll] Parsed report: offHook 0, mute 0, redial 0, lineBusy 0, flash 0
[HidPhone.dll] Running offHook0 script
[HidPhone.dll] Running mute0 script
[HidPhone.dll] HID REPORT_IN received 3 B: 0x00 0x00 0x35
[HidPhone.dll] Received 0 usage(s)
[HidPhone.dll] Parsed report: offHook 0, mute 0, redial 0, lineBusy 0, flash 0
[HidPhone.dll] Running offHook0 script
[HidPhone.dll] Running mute0 script
[HidPhone.dll] HID REPORT_IN received 3 B: 0x00 0x00 0x43
[HidPhone.dll] Received 0 usage(s)
[HidPhone.dll] Parsed report: offHook 0, mute 0, redial 0, lineBusy 0, flash 0
[HidPhone.dll] Running offHook0 script
[HidPhone.dll] Running mute0 script
[HidPhone.dll] HID REPORT_IN received 3 B: 0x00 0x00 0x41
[HidPhone.dll] Received 0 usage(s)
[HidPhone.dll] Parsed report: offHook 0, mute 0, redial 0, lineBusy 0, flash 0
[HidPhone.dll] Running offHook0 script
[HidPhone.dll] Running mute0 script
When I put values for usbPid and usbPid, it says, "Error opening USB device (USB VID 0x0000, PID 0x0000, usage page 0xB): Device not found."
If you want/have to specify PID/VID (though this should not be needed if you have only one device with 0xB usage page) you have to convert them from hex to decimal when placing in cfg file - JSON is not supporting hexadecimal. Probably not all the keys are working at the moment, reportActions might still need to be defined for numeric keys.
Decimal working as expcted indeed, btw i couldn't find its original integration software, but I managed to read the key presses and bind them with other key inputs using Python and AHK as well. What I'm looking for is if there's a way to make its internal ringer ring for example. I would also like to control its LEDs; currently I can only toggle the mute LED button by sending the virtual key mute to the device.
PS: can we remap input key with HidControl plugin ?
What I'm looking for is if there's a way to make its internal ringer ring for example.
I'm not sure at the moment if this handset has separate physical ringer (some kind of buzzer?) or if this was just software playing audio through regular speaker. I would speculate that if ring LED is on (is it?) then physical ringer should be activated same time.
I would also like to control its LEDs; currently I can only toggle the mute LED button by sending the virtual key mute to the device.
It looks like currently I'm not passing this event to plugins. If you need it I probably would have to test it first with Jabra when I'll come back from vacation.
PS: can we remap input key with HidControl plugin ?
I believe it should be flexible enough - it is just comparing reports byte by byte and executes script on match. If this handset is working is working with HidPhone.dll though, I would recommend staying with it as HidControl.dll might not work with devices that are stateful.
I'm not sure at the moment if this handset has separate physical ringer (some kind of buzzer?) or if this was just software playing audio through regular speaker. I would speculate that if ring LED is on (is it?) then physical ringer should be activated same time.
Apparently it's some kind of buzzer according to the technical specifications of the phone:
It looks like currently I'm not passing this event to plugins. If you need it I probably would have to test it first with Jabra when I'll come back from vacation.
That would be really great! There's also another guy @arkygeek I'm currently in contact with who got the same handset and we're both very interested in maximizing the potential of this device for fun and profit xD Have a great vacation!
HP Internet Handset Manual : HP Internet Handset
Attached set might work with Mute LED. Jabra Evolve 65 plays "muted"/"unmuted" voice messages on these events. HidPhone_mute.zip I'm not seeing this handset on the local market and without hands-on testing I probably won't be able to do much.
Attached set might work with Mute LED. Jabra Evolve 65 plays "muted"/"unmuted" voice messages on these events. HidPhone_mute.zip I'm not seeing this handset on the local market and without hands-on testing I probably won't be able to do much.
Unfortunately this handset is very old and has not been available in stores for over a decade now, I tried your attached and it seems that there's no difference since it hangup calls with any pressed key. Here is the log:
Callback::CALL_STATE, call uid = 1, state = 1
[HidPhone.dll] HID REPORT_IN received 3 B: 0x00 0x00 0x47
[HidPhone.dll] Received 0 usage(s)
[HidPhone.dll] Parsed report: offHook 0, mute 0, redial 0, lineBusy 0, flash 0
[HidPhone.dll] Delaying offHook0 script - setting call reject flag
[HidPhone.dll] Running mute0 script
[HidPhone.dll] HID REPORT_IN received 3 B: 0x00 0x00 0x45
[HidPhone.dll] Received 0 usage(s)
[HidPhone.dll] Parsed report: offHook 0, mute 0, redial 0, lineBusy 0, flash 0
[HidPhone.dll] Running offHook0 script for call reject
[HidPhone.dll] Running mute0 script
rejecting incoming call from sip:xxx@sip.com (486 Busy Here)
Callback::CALL_STATE, call uid = 1, state = 0
[HidPhone.dll] HID REPORT_IN received 3 B: 0x00 0x00 0x47
[HidPhone.dll] Received 0 usage(s)
[HidPhone.dll] Parsed report: offHook 0, mute 0, redial 0, lineBusy 0, flash 0
[HidPhone.dll] Running offHook0 script
[HidPhone.dll] Running mute0 script
[HidPhone.dll] HID REPORT_IN received 3 B: 0x00 0x00 0x45
[HidPhone.dll] Received 0 usage(s)
[HidPhone.dll] Parsed report: offHook 0, mute 0, redial 0, lineBusy 0, flash 0
[HidPhone.dll] Running offHook0 script
[HidPhone.dll] Running mute0 script
Are there any incoming reports (HID REPORT_IN logs) from this handset if there is no call but buttons are pressed (would this handset be stateless)? Are they consistent and different for different buttons? What buttons were pressed above (0x00 0x00 0x47 and 0x00 0x00 0x45 sequences)?
Are there any incoming reports (HID REPORT_IN) from this handset if there is no call but buttons are pressed? Are they consistent and different for different buttons?
Yes indeed, every key has its own both HID keycodes ,pressed and released.
What buttons were pressed above (0x00 0x00 0x47 and 0x00 0x00 0x45 sequences)?
0x47 is Mute keycode Pressed, 0x45 Released :
[HidPhone.dll] HID REPORT_IN received 3 B: 0x00 0x00 0x47
[HidPhone.dll] Received 0 usage(s)
[HidPhone.dll] Parsed report: offHook 0, mute 0, redial 0, lineBusy 0, flash 0
[HidPhone.dll] Running offHook0 script
[HidPhone.dll] Running mute0 script
[HidPhone.dll] HID REPORT_IN received 3 B: 0x00 0x00 0x45
[HidPhone.dll] Received 0 usage(s)
[HidPhone.dll] Parsed report: offHook 0, mute 0, redial 0, lineBusy 0, flash 0
[HidPhone.dll] Running offHook0 script
[HidPhone.dll] Running mute0 script
Some other keys:
[HidPhone.dll] HID REPORT_IN received 3 B: 0x00 0x00 0x31
[HidPhone.dll] Received 0 usage(s)
[HidPhone.dll] Parsed report: offHook 0, mute 0, redial 0, lineBusy 0, flash 0
[HidPhone.dll] Running offHook0 script
[HidPhone.dll] Running mute0 script
[HidPhone.dll] HID REPORT_IN received 3 B: 0x00 0x00 0x2F
[HidPhone.dll] Received 0 usage(s)
[HidPhone.dll] Parsed report: offHook 0, mute 0, redial 0, lineBusy 0, flash 0
[HidPhone.dll] Running offHook0 script
[HidPhone.dll] Running mute0 script
[HidPhone.dll] HID REPORT_IN received 3 B: 0x00 0x00 0x2D
[HidPhone.dll] Received 0 usage(s)
[HidPhone.dll] Parsed report: offHook 0, mute 0, redial 0, lineBusy 0, flash 0
[HidPhone.dll] Running offHook0 script
[HidPhone.dll] Running mute0 script
[HidPhone.dll] HID REPORT_IN received 3 B: 0x00 0x00 0x2B
[HidPhone.dll] Received 0 usage(s)
[HidPhone.dll] Parsed report: offHook 0, mute 0, redial 0, lineBusy 0, flash 0
[HidPhone.dll] Running offHook0 script
[HidPhone.dll] Running mute0 script
[HidPhone.dll] HID REPORT_IN received 3 B: 0x00 0x00 0x29
[HidPhone.dll] Received 0 usage(s)
[HidPhone.dll] Parsed report: offHook 0, mute 0, redial 0, lineBusy 0, flash 0
[HidPhone.dll] Running offHook0 script
[HidPhone.dll] Running mute0 script
[HidPhone.dll] HID REPORT_IN received 3 B: 0x00 0x00 0x27
[HidPhone.dll] Received 0 usage(s)
[HidPhone.dll] Parsed report: offHook 0, mute 0, redial 0, lineBusy 0, flash 0
[HidPhone.dll] Running offHook0 script
[HidPhone.dll] Running mute0 script
[HidPhone.dll] HID REPORT_IN received 3 B: 0x00 0x00 0x25
[HidPhone.dll] Received 0 usage(s)
[HidPhone.dll] Parsed report: offHook 0, mute 0, redial 0, lineBusy 0, flash 0
[HidPhone.dll] Running offHook0 script
[HidPhone.dll] Running mute0 script
[HidPhone.dll] HID REPORT_IN received 3 B: 0x00 0x00 0x23
[HidPhone.dll] Received 0 usage(s)
[HidPhone.dll] Parsed report: offHook 0, mute 0, redial 0, lineBusy 0, flash 0
[HidPhone.dll] Running offHook0 script
[HidPhone.dll] Running mute0 script
[HidPhone.dll] HID REPORT_IN received 3 B: 0x00 0x00 0x21
[HidPhone.dll] Received 0 usage(s)
[HidPhone.dll] Parsed report: offHook 0, mute 0, redial 0, lineBusy 0, flash 0
[HidPhone.dll] Running offHook0 script
[HidPhone.dll] Running mute0 script
[HidPhone.dll] HID REPORT_IN received 3 B: 0x00 0x00 0x1B
[HidPhone.dll] Received 0 usage(s)
[HidPhone.dll] Parsed report: offHook 0, mute 0, redial 0, lineBusy 0, flash 0
[HidPhone.dll] Running offHook0 script
[HidPhone.dll] Running mute0 script
[HidPhone.dll] HID REPORT_IN received 3 B: 0x00 0x00 0x19
[HidPhone.dll] Received 0 usage(s)
[HidPhone.dll] Parsed report: offHook 0, mute 0, redial 0, lineBusy 0, flash 0
[HidPhone.dll] Running offHook0 script
[HidPhone.dll] Running mute0 script
[HidPhone.dll] HID REPORT_IN received 3 B: 0x00 0x00 0x17
[HidPhone.dll] Received 0 usage(s)
[HidPhone.dll] Parsed report: offHook 0, mute 0, redial 0, lineBusy 0, flash 0
[HidPhone.dll] Running offHook0 script
[HidPhone.dll] Running mute0 script
[HidPhone.dll] HID REPORT_IN received 3 B: 0x00 0x00 0x15
[HidPhone.dll] Received 0 usage(s)
[HidPhone.dll] Parsed report: offHook 0, mute 0, redial 0, lineBusy 0, flash 0
[HidPhone.dll] Running offHook0 script
[HidPhone.dll] Running mute0 script
For the start, this is HidPhone.cfg opened (while plugin is not loaded or softphone is not running) in JSONedit:
I've filled usbVid and usbPid with decimal values. Just in case I've made a mistake - keep a backup of your file.
I've removed default scripts (scriptOffHook0, scriptOffHook1, etc.) intended for devices actually supporting telephony usage page (automatic report parsing is returning only zeros, that's why calls are disconnected on any button press). At the moment I've disabled controlling Mute LED - this most likely would need much more guesswork for this type of handset.
Knowing that 0x00 0x00 0x47 is "Mute" pressed on the handset, I've added entry to "reportActions" with three bytes to match (0, 0, 71 array, decimal) and script ProgrammableButtonClick(25). Unfortunately I do not have "Mute" function in Lua at the moment so this action needs defining "Mute" button in softphone first (I've chosen button #25 for this - in default configuration the bottom one from first column of expanded console, but using e.g. button #4 would probably be more practical here). Lua function works as if this button was clicked.
If you can give me description of other keys / reports (which is which) I can follow this up. Scripting might be not obvious.
After changing "usbUsagePage": 11 to "usbUsagePage": 12, the handset mute key can trigger the ProgrammableButtonClick(25) which I defined as mute. I noticed that the mute function in your tSIP doesn't operate like other apps such as Whatsapp Desktop for example which directly mutes the microphone in the Windows microphone . Therefore, I can toggle the mute LED on my handset with Whatsapp Desktop but not with your app. for example I can toggle it the LED using this AHK code:
SoundSetMute -1,, "Microphone"
So the handset itself detects out the box when microphone is muted and the LED reacts accordingly
Here is the Rawkey Mapping for the keys and some additional information about the handset:
"""
Bus 003 Device 010: ID 03f0:1c07 HP, Inc HP Internet Handset
Keys: hex
1
00 07 (pressed)
00 05 (released)
2
00 0b (pressed)
00 09 (released)
3
00 0f (pressed)
00 0d (released)
4
00 13 (pressed)
00 11 (released)
5
00 17 (pressed)
00 15 (released)
6
00 1b (pressed)
00 19 (released)
7
00 1f (pressed)
00 1d (released)
8
00 23 (pressed)
00 21 (released)
9
00 27 (pressed)
00 25 (released)
0
00 2f (pressed)
00 2d (released)
*
00 2b (pressed)
00 29 (released)
#
00 33 (pressed)
00 31 (released)
contacts
00 53 (pressed)
00 51 (released)
mute
00 47 (pressed)
00 45 (released)
green dial
00 37 (pressed)
00 35 (released)
red hangup
00 43 (pressed)
00 41 (released)
handset is placed into cradle
00 40
handset is removed from cradle
00 41
big handset N button (handset off cradle)
00 3f (pressed)
00 3d (released)
handset up inner hold button
00 4b (pressed)
00 49 (released)
big handset N button (handset down)
00 3e (pressed)
00 3c (released)
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x03f0 HP, Inc
idProduct 0x1c07
bcdDevice 0.09
iManufacturer 1 Hewlett-Packard
iProduct 2 HP Internet Handset
iSerial 4 0000000001
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x012e
bNumInterfaces 4
bConfigurationValue 1
iConfiguration 3 G9 v1.0.0.0
bmAttributes 0x80
(Bus Powered)
MaxPower 200mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 1 Control Device
bInterfaceProtocol 0
iInterface 0
AudioControl Interface Descriptor:
bLength 10
bDescriptorType 36
bDescriptorSubtype 1 (HEADER)
bcdADC 1.00
wTotalLength 0x0067
bInCollection 2
baInterfaceNr(0) 1
baInterfaceNr(1) 2
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 13
wTerminalType 0x0201 Microphone
bAssocTerminal 0
bNrChannels 1
wChannelConfig 0x0000
iChannelNames 0
iTerminal 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 6
bSourceID 13
bControlSize 1
bmaControls(0) 0x03
Mute Control
Volume Control
bmaControls(1) 0x00
iFeature 0
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 12
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bNrChannels 2
wChannelConfig 0x0003
Left Front (L)
Right Front (R)
iChannelNames 0
iTerminal 0
AudioControl Interface Descriptor:
bLength 13
bDescriptorType 36
bDescriptorSubtype 4 (MIXER_UNIT)
bUnitID 9
bNrInPins 2
baSourceID(0) 12
baSourceID(1) 6
bNrChannels 2
wChannelConfig 0x0003
Left Front (L)
Right Front (R)
iChannelNames 0
bmControls(0) 0x00
iMixer 0
AudioControl Interface Descriptor:
bLength 13
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 1
bSourceID 9
bControlSize 2
bmaControls(0) 0x0155
Mute Control
Bass Control
Treble Control
Automatic Gain Control
Bass Boost Control
bmaControls(1) 0x0002
Volume Control
bmaControls(2) 0x0002
Volume Control
iFeature 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 14
wTerminalType 0x0301 Speaker
bAssocTerminal 0
bSourceID 1
iTerminal 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 2
bSourceID 13
bControlSize 1
bmaControls(0) 0x03
Mute Control
Volume Control
bmaControls(1) 0x00
iFeature 0
AudioControl Interface Descriptor:
bLength 7
bDescriptorType 36
bDescriptorSubtype 5 (SELECTOR_UNIT)
bUnitID 8
bNrInPins 1
baSourceID(0) 2
iSelector 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 10
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bSourceID 8
iTerminal 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 0
AudioStreaming Interface Descriptor:
bLength 7
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 12
bDelay 0 frames
wFormatTag 0x0001 PCM
AudioStreaming Interface Descriptor:
bLength 14
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bNrChannels 2
bSubframeSize 2
bBitResolution 16
bSamFreqType 0 Continuous
tLowerSamFreq 6400
tUpperSamFreq 48000
Endpoint Descriptor:
bLength 9
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 13
Transfer Type Isochronous
Synch Type Synchronous
Usage Type Data
wMaxPacketSize 0x00c0 1x 192 bytes
bInterval 1
bRefresh 0
bSynchAddress 0
AudioStreaming Endpoint Descriptor:
bLength 7
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x01
Sampling Frequency
bLockDelayUnits 2 Decoded PCM samples
wLockDelay 0x0001
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 2
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 0
AudioStreaming Interface Descriptor:
bLength 7
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 12
bDelay 0 frames
wFormatTag 0x0001 PCM
AudioStreaming Interface Descriptor:
bLength 14
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bNrChannels 1
bSubframeSize 2
bBitResolution 16
bSamFreqType 0 Continuous
tLowerSamFreq 6400
tUpperSamFreq 48000
Endpoint Descriptor:
bLength 9
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 13
Transfer Type Isochronous
Synch Type Synchronous
Usage Type Data
wMaxPacketSize 0x0060 1x 96 bytes
bInterval 1
bRefresh 0
bSynchAddress 0
AudioStreaming Endpoint Descriptor:
bLength 7
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x01
Sampling Frequency
bLockDelayUnits 2 Decoded PCM samples
wLockDelay 0x0001
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 0
AudioStreaming Interface Descriptor:
bLength 7
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 10
bDelay 0 frames
wFormatTag 0x0001 PCM
AudioStreaming Interface Descriptor:
bLength 14
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bNrChannels 1
bSubframeSize 2
bBitResolution 16
bSamFreqType 0 Continuous
tLowerSamFreq 6400
tUpperSamFreq 48000
Endpoint Descriptor:
bLength 9
bDescriptorType 5
bEndpointAddress 0x84 EP 4 IN
bmAttributes 13
Transfer Type Isochronous
Synch Type Synchronous
Usage Type Data
wMaxPacketSize 0x0060 1x 96 bytes
bInterval 1
bRefresh 0
bSynchAddress 0
AudioStreaming Endpoint Descriptor:
bLength 7
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x01
Sampling Frequency
bLockDelayUnits 2 Decoded PCM samples
wLockDelay 0x0001
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.00
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 59
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0002 1x 2 bytes
bInterval 8
Device Status: 0x0000
(Bus Powered)
"""
Here is an update then with usage page = 12 and most of the other button handlers filled. I'm not sure what "big handset N button" (duplicated cradle switches? some other handset model? maybe "handset is placed into cradle" is a state and second one is an event?) and "handset up inner hold" are. Might contain typos and bugs. HidPhone.zip
I have no idea how to control LEDs. On the handset I'm using daily (EX-03 "Skype") HID reports to control display and ring seem pretty random. It could be sniffed from USB communication with original software if anyone could find it. Another way might be bruteforcing it with try and error, but it might be time consuming and cannot be easily automated (one have to look at LEDs or listen for ring).
My handset was rebranded for Nortel I think so the big button on the outside of the handset is an N not HP 😉
Did you have any luck with VOP? Did it make anything work?
Jason
--
Jason S. Jorgenson, Ph.D @.***
On Mon, Jan 8, 2024, 2:31 p.m. Tomasz Ostrowski @.***> wrote:
Here is an update then with usage page = 12 and most of the other button handlers filled. I'm not sure what "big handset N button" (duplicated cradle switches?) and "handset up inner hold" are. Might contain typos. HidPhone.zip https://github.com/tomek-o/tSIP-plugin-HidPhone/files/13866369/HidPhone.zip
I have no idea how to control LEDs. On the handset I'm using HID reports to control display and ring seem pretty random. It could be sniffed from USB communication with original software if anyone could find it. Another way might be bruteforcing it with try and error, but it might be time consuming and cannot be easily automated (one have to look at LEDs or listen for ring).
— Reply to this email directly, view it on GitHub https://github.com/tomek-o/tSIP-plugin-HidPhone/issues/1#issuecomment-1881853377, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAO2E6WX727PSMV6N2AZCL3YNRQT7AVCNFSM6AAAAABBOZZTS6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOBRHA2TGMZXG4 . You are receiving this because you were mentioned.Message ID: @.***>
@arkygeek I'm not able to test it, but buttons should work, LEDs and/or internal buzzer (if it is really present) would be more problematic. I doubt this would work with Mac/Wine though (I'm seeing key description above comes from https://github.com/arkygeek/voipHandset).
Hello i can't get my USB HP Internet Handset working using this plugin (Vendor ID : 0x03F0 Product ID : 0x1C07)