This module allows the use of VOIP directly from Odoo.
It relies on SIP.js to connect to the PBX using a websocket directly from the browser.
Odoo server will not connect directly to the PBX server, but will have users and passwords stored.
In order to use this module, you need to have a PBX server that allows websocket connection. Otherwise, you need to use a proxy that will be the bridge between Odoo and PBX. Websocket connection is required because browsers prefer this kind of connections. Also, this is an standard connection defined on RFC 7118 by IETF. Several PBX servers support this protocol.
auto_awesome What this module does
AI-generated from the code · Odoo 19.0Make and receive phone calls directly inside Odoo using a web-based softphone connected to your PBX. Call history, contacts and phone activities are available in the softphone, and calls can be logged automatically.
This module adds a softphone to Odoo so users can place and answer calls from the browser without leaving Odoo. Each user is configured with a PBX server, a username and a password on their user form, under a new VOIP tab.
A small phone widget appears in the top bar. From it users can dial numbers with a numpad, search contacts and recent calls, see phone activities, accept, reject, hang up, mute, hold and transfer calls. Clicking a phone number on a contact or a phone field can start a call.
Every call is stored as a voip.call record with phone number, direction (incoming/outgoing), state (calling, ongoing, terminated, rejected, missed, aborted), start and end dates, the responsible user and the related contact. If the number matches an existing contact, the call is linked automatically. A Calls list is available under the Technical menu.
PBX servers are managed in a voip.pbx model with name, domain, websocket server and environment (test or production). Only system administrators can create or change PBX servers; all users can read them. Calls are only really connected when the PBX is set to production mode.
The module also adds a Main Contact field on activities and on records that have a contact, so the softphone can show the right person for phone activities.
Depends on
Menus it adds
Models and fields (7)
- ir.http · extends an existing model
- voip.pbx · new modelmode (Environment), name, domain, ws_server
- res.users · extends an existing modelvoip_pbx_id, voip_password, voip_username
- voip.call · new modelstate, pbx_id, user_id, end_date, type_call, partner_id, start_date, phone_number, activity_name
- res.partner · extends an existing model
- mail.activity · extends an existing modelmain_partner, main_partner_id (Main Contact)
- mail.activity.mixin · extends an existing modelactivity_main_partner_id (Main Contact)
Text generated by AI (DeepSeek) from reading the Odoo 19.0 code on GitHub; it may contain mistakes, so check the code before deciding. The module is very large and only part of the code was read. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 3 confirmed, 6 with no information of 9 versions.
Sources · Odoo 19.0
Confirmed on 2026-11-03 in branch 19.0 of OCA/connector-telephony.
terminal Installation and usage
OCA documentation · Odoo 19.0Configuration
Source · Odoo 19.0Create the PBX Connection
- Access in Debug mode.
- Go to
Settings > Technical > Discuss > PBX Servers. - Create a PBX server and define the domain name and websocket link.
You can set it as Test or Production. Test environment will never contact the PBX server.
Configure users
For each user, we need to define their PBX server, user and password if we want it to be able to access the PBX server and make calls. To do this, we have two options:
- Admin users can define the information directly in the user form for each user. For this,
go to Settings > Users & Companies > Users and go to VOIP tab and set the information.
- By other hand, each user can go to Preferences and modify the information in the VOIP tab.
Usage
Source · Odoo 19.0Automatically the system will login into the PBX server once we enter odoo with our user. If we are on a test environment, no login is made and the libraries of SIP are not loaded.
Once we are logged, we can use the VOIP widget in order to call directly. In order to open all the selectors, we can press the softphone button on the top bar...
...and the bottom widget will be opened.
The widget can be hidden by clicking on the top bar.
Clicking the top bar of the widget again will make it reappear.
We can make a call in 2 ways:
- Clicking the partner's number in the partner view, which appears in green.
- Opening the numpad located at the bottom left of the widget, entering the desired number,
and clicking the call button located at the bottom right of the widget. Inside a call, we can transfer the call, end the call, mute the call and put the call on Hold.
The widget offers 3 sections:
- Recent calls: Here we have a list of the last calls made, along with additional call information such as call date and time, status, or duration.
- Call Activities: Here we have a list of call activities assigned to us in any Odoo document(crm.lead, sale.order...) that has expired or is about to expire and needs to be completed.
- Contacts: Lastly, we have quick access to all stored partners in our Odoo who have a telephone number set.
Clicking on any record in these three sections gives us access to the related partner, allowing us to view their information and make a call.
In the partner view of the widget, we can perform three actions:
- Send an email to the partner.
- Access the partner's form in Odoo.
- Schedule an activity.
If the partner is unknown and not stored in Odoo, some actions may not be available. This can occur when accessing a recent call made to a contact that is not stored for example. However, in this case, we allow the action to store the contact in Odoo from recent calls, clicking on the plus icon button.
Additionally, if we access a contact through the activity section, we have four more available actions:
- Go to the related document, such as a lead or a sale.
- Mark the activity as done.
- Edit the activity.
- Cancel the activity.
In any tab, we can perform a search by typing a keyword in the search bar, such as the contact's name or phone number.
Also, the system allows to receive call. In that case, the system will try to find the related partner and will open the widget automatically.
No verified information in OCA: Installation.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.