VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Время наступления события Ringing

Проблемы Asterisk без вэб-оболочек и их решения

Модераторы: april22, Zavr2008

Ответить
hamel1on
Сообщения: 17
Зарегистрирован: 07 дек 2011, 15:38

Время наступления события Ringing

Сообщение hamel1on »

Добрый день.

Во время звонка (DIAL) от оператора связи приходит статус Ringing (означает что звонок дошел до конечного абонента и у него звонит телефон).
Как узнать время наступления этого события? В документации ничего про это не нашел.

Есть конечно способ после разрыва соединения (exten=>h,1 ....) выполнить cat /var/log/asterisk/messages | grep {имя канала} и вытащить от туда дату и время.
Есть ли более цивилизованный метод?
ded
Сообщения: 15627
Зарегистрирован: 26 авг 2010, 19:00

Re: Время наступления события Ringing

Сообщение ded »

AMI?
hamel1on
Сообщения: 17
Зарегистрирован: 07 дек 2011, 15:38

Re: Время наступления события Ringing

Сообщение hamel1on »

Через AMI тоже можно, но сложно. Надо писать демон, который будет отслеживать эти события, также можно с помощью этого демона задать переменную канала с временем наступления этого события. А после разрыва соединения эту переменную занести в CDR, через exten=>h,1 ... . Вариант хороший. Еще есть варианты?
Samael28
Сообщения: 1057
Зарегистрирован: 08 янв 2011, 18:32
Откуда: Киев
Контактная информация:

Re: Время наступления события Ringing

Сообщение Samael28 »

Боюсь, проще методов нет.
Правка исходников или в разрыв ставить proxy, который будет отлавливать события 180 Ringing и генерировать события.
Мой профайл на Upwork
hamel1on
Сообщения: 17
Зарегистрирован: 07 дек 2011, 15:38

Re: Время наступления события Ringing

Сообщение hamel1on »

Вот к стати информация по изменению исходников. https://les.net/asterisk/pddpatch/
virus_net
Сообщения: 2337
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: Время наступления события Ringing

Сообщение virus_net »

А можно узнать зачем тебе словить Ringing? Задача то какая стоит ? М.б. есть другой способ решения.
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
tma
Сообщения: 1809
Зарегистрирован: 18 сен 2010, 20:50
Контактная информация:

Re: Время наступления события Ringing

Сообщение tma »

Может нужно человеку PDD узнать. Как и с extconfig, с insecure/etc - всмето того, чтобы девелоперам подправить исходники, люди изобретают костыли аля AMI в данном случае.
Хотя для PBX сложно представить зачем нужно считать PDD...
SkyTel OU - облачная АТС, DID, SIP-транк с посекундной тарификаицей, мобильная связь
http://skytel24.com | Эстония: +372.333.55.10 | Россия: +7(495)4019900
Аватара пользователя
Sfinx
Сообщения: 672
Зарегистрирован: 21 июн 2011, 23:40
Откуда: Odessa
Контактная информация:

Re: Время наступления события Ringing

Сообщение Sfinx »

hamel1on писал(а):Через AMI тоже можно, но сложно. Надо писать демон, который будет отслеживать эти события, также можно с помощью этого демона задать переменную канала с временем наступления этого события. А после разрыва соединения эту переменную занести в CDR, через exten=>h,1 ... . Вариант хороший. Еще есть варианты?
Там демон строк от силы в 50 выходит, вот 90% демона :

....
#include <astxx/manager.h>
#include <astxx/manager/action/agi.h>

namespace manager = astxx::manager;
namespace action = astxx::manager::action;
manager::connection *connection;

void process_event(astxx::manager::message::event e)
{
if ((e["Event"] == "Newstate") && (e["ChannelStateDesc"] == "Ringing")) {
// ....
}
}

...
int main() {

string ami_host = "localhost";
string ami_name = "ami7";
string ami_pass = "ami7_pass";

try {
connection = new manager::connection(ami_host);
boost::signals::scoped_connection c =
connection->register_event("", process_event);
action::login login(ami_name, ami_pass);
login(*connection);

for (;;) {
connection->wait_event();
connection->pump_messages();
connection->process_events();
}
}
catch (const manager::action::channel_not_found &c) {
cerr << "main: channel not found " << endl;
}
return 0;
}
....
Rus

-----------
SfinxSoft
http://sfinxsoft.com
Denis005
Сообщения: 1
Зарегистрирован: 20 дек 2013, 20:35

Re: Время наступления события Ringing

Сообщение Denis005 »

Может не совсем в тему, но у меня вопрос к Сфинксу - есть ли в Astxx возможность посылать команды (и получать ответы) в то время как там крутится цикл обработки событий (может быть есть пример ?). Поскольку как пишут создатели Astxx он однопоточный.
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH