Не получается выполнить действия после совершения вызова, если никто не ответил и вызывающий абонент сам положил трубку. exten => h обрабатывается только при условии, что вызывающая сторона ответила на вызов. По идее, время на выполнение вызова не установлено, и если положить трубу должно приходить в DIALSTATUS = CANCEL, но ничего вообще не приходит. Куда копать, подскажите?
Сделайте exten => h,1,NoOp(${DIALSTATUS}) и смотрите, что там получается. У меня всё работает. Но ежели Вы пользуетесь макросами, то, начиная, по-моему, с версии 1.6, каждый макрос имеет свой собственный h extension. Соответственно, вызов сначала проходит через h exten макроса, а потом ещё через h exten диалплана.
[macro-1]
exten => s,1,Set(param=${ARG1})# save param
exten => s,2,Goto(macro-1,s,3)# need for h exten
exten => s,3,Dial(SIP/something/12345,,og)
exten => h,1,Noop(${DIALSTATUS})
Советую астер 1.8 для подобной темы. в 1.6 к сожалению не всё реализовано для обработки h.
давай я поразузнаю и завтра отпишу. Просто буквально сегодня из-за этого h пришлось 1.8 ставить и разруливать изменения в конфиге chan_dahdi.conf :) Голова кругом
Zavr2008 ( 2012-02-02 20:13:41 +0400 )редактироватьне используй макросы, а используй DIALSTATUS вот пример на скорую руку
exten => 095XXXXXXX,2,SET(GLOBAL(NOMERTO_MTC)=${EXTEN})
exten => 095XXXXXXX,n,Dial(SIP/${NOMERTO_MTC}@3003)
exten => _095XXXXXXX,n,NoOp( Dial Status: ${DIALSTATUS})
exten => _095XXXXXXX,n,Goto(s-${DIALSTATUS},1)
exten => s-NOANSWER,1,Hangup
exten => s-CONGESTION,1,Congestion
exten => s-CANCEL,1,Hangup
exten => s-BUSY,1,Dial(SIP/${NOMERTOMTC}@3004)
exten => s-CHANUNAVAIL,1,Dial(SIP/${NOMERTOMTC}@3004)
Задан: 2011-08-24 16:31:14 +0400
Просмотрен: 2,876 раз
Обновлен: Feb 02 '12
если кладет трубку звонящий - Dial после завершения вызова возвращает пустые переменные
Cancel cause code как передать?
Не говорит что недоступен абонент
Почему не происходит прекращение работы команды Dial?
Ошибка Object is likely destroyed. кто сталкивался
Настройка качества исходящего сигнала при звонке через e1550
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.