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)).
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.
Current plugin version: 0.0.2 — compatible with ACCELERO 2.16.8 or higher.
What the plugin does
| Feature | What happens in ACCELERO |
|---|---|
| Softphone in the browser | Each operator accesses a softphone with a numeric keypad, connection status, call controls, and a contact list |
| Extension per operator | Each ACCELERO user is automatically assigned a SIP extension, identified by their internal ID (usuID) |
| Operator groups | Each operator profile can have a group extension: calling that extension rings all operators of the profile at the same time |
| External extensions / devices | Telephony devices (intercoms, kiosks) are registered as external extensions, with their own username and password |
| Access release (REX) on the call | When a device is linked to a controller channel, the softphone displays the Release access button during the call |
| Asterisk configuration generation | The Apply and restart button generates the Asterisk configuration files and restarts the SIP server |
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.
The SIP Asterisk configuration screen showing the three tabs (General, Operator groups, External extensions / devices).
General tab
Connection data with the SIP server.
| Field | Description |
|---|---|
| SIP Server | Address (host) of the Asterisk server used by the softphone to connect via secure WebSocket |
| SIP Domain | SIP domain used in the identification of the extensions |
Tab buttons:
| Button | Function |
|---|---|
| Save | Persists the server and domain data |
| Apply and restart | Regenerates the Asterisk configuration files (extensions, groups, devices) and restarts the SIP server. Requires confirmation |
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.
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.
The Operator groups tab, showing the list of profiles with the extension column editable per row.
| Column | Description |
|---|---|
| Profile | Name of the ACCELERO operator profile |
| Extension | Extension number assigned to the group. Leave it blank to not create a group for the profile |
| Actions | Button to save the row's extension |
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.
The External extensions / devices tab, showing the columns (Extension description, Extension, User, Password, REX/channel) and the row for adding a new device.
| Field | Description |
|---|---|
| Extension description | Identification name of the device (e.g., "Gatehouse Intercom 1") |
| Extension | Extension number of the device |
| User | SIP authentication user of the device |
| Password | SIP 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.
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.
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 buttons — Call, Add, and Delete (backspace).
During a call, the call area displays the contact's name/identification, the duration, and the corresponding controls:
| Situation | Available controls |
|---|---|
| Incoming call | Answer, Reject, and (when applicable) Release access |
| Ongoing call | Mute (microphone), End, and (when applicable) Release access |
Incoming calls play a ringtone of the plugin's own until they are answered or rejected.
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.
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
- The device (intercom/kiosk) calls the operator (or a group extension).
- Upon receiving the call, the softphone checks the channel linked to the device's extension.
- If there is a linked channel, the Release access button appears in the call controls.
- When clicking (with confirmation), the softphone triggers the release (REX) of the corresponding channel, releasing passage.
The release uses ACCELERO's standard Controller REX function. Make sure the operator has permission to release passage on the corresponding channel.
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 type | Source |
|---|---|
| Operator extension | Each ACCELERO user (except the system user) receives an individual extension equal to their internal ID (usuID) |
| Group extension | Each profile with an extension configured on the Operator groups tab. When called, all operators of the profile ring simultaneously |
| External extension / device | Each device registered on the External extensions / devices tab, with its own authentication username and password |
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.
| Item | Detail |
|---|---|
| Image | andrius/asterisk:18-current |
| SIP ports | 5060/udp and 5060/tcp |
| HTTP/WebSocket ports | 8088 (HTTP) and 8089 (WSS — used by the WebRTC softphone) |
| Media range (RTP) | 10000-10500/udp |
| Configuration | The 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.
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.
Architecture: ACCELERO (generates config) → Asterisk container (PBX) ← softphone in the browser (WebRTC/WSS) ← devices (SIP/UDP).
Use cases
Enable the softphone for the operators
- Request that IONGRADE install the
sip-asteriskandsip-asterisk_dockerplugins. - In
Settings > Plugins - SIP Asterisk, on the General tab, fill in SIP Server and SIP Domain and save. - In Operator groups, define the group extensions of the profiles that should be called.
- Click Apply and restart to generate the configuration and bring up the extensions.
- Make sure the operators have the softphone use permission (
sip-use). - The operator accesses Softphone in the side menu and the softphone connects automatically.
Answer an intercom and release passage
- Register the intercom in External extensions / devices, filling in the description, extension, user, password, and the channel (REX) where it is installed.
- Click Apply and restart.
- When the intercom calls, the operator answers on the softphone.
- 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:
- Check the fields on the General tab.
- Check whether the Asterisk container is running and whether port
8089is accessible. - 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:
- Confirm the extension on the Operator groups tab.
- Check whether there are operators linked to the profile.
- 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:
- In External extensions / devices, confirm the channel linked to the device.
- Confirm that the call came from that device.
- 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