ВидеоКонф(ВКС)  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

входящий->очередь->узнать время ответа оператора

Проблемы и их решения Asterisk как такового

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

Re: входящий->очередь->узнать время ответа оператора

Сообщение Ferrum » 14 фев 2022, 22:46

Я пока через БД запустил соответствие по uniqueid,
завтра скину сюда что наваял, странно что это нормально не реализованно, наследованием переменных...
Аватар пользователя
Ferrum
 
Сообщений: 333
Зарегистрирован: 25 ноя 2011, 15:16

Re: входящий->очередь->узнать время ответа оператора

Сообщение Zavr2008 » 15 фев 2022, 00:10

Никто не мешает макрос при ответе оператора запускать. В нем просто юзать MASTER_CHANNEL и туда уже закидывать нужный таймстемп.
Подобные трюки кстати помогают и для менюх по "оценке качества" после звонка.
По Hangup в хандлере в канале звонящего эту сохраненку можно и в юзерфилд CDR писать.
Российские шлюзы E1 Alvis-GW. Модернизация УПАТС с E1, Установка FreePBX, Системы антифрод "в разрыв" потоков E1 PRI / SS#7 ISUP.
Аватар пользователя
Zavr2008
 
Сообщений: 2161
Зарегистрирован: 27 янв 2011, 01:35

Re: входящий->очередь->узнать время ответа оператора

Сообщение Ferrum » 15 фев 2022, 16:50

Обещанная переменная через БД, привязываемся к MEMBERINTERFACE
Создана таблица в БД с двумя столбцами INTERFACE и PR

В поле PR передаем значение 123

Код: выделить все
[macro-test]
exten => s,1,MYSQL(Connect connid mysql.local pbx *** astpbx)
exten => s,n,MYSQL(Query resultid ${connid} INSERT INTO macro_log (`INTERFACE, `PR`) VALUES (${MEMBERINTERFACE}, 123))
exten => s,n,MYSQL(Disconnect ${connid})


Код: выделить все
[in]
exten => s,1,Queue(Q1,t,,,10,,test)

exten => h,1,MYSQL(Connect connid mysql.local pbx *** astpbx)
exten => h,n,MYSQL(Query resultid ${connid} SELECT PR FROM macro_log WHERE INTERFACE=${MEMBERINTERFACE})
exten => h,n,MYSQL(Fetch fetchid ${resultid} PR)
exten => h,n,MYSQL(Query resultid ${connid} DELETE FROM macro_log WHERE INTERFACE=${MEMBERINTERFACE})
exten => h,n,MYSQL(Clear ${resultid})
exten => h,n,MYSQL(Disconnect ${connid})
exten => h,n,NoOp(${PR})


По аналогии можно передавать и несколько переменных
Аватар пользователя
Ferrum
 
Сообщений: 333
Зарегистрирован: 25 ноя 2011, 15:16

Re: входящий->очередь->узнать время ответа оператора

Сообщение Ferrum » 15 фев 2022, 17:03



Через SHARED

Код: выделить все
exten => s,1,SET(SHARED(foo,${MEMBERINTERFACE})=456) ; Макрос
exten => h,1,NoOp(${SHARED(foo,${MEMBERINTERFACE})}) ; Вх Контекст
Аватар пользователя
Ferrum
 
Сообщений: 333
Зарегистрирован: 25 ноя 2011, 15:16

Re: входящий->очередь->узнать время ответа оператора

Сообщение Zavr2008 » 15 фев 2022, 21:19

это надо так игнорить да гнать пургу плюс плодить говнокод с прямым mysql в диалплане...
элементарно решается вопрос без анании.
Российские шлюзы E1 Alvis-GW. Модернизация УПАТС с E1, Установка FreePBX, Системы антифрод "в разрыв" потоков E1 PRI / SS#7 ISUP.
Аватар пользователя
Zavr2008
 
Сообщений: 2161
Зарегистрирован: 27 янв 2011, 01:35

Re: входящий->очередь->узнать время ответа оператора

Сообщение Ferrum » 16 фев 2022, 12:02

Ну говнокод я написал сразу, его 10 мин писать, про shared я только сейчас узнал (сделал кстати через него)
Зато тема с данными из очередей надеюсь полностью теперь закрыта и разобрана на этом форуме, что я считаю плюсом.
Спасибо тем кто откликается и помогает ))
Аватар пользователя
Ferrum
 
Сообщений: 333
Зарегистрирован: 25 ноя 2011, 15:16

Re: входящий->очередь->узнать время ответа оператора

Сообщение Zavr2008 » 16 фев 2022, 12:27

shared не поможет если звоняший сам трубку положил, а вот в MASTER_CHANNEL останется старейший канал этого звонка.
Мне жаль тех кто зайдет в эту тему по гуглу этим умником.
Российские шлюзы E1 Alvis-GW. Модернизация УПАТС с E1, Установка FreePBX, Системы антифрод "в разрыв" потоков E1 PRI / SS#7 ISUP.
Аватар пользователя
Zavr2008
 
Сообщений: 2161
Зарегистрирован: 27 янв 2011, 01:35

Re: входящий->очередь->узнать время ответа оператора

Сообщение Ferrum » 16 фев 2022, 12:48

Что вы имеете ввиду, протестировал даже ?

Инфа есть в обоих вариантах, как я понял с shared проблемы при использовании local/, а не sip/ в очередях

Код: выделить все
exten => h,10,NoOp(${CHANNEL(hangupsource)})
exten => h,11,NoOp(${SHARED(foo,SIP/${MEMBERINTERFACE})})


Код: выделить все
Executing [h@IN2:10] NoOp("SIP/TTK-00042078", "SIP/322-00042079") in new stack
        Executing [h@IN2:11] NoOp("SIP/TTK-00042078", "123") in new stack


Код: выделить все
Executing [h@IN2:10] NoOp("SIP/TTK-0004207f", "SIP/TTK-0004207f") in new stack
        Executing [h@IN2:11] NoOp("SIP/TTK-0004207f", "123") in new stack
Аватар пользователя
Ferrum
 
Сообщений: 333
Зарегистрирован: 25 ноя 2011, 15:16

Пред.

Вернуться в Конфигурация и настройка Asterisk

Кто сейчас на форуме

Сейчас этот форум просматривают: Majestic-12 [Bot] и гости: 16

© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH