Skip to main content

SIP Asterisk Integration (Softphone)

The SIP Asterisk integration adds a softphone (VoIP phone) to ACCELERO that runs directly in the operator's browser. With it, operators can make and receive voice calls between themselves, call operator groups, and answer devices (intercoms, kiosks, door phones) — and, when the device is linked to a controller channel, release access without leaving the call screen.

Voice communication happens via WebRTC over SIP (SIP.js library), connecting to an Asterisk server that runs as an auxiliary Docker container (see Asterisk Server (Docker)).

Availability

This integration is provided as a plugin (sip-asterisk) and must be installed and enabled by the IONGRADE technical team. It depends on an Asterisk server (companion plugin sip-asterisk_docker). Contact support to check compatibility with your ACCELERO version.

Compatibility

Current plugin version: 0.0.2 — compatible with ACCELERO 2.16.8 or higher.


What the plugin does

FeatureWhat happens in ACCELERO
Softphone in the browserEach operator accesses a softphone with a numeric keypad, connection status, call controls, and a contact list
Extension per operatorEach ACCELERO user is automatically assigned a SIP extension, identified by their internal ID (usuID)
Operator groupsEach operator profile can have a group extension: calling that extension rings all operators of the profile at the same time
External extensions / devicesTelephony devices (intercoms, kiosks) are registered as external extensions, with their own username and password
Access release (REX) on the callWhen a device is linked to a controller channel, the softphone displays the Release access button during the call
Asterisk configuration generationThe Apply and restart button generates the Asterisk configuration files and restarts the SIP server
Main benefit

Centralizes intercom and gatehouse answering within ACCELERO itself: the operator answers the intercom call and releases passage in the same softphone.


Configuration

Navigation path: Settings > Plugins - SIP Asterisk

The configuration screen has three tabs: General, Operator groups, and External extensions / devices.

TODO: Add Screenshot

The SIP Asterisk configuration screen showing the three tabs (General, Operator groups, External extensions / devices).

General tab

Connection data with the SIP server.

FieldDescription
SIP ServerAddress (host) of the Asterisk server used by the softphone to connect via secure WebSocket
SIP DomainSIP domain used in the identification of the extensions

Tab buttons:

ButtonFunction
SavePersists the server and domain data
Apply and restartRegenerates the Asterisk configuration files (extensions, groups, devices) and restarts the SIP server. Requires confirmation
"Apply and restart" restarts the SIP server

The Apply and restart action recreates the Asterisk configuration from the current state (operators, profiles, and devices) and triggers the restart of the SIP server. Calls in progress may be interrupted. Use it after changing extensions, groups, or devices.

Hidden TURN server

The code provides for a TURN server (for NAT traversal), but the field is hidden on the current screen because not all devices support it. It is not part of the configuration exposed to the user.

Operator groups tab

Defines a group extension for each operator profile. Calling that extension rings all operators who have that profile.

TODO: Add Screenshot

The Operator groups tab, showing the list of profiles with the extension column editable per row.

ColumnDescription
ProfileName of the ACCELERO operator profile
ExtensionExtension number assigned to the group. Leave it blank to not create a group for the profile
ActionsButton to save the row's extension
Operator extensions vs. group extensions

Each operator's individual extension is their internal ID (usuID), generated automatically — it is not configured here. On this tab you define only the group extensions (one per profile), which are usually the numbers called by the devices.

External extensions / devices tab

Registration of the telephony devices (intercoms, kiosks, door phones) that connect to Asterisk as external extensions.

TODO: Add Screenshot

The External extensions / devices tab, showing the columns (Extension description, Extension, User, Password, REX/channel) and the row for adding a new device.

FieldDescription
Extension descriptionIdentification name of the device (e.g., "Gatehouse Intercom 1")
ExtensionExtension number of the device
UserSIP authentication user of the device
PasswordSIP authentication password of the device
REX (channel)Controller channel associated with the device. When filled in, the softphone displays the Release access button when receiving a call from that device

Per-row actions: Save and Delete (deletion asks for confirmation). Adding a new device is done via the registration row at the bottom of the table.

Linking to the channel releases the door

Associate the device with the physical channel where it is installed. It is this link that makes the Release access button appear during the call and trigger the release (REX) of the correct channel.


Softphone

Navigation path: Side menu > Softphone

When clicking Softphone, ACCELERO opens the softphone in its own window (popup). The softphone connects automatically to the SIP server using the logged-in operator's extension.

TODO: Add Screenshot

The open softphone window, showing the Home page with the number field, the connection status, the numeric keypad, and the action buttons (call, add, delete).

The softphone window has two pages, accessible from the sidebar:

Home page

  • Number field — type the number/extension to call (also accepts the Enter key to call).
  • Connection status — indicates Connected / Disconnected / Calling... / In call.
  • Numeric keypad — buttons from 0 to 9, *, and #.
  • Action buttonsCall, Add, and Delete (backspace).

During a call, the call area displays the contact's name/identification, the duration, and the corresponding controls:

SituationAvailable controls
Incoming callAnswer, Reject, and (when applicable) Release access
Ongoing callMute (microphone), End, and (when applicable) Release access

Incoming calls play a ringtone of the plugin's own until they are answered or rejected.

TODO: Add Screenshot

The softphone during an incoming call from a device, showing the Answer, Reject, and Release access buttons.

Contacts page

List of callable contacts, with search by name or number. The list is built automatically from:

  • Operator groups that have an extension configured (Operator groups tab).
  • External extensions / devices registered (External extensions / devices tab).

Clicking a contact fills in the number on the Home page; the contact's phone button starts the call directly.

