Добрый день, данный вопрос уже обсуждался недавно, и тогда то ли у меня была галюцинация но оно как мне показалось заработало, однако сейчас начав тестить вижу что не работает.
Вот ссылка на проблему http://asterisk-support.ru/question/983/problema-s-cdr
Делаю так
exten => XXXXXXXXXX,1,Background(hi)
exten => XXXXXXXXXX,2,Answer()
exten => XXXXXXXXXX,3,Set(CALLERID(num)=0${CALLERID(num)})
exten => XXXXXXXXXX,4,Set(CALLERID(num)=${CALLERID(num):-10:10})
exten => XXXXXXXXXX,5,Set(channel=${FILTER(0123456789qwertyuiopasdfghjklzxcvbnm,${CDR(channel)})})
exten => XXXXXXXXXX,6,Set(fname=${EPOCH}-${CHANNEL(channeltype)}-${channel})
exten => XXXXXXXXXX,7,MixMonitor(/home/asteriskftp/${fname}.wav,b)
exten => XXXXXXXXXX,8,Dial(SIP/1001,15,tm)
exten => XXXXXXXXXX,9,GotoIf($["${DIALSTATUS}" = "BUSY"]?11:10)
exten => XXXXXXXXXX,10,GotoIf($["${DIALSTATUS}" = "NOANSWER"]?11:11)
exten => XXXXXXXXXX,11,StopMixMonitor()
exten => XXXXXXXXXX,12,ResetCDR()
exten => XXXXXXXXXX,13,Set(channel=${FILTER(0123456789qwertyuiopasdfghjklzxcvbnm,${CDR(channel)})})
exten => XXXXXXXXXX,14,Set(fname=${EPOCH}-${CHANNEL(channeltype)}-${channel})
exten => XXXXXXXXXX,15,MixMonitor(/home/asteriskftp/${fname}.wav,b)
exten => XXXXXXXXXX,16,Dial(SIP/1002,15,tm)
exten => XXXXXXXXXX,17,GotoIf($["${DIALSTATUS}" = "BUSY"]?19:18)
exten => XXXXXXXXXX,18,GotoIf($["${DIALSTATUS}" = "NOANSWER"]?19:19)
exten => XXXXXXXXXX,19,StopMixMonitor()
exten => XXXXXXXXXX,20,ResetCDR()
exten => XXXXXXXXXX,21,Set(channel=${FILTER(0123456789qwertyuiopasdfghjklzxcvbnm,${CDR(channel)})})
exten => XXXXXXXXXX,22,Set(fname=${EPOCH}-${CHANNEL(channeltype)}-${channel})
exten => XXXXXXXXXX,23,MixMonitor(/home/asteriskftp/${fname}.wav,b)
exten => XXXXXXXXXX,24,Dial(SIP/AST/096XXXXXXX,45,m)
exten => XXXXXXXXXX,25,GotoIf($["${DIALSTATUS}" = "BUSY"]?voicemail,s,1)
exten => XXXXXXXXXX,26,GotoIf($["${DIALSTATUS}" = "NOANSWER"]?voicemail,s,1)
exten => XXXXXXXXXX,27,StopMixMonitor()
exten => XXXXXXXXXX,28,Hangup()
В случае если 1001 не берет трубку или сбрасывает звонок на 1002 идет с тем же CDR а соответственно и с тем же именем файла что и для первого, где косяк не пойму, почему не срабатывает ResetCDR
косяк в том, что у вас имя для всех этих cdr будет одинаково.
ибо вот это
exten => XXXXXXXXXX,14,Set(fname=${EPOCH}-${CHANNEL(channeltype)}-${channel})
будет возвращать всегда одно и то же, а именно канал ВХЗОДЯЩИЙ. который нефига не поменялся за это время.
а что вам надо то? эжтот диадлплан вообще верх косяков. так и не убрали переходы на один и тото же екстеншн с разными уусловиями. имена одинаковы и вообще это все бред.
если вашего скила не хватает для вылавливания в нем багов, делайте както так
exten => XXXXXXXXXX,14,Set(fname=${EPOCH}-${CHANNEL(channeltype)}-${channel}-1002)
Используйте контекст h. В нем уже можно манипулировать именем файла и понять, кто ответил.
Для таких переходов лучше использоваться Dial(Local/1002@context/n,,tT)
, чтобы создавать отдельный канал со своим входом (а там же и cdr'ом).
Задан: 2011-09-15 12:03:44 +0400
Просмотрен: 1,342 раз
Обновлен: Sep 15 '11
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.