- Home
- Apps
- SaaS Tools
- FreeSWITCH CTI Connector for Odoo
Illustrative previewA build-to-order Odoo integration that links your FreeSWITCH PBX to Odoo CRM and Helpdesk for click-to-dial,
inbound screen-pop, and automatic call logging.
ECOSIRE scopes, builds, installs and supports it — this is not an off-the-shelf download.
What is FreeSWITCH CTI Connector for Odoo?
A build-to-order Odoo integration that links your FreeSWITCH PBX to Odoo CRM and Helpdesk for click-to-dial, inbound screen-pop, and automatic call logging. ECOSIRE scopes, builds, installs and supports it — this is not an off-the-shelf download. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.
Key Features
Built to order, done for you
No DIY setup — a working app, built, installed and supported by ECOSIRE.
- 1
You order
Start with a one-time build price. We scope it with you at kickoff.
- 2
We build & install
ECOSIRE builds, configures and installs it on your Odoo.
- 3
Go live + support
You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.
Technical Specifications
- Odoo Compatibility
- Odoo 17, Odoo 18, Odoo 19
- Editions
- Enterprise & Community
- License
- Licence confirmation required
- Python Requirement
- Python 3.10+
- Database
- PostgreSQL 12+
About this Product
If your agents run FreeSWITCH but your customer data lives in Odoo, every call means alt-tabbing: copy a number from a partner form, dial it by hand on a softphone, then type notes back into the CRM after hangup. Inbound calls are worse — the phone rings with just a caller ID and nobody knows which res.partner, open opportunity, or helpdesk ticket it belongs to until they've asked the customer to repeat themselves. Odoo's native VoIP is built around its own Enterprise softphone and the paid Axivox/OnSIP connectors; there is no supported bridge to a self-hosted FreeSWITCH switch, so the ESL event stream, your dialplan, and your call recordings stay completely invisible to Odoo. That gap is exactly where this connector lives.
ECOSIRE builds a dedicated Odoo module that opens a persistent Event Socket Library (ESL) connection to your FreeSWITCH server and translates its events into Odoo records. Click-to-dial is wired into partner, lead/opportunity, and helpdesk phone fields via an OWL widget that fires an originate command through ESL to ring the agent's extension first, then the customer. Inbound CHANNEL_CREATE/CHANNEL_ANSWER events are matched against res.partner.phone/mobile (with configurable E.164 normalization) so a screen-pop opens the right partner, opportunity, or ticket the instant the phone rings. Every call writes a freeswitch.call.log record — a proper models.Model with @api.depends computed talk-time, direction, agent, disposition, and Many2one links back to the partner and originating document — and if you record calls, the log carries a link (or attachment) to the recording so it is one click from the CRM timeline. Access is governed by ir.model.access.csv plus record rules so agents see their own calls while supervisors see the queue, and QWeb reports plus optional automated actions turn raw call events into follow-up activities and daily agent summaries.
Technically, the connector is a real Odoo addon with a clean __manifest__.py declaring its dependencies (base, mail, crm, optionally helpdesk/sale), Python ORM models, XML and OWL views, and security definitions — no core patches, so it upgrades cleanly. The ESL listener runs as a managed background worker (a long-lived connection with reconnect/backoff), and outbound actions are also exposed over Odoo's JSON-RPC/XML-RPC API so a wallboard or external dialer can trigger calls. Queue and agent statistics (mod_callcenter events, if you use it) are aggregated into dashboards for live and historical agent performance. We target Odoo 17.0, 18.0 and 19.0; the module works on Community and Enterprise, and where your edition has Helpdesk or Field Service we wire screen-pop and logging into those documents too.
Because every FreeSWITCH deployment is different — your dialplan, your extension scheme, whether you run mod_callcenter, how recordings are stored, and which Odoo apps agents actually work in — this is delivered build-to-order rather than as an instant download. We start with a short scoping call to map your dialplan, ESL credentials, number-normalization rules, and the exact CRM/Helpdesk flows you want. From confirmed scope, typical delivery is one working week: we build against your requirements, demo on a staging instance for UAT, then install on production with a rollback plan and hand over the git repository and documentation. You get source code for your Odoo version, a training session, and a post-go-live support window — no fabricated benchmarks, just a module built and supported by an Odoo engineering team.
What you get
- Installable Odoo module source code targeted to your exact version (17.0, 18.0, or 19.0)
- On-server installation and configuration, including ESL connection setup and agent extension mapping
- Technical documentation: architecture, model/field reference, ESL event mapping, and configuration guide
- End-user guide plus a live training session for agents and supervisors
- UAT on a staging instance with sign-off, plus a documented production rollback plan
- Post-go-live support window for defect fixes and configuration adjustments
- Private git repository handover with full commit history and tagged release
- Number-normalization and dialplan integration notes specific to your FreeSWITCH deployment
Who this is for
FreeSWITCH-based contact centre manager
Runs an in-house FreeSWITCH switch with mod_callcenter queues and needs agent screen-pop, call logging, and queue/agent stats surfaced inside Odoo CRM without replacing the telephony stack.
Odoo CRM / sales operations lead
Wants reps to click-to-dial from opportunities and partners and have every call auto-logged against the right record, so pipeline activity and follow-ups are accurate without manual note-taking.
VoIP / telephony engineer
Owns the FreeSWITCH dialplan and ESL security and needs a connector that respects existing extensions, recording paths, and number formats rather than forcing an off-the-shelf schema.
Helpdesk / support operations manager
Handles inbound support calls and needs the caller's ticket or partner to pop on ring, with call recordings linked to the ticket timeline for QA and dispute resolution.
How FreeSWITCH CTI Connector for Odoo Compares
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| FreeSWITCH ESL support | Native ESL listener built for your switch | Possible but you build and maintain it | Most connectors target Asterisk/3CX, not FreeSWITCH | No FreeSWITCH bridge at all |
| Odoo version coverage | Built for your 17.0 / 18.0 / 19.0 | Whatever you target and retest | Often lags newest Odoo release | Only Odoo's own VoIP softphone |
| Inbound screen-pop | Matched to partner, lead, or ticket on ring | Requires event-matching logic you write | Basic partner pop, rarely ticket-aware | None for external PBX |
| Call logging & recordings | Auto `freeswitch.call.log` + recording link in chatter | Custom model and plumbing to build | Varies; recording links often absent | Manual notes only |
| Queue / agent stats | mod_callcenter dashboards, live + historical | Build aggregation and reports yourself | Seldom exposes FreeSWITCH queue data | Not available |
| Fit to your dialplan | Scoped to your extensions & number formats | Full control, full effort | Fixed schema you adapt to | N/A |
| Support & ownership | Support window + git repo handover | You own all maintenance | Vendor SLA, closed source, per-seat fees | Odoo support for core only |
| Delivery model | Build-to-order, one working week from scope | Weeks to months to design and build | Instant install but generic fit | Included but no FreeSWITCH capability |
Frequently Asked Questions about FreeSWITCH CTI Connector
Is this an existing app I can download and install right now?
No. This is a build-to-order integration. ECOSIRE scopes it against your FreeSWITCH dialplan, extensions, and Odoo apps, then builds, installs, and supports it. It is not a pre-packaged apps.odoo.com download.
How long does delivery take?
Typical delivery is one working week from confirmed scope. We start with a short scoping call to map your dialplan, ESL credentials, number normalization, and the CRM/Helpdesk flows you want, then build, demo on staging for UAT, and install on production with a rollback plan. Timelines depend on complexity such as mod_callcenter usage and recording storage.
Which Odoo versions and editions do you support?
Odoo 17.0, 18.0, and 19.0, on both Community and Enterprise. Where your edition has Helpdesk, Sales, or Field Service, we can wire screen-pop and call logging into those documents too. The module is a clean addon with no core patching, so it upgrades cleanly.
How does it actually connect to FreeSWITCH?
Through the Event Socket Library (ESL). A managed background worker holds a persistent, reconnecting connection to your FreeSWITCH server, subscribes to channel and call-centre events for screen-pop and logging, and issues originate/transfer/hangup commands for click-to-dial and in-call controls. No changes to core Odoo are required.
Do you need to change our FreeSWITCH dialplan or recordings setup?
Usually only minor, documented adjustments — for example ensuring ESL access is enabled for the Odoo worker and that recording paths are reachable or linkable. We map your existing extensions, number formats, and recording storage during scoping and adapt the connector to them rather than forcing you to restructure your PBX.
What happens after go-live for support and updates?
Every engagement includes a post-go-live support window for defect fixes and configuration adjustments, and you receive the full git repository so your team can maintain or extend the module. We also offer ongoing support and version-upgrade retainers if you want ECOSIRE to keep it current across future Odoo releases.
Can external systems trigger calls too?
Yes. Outbound origination is exposed over Odoo's JSON-RPC / XML-RPC API, so a wallboard, external dialer, or custom automation can trigger click-to-dial through the same connector that the Odoo UI uses.
Related Modules

