PhoneDesk
The platform

Your PBX stays yours.
Control lives in Odoo.

Four parts, one system: your PBX makes the calls, Odoo runs it, the browser is the handset, the voice AI picks up. Every call becomes a permanent Odoo record - with consent, a retention period and a complete audit trail.

52 features out of the box21 switched on at commissioning4 building blocksSupport from Germany
Call routing as an Odoo record Phone in the browser The AI picks up Consent & audit trail
01The PBX - Asterisk, driven from the server instead of from a browser tab
02The control board in Odoo - call routing with dry run, verification and automatic rollback
03The browser phone - dial from any Odoo record, every call becomes a record
04The voice AI - picks up, talks, summarises, hands over to a person
Why this platform

The phone is the last ungoverned system in the building.

Nobody knows who last changed the number forwarding. Nobody can undo it. And what was discussed on the phone only exists where somebody typed it up. PhoneDesk brings telephony into Odoo: call routing becomes an auditable record, every call becomes a record, every access is in the audit trail.

Every routing change with dry run and rollback
A new extension in one click
Every call in the customer record
The platform tour

Four parts, each with one job

The PBX connects the calls. Odoo runs it. The browser is the handset. The AI picks up when nobody can. Each part feeds into the next - here's what PhoneDesk looks like day to day.

1

The PBX

Asterisk stays yours. PhoneDesk drives it from the server.

Call control on the server

Transfer, consultation and conference are instructions to the PBX, not tricks in the browser. The PBX carries them out, even if a window closes at the desk.

Consultation and transfer

Put the caller on hold, speak to your colleague, then put them through - from the browser phone and from the desk phone with the key sequence *2. Switched on at commissioning.

Conference with several lines

Pull more colleagues into a live call, six by default, sixteen at most. A display in the phone shows who is actually in the conference. Switched on at commissioning.

PBX health at the press of a button

One click tells you whether the PBX, the control channel and the event channel are alive - with version and last reload. A scheduled job checks this every 15 minutes and speaks up when something goes down.

Credentials encrypted

SIP passwords and PBX secrets sit encrypted in Odoo and can be rotated - without anyone having to open a configuration file on the server.

Desk phone or browser

A seat is created once in Odoo and covers both: the phone in the browser and the SIP handset on the desk. Consultation and conference work from the desk phone too, via *2 and *3.

2

The control board in Odoo

Which number rings where is a record - not an SSH session.

Call routing as an Odoo record

Contexts, extensions, phone numbers and trunks live in Odoo forms. Who may make a change is governed by a role. What was changed is in the history.

Dry run before deployment

Before every change the PBX checks the generated configuration without applying it. If the dry run fails, nothing is deployed at all - and no half-finished state can arise.

Read-back check and rollback

After deployment PhoneDesk reads back from the running PBX what is actually there. If it differs, the system restores the last state by itself and marks the deployment as rolled back.

An extension at the press of a button

An employee becomes a seat with their own extension and their own credentials. The button is repeatable and refuses to run when something is missing - instead of creating half an extension.

History and drift detection

Every deployment is a line with timestamp, person and checksum that nobody edits afterwards. Three scheduled jobs report when someone has changed the PBX behind Odoo's back.

Read back instead of retyping

A PBX configuration generated by PhoneDesk can be pulled back into Odoo records byte for byte - verified, all or nothing. The PBX secret is rotated from Odoo too, with a rollback if the rotation fails.

Every change to the PBX takes the same path: generate → dry run → deploy → read back → roll back automatically on any deviation - and leaves a line nobody deletes.
See the path live
3

The browser phone

A handset over every Odoo screen - and every call becomes a record.

A phone over every window

A phone in the top bar that floats over every Odoo screen: open, minimise, close. Alongside it a full-screen workspace with dialpad, contacts, history and settings.

Dial from any record

Next to every phone number in Odoo there is a handset icon - on the contact, the lead, the ticket, the order. One click dials. Nobody copies a number by hand any more.

The caller has a name

The incoming number is resolved to the matching Odoo contact before the second ring. If it is ambiguous, PhoneDesk does not guess - it says so.

A status the server vouches for

Ringing, active, on hold, ended: the call status is kept on the server and checked against a fixed transition rule. The browser cannot fake it.

A reload ends nothing

An F5 in the middle of a call does not lose it - the call is still there afterwards and can be hung up. Registration, reachability and voice quality are visible in the phone.

Notes and new contacts

Notes typed during the call land on the call record when you hang up. In the workspace, an unknown caller becomes an Odoo contact in two clicks.

Voice quality, jitter and packet loss are recorded on every call. If the browser or the connection is not up to it, the phone warns you by itself - before the first call, not after it.

