# An Approach to Designing Critical Railway Voice Communication
## 4 FRMCS Common Functions as RESTful Service Blocks
### Policy API  
The policy service supports two types of APIs: provisioning and evaluation. The service allows the railway operator to manage the policy information, i.e., to create, update, or delete policy domains and rules, as well as control access to it. The policy service also allows other policy-based FRMCS applications and services to request an evaluation of policies. The policy service contains the logical views of the policy engine and rule database. The policy API's definitions conform to the Policy Core Information Model [38] and Policy Core Information Model's (PIMC) extension [39]. The policy service's API facilitates the interaction between the clients and the policy-enabled applications such as application authorization, communication authorization, arbitration, and multiuser talker control. Following the REST principles, two types of resources are defined for the policy service, namely resources representing the rules of the different policy domains and resources representing the requests for policy evaluations. The FRMCS policy rules are grouped into policy domains. Four policy domains are defined; however, the operator can other domains. The application authorization domain contains rules that are used to authorize FRMCS application usage (e.g., rules based on the user's identity, user's functional identity, subscriber identity, selected underlying network, time frame, and other context-related data). The communication authorization domain contains rules that are used to permit or deny communication, which are primarily based on the user's functional identities and location. The arbitration domain contains rules used to perform arbitration between communications competing for the same user's attention and these rules are based on the type of application, type of device, and functional identities. The talker control domain contains rules that are used in multiparty voice calls to grant permission to talk. The structure of the URIs of the policy service resources is shown in Figure 1.  
The policyDomains resource represents the defined railway policy domains. The GET method applied to this resource retrieves the list of policy domains and the POST method creates a new policy domain. The appAuthorizationDomain resource, commAuthorizationDomain resource, arbitrationDomain resource, and talkerControlDomain resource represent the defined policy domains for application authorization, communication authorization, arbitration, and multiuser talker control, respectively. Each resource that represents a policy domain contains rules for the specific railway domain and supports the GET method, which retrieves the list of rules from the domain, and the POST method, which is used to create a new rule in the respective domain. The resources that represent the policy domains are the containers for the individual rules of the given domain. The [appAuthorizationRuleID] resource, {commAuthorizationRuleID} resource, {arbitrationRuleID} resource, and {talkerControlRuleID} resource represent the individual rules in the respective policy domain. The GET method applied to the resource representing an individual policy rule retrieves information on the specific rule, the PUT method updates information about the rule, and the HTTP DELETE method deletes the rule. The resources that represent requests for policy evaluations are grouped according to the policy domain. The policyEvaluationRequests resource represents a container for all requests for policy evaluations, which are further subdivided into four groups. This resource supports the HTTP GET method, which retrieves the list of groups of policy evaluation requests. The appAuthPolicyEvalRequests resource is a container for all policy evaluation requests for application authorization. The commAuthPolicyEvalRequests resource is a container for all policy evaluation requests for communication authorization. The arbi  
Figure 1: The structure of the URIs of the policy service resources.