Several android devices have custom buttons added by the manufacturer. This opens new possibilities for the developer in handling those buttons especially when making Apps targeted for Hardware Devices.
This topic documents buttons which have intents attached to them which you can listen for via intent-receivers.
Sonim devices have varying by model a lot of different custom buttons:
To receive those intents you will have to assign the buttons to your app in the Phone-Settings. Sonim has a possibilty to auto-register the buttons to the App when it is installed. In order to do that you will have to contact them and get a package-specific key to include in your Manifest like this:
<meta-data android:name="app_key_green_data" android:value="your-key-here" />
Confirmed on: RG730, RG740A