libamc

libamc
  • Page 1 of 1
  • 1
Archive - read only
libamc
  1. WеniZAY
    WеniZAY
    1
    libamc — реализует производительный класс для удаленного управления множеством АТС на базе Asterisk. Позволяет осуществлять мониторинг в реальном времени функцией Events.
  • WеniZAY
    WеniZAY
    2
    Ключевые особенности
    Высокая производительность;
    Оптимизированный код;
    Может применяться в многопоточных приложениях, где и достигает максимальной производительности;
    Поддерживает практически все функции AMI, включая:
    управление логическими каналами, очередями и модулями;
    телеконференции (meetme, confbridge);
    функции администрирования ядра Asterisk;
    правка конфгураций;
    контроль над DAHDI;
    редактор плана набора;
    Не использует сторонних библиотек;
    Взаимодействие с серверами АТС производится только стандартным API ОС.
    1. WеniZAY
      WеniZAY
      3
      Пример использования
      Получение информации о состоянии сервера:
      Код
      #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;
      }


      Компиляция:

      Код
      $ 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


      Дополнительные примеры находятся в сопроводительной документации программы.
    • Page 1 of 1
    • 1
    Search:
    libamc
    2018-2024 • WeniZAYTalk WeniZAY
    Запрещено использование материалов сайта без прямой ссылки на источник. Все права защищены.