Вход | Регистрация
Вы здесь: Главная / Форум / Главный форум по Asterisk / Конфигурация и настройка / Опять условный перевод звонков

Опять условный перевод звонков

Опять условный перевод звонков
Avatara of psj
Сообщений: 5

Опять условный перевод звонков

Стандартная задача. Есть 3 телефона: 115, 144, 199. Необходимо сделать условный перевод звонка.
Проблема:
Звоним со 199 номера на 144. На 144 раздается звонок, снимаем трубку, разговариваем, для перевода на 115 номер набираем #115. На 115 номере раздаётся звонок, снимаем трубку там тишина, а на 144 номере раздаются звонки дозвона. Через тайм-аут звонок отбивается и возвращается на номер 199.

sunrt*CLI> core show version
Asterisk 1.6.0.21 built by root @ sunrt.dinp.local on a amd64 running FreeBSD on 2010-09-29 09:40:36 UTC


В консоли наблюдаем:
-- Executing [144@dp-reception:1] Dial("SIP/199-0000001b", "SIP/144,90,tTkKm") in new stack
== Using SIP RTP TOS bits 184
== Using UDPTL TOS bits 184
-- Called 144
-- Started music on hold, class 'default', on SIP/199-0000001b
-- SIP/144-0000001c is ringing
-- SIP/144-0000001c answered SIP/199-0000001b
-- Stopped music on hold on SIP/199-0000001b
[Oct 4 15:56:39] DTMF[18633]: channel.c:2856 __ast_read: DTMF begin '#' received on SIP/144-0000001c
[Oct 4 15:56:39] DTMF[18633]: channel.c:2866 __ast_read: DTMF begin passthrough '#' on SIP/144-0000001c
[Oct 4 15:56:39] DTMF[18633]: channel.c:2784 __ast_read: DTMF end '#' received on SIP/144-0000001c, duration 100 ms
[Oct 4 15:56:39] DTMF[18633]: channel.c:2824 __ast_read: DTMF end accepted with begin '#' on SIP/144-0000001c
[Oct 4 15:56:39] DTMF[18633]: channel.c:2840 __ast_read: DTMF end passthrough '#' on SIP/144-0000001c
-- Started music on hold, class 'default', on SIP/199-0000001b
-- <SIP/144-0000001c> Playing 'pbx-transfer.slin' (language 'ru')
[Oct 4 15:56:46] DTMF[18633]: channel.c:2856 __ast_read: DTMF begin '1' received on SIP/144-0000001c
[Oct 4 15:56:46] DTMF[18633]: channel.c:2860 __ast_read: DTMF begin ignored '1' on SIP/144-0000001c
[Oct 4 15:56:46] DTMF[18633]: channel.c:2784 __ast_read: DTMF end '1' received on SIP/144-0000001c, duration 80 ms
[Oct 4 15:56:46] DTMF[18633]: channel.c:2840 __ast_read: DTMF end passthrough '1' on SIP/144-0000001c
[Oct 4 15:56:46] DTMF[18633]: channel.c:2856 __ast_read: DTMF begin '1' received on SIP/144-0000001c
[Oct 4 15:56:46] DTMF[18633]: channel.c:2860 __ast_read: DTMF begin ignored '1' on SIP/144-0000001c
[Oct 4 15:56:46] DTMF[18633]: channel.c:2784 __ast_read: DTMF end '1' received on SIP/144-0000001c, duration 80 ms
[Oct 4 15:56:46] DTMF[18633]: channel.c:2840 __ast_read: DTMF end passthrough '1' on SIP/144-0000001c
[Oct 4 15:56:47] DTMF[18633]: channel.c:2856 __ast_read: DTMF begin '5' received on SIP/144-0000001c
[Oct 4 15:56:47] DTMF[18633]: channel.c:2860 __ast_read: DTMF begin ignored '5' on SIP/144-0000001c
[Oct 4 15:56:47] DTMF[18633]: channel.c:2784 __ast_read: DTMF end '5' received on SIP/144-0000001c, duration 80 ms
[Oct 4 15:56:47] DTMF[18633]: channel.c:2840 __ast_read: DTMF end passthrough '5' on SIP/144-0000001c
-- Executing [115@dpm:1] Dial("Local/115@dpm-8e47;2", "SIP/115,90,tTkKm") in new stack
== Using SIP RTP TOS bits 184
== Using UDPTL TOS bits 184
-- Called 115
-- Started music on hold, class 'default', on Local/115@dpm-8e47;2
-- SIP/115-0000001d is ringing
-- SIP/115-0000001d answered Local/115@dpm-8e47;2
-- Stopped music on hold on Local/115@dpm-8e47;2
[Oct 4 15:57:02] NOTICE[18633]: features.c:1951 ast_feature_request_and_dial: We exceeded our AT-timeout
-- Stopped music on hold on SIP/199-0000001b
== Spawn extension (dpm, 115, 1) exited non-zero on 'Local/115@dpm-8e47;2'
-- <SIP/144-0000001c> Playing 'beep.gsm' (language 'ru')
== Spawn extension (dp-reception, 144, 1) exited non-zero on 'SIP/199-0000001b'
== Using SIP RTP TOS bits 184
== Using UDPTL TOS bits 184

