Страница 1 из 1
ограничение длительности разговора в очереди
Добавлено: 08 дек 2021, 14:12
lpn672
Всем привет.
Читал читал и никак нет ответа. Как ограничить длительности звонка принятого из очереди? Для Dial() есть параметр, а с Queue() тишина.
Суть вопроса - оператор обрабатывает входящий звонок из очереди и нужно ограничить такой звонок, например, 5 минут. Это чтобы сбрасывать умалишенных с линии, ведь оператор не имеет права первым положить трубу.
Как или никак?
Re: ограничение длительности разговора в очереди
Добавлено: 08 дек 2021, 16:08
Wapo
Например, оператора прописать типа Local/ с указанием контекста, где в dial выставить нужное значение
Re: ограничение длительности разговора в очереди
Добавлено: 08 дек 2021, 18:52
lpn672
Wapo писал(а):Например, оператора прописать типа Local/ с указанием контекста, где в dial выставить нужное значение
Хм... Я что-то не понимаю. В контексте кол-центра Dial() вообще нет. Вот весь контекст. Что куда пишем?
Код: Выделить всё
exten => _X.,1,Noop(Incoming CALL channel: ${CHANNEL} context: ${CONTEXT} number: ${CALLERID(num)})
same => n,Answer()
same => n,Set(VOLUME(TX)=2) ; operator voice level
same => n,Playback(callcenter-privet)
same => n,Wait(2)
same => n,GoSub(sub-monitor,s,1(${CALLERID(num)},${EXTEN}))
same => n,Queue(call-center,tT,,,120)
same => n,Set(CDR(queuestatus)=${QUEUESTATUS})
same => n,Dumpchan()
same => n,Wait(2)
same => n,Playback(all-operator-busy)
same => n,Wait(1)
same => n(end),Hangup()
Re: ограничение длительности разговора в очереди
Добавлено: 09 дек 2021, 10:06
Wapo
Агент очереди типа Local/111@call-agent
[call-agent]
exten => XXX,1,Dial(SIP/${EXTEN}..........
Re: ограничение длительности разговора в очереди
Добавлено: 09 дек 2021, 11:16
ded
Код: Выделить всё
[call-agent]
exten => _XXX,1,Dial(SIP/${EXTEN}.
Признак шаблона!
Re: ограничение длительности разговора в очереди
Добавлено: 09 дек 2021, 12:20
lpn672
Wapo писал(а):Агент очереди типа Local/111@call-agent
[call-agent]
exten => XXX,1,Dial(SIP/${EXTEN}..........
Так-с... Понял схему, сделал (дошло так сказать), но... Но статус очереди отображает такого оператора как "инвалид"
Код: Выделить всё
ast1*CLI> queue show call-center
call-center has 0 calls (max 25) in 'rrmemory' strategy (7s holdtime, 156s talktime), W:0, C:202, A:65, SL:90.6%, SL2:72.3% within 45s
Members:
VLASENKO (Local/102@from-call-center-queue) with penalty 1 (ringinuse disabled) (Invalid) has taken no calls yet
Почитал все вокруг это проблемы. И пока тупик нариcовался.
Что имеем:
Код: Выделить всё
CLI>core show version
Asterisk 16.20.0 built by root @ ast1 on a x86_64 running Linux on 2021-09-15 07:03:50 UTC
#cat /etc/asterisk/modules.conf
preload => pbx_config.so
preload => chan_local.so
#cat /etc/asterisk/queue.conf
[call-center]
announce-frequency=60
announce-position=yes
autopause=no
autopausebusy=no
joinempty = yes
leavewhenempty = no
periodic-announce-frequency = 45
queue-callswaiting = queue-callswaiting
queue-thankyou = queue-thankyou
queue-thereare = queue-thereare
queue-youarenext = queue-youarenext
setqueueentryvar=yes
setqueuevar=yes
strategy=rrmemory
timeout=15
retry=5
timeoutpriority=app
musicclass = moh-custom
autofill=yes
maxlen=25
memberdelay=0
servicelevel=45
wrapuptime=30
ringinuse=no
member => SIP/101,2,MAMIEDOV
member => SIP/102,1,VLASENKO
member => Local/102@from-call-center-queue,1,VLASENKO
member => SIP/103,1,OSAD
Вызовы просто в диалплане на local идут. Нажимаем "4", вызываем - соединяет, всё ОК.
Код: Выделить всё
[test-local-dial]
exten => 4,1,Dial(Local/4@services
[services]
exten => 4,1,Dial(SIP/604)
И я знаю, что эта проблема уже не относится к теме, но все же...
Re: ограничение длительности разговора в очереди
Добавлено: 09 дек 2021, 15:40
lpn672
В догонку по оффтопику.
Чтобы member в очереди записанный через Local небыл Invalid следует указывать сигнальный интерфейс (state_interface).
Так у меня работает:
Код: Выделить всё
#cat /etc/asterisk/queue.conf
[call-center]
БЫЛО
; syntax: member => interface,[,penalty][,membername][,state_interface][,ringinuse][,wrapuptime]
member => SIP/101,2,MAMIEDOV
member => SIP/102,1,VLASENKO
member => SIP/103,1,OSAD
СТАЛО
; syntax: member => interface,[,penalty][,membername][,state_interface][,ringinuse][,wrapuptime]
member => Local/101@from-call-center-queue/n,2,MAMIEDOV,SIP/101
member => Local/102@from-call-center-queue/n,1,VLASENKO,SIP/102
member => Local/103@from-call-center-queue/n,1,OSAD,SIP/103
#CLI dialplan show from-call-center-queue
'_XXX' => 1. Dial(SIP/${EXTEN},15,rtTL(300000,240000,30000)) [extensions.conf:346]
-= 1 extension (1 priority) in 1 context. =-
ded писал(а):Код: Выделить всё
[call-agent]
exten => _XXX,1,Dial(SIP/${EXTEN}.
Признак шаблона!
Всем ответившим спасибо. Работает.
Тему закрываем.