Alarmbridge Service - P100 To SIA Mapping
Download OpenAPI specification:Download
The P100 elevator alarm to SIA-DCS event mapping function in the iotcomms.io Alarmbridge Service enables analogue elevator alarm devices using the P100 protocol to be connected to alarm receiving centers (ARCs) that operate on the SIA-DCS protocol.
In this setup, elevator alarm units place inbound alarm calls to a phone number delivered to iotcomms.io through a SIP trunk. Alarmbridge receives the call, detects the configured P100 event receiver based on the called phone number, extracts the P100 alarm information, and forwards the alarm event to the configured ARC using SIA-DCS.
For P100 alarms that include a voice connection, the Alarmbridge event receiver can also enable voice bridging so that the ARC operator can speak to the person in the elevator.
Protocol Background
P100 is used by analogue elevator alarm equipment to send alarm information during an inbound alarm call. The alarm call is normally delivered through the PSTN or a mobile network and then forwarded to iotcomms.io through a SIP trunk.
SIA-DCS is used by many ARCs to receive alarm events in a standardized alarm event format. Because different ARCs may require different field mappings, the Alarmbridge SIA event sender supports a siaMapping property. This property selects which SIA mapping profile should be used when converting the normalized Alarmbridge alarm event into a SIA-DCS event.
The Alarmbridge Service standardizes alarm event handling by converting incoming P100 alarm calls into a protocol-independent common alarm event. The common alarm event is then processed by an event sender that maps the event to the outbound protocol required by the ARC.
For P100 elevator alarms, the typical flow is:
- The elevator alarm unit places an alarm call to a phone number.
- The call is received by iotcomms.io through a SIP trunk.
- An Alarmbridge event receiver with protocol
p100matches the called number or destination match. - Alarmbridge receives and decodes the P100 alarm information.
- The decoded alarm is converted into the Alarmbridge common alarm event format.
- A connected event sender maps the common alarm event to SIA-DCS.
- The SIA-DCS event is sent to the configured ARC endpoint.
- If the alarm includes voice, voice bridging can connect the ARC to the elevator alarm unit.
P100 Event Structure
A P100 alarm event is received as part of an inbound alarm call from an elevator alarm device. The SIP trunk normally provides the calling party number in the SIP From header. This number is typically the MSISDN or CLI of the elevator alarm device.
The P100 alarm data may also include a controller identifier. In some deployments, the controller identifier sent by the elevator device is not globally unique or is not the identifier expected by the ARC. Alarmbridge can therefore resolve the calling device from the incoming MSISDN and override the received P100 controller identifier with a value provisioned on the device.
Key properties used during P100 processing:
callingParty: The calling party number received from the SIP trunk, normally the MSISDN or CLI of the elevator alarm device.calledParty: The phone number called by the elevator alarm unit.controllerId: The elevator or controller identifier received in the P100 alarm event.audio: Indicates whether the alarm requires a voice connection.deviceCLI: The provisioned CLI or MSISDN used to identify the physical elevator alarm device.deviceId: The provisioned SIP identity or SIP DID used when routing calls to or from the device.
SIA-DCS Event Structure
SIA-DCS alarm events are transmitted to the ARC using the endpoint configured on the Alarmbridge event sender.
The SIA event sender is configured with protocol sia-dcs. The siaMapping property selects the mapping profile used for the target ARC. This allows the same Alarmbridge P100 input flow to support different ARC-specific SIA conventions.
Key SIA-DCS properties used by the mapping:
accountNumber: The main account or device identifier sent to the ARC.accountPrefix: Optional additional account identification.receiverNumber: Optional receiver or device-related identifier.dataType: The SIA event code generated from the normalized alarm event.addressNumber: Optional additional address or event context.
Alarmbridge maps the decoded P100 alarm event into a common alarm event before it is converted to SIA-DCS. The SIA mapping profile selected by siaMapping controls the final SIA-DCS output.
For elevator alarms, a common deployment requirement is to use a provisioned ARC account identifier instead of the controller identifier received from the P100 device. This can be done by provisioning an override value per device.
Mapping Details
- Incoming P100 alarm call → Alarmbridge event receiver: The P100 alarm is received on an inbound phone number through a SIP trunk.
- Event receiver protocol →
p100: The event receiver is configured to decode P100 alarm calls. - Event receiver destination matching → phone number or destination match: The receiver is selected based on the called destination.
- P100 event → common alarm event: Alarmbridge converts the decoded P100 alarm into the internal common alarm event format.
- Common alarm event → SIA-DCS: The connected event sender maps the event to SIA-DCS.
siaMapping→ ARC-specific mapping: The event sender selects the correct SIA mapping profile for the ARC.- Voice alarms → Voicebridge: If the P100 alarm requires voice, the event receiver should enable voice bridging.
SIA Mapping Selection
The event sender uses the targetEndpoint.siaMapping property to select the mapping profile. For example:
{
"targetEndpoint": {
"destAddr": "sia:127.0.0.1:7779",
"protocol": "sia-dcs",
"siaMapping": "ism-elevator"
}
}
This allows different ARCs to use different SIA event mappings while sharing the same Alarmbridge P100 receiver flow.
Basic Configuration
- Configure a SIP trunk so that inbound alarm calls from elevator devices are delivered to iotcomms.io.
- Configure an Alarmbridge event receiver with protocol
p100. - Set the event receiver destination match to match the phone number called by the elevator alarm units.
- Configure an Alarmbridge event sender with protocol
sia-dcs. - Set the event sender ARC endpoint using
targetEndpoint.destAddr. - Set the event sender
targetEndpoint.siaMappingto the SIA mapping profile required by the ARC. - Connect the P100 event receiver to the SIA event sender.
- Enable voice bridging for P100 alarms that require a voice connection.
Example Event Receiver Configuration
{
"destinationMatch": "p100bridge",
"ivrName": "p100bridge",
"protocol": "p100",
"bridgeserviceId": "siabridge_1",
"resolveDeviceFromDeviceCLI": false,
"useVoiceBridge": true
}
Sensitive credentials, API keys, and private keys should not be included directly in documentation examples. They should be provisioned securely using the normal tenant configuration mechanisms.
Example Event Sender Configuration
{
"id": "siabridge_1",
"name": "siabridge_1",
"type": "bridgeservice",
"ivrName": "p100bridge",
"alarmHandling": "callEmergencyCenter",
"useDeviceIdAsSipFrom": false,
"targetEndpoint": {
"destAddr": "sia:127.0.0.1:7779",
"protocol": "sia-dcs",
"siaMapping": "ism-elevator",
"defaultVoiceDestination": "sip:voicecall@sip.dev.iotcomms.io"
},
"unknownAlarmEventVoiceDestination": "sip:unknown@127.0.0.1:35090"
}
Per-Device Voice Destination with a Shared SIA Event Sender
In some deployments, a single SIA event sender should be shared by many elevator alarm devices, while the voice call should still be routed to different destinations depending on which device generated the alarm.
This can be configured by setting a per-device voice destination in:
serviceData.alarmBridge.voiceDestination
When the incoming P100 alarm is resolved to a provisioned device, Alarmbridge can use this value as the voice destination for that specific device.
Example:
{
"deviceid": "elevatorsipid",
"deviceCLI": "elevatormsisdn",
"devicedomain": "customer.prod-eu-north-1.iotcomms.io",
"serviceData": {
"alarmBridge": {
"voiceDestination": "sip:arc@customer.prod-eu-north-1.iotcomms.io"
}
}
}
Override the P100 Controller ID
Some P100 elevator alarm devices send a controller identifier that is not unique or is not the account identifier expected by the ARC.
Alarmbridge can override the received P100 controllerId with a value provisioned on the resolved device:
serviceData.alarmBridge.overrideInAlarmEvent.controllerId
When resolveDeviceFromDeviceCLI is enabled on the event receiver, Alarmbridge can resolve the device using the incoming SIP calling party number and the provisioned deviceCLI. The configured override value can then replace the controllerId in the common alarm event before it is mapped to SIA-DCS.
Example:
{
"deviceid": "elevatorsipid",
"deviceCLI": "elevatormsisdn",
"devicedomain": "customer.prod-eu-north-1.iotcomms.io",
"serviceData": {
"alarmBridge": {
"overrideInAlarmEvent": {
"controllerId": "99999"
}
}
}
}
Use a Provisioned SIP Identity as Calling Party for Voice Calls
The incoming P100 alarm call normally contains the elevator device MSISDN in the SIP From header. In some deployments, the voice call towards the ARC should instead use a provisioned SIP identity or SIP DID.
This can be configured by resolving the incoming MSISDN to a provisioned device and using the provisioned deviceId as the SIP calling party number for voice calls.
The event sender enables this behavior using:
{
"useDeviceIdAsSipFrom": true
}
With this setting enabled, the voice call to the ARC will use the provisioned deviceId value instead of the MSISDN received in the incoming P100 alarm call.
Callback to a P100 Elevator Alarm Device
For callback scenarios, the ARC or application should call the provisioned SIP deviceId, normally representing the SIP DID of the elevator alarm unit.
The SIP Core Service can route the call through a SIP trunk and rewrite the called number to the provisioned deviceCLI value. This is useful when the external trunk or mobile network expects the MSISDN or CLI of the elevator device, while applications and ARCs use the SIP DID.
This behavior is enabled on the SIP trunk using:
rewriteToDeviceCLI
When rewriteToDeviceCLI is enabled, calls routed to the trunk perform a device lookup using the dialled number. If the dialled number matches a provisioned deviceId, SIP Core rewrites the called number to the matching device deviceCLI value before forwarding the call through the trunk.
Example Device Provisioning
{
"deviceId": "<SIP DID>",
"deviceType": "alarmbridgeAlarmUnit",
"deviceCLI": "<MSISDN>",
"authType": "disabled",
"serviceData": {
"alarmBridge": {
"overrideInAlarmEvent": {
"controllerId": "<SIA account id>"
},
"voiceDestination": "sip:arc@customer.prod-eu-north-1.iotcomms.io"
}
}
}
Example Trunk Provisioning
{
"destinationMatch": "rewritetodevicecli",
"destinationTarget": "trunkprovider.com",
"destinationTransport": "tcp",
"setTrunkPAI": true,
"rewriteToDeviceCLI": true,
}
Supported SIA Mapping Profiles
The SIA event sender uses the targetEndpoint.siaMapping property to select how the normalized Alarmbridge alarm event is converted into the final SIA-DCS event sent to the ARC.
For P100 elevator alarm integrations, two SIA mapping profiles are currently supported:
| Mapping ID | Target ARC software | Description |
|---|---|---|
ism-elevator |
Innovative Security Manager | Maps P100 elevator alarm events to the SIA-DCS format expected by Innovative Security Manager ARC software. |
insocam-elevator |
Insocam | Maps elevator alarm events to the SIA-DCS format expected by Insocam ARC software. |
Example:
{
"targetEndpoint": {
"destAddr": "sia:127.0.0.1:7779",
"protocol": "sia-dcs",
"siaMapping": "ism-elevator"
}
}
ism-elevator Mapping
The ism-elevator mapping is designed for P100 elevator alarm events sent to ARC systems using Innovative Security Manager.
This mapping uses a rule table where the incoming Alarmbridge common alarm event is matched on:
deviceTypedeviceComponentstatusCodelocationaudio
The matched rule defines the SIA event code, SIA address number, and SIA address description.
Examples of mapped P100 elevator events:
| Alarmbridge event condition | SIA code | Address | Description |
|---|---|---|---|
| User alarm without voice | LA |
900 |
Alarm without voice |
| User alarm with duplex voice | UA |
213 |
Lift: Voice alarm initiated |
| Lift controller input status | UA |
210 |
Lift: Input status |
| Battery failure | YT |
211 |
Lift: Battery failure |
| Microphone or speaker failure | UA |
212 |
Lift: Mic or speaker failure |
| Alarm started | UA |
214 |
Lift: Alarm started |
| Alarm finished | UA |
215 |
Lift: Alarm finished |
| Power failure | AT |
217 |
Lift: Power failure |
| Emergency button stuck | UA |
218 |
Lift: Emergency button is stuck |
| Internal bus unit lost | UA |
219 |
Lift: Bus unit lost |
| Internal bus unit recovered | UH |
219 |
Lift: Bus unit recovered |
| Bus communication error | UA |
220 |
Lift: Bus communication error |
| Bus command queue overflow | UA |
221 |
Lift: Bus command queue overflow |
| Bus busy timeout | UA |
222 |
Lift: Bus busy timeout |
| No car unit detected | UA |
223 |
Lift: No car unit |
| Power restored | AR |
217 |
Lift: Power return |
| Low battery voltage | YT |
226 |
Lift: Battery voltage low |
| Self test alarm | RP |
026 |
Lift: Self test alarm |
The SIA accountNumber is set from the common alarm event controllerId. This means that if the P100 controller identifier must be replaced with an ARC-specific account identifier, the device-level override should be used:
serviceData.alarmBridge.overrideInAlarmEvent.controllerId
The ism-elevator mapping may also set the SIA account prefix from the mapped device type or from the customer site identifier, depending on the type of normalized event being processed.
insocam-elevator Mapping
The insocam-elevator mapping is designed for elevator alarm events sent to ARC systems using Insocam.
This mapping creates a SIA-DCS event where the accountNumber is set from the common alarm event controllerId. It also adds extended SIA data fields used by the Insocam integration.
The mapping can include the following extended data fields when the corresponding values are available in the common alarm event:
| Extended data field | Source |
|---|---|
supervisionCategory |
Fixed value SP-LACS |
timeOfOccurance |
Current formatted event time |
alarmText |
Common alarm event text message |
JSONData |
Alarm session identifier, encoded as JSON |
location |
Location code resolved from the common event |
buildingName |
Device type and optionally device component |
room |
Common alarm event deviceId |
verificationLink |
URL from the common alarm event |
The SIA event dataType is resolved from the incoming event using the device type and status code. If a specific device type and status combination is configured, that mapping is used. Otherwise, the mapping can fall back to a generic status mapping or a default mapping for the device type.
Example event sender configuration using the Insocam mapping:
{
"targetEndpoint": {
"destAddr": "sia:127.0.0.1:7779",
"protocol": "sia-dcs",
"siaMapping": "insocam-elevator"
}
}
Choosing the Correct Mapping
Use ism-elevator when the target ARC uses Innovative Security Manager and expects the P100 elevator-specific SIA address and description format.
Use insocam-elevator when the target ARC uses Insocam and expects elevator alarm information in the Insocam-specific SIA-DCS format with extended event data.
The selected mapping is configured per SIA event sender. This means one P100 event receiver can be connected to different SIA event senders if the same P100 alarm source needs to be delivered to different ARC systems using different SIA formats.