<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2011 Bluetooth SIG, Inc. All rights reserved. -->
<Service xsi:noNamespaceSchemaLocation="http://schemas.bluetooth.org/Documents/service.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="Phone Alert Status Service" type="org.bluetooth.service.phone_alert_status" uuid="180E">
	<InformativeText>
     <Abstract>
            This service dexposes the phone alert status when in a connection.
		</Abstract>
        <Summary>            
            The Phone Alert Status service uses the Alert Status characteristic, Ringer Setting characteristic to expose the phone alert status and Ringer Control Point characteristic to control phone into mute or enable.
		</Summary>
	</InformativeText>
	<Dependencies>
		<Dependency>This service has no dependencies on other GATT-based services.</Dependency>
	</Dependencies>
	<GATTRequirements>
		<Requirement subProcedure="Write Without Response">Mandatory</Requirement>
        <Requirement subProcedure="Notification">Mandatory</Requirement>
        <Requirement subProcedure="Read Characteristic Descriptors">Mandatory</Requirement>
        <Requirement subProcedure="Write Characteristic Descriptors">Mandatory</Requirement>
	</GATTRequirements>
	<Transports>
		<Classic>false</Classic>
		<LowEnergy>true</LowEnergy>
	</Transports>
	<ErrorCodes>
	</ErrorCodes>
	<Characteristics>
		<Characteristic name="Alert Status" type="org.bluetooth.characteristic.alert_status">
			<InformativeText>
                The Alert Status Characteristic includes three fields of information to express the alerting status as follows.
                <p>• Ringer State</p>
                <p>• Vibrator State</p>
                <p>• Display Alert State</p>
                The Alert Status characteristic returns the current value of Phone Alert Status when read.
	        </InformativeText>		
			<Requirement>Mandatory</Requirement>
			<Properties>
				<Read>Mandatory</Read>
				<Write>Excluded</Write>
				<WriteWithoutResponse>Excluded</WriteWithoutResponse>
				<SignedWrite>Excluded</SignedWrite>
				<ReliableWrite>Excluded</ReliableWrite>
				<Notify>Mandatory</Notify>
				<Indicate>Excluded</Indicate>
				<WritableAuxiliaries>Excluded</WritableAuxiliaries>
				<Broadcast>Excluded</Broadcast>
			</Properties>
            <Descriptors>
                <Descriptor name="Client Characteristic Configuration" type="org.bluetooth.descriptor.gatt.client_characteristic_configuration">
                    <Requirement>Mandatory</Requirement>
                    <Properties>
                    <Read>Mandatory</Read>
                    <Write>Mandatory</Write>
                    </Properties>
                </Descriptor>
           </Descriptors>
		</Characteristic>
        
        <Characteristic name="Ringer Setting" type="org.bluetooth.characteristic.ringer_setting">
			<InformativeText>
                The Ringer Setting characteristic returns the current value of the Ringer Setting when read.
            </InformativeText>		
			<Requirement>Mandatory</Requirement>
			<Properties>
				<Read>Mandatory</Read>
				<Write>Excluded</Write>
				<WriteWithoutResponse>Excluded</WriteWithoutResponse>
				<SignedWrite>Excluded</SignedWrite>
				<ReliableWrite>Excluded</ReliableWrite>
				<Notify>Mandatory</Notify>
				<Indicate>Excluded</Indicate>
				<WritableAuxiliaries>Excluded</WritableAuxiliaries>
				<Broadcast>Excluded</Broadcast>
			</Properties>
            <Descriptors>
                <Descriptor name="Client Characteristic Configuration" type="org.bluetooth.descriptor.gatt.client_characteristic_configuration">
                    <Requirement>Mandatory</Requirement>
                    <Properties>
                    <Read>Mandatory</Read>
                    <Write>Mandatory</Write>
                    </Properties>
                </Descriptor>
           </Descriptors>
		</Characteristic>
        
         <Characteristic name="Ringer Control point" type="org.bluetooth.characteristic.ringer_control_point">
			<InformativeText>
                When the Ringer Control Point characteristic is written, the server device performs an action based on the value (command).
                <p>• The server device implements a state machine with two states, “Ringer Silent” and “Ringer Normal”.</p>
                <p>• The command “Set Silent Mode” sets the state to “Ringer Silent”.</p>
                <p>• The command “Cancel Silent Mode” sets the state to “Ringer Normal”.</p>
                <p>• The command “Mute Once” silences the server device’s ringer.</p>
                <p>• The server device’s ringer is silenced when the state is “Ringer Silent” and act according to phone settings when the state is “Ringer Normal”.</p>
                <p>Note: The Alert Status and Ringer Setting characteristics reflects the state of the alerting and ringer setting of the server device. 
                   These states normally change when the state machine changes or other events (like incoming call or user interaction) happens on the server device. 
                   However there is no direct coupling from writing to the control point to the values of Phone Alert Status and Ringer Setting.
                </p>
            </InformativeText>		
			<Requirement>Mandatory</Requirement>
			<Properties>
				<Read>Excluded</Read>
				<Write>Excluded</Write>
				<WriteWithoutResponse>Mandatory</WriteWithoutResponse>
				<SignedWrite>Excluded</SignedWrite>
				<ReliableWrite>Excluded</ReliableWrite>
				<Notify>Excluded</Notify>
				<Indicate>Excluded</Indicate>
				<WritableAuxiliaries>Excluded</WritableAuxiliaries>
				<Broadcast>Excluded</Broadcast>
			</Properties>
      </Characteristic>
	</Characteristics>
</Service>