4

The voice AI

It picks up, holds a conversation and hands over to a person.

The AI picks up and speaks

A caller dials your number, the PBX hands over to the AI, and the AI greets them and holds a conversation: speech recognition, language model and voice run as one stream.

Your greeting, your wording

You write the sentence the AI answers with yourself, per company - with placeholders such as the caller's name. No recording studio, just a field on a form.

It does not listen to itself

The AI listens, answers, listens again. Its own voice comes back down the line - it is never transcribed. Without that block, a voice bot ends up talking to itself.

Memory across the whole call

Twenty turns stay in context, follow-up questions are understood. The answer starts sounding before it is fully thought out - voice and language model run into one another.

Handover to a person

On request the AI calls the colleague in charge, tells her that an AI is on the line, and only connects once she agrees. Switched on at commissioning.

Built to run on your own premises

As delivered, speech recognition, language model and voice are set to local models. The architecture is designed to run on your own premises: the services run next to your PBX, not in someone else's cloud. On the PhoneDesk Box the models run on your own machine.

Call content appears in no log file: the service records metrics, not wording - and refuses the opposite setting outside a development environment.

Consultation and transfer

Speak to your colleague first, then put the caller through

The caller is held, you settle the matter one to one, and only then are the two joined. The PBX carries out the instruction, not the browser - a window that falls shut disconnects nobody here.

This is the difference between a blind hand-off and a proper one. You find out first whether your colleague can take the matter on at all. If she cannot, you pick the caller back up instead of leaving them ringing on someone else's handset. From a desk phone the same path runs over the key sequence *2.

  • You press consultation, dial the extension and speak undisturbed. The caller hears hold music.
  • The PBX holds both legs, checks company membership once more and takes your line out of the call when you transfer.
  • What is left behind is a call record on the contact: direction, duration and the notes you typed during the call.

Instead of handing over you can pull more colleagues in - six lines by default. The phone shows who is really in the conference. Consultation, transfer and conference are switched on at commissioning.

odoo · PhoneDesk · call 10:26 · Ms Vogt
Could you put me through to accounts? It's about invoice RE-2291.
Consultation running · the caller is waiting Ms Vogt is on hold and hears music. You are now speaking privately to Mr Reuter · 212 - she hears none of this part.
Reuter here. I have the invoice in front of me - go ahead and put her through.
Connected · your handset has dropped out
  • The two sides are talking to each other, your line has been taken out of the call.
  • The same path from a desk phone: *2 212 # - with no browser at all.
  • Instead of handing over, pull more colleagues in: a conference, six lines by default.
The call stays a record on the contact · switched on at commissioning
The path of one change

Generate, dry run, deploy, read back

A number should ring somewhere else from Monday. That is not an SSH session but a form, a dry run and an approval - and at the end a line nobody deletes. If somebody later edits the PBX by hand, a scheduled check reports it instead of quietly overwriting it.

Day to day that means the change is made by the colleague who knows the extension, not by the one person with server access. Who may make it is governed by a role. And if someone asks in four months why the main number runs differently, the answer is in the history.

  • You enter the change in the Odoo form and see the difference beforehand.
  • The PBX checks the generated configuration dry. If the dry run fails, nothing is deployed - a half-finished state cannot arise at all.
  • After deployment PhoneDesk reads back from the running PBX. If anything deviates, the previous state returns by itself.

What is left behind is a deployment with timestamp, person and checksum that cannot be edited afterwards. The state before it stays restorable. Three scheduled checks compare PBX and Odoo on their own.

odoo · PhoneDesk Control Board · main dialplan
From Monday the 040 number should ring on extension 212, not on 200 any more.
Dry run passed · approval required Generated from the Odoo form: 1 context, 2 extensions. The PBX has checked the configuration without applying it. Had the dry run failed, there would be no deployment - and not even a record of one.
DeployView the diff
Deployed · read back, no deviation
  • Written, reloaded, read back from the running PBX - a success message alone does not count as proof here.
  • Had the comparison differed, the previous state would have returned by itself.
  • Deployment no. 118 09:41 · M. Roth · checksum a7f3…9c1
History append-only · the state before it stays restorable
Drift watch · 11:15 Since 11:02 there is a line on the PBX that did not come from Odoo - somebody worked on the box by hand. PhoneDesk reports it in the history and overwrites nothing on its own. Three scheduled checks compare PBX and Odoo without anyone starting them
After hanging up

The call writes itself into the customer record.

