Click-to-dial, screen-pop and call logging between Asterisk/FreePBX and Odoo CRM. Built, installed and supported by ECOSIRE. One-time license from $299.00 USD for Odoo 17, 18, 19 — includes 12 months of updates and support.

Click-to-dial, screen-pop and call logging between Asterisk/FreePBX and Odoo CRM. Built, installed and supported by ECOSIRE.
No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.
The Asterisk / FreePBX VoIP CTI Connector wires your phone system directly into Odoo so every call becomes a tracked, actionable CRM event — with zero manual dialling and zero manual logging. This is a build-to-order Odoo module: ECOSIRE designs, develops, installs and hands over a connector tailored to your exact Asterisk or FreePBX setup, dial plan and CRM process. It is not an off-the-shelf apps.odoo.com download; there is no instant download, and no fake "one-click" promise you'll fight with later.
Click-to-dial button on any res.partner, crm.lead, helpdesk.ticket or sale.order record — originates the call through Asterisk/FreePBX to the agent's extension or softphone
Inbound caller screen-pop: matches caller ID against res.partner and crm.lead phone/mobile fields and opens the record automatically the moment the extension rings
Automatic call logging to a dedicated Odoo call-log model (direction, duration, extension, queue/ring-group, disposition, timestamps) linked back to the CRM record
Built-in browser softphone dialer with dial-pad, recents list, answer/hangup/hold/transfer controls, rendered as an OWL component in the Odoo web client
Secure real-time event stream over WebSocket (WSS) from the Asterisk Manager Interface (AMI) or ARI — Ringing, Answered, Hangup events reach Odoo with no polling
Call events posted to the record's mail.thread chatter so the full customer timeline (calls, emails, notes) lives in one place
Under the hood, the connector adds a lightweight Odoo module (its own __manifest__.py, models extending models.Model, security via ir.model.access.csv plus record rules, and OWL/QWeb views) that bridges the Asterisk Manager Interface (AMI) or ARI to Odoo over a secure WebSocket (WSS) channel. When an inbound call rings an agent's extension, Odoo matches the caller ID against res.partner / crm.lead phone and mobile fields and pops the matching record on the agent's screen before they even say hello. When a sales rep wants to dial a contact, a click-to-dial control on any partner, lead, opportunity or helpdesk record originates the call through your PBX to the agent's handset or softphone. Every call — inbound, outbound, missed, answered — is written to a dedicated call-log model with direction, duration, extension, queue, disposition and a link back to the originating record and the mail.thread chatter, so managers get real reporting instead of guesswork.
Because it is built for you, the module respects your reality: multi-company Odoo, per-user extension mapping, queue and ring-group awareness, call-recording URL storage, and compute fields (with @api.depends) for talk-time and answer-rate analytics. It runs on Odoo Community or Enterprise and is delivered against Odoo 17, 18 and 19. You also get a documented XML-RPC / JSON-RPC surface and automated actions so the call events can trigger follow-ups, activities or webhook flows in the rest of your Odoo. ECOSIRE handles the messy parts — AMI credentials, dial-plan hooks, WSS certificates, NAT and reverse-proxy config — and trains your team on the finished result.
Runs an Asterisk/FreePBX-based contact center and needs every inbound and outbound call automatically logged in Odoo with queue, agent, duration and disposition — so wallboards, SLA reports and agent performance are based on real data, not manual notes.
Wants reps to dial contacts and opportunities in one click and get an instant screen-pop on inbound calls, cutting wrap-up time and keeping the CRM timeline complete without anyone typing call notes from memory.
Owns the FreePBX/Asterisk stack and Odoo instance and needs a clean, documented integration — AMI/ARI over WSS, proper security scoping, extension mapping, and no fragile screen-scraping — that survives Odoo upgrades from 17 to 18 to 19.
Buy the license on ecosire.com and download the Asterisk / FreePBX VoIP CTI Connector module ZIP from your account dashboard.
Extract the ZIP into your Odoo custom addons folder on the server (or upload via Apps > Install from file on Odoo.sh / runbot).
Activate Developer Mode, open Apps, click Update Apps List, search for Asterisk / FreePBX VoIP CTI Connector, and press Install.
Open the new menu, paste your ECOSIRE license key, connect any external credentials (Shopify, Amazon, Stripe, etc.), and save.
Run the built-in connection test, sync your first 10 records, and schedule the recurring cron. Contact support if anything fails.
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Instant availability | Built & installed in 2–4 weeks, tailored to your PBX | Weeks to months of your own dev time | Instant install from apps.odoo.com | |
| Asterisk/FreePBX CTI (click-to-dial + screen-pop) | Yes — click-to-dial, inbound screen-pop, softphone | Only if you build it | Varies; often click-to-dial only | |
| Real-time events over secure WSS (AMI/ARI) | Yes — encrypted WebSocket, no polling | You must design and secure it | Sometimes polling-based or cloud-only | |
| Automatic call logging linked to CRM + chatter | Yes — dedicated call-log model, mail.thread posts | Build the models yourself | Basic logging, limited linkage | |
| Fits your dial plan, queues & multi-company | Yes — configured to your exact setup | Yes, but at your cost | Generic; edge cases often unsupported | |
| Security scoping (ir.model.access.csv + record rules) | Yes — per-user/company access enforced | Depends on your implementation | Baseline access rights only | |
| Odoo 17 / 18 / 19 compatibility maintained | Yes — covered in support window | You maintain it every upgrade | Depends on vendor's roadmap | |
| Source code ownership + training & support | Full source, docs, training, support window | You own it but support yourself | Usually no source; ticket-based support |
This is a build-to-order module with a typical lead time of 2–4 weeks from kickoff, depending on scope (single site vs. multi-queue, recording integration, custom automations). After purchase we run a short discovery call to capture your Asterisk/FreePBX version, dial plan, extension map and CRM matching rules, then develop, deploy to a staging Odoo, run UAT with your live extensions, and go live after your sign-off. There is no instant download — you're buying a tailored, installed and tested integration, not an off-the-shelf ZIP.
Every build includes a post-go-live support window covering bug fixes and configuration adjustments for the delivered scope, plus compatibility maintenance across Odoo 17, 18 and 19 so an Odoo upgrade doesn't break your CTI. You receive the full module source code, so you're never locked in. Extended support or a maintenance retainer, plus new-feature work, is available and quoted separately.
Yes. The connector talks to Asterisk via the Asterisk Manager Interface (AMI) or ARI, which FreePBX exposes as well, so it works with standard FreePBX and raw Asterisk deployments. On the Odoo side it runs on both Community and Enterprise editions and is delivered and tested against Odoo 17, 18 and 19. During discovery we confirm your exact versions and any PBX modules (queues, recording) so the build matches your environment.
When your extension rings, Asterisk emits an event over the secure WebSocket (WSS) bridge. The Odoo module normalises the caller ID (E.164/national) and searches res.partner and crm.lead phone and mobile fields for a match, then pops the record for the agent who received the call. If no match is found, it can optionally create a lead or activity from the unknown number so the opportunity isn't lost. Matching rules and normalisation are configured to your data during the build.
Yes. Real-time events flow over an encrypted WebSocket (WSS) channel, AMI/ARI credentials are stored server-side (never in the browser), and access to call-log data is governed by Odoo security — ir.model.access.csv access rights plus record rules that scope calls per company and per user. In a multi-company Odoo, each company's calls and extensions stay isolated. We also handle reverse-proxy, certificate and NAT configuration as part of deployment.
Yes. Call events are written to Odoo where automated actions and server actions can create follow-up activities, tag opportunities, escalate helpdesk tickets or fire webhooks. Because the module posts to the record's mail.thread chatter and exposes a documented XML-RPC / JSON-RPC surface, external dashboards, wallboards or dialers can read call data or originate calls programmatically. Custom automations are scoped during discovery.
Click-to-dial, screen-pop and call logging between Asterisk/FreePBX and Odoo CRM. Built, installed and supported by ECOSIRE.