Alarmbridge Service - P100 To SIA Mapping

Download OpenAPI specification:Download

P100 To SIA Mapping

Overview

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.

graph LR a(Analogue P100 Elevator Alarm) -->|Alarm call via SIP trunk| b(Event Receiver) b -->|P100 event converted to common alarm event| c(Event Sender) c -->|SIA-DCS event| d(ARC alarm destination) c -->|Optional voice bridge| e(ARC voice destination)

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.

Event Processing in Alarmbridge

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:

  1. The elevator alarm unit places an alarm call to a phone number.
  2. The call is received by iotcomms.io through a SIP trunk.
  3. An Alarmbridge event receiver with protocol p100 matches the called number or destination match.
  4. Alarmbridge receives and decodes the P100 alarm information.
  5. The decoded alarm is converted into the Alarmbridge common alarm event format.
  6. A connected event sender maps the common alarm event to SIA-DCS.
  7. The SIA-DCS event is sent to the configured ARC endpoint.
  8. If the alarm includes voice, voice bridging can connect the ARC to the elevator alarm unit.
sequenceDiagram participant Elevator as P100 Elevator Alarm participant Trunk as SIP Trunk participant Receiver as Alarmbridge Event Receiver participant Sender as SIA Event Sender participant ARC as Alarm Receiving Center Elevator->>Trunk: Alarm call to phone number Trunk->>Receiver: SIP INVITE Receiver->>Receiver: Decode P100 alarm data Receiver->>Sender: Common alarm event Sender->>ARC: SIA-DCS alarm event Receiver->>ARC: Optional bridged voice call

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.

P100 to SIA-DCS Mapping in Alarmbridge

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.

graph LR a1(P100 controllerId) --> b1(Common alarm controllerId) a2(Incoming SIP From / MSISDN) --> b2(Device lookup using deviceCLI) b2 --> b3(Provisioned deviceId / SIP DID) b2 --> b4(Optional controllerId override) b4 --> c1(SIA accountNumber) b3 --> c2(Optional SIP From for voice) c1 --> d(SIA-DCS event to ARC)

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 Protocol Details

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.

Configuration in Alarmbridge

Basic Configuration

  1. Configure a SIP trunk so that inbound alarm calls from elevator devices are delivered to iotcomms.io.
  2. Configure an Alarmbridge event receiver with protocol p100.
  3. Set the event receiver destination match to match the phone number called by the elevator alarm units.
  4. Configure an Alarmbridge event sender with protocol sia-dcs.
  5. Set the event sender ARC endpoint using targetEndpoint.destAddr.
  6. Set the event sender targetEndpoint.siaMapping to the SIA mapping profile required by the ARC.
  7. Connect the P100 event receiver to the SIA event sender.
  8. 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"
}

Advanced Configuration

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:

  • deviceType
  • deviceComponent
  • statusCode
  • location
  • audio

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.