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)

Login procedure

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

In case of failure: "YSFNAK" <10 characters of server call-sign> <4 bytes of salt>

Change assigned talk group

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

In case of failure: "YSFNAK" <10 characters of server call-sign>

Example

YSFOMYCALLSIGNgroup=91

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.

Login procedure[edit]

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

In case of failure: "YSFNAK" <10 characters of server call-sign> <4 bytes of salt>

Change assigned talk group[edit]

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

In case of failure: "YSFNAK" <10 characters of server call-sign>

Example[edit]

YSFOMYCALLSIGNgroup=91