Forms • Components API
A build-to-order Odoo integration layer that gives your forms real interaction, reactivity and validation across both the OWL frontend and the Python/ORM backend. ECOSIRE designs, builds, installs and supports it for your Odoo 17/18/19 database.

GCash & Maya Wallet Payment for Odoo
A build-to-order Odoo payment provider that accepts GCash and Maya e-wallets directly at checkout via QR Ph and redirect, with automatic reconciliation to your invoices. ECOSIRE scopes, builds, installs, and supports it for your Odoo 17/18/19 store.
FreeSWITCH CTI Connector
A build-to-order Odoo integration that links your FreeSWITCH PBX to Odoo CRM and Helpdesk for click-to-dial, inbound screen-pop, and automatic call logging. ECOSIRE scopes, builds, installs and supports it — this is not an off-the-shelf download.
- Persistent FreeSWITCH ESL (Event Socket Library) connection with automatic reconnect and exponential backoff, run as a managed background worker
- Click-to-dial OWL widget on `res.partner`, `crm.lead`, and helpdesk phone fields that issues an ESL `originate` (ring agent extension first, then customer)
- Inbound screen-pop driven by `CHANNEL_CREATE`/`CHANNEL_ANSWER` events, matched to the correct partner, opportunity, or ticket before the agent answers
- Configurable E.164 / national number normalization so caller ID reliably matches `res.partner.phone` and `mobile` across formats

