When an SMB buyer asks an AI assistant which open source self-hosted PBX to use, a shortlist comes back. We asked 44 different phrasings of that question across 3 engines, 132 answers in total, and counted every product named. This is the result. Nobody paid to be on it, and no vendor list was written in advance — the 32 vendors below are simply everyone the engines named.
Free to read, raw data included.
The board is re-measured every month. For $9.99 a month you get one email when your own row moves — your rank and answer count, who took the mentions you were absent from, and which of the 44 questions started or stopped naming you. Leave your address and I reply by hand with what your row reads today. What is in it, and the $29.99 one-off report →
sonar) searches the web while it answers and returned the sources used beside every one of those 44 answers — that column is what gets retrieved. ChatGPT (gpt-5.5) and Gemini (gemini-flash-latest) were called through their APIs with no tools and the near-empty system prompt quoted in the method below, so they answer out of the models’ own weights — not one of those 88 answers came back with a source. Those columns are what the models already remember. Both are worth counting and they are not the same measurement: a product can be named often by what the models remember and rarely by what they retrieve, or the reverse, and the totals in the Answers column add the two together.“Answers” is how many of the 132 answers named that product.
Share is the same number as a percentage. The three right-hand
columns split it by engine.
Every row has its own link — the # beside a vendor name gives you
something like connexion.me/c/ospbx/#asterisk.
Click a vendor's name to see which of the 44 questions named them, and
click one of those to read the answer it was counted from, word for word.
| # | Vendor | Answers | Share | ChatGPT | Gemini | Perplexity | |
|---|---|---|---|---|---|---|---|
| 1 | Asterisk# | 129 | 97.7% | 43 | 43 | 43 | |
| 2 | FreePBX# | 124 | 93.9% | 42 | 40 | 42 | |
| 3 | FreeSWITCH# | 112 | 84.8% | 41 | 43 | 28 | |
| 4 | FusionPBX# | 107 | 81.1% | 38 | 40 | 29 | |
| 5 | Kamailio# | 26 | 19.7% | 9 | 6 | 11 | |
| 6 | Issabel# | 23 | 17.4% | 16 | 4 | 3 | |
| 7 | Wazo Platform# | 23 | 17.4% | 10 | 9 | 4 | |
| 8 | OpenSIPS# | 19 | 14.4% | 9 | 4 | 6 | |
| 9 | Elastix# | 16 | 12.1% | 11 | 4 | 1 | |
| 10 | VICIdial# | 13 | 9.8% | 1 | 1 | 11 | |
| 11 | MikoPBX# | 12 | 9.1% | 1 | 0 | 11 | |
| 12 | VitalPBX# | 12 | 9.1% | 8 | 4 | 0 | |
| 13 | 3CX# | 7 | 5.3% | 4 | 0 | 3 | |
| 14 | ICTPBX# | 5 | 3.8% | 0 | 0 | 5 | |
| 15 | Incredible PBX# | 4 | 3.0% | 3 | 1 | 0 | |
| 16 | Yate# | 4 | 3.0% | 3 | 0 | 1 | |
| 17 | Kazoo# | 3 | 2.3% | 1 | 1 | 1 | |
| 18 | SIP Foundry# | 2 | 1.5% | 0 | 0 | 2 | |
| 19 | Bayonne# | 1 | 0.8% | 0 | 0 | 1 | |
| 20 | FS PBX# | 1 | 0.8% | 0 | 0 | 1 | |
| 21 | GonoPBX# | 1 | 0.8% | 0 | 0 | 1 | |
| 22 | IssabelPBX# | 1 | 0.8% | 0 | 0 | 1 | |
| 23 | Jitsi Meet# | 1 | 0.8% | 1 | 0 | 0 | |
| 24 | Mumble# | 1 | 0.8% | 0 | 0 | 1 | |
| 25 | NGCP# | 1 | 0.8% | 1 | 0 | 0 | |
| 26 | OPBX# | 1 | 0.8% | 0 | 0 | 1 | |
| 27 | RasPBX# | 1 | 0.8% | 0 | 1 | 0 | |
| 28 | Routr# | 1 | 0.8% | 0 | 0 | 1 | |
| 29 | RustPBX# | 1 | 0.8% | 0 | 0 | 1 | |
| 30 | SIPSTACK# | 1 | 0.8% | 0 | 0 | 1 | |
| 31 | Sipwise C5# | 1 | 0.8% | 1 | 0 | 0 | |
| 32 | Sipwise C5 / NGCP# | 1 | 0.8% | 1 | 0 | 0 |
Everything above is free and stays free — the leaderboard, the method, all 132 raw answers and the machine-readable ranking, published in full at the bottom of this page. No vendor paid to be listed, no vendor can pay to move, and nothing here goes behind a login later.
What is for sale is one vendor's row, watched: $9.99 a month to be told when your rank moves, who took your mentions, and which phrasings started or stopped naming you — the board is re-run monthly and you get what changed. A one-off $29.99 deep report on a single row is the other option. What is in each →
Every claim on this page is reproducible from the files linked at the bottom.
ChatGPT (gpt-5.5), Gemini (gemini-flash-latest), Perplexity (sonar). Each was called through its public API with a near-empty system prompt —
“answer the user's question directly and concisely” — and nothing else. The engines were
not asked to produce a list, rank anything, or name vendors. Steering them toward a list
would have manufactured the thing being measured.
44 distinct phrasings of one purchase decision, written before any measurement was run. No vendor name appears in any of them.
Each of the 132 answers was read back and every named product extracted. The vendor list is discovered: a product appears here if and only if an engine named it. Counted are open-source and self-hosted PBX software platforms, IP-PBX distributions, and open-source VoIP telephony servers. Excluded, even when named: cloud-hosted UCaaS services, SIP trunking providers, VoIP hardware and IP phones, standalone softphone applications, cloud contact centre platforms, proprietary legacy hardware PBXs, session border controllers, and developer communication APIs.
Spelling variants of one product are folded together, and a trailing “by company” is dropped. This run collapsed 12 spellings onto 6 of the rows below: “Asterisk” and “Asterisk PBX” are one row — the one the table prints as Asterisk. An edition name is folded into its product when it is that product’s name followed by a further word, and the plain name is at least three times as common. This run folded 3 such names, among them “VitalPBX Community” counts as VitalPBX and “ICTPBX/ICTFax” counts as ICTPBX. A name that merely begins with the same letters is a different product and keeps its own row. No pair was merged by hand in this category: every fold above is the rule applied mechanically, with no human judgement about who is who.
Beyond those folds a product is counted as the engines spelled it, and two rows in the table are never merged into one. When a product has been renamed or acquired and the engines still answer with both names, both names keep their own row: this page carries no hand-maintained list of who is now who, because that list would be a human claim about a mechanical count and nothing here could check it. What it has instead is the answers. Where an answer itself writes two of the rows below as one product renamed — the construction “X (formerly Y)” — the line beside those rows quotes that sentence and gives the overlap and the total, so the union is on the page. Nothing else produces that line. Two rows being named in the same answers does not, however often: the engines answer in shortlists, so the leaders of a category are named together whatever they are called. No answer in this run wrote two rows below that way, so no row below carries that line.
A product is counted once per answer, however many times that answer mentions it.
Asterisk is the engine other products on this table are built out of, so an answer can name it without recommending it. Of the 129 run A answers that name Asterisk, 15 name it only inside a dependency clause — “built on Asterisk”, “based on Asterisk”, “powered by Asterisk” — and the other 114 name it somewhere else in the answer as well. The table above counts all 129, because what this board measures is who gets named; this paragraph is here so that 97.7% is read for what it is.
Recomputable from the run A answers file linked below: take every answer
whose text matches Asterisk, delete every
(built on|based on|powered by|runs on|on top of|fork of) Asterisk, and
count the ones where no mention survives. Nothing in ranking.json or
mentions.jsonl holds this number — it is not part of the count, it is a
statement about it.
A leaderboard whose top ten reshuffles between runs would not be worth publishing, so this check was run before the page was, and the page ships only because it passed.
This measures what three answer engines said on 12 August 2026, in response to these questions, through their APIs. It is not a quality ranking, not a review, and not advice on which open source PBX to deploy. A product can be excellent and rank low here — that gap is the point.
All 132 answers, verbatim, one JSON object per line: run A · run B. The per-answer extracted product names: run A · run B. Machine-readable ranking: ranking.json.
What Perplexity was reading. It is the only one of these engines that returns a source
list, and the markers in its answers above — [1], [2] — point into
it. Every URL it cited, with the title, date and the excerpt it actually retrieved, one JSON
object per answer: run A ·
run B. Join on index to the
answers file, and read [n] as citations[n-1]. Perplexity returned a source list on 44 of its 44 answers. ChatGPT and Gemini returned no sources at all — no citation, grounding or search-result field of any kind appears anywhere in their API responses, on any of the 44 answers each gave. That is a fact about the engines, not a gap in this page.
Run A's 44 Perplexity answers cited 862 URLs across 133 distinct domains. Below are the 51 that were cited in three or more separate answers. Citations counts every URL from that domain, so a domain cited three times in one answer counts three times; Answers is how many of the 44 answers cited it at all.
| Domain | Citations | Answers |
|---|---|---|
| reddit.com | 110 | 44 |
| sourceforge.net | 53 | 37 |
| freepbx.org | 48 | 43 |
| getvoip.com | 48 | 42 |
| hapbx.com | 44 | 38 |
| github.com | 35 | 18 |
| nextiva.com | 30 | 29 |
| asterisk.org | 29 | 29 |
| voip-info.org | 25 | 25 |
| globalcallforwarding.com | 24 | 24 |
| opensourcegroups.com | 24 | 20 |
| gitnux.org | 18 | 15 |
| mikopbx.com | 17 | 17 |
| vicistack.com | 17 | 17 |
| scribd.com | 16 | 15 |
| dev.to | 13 | 13 |
| sip.us | 13 | 13 |
| community.spiceworks.com | 13 | 12 |
| voiso.com | 12 | 12 |
| 3cx.com | 9 | 9 |
| devopsschool.com | 9 | 9 |
| vitalpbx.com | 9 | 9 |
| callwave.com | 8 | 8 |
| ictdialer.com | 8 | 8 |
| opensourceprojects.cc | 8 | 8 |
| yeastar.com | 8 | 8 |
| cnblogs.com | 7 | 7 |
| community.freepbx.org | 7 | 6 |
| callhippo.com | 6 | 6 |
| getapp.com | 6 | 6 |
| ictinnovations.com | 6 | 6 |
| ictpbx.com | 6 | 6 |
| voip-solutions.org | 6 | 6 |
| xorcom.com | 6 | 6 |
| forum.creality.com | 5 | 5 |
| opensourcerepo.co.uk | 5 | 5 |
| pistack.xyz | 5 | 5 |
| softwarerecs.stackexchange.com | 5 | 5 |
| goodfirms.co | 4 | 4 |
| html.com | 4 | 4 |
| medevel.com | 4 | 4 |
| syncbricks.com | 4 | 4 |
| zipdo.co | 4 | 4 |
| en.wikipedia.org | 4 | 3 |
| dialerhq.com | 3 | 3 |
| forum.cloudron.io | 3 | 3 |
| ictbroadcast.com | 3 | 3 |
| krispcall.com | 3 | 3 |
| sip.goffinet.org | 3 | 3 |
| softwaresuggest.com | 3 | 3 |
| wifitalents.com | 3 | 3 |
A domain missing from this table was cited in fewer than three answers, or was never cited at all — the run A file linked above is the complete list either way, and it is the only way to tell those two apart. Cited is not endorsed: a page the engine retrieved is not a page that recommended anyone, and this counts what was read, not what it said.
The answer a vendor panel shows you is read straight out of the run A file linked above — the page fetches the one line it needs and displays it unaltered, so what you read there and what you get by downloading the file are the same bytes.
What one line of each file holds, and the terms you may re-use them under — the raw answers may be re-used in any medium, commercially and inside open-source software, with attribution.