Attended Transfer почти работает/не работает
День добрый! Вот и я наткнулся на Attended Transfer :)
Прошерстил весь форум, но на мою проблему ответа не нашел. А проблемка такая:
Есть три телефона 200, 201 и 202. Звоню с 202 на 200. Принимаю звонок, разговариваю.
Далее перевожу звонок на 201 - нажимаю ##201.
На 202 играет МОН.
На 200 - КПВ.
201 звенит, снимаю трубку: 201 слышит, что говорит ему 200, но 200 не слышит 201, а слышит по-прежнему КПВ. Через тайм-аут астериск "отбивает" 201-го и звонок возвращается на 200. Если после перевода звонка на 200 положить трубку, то ситуация та же, только звонок возвращается обратно на 200.
Пробовал звонить с разных телефонов, чтобы исключить аппаратный глюк - ситуация с устойчивая одинаковая, значит дело в австериске.
Исходные данные конфигурации:
В диалплане использую стандартные заготовки из stdexten и demo
>core show version
Asterisk 1.6.2.5-0ubuntu1.1 built by buildd @ palmer on a i686 running Linux on 2010-07-16 13:24:33 UTC
ubuntu-server*CLI> features show
Builtin Feature Default Current
--------------- ------- -------
Pickup *8 *8
Blind Transfer # #1
Attended Transfer ##
One Touch Monitor
Disconnect Call * *0
Park Call
One Touch MixMonitor
ubuntu-server*CLI>
Dynamic Feature Default Current
--------------- ------- -------
(none)
ubuntu-server*CLI>
Call parking (Parking lot: default)
------------
Parking extension : 700
Parking context : parkedcalls
Parked call extensions: 701-720
лог вызова:
== Using SIP RTP CoS mark 5
== Extension Changed 202[BLF_Group_1] new state InUse for Notify User 200
-- Executing [200@office:1] Macro("SIP/202-000000b6", "stdexten,200,SIP/200") in new stack
-- Executing [s@macro-stdexten:1] Set("SIP/202-000000b6", "__DYNAMIC_FEATURES=") in new stack
-- Executing [s@macro-stdexten:2] Set("SIP/202-000000b6", "ORIG_ARG1=200") in new stack
-- Executing [s@macro-stdexten:3] GotoIf("SIP/202-000000b6", "0?6:4") in new stack
-- Goto (macro-stdexten,s,4)
-- Executing [s@macro-stdexten:4] Dial("SIP/202-000000b6", "SIP/200,20,thHkKT") in new stack
== Using SIP RTP CoS mark 5
-- Called 200>
-- SIP/200-000000b7 is ringing
-- SIP/200-000000b7 answered SIP/202-000000b6
ubuntu-server*CLI> перевод на 201
ubuntu-server*CLI>
-- Started music on hold, class 'default', on SIP/202-000000b6
-- <SIP/200-000000b7> Playing 'pbx-transfer.alaw' (language 'ru')
-- Executing [201@office:1] Macro("Local/201@office-9f2e;2", "stdexten,201,SIP/201") in new stack
-- Executing [s@macro-stdexten:1] Set("Local/201@office-9f2e;2", "__DYNAMIC_FEATURES=") in new stack
-- Executing [s@macro-stdexten:2] Set("Local/201@office-9f2e;2", "ORIG_ARG1=201") in new stack
-- Executing [s@macro-stdexten:3] GotoIf("Local/201@office-9f2e;2", "0?6:4") in new stack
-- Goto (macro-stdexten,s,4)
-- Executing [s@macro-stdexten:4] Dial("Local/201@office-9f2e;2", "SIP/201,20,thHkKT") in new stack
== Using SIP RTP CoS mark 5
-- Called 201>
== Extension Changed 201[BLF_Group_1] new state Ringing for Notify User 200
-- SIP/201-000000b8 is ringing
-- SIP/201-000000b8 answered Local/201@office-9f2e;2
== Extension Changed 201[BLF_Group_1] new state InUse for Notify User 200
ubuntu-server*CLI>
ubuntu-server*CLI> возврат по тайм-ауту назад
[Dec 24 12:44:47] NOTICE[14548]: features.c:2211 feature_request_and_dial: We exceeded our AT-timeout
-- Stopped music on hold on SIP/202-000000b6
-- <SIP/200-000000b7> Playing 'beep.gsm' (language 'ru')
== Extension Changed 201[BLF_Group_1] new state Idle for Notify User 200
== Spawn extension (macro-stdexten, s, 4) exited non-zero on 'Local/201@office-9f2e;2' in macro 'stdexten'
== Spawn extension (office, 201, 1) exited non-zero on 'Local/201@office-9f2e;2'
ubuntu-server*CLI> 200 отбился
== Spawn extension (macro-stdexten, s, 4) exited non-zero on 'SIP/202-000000b6' in macro 'stdexten'
== Spawn extension (office, 200, 1) exited non-zero on 'SIP/202-000000b6'
== Extension Changed 202[BLF_Group_1] new state Idle for Notify User 200
sip.conf:
[mysets](!)
type = friend
context = office
host = dynamic
disallow = all
allow = alaw,g729,ulaw
dtmfmode = rfc2833
secret = 1
nat = no
canreinvite = no
callgroup = 1
pickupgroup = 1
call-limit=20
transfer=yes
[200](mysets)
username = 200
callerid = "Secretary" <200>
mailbox = 200@office
subscribecontext=BLF_Group_1
[201](mysets)
username = 201
callerid = "Rotvatik" <201>
mailbox = 201@office
[202](mysets)
username = 202
callerid = "Vasya" <202>
mailbox = 202@office
Спасибо
|