BlueZ D-Bus Alert API description ********************************* Introduction ------------ Currently, there are two different GATT server profiles that depend on receiving alerts or notifications from the platform: Phone Alert Status (PASP) and Alert Notification (ANP). PASP is very specific to mobile phones, and also allows limited control to alerts (i.e. mute once or switch to a silent mode). This document presents a unified API that allows to register and notify alerts, and to control some alerts (using the provided agent object). Alert hierarchy =============== Service org.bluez Interface org.bluez.Alert1 Object path /org/bluez Methods void RegisterAlert(string category, object agent) Register a new alert category and an agent for it. This means the application will be responsible for notifying BlueZ of any alerts of that category, using the NewAlert() method. Supported ANP categories: simple, email, news, call, missed-call, sms-mms, voice-mail, schedule, high-priority, instant-message Supported PASP categories: ringer, vibrate, display Possible Errors: org.bluez.Error.InvalidArguments void NewAlert(string category, uint16 count, string description) Notify BlueZ of new alert(s) for the given category. The description is relative to the last received alert and can be sender name, caller ID, title, or other information specific to the category. For ringer, vibrate and display categories, valid descriptions are "active" and "not active". Alerts from ringer category also accept "enabled" and "disabled", depending on whether ringer is in silent mode or not. Description must not exceed 18 bytes when encoded in UTF-8 format, otherwise an error is returned. If there is no description, an empty string should be used. The count argument contains the number of alerts not yet acknowledged by the user on the UI. To save D-Bus traffic, events that may generate multiple alerts at the same time (like email, sms, news) should trigger a single NewAlert(). If there are more than 254 new alerts, count must be set to 255. PASP alerts should always set count to 1. Possible Errors: org.bluez.Error.InvalidArguments void UnreadAlert(string category, uint16 count) Some services (like SMS and e-mail) keep track of number of unread items. This method allows to update this counter, so peer devices can be notified using Alert Notification Profile. If there are more than 254 unread alerts, count must be set to 255. Possible Errors: org.bluez.Error.InvalidArguments Alert Agent hierarchy ===================== Service org.bluez Interface org.bluez.AlertAgent1 Object path freely definable Methods void MuteOnce() This method is only called if "ringer" alert category is specified when registering the agent. Mute the ringer once (e.g. during a incoming call). If ringer is not active, does nothing. void SetRinger(string mode) This method is only called if "ringer" alert category is specified when registering the agent. Set ringer to the specified mode. If mode is "enabled", ringer is set to the default mode, as defined by the current active profile. If mode is "disabled", ringer will not activate on incoming calls, until it is set back to "enabled" mode. Possible Errors: org.bluez.Error.InvalidArguments void Release() Release this agent. At this point, it will not be used by BlueZ anymore and can be destroyed by the owner.