TIP: You can type at any time to perform a new search.
Voip OCA
voip_oca · OCA/connector-telephony
- Repository
- OCA/connector-telephony · module folder · Try on Runboat
- Module version
- 1.0.1
- Category
- Productivity/VOIP
- Folder size
- 2.12 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/connector-telephony
- Last tracking update
- 2026-08-07 09:06:27
- Authors
- Odoo Community Association (OCA), Dixmit
- Maintainers
- Odoo Community Association (OCA), Dixmit
- Committers
- Enric Tobella, Carlos Lopez, OCA-git-bot, oca-ci, Luis Rodriguez
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- None
- Description
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.
Code Analysis ⓘ
Views touched (6)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_users_form |
res.users | form | Inherits base.view_users_form | |
view_users_form_simple_modif |
res.users | form | Inherits base.view_users_form_simple_modif | |
voip_call_list_view |
voip.call.list | voip.call | list | New |
voip_pbx_form_view |
voip.pbx | form | New | |
voip_pbx_list_view |
voip.pbx | list | New | |
voip_pbx_search_view |
voip.pbx | search | New |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (7)
New fields (0)
No new fields.
Public methods (1)-
session_info(self)
New fields (2)
-
main_partnerCharcompute='_compute_main_partner_id' -
main_partner_idMany2one → res.partnercompute='_compute_main_partner_id'string='Main Contact' args: 'res.partner'
-
get_call_activities(self, _search, offset, limit)@api.model
New fields (1)
-
activity_main_partner_idMany2one → res.partnercompute='_compute_activity_main_partner_id'string='Main Contact' args: 'res.partner'
-
get_activity_main_partner_id(self)
New fields (0)
No new fields.
Public methods (3)-
format_partner(self) -
get_activity_main_partner_id(self)Override to return the partner itself. -
voip_get_contacts(self, _search, offset, limit)@api.model
New fields (3)
-
voip_passwordChar -
voip_pbx_idMany2one → voip.pbxargs: 'voip.pbx' -
voip_usernameChar
-
SELF_READABLE_FIELDS(self)@property -
SELF_WRITEABLE_FIELDS(self)@property
New fields (9)
-
activity_nameCharhelp='The name of the activity related to this phone call, if any.' -
end_dateDatetime -
partner_idMany2one → res.partnerindex=True args: 'res.partner', 'Contact' -
pbx_idMany2one → voip.pbxargs: 'voip.pbx', 'PBX' -
phone_numberCharrequired=True -
start_dateDatetime -
stateSelectiondefault='calling'index=True args: [('aborted', 'Aborted'), ('calling', 'Calling'), ('missed', 'Missed'), ('ongoing', 'Ongoing'), ('rejected', 'Rejected'), ('terminated', 'Terminated')] -
type_callSelectiondefault='outgoing' args: [('incoming', 'Incoming'), ('outgoing', 'Outgoing')] -
user_idMany2one → res.usersdefault=<expr>index=True args: 'res.users', 'Responsible'
-
accept_call(self) -
create_call(self, values)@api.model -
format_call(self) -
get_recent_calls(self, _search, offset, limit)@api.model -
reject_call(self) -
terminate_call(self)
New fields (4)
-
domainChardefault='localhost' -
modeSelectiondefault='test'string='Environment' args: [('test', 'Test'), ('prod', 'Production')] -
nameCharrequired=True -
ws_serverChardefault='ws://localhost'
No public methods.
Loading…
Loading…