Telephony: SIP trunk and browser calls
How to connect a telephony provider to X10 CRM: the trunk, numbers, operator SIP accounts, inbound ring groups, routes and calls straight from the browser without a softphone.
Telephony in X10 CRM works right inside a browser tab: the operator clicks a number in the lead card and talks through a headset. No softphone, no settings on the computer, no separate application. This page walks an administrator through the whole setup — from the provider details to the first test call.
#How it is put together
At the core is the X10 CRM telephony server, running next to your database. It keeps the connection to the telephony provider and distributes calls to operators. The operator’s browser connects to it directly over WebRTC — which is exactly why nothing needs to be installed.
| Who does it | What exactly |
|---|---|
| The X10 team | Installs and configures the telephony server while deploying the CRM: the server itself, the media server, certificates, ports. Fills in the technical connection fields |
| Your administrator | Adds the provider trunk, numbers, operators and routing rules — all through the CRM interface, with no server access |
| Your telephony provider | Issues the SIP account and the landline or mobile numbers |
What telephony and the auto-dialer include, and how it looks in a team's daily work, is on the CRM for a call centre page.
#Step 1. What to ask your telephony provider
Before opening the settings, collect the details. Any IP telephony provider will supply them on a request for “SIP connection parameters”.
- The provider server address — a domain or an IP
- The port (almost always
5060) - The SIP login and password
- Whether registration on the server is required, or authentication goes by your server’s IP
- The list of your numbers in E.164 format without the plus sign:
380441234567 - Whether the provider allows substituting your own number on outbound calls
#Step 2. Global settings
The Settings → Telephony section. Most fields here are filled in once during onboarding, but it helps to know what they do.
Fields that concern you
Telephony enabledswitchrequiredThe master switch. While it is off, the call buttons in lead cards do nothing.
First extension numbernumberWhere operator numbering starts.
2000by default, so the first operator gets 2000, the second 2001 and so on.Recording retentiondaysHow many days to keep call audio.
90by default. A value of0disables automatic deletion — but then watch your disk space.
Technical fields — filled in by the implementation team
Server external IP, domain for browser callstextThe addresses the operator’s browser uses to find the telephony server.
CRM address for callbacksURLWhere the telephony server reports the start and the end of a call. This is what makes calls appear in the lead history.
Management interface parameters and secrettextThe service connection between the CRM and the telephony server. Do not change these without reason — calls will stop being initiated.
Recordings pathtextThe directory on the server where call audio files are stored.
#Step 3. The provider SIP trunk
A trunk is the connection to the provider. Create it in the trunks section and fill in the details from step one.
Trunk fields
System nameLatin lettersrequiredA short identifier with no spaces, for example
kyivstarorbinotel. Better not to change it later — the server configuration refers to it.Display nametextHow the trunk is labelled in the interface. Any script is fine here.
Provider hostdomain or IPrequiredThe address of the provider’s server.
PortnumberUsually
5060.Login and passwordtextrequiredThe SIP credentials from the provider.
Register with the providerswitchOn — the server registers itself with the login and password. Switch it off if the provider authenticates you by IP address.
ActiveswitchA disabled trunk is used for neither inbound nor outbound calls.
#Step 4. Numbers
Add every number the provider has allocated to you. A number is written in E.164 format without the plus sign and without spaces: 380441234567. Each number is attached to the trunk it works through.
A display name saves you from confusion when there are many numbers: Main Kyiv, Facebook ads, Hotline. It is also shown in routes and statistics — a convenient way to see which advertising brings calls.
#Step 5. Operator SIP accounts
To make calls, an operator needs an extension. Open Settings → Users, find the employee and issue a SIP account in one action.
- The extension is assigned automatically — the next free one, starting from the value in the global settings.
- The password is generated randomly and securely. The operator does not need to know it: the browser receives the credentials itself when the employee signs in.
- The CallerID name can be set separately — it is shown to colleagues on internal calls.
- Removing the account deletes the extension. Do it when someone leaves: otherwise calls keep going to an operator who no longer exists.
#Step 6. Inbound ring groups
A group defines whose phone rings when a customer dials your number. Create the group, give it a Latin-letter system name and add operators.
Group settings
Memberslist of operatorsThe call rings everyone at once — whoever picks up first takes it. Only operators with an extension are counted in the list.
Ring timeoutsecondsHow long to ring before the call counts as missed.
30by default. Anything below 20 seconds is too short — people do not make it in time.Notify the ownerswitchIf the customer is already in the database, the call and the notification also go to the manager attached to their latest lead. Very convenient: a returning customer reaches “their” manager rather than a random operator.
#Step 7. Inbound routes
A route connects a number to whoever answers it. One route per number, pointing either at a group or at a specific operator.
| Scenario | How to configure it |
|---|---|
| A general sales line | Number → a group with every manager |
| A director’s personal number | Number → a specific operator |
| Different departments on different numbers | A separate group per department, each number pointing to its own group |
| Separating advertising sources | Several numbers point to one group — the source is visible in the call history |
#Step 8. Which number the customer sees
For outbound calls you can set which of your numbers the customer will see. It is configured on two levels:
- Per project — every call within the project goes out from one number. Sensible when different business lines carry different brands.
- Per operator — a personal outbound number. It takes priority and is useful when part of the team works a specific region.
#Step 9. Apply the configuration
Changes to trunks, numbers and routes do not take effect immediately — they have to be pushed to the telephony server. There is a dedicated page with four actions:
| Action | What it does | When you need it |
|---|---|---|
| Sync accounts | Pushes trunks and operator extensions to the server | After adding a trunk or issuing a SIP account |
| Reload accounts | Asks the server to re-read the credentials | If the trunk does not register after a sync |
| Apply routing | Updates the call routing rules | After changing groups, routes or outbound numbers |
| Apply everything | Runs the sync and the routing together | The universal option — use it when in doubt |
#Calling from the browser: what the operator does
- 01
Allow microphone access
On the first sign-in the browser asks for permission. If the operator accidentally clicked “Block”, the permission can be restored through the padlock icon in the address bar.
- 02
Check the headset
A wired USB headset gives noticeably better quality than Bluetooth or a laptop’s built-in microphone. For a call centre that is a requirement, not a preference.
- 03
Call from the lead card
Clicking the number in the card raises the connection immediately. The call, its duration and its recording are attached to that lead automatically.
- 04
Take inbound calls
When a customer calls, the CRM shows a notification and opens the lead card matched by the number — the operator sees the history before saying hello.
#Call recordings
- Every conversation is recorded on separate tracks for the operator and the customer — that separation is what lets AI work out who said what.
- The recording is available from the lead card and from the call list: playback right in the browser, and a download if needed.
- The default retention period is 90 days; older files are deleted automatically every day.
- Listening and downloading are governed by permissions — a regular operator may not be able to export audio.
- Details about the player, filters and retention are in Call recordings.
#Diagnostics
| Symptom | Most likely cause | What to do |
|---|---|---|
| The call button is inactive | Telephony is disabled globally, or the operator has no SIP account | Check the master switch and issue an account in the user card |
| Outbound calls do not go through | The trunk has not registered with the provider | Check the login, password and host, then “Apply everything”. If the provider authenticates by IP, switch registration off |
| Inbound calls do not reach the operators | The number has no route, or the group contains no operators with extensions | Create the route and check the group membership |
| The call connects but one side hears silence | The network is blocking media traffic | Try another network. If it works over mobile internet, the question is about the office firewall |
| The customer sees the wrong number | No outbound number is set for the project or operator, or the provider forbids substitution | Set the number in the settings and check with the provider whether substitution is allowed |
| Calls happen but do not appear in the lead | Callbacks from the server are not reaching the CRM | This is a technical question — write to us and we will check the callback address |
| A recording does not play | No listening permission, or the file has already been deleted by the retention rule | Check the role permissions and the recording retention period |
#Permissions
| Action | Permission |
|---|---|
| Calling from the browser | calls.sip_credentials |
| Seeing the call list | calls.view_records_list |
| Listening to recordings | calls.listen_records |
| Downloading recordings | calls.download_records |
| Seeing calls in the lead card | calls.view_in_lead |
| Listening to recordings in the lead card | calls.listen_in_lead |
| Telephony settings | Administrator or superadministrator only |
#Launch checklist
- The provider details are in hand and the authentication method is confirmed
- Telephony is switched on in the global settings
- The trunk is created and active
- Every number is added without a plus sign and attached to the trunk
- Every operator has an extension
- Inbound ring groups exist and the ring timeout is at least 20 seconds
- Every number has a route
- An outbound number is set for the project or for operators
- “Apply everything” has been clicked
- A test outbound call went through, and the call and its recording appeared in the lead
- A test inbound call reached the group and opened the customer card
- The recording retention period matches your data policy