Brew
Brew
TETRA Homebrew Protocol
Protocol is based on WebSocket version 13 (RFC 6455) without extensions. It's highly recommended to use socket options TCP_NODELAY and TCP_QUICKACK.
Endpoint, authentication
To establish a new connection client should make a HTTP GET call to get web socket's endpoint and pass authentication procedure. Authentication is based on HTTP Digest Access Authentication (RFC 2831). As a result of successful authentication server returns HTTP 200 and a URI to an endpoint to be used for WebSocket connection.
GET /brew/ HTTP/1.1
HTTP/1.1 200 OK
/brew/722e2b04-07ad-4976-ac55-75e845ae4d8a
Server supports following response codes: 101, 200, 401, 403, 404, 429, 500.
WebSocket transport layer
Client should support following frame opcodes:
- Close, ping, pong. Ping and pong messages might contain a payload to measure delays.
- Single-frame masked and unmasked binary messages. Server always send unmasked messages, client may send masked messages.
PayloadBinary messages
Every message contains two-byte prefix:
- Message class
- Message type
All following data has non-aligned values in Little-Endian order
Mobility and affiliation (message class 0xf0)
TBD
Call control (message class 0xf1)
TBD
Voice and data frames (message class 0xf2)
TBD