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: Advanced > System > Plugins - SIP Asterisk

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

SIP Asterisk screen on the General tab, with the Operator groups and External extensions / devices tabs, the SIP Server and SIP Domain fields and the Save and Apply and restart buttons

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.

Operator groups tab with the Portaria profile, with group extension 9000, and the Master profile, without an extension

ColumnDescription
ProfileName of the ACCELERO operator profile. The profile with internal ID 1 is not listed
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.

External extensions / devices tab with two intercoms registered, one of them linked to the Portaria Principal channel, and the add row at the bottom

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
Allow passageController channel associated with the device (the channel that receives the REX). 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.

Softphone window on the Home page, with the number field, the Disconnected status, the numeric keypad and the add, call and delete buttons

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 buttons — Call, 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.

The call controls are icon-only buttons: green phone (Answer), red crossed-out phone (Reject, or End during the call), microphone (Mute) and blue padlock (Release access). The padlock only shows when the call comes from an external extension linked to a controller channel, and it asks for confirmation ("Confirma liberação de acesso?") before releasing.

Softphone receiving a call from extension 2001 Interfone Portaria Principal, with 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 (Allow passage 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.


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.

Voice media (RTP) flows over the 10000-10500/udp range of the Asterisk container.


Use cases​

Enable the softphone for the operators​

  1. Request that IONGRADE install the sip-asterisk and sip-asterisk_docker plugins.
  2. In Advanced > System > 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 Allow passage 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