(YSF Direct Protocol)
(YSF Direct Protocol)
Line 15: Line 15:
 
== Login procedure ==
 
== Login procedure ==
  
# User -> Server: "YSFL" <10 characters of hotspot/repeater call-sign>
+
# User -> Server: "YSFL" <10 characters of hotspot/repeater callsign>
# Server -> User:  "YSFACK" <10 characters of server call-sign> <4 bytes of salt>
+
# Server -> User:  "YSFACK" <10 characters of server callsign> <4 bytes of salt>
 
# User -> Server: "YSFK" <10 characters of hotspot/repeater call-sign> <32 bytes of SHA256(salt + password)>
 
# User -> Server: "YSFK" <10 characters of hotspot/repeater call-sign> <32 bytes of SHA256(salt + password)>
# Server -> User:  "YSFACK" <10 characters of server call-sign>
+
# Server -> User:  "YSFACK" <10 characters of server callsign>
  
In case of failure: "YSFNAK" <10 characters of server call-sign> <4 bytes of salt>
+
In case of failure: "YSFNAK" <10 characters of server callsign> <4 bytes of salt>
  
 
== Change assigned talk group ==
 
== Change assigned talk group ==
  
# User -> Server: "YSFO" <10 characters of hotspot/repeater call-sign> "group=" <ASCII string contains a talk group number (NULL-termination is optional)>
+
# User -> Server: "YSFO" <10 characters of hotspot/repeater callsign> "group=" <ASCII string contains a talk group number (NULL-termination is optional)>
# Server -> User:  "YSFACK" <10 characters of server call-sign>
+
# Server -> User:  "YSFACK" <10 characters of server callsign>
  
In case of failure: "YSFNAK" <10 characters of server call-sign>
+
In case of failure: "YSFNAK" <10 characters of server callsign>
  
 
=== Example ===
 
=== Example ===

Revision as of 18:35, 2 October 2022

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 NULLs.

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 call-sign> <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 NULLs.

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 call-sign> <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