SMS Gateway - Send SMS from your phone; Replace the Odoo IAP
by Michal Varys https://michalvarys.eu$ 205.06
In-App Purchases| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Point of Sale (point_of_sale)
• SMS Marketing (mass_mailing_sms) • Discuss (mail) • Inventory (stock) • Invoicing (account) • Email Marketing (mass_mailing) • Contacts (contacts) |
| Lines of code | 3530 |
| Technical Name |
vs_sms_gateway |
| License | OPL-1 |
| Website | https://michalvarys.eu |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Point of Sale (point_of_sale)
• SMS Marketing (mass_mailing_sms) • Discuss (mail) • Inventory (stock) • Invoicing (account) • Email Marketing (mass_mailing) • Contacts (contacts) |
| Lines of code | 3530 |
| Technical Name |
vs_sms_gateway |
| License | OPL-1 |
| Website | https://michalvarys.eu |
SMS Gateway — Send SMS via Android Phone
Stop paying per-message IAP fees. Use your own Android phone as an SMS gateway and send thousands of messages from your SIM card.
The Problem
Odoo charges you for every single SMS through their IAP credit system.
For businesses sending hundreds or thousands of SMS per month — order confirmations, marketing campaigns, appointment reminders — IAP costs add up quickly. You already pay your mobile operator for an SMS plan. Why pay again?
Third-party SMS APIs (Twilio, Vonage, etc.) are cheaper than IAP but still charge per message, require API setup, and add another vendor to manage. For local businesses sending SMS to domestic numbers, a SIM card in your drawer is the cheapest option by far.
This module turns any Android phone into a full SMS gateway for Odoo — no IAP credits, no third-party API, no per-message cost.
How It Works
Step 1: Register Your Phone
Add your Android phone in Odoo, generate an API key, and scan the QR code with the companion app. Pairing takes 30 seconds.
Step 2: Send SMS as Usual
Use Odoo SMS features normally — individual messages, mass mailings, automated actions. The module intercepts outgoing SMS and routes them to your phone instead of IAP.
Step 3: Track Delivery
Your phone sends the SMS from its SIM card and reports delivery status back to Odoo in real time. Every message is tracked with full mailing.trace integration.
Send Campaign from Your Phone in 3 Steps
Phone Management & Setup
SMS Campaign Wizard
SMS Campaign Templates
Key Features
| Feature | Description |
|---|---|
| Multiple Phones | Register as many Android phones as you need. The module distributes messages across them automatically with load balancing (least-loaded phone first). |
| Dual SIM Support | Phones with two SIM cards can use either number. Assign a specific SIM per campaign or let the phone choose automatically. |
| QR Code Pairing | Generate an API key and QR code in Odoo. Scan it with the companion app — no manual URL/key entry needed. |
| Daily & Monthly Limits | Set per-phone daily and monthly SMS caps to stay within carrier limits. Counters reset automatically. Configurable billing period start day. |
| Rate Limiting | Control SMS-per-minute rate to avoid carrier throttling. Messages queue automatically and send at the configured pace. |
| Domain Filtering | Route SMS to specific phones based on partner attributes. Example: Czech numbers go to Phone A, Slovak numbers to Phone B. |
| FCM Push Wake | When new SMS are queued, the module sends a Firebase push notification to wake the phone app instantly — no polling delay. |
| Heartbeat Monitoring | Phones report battery level, signal strength, and online status. Automatic offline detection after configurable timeout. |
| Stuck SMS Recovery | SMS stuck in processing for more than 30 minutes are automatically reset to pending and re-queued. |
| Segment-aware Counting | Limits are counted in SMS segments (not messages) so multi-part SMS are tracked accurately. |
Mass Mailing Integration
The module plugs directly into Odoo SMS Marketing (mass_mailing_sms). Every feature you already know works — just without IAP costs.
| Feature | How it works with SMS Gateway |
|---|---|
| SMS Campaigns | Create campaigns in Odoo Mass Mailing as usual. Select "SMS Gateway" as provider — messages are routed to your phones. |
| Marketing Segments | Built-in segments: "No order in 3 months", "Single order only", "New customers (30 days)". Or create your own with custom domain filters. |
| Marketing Templates | Reusable SMS templates with placeholder support ({{object.name}}, {{object.email}}, etc.). Set default limits and segments per template. |
| Recipient Exclusion | Automatically skip partners who received an SMS in the last N days. Prevents over-contacting. Configurable per campaign. |
| Unsubscribe Handling | Long Odoo unsubscribe URLs are replaced with a short "odhl. sms: STOP" text to save SMS characters. Respects blacklist. |
| Delivery Tracking | Full mailing.trace integration. See sent/error/pending counts per campaign. Campaign auto-completes when all SMS are delivered. |
| Pause & Resume | Pause a running campaign at any time. Queued SMS wait until you resume. No messages are lost. |
IAP vs. SMS Gateway
| Aspect | Odoo IAP SMS | SMS Gateway (this module) |
|---|---|---|
| Cost per SMS | ✗ IAP credits (varies by country) | ✓ Your SIM plan (often unlimited or flat-rate) |
| Setup | Buy credits, configure IAP account | ✓ Scan QR code with your phone |
| Sender number | ✗ Random / shared number | ✓ Your own phone number (recipients know you) |
| Multiple phones | ✗ Not applicable | ✓ Unlimited phones with load balancing |
| Works offline | ✗ Requires internet to IAP service | ✓ Phone queues and sends when connected |
| Delivery tracking | Basic | ✓ Real-time status with mailing.trace |
| Mass mailing | ✓ Built-in | ✓ Full integration |
REST API for the Mobile App
The module exposes a simple REST API that the companion Android app uses to poll for pending SMS, confirm delivery, and send heartbeats. The API is secured with per-phone API keys (X-API-Key header).
- GET /sms-gateway/pending — fetch queued SMS for this phone
- POST /sms-gateway/confirm — report delivery status (sent/error)
- POST /sms-gateway/heartbeat — update online status, battery, signal
- POST /sms-gateway/register-fcm — register FCM token for push wake
- POST /sms-gateway/inbound — forward received SMS to Odoo
Companion Android app available separately (free, open source).
Quick Setup
- Install the module — it adds a new "SMS Gateway" menu under Settings
- Add a phone — enter a name, phone number, and click "Generate API Key"
- Scan the QR code — open the companion Android app and scan
- Enable "Force SMS Gateway" in Settings — all outgoing SMS will use your phones instead of IAP
- Send SMS — from any Odoo app (Contacts, Sales, Marketing) as usual
Real-world Screenshots
Mobile App — sending campaigns from the gateway phone
Phone Setup — limits, statistics, and multi-phone load balancing
Template Configuration — pre-configure everything for your team
Who Is This For?
- E-commerce businesses — send order confirmations, shipping updates, and marketing SMS without IAP costs
- Local businesses — appointment reminders, promotional campaigns to domestic customers
- Multi-location companies — different phones for different regions, each with its own local number
- Marketing teams — run SMS campaigns with segments, templates, and contact-frequency controls
- Anyone paying too much for Odoo IAP SMS credits
Requirements
Odoo 18.0 Community or Enterprise
Depends on: sms, mass_mailing_sms, phone_validation, sale, point_of_sale
Python: qrcode (installed automatically)
Android companion app (free, open source)
Support
Need help? Contact us at info@michalvarys.eu
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