YSF Direct Protocol

The target if this protocol is to allow users to connect their SystemFusion YSF-enabled hotspots and repeaters directly to BrandMeister.

YSF Direct is an extension to existing YSF reflector protocol.

  • IPv4 only
  • Standard YSFD and YSFP messages (user has to ping a server)
  • Additional messages (all of them similar to MMDVM DMR's protocol):
    • Login messages (YSFL / YSFK)
    • Configuration option message (YSFO)
    • Status messages (YSFACK / YSFNACK)

Unused characters in callsign field should be filled with NULL characters.

Login procedure

  1. User -> Server: "YSFL" <10 characters of hotspot/repeater callsign>
  2. Server -> User: "YSFACK" <10 characters of server callsign> <4 bytes of salt>
  3. User -> Server: "YSFK" <10 characters of hotspot/repeater callsign> <32 bytes of SHA256(salt + password)>
  4. Server -> User: "YSFACK" <10 characters of server callsign>

In case of failure: "YSFNAK" <10 characters of server callsign> <4 bytes of salt>

Change assigned talk group

  1. User -> Server: "YSFO" <10 characters of hotspot/repeater callsign> "group=" <ASCII string contains a talk group number (NULL-termination is optional)>
  2. Server -> User: "YSFACK" <10 characters of server callsign>

In case of failure: "YSFNAK" <10 characters of server callsign>

Example

Request:

YSFOMYCALLSIGNgroup=91

Response:

YSFACKSERVERCALL

YSF Direct Protocol[edit]

The target if this protocol is to allow users to connect their SystemFusion YSF-enabled hotspots and repeaters directly to BrandMeister.

YSF Direct is an extension to existing YSF reflector protocol.

Unused characters in callsign field should be filled with NULL characters.

Login procedure[edit]

  1. User -> Server: "YSFL" <10 characters of hotspot/repeater callsign>
  2. Server -> User: "YSFACK" <10 characters of server callsign> <4 bytes of salt>
  3. User -> Server: "YSFK" <10 characters of hotspot/repeater callsign> <32 bytes of SHA256(salt + password)>
  4. Server -> User: "YSFACK" <10 characters of server callsign>

In case of failure: "YSFNAK" <10 characters of server callsign> <4 bytes of salt>

Change assigned talk group[edit]

  1. User -> Server: "YSFO" <10 characters of hotspot/repeater callsign> "group=" <ASCII string contains a talk group number (NULL-termination is optional)>
  2. Server -> User: "YSFACK" <10 characters of server callsign>

In case of failure: "YSFNAK" <10 characters of server callsign>

Example[edit]

Request:

YSFOMYCALLSIGNgroup=91

Response:

YSFACKSERVERCALL