Не получается выполнить действия после совершения вызова, если никто не ответил и вызывающий абонент сам положил трубку. 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,917 раз
Обновлен: Feb 02 '12
Cancel cause code как передать?
если кладет трубку звонящий - Dial после завершения вызова возвращает пустые переменные
Asterisk не шлет CANCEL при звонке на группу
Нет голосового сообщения если телефон выключен или заблокирован
Ошибка Object is likely destroyed. кто сталкивался
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.