ВидеоКонф(ВКС)  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Перевод подобранных звонков

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

Перевод подобранных звонков

Сообщение shumiloff » 27 янв 2011, 12:07

Добрый день!

Подскажите пожалуйста, в чём может быть проблема.

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



queues.conf:
Код: выделить все
[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


Кусочек extensions.conf:
Код: выделить все
[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                               


features.conf:
Код: выделить все
[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
shumiloff
 
Сообщений: 60
Зарегистрирован: 18 ноя 2010, 20:04

Re: Перевод подобранных звонков

Сообщение ded » 27 янв 2011, 12:38

Судя по конфигам, ваш звонок приходит с сотового в контекст rtcom в очередь. Пикапить из очереди - это ерунда какая-то, механизм queue как раз упрощает работу без пикапов. Есть специальные параметры сценариев очереди - кидать звонок наименее занятому например. Пикап всё нарушает в такой стратегии!
Если вам кажется лучше так работать, то проще изменить стратегию очереди, например ringall или прогрессивное серийное искание - первый гудок звонит 100,
второй - 100 и 101, третий - 100, 101 и 102.
ded
 
Сообщений: 15826
Зарегистрирован: 26 авг 2010, 19:00

Re: Перевод подобранных звонков

Сообщение sorgchik » 27 янв 2011, 12:41

а не проще позвонить абоненту, которому необходимо перевести звонок и ему сказать, мол есть на парковке звонок для тебя, внутренний такой-то???
а еще проще в аську скинул и забыл :)
Аватар пользователя
sorgchik
 
Сообщений: 183
Зарегистрирован: 31 авг 2010, 21:14

Re: Перевод подобранных звонков

Сообщение shumiloff » 27 янв 2011, 12:55

ded писал(а):Судя по конфигам, ваш звонок приходит с сотового в контекст rtcom в очередь. Пикапить из очереди - это ерунда какая-то, механизм queue как раз упрощает работу без пикапов. Есть специальные параметры сценариев очереди - кидать звонок наименее занятому например. Пикап всё нарушает в такой стратегии!
Если вам кажется лучше так работать, то проще изменить стратегию очереди, например ringall или прогрессивное серийное искание - первый гудок звонит 100,
второй - 100 и 101, третий - 100, 101 и 102.


Да, звонок приходит в очередь. Но любой из очереди должен иметь возможность сказать звонящему клиенту "Подождите, я вас соединю с начальником Иван-Иванычем", затем позвонить Иван-Иванычу, спросить, будет ли он разговаривать с позвонившим и перевести на него. В принципе, это можно сделать трансфером самого Иван-Иваныча на запаркованный вызов, но это полумера. Трансферы должны работать всегда. ringall тут не подходит, потому что может возникнуть ситуация, когда нужно позвонившего абонента переадресовать на сотовый телефон или любой другой внешний.
shumiloff
 
Сообщений: 60
Зарегистрирован: 18 ноя 2010, 20:04

Re: Перевод подобранных звонков

Сообщение shumiloff » 27 янв 2011, 12:57

sorgchik писал(а):а не проще позвонить абоненту, которому необходимо перевести звонок и ему сказать, мол есть на парковке звонок для тебя, внутренний такой-то???
а еще проще в аську скинул и забыл :)


А если мне надо перевести запаркованный вызов на сотовый телефон? Вася, срочно вылетай из Германии, тут в оффисе для тебя припаркованный вызов, номер стопять. :D
shumiloff
 
Сообщений: 60
Зарегистрирован: 18 ноя 2010, 20:04

Re: Перевод подобранных звонков

Сообщение ded » 27 янв 2011, 13:09

Вопрос - зачем мой пост полностью процитирован?
shumiloff писал(а): Но любой из очереди должен иметь возможность сказать звонящему клиенту "Подождите, я вас соединю с начальником Иван-Иванычем", затем позвонить Иван-Иванычу, спросить, будет ли он разговаривать с позвонившим и перевести на него.

Для этого есть attended transfer (перевод с уведомлением). И если оператор очереди нормально принял звонок (без пикапа!) у него есть эта возможность.
ded
 
Сообщений: 15826
Зарегистрирован: 26 авг 2010, 19:00

Re: Перевод подобранных звонков

Сообщение shumiloff » 27 янв 2011, 13:40

ded писал(а):Вопрос - зачем мой пост полностью процитирован?


Оверквочу. Исправлюсь.

если оператор очереди нормально принял звонок (без пикапа!) у него есть эта возможность.


Хорошо, приведу пример ситуации, когда необходимо переводить звонок, поднятый из холда.

//входящий звонок клиента
- Добрый день, меня зовут Василий Пупкин, мне нужен Иван Иваныч.
- Подождите минутку, я узнаю, свободен ли он.
//оператор переводит клиента в холд на номер скажем, 107
//пока клиент слушает имперский марш, оператор набирает номер Иван Иваныча
- Иван Иваныч, с вами хочет поговорить Василий Пупкин.
- Я занят, отправь его к лешему.
//оператор вешает трубку, связывается с Лешим
- Добрый день, с вами хочет поговорить Василий Пупкин.
- Хорошо, соедини.
//оператор вешает трубку, подбирает клиента из холда (107)
- Уважаемый Василий, спасибо за ожидание, Иван Иваныч к сожалению сейчас не сможет ответить, я могу перевести Вас на Лешего.
- Хорошо, будьте добры.
//оператор нажимает решёточку и отправляет звонок к лешему

Все счастливы, все танцуют и поют, занавес.

А в данный момент оператор не сможет отправить Васю к лешему, потому что после пикапа трансфер не работает. А аттендед трансфер, насколько я понимаю, не даст оператору возможности поставить Васю в известность, что вместо Иван Иваныча он сейчас будет говорить с лешим, а это как-то нехорошо. Именно поэтому хочется иметь возможность трансфера после пикапа. Если же Иван Иваныч сам согласился поговорить с Васей, то оператор просто переводит Иван Иваныча на номер 107.
shumiloff
 
Сообщений: 60
Зарегистрирован: 18 ноя 2010, 20:04

Re: Перевод подобранных звонков

Сообщение ded » 27 янв 2011, 14:26

shumiloff писал(а): потому что после пикапа трансфер не работает.

Пикап не нужен.
shumiloff писал(а): А аттендед трансфер, насколько я понимаю, не даст оператору возможности поставить Васю в известность, что вместо Иван Иваныча он сейчас будет говорить с лешим, а это как-то нехорошо.
Да ну? А если проверим?
ded
 
Сообщений: 15826
Зарегистрирован: 26 авг 2010, 19:00

Re: Перевод подобранных звонков

Сообщение shumiloff » 01 фев 2011, 09:41

Каюсь, возможно плохо смотрел.
shumiloff
 
Сообщений: 60
Зарегистрирован: 18 ноя 2010, 20:04


Вернуться в Вопросы новичков

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 22

© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH