Проблема с dahdi.
Человек звонит по dahdi, звонок приходит на астериск и попадает в очередь. До очереди человеку проигрывается сообщение, мол "Здравствуйте и бла бла бла".
Так вот, когда человек кладет трубку при прослушивании сообщения, то звонок попадает в очередь в 50% случаев.. До этого попадал в сто процентах, пока я перед добавлением в очередь не поставил Wait(2).
Если человек попал в очередь и положил трубку, не дождавшись ответа оператора, звонок висит и оператор когда подымает трубку слышит тишину.

Если все делать и звонить по сипу с обычного софтофона, то все проходит нормально.
вот мой екстеншн:
Код: Выделить всё
exten => s,1,Answer
exten => s,n,NoOp(${CALLERID(all)})
; Проверка есть ли оператор для обработки очереди
exten => s,n,MYSQL(Connect connid HOSTNAME USERNAME PASSWORD asterisk)
exten => s,n,MYSQL(Query resultid ${connid} SELECT count(uniqueid) as cnt from queue_member)
exten => s,n,MYSQL(Fetch foundRow ${resultid} cnt)
exten => s,n,MYSQL(Clear ${resultid})
exten => s,n,MYSQL(Disconnect ${connid})
exten => s,n,GotoIf($["${cnt}"!="0"]?success:nottime)
exten => s,n(nottime),GoTo(awt_menu,main,1)
exten => s,n(success),Playback(lode_menu_start_2_new)
; Если не ставил этот wait, то в 100 случаев если человек кладет трубку во время плейбека, то он все равно попадает в очередь
exten => s,n,Wait(2)
; Приоритет для звонков с мобилы
exten => s,n,Set(QueuePrio=)
exten => s,n,Set(SubTel=${CALLERID(number):0:4})
exten => s,n,Set(SubTel2=${CALLERID(number):0:3})
exten => s,n,GotoIf($[$["${SubTel}"=="8029"] | $["${SubTel}"=="8033"] | $["${SubTel}"=="8044"] | $["${SubTel}"=="8025"] | ["${SubTel2}"=="829"] | $["${SubTel2}"
=="833"] | $["${SubTel2}"=="844"] | $["${SubTel2}"=="825"]]?queuehigh:checknext)
exten => s,n(queuehigh),Set(QueuePrio=1)
exten => s,n(checknext),NoOp(${QueuePrio})
; Добавление в очередь
exten => s,n,Queue(main-queue-rt,t,,,,,,,,${QueuePrio})
exten => s,n,Hangup
exten => 3,1,Hangup
exten => i,1,Playback(beep)
exten => i,n,Hangup
exten => h,1,Wait(1)
exten => h,n,System(/usr/bin/lame -V0 /var/spool/asterisk/monitor/${UNIQUEID}.wav /var/www/localhost/htdocs/monitor/${UNIQUEID}.mp3)
exten => h,n,MYSQL(Connect connid HOSTNAME USERNAME PASSWORD asterisk)
exten => h,n,MYSQL(Query resultid ${connid} INSERT INTO queue_log (time, callid, event, data2) VALUES (DATE_FORMAT(NOW(),"%Y-%m-%d %H:%i:%s.%f"),'${UNIQUEID}','HANGUP','${CALLERID(all)}'))
exten => h,n,MYSQL(Disconnect ${connid})
exten => h,n,NoOp(ActionHangup Execute)
Код: Выделить всё
[trunkgroups]
[channels]
; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
busydetect=yes ; Detect busy signal
;
language=ru ; Set Russian language for messages
;
busycount=3 ; Count busy signal, when line to Hangup
;
callwaiting=yes ;
;
echocancel=yes ; Enable hardware echocancel.. hardware
; echocansel in our situation is OSLEC
context=from-pstn-grodno ; Context for incoming ring
;
signalling=fxs_ks ; Type signaling - "fxs_ks" is input line
;
rxgain=7 ; -100 to 100 is volume input signal
;
txgain=7 ; -100 to 100 is volume output signal
;
usecallerid=yes ;
hidecallerid=no ;
callerid=asreceived ;
cidsignalling=dtmf ;
cidstart=dtmf ;
;
channel => 1 ; Number of zap channel, what configure in