Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

мониторинг статуса линии абонента

0

Добрый день. Написал на php телефонный справочник для организации (данные берутся из AD), прикрутил к нему звонилку, все счастливы, но хочется еще напротив каждого абонента прилепить маленькую лампочку, которая бы меняла цвет в зависимости от статуса его линии - готов/звенит/невсети. Такое умеет IM-клиент Spark при наличии на сервере Openfire соответствующего плагина. Подозреваю, что оно работает через ami, но пока до меня не допирает, что именно в ami слушать... В общем, прошу помощи :)

Asterisk 1.8.20.1

удалить закрыть спам изменить тег редактировать

спросил 2014-03-11 06:08:14 +0400

grossmort Gravatar grossmort
1 1

Comments

прошу прощения, но мне трудно разобраться во всем этом. Я понял, что с астериском можно работать через telnet на порт 5038, можно залезть в cli: asterisk -r. В случае телнета я научился слушать все события, поскольку Eventmask вообще не маск по сути (ну или я дурак); могу инициировать звонок на зареганный аппарат, ну и всё, в общем... Почитал список команд, ничего полезного мне не нашел, кроме Events... Основных вопросов у меня два: как в php можно слушать events в реалтайме и как парсить всё это счастье? Еще раз простите, я не программист, php начал осваивать очень недавно, а астериск вообще мозг ломает...

grossmort ( 2014-03-12 12:52:09 +0400 )редактировать

спустя годы победил... нагуглил и накидал:

<?php
function getNums(){
$socket = fsockopen("127.0.0.1","5038", $errno, $errstr, $timeout);
fputs($socket, "Action: Login\r\n");
fputs($socket, "UserName: admin\r\n");
fputs($socket, "Secret: admin\r\n\r\n");
fputs($socket, "Action: Status\r\n\r\n");
fputs($socket, "Action: Logoff\r\n\r\n");
while (!feof($socket)) $wrets .= fread($socket, 8192);
fclose($socket);
$arr = array();
$wrets = ... <обработка результатов>
...
return json_encode($arr);
}
error_reporting(0);
getNums();
?>

ну и ajax дальше...

grossmort ( 2014-03-28 21:31:33 +0400 )редактировать

к сожалению, в моем варианте индикаторы меняют цвет только при внутренних вызовах, то есть, если сотрудник звонит в город, или на мобилу, или по межфилиальной связи, то индикатор останется зеленым (готов). Трудность обработки результатов в различиях между событиями Status при разных типах вызовов. При внутреннем SIP-вызове достаточно вытащить поле CallerIDNum, при звонке наружу (DAHDI) в качестве CallerIDNum - внешний номер телефона... При межфилиальном звонке придется номер выковыривать из поля Channel...

grossmort ( 2014-03-28 21:33:41 +0400 )редактировать

2 Ответа

0

Там не все так просто. Можете изучить как я делал в этом приложении. Либо просто его использовать http://lynks.ru/blog/blog/panel-operatora-dlya-asterisk/

ссылка удалить спам редактировать

ответил 2014-03-11 13:24:46 +0400

switch Gravatar switch
8334 11 7 91
http://lynks.ru/
0

По событиям на сервере почитайте http://www.voip-info.org/wiki/view/asterisk+manager+events . Пишите в реалтайм таблицу данные и отображайте .

ссылка удалить спам редактировать

ответил 2014-03-11 10:33:41 +0400

zzuz Gravatar zzuz flag of Russian Federation
6744 2 6 69
http://line24.ru/

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: 2014-03-11 06:08:14 +0400

Просмотрен: 516 раз

Обновлен: Mar 11 '14

Похожие вопросы:

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.