BeePanel builds call history and reports from Channel Event Logging (CEL), the events Asterisk writes to a database for every call. BeePanel reads that database and never writes to it, adds anything to it, or deletes from it.
Note
Call history and setting up its source need the Pro edition. Under Standard, the row shows the last known state of a stored source and offers no editor; the source resumes where it left off once Pro is activated.
What the source must provide
- CEL enabled in Asterisk, written to MariaDB or MySQL, PostgreSQL, or SQLite.
- A table with the CEL fields, including the linked call identity
(
linkedid). - An integer column, usually
id, that BeePanel follows as its reading position: never empty, unique, and indexed, growing with every new row, and never reusing a value. Rows must not change once they are written. - A database account that can read the table. A read-only account is recommended.
BeePanel keeps no copy of rows it has not read yet: how far back call history can be rebuilt depends on how long the database keeps its rows.
What the installer prepares
When CEL is enabled, the installer adds application start and end events for
the call applications BeePanel follows, such as Dial, Queue, and
MixMonitor, in its own file /etc/asterisk/cel_beepanel.conf. On FreePBX
and Issabel the file is included from cel_general_custom.conf, otherwise
from cel.conf. The installer never turns CEL on; when CEL is off, or the
file cannot be included safely, it prints CEL capture not configured and
adds nothing for CEL.
Setup reads the CEL connection from Asterisk's configuration files, fills it in, and validates it on its own when the Configuration screen opens; the table's columns are matched automatically.
Setting up or changing the source
Prerequisites: the Pro edition and a user allowed to manage BeePanel.
- Open Management > Settings, and choose Set up or Edit on the Call history source row under Call data.
- Choose the Engine. For MariaDB, MySQL, or PostgreSQL, fill in Address, Database name, CEL table, Username, and Password, and for PostgreSQL also Schema name. For SQLite, fill in SQLite file path and CEL table. Leave Password empty to keep the stored password, which BeePanel never shows again.
- Choose Validate. It checks the source without saving anything, matches the columns, and works out the time format.
- If BeePanel asks, choose the Time format, and for times written without a time zone, the Time zone they were written in. Fill in any empty field under CEL column mapping.
- Choose Save. BeePanel validates the source again and switches to it; if the check fails, the current source stays in use.
In setup, the same fields are on the Call history source row of the Configuration screen. You can clear its checkbox and set the source up later in Settings.
Checking the result
- The editor shows The CEL source is readable and its layout is compatible.
- The Call history (CEL) row on the Status page shows Active, with the last event and the processing lag.
- New calls appear under Reports > Call history.
Common problems
The configured CEL source must be reachable with valid credentials.
BeePanel cannot connect or sign in. Check the address, the username, the password, and that the database accepts connections from the BeePanel server.
The configured CEL relation must exist and be readable.
The table name is wrong, or the account cannot read the table.
The CEL relation must provide a linked call identity before reporting can be activated.
The table has no linkedid column, which BeePanel needs to group the
events of one call. Asterisk's sample SQLite CEL table, for example, does not
have it.
Map a stable, non-null, unique, indexed integer source cursor.
The column mapped as the reading position (id) is not an integer, can be
empty, is not unique, or has no index. Map a column that meets all four.
Select the source timestamp format and, for naive values, its IANA time zone.
BeePanel could not tell the time format from the stored rows, for example because the table is empty or the values are numbers that could be seconds or milliseconds. Choose the Time format, and the Time zone when asked.
Map every required CEL semantic to one existing physical column.
A field under CEL column mapping has no column. Choose the matching column for every empty field.
The call history source is not active.
Call history shows this when the source is not configured or has stopped. The Status page row shows the state and, for an administrator, a diagnostic code; open the editor and choose Validate to see what is wrong.