libamc
Перейти к навигации
Перейти к поиску
| программное обеспечение | |
| Asterisk Client | |
|---|---|
| Разработчик |
kod |
| Написана на | |
| Операционная система | |
| Аппаратная платформа | |
| Последняя версия |
2.1.5-074 (12 февраля 2015) |
| Состояние |
Актуальный |
| Лицензия | |
| Сайт | |
libamc — реализует производительный класс для удаленного управления множеством АТС на базе Asterisk. Позволяет осуществлять мониторинг в реальном времени функцией Events().
Ключевые особенности[править]
- Высокая производительность;
- Оптимизированный код;
- Может применяться в многопоточных приложениях, где и достигает максимальной производительности;
- Поддерживает практически все функции AMI Архивная копия от 6 октября 2014 на Wayback Machine, включая:
- управление логическими каналами, очередями и модулями;
- телеконференции (meetme, confbridge);
- функции администрирования ядра Asterisk;
- правка конфгураций;
- контроль над DAHDI Архивная копия от 6 октября 2014 на Wayback Machine;
- редактор плана набора;
- Не использует сторонних библиотек;
- Взаимодействие с серверами АТС производится только стандартным API ОС.
Пример использования[править]
Получение информации о состоянии сервера:
<source lang="cpp">
- include <iostream>
- include <amc.h>
//---AMC-declaration--- amc ami; //
int main(int argc, char *argv[]) {
string host = "10.1.1.1"; unsigned short int port = 5038; string usr = "vve", ps = "evv";
if(
! ami.connect(host, port)
)
{ cout << ami.err << endl;
return -1; } cout << "Connected to " << host << endl;
if(
! ami.login(host, port,
usr, ps)
)
{ cout << ami.err << endl;
ami.disconnect(host, port);
return -1; } cout << "Logged in " << host << endl; cout << endl;
sys_status st;
if(
! ami.core_status(host, port, st)
)
{ cout << ami.err << endl;
} else {
cout << "1-StD: "
<< st.startup_date << endl;
cout << "1-StT: "
<< st.startup_time << endl;
cout << "1-RlD: "
<< st.reload_date << endl;
cout << "1-Rlt: "
<< st.reload_time << endl;
cout << "1-Cur: "
<< st.current_calls << endl;
}
if(ami.logoff(host, port))
cout << "Logged off "
<< host << endl;
if(ami.disconnect(host, port))
cout << "Disconnected from "
<< host << endl;
return 1;
} </source> Компиляция:
$ gcc -c main.C $ gcc -lamc main.o -o voipstat $ ./voipstat
Вывод:
Connected to 10.1.1.1 Logged in 10.1.1.1 1-StD: 2012-11-29 1-StT: 08:47:45 1-RlD: 2014-02-01 1-RlT: 09:51:28 1-Cur: 7 Logged off 10.1.1.1 Disconnected from 10.1.1.1
Дополнительные примеры находятся в сопроводительной документации программы.