Skip to main content
FreeSWITCH CTI Connector for Odoo — A build-to-order Odoo integration that links your FreeSWITCH PBX to Odoo CRM and Helpdesk — 1/1Illustrative preview

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.

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

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
`freeswitch.call.log` model (`models.Model`) with `@api.depends` computed talk-time, ring-time, direction, disposition, and `Many2one` links to partner and source document
Call recording link or attachment surfaced on the call log and the CRM/Helpdesk chatter timeline (one click to listen)
Automatic logging of missed and abandoned calls, with optional automated actions that create follow-up activities
Queue and agent statistics from `mod_callcenter` events aggregated into live and historical dashboards
`ir.model.access.csv` plus record rules so agents see only their own calls while supervisors see the full queue
Per-agent extension mapping (Odoo user to FreeSWITCH extension/registration) with a settings screen under Technical
Outbound-call trigger exposed over Odoo JSON-RPC / XML-RPC so wallboards or external dialers can originate calls
QWeb reports for call volume, talk-time, and agent performance, exportable to PDF
DTMF / call-transfer and hangup controls from within Odoo for answered calls (where your dialplan permits)
Clean `__manifest__.py` addon with no core monkey-patching, so it upgrades across Odoo 17.0/18.0/19.0 point releases
Works on both Odoo Community and Enterprise, with optional wiring into Helpdesk, Sales, and Field Service documents

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your Odoo.

  3. 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

CriterionECOSIRECustom BuildCompetitorOdoo Native
FreeSWITCH ESL supportNative ESL listener built for your switchPossible but you build and maintain itMost connectors target Asterisk/3CX, not FreeSWITCHNo FreeSWITCH bridge at all
Odoo version coverageBuilt for your 17.0 / 18.0 / 19.0Whatever you target and retestOften lags newest Odoo releaseOnly Odoo's own VoIP softphone
Inbound screen-popMatched to partner, lead, or ticket on ringRequires event-matching logic you writeBasic partner pop, rarely ticket-awareNone for external PBX
Call logging & recordingsAuto `freeswitch.call.log` + recording link in chatterCustom model and plumbing to buildVaries; recording links often absentManual notes only
Queue / agent statsmod_callcenter dashboards, live + historicalBuild aggregation and reports yourselfSeldom exposes FreeSWITCH queue dataNot available
Fit to your dialplanScoped to your extensions & number formatsFull control, full effortFixed schema you adapt toN/A
Support & ownershipSupport window + git repo handoverYou own all maintenanceVendor SLA, closed source, per-seat feesOdoo support for core only
Delivery modelBuild-to-order, one working week from scopeWeeks to months to design and buildInstant install but generic fitIncluded 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.

Request a quote

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

Request a Quotation

Tell us about your FreeSWITCH CTI Connector requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.