The caller hangs up, and a few seconds later the result is where your team is already looking: on the contact. Summary, full transcript, sentiment and topics - stored encrypted and visible only to the roles allowed to see it.

  • 1 Summary and transcript land as a card in the contact's history - expandable without leaving the record.
  • 2 Sentiment, urgency and topics sit on the call record. Switched on at commissioning.
  • 3 If the AI mishears, a person corrects the line - with the checksum before and after in the audit trail.
  • 4 The transcript can be downloaded as a file, for a case file or a complaint.
odoo · Contact · Bergmann GmbH
Hello, when is the delivery for order S00042 coming?
PhoneDesk · Voice AI · 09:14Hello, you're speaking to the Bergmann phone assistant. I'm noting your question about order S00042 and will put you through to inside sales. One moment please.
After hanging up · in the contact's historyIncoming call · 4:12 min · Summary
  • Question about the delivery date for order S00042.
  • Promised: callback from inside sales by Thursday.
  • Mention of a damaged pallet from the previous delivery.
Sentiment: matter-of-fact · Urgency: medium · Topics: delivery date, complaint
Transcript: 14 turns · stored encrypted · retention 30 days
What this looks like day to day

Six situations that cost time today

No new tool to learn: the same Odoo screens, only now the phone belongs to them.

Sales
The customer calls while the lead is open on screen.
As it ringsThe caller is resolved by name, the call is already attached to the contact. Notes are typed during the call and sit on the record when you hang up.
Inside sales
Calling fifty contacts back from an Odoo list.
One click per rowNext to every number there is a handset icon. No copying, no mistyping, every call a record with duration and direction.
IT
From Monday the main number should ring on a different extension.
Dry run → deployThe change is an Odoo record, gets dry-run, deployed and read back. If it does not match, PhoneDesk rolls back by itself.Deployment no. 118 · verified · 09:41
HR
A new colleague starts on the first and needs a line.
One buttonCreate the seat, assign the extension, deploy the devices - verified and with rollback. Three days of coordination become one minute.
Service
Someone calls after hours.
The AI picks upIt greets, listens, records the request and writes summary and transcript to the contact. The next morning a person reads it - instead of guessing.
Data protection
The auditor asks about a recording from last year.
Evidence in two clicksLegal basis, consent decision, every access with person and timestamp, retention period and deletion run - all on the same record.
Try it on your own numbers →
Security & evidence

What happens on the phone can be proven

In Germany, recording a call without consent is a criminal matter, not a formality. PhoneDesk does not treat that as an add-on module but as part of the call record.

Consent register

Given, refused, withdrawn - every decision sits in a register with person and timestamp, and is never overwritten. As long as no decision exists, access to a recording stays blocked. On request an announcement asks the caller directly, and the key they press becomes a line in the register.

Default: consent required

An audit trail that only grows

Every state change, every action, every access and every error lands in the event log. It cannot be deleted, not even with administrator rights - only its own retention run clears it out. Phone numbers, secrets and file paths are stripped beforehand.

Append-only · no deletion

Retention per field - deletion by key destruction

For each company you set how long calls, recordings, transcripts and listen-in content stay. After that a scheduled job anonymises them, hourly, traceably. Listen-in content sits under its own keys: once the key is destroyed the content is gone - the evidence that it existed remains.

Art. 17 GDPR · deletion with no leftover copies

Roles instead of blanket access

Seven roles, 58 access rules, 35 record rules: staff see their own calls, the team lead sees the team, transcripts only the role entitled to them, consent only data protection, the PBX only infrastructure.

Separate rights for content, consent and PBX
Step 1
Legal basis
Recorded per call, under Art. 6 GDPR.
Step 2
Consent
Given, refused or withdrawn - with person and timestamp.
Step 3
Access
Blocked without a decision, logged with one.
Step 4
Retention
Period per company, then anonymised automatically.
Step 5
Destruction
Key gone, content gone. The evidence remains.

This layer also covers recordings that your existing PBX or your provider already produces today. That is exactly where most companies are exposed: the files exist, the rules around them do not.

The most sensitive case, explicitly governed

Listening in only with everyone's consent

For quality and training, an AI can follow a live call and produce a cleaned-up summary. As delivered this path is entirely closed - deliberately.

A lock at company level

Without explicit management approval on the company record, nothing can listen in. Without that approval the system refuses the request outright.

Consent from both sides

The external party and the member of staff each consent separately - by keypress or spoken. A refusal is not only respected but recorded.

Chained audit trail

Every step is chained to the one before it. If a line is missing or has been altered, it shows. The content is stored encrypted and deleted by key destruction.

Listening in by a human does not exist in PhoneDesk - the interface refuses it before it even asks. In companies with a works council that is the decisive difference: the path is not just off, it is provably off.

