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

как удалять данные из astdb

Добавлено: 03 фев 2012, 20:32
iprobed
Существует макрос, с помощью которого записываются разговоры в очереди.

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

[macro-queue]
exten => s,1,Set(DB(${CHANNEL}/file)=${RECORD-DIR}/${ARG2}/${STRFTIME(${EPOCH},,%Y)}/${STRFTIME(${EPOCH},,%h)}/${STRFTIME(${EPOCH},,%d)}/${STRFTIME(${EPOCH},,%H.%M.S)}_${CALLERID(num)})
exten => s,n,Set(MONITOR_FILENAME=${DB(${CHANNEL}/file)})
exten => s,n,Queue(${ARG2},t,90)
exten => e,1,Hangup
exten => h,1,StopMixMonitor
exten => h,n,Set(MONITOR_FILENAME=${DB_DELETE(${CHANNEL}/file)})
exten => h,n,Set(FILE=${MONITOR_FILENAME}_${MEMBERINTERFACE:4})
exten => h,n,System(mv ${MONITOR_FILENAME}.alaw ${FILE}.alaw)
exten => h,n,DBdeltree(${CHANNEL})
exten => h,n,Hangup
Подскажите, пожалуйста, как удалять данные из astdb, если пользователь не дождался ответа.

Re: как удалять данные из astdb

Добавлено: 03 фев 2012, 20:37
Aven
В версии <= 1.4
*CLI> core show application DBdeltree
В версии >= 1.6
*CLI> core show function DB_DELETE

Re: как удалять данные из astdb

Добавлено: 03 фев 2012, 21:00
iprobed
все конечно, замечательно, когда в очереди человеку ответили( в этом случае срабатывают даже оба названных Вами способа)

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

exten => h,n,Set(MONITOR_FILENAME=${DB_DELETE(${CHANNEL}/file)})
...
exten => h,n,DBdeltree(${CHANNEL})
но, что делать если звонящий не дождался ответа в течении минуты и положил трубку (QUEUESTATUS в этом случае бесполезен, если я правильно понимаю) ?

Re: как удалять данные из astdb

Добавлено: 03 фев 2012, 21:05
Vlad1983
вставить этот кусок
exten => h,1,StopMixMonitor
exten => h,n,Set(MONITOR_FILENAME=${DB_DELETE(${CHANNEL}/file)})
exten => h,n,Set(FILE=${MONITOR_FILENAME}_${MEMBERINTERFACE:4})
exten => h,n,System(mv ${MONITOR_FILENAME}.alaw ${FILE}.alaw)
exten => h,n,DBdeltree(${CHANNEL})
exten => h,n,Hangup
в контекст где очередь вызывается, верней макрос этот

в общем конкретное место ловить
exten => h,1,NoOp(context name)
на всех участках прохождения звонка

и что это за странный экстен exten => e,1,Hangup

Re: как удалять данные из astdb

Добавлено: 03 фев 2012, 21:31
iprobed
Спасибо, это то, что было необходимо.
Всем огромное спасибо за потраченное время!
http://voip.rus.net/tiki-index.php?page ... extensions
e: Перехват расширений i,t и T для обработки ошибки в едином месте. Для выяснения типа ошибки может быть использована функция EXCEPTION

Re: как удалять данные из astdb

Добавлено: 03 фев 2012, 22:01
Vlad1983
надеюсь понятно, что со всем куcком переборщил
достаточно
exten => h,1,DBdeltree(${CHANNEL})

Re: как удалять данные из astdb

Добавлено: 04 фев 2012, 00:12
iprobed
Это понятно, спасибо!