Asterisk WebRTC Dialer
by Skill Jobs https://skill.jobs , Md Mahmudul Huq Topu https://skill.jobs$ 244.51
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
CRM (crm)
• Contacts (contacts) • Calendar (calendar) • Discuss (mail) |
| Lines of code | 219 |
| Technical Name |
odoo_asterisk_webrtc |
| License | OPL-1 |
| Website | https://skill.jobs |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
CRM (crm)
• Contacts (contacts) • Calendar (calendar) • Discuss (mail) |
| Lines of code | 219 |
| Technical Name |
odoo_asterisk_webrtc |
| License | OPL-1 |
| Website | https://skill.jobs |
Asterisk WebRTC Dialer â Click-to-Call for Odoo 18
A professional WebRTC softphone dialer inside Odoo that connects to your PBX (Asterisk/FreePBX) using SIP over Secure WebSocket (WSS). Call instantly from CRM Leads and Contacts using a floating dialer (systray) interface.
License: OPL-1
Key Features
- Floating dialer (Systray icon) available from any Odoo screen
- Click-to-call from CRM Leads and Contacts
- Secure SIP registration via WSS (WebSocket Secure)
- Outbound calls with DTMF keypad support
- Inbound calls with caller number display (when PBX sends caller ID)
- Call timer and recent call history inside the dialer
- Responsive UI suitable for smaller monitors
Use Cases
- Sales team calling leads directly from the CRM pipeline
- Support team calling customers from Contacts
- Remote users using browser-based extensions (no softphone install)
- Internal calling via IP PBX with WebRTC-ready extensions
How It Works
- User opens the dialer from the Odoo systray.
- User enters PBX connection details (WSS URL, SIP domain, extension, password) and clicks Connect.
- The browser registers to your PBX using SIP over WSS (secure WebSocket) and WebRTC audio.
- From a CRM Lead or Contact, click the call button to send a number to the dialer.
- The dialer places the call and shows call state, timer, and history.
Security requirement: Use HTTPS/WSS with a valid TLS certificate (recommended: Letâs Encrypt).
Requirements
- Odoo 18 (Community or Enterprise)
- Asterisk or FreePBX with WebRTC-enabled SIP extensions
- Secure WebSocket endpoint: wss:// reachable from user browsers
- Valid TLS certificate for PBX (avoid self-signed certificates)
- RTP media ports open for audio (PBX firewall/NAT configured)
Full Setup Guide (Asterisk / FreePBX)
Step 1 Enable HTTPS + a Valid TLS Certificate
WebRTC in modern browsers works best when your PBX is accessed securely. Ensure your PBX provides a valid certificate so your WebSocket URL can be wss://. If you are using a reverse proxy (Nginx/Apache), terminate TLS there and forward to Asterisk.
Step 2 Enable WSS (WebSocket Secure) on PBX
Your SIP stack must accept SIP registration and calls over WebSockets. For Asterisk, this is typically done with PJSIP transport configured for wss. The common port is 8089 (can be different in your installation).
Step 3 Create a WebRTC Extension (Asterisk PJSIP Example)
Below is an example configuration for a WebRTC-ready extension in pjsip.conf. Your environment may require adjustments (context, codecs, RTP range, NAT).
[transport-wss]
type=transport
protocol=wss
bind=0.0.0.0:8089
[1100]
type=endpoint
context=from-internal
disallow=all
allow=opus,ulaw,alaw
aors=1100
auth=1100
webrtc=yes
media_encryption=dtls
dtls_verify=fingerprint
dtls_setup=actpass
rtcp_mux=yes
ice_support=yes
rewrite_contact=yes
force_rport=yes
direct_media=no
[1100]
type=auth
auth_type=userpass
username=1100
password=YOUR_PASSWORD
[1100]
type=aor
max_contacts=1
remove_existing=yes
NAT: If users call from outside LAN, configure external/public IP and RTP port forwarding.
Step 4 Firewall / Ports
Ensure your PBX is reachable from the userâs browser. Typical ports (your environment may differ):
- WSS port (example: TCP 8089) or your reverse proxy HTTPS port (TCP 443)
- RTP media range for audio (example: UDP 10000â20000)
- If using TURN server: TURN ports as configured
Step 5 Configure the Dialer in Odoo
After installing the module:
- Open Odoo and locate the dialer icon in the top bar (systray).
- Click the gear icon to open configuration.
- Enter your settings:
- WSS URL: Example wss://pbx.example.com:8089/ws (path depends on your setup)
- SIP Domain: Example pbx.example.com
- Extension: Example 1100
- Password: SIP password for that extension
- Click Connect. Status should change to REGISTERED OK.
- Open a CRM Lead or Contact and click the phone/call action to dial.
Troubleshooting
- Wrong extension/password
- Incorrect WSS URL or port/path
- TLS certificate invalid/expired
- PBX not listening on WSS or blocked by firewall
- RTP ports blocked (open UDP RTP range)
- NAT not configured (external IP / local networks)
- Codec mismatch (enable OPUS)
- Microphone permission denied in the browser
Screenshots
Add your screenshots in this folder and update the filenames below.
Support: dev2@skill.jobs
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module