OpDesk: A Modern Operator Panel for Asterisk [✏️ Title and Post name change edits by mod]

Hi everyone,

OpDesk is a modern, real-time web interface built to replace outdated operator panels like FOP2. Designed for Issabel, FreePBX, and Asterisk systems, OpDesk delivers fast performance, live visibility, and business-ready features in a clean, lightweight interface.

The Problem

Most operator panels today are:

  • Built on old technologies
  • Slow or not truly real-time
  • Hard to install
  • Not Free

OpDesk was built to fix that.

What OpDesk Does

OpDesk gives you complete, real-time control over your phone system:

  • Live call tracking with duration and talk-time separation

  • Extension & queue monitoring in real time

  • Call history (CDR) with filtering and search

  • Call recording playback from the browser

  • Supervisor tools — Listen, Whisper, and Barge

  • QoS metrics to monitor call quality

  • CRM integration to push call data into business systems automatically

This makes OpDesk more than a panel — it becomes part of your operational workflow.

Built for Performance

Backend: FastAPI + WebSockets + Asterisk AMI
Frontend: React + TypeScript

Architecture:

Web UI ↔ FastAPI ↔ Asterisk AMI

Fast, scalable, and fully real-time.

Easy Installation

OpDesk includes an automated installer that configures dependencies, AMI access, and database settings for Issabel or FreePBX.

Install and run:

curl -k -O https://raw.githubusercontent.com/Ibrahimgamal99/OpDesk/main/install.sh && chmod +x install.sh && ./install.sh
./start.sh

:construction: Project Status

OpDesk is actively under development. Core features are stable, and improvements are continuously being added, including reporting, integrations, UI refinements, and scalability enhancements.

Who It’s For

  • Call centers

  • Businesses using Asterisk

  • System administrators

  • Developers integrating telephony with business systems

This is Just the Beginning

OpDesk is currently in active development, and it’s 100% Open Source (MIT License).

I’m looking for the community to help make this the gold standard for Asterisk panels. Whether you are a SW engineer , a VoIP engineer, or a Call Center manager, I want your feedback.

How you can help:

  1. Try it out: Install it on your test system.
  2. Give Feedback: Tell me what features your workflow is missing.
  3. Contribute: Grab an issue on GitHub and let’s write some code!

GitHub: https://github.com/Ibrahimgamal99/OpDesk

5 Likes

Thank you; I look forward to following this project! There’s definitely a need.

Integrating queues and queue stats would be great.

How much of this is being written with AI tools, if any? And if so what tool are you using?

In FreePBX, python doesn’t really have much of a role. The scripts are almost all PHP and JS (Node). Not to say that python is a bad choice, but it is less familiar to FreePBX admins and developers. I am curious why you are not running in venv. Interfering with system packages can get gnarly.

1 Like

Hi Bill ,

Thanks for reply , yes I know the python is not main choice in freepbx but maybe in feature I`ll use nodejs as backend and in next version I will use nenv.
About AI I use cursor to help me in UI.

Very interesting. I would like to give it a try but I have already an installation of FOP2 in place. Can I safely run both or will I break my existing FOP2 deployment if I additionally install AOP?

Yes you can run both.

Howdy! Welcome to the forums.

Does your name AOP share the same issues as the name AMP ?

I Am Not A Lawyer but please see the History section of the FreePBX wikipedia entry for some brief discussion of trademark issues regarding the change in name from the Asterisk Management Portal (AMP) to FreePBX circa 2005-2006. Here’s a little early reference to the name change from an import of the old amportal-devel mailing list into these forums. Also potentially worth your review is the Sangoma trademark policy PDF specifically page 9 where these examples are given (amongst many other gems):

  1. The marketing of any software, hardware, product or service using the Word Mark “Sangoma” or “FreePBX” (or any other Sangoma Word Mark), unless the Sangoma Word mark is referring to a Genuine Sangoma product. For example, assume you have a SIP trunk that is named Acme SIP Trunk and that this SIP Trunk is interoperable with FreePBX. It may then be marketed as “Acme SIP Trunk GUI, a SIP Trunk for FreePBX” but it may not be marketed as a “FreePBX SIP Trunk”.
  1. Use of a Trademark, or part of a Trademark, in a manner that does or may create or be perceived as a “combined mark,” or use that integrates other wording with the Trademark in a way that the public may think of the use as a new mark (for example, “SuperFreePBX,” or “FreePBX Lite,” or use of the Trademarks in any way but their exact form (e.g. “Empowered by Sangoma”, rather than “SangomaPowered” or “Sangomaized”) or use in a way that by use of fonts or presentation for the Trademark and nearby words or images conveys an impression that the two are tied in some way) or modification of any Sangoma Logo;

:frog:

Should your project’s README.md be updated to reflect that ?

How about the original post in this topic ? Was it generated by an LLM ? :robot: Please see the forum guidelines regarding disclosure requirements for LLM-generated content (normally this is handled by user flags and admin DMs, but, the conversation is happening publicly about the code, so…)

Overwriting [macro-hangupcall] might warrant a :police_car_light: :warning: because that is (potentially) some gnarly stuff happening dynamically in there as generated by other parts of FreePBX which your module might not know about, especially if/when those interesting parts change over time. (Leaving the potential licensing concerns about the seemingly copy-pasta code snippet aside for the moment in order to focus on this particular aspect of user safety that may be affected by heavy-handed overwriting.)

Thanks for the heads-up on both points.

Regarding the trademark/legal question, I appreciate the clarification on the historical context—I’ll review everything carefully and consult Sangoma’s trademark policy before any public release to ensure there are no conflicts.

So I will change the project name before publish release.

As for the [macro-hangupcall] override, I’ll implement my logic in the [sub-hangupcall-custom] context rather than replacing the original macro in next update asap . This keeps it compatible with future FreePBX updates and avoids breaking any built-in functionality.

Final point I’ll update the README to note the AI-assisted me in UI parts.

The longer you wait, the more people get confused about who or what is sponsoring your project, especially those who are forking it verbatim.

That kind of disclosure is becoming more and more commonplace in open source projects e.g. the recent announcement on the Asterisk Forums:

I already do that in readme mention the AI usage and also will update the project name to be OpDesk to avoid trademark.

1 Like

The forums support editing your previous posts e.g. to change the project name in OP – this will help other users in the future.

How I can change the OP I want to change to OpDesk

Do you see the :pencil: icon in the upper-right corner of your first forum post at the top of this topic thread ? Clicking that should allow you to make the necessary changes.

As for the GitHub repo, you should be able to rename it in the settings :gear: section of your project.

Its done in GitHub, but still cant edit it in forums.

Thank you and all set on the forum edits – there may have been an issue preventing you from editing things yourself too quickly/frequently because your account is only three days old.

Ohh , Thats clear. thanks for everything !

You are very welcome, sir. Hoping for a similar positive outcome with the AI Voice Agent Highly Cutomizable project by @hkjarral (which was missed partly because the forum post used a different name for the project than the GitHub name - the latter is the name at issue in that situation.)

1 Like

And it would be much appreciated if you would be so kind as to include a reference to Sangoma per page 11 of the aforementioned policy:

  1. Attribution. The fact that the Trademarks are owned by Sangoma should be
    clearly stated. This may be done by placing in a footer a notice, such as “FreePBX® is
    a registered trademark of Sangoma”. Where a footer is not appropriate, such as for
    use in pathnames and for presentations within operational software displays, the
    attribution may be placed in product documentation and readme files.
Which version of FreePBX does it work with? Does it work with version 17?

Yes work in version 17

This topic was automatically closed 31 days after the last reply. New replies are no longer allowed.