Single softphone window

To avoid multiple instances when the operator has several tabs open, the plugin coordinates the softphone opening through a shared worker. If the softphone is already running in another tab, the system advises using the existing tab instead of opening a new one.


Access release (REX) via the softphone

When a device registered on the External extensions / devices tab is linked to a controller channel (REX field), the softphone starts offering access release during the call coming from that device.

How it works

  1. The device (intercom/kiosk) calls the operator (or a group extension).
  2. Upon receiving the call, the softphone checks the channel linked to the device's extension.
  3. If there is a linked channel, the Release access button appears in the call controls.
  4. When clicking (with confirmation), the softphone triggers the release (REX) of the corresponding channel, releasing passage.
Release permission

The release uses ACCELERO's standard Controller REX function. Make sure the operator has permission to release passage on the corresponding channel.

TODO: Add Diagram

Flow device → call in the softphone → Release access button → REX on the linked channel.


How extensions are generated

The extensions and the Asterisk configuration are built from the current state of ACCELERO when you use Apply and restart:

Extension typeSource
Operator extensionEach ACCELERO user (except the system user) receives an individual extension equal to their internal ID (usuID)
Group extensionEach profile with an extension configured on the Operator groups tab. When called, all operators of the profile ring simultaneously
External extension / deviceEach device registered on the External extensions / devices tab, with its own authentication username and password
Extensions with many digits

The operator's individual extension uses their internal ID, which may have more than 6 digits. Testing indicates normal operation, but some third-party softphones may not accept long extensions. For device calls, prefer calling group extensions, whose numbers you define freely in the configuration.


Asterisk Server (Docker)

The softphone needs an Asterisk server (PBX) to register the extensions and route the calls. It is provided by the companion plugin sip-asterisk_docker, which brings Asterisk up as a Docker container alongside ACCELERO.

ItemDetail
Imageandrius/asterisk:18-current
SIP ports5060/udp and 5060/tcp
HTTP/WebSocket ports8088 (HTTP) and 8089 (WSS — used by the WebRTC softphone)
Media range (RTP)10000-10500/udp
ConfigurationThe extensions.conf, pjsip.conf, and sip.conf files are generated by ACCELERO and mounted in the container

When you trigger Apply and restart on the configuration screen, ACCELERO regenerates these files from the current operators, groups, and devices and signals the restart of the SIP server so that Asterisk starts using the new configuration.

Installation and infrastructure

The installation of the Asterisk server, the port openings, and the certificates (needed for the secure WebSocket) are the responsibility of the IONGRADE technical team during deployment.

TODO: Add Diagram

Architecture: ACCELERO (generates config) → Asterisk container (PBX) ← softphone in the browser (WebRTC/WSS) ← devices (SIP/UDP).


Use cases

Enable the softphone for the operators

  1. Request that IONGRADE install the sip-asterisk and sip-asterisk_docker plugins.
  2. In Settings > Plugins - SIP Asterisk, on the General tab, fill in SIP Server and SIP Domain and save.
  3. In Operator groups, define the group extensions of the profiles that should be called.
  4. Click Apply and restart to generate the configuration and bring up the extensions.
  5. Make sure the operators have the softphone use permission (sip-use).
  6. The operator accesses Softphone in the side menu and the softphone connects automatically.

Answer an intercom and release passage

  1. Register the intercom in External extensions / devices, filling in the description, extension, user, password, and the channel (REX) where it is installed.
  2. Click Apply and restart.
  3. When the intercom calls, the operator answers on the softphone.
  4. The Release access button appears in the call controls — when clicked and confirmed, the channel is released.

Best practices

  • Reapply after changes: whenever you add/change operators, groups, or devices, use Apply and restart so that the Asterisk configuration reflects the current state.
  • Use group extensions for devices: prefer that the devices call group extensions (collective ring) instead of individual operator extensions.
  • Link each device to the right channel: the channel link is what enables access release via the softphone — check the correct channel of each intercom/kiosk.
  • Dedicated passwords per device: use a distinct username and password for each device, making individual revocation easier.

Troubleshooting

The softphone stays "Disconnected"

Possible causes:

  • Incorrect SIP Server or SIP Domain on the General tab.
  • Asterisk server down or port 8089 (WSS) inaccessible.
  • Invalid secure WebSocket certificate.

Solution:

  1. Check the fields on the General tab.
  2. Check whether the Asterisk container is running and whether port 8089 is accessible.
  3. Trigger Apply and restart and contact IONGRADE support if it persists.

A new extension/group does not ring

Possible causes:

  • The configuration has not yet been applied after the change.
  • The profile does not have a group extension configured, or no operator is linked to the profile.

Solution:

  1. Confirm the extension on the Operator groups tab.
  2. Check whether there are operators linked to the profile.
  3. Click Apply and restart.

The "Release access" button does not appear

Possible causes:

  • The device is not linked to a channel (empty REX field).
  • The call did not come from a registered external extension/device.
  • The operator does not have release permission on the channel.

Solution:

  1. In External extensions / devices, confirm the channel linked to the device.
  2. Confirm that the call came from that device.
  3. Check the operator's release (REX) permission on the channel.

Integration with other modules

Operators and Profiles

The individual extensions come from the Operators and the group extensions come from the operator profiles. The softphone connects with the logged-in operator's extension.

Controllers

The Controllers and their channels are the basis of access release: each device is linked to a channel, and the release triggers that channel's REX.


Next Steps

  • Operators — Understand the profiles and users that become extensions
  • Controllers — Configure the channels used in access release
  • Plugins — Learn more about the ACCELERO plugin system