Для телефонов марки Digium есть несколько вариантов provision: через xml файлы, через модуль астериска dpma. Настроим dpma.

1. Дли использования модуля dpma необходимо получить лицензию с сайта digium. Для этого нужно заказать бесплатную лицензию DPMA на официальном сайте производителя: http://store.digium.com/productview.php?product_code=804-00032 . После того, как ключ пришел на почту можно продолжать. Скачиваем утилиту для получения лицензии...

Если звонок был в очереди, то надо добавить параметр c для продолжения звонка после того как оператор повесил трубку. Так же требуется проверить был ли отвечен звонок, ибо в другом случае не стоит спрашивать клиента оценить звонок

exten => _X.,n,Queue(test,txXc)
exten => _X.,n,Macro(mark)

[macro-mark]
exten => s,1,NOOP(QUEUESTATUS: ${QUEUESTATUS})
same => n,GotoIf( $[ "${QUEUESTATUS}" = "TIMEOUT" ]?gohang)

same => n,Read(MARK,voprosy1,1,,2,10)
same => n,GotoIf( $[ ${ISNULL(${MARK})} = 0 ]?nextq)
same => n,SET(MARK=999)
same => n(nextq),SET(ODBC_MARK_REG(${UNIQUEID},${MARK},"1")=1)
same => n,Wait(2)
same => n,Read(MARK2,voprosy2,1,,2,10)
same => n,GotoIf( $[ ${ISNULL(${MARK2})} = 0 ]?nextq2)
same => n,SET(MARK2=999)
same => n(nextq2),SET(ODBC_MARK_REG(${UNIQUEID},${MARK2},"2")=1)

same => n,GotoIf( $[ ${MARK2} = 999 & ${MARK} = 999 ]?gohang)

Для оценки исходящего звонка:
F(context,exten,priority) - Когда вызывающий абонент завершает вызов, переадресовать вызываемого абонента аналогично GoTo по указанному назначению и выполнить.
F - если вызывающий абонент завершает вызов а параметры не заданы, перейти на 'n' следующий приоритет в текущем контексте.
g - Когда вызов завершен вызываемой стороной (в отличии от опции F), выполнить следующий приоритет в текущем контексте.
G - Если вызов отвечен, переадресовать вызывающую сторону на указанный приоритет(context,exten,priority), а вызываемую на указанный приоритет плюс 1.

Например:

exten => s,n,Dial(SIP/test/3444,120,F(SetOutMark,${EXTEN},1))

[SetOutMark]
exten => s,1,Read(MARK,custom/mark_q,1,,2,10)
exten => s,n,SET(ODBC_MARK_REG(${MARK},${UNIQ_ORIG})=1)
exten => s,n,Playback(custom/spasibo_mark)
exten => s,n,Hangup()