sip.conf:
[general]
context = default ; Default con\text for incoming calls
allowoverlap = no ; Disable overlap dialing support. (Default is yes)
allowtransfer = yes ; Disable all transfers (unless enabled in peers or users)
bindport = 5060 ; UDP Port to bind to (SIP standard port is 5060)
bindaddr = 0.0.0.0 ; IP address to bind to (0.0.0.0 binds to all)
nat = no
;externhost = sip.nept.ru
externip = 188.114.47.204
;localnet = 10.0.0.0/255.0.0.0
localnet = 192.168.125.0/255.255.255.0
srvlookup = no ; Enable DNS SRV lookups on outbound calls
tos_sip = cs3 ; Sets TOS for SIP packets.
tos_audio = ef ; Sets TOS for RTP audio packets.
tos_video = af41 ; Sets TOS for RTP video packets.
tos_text = af41 ; Sets TOS for RTP text packets.
cos_sip = 3 ; Sets 802.1p priority for SIP packets.
cos_audio = 5 ; Sets 802.1p priority for RTP audio packets.
cos_video = 4 ; Sets 802.1p priority for RTP video packets.
cos_text = 3 ; Sets 802.1p priority for RTP text packets.
disallow = all ; First disallow all codecs
allow = ulaw
allow = gsm
allow = alaw
language = ru ; Default language setting for all users/peers
dtmfmode = rfc2833 ; Set default dtmfmode for sending DTMF. Default: rfc2833
subscribecontext= blf
notifyringing = yes
notifyhold = yes
callcounter = yes
counteronpeer = yes
t38pt_udptl = yes
pedantic = no ; More strict RFC DTMF compliance
directrtpsetup = no ; yes|no
canreinvite = nonat ; nat ;/nonat
limitonpeers = yes
qualify = yes
allowsubscribe =yes

[authentication]

[115]
context = dpm
host = dynamic
nat = no
type = friend
secret = fkkjpfdh
call-limit = 10
busy-limit = 1
transfer=yes
allowtransfers=yes
canreinvite=yes

[144]
context = dpm
host = dynamic
nat = no
type = friend
secret = fkkjpfdh
call-limit = 10
busy-limit = 1
transfer=yes
allowtransfers=yes
canreinvite=yes

[199]
;context = dpm
context = dp-reception
host = dynamic
nat = no
type = friend
secret = fkkjpfdh
call-limit = 10
busy-limit = 1
transfer=yes
allowtransfers=yes
canreinvite=yes


features.conf:
[general]
parkext => 700 ; What extension to dial to park
parkpos => 701-720 ; 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.
;parkinghints = no ; Add hints priorities automatically for parking slots (default is no).
parkingtime => 45 ; Number of seconds a call can be parked for
; (default is 45 seconds)
courtesytone = beep ; Sound file to play to the parked caller
; when someone dials a parked call
; or the Touch Monitor is activated/deactivated.
transferdigittimeout => 10 ; Number of seconds to wait between digits when transferring a call
; (default is 3 seconds)
;xfersound = beep ; to indicate an attended transfer is complete
;xferfailsound = beeperr ; to indicate a failed transfer
;pickupexten = *8 ; Configure the pickup extension. (default is *8)
;featuredigittimeout = 1000 ; Max time (ms) between digits for
; feature activation (default is 1000 ms)
;atxfernoanswertimeout = 25 ; Timeout for answer on attended transfer default is 15 seconds.
;atxferdropcall = no ; If someone does an attended transfer, then hangs up before the transferred
; caller is connected, then by default, the system will try to call back the
; person that did the transfer. If this is set to "yes", the callback will
; not be attempted and the transfer will just fail.
;atxferloopdelay = 10 ; Number of seconds to sleep between retries (if atxferdropcall = no)
atxfercallbackretries = 2 ; Number of times to attempt to send the call back to the transferer.
; By default, this is 2.

; Note that the DTMF features listed below only work when two channels have answered and are bridged together.
; They can not be used while the remote party is ringing or in progress. If you require this feature you can use
; chan_local in combination with Answer to accomplish it.

[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 => 9999999999 ; 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 => # ; Attended transfer -- Make sure to set the T and/or t option in the Dial() or Queue() app call!
;parkcall => #72 ; Park call (one step parking) -- Make sure to set the K and/or k option in the Dial() app call!
automixmon => 77777777 ; One Touch Record a.k.a. Touch MixMonitor -- Make sure to set the X and/or x option in the Dial() or Queue() app call!

[applicationmap]



При этом безусловный переход (по нажатию *) работает как часы. Телефоны одинаковые, кодеки соответственно тоже.
2010-10-04 17:07

Откуда: Санкт-Петербург
Сообщений: 541

Re: Опять условный перевод звонков

psj:

Стандартная задача. Есть 3 телефона: 115, 144, 199. Необходимо сделать условный перевод звонка.
Проблема:
Звоним со 199 номера на 144. На 144 раздается звонок, снимаем трубку, разговариваем, для перевода на 115 номер набираем #115. На 115 номере раздаётся звонок, снимаем трубку там тишина, а на 144 номере раздаются звонки дозвона. Через тайм-аут звонок отбивается и возвращается на номер 199.

sunrt*CLI> core show version
Asterisk 1.6.0.21 built by root @ sunrt.dinp.local on a amd64 running FreeBSD on 2010-09-29 09:40:36 UTC


При этом безусловный переход (по нажатию *) работает как часы. Телефоны одинаковые, кодеки соответственно тоже.
Можно сказать - стандартная проблема.
Постоянно ломаемый на протяжении года-полутора в астериске attended transfer.
Изучать ChangeLog, апгрейдится и проверять.
2010-10-04 17:50

Добавить страницу в закладки:  Delicious Google Slashdot Yahoo Yandex.ru Reddit Digg Technorati Bobrdobr.ru Newsland.ru Smi2.ru Rumarkz.ru Vaau.ru Memori.ru Rucity.com Moemesto.ru News2.ru Mister-Wong.ru Myscoop.ru 100zakladok.ru