{"id":13399817,"url":"https://github.com/roramirez/qpanel","last_synced_at":"2026-05-24T00:03:49.123Z","repository":{"id":35748974,"uuid":"40028130","full_name":"roramirez/qpanel","owner":"roramirez","description":"Dashboard for Queues in Asterisk and FreeSWITCH. app_queue panel for Asterisk and mod_callcenter in FreeSWITCH.   Get news -\u003e http://eepurl.com/dxKt7X","archived":false,"fork":false,"pushed_at":"2024-04-21T19:48:41.000Z","size":9150,"stargazers_count":173,"open_issues_count":87,"forks_count":111,"subscribers_count":30,"default_branch":"master","last_synced_at":"2024-07-31T19:22:26.760Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://boxtub.com/qpanel/","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/roramirez.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"code_of_conduct.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-07-31T23:00:27.000Z","updated_at":"2024-07-30T23:02:41.000Z","dependencies_parsed_at":"2023-01-16T05:15:22.156Z","dependency_job_id":"d17c7e7c-bd08-4627-8641-9a977b9570b6","html_url":"https://github.com/roramirez/qpanel","commit_stats":null,"previous_names":[],"tags_count":43,"template":false,"template_full_name":null,"purl":"pkg:github/roramirez/qpanel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roramirez%2Fqpanel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roramirez%2Fqpanel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roramirez%2Fqpanel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roramirez%2Fqpanel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/roramirez","download_url":"https://codeload.github.com/roramirez/qpanel/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roramirez%2Fqpanel/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33416316,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-23T22:14:44.296Z","status":"ssl_error","status_checked_at":"2026-05-23T22:14:43.778Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-30T19:00:43.392Z","updated_at":"2026-05-24T00:03:49.118Z","avatar_url":"https://github.com/roramirez.png","language":"CSS","funding_links":[],"categories":["CSS"],"sub_categories":[],"readme":"\u0026nbsp;\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://ghost.org\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/roramirez/qpanel/master/qpanel/themes/qpanel/static/img/logo_header.png\" alt=\"QPanel\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\u003ch3 align=\"center\"\u003eThe Dashboard for Queues/CallCenter in Asterisk and FreeSWITCH\u003c/h3\u003e\n\u003chr /\u003e\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://travis-ci.org/roramirez/qpanel\"\u003e\n        \u003cimg src=\"https://travis-ci.org/roramirez/qpanel.svg?branch=master\" alt=\"Build status\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/roramirez/qpanel/contributors/\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/contributors/roramirez/qpanel.svg\" alt=\"Contributors\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://gitter.im/qpanel/Lobby\"\u003e\n        \u003cimg src=\"https://badges.gitter.im/qpanel/Lobby.svg\" alt=\"Chat on Gitter\" /\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n\n![Demo](samples/animation.gif)\n\n## Overview\n\nQPanel is a panel for queues on Asterisk and FreeSWITCH, powerful and simple monitor in realtime:\n\n* General resume for calls. Abandoned, Incoming, Answer time and Waiting time.\n* Show information on detail by queue.\n* Show agents status if these are free, busy or unavailable.\n* Pause reason and time to agents.\n* Percent of abandoned calls.\n* Allows rename the queue name or hide in case if required not show a determined queue.\n* Show callers by queue with the priority and wait time.\n* Spy, Whisper and Barge for agents on queues.\n* Show service level of queues\n* Hangup incomming calls\n* Authentication Access.\n* Simple configuration. Just use Asterisk manager.\n* Multi languages availables: English, Spanish, German, Russian and Portuguese.\n* Written on Python.\n* Responsive design.\n* Opensource by MIT licence.\n\n\nAlso you can use a [API of QPanel](doc/api.md) for data query related to queues\n\n\n\n## Requirement\n * Python 3.6+\n * [Asterisk](http://www.asterisk.org) 1.4+ and enabled manager or [FreeSWITCH](http://www.freeswitch.org) and connection permission to Event Socket Library.\n\n  The feature to scheduler reset stats for the queues is required Redis \u003e= 3.0.0. \n  If you run the QPanel as service (WSGI) you need reset stats using the script `run-worker.py` in `supervisord` or other process control system.\n\n\n### Asterisk\nOn /etc/asterisk/manager.conf do you set command permission for read and write, example:\n\n```\n    [qpanel]\n    secret = mi_super_secret_password\n    read = command\n    write = command,originate,call,agent\n```\n\n#### AMI options\n  * _originate_ for spy, whisper and barge.\n  * _call_ feature hangup calls.\n  * _agent_ remove agents from the queues.\n\n\nSome features maybe not included in your Asterisk version. In the [patch\ndirectory](patches) you can find the patchs for add more powerfull to the QPanel.\n\n\n### Freeswitch\n\nThe feature realtime counter for answered and abandoned calls in a  queues if not included in your FreeSWITCH version. In the [patch\ndirectory](patches/freeswitch) you can find the patch\n\n\nYou can configure a freeswitch section for your config.ini file like\n\n```\n    [freeswitch]\n    host = 127.0.0.1\n    port = 8021\n    password = ClueCon\n```\n\nIn general section set config\n\n```\n    ; Use FreeSWITCH as backend. Use mod_callcenter\n    freeswitch = True\n```\n\nTo use a FreeSWITCH need install `SWIG`. In system Debian base run\n\n\n```\n apt-get install swig\n pip install -r requirements/fs.txt\n```\n\n\n## 1. Clone this repository\n```\n git clone https://github.com/roramirez/qpanel.git\n```\n\n## 2. Install dependencies\n\n```\n $ pip install -r requirements.txt\n```\nIf dont have pip in your system. For install\n\n### Debian and Ubuntu\n ```\n sudo apt-get install python-pip\n ```\n\n### Fedora\n ```\n sudo yum install python-pip\n ```\n\n### Get Javascript, CSS and external web libraries\nIs necessary have installed Node.\n\n ```\n    npm install\n ```\n\n\n##  3. Go and prepair environment\n ```\n  cd qpanel\n  cp samples/config.ini-dist config.ini\n ```\n  Edit config.ini file with Manager Asterisk parameters\n\n  **Note**: Can set the absolute path for configuration file in an enviroment variable called `QPANEL_CONFIG_FILE`.\n\n## 4.- Translations\n ```\n  pybabel compile -d qpanel/translations\n ```\n\n\n## 5.- Run and relax\n ```\n    python app.py\n ```\n\nGo url of machine http://IP:5000\n\nIf you want run QPanel like a service, see the [samples configurations\nfiles](samples/configs).  There are a example for use with uWSGI + NGINX\n\n## QueueLog Stats for Asterisk\nYou could use the stats for queue of `Asterisk` from QueueLog. If need more informacion about this go [Stats, Realtime and other things](doc/StatsConfig.md)\nor see the section `[queue_log]` of the [sample configuration file](samples/samples/config.ini-dist)\n\n\n## New features?\nIf you like new features or something is wrong [please open a issue](https://github.com/roramirez/qpanel/issues/new)\n\nIf you want check the development version get checkout of `develop` branch\n\n ```\n git clone -b develop https://github.com/roramirez/qpanel.git\n ```\n\n\n## Updating source new in a release\n\nGo the QPanel directory\n```\n    cd qpanel\n```\n\n\nGet the new code\n\n```\n    git pull\n```\n\nUpdate dependencies\n\n```\n    pip install -r requirements.txt\n    npm install\n```\n\n\n## Notes\n\n### Errors\n\n#### pip update\n\nFor error in instalation process of requirements. `UserWarning: python_requires requires setuptools version \u003e 24.3`\n `pip install --upgrade setuptool`\n\n\n\n\n## How to contribute\n\n * Fork the project\n * Create a feature branch (git checkout -b my-feature)\n * Add your files changed (git add file_change1 file_change2, etc..)\n * Commit your changes (git commit -m \"add my feature\")\n * Push to the branch (git push origin my-feature)\n * Create a pull request\n\nHappy coding :)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froramirez%2Fqpanel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Froramirez%2Fqpanel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froramirez%2Fqpanel/lists"}