# An Approach to Designing Critical Railway Voice Communication
## 4 FRMCS Common Functions as RESTful Service Blocks
### FRMCS Critical Support Application API
Communication authorization is required to prevent unauthorized communications and avoid user distractions or disruptions. The communication authorization application can use the role management and presence API to retrieve the registered identities of the call parties and FIPM and UPM services to access the respective profiles. Based on this information, the communication authorization application can request the policy service to evaluate the respective rules and decide whether or not to allow the establishment of communication. The arbitration function determines the behavior of the FRMCS in the case of multiple communications competing for the user's attention. Based on the arbitration rules, the system determines whether to automatically establish a new outgoing call, put the established one(s) on hold, or reject the new call. For incoming calls, the arbitration rules postulate whether the system should automatically enable or disable the presentation of ongoing calls and hold calls for which the presentation is disabled, or present an option to the user to hold, merge, leave, reconnect, or terminate the ongoing call. The arbitration application can use the policy service to perform the arbitration based on the defined arbitration rules and registered identities. The 5G telecom operator may configure railway-specific network slices to meet the diverse FRMCS application requirements for low latency, enhanced coverage, and high capacity. Radio Access Network slices configure the QCI, ACB, and ARP [30]. Dedicated core networks allow multiple core network segments to share the same physical network, enabling the differentiation of railway services. However, in extreme situations, it may be necessary to negotiate the QoS parameters, e.g., in the case of train derailments or if users need higher-resolution video streams or higher bandwidth. The QoS class negotiation function allows the assignment of specific QoS classes to communications applications, e.g., the prioritization of critical communications and pre-emption of already assigned network resources if required. The URI structure of resources related to the QoS class negotiation function is shown in Figure 6.  
The resource qosClassAllocations is used to represent a list of the application's QoS class allocations. The HTTP GET method retrieves information about the list of an individual application's QoS class allocations and the HTTP POST method is used to request the registration of a QoS class allocation with the QoS class negotiation service. The {qosClassAllocationID} resource is used to represent a QoS class allocation instance. The HTTP GET method retrieves information about the resource, the PUT method updates information about the resource, and the DELETE method is used to unregister from the QoS class negotiation service. More details about the QoS class negotiation service can be found in [31]. In railway operations such as shunting and banking, the interruption or disruption of voice communication can put users at risk. For these types of communications, the system must monitor the QoS of the communication link and indicate when the link is broken or degraded. Figure 7 shows the URI structure of resources related to assured voice communications. To activate the assured voice communication function, the critical application creates a new resource that represents the assured voice communication (assuredVoiceCommunicationID) by applying the POST method on the resource that represents all assured voice communications (assuredVoiceCommunications). The critical application subscribes to notifications related to link quality. In the case of QoS disruptions, the assured voice communication service notifies the application, which activates link monitoring. More details about the assured voice communication service can be found in [32]. The invite-a-user messaging application allows an authorized user to invite another user(s) to join the ongoing voice call. A user of this application can be any FRMCS user involved in a call.