Перевод подобранных звонков
Добавлено: 27 янв 2011, 11:07
Добрый день!
Подскажите пожалуйста, в чём может быть проблема.
1. Как надо:
Клиент звонит, попадает на менеджера. Менеджер в случае необходимости либо переводит вызов на другой телефон (внутренний или внешний - не важно), либо паркует его. Затем он может подобрать припаркованный вызов и продолжать разговор или перевести его снова на другой телефон.
2. Как есть:
Клиент совершает звонок, попадает на менеджера. Менеджер в случае необходимости переводит вызов на любой внутренний или внешний номер - работает.
Менеджер может припарковать вызов, а затем подобрать его через какое-то время и продолжать разговор - тоже работает.
Менеджер может перевести подобранный вызов на любой номер - не работает.
После того, как менеджер подобрал клиента, при нажатии # и затем последующем наборе номера, клиент и менеджер слышат тоновые DTFM сигналы, переадресации не происходит.
Для определённости положим, что нам приходит звонок только с сотового в контекст rtcom
Кусочек sip.conf:
queues.conf:
Кусочек extensions.conf:
features.conf:
Подскажите пожалуйста, в чём может быть проблема.
1. Как надо:
Клиент звонит, попадает на менеджера. Менеджер в случае необходимости либо переводит вызов на другой телефон (внутренний или внешний - не важно), либо паркует его. Затем он может подобрать припаркованный вызов и продолжать разговор или перевести его снова на другой телефон.
2. Как есть:
Клиент совершает звонок, попадает на менеджера. Менеджер в случае необходимости переводит вызов на любой внутренний или внешний номер - работает.
Менеджер может припарковать вызов, а затем подобрать его через какое-то время и продолжать разговор - тоже работает.
Менеджер может перевести подобранный вызов на любой номер - не работает.
После того, как менеджер подобрал клиента, при нажатии # и затем последующем наборе номера, клиент и менеджер слышат тоновые DTFM сигналы, переадресации не происходит.
Для определённости положим, что нам приходит звонок только с сотового в контекст rtcom
Кусочек sip.conf:
Код: Выделить всё
[general]
context=test
bindaddr = 0.0.0.0
srvlookup = yes
allowguest=no ; Allow or reject guest calls (default is yes)
allowoverlap=no ; Disable overlap dialing support. (Default is yes)
bindport=5060 ; UDP Port to bind to (SIP standard port for unencrypted UDP
disallow=all ; Allow codecs in order of preference
allow=g722
allow=alaw
allow=ulaw
limitonpeers=yes
language=en ; Default language setting for all users/peers
dtmfmode = rfc2833 ; Set default dtmfmode for sending DTMF. Default: rfc2833
[authentication]
[tn-rostelekom]
type=friend
nat=no
host=********
disallow=all
allow=alaw
allow=ulaw
context=rtcom
[sets](!)
type=friend
context=office
host=dynamic
allowtransfer=yes
nat=yes
disallow=all
allow=g722
allow=alaw
allow=ulaw
[701](sets)
username=701
secret=passwordhere
Код: Выделить всё
[general]
persistentmembers = yes
keepstats = no
autofill = yes
monitor-type = MixMonitor
[cons]
strategy=ringall
member=SIP/701,1
member=SIP/702,2
member=SIP/703,3
member=SIP/704,4
;member=SIP/705,5
Код: Выделить всё
[general]
static=yes
writeprotect=no
clearglobalvars=no
[rtcom]
exten => _ZXXXXXXXXXX,1,Set(fname=${STRFTIME(${EPOCH},,%Y.%m.%d-%H.%M.%S)}_${CALLERID(num)}-701.wav,,Tt)
exten => _ZXXXXXXXXXX,n,noop("Start recording to "${fname})
exten => _ZXXXXXXXXXX,n,MixMonitor(/home/audio/${fname})
exten => _ZXXXXXXXXXX,n,Answer
exten => _ZXXXXXXXXXX,n,Wait(1)
exten => _ZXXXXXXXXXX,n,Queue(cons,t,,Tt)
exten => _ZXXXXXXXXXX,n,Hangup
[office]
;Local
exten => _7XX,1,NoOp(${EXTEN})
exten => _7XX,n,Set(fname=${STRFTIME(${EPOCH},,%Y-%m-%d_%H-%M-%S)}-${CALLERID(num)}-${EXTEN})
exten => _7XX,n,MixMonitor(/home/audio/${fname}.wav)
exten => _7XX,n,Dial(SIP/${EXTEN},,Tt)
;Parked
exten => _1XX,1,NoOp(${EXTEN})
exten => _1XX,n,Answer()
exten => _1XX,n,ParkedCall(${EXTEN},,Tt)
;Mobile
exten => _89XXXXXXXXX,1,Set(fname=${STRFTIME(${EPOCH},,%Y-%m-%d_%H-%M-%S)}-${CALLERID(num)}-${EXTEN})
exten => _89XXXXXXXXX,n,MixMonitor(/home/audio/${fname}.wav)
exten => _89XXXXXXXXX,n,Dial(SIP/tn-sipnet1/${EXTEN},120,Tt)
;exten => _89XXXXXXXXX,n,Dial(SIP/tn-sipnet2/${EXTEN},120,Tt)
exten => _89XXXXXXXXX,n,Hangup
exten => _79XXXXXXXXX,1,Set(fname=${STRFTIME(${EPOCH},,%Y-%m-%d_%H-%M-%S)}-${CALLERID(num)}-${EXTEN})
exten => _79XXXXXXXXX,n,MixMonitor(/home/audio/${fname}.wav)
exten => _79XXXXXXXXX,n,Dial(SIP/tn-sipnet1/${EXTEN},120,Tt)
;exten => _79XXXXXXXXX,n,Dial(SIP/tn-sipnet2/${EXTEN},120,Tt)
exten => _79XXXXXXXXX,n,Hangup
exten => _+79XXXXXXXXX,1,Set(fname=${STRFTIME(${EPOCH},,%Y-%m-%d_%H-%M-%S)}-${CALLERID(num)}-${EXTEN})
exten => _+79XXXXXXXXX,n,MixMonitor(/home/audio/${fname}.wav)
exten => _+79XXXXXXXXX,n,Dial(SIP/tn-sipnet1/${EXTEN},120,Tt)
;exten => _+79XXXXXXXXX,n,Dial(SIP/tn-sipnet2/${EXTEN},120,Tt)
exten => _+79XXXXXXXXX,n,Hangup
Код: Выделить всё
[general]
parkext => 100 ; What extension to dial to park
parkpos => 101-120 ; What extensions to park calls on. These needs to be
; numeric, as Asterisk starts from the start position
; and increments with one for the next parked call
parkingtime => 180 ; Number of seconds a call can be parked for
context=parkedcalls
findslot => next
transferdigittimeout => 3
courtesytone = beep
xfersound = beep
xferfailsound = beeperr
pickupexten = *8
featuredigittimeout = 1000
atxfernoanswertimeout = 15
[featuremap]
blindxfer => # ; Blind transfer (default is #) -- Make sure to set the T and/or t option in the Dial() or Queue() app call!
disconnect => *0 ; Disconnect (default is *) -- Make sure to set the H and/or h option in the Dial() or Queue() app call!
automon => *1 ; One Touch Record a.k.a. Touch Monitor -- Make sure to set the W and/or w option in the Dial() or Queue() app call!
atxfer => *2 ; Attended transfer -- Make sure to set the T and/or t option in the Dial() or Queue() app call!
parkcall => #72
[parcedcalls]
;context=> from
parkpos=> 101-120
findslot=> next