STEM Third-Party API Controls

This outlines the API created to allow third-party companies to query some device information, allow volume control, and subscribe for device status changes.

Encryption: None, clear string text as described.

Transmission Protocol: UDP

Port: 8888

Subscribing a Controller to a Device

This feature allows push notifications from a device to reach a third-party controller. It sets the IP of the controller, subscribing it to that device’s notifications and status changes.

Important: Devices need to be subscribed individually. Only one third-party controller can be set and subscribed to a specific device.

Set Third-Party Controller IP

  • Send - STEM_EXTERNAL_CTRL_SET_REQ:<IP_ADDRESS>;
    • Example: STEM_EXTERNAL_CTRL_SET_REQ:192.168.1.100;
  • Response - STEM_EXTERNAL_CTRL_SET_RSP:[status]
    • [status]: “0” - Fail. “1” - Success.

Statuses pushed to the IP once set

Volume Changes

  • STEM_VOL_STATUS_GET_RSP:[volume]
    • [volume]: Volume level ranges 0 to 100

Mute Status Changes

  • STEM_MIC_MUTE_STATUS_RSP:[status]
    • [status]: “0” - Unmuted. “1” - Muted.

Mute Status

These commands get/set the device's mute status. Status: 0 is unmuted, 1 is muted.

Mute

  • Send - STEM_MIC_MUTE_REQ:
  • Response - STEM_MIC_MUTE_STATUS_RSP:[status]

Unmute

  • Send - STEM_MIC_UNMUTE_REQ:
  • Response - STEM_MIC_MUTE_STATUS_RSP:[status]

Mute Toggle

  • Send - STEM_MIC_MUTE_TOGGLE_REQ:
  • Response - STEM_MIC_MUTE_STATUS_RSP:[status]

Mute Status

  • Send - STEM_MIC_MUTE_STATUS_REQ:
  • Response - STEM_MIC_MUTE_STATUS_RSP:[status]

Volume Status

These commands get/set the device's volume. If the USB is plugged into a computer, these commands increment the volume up/down. Volume level ranges 0 to 100.

Volume Up

  • Send - STEM_VOL_UP_REQ:
  • Response (will be pushed to the Controller Set) - STEM_VOL_STATUS_GET_RSP:[volume]

Volume Down

  • Send - STEM_VOL_DOWN_REQ:
  • Response (will be pushed to the Controller Set) - STEM_VOL_STATUS_GET_RSP:[volume]

Volume Status

  • Send - STEM_VOL_STATUS_GET_REQ:
  • Response - STEM_VOL_STATUS_GET_RSP:[volume]

Device Status Information

Device Status

This provides the status of a device in a room. It is used to make sure all units are still online and connected.

  • Send - STEM_DEVICE_STATUS_GET_REQ:
  • Response - STEM_DEVICE_STATUS_GET_RSP:[status]

[status]: “0” - not all devices are connected in a room. “1” - everything is connected and working.

Room Name

This provides the name of the room the device is currently in.

  • Send - STEM_ROOM_NAME_GET_REQ:
  • Response - STEM_ROOM_NAME_GET_RSP:[roomname]

[roomname]: “-1” - Device does not belong to a room, otherwise it will provide the string of the room name.

Call Status

This provides the call status of the device or the room.

  • Send - STEM_CALL_STATUS_GET_REQ:
  • Response - STEM_CALL_STATUS_GET_RSP:[status]

[status]: “0” - not in a call. “1” - in a call.

Device Serial This provides the device's serial number.

  • Send - STEM_DEVICE_SERIAL_GET:
  • Response - STEM_DEVICE_SERIAL_GET_RSP:[serial]

[serial]: “0” - no serial number set, otherwise provides the string of the serial number.