AsterTrace
Capture everything happening in your asterisk server and log it to mysql. Calls, DTMF's, generic events, etc
Install / Use
/learn @marcelog/AsterTraceREADME
Introduction
This was intended as an example of use mixing Ding and PAMI. However, it might be useful as a tool to help you monitor/debug your asterisk installation, so I'm making it freely available.
See this article for more information: http://marcelog.github.com/articles/php_asterisk_listener_example_using_pami_and_ding.html
AsterTrace is extendable via "listeners". Currently these listeners exist:
- dial
- event
- dtmf
- varset
- newchannel
- newstate
- newexten
So currently, AsterTrace can monitor:
- All events (event-listener)
- Call activity (CDR like) (dial-listener)
- DTMF's pressed (dtmf-listener)
- VarSet's (varset-listener)
- Newchannel (newchannel-listener)
- Newstate (newstate-listener)
- Newexten (newexten-listener)
Each listener is autosufficient, and get called by the container (Ding) whenever an interesting event occurs. Ding will get called by the pami helper, whenever AMI reports an event. This event will then get dispatched to the listeners by ding.
TCP Server
AsterTrace uses the Ding TCPServerHelper to start a tcp server. This server allows you to connect and issue commands, also you can listen for events. The events and responses to the actions sent are serialized with json :) You can try it via telnet.
REST interface
Also, a rest interface is available, so you can make it publicly available through a webserver. This rest interface will let you get events from ami in a json format. Ideal for COMET/Long polling.
Requirements
- PHP 5.3+
- Ding 0.98+ (http://marcelog.github.com/Ding)
- PAMI 1.27+ (http://marcelog.github.com/PAMI)
- mysql server
- log4php (optional)
- pdo-mysql
Configuration
Assuming you are inside the root directory of the source (thus, having ./conf and ./src)
1.- Copy/Rename the file: conf/log4php.properties.example to log4php.properties. Edit it. 2.- Copy/Rename the file: conf/log4php.properties.example to log4php-rest.properties. Edit it. 3.- Copy/Rename the file: conf/mysql.properties.example to mysql.properties. Edit it. The only thing you need from mysql, is to have the database created (nothing else, no tables, AsterTrace will create them on demand). 4.- Copy/Rename the file: conf/php.properties.example to php.properties. Edit it. You can have your own php settings here. 5.- Copy/Rename the file: conf/astertrace.properties.example to astertrace.properties. Edit it. 6.- Copy/Rename the file: conf/server.properties.example to server.properties. Edit it. 7.- Run astertrace, like "php src/mg/AsterTrace/bin/astertrace.php ./conf"
Thanks to
- Joshua Elson for his help in trying and debugging in loaded asterisk servers.
Related Skills
feishu-drive
339.5k|
things-mac
339.5kManage Things 3 via the `things` CLI on macOS (add/update projects+todos via URL scheme; read/search/list from the local Things database)
clawhub
339.5kUse the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com
yu-ai-agent
2.0k编程导航 2025 年 AI 开发实战新项目,基于 Spring Boot 3 + Java 21 + Spring AI 构建 AI 恋爱大师应用和 ReAct 模式自主规划智能体YuManus,覆盖 AI 大模型接入、Spring AI 核心特性、Prompt 工程和优化、RAG 检索增强、向量数据库、Tool Calling 工具调用、MCP 模型上下文协议、AI Agent 开发(Manas Java 实现)、Cursor AI 工具等核心知识。用一套教程将程序员必知必会的 AI 技术一网打尽,帮你成为 AI 时代企业的香饽饽,给你的简历和求职大幅增加竞争力。
