![]()
Odoo Messenger
Production-grade mobile app for Odoo 18 & 19
by Dot BD Solutions Limited · Odoo Ready Partner
Real-Time ChatVideo & Voice CallsBusiness DashboardPush NotificationsFile & Voice NotesOdoo 18 & 19
Introducing Odoo Messenger
Odoo Messenger is a production-grade odoo messenger mobile application built natively for Odoo 18 and 19. It transforms your Odoo server into a complete mobile workspace — combining real-time team chat, peer-to-peer video and audio calls, business module dashboards, and push notifications into one seamless, secure Android/iOS app.
This Odoo module (odoo_messenger_api) is the backend companion that powers the odoo messenger app.
Key Features
💬
Real-Time Chat
Group channels and direct messages with threaded replies, emoji reactions, pinned messages, message editing/deletion, and HD voice note recording.
📹
Video & Audio Calls
peer-to-peer calls with mute, camera toggle, front/rear switch, HD quality mode, lock-screen incoming call notifications, and ringtone support.
📊
Business Dashboards
Instant summaries for HR, Attendance, Projects, CRM, Sales, Expenses and Purchase — all on a single mobile screen, pulling live data from your Odoo server.
📎
File & Media Sharing
Share images, videos, documents and voice recordings. Files upload via multipart POST to Odoo and are stored natively in the Odoo IR attachment system.
📲
Push Notifications
👥
Team Directory
Full Odoo partner directory with profile avatars, one-tap DM creation and direct call initiation from the contacts screen.
🏢
HR & Attendance
View leave allocations, upcoming public holidays, employee profile information, and a 30-day daily attendance history with check-in/check-out times.
🔒
Security & Privacy
Biometric app lock, Odoo session-based authentication, permission-aware design, and strict ACL enforcement on all custom API endpoints.
Installation
- Copy odoo_messenger_api to your Odoo custom_addons directory.
- Install Python dependency: pip install firebase-admin
- Restart Odoo, then go to Apps and install Odoo Messenger API.
- Configure the odoo messenger app with your Odoo server URL and login credentials.
WebRTC Audio & Video Call Setup (TURN Server)
While Odoo Messenger API handles the signaling (SDP offer/answer exchange), WebRTC requires a TURN server to reliably route audio and video traffic across different networks (NAT traversal).
Option 1: Self-Hosted Server (VPS / Dedicated)
If you host Odoo on your own VPS or a separate Ubuntu 20.04/22.04 server, follow this full step-by-step guide to set up coturn:
Step 1 — Connect to Your VPS
On your PC, open a terminal (or PuTTY on Windows):
ssh root@YOUR_SERVER_IP
Step 2 — Install coturn
sudo apt update<br>sudo apt install coturn -y
Step 3 — Enable coturn Service
By default coturn is disabled. Enable it:
sudo nano /etc/default/coturn
Find #TURNSERVER_ENABLED=1 and remove the #. Save: Ctrl+X → Y → Enter.
Step 4 — Configure coturn
Find your server public IP by running: curl ifconfig.me
sudo nano /etc/turnserver.conf
Delete everything in the file and paste this (replace values marked with ←):
# Network listening-port=3478 tls-listening-port=5349 # Your server's public IP address ← CHANGE THIS external-ip=YOUR_SERVER_PUBLIC_IP # Authentication lt-cred-mech realm=yourdomain.com # ← your domain or just your IP server-name=yourdomain.com # ← same as above # Credentials (username:password for TURN) user=odoo:StrongPassword123 # ← change StrongPassword123 # Media relay ports min-port=49152 max-port=65535 # Logging log-file=/var/log/coturn.log verbose # Security fingerprint no-multicast-peers
Save: Ctrl+X → Y → Enter.
Step 5 — Open Firewall Ports
sudo ufw allow 3478/tcp<br>sudo ufw allow 3478/udp<br>sudo ufw allow 5349/tcp<br>sudo ufw allow 5349/udp<br>sudo ufw allow 49152:65535/udpCloud Firewall Check (Most Likely Cause of Failure):
ufw alone is not enough on cloud providers. You must log into your hosting provider's dashboard and create inbound rules specifically allowing UDP 3478 and UDP 49152-65535 from All IPv4/IPv6. If you get a "Code 701: allocate request timed out" during ICE testing, your hosting provider's outer firewall is blocking the media ports.<br><br> Where to find this:<br> - DigitalOcean → Networking → Firewalls<br> - Vultr → Firewall rules<br> - Hetzner → Firewall<br> - AWS → Security Groups<br> - Linode/Akamai → Firewalls
Is opening UDP 49152-65535 a security risk?
No. This is the standard ephemeral port range used by WebRTC. Coturn dynamically opens and closes these ports for peer-to-peer data relays only, and authentication is required to generate relay candidates. Opening these UDP ports on the firewall is standard industry practice.
Step 6 — Start coturn & Check Logs
sudo systemctl enable coturn<br>sudo systemctl restart coturn<br>sudo systemctl status coturn
You should see active (running) in green. If not, or to check real-time system logs for coturn (e.g., if ICE tests fail), run:
sudo journalctl -u coturn -n 50 --no-pager
Step 7 — Test coturn is Working
Go to this website in your browser:<br> https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
Click Add Server, fill in:
- TURN URI: turn:YOUR_SERVER_IP:3478
- Username: odoo
- Password: StrongPassword123
Click Gather candidates. You should see lines like:
- srflx ... ← STUN is working
- relay ... ← TURN is working ✅
If you see relay — coturn is working perfectly.
Step 8 — Add TURN Server to Odoo
Login to your Odoo admin panel, enable Developer Mode (Settings → Activate Developer Mode), then go to:
Settings → Technical → Discuss → ICE Servers
Click New and add a STUN entry:
| Field | Value |
|---|---|
| Server URI | stun:stun.l.google.com:19302 |
| Type | STUN |
Click New again and add your TURN entry:
| Field | Value |
|---|---|
| Server URI | turn:YOUR_SERVER_IP:3478 |
| Type | TURN |
| Username | odoo |
| Password | StrongPassword123 |
Save both entries.
Option 2: Odoo.sh or Restricted Hosting
The Odoo.sh Problem:
Odoo.sh is a managed platform (PaaS). You do not have "root" access to install external background services (like coturn), and you cannot open the thousands of UDP ports required for WebRTC media streams. Installing this Odoo Messenger module will not automatically set up a TURN server for you, as the environment strictly prohibits it.
The Solution:
- Recommended: Rent a cheap $5/month Linux VPS (from DigitalOcean, Hetzner, Vultr) exclusively to run coturn. Then, inside your Odoo.sh admin panel, go to Settings → Technical → Discuss → ICE Servers and add the IP and credentials of your external $5 server.
- Alternative: Subscribe to a managed Cloud TURN provider (e.g., Twilio Network Traversal, Metered TURN) and insert those provided credentials into your Odoo.sh ICE Servers list.
Dot BD Solutions Limited
Certified Odoo Ready Partner · Bangladesh
We are a certified Odoo Ready Partner specialising in ERP implementation, custom module development, training and digital transformation for businesses across Bangladesh and beyond. Odoo Messenger is our flagship mobile product — built with years of Odoo expertise and a genuine need for first-class mobile collaboration inside Odoo.
📧Emailinfo@dotbdsolutions.com💬WhatsApp+880 1810-025181🌐Websitewww.dotbdsolutions.com📚Learninglearn.dotbdsolutions.com🎥YouTube@DotBdSolutionsLimited👤Facebookfacebook.com/dotbdsolutions💼LinkedInlinkedin.com/company/dot-bd-solutions
Author: Rafiur Rahman Rafit · Company: Dot BD Solutions Limited
Licensed under AGPL-3 (GNU Affero General Public License, Version 3)
Copyright © 2025 Dot BD Solutions Limited. All rights reserved.