Introduction
The integration is used for the following in terms of nurse call systems:
- Sending/ receiving SMS on W-AIR handsets
- Sending alarms from W-AIR handsets to a Message server
- Receiving alarms on W-AIR handsets from a Message server
- Sending beacon information to a Message server
The integration is based on sending UDP packets and an acknowledge that the UDP packets are received.
Here is an example of sending beacon information from a beacon to a Message server through W-AIR handset and base station:
Here is an example of sending an alarm from a Message server to W-AIR handset:
Requirements
- WMS 6.0X
- W-AIR firmware version 730b200
- Supported devices
- W-AIR base station: W-AIR Sync Plus, W-AIR Base Station
- W-AIR handset: W-AIR Med, W-AIR LifeSaver, W-AIR LifeSaver-EX
There are 5 different message types that can be used between a Message server and W-AIR base station:
| | |
---|
| Messages that handle synchronization between W-AIR base station (BS) and a Message server (MS) | |
| Messages that inform a Message server about location of W-AIR handset on a specific W-AIR base station
| |
| Alarms sent from a Message server to W-AIR base station and displayed on W-AIR handset under an alarm icon | |
SMS sent from a Message server to W-AIR base station and displayed under an SMS icon
| |
SMS sent from W-AIR base station/ handset to another W-AIR base station/ handset via a Message server | |
| Alarms sent from W-AIR base station/ handset to a Message server
| |
| Beacon information sent from W-AIR base station/ handset to a Message server | |
Systeminfo and Login are only used when a Message server needs to send alarms/ SMS to W-AIR base station/ handset. For those Message servers that only receive beacons/ alarms from W-AIR base station/ handset, Systeminfo and Login procedures can be skipped.
Below there is a description of message formats between a Message server and W-AIR base station, followed by different message types.
XML interface: total length of XML packet is 4096 bytes. The interface follows the XML standards. Here are some basic rules:
All XML packets need to start with this XML header:
<?xml version="1.0" encoding="UTF-8"?>
No spaces in the < > elements, except for separating attributes. Examples:
<element> is valid
< element > is not valid (spaces before and after “element”)
<element > is not valid (space after “element”)
<element attribute=”attribute1”> is valid
<element attribute = “attribute1” > is not valid (spaces before and after = and after the second “)
<element /> is not valid (space before /)
All elements have to be properly closed
UTF-8 is not supported, only the below extended ASCII table is supported:
XML schema description
This is XML schema description for the generic outgoing XML-based interface from a Message server. W-AIR base station should ignore unknown fields and packages received from a Message server.
FrameDef
<xs:element name="request" type="FrameDef" />
<xs:element name="response" type="FrameDef" />
<xs:complexType name="FrameDef">
<xs:attribute name="version" type="xs:string" />
<xs:attribute name="type" type="xs:string" />
<xs:sequence>
<xs:element name="externalid" type="xs:string" minOccurs="1"/>
<xs:element name="status" type="xs:decimal" minOccurs="0"/>
<xs:element name="statusinfo" type="xs:string" minOccurs="0"/>
<xs:element name="systemdata" type="SystemDataDef" minOccurs="1"/>
<xs:element name="jobdata" type="JobDataDef" minOccurs="0"/>
<xs:element name="alarmdata" type="AlarmDataDef" minOccurs="0"/>
<xs:element name="beacondata" type="BeaconDataDef" minOccurs="0"/>
<xs:element name="rssidata" type="RssiDataDef" minOccurs="0"/>
<xs:element name="logindata" type="LoginDataDef" minOccurs="0"/>
<xs:element name="persondata" type="PersonDataDef" minOccurs="0"/>
<xs:element name="senderdata" type="PersonDataDef" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
SystemDataDef
<xs:complexType name="SystemDataDef">
<xs:sequence>
<xs:element name="name" type="xs:string" minOccurs="1"/>
<xs:element name="datetime" type="xs:dateTime" minOccurs="1"/>
<xs:element name="timestamp" type="xs:string" minOccurs="1"/>
<xs:element name="status" type="xs:decimal" minOccurs="0"/>
<xs:element name="statusinfo" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
Explanation
This sequence MUST be present in all frames.
- XML child "name" (SystemDataDef)
- System name, e.g., base name or messages server system name
- XML child "datetime" (SystemDataDef)
- "2014-03-04T10:16:20" is local date and time for log-reason and can be individual formatted between the systems. Note: this timestamp is not used when presenting the alarm on W-AIR handset
- XML child "timestamp" (SystemDataDef)
- XML child "status", "statusinfo" (SystemDataDef)
- "status" is the decimal value the following values
- "statusinfo" is the string values the following values
- 0: System not running
- 1: System running
JobDataDef
<xs:complexType name="JobDataDef">
<xs:sequence>
<xs:element name="alarmnumber" type="xs:decimal" minOccurs="0"/>
<xs:element name="referencenumber" type="xs:string" minOccurs="0"/>
<xs:element name="priority" type="xs:decimal" minOccurs="0"/>
<xs:element name="flash" type="xs:decimal" minOccurs="0"/>
<xs:element name="rings" type="xs:decimal" minOccurs="0"/>
<xs:element name="confirmationtype" type="xs:decimal" minOccurs="0"/>
<xs:element name="messages" type="MessagesDef" minOccurs="0"/>
<xs:element name="status" type="xs:decimal" minOccurs="0"/>
<xs:element name="statusinfo" type="xs: string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
Explanation
XML child "referencenumber" (JobDataDef)
When the string "referencenumber" is present in the message from a Message server, the message is interpreted as an alarm on W-AIR handset
If the "referencenumber" string is not present, the message is interpreted as an SMS. Further description is available in the chapters below
XML child "priority" (JobDataDef)
XML child "flash" (JobDataDef)
XML child "rings" (JobDataDef)
- XML child "confirmationtype" (JobDataDef)
- Further description is available in the chapters below
- XML child "messages" (JobDataDef)
- Only used in request and MUST always be present in frame type "job"
- See "Error! Reference source not found"
- XML child "status", "statusinfo" (JobDataDef)
- "status" is the decimal value the following values
- "statusinfo" is the string values the following values
- 0: No answer. Comment: User has not answered
- 1: Answer. Comment: User has answered -> Delivered to W-AIR handset
- 2: Busy. Comment: User was busy
- 3: Error. Comment: User had an error
- 4: Confirmed. Comment: User has confirmed the alarm positive
- 5: Rejected. Comment: User has rejected the alarm
- 6: Dialing. Comment: The remote system is dialing the number -> W-AIR base station is paging W-AIR handset
- 10: Canceled. Comment: The remote system cancelled the job
- 11: Not reached. Comment: User was not reachable
- 21: Read. Comment: User read the job
MessagesDef
<xs:complexType name="MessagesDef"> <xs:sequence>
<xs:element name="message1" type=" xs:string" minOccurs="0"/>
<xs:element name="message2" type=" xs:string" minOccurs="0"/>
<xs:element name="messageuui" type=" xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
Explanation
- XML child "messageuui" (MessageDef)
- "messageuui" is always the body text of the message
AlarmDataDef
<xs:complexType name="AlarmDataDef">
<xs:sequence>
<xs:element name="type" type="xs:decimal" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
Explanation
- XML child "type" (AlarmDataDef)
- Values 0..9
- 0: Man Down
- 1: No Movement
- 2: Running
- 3: Pull Cord
- 4: Red Key
- 5-9 Reserved
BeaconDataDef
<xs:complexType name="BeaconDataDef">
<xs:sequence>
<xs:element name="type" type="xs:decimal" minOccurs="0"/>
<xs:element name="uuid" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
Explanation
- XML child "type" (BeaconDataDef)
- Values 0..1
- 0: entering proximity of the beacon
- 1: leaving proximity of the beacon
RssiDataDef
<xs:complexType name="RssiDataDef">
<xs:sequence>
<xs:element name="rfpi" type="xs:string" minOccurs="1"/>
<xs:element name="rssi" type="xs:decimal" minOccurs="1"/>
</xs:sequence>
</xs:complexType>
LoginDataDef
<xs:complexType name="LoginDataDef">
<xs:sequence>
<xs:element name="status" type="xs:decimal" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
Explanation
- XML child "status" (LoginDataDef)
- "Status" is the decimal value the following values
PersonDataDef
<xs:complexType name="PersonDataDef">
<xs:sequence>
<xs:element name="address" type="xs:string" minOccurs="0"/>
<xs:element name="name" type="xs:string" minOccurs="0"/>
<xs:element name="location" type="xs:string" minOccurs="0"/>
<xs:element name="status" type="xs:decimal" minOccurs="0"/>
<xs:element name="statusinfo" type="xs: string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
Explanation
- XML child "address" (PersonDataDef)
- Called party number (W-AIR handset SIP account)
- Sometimes, an address is not a SIP account, and in that case, the address will have a type "attribute" describing the nature of the address. This can be:
- "IPEI" - This is used when the addressed device has no SIP account
- "ALARM", "BEACON" and "CONFIG" - These can be used to distinguish if the message is addressed to a specific server, i.e. alarm server or beacon server
- If no type "attribute" is present, the address should be interpreted as SIP account
- XML child "name" (PersonDataDef)
- Called party display name (W-AIR handset SIP account display name)
Setup between W-AIR base station and a Message server
To configure Text messaging feature:
When W-AIR base station is configured, sync messages are sent followed by a sync message for each W-AIR handset registered on W-AIR base station.
Examples
W-AIR base station to a Message server sync
<?xml version="1.0" encoding="UTF-8"?>
<request version="17.6.15.1526" type="systeminfo"> <externalid>0352675351</externalid>
<systemdata>
<name>SME VoIP</name>
<datetime>1970-01-01 00:00:09</datetime> <timestamp>00000009</timestamp>
<status>1</status>
<statusinfo>System running</statusinfo> </systemdata>
</request>
A Message server confirms response to W-AIR base station
<?xml version="1.0" encoding="UTF-8"?>
<response version="1.0" type="systeminfo">
<systemdata>
<name>Micromedia-Alert</name>
<datetime>2017-06-15T16:07:10</datetime>
<timestamp>5942948e</timestamp>
<status>1</status>
<statusinfo>System running</statusinfo>
</systemdata>
<externalid>0352675351</externalid>
<status>1</status>
<statusinfo>Accepted by external system</statusinfo>
</response>
W-AIR base station information to a Message server about registered W-AIR handset (login) – notice the extension number
<?xml version="1.0" encoding="UTF-8"?>
<request version="17.6.15.1526" type="login">
<externalid>3294079664</externalid>
<systemdata>
<name>SME VoIP</name>
<datetime>2017-06-15 09:07:51</datetime>
<timestamp>594294b7</timestamp>
<status>1</status>
<statusinfo>System running</statusinfo>
</systemdata>
<senderdata>
<address>991</address>
<name>991</name>
<location>SME VoIP</location>
</senderdata>
</request>
A Messages server confirms response to W-AIR base station
<?xml version="1.0" encoding="UTF-8"?>
<response version="1.0" type="login">
<systemdata>
<name>Micromedia-Alert</name>
<datetime>2017-06-15T16:07:54</datetime>
<timestamp>594294ba</timestamp>
<status>1</status>
<statusinfo>System running</statusinfo>
</systemdata>
<externalid>3294079664</externalid>
<status>1</status>
<statusinfo>Accepted by external system</statusinfo>
</response>
W-AIR base station and a Message server has now informed each other that they exist. Now they both can send a “keep alive” signal to each other, you can decide how often to send it in Management menu -> Text Messaging. “keep Alive” messages contain information about all registered W-AIR handsets. In case a Message server gets restarted, it can always request this information from W-AIR base station.
Examples of “keep alive” signals
W-AIR sends “keep alive” to a Message server
<?xml version="1.0" encoding="UTF-8"?>
<request version="18.2.21.1359" type="systeminfo">
<externalid>1528744172</externalid>
<systemdata>
<name>SME VoIP</name>
<datetime>2018-02-21 07:34:45</datetime>
<timestamp>5a8d7575</timestamp>
<status>1</status>
<statusinfo>System running</statusinfo>
</systemdata>
<senderdata>
<address>400</address>
<name></name>
<address>401</address>
<name>Bob Andersen</name>
<address>402</address>
<name>Hansi</name>
<address>403</address>
<name>George Lucas</name>
<address>404</address>
<name>Michael Jensen</name>
<address>406</address>
<name>406</name>
<address>407</address>
<name>Fenger</name>
<address>408</address>
<name>408</name>
<address>410</address>
<name>410</name>
</senderdata> </request>
A Message server confirms response to W-AIR base station
<?xml version="1.0" encoding="UTF-8"?>
<response version="1.0" type="systeminfo">
<systemdata>
<name>Micromedia-Alert</name>
<datetime>2017-06-15T16:13:10</datetime>
<timestamp>594295f6</timestamp>
<status>1</status>
<statusinfo>System running</statusinfo>
</systemdata>
<externalid>5a8d7575</externalid>
<status>1</status>
<statusinfo>Accepted by external system</statusinfo>
</response>
A Message server sends “keep alive” to W-AIR base station
<?xml version="1.0" encoding="UTF-8"?>
<request version="1.0" type="systeminfo">
<systemdata>
<name>Micromedia-Alert</name>
<datetime>2017-06-15T16:17:59</datetime>
<timestamp>59429717</timestamp>
<status>1</status>
<statusinfo>System running</statusinfo>
</systemdata>
<externalid>mmi59427f9a-0</externalid>
</request>
W-AIR base station confirms response to a Message server
<?xml version="1.0" encoding="UTF-8"?>
<response version="18.2.21.1359" type="systeminfo">
<externalid> mmi59427f9a-0</externalid>
<systemdata>
<name>SME VoIP</name>
<datetime>2018-02-21 07:39:03</datetime>
<timestamp>5a8d7677</timestamp>
<status>1</status>
<statusinfo>System running</statusinfo>
</systemdata>
<senderdata>
<address>400</address>
<name>hej400</name>
<address>401</address>
<name>Bob Andersen</name>
<address>402</address>
<name>Hansi</name>
<address>403</address>
<name>George Lucas</name>
<address>404</address>
<name>Michael Jensen</name>
<address>406</address>
<name>406</name>
<address>407</address>
<name>Fenger</name>
<address>408</address>
<name>408</name>
<address>410</address>
<name>410</name>
</senderdata>
</response>
W-AIR base station information to a Message server about a deregistered W-AIR handset (logout)
<?xml version="1.0" encoding="UTF-8"?>
<request version="17.6.15.1526" type="login">
<externalid>0587227135</externalid>
<systemdata>
<name>SME VoIP</name>
<datetime>2017-06-16 02:07:02</datetime>
<timestamp>59438396</timestamp>
<status>1</status>
<statusinfo>System running</statusinfo>
</systemdata>
<senderdata>
<address>991</address>
<name>991</name>
<location>SME VoIP</location>
</senderdata>
</request>
A Message server confirms response to W-AIR base station
<?xml version="1.0" encoding="UTF-8"?>
<response version="1.0" type="login">
<systemdata>
<name>Micromedia-Alert</name>
<datetime>2017-06-16T09:07:05</datetime>
<timestamp>59438399</timestamp>
<status>1</status>
<statusinfo>System running</statusinfo>
</systemdata>
<externalid>0587227135</externalid>
<status>1</status>
<statusinfo>Accepted by external system</statusinfo>
</response>
Alarms
Sending alarms to W-AIR base station/ handset from a Message server
A Message server can send a UDP packet to W-AIR base station with XML information about the alarm. W-AIR base station sends the alarm to W-AIR handset and a response is sent back to a Message server.
Priority
It is possible to set an alarm with different priority, below are the different colors that are used on W-AIR handset depending on the priority.
- 1: red
- 2: red
- 3: red
- 4: Yellow
- 5: Yellow
- 6: Yellow
- 7: Green
- 8: Green
- 9: Green
- All other values: Green
Confirmation type
XML child "confirmationtype" (JobDataDef):
- 0: No User confirmation needed
- W-AIR base station sends back a confirmation to a Message server that the message is received on W-AIR base station
- 1: User Received Job confirmation needed
- W-AIR base station sends back a confirmation to a Message server that the message is received on W-AIR base station
- W-AIR base station sends back a confirmation to a Message server that the message is received on W-AIR handset
- 2: User Confirm/ Reject Job confirmation needed
- W-AIR base station sends back a confirmation to a Message server that the message is received on W-AIR base station
- W-AIR base station sends back a confirmation to a Message server that the message is received on W-AIR handset
- W-AIR base station sends back a confirmation to a Message server if the user confirms /rejects the message
Reference number
Substituting an alarm
The reference number is unique number per alarm. When sending an alarm, the reference number always needs to be present, otherwise the message is interpreted as an SMS.
- If an alarm is sent with the same referencenumber as a previous alarm that is NOT yet confirmed/ rejected (confirmationtype 2), the first alarm is deleted and only the new one is saved and displayed on W-AIR handset
- If an alarm is sent with the same referencenumber as a previous alarm that is confirmed/ rejected, then both alarms are displayed
- If an alarm is sent with the same referencenumber as a previous alarm that has confirmationtype 0 or 1, then both alarms are on W-AIR handset
Deleting an alarm
It is possible to delete an alarm that is NOT yet confirmed/ rejected on W-AIR handset.
- Deletion is available for an alarm with confirmationtype 1 and 2
- For deleting an existing alarm, the same reference number should be used and the status should be set to 10
Response handling
For confirmationtype 1 and 2, there is always a response sent to a Message server that W-AIR base station/ handset receives the messages:
- A Message server needs both responses to be sure that the messages are received on W-AIR handset.
- A Message server should not send a new message to the same W-AIR handset before both responses are received
- In case a Message server does not receive the response from W-AIR handset, it should wait a minimum of 10 sec before trying to send a message again to the same W-AIR handset. This is needed so W-AIR base station has enough time to timeout the first messages
When using confirmationtype 0, a Message server doesn't know if the SMS/ alarm is lost from W-AIR base station to W-AIR handset. Here a Message server should always wait 10 sec between each message to the same W-AIR handset
Examples
Below are examples of an alarm sent from a Message server with confirmationtype 2:
A Message server sends alarm to W-AIR base station
<?xml version="1.0" encoding="UTF-8"?>
<request version="1.0" type="job">
<systemdata>
<name>Micromedia-Alert</name>
<datetime>2017-06-20T09:25:24</datetime>
<timestamp>5948cde4</timestamp>
<status>1</status>
<statusinfo>System running</statusinfo>
</systemdata>
<jobdata>
<alarmnumber>5</alarmnumber>
<referencenumber>5</referencenumber>
<priority>1</priority>
<flash>0</flash>
<rings>0</rings>
<confirmationtype>2</confirmationtype> <messages>
<message1></message1> <message2></message2>
<messageuui>Alarm1 text</messageuui> </messages>
<status>0</status>
<statusinfo/>
</jobdata>
<persondata>
<address>991</address>
<status>0</status>
<statusinfo/>
</persondata> <externalid>mmi5948c09b-5</externalid> </request>
W-AIR base station responses to a Message server about receiving the alarm
<?xml version="1.0" encoding="UTF-8"?>
<response version="17.6.15.1526" type="job">
<externalid>mmi5948c09b-5</externalid>
<status>1</status>
<systemdata>
<name>SME VoIP</name>
<datetime>2017-06-20 02:25:22</datetime>
<timestamp>5948cde2</timestamp>
<status>1</status>
<statusinfo>System running</statusinfo>
</systemdata>
<senderdata>
<address>991</address>
<name>991</name>
<location>SME VoIP</location>
</senderdata>
</response>
W-AIR base station responses to a Message server about W-AIR handset receiving the alarm
<?xml version="1.0" encoding="UTF-8"?>
<response version="17.6.15.1526" type="job">
<externalid>mmi5948c09b-5</externalid>
<systemdata>
<name>SME VoIP</name>
<datetime>2017-06-20 02:25:23</datetime>
<timestamp>5948cde3</timestamp>
<status>1</status>
<statusinfo>System running</statusinfo>
</systemdata>
<jobdata>
<priority>1</priority>
<messages>
<message1></message1>
<message2></message2>
<messageuui></messageuui>
</messages>
<status>1</status>
<statusinfo></statusinfo>
</jobdata>
<senderdata>
<address>991</address>
<name>991</name>
<location>SME VoIP</location>
</senderdata>
</response>
User presses OK and W-AIR base station sends response to a Message server
<?xml version="1.0" encoding="UTF-8"?>
<response version="17.6.15.1526" type="job">
<externalid>mmi5948c09b-5</externalid>
<systemdata>
<name>SME VoIP</name>
<datetime>2017-06-20 02:25:38</datetime>
<timestamp>5948cdf2</timestamp>
<status>1</status>
<statusinfo>System running</statusinfo>
</systemdata>
<jobdata>
<priority>1</priority>
<messages>
<message1></message1>
<message2></message2>
<messageuui></messageuui>
</messages>
<status>4</status>
<statusinfo></statusinfo>
</jobdata>
<senderdata>
<address>991</address>
<name>991</name>
<location>SME VoIP</location>
</senderdata>
</response>
Delete an alarm
A Message server sends an alarm to W-AIR base station
<?xml version="1.0" encoding="UTF-8"?>
<request version="1.0" type="job">
<systemdata> <name>Micromedia-Alert</name>
<datetime>2017-06-20T09:58:25</datetime>
<timestamp>5948d5a1</timestamp>
<status>1</status>
<statusinfo>System running</statusinfo>
</systemdata>
<jobdata>
<alarmnumber>5</alarmnumber>
<referencenumber>5</referencenumber>
<priority>1</priority>
<flash>0</flash>
<rings>0</rings>
<confirmationtype>2</confirmationtype>
<messages>
<message1></message1>
<message2></message2>
<messageuui>Alarm1 text</messageuui>
</messages>
<status>0</status>
<statusinfo/>
</jobdata>
<persondata>
<address>991</address>
<status>0</status>
<statusinfo/>
</persondata> <externalid>mmi5948c0a6-5</externalid>
</request>
A Message server requests W-AIR base station to delete the alarm (note that the same reference number is used and status is 10)
<?xml version="1.0" encoding="UTF-8"?>
<request version="1.0" type="job">
<systemdata>
<name>Micromedia-Alert</name>
<datetime>2017-06-20T09:58:25</datetime>
<timestamp>5948d5a1</timestamp>
<status>1</status>
<statusinfo>System running</statusinfo>
</systemdata>
<jobdata>
<alarmnumber>5</alarmnumber>
<referencenumber>5</referencenumber>
<priority>1</priority>
<flash>0</flash>
<rings>0</rings>
<confirmationtype>2</confirmationtype>
<messages>
<message1></message1>
<message2></message2>
<messageuui>Alarm1 text</messageuui>
</messages>
<status>10</status>
<statusinfo/>
</jobdata>
<persondata>
<address>991</address>
<status>0</status>
<statusinfo/>
</persondata> <externalid>mmi5948c0a6-5</externalid>
</request>
Sending alarms from W-AIR base station/ handset to a Message server
W-AIR handset can be configured so it sends an alarm to a Message server for the following cases:
- 0: Man Down
- 1: No Movement
- 2: Running
- 3: Pull Cord
- 4: Red Key
- 5-9 Reserved
Furthermore, the latest available beacon data is added to the alarm messages. If no beacon UUID is available, the field is empty.
beacontype can be:
- 0: Unknown
- 1: iBeacon
- 2: AltBeacon
- 3: Eddystone
Data payload can be:
- broadcastdata: HEX encoded raw beacon BLE broadcast payload. Maximum 64 characters (32 bytes).
- bdaddr; HEX encoded permanent Bluetooth address for the received beacon. Maximum 12 characters (6 bytes)
Below are examples of XML messages when W-AIR handset sends an alarm for “Man Down”:
Alarm sent from W-AIR handset to a Message server
<?xml version="1.0" encoding="UTF-8"?>
<request version="17.6.15.1526" type="alarm">
<externalid>0623295349</externalid>
<systemdata>
<name>SME VoIP</name>
<datetime>2017-06-20 05:55:51</datetime>
<timestamp>5948ff37</timestamp>
<status>1</status>
<statusinfo>System running</statusinfo>
</systemdata>
<alarmdata>
<type>0</type>
</alarmdata>
<beacondata>
<beacontype>X</beacontype>
<broadcastdata>54235663af54235663af54235663af54235663af54235663af54235663af</broadcastdata>
<bdaddr>12AFCE98BEDE</bdaddr>
</beacondata>
<rssidata>
<rfpi>116e61fc00</rfpi>
<rssi>-28</rssi>
<rfpi>116e61fc02</rfpi>
<rssi>-36</rssi>
</rssidata>
<senderdata>
<address>991</address>
<name>991</name>
<location>SME VoIP</location>
</senderdata>
</request>
Response from a Message server to W-AIR base station
<?xml version="1.0" encoding="UTF-8"?>
<response version="v.3.4.7.1047" type="alarm">
<externalid>0623295349</externalid>
<status>1</status>
<statusinfo>Accepted by New Voice XML outgoing interface</statusinfo>
<systemdata>
<name>Mobicall</name>
<datetime>2017-06-20T12:55:55</datetime> <timestamp>5948ff3b</timestamp>
<status>1</status>
<statusinfo>System running</statusinfo>
</systemdata>
</response>
SMS
Sending SMS to W-AIR base station/ handset from a Message server
When sending an SMS from a Message server, the reference number string should be removed from the XML message. After this is done, messages are interpreted as an SMS instead of an alarm.
Priority
An SMS can be sent to W-AIR handset with 2 priorities:
Confirmation type
There are 2 confirmations types for SMS:
- 0: No User confirmation needed
- W-AIR base station sends back a confirmation to a Message server that the message is received on its side
- W-AIR base station sends back a confirmation to MS that the message is received on W-AIR handset side
- 1: User Confirm/Reject Job confirmation needed
- W-AIR base station sends back a confirmation to a Message server that the message is received on its side
- W-AIR base station sends back a confirmation to a Message server that the message is received on W-AIR handset side
- W-AIR base station send s back a confirmation to a Message server if user confirms/ rejects the message
Sending SMS from W-AIR base station/ handset to another W-AIR base station/ handset via a Message server
It is possible to send an SMS from one W-AIR handset to another W-AIR handset via a Message server that supports such functionality.
Priority
An SMS can be sent from W-AIR handset with 2 priorities:
Examples
Below are examples of messages sent between W-AIR base station and a Message server.
An SMS is sent
<?xml version="1.0" encoding="UTF-8"?>
<request version="17.6.15.1526" type="job">
<externalid>0649396368</externalid>
<systemdata>
<name>SME VoIP</name>
<datetime>2017-06-20 04:12:16</datetime>
<timestamp>5948e6f0</timestamp>
<status>1</status>
<statusinfo>System running</statusinfo>
</systemdata>
<jobdata>
<priority>1</priority>
<messages>
<message1></message1>
<message2></message2>
<messageuui>Tw</messageuui>
</messages>
<status>0</status>
<statusinfo></statusinfo>
</jobdata>
<senderdata>
<address>990</address>
<name>990</name>
<location>SME VoIP</location>
</senderdata>
<persondata>
<address>991</address>
</persondata>
</request>
A Message server forwards an SMS
<?xml version="1.0" encoding="UTF-8"?>
<request version="17.6.15.1526" type="job">
<externalid>0649396368</externalid>
<systemdata>
<name>SME VoIP</name>
<datetime>2017-06-20 04:12:16</datetime>
<timestamp>5948e6f0</timestamp>
<status>1</status>
<statusinfo>System running</statusinfo>
</systemdata>
<jobdata>
<priority>1</priority>
<messages>
<message1></message1>
<message2></message2>
<messageuui>Tw</messageuui>
</messages>
<status>0</status>
<statusinfo></statusinfo>
</jobdata>
<senderdata>
<address>990</address>
<name>990</name>
<location>SME VoIP</location>
</senderdata>
<persondata>
<address>991</address>
</persondata>
</request>
W-AIR base station receives an SMS
<?xml version="1.0" encoding="UTF-8"?>
<response version="17.6.15.1526" type="job">
<externalid>0649396368</externalid>
<status>1</status>
<systemdata>
<name>SME VoIP</name>
<datetime>2017-06-20 04:12:16</datetime>
<timestamp>5948e6f0</timestamp>
<status>1</status>
<statusinfo>System running</statusinfo>
</systemdata>
<senderdata>
<address>991</address>
<name>991</name>
<location>SME VoIP</location>
</senderdata>
<persondata>
<address>990</address>
<name>990</name>
<location>SME VoIP</location>
</persondata>
</response>
W-AIR handset receives an SMS
<?xml version="1.0" encoding="UTF-8"?>
<response version="17.6.15.1526" type="job">
<externalid>0649396368</externalid>
<systemdata>
<name>SME VoIP</name>
<datetime>2017-06-20 04:12:17</datetime>
<timestamp>5948e6f1</timestamp>
<status>1</status>
<statusinfo>System running</statusinfo>
</systemdata>
<jobdata>
<priority>1</priority>
<messages>
<message1></message1>
<message2></message2>
<messageuui></messageuui>
</messages>
<status>1</status>
<statusinfo></statusinfo>
</jobdata>
<senderdata>
<address>991</address>
<name>991</name>
<location>SME VoIP</location>
</senderdata>
<persondata>
<address>990</address>
<name>990</name>
<location>SME VoIP</location>
</persondata>
</response>
Beacon
Provisioning of beacon settings
W-AIR handset has 2 beacon modes:
- Active: W-AIR handset acts as a beacon itself and transmits beacon information to the surroundings
- Passive: W-AIR handset listens for beacon and reports the received beacons to a Message server
Parameters are stored on W-AIR base station and transferred to W-AIR handset, it is not possible to change them on W-AIR handset:
Name | Setting | Comment |
---|
| Receive beacon, transmit beacon, 1 selectable (drop down) receive and transmit beacon. | |
Active mode |
| 0 to -46dBm in 2 dB steps
| |
Transmit selection (2 bit) | Select which beacon type to transmit: iBeacon AltBeacon Eddystone | |
Transmit interval (2 bit) | Interval between each beacon transmit: 100ms 300ms 500ms | |
Passive mode |
| Report beacon information: Disabled Enter proximity Leave proximity Enter/l eave proximity | |
Receive selection (4 bit) 1 extra bit reserved | Select which beacons to receive: iBeacon AltBeacon Eddystone | |
In W-AIR network with up to 1000 handsets, it is important to use as little space as possible for the parameters. It is not recommended to store the broadcast for each W-AIR handset as this will fill 32kByte on W-AIR base station. The IPEI number should be used as part of the UUID number together with a selectable value that is the same for all handsets.
Transmit beacon content (32 bytes) | Broadcast data of the transmitted beacon (space reserved 32 bytes): iBeacon: 26 bytes AltBeacon: 28 bytes EddyStone: 20 bytes | |
Sending beacon messages from W-AIR base station/ handset
W-AIR handset can receive beacons messages from a beacon and send a message to a Message server via W-AIR base station with the information received.
To enable beacon messages receiving:
- Access W-AIR base station's web interface and navigate to Extensions menu
- Select a specific extension and navigate to Beacon Settings
- The beacon alarm can be configured in 4 different ways when sending beacon alarms to a Message server
- when entering the proximity of a beacon
- when leaving the proximity of a beacon
- when entering, or leaving the proximity of a beacon
- disabled
The eventtype can be:
- 0: entering proximity of the beacon
- 1: leaving proximity of the beacon
The beacontype can be:
0: Unknown
1: iBeacon: broadcast data consists of UUID, Major, Minor, and Power
2: AltBeacon: broadcast data consists of Beacon ID, Mfg. reserved and Ref Power
3: Eddystone: broadcast data consists of Namespace, Instance and Ref. Power
Data payload can be:
- broadcastdata: HEX encoded raw beacon BLE broadcast payload. Maximum 64 characters (32 bytes)
- bdaddr: HEX encoded permanent Bluetooth address for the received beacon. Maximum 12 characters (6 bytes)
Below are examples of XML messages when W-AIR base station/ handset is sending a beacon alarm.
W-AIR base station/ handset sends a beacon alarm
<?xml version="1.0" encoding="UTF-8"?>
<request version="17.6.15.1526" type="beacon">
<externalid>0623295349</externalid>
<systemdata>
<name>SME VoIP</name>
<datetime>2017-06-20 05:55:51</datetime>
<timestamp>5948ff37</timestamp>
<status>1</status>
<statusinfo>System running</statusinfo>
</systemdata>
<senderdata>
<address>991</address>
<name>991</name>
<location>SME VoIP</location>
</senderdata>
</request>
Response from a Message server to W-AIR base station
<?xml version="1.0" encoding="UTF-8"?>
<response version="v.3.4.7.1047" type="beacon">
<externalid>0623295349</externalid>
<status>1</status>
<statusinfo>Accepted by New Voice XML outgoing interface</statusinfo>
<systemdata>
<name>MessagesServerName</name>
<datetime>2017-06-20T12:55:55</datetime>
<timestamp>5948ff3b</timestamp>
<status>1</status>
<statusinfo>System running</statusinfo>
</systemdata>
</response>