Страница 2 из 2

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

Добавлено: 14 фев 2022, 21:46
Ferrum
Я пока через БД запустил соответствие по uniqueid,
завтра скину сюда что наваял, странно что это нормально не реализованно, наследованием переменных...

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

Добавлено: 14 фев 2022, 23:10
Zavr2008
Никто не мешает макрос при ответе оператора запускать. В нем просто юзать MASTER_CHANNEL и туда уже закидывать нужный таймстемп.
Подобные трюки кстати помогают и для менюх по "оценке качества" после звонка.
По Hangup в хандлере в канале звонящего эту сохраненку можно и в юзерфилд CDR писать.

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

Добавлено: 15 фев 2022, 15:50
Ferrum
Обещанная переменная через БД, привязываемся к 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})
По аналогии можно передавать и несколько переменных

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

Добавлено: 15 фев 2022, 16:03
Ferrum
Через SHARED

Код: Выделить всё

exten => s,1,SET(SHARED(foo,${MEMBERINTERFACE})=456) ; Макрос
exten => h,1,NoOp(${SHARED(foo,${MEMBERINTERFACE})}) ; Вх Контекст

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

Добавлено: 15 фев 2022, 20:19
Zavr2008
это надо так игнорить да гнать пургу плюс плодить говнокод с прямым mysql в диалплане...
элементарно решается вопрос без анании.

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

Добавлено: 16 фев 2022, 11:02
Ferrum
Ну говнокод я написал сразу, его 10 мин писать, про shared я только сейчас узнал (сделал кстати через него)
Зато тема с данными из очередей надеюсь полностью теперь закрыта и разобрана на этом форуме, что я считаю плюсом.
Спасибо тем кто откликается и помогает ))

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

Добавлено: 16 фев 2022, 11:27
Zavr2008
shared не поможет если звоняший сам трубку положил, а вот в MASTER_CHANNEL останется старейший канал этого звонка.
Мне жаль тех кто зайдет в эту тему по гуглу этим умником.

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

Добавлено: 16 фев 2022, 11:48
Ferrum
Что вы имеете ввиду, протестировал даже ?

Инфа есть в обоих вариантах, как я понял с 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