Добрый день! Проблема такая: входящий звонок идет в ivr, где если нажать нужную цифру, звонок уходит в очередь соответствующего отдела! Там у первого принявшего телефона входящий номер определяется! Далее, если перевести звонок на другой добавочный, у того КОМУ переводят, вместо внутреннего номера того, КТО переводит, отображается asterisk! Как сделать чтобы при переводе из очереди передавался внутренний номер переводящего! Перевод используется - attended transfer (*2)...
Кусок плана, куда приходит входящий вызов:
exten => s,n,Background(/var/lib/asterisk/moh/voicemail/voicemenu)
exten => s,n,WaitExten(7)
exten => 2,1,Answer()
exten => 2,n,Queue(2000,tm)
exten => 2,n,Hangup()
exten => 3,1,Answer()
exten => 3,n,Queue(3000,tm)
exten => 3,n,Hangup()
Думается, что очереди надо вынести в отдельный контекст и там описать трансфер, но никак не пойму как реализовать!
чтоб выводилься номер звонящего надо у всех агентов выставить
sendrpid=yes
чтоб выводился номер кто переводит, надо выставить callerid= у всех агентов.
Задан: 2014-09-05 09:34:29 +0400
Просмотрен: 1,297 раз
Обновлен: Sep 05 '14
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
Извините, что так, кармы нет для ответа! Все агенты имеют следующий вид:
[105]
deny=0.0.0.0/0.0.0.0
permit=192.168.0.1/24
type=friend
regexten=105
secret=105secret
dtmfmode=rfc2833
context=outcoling
host=dynamic
collerid=105<105>
disallow=all
allow=alaw
allow=ulaw
language=ru
callgroup=2
pickupgroup=2
qualify=yes
canreinvite=yes
call-limit=2
allowguest=no
nat=no
sendrpid=yes
Но при переводе из очереди, на дисплее того, КОМУ переводят красуется asterisk!!!
brr ( 2014-09-08 19:40:24 +0400 )редактироватьИ какой CID(num) назначается ? и что такое collerid ?
zzuz ( 2014-09-08 21:13:31 +0400 )редактироватьПрошу прощения, с астериском знаком недолго! Что значит какой CID(num) назначается??? callerid прописан по мануалу из интернета! Здесь с ошибкой, вообще collerid такого вида - collerid=105<105>... У меня чистый астериск, без web-интерфейса, dial-план писался вручную!
brr ( 2014-09-09 19:29:26 +0400 )редактироватьзвездочки не проходят... callerid=звездочка105звездочка<105>
brr ( 2014-09-09 19:31:09 +0400 )редактироватьКакие такие звездочки? не collerid , а callerid=num<name>
zzuz ( 2014-09-09 23:34:31 +0400 )редактироватьВ общем в CLI видно следующее: со 112 внутреннего номера звонок попадает в очередь 4000
-- Executing [4@menu:2] Queue("SIP/112-00000382", "4000,tm") in new stack
== Using SIP RTP CoS mark 5
brr ( 2014-09-10 20:34:10 +0400 )редактироватьЗвонок принимает 125-й внутренний и переводит на 109-й, на дисплее которого вместо 125 отображается asterisk:
-- <SIP/125-00000383> Playing 'pbx-transfer.alaw' (language 'ru')
== Using SIP RTP CoS mark 5
== Spawn extension (outcoling, 109, 1) exited non-zero on 'Local/109@outcoling-0000004f;2'
brr ( 2014-09-10 20:36:11 +0400 )редактироватьв CLI ничего не видно и ваши слова не подтверждает.
zzuz ( 2014-09-12 15:29:17 +0400 )редактироватьНа одном из форумов нашел, применил, работает!
exten => _[1-2]XX,n,ExecIf($[ ${LEN(${BLINDTRANSFER})} > 0 ]?Set(TRANSFERUSER=${BLINDTRANSFER}) )
exten => _[1-2]XX,n,ExecIf($[ ${LEN(${TRANSFERERNAME})} > 0 ]?Set(TRANSFERUSER=${TRANSFERERNAME}) )
exten => _[1-2]XX,n,ExecIf($[ ${LEN(${TRANSFERUSER})} > 0 ]?Set(TRANSFERUSER=${CUT(TRANSFERUSER,-,1)}) )
exten => _[1-2]XX,n,ExecIf($[ ${LEN(${TRANSFERUSER})} > 0 ]?Set(TRANSFERUSER=${CUT(TRANSFERUSER,\/,2)}) )
exten => [1-2]XX,n,ExecIf($[ "foo${TRANSFERUSER}" = "foo" ]?Set(_CID=${CALLERID(number)}) )
exten => _[1-2]XX,n,ExecIf($[ ${LEN(${TRANSFERUSER})} > 0 ]?Set(CALLERID(number)=${CID}-${TRANSFERUSER}) )
exten => _[1-2]XX,n,ExecIf($[ "foo${TRANSFERUSER}" != "foo" ]?Set(CALLERID(name)= from:${TRANSFERUSER}) )
exten => _[1-2]XX,n,Dial(SIP/${EXTEN},,tT)
Спасибо за помощь!
brr ( 2014-09-13 22:08:23 +0400 )редактировать