Several companies, one PBX

Companies that cannot see each other

A group with several legal entities - or a partner running several customers - shares one PBX without data crossing the company boundary.

Every number belongs to one company

An inbound number is tied to one company - regardless of which contact it is matched to. A route across the company boundary is rejected by the system.

Separation down to the row

Calls, PBXs, consents, transcripts, listen-in sessions and audit trails carry their company and are filtered at database level. Not in the screen - underneath it.

Closed at run time too

Transfer, conference and outbound call each check company membership again themselves and abort when in doubt instead of carrying on.

Company separation cannot be switched off in any tier and is never sold as an extra. Additional legal entities are billed contractually, not unlocked technically.

See it, don't read about it

One hour, your numbers, your questions

We show the whole path: a routing change with dry run and rollback, a new extension, a call that becomes a record - and a conversation held by the AI.

Request a live demo View pricing
What PhoneDesk is made of

Three Odoo modules, two services, one PBX

Odoo stays Odoo: no long-lived channel runs inside the Odoo process. Whatever has to talk around the clock runs next to it - and reports back to Odoo when there is something to report.

Odoo
phonedesk_core
The call record with its life cycle, seats and credentials, consent register, retention, event log and the seven roles.
Odoo
phonedesk_softphone
The phone in the browser: a bar over every screen, full-screen workspace, dialpad, contact search, history, notes, onboarding tour.
Odoo
phonedesk_control_board
The control board: call routing as a record, dry run, deployment, read-back check, automatic rollback, history, drift detection.
Service
PBX agent
The only service that talks to the PBX: transfer, conference, audio paths, health check. Everything else has to ask it.
Service
Voice AI
Speech recognition, language model, voice and the dialogue handling - a separate service with its own clock, so a slow command never makes the audio stutter.
PBX
Asterisk
Your existing PBX or a newly built one. PhoneDesk does not replace it, it runs it - and leaves any third-party configuration next to it untouched.
Hardware
PhoneDesk Box
A preconfigured server with the whole delivery on it. On the Box the speech models run on your own machine, on your own premises.
Odoo
Community is enough
PhoneDesk depends only on Odoo base modules. No Enterprise licence is needed for telephony and voice AI.
The delivery

PhoneDesk comes as a managed system, not as a download

A phone system is not a module you quickly install: two machines, ten containers, a trunk, certificates, phone numbers. We deliver it finished - as a machine on your own premises or as a system we run in a German data centre.

Run for you
PBX in a German data centre, we keep it running
from 399 €per month · commissioning from 2.400 € at a fixed price
  • No hardware of your own
  • Round-the-clock monitoring, response during business hours
  • Security updates with a tested fallback
  • One fixed change window per month for call routing
PhoneDesk Box S
On-premises phone system, without voice AI
2.900 €one-off · fanless server, handed over preconfigured
  • PBX, control service and Odoo connection wired up ready
  • Up to 50 concurrent calls
  • No dependency on someone else's data centre
  • Replacement unit prepared
Voice AI local
PhoneDesk Box M
Phone system and voice AI on your own machine
5.900 €one-off · speech recognition, language model and voice on the device
  • Everything from Box S
  • Voice AI answers calls on your machine
  • German voice and persona set up at commissioning
  • Larger models via a connected AI machine

Commissioning always at a fixed price, never by the hour. Managed service from 399 € per month, tiered up to 999 € for the full tier. All figures are on the pricing page.

The scope

What PhoneDesk is not

This list is on the table before you sign, not after. If you need one of these things, you are better served by a different tool - and we say so in the first conversation.

Not includedWhat that means
Queues and call distributionNo queues, no hunt groups, no agent login and logout, no wallboard. PhoneDesk is a layer over Asterisk, not a replacement for a contact centre platform.
Voicemail and call parkNo voicemail box, no message waiting indicator, no park slots. Unanswered calls go to the voice AI or get hung up.
A recording devicePhoneDesk does not start a recording. It governs recordings: consent, access, retention, deletion, audit trail - including the files your PBX already produces today. Recording of its own is on the roadmap.
Supervisor listen-inNo human can join a live call, neither silently nor whispering. The interface refuses it on principle. Consent-checked listening in by the AI is a different thing and governed separately.
A mobile appPhoneDesk makes calls in the desktop browser and on desk phones. On the move, your mobile stays your mobile.
Bridges to CRM, Helpdesk or accountingThe call lands on the contact, not automatically on the lead, the ticket or the document. Those bridges are on the roadmap.
PBXs other than AsteriskPhoneDesk drives Asterisk and FreePBX. It does not connect to other systems - and we do not pretend otherwise.
Telephony as a pure subscriptionThere is something to run. Either you run it, or we run it for you. If you want to run nothing and own nothing, a cloud provider is the right choice.

Odoo is the supported version. There is none for Odoo 17; for Odoo 19 it is on the roadmap.

On the roadmap

What is being worked on next

What is listed here is not included yet, and is not sold as included. It is here so you know what you are waiting for - and what you are not.

Q4 2026
Recording by PhoneDesk itself
The recording is started by PhoneDesk, checked against consent, and the retention period deletes the file on disk as well. Consent, access blocking, retention and audit trail already exist.
Q4 2026
German-language interface
Menus, messages and hints in German. Today commissioning sets up the German voice and the German announcements; the interface itself is still English.
Q1 2027
Bridge to CRM and Helpdesk
The call not only lands on the contact but creates a lead and a ticket - scored from sentiment and urgency, and assigned to the team automatically.
Q1 2027
Interrupting the AI
Talking over the AI while it speaks. Echo cancellation and detection are built and run in the lab; what is missing for production is the per-PBX tuning.
Q1 2027
Knowledge from your own documents
The AI answers from your own documents instead of general knowledge. Storage and search are built, the per-company ingestion is missing. As of today: the AI does not know your documents.
Planned
Odoo 19
A version for the next Odoo major release. Today PhoneDesk runs on Odoo, Community as well as Enterprise.
Common questions

Asked about the platform

Does PhoneDesk replace our phone system?+
No. Your Asterisk PBX stays where it is and keeps everything that runs on it today. PhoneDesk takes over the steering: call routing is written, verified and deployed in Odoo, and call control is handled by a service next to the PBX. Third-party configuration stays untouched, and PhoneDesk shows you which parts of the PBX it manages and which it does not.
Does PhoneDesk record calls?+
No - and we say so before you sign. PhoneDesk does not start a recording. What PhoneDesk does is handle recordings: give, refuse or withdraw consent; block access as long as no decision exists; log every access; set retention periods per company; delete. That applies to the files your PBX or your provider already produces today - in most companies exactly the gap an audit finds. Recording of its own is on the roadmap.
Where do the speech models run?+
As delivered, speech recognition, language model and voice are set to local models. The architecture is designed to run on your own premises: the services run next to your PBX, not in someone else's cloud. On the PhoneDesk Box the models run on your own machine. If you deliberately want a cloud service for speech recognition or voice, you switch it on - with a fallback to the local voice if the service stalls.
What does "switched on at commissioning" mean?+
52 features work out of the box. Another 21 are fully built but shipped switched off - transfer, conference, sentiment and topics, the live transcript, the handover to a person, the consent announcement. These features reach into a running phone system, so they are switched on deliberately at commissioning, checked one by one and signed off. You do not arm a phone system blind.
Can a manager listen in on a call?+
Not a human. That is not a missing feature but a decision: the interface refuses any attempt to join a live call before it even asks the PBX. For quality and training there is listening in by the AI - with management approval, with consent from both sides of the call, with a chained audit trail and encrypted content. As delivered this path is closed.
Do we need Odoo Enterprise?+
No. PhoneDesk depends only on Odoo base modules and runs on Community just as well as on Enterprise. For many companies that is where the sums actually work out: telephony and voice AI without extra user licences.
What happens if a change to the PBX goes wrong?+
It does not go live. Before deployment the PBX checks the generated configuration in a dry run; if that fails, nothing is deployed and no entry is created. After deployment PhoneDesk reads back what is really on the PBX. If it differs, the system restores the last state by itself and marks the deployment as rolled back. A half-applied phone system is explicitly forbidden.
A look inside

What this looks like day to day

Softphone

The phone sits inside Odoo

Call, answer, hold, transfer — without leaving the record you are working on.

Softphone in the customer recordrecommended 1920 × 1080
Control Board

The dialplan as an Odoo record

Extensions, contexts and number routing as forms. Dry run, read-back check, automatic rollback.

Control board with dialplanrecommended 1920 × 1080
Call file

What was discussed sits on the customer

Summary, topics and sentiment land in the chatter automatically — encrypted and with a retention period.

Summary on the contactrecommended 1920 × 1080
Evidence

Consent and audit trail

Consent register, tamper-proof audit trail, deletion by key destruction — exportable for the auditor.

Consent registerrecommended 1920 × 1080
Fixed price · fixed scope · fixed end

Bring the phone into your Odoo

Your PBX, run from Odoo. Every call a record. Consent, retention and audit trail from day one. We show it on your own numbers - and tell you beforehand what PhoneDesk cannot do.

Request a demo View pricing