Skip to Content

Odoo Messenger API

February 26, 2026 by
Odoo Messenger API
Rafiur Rahman Rafit
| No comments yet

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

  1. Copy odoo_messenger_api to your Odoo custom_addons directory.
  2. Install Python dependency: pip install firebase-admin
  3. Restart Odoo, then go to Apps and install Odoo Messenger API.
  4. 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 &rarr; Y &rarr; 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 &larr;):

# Network
listening-port=3478
tls-listening-port=5349

# Your server's public IP address &larr; CHANGE THIS
external-ip=YOUR_SERVER_PUBLIC_IP

# Authentication
lt-cred-mech
realm=yourdomain.com          # &larr; your domain or just your IP
server-name=yourdomain.com    # &larr; same as above

# Credentials (username:password for TURN)
user=odoo:StrongPassword123   # &larr; 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 &rarr; Y &rarr; 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 &rarr; Networking &rarr; Firewalls<br> - Vultr &rarr; Firewall rules<br> - Hetzner &rarr; Firewall<br> - AWS &rarr; Security Groups<br> - Linode/Akamai &rarr; 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 ... &larr; STUN is working
  • relay ... &larr; 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 &rarr; Activate Developer Mode), then go to:

Settings &rarr; Technical &rarr; Discuss &rarr; ICE Servers

Click New and add a STUN entry:

FieldValue
Server URIstun:stun.l.google.com:19302
TypeSTUN

Click New again and add your TURN entry:

FieldValue
Server URIturn:YOUR_SERVER_IP:3478
TypeTURN
Usernameodoo
PasswordStrongPassword123

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.

Sign in to leave a comment