Страница 1 из 1
Attended Transfer
Добавлено: 06 сен 2011, 13:19
call
При Attended Transfer происходят проблемы с transcoding`ом.
Все нужные кодеки - есть! Переводящий нормально соединяется с номером на который переводит, разговоривает, а потом, когда кладет трубку - переводимый номер и номер, на который переводят, - не слышат друг друга. В консоли это:
[Sep 6 10:28:47] WARNING[5030]: chan_sip.c:6290 sip_write: Asked to transmit frame type 64, while native formats is 0x8 (alaw)(8) read/write = 0x40 (slin)(64)/0x8 (alaw)(8)
[Sep 6 10:28:47] WARNING[5030]: chan_sip.c:6290 sip_write: Asked to transmit frame type 64, while native formats is 0x8 (alaw)(8) read/write = 0x40 (slin)
Кто нибудь сталкивался? Как решить?
Re: Attended Transfer
Добавлено: 06 сен 2011, 14:09
Vlad1983
может настройки из sip.conf приведете? что в general? что в пользовательский?
заодно CLI> core show translation
заодно кусок контекста где вызов на того кто пытается сделать трансфер
Re: Attended Transfer
Добавлено: 06 сен 2011, 15:08
call
Код: Выделить всё
core show translation
Translation times between formats (in microseconds) for one second of data
Source Format (Rows) Destination Format (Columns)
g723 gsm ulaw alaw g726aal2 adpcm slin lpc10 g729 speex ilbc g726 g722 siren7 siren14 slin16
g723 - - - - - - - - - - - - - - - -
gsm - - 1001 1001 5999 1001 1000 2000 6000 - - 5999 1999 - - 2999
ulaw - 2001 - 1 5000 2 1 1001 5001 - - 5000 1000 - - 2000
alaw - 2001 1 - 5000 2 1 1001 5001 - - 5000 1000 - - 2000
g726aal2 - 3000 1001 1001 - 1001 1000 2000 6000 - - 5999 1999 - - 2999
adpcm - 2001 2 2 5000 - 1 1001 5001 - - 5000 1000 - - 2000
slin - 2000 1 1 4999 1 - 1000 5000 - - 4999 999 - - 1999
lpc10 - 3000 1001 1001 5999 1001 1000 - 6000 - - 5999 1999 - - 2999
g729 - 3000 1001 1001 5999 1001 1000 2000 - - - 5999 1999 - - 2999
speex - - - - - - - - - - - - - - - -
ilbc - - - - - - - - - - - - - - - -
g726 - 3000 1001 1001 5999 1001 1000 2000 6000 - - - 1999 - - 2999
g722 - 3000 1001 1001 5999 1001 1000 2000 6000 - - 5999 - - - 1000
siren7 - - - - - - - - - - - - - - - -
siren14 - - - - - - - - - - - - - - - -
slin16 - 5000 3001 3001 7999 3001 3000 4000 8000 - - 7999 2000 - - -
Вызов от абонента А приходит от провайдера в кодеке - alaw. Далее - соединяется с клиентом Б по g729. Этот клиент делает перевод на В (Attended Transfer), разговаривает и кладет трубку. При соединении абонентов А и В слышимость в одном направлении - от А к В.
В консоли:
[Sep 6 14:22:20] WARNING[31416]: chan_sip.c:6290 sip_write: Asked to transmit frame type 64, while native formats is 0x8 (alaw)(8) read/write = 0x40 (slin)(64)/0x8 (alaw)(8)
[Sep 6 14:22:20] WARNING[31416]: chan_sip.c:6290 sip_write: Asked to transmit frame type 64, while native formats is 0x8 (alaw)(8) read/write = 0x40 (slin)(64)/0x8 (alaw)(8)
[Sep 6 14:22:20] WARNING[31416]: chan_sip.c:6290 sip_write: Asked to transmit frame type 64, while native formats is 0x8 (alaw)(8) read/write = 0x40 (slin)(64)/0x8 (alaw)(8)
[Sep 6 14:22:20] WARNING[31416]: chan_sip.c:6290 sip_write: Asked to transmit frame type 64, while native formats is 0x8 (alaw)(8) read/write = 0x40 (slin)(64)/0x8 (alaw)(8)
[Sep 6 14:22:20] WARNING[31416]: chan_sip.c:6290 sip_write: Asked to transmit frame type 64, while native formats is 0x8 (alaw)(8) read/write = 0x40 (slin)(64)/0x8 (alaw)(8)
[Sep 6 14:22:20] WARNING[31416]: chan_sip.c:6290 sip_write: Asked to transmit frame type 64, while native formats is 0x8 (alaw)(8) read/write = 0x40 (slin)(64)/0x8 (alaw)(8)
[Sep 6 14:22:20] WARNING[31416]: chan_sip.c:6290 sip_write: Asked to transmit frame type 64, while native formats is 0x8 (alaw)(8) read/write = 0x40 (slin)(64)/0x8 (alaw)(8)
[Sep 6 14:22:20] WARNING[31416]: chan_sip.c:6290 sip_write: Asked to transmit frame type 64, while native formats is 0x8 (alaw)(8) read/write = 0x40 (slin)(64)/0x8 (alaw)(8)
В настройках sip.conf, и в general и у каждого абонента стоит:
disallow=all
allow=g729,alaw,ulaw
Пров передает только в alaw
Re: Attended Transfer
Добавлено: 06 сен 2011, 17:53
Vlad1983
может настройки из sip.conf приведете? что в general? что в пользовательский?
имелось ввиду полностью, а не только allow/disallow
и где
кусок контекста где вызов на того кто пытается сделать трансфер
либо вывод консоли если скачки из контекста в контекст
Re: Attended Transfer
Добавлено: 07 сен 2011, 11:29
call
Настройки sip:
Код: Выделить всё
sip show settings
Global Settings:
----------------
UDP SIP Port: 5060
UDP Bindaddress: 0.0.0.0
TCP SIP Port: Disabled
TLS SIP Port: Disabled
Videosupport: No
Textsupport: No
Ignore SDP sess. ver.: No
AutoCreate Peer: No
Match Auth Username: No
Allow unknown access: No
Allow subscriptions: Yes
Allow overlap dialing: No
Allow promsic. redir: No
Enable call counters: Yes
SIP domain support: No
Realm. auth: No
Our auth realm asterisk
Call to non-local dom.: Yes
URI user is phone no: No
Always auth rejects: No
Direct RTP setup: No
User Agent: Asterisk PBX 1.6.2.17.2
SDP Session Name: Asterisk PBX 1.6.2.17.2
SDP Owner Name: root
Reg. context: (not set)
Regexten on Qualify: No
Caller ID: asterisk
From: Domain:
Record SIP history: Off
Call Events: Off
Auth. Failure Events: Off
T.38 support: No
T.38 EC mode: Unknown
T.38 MaxDtgrm: -1
SIP realtime: Disabled
Qualify Freq : 60000 ms
Network QoS Settings:
---------------------------
IP ToS SIP: CS3
IP ToS RTP audio: EF
IP ToS RTP video: AF41
IP ToS RTP text: AF41
802.1p CoS SIP: 3
802.1p CoS RTP audio: 5
802.1p CoS RTP video: 4
802.1p CoS RTP text: 3
Jitterbuffer enabled: Yes
Jitterbuffer forced: No
Jitterbuffer max size: 200
Jitterbuffer resync: -1
Jitterbuffer impl:
Jitterbuffer log: No
Network Settings:
---------------------------
SIP address remapping: Enabled using externip
Externhost: <none>
Externip: 172.0.0.9:5060
Externrefresh: 10
Localnet: 10.0.0.0/255.0.0.0
192.168.0.0/255.255.0.0
STUN server: 0.0.0.0:0
Global Signalling Settings:
---------------------------
Codecs: 0x10c (ulaw|alaw|g729)
Codec Order: g729:20,alaw:20,ulaw:20
Relax DTMF: No
RFC2833 Compensation: No
Compact SIP headers: No
RTP Keepalive: 0 (Disabled)
RTP Timeout: 60
RTP Hold Timeout: 0 (Disabled)
MWI NOTIFY mime type: application/simple-message-summary
DNS SRV lookup: Yes
Pedantic SIP support: No
Reg. min duration 60 secs
Reg. max duration: 3600 secs
Reg. default duration: 120 secs
Outbound reg. timeout: 20 secs
Outbound reg. attempts: 0
Notify ringing state: Yes
Include CID: No
Notify hold state: No
SIP Transfer mode: open
Max Call Bitrate: 384 kbps
Auto-Framing: No
Outb. proxy: <not set>
Session Timers: Accept
Session Refresher: uas
Session Expires: 1800 secs
Session Min-SE: 90 secs
Timer T1: 500
Timer T1 minimum: 100
Timer B: 32000
No premature media: Yes
Default Settings:
-----------------
Allowed transports: UDP
Outbound transport: UDP
Context: default
Nat: Always
DTMF: rfc2833
Qualify: 0
Use ClientCode: No
Progress inband: Never
Language: ru
MOH Interpret: default
MOH Suggest:
Voice Mail Extension: asterisk
Forward Detected Loops: Yes
Скачков нет. Трасфер - проходит (первая его фаза). Я уже выше написал, на каком этапе возникает проблема. Это уже говорит о том, что с планом нет проблем. Есть проблемы с транскодингом.
Такой баг фиксился в Астериске еще в 2010 году. Но вот - опять. Может кто уже сталкивался?
Re: Attended Transfer
Добавлено: 07 сен 2011, 12:03
ded
Попробуйте изменить приоритеты кодеков в глобальной секции
Global Signalling Settings:
---------------------------
Codecs: 0x10c (ulaw|alaw|g729)
Codec Order: alaw:20,ulaw:20,g729:20,
Re: Attended Transfer
Добавлено: 07 сен 2011, 12:28
Vlad1983
ё моё, что за народ
Скачков нет. Трасфер - проходит (первая его фаза). Я уже выше написал, на каком этапе возникает проблема. Это уже говорит о том, что с планом нет проблем.
вызов на абонента А может быть направлен через dial(SIP/номА) или dial(Local/номА@контекст) во втором случае как раз таки бывают проблемы с выводом именно этих сообщений "ip_write: Asked to transmit frame type"
поэтому и спрашиваю кусок контекста
если используется Local нужно использовать модификатор /n
https://wiki.asterisk.org/wiki/display/ ... +Modifiers
Re: Attended Transfer
Добавлено: 07 сен 2011, 14:55
call
ded писал(а):Попробуйте изменить приоритеты кодеков в глобальной секции
Global Signalling Settings:
---------------------------
Codecs: 0x10c (ulaw|alaw|g729)
Codec Order: alaw:20,ulaw:20,g729:20,
Это не помогает.
В общем эта ситуация возникает тогда, когда в канале от сервера до абонента Б используется кодек g729.
Если на этом канале использовать кодек alaw (ulaw), то перевод проходит. Даже в том случае если у абонента В используется кодек g729
Еще раз нарисую проблемную схему :
SIP-prov(аб.А) ---- alaw---> Asterisk ---g729 ---> аб.Б
Если в этом случае аб.Б делает Attended Transfer на В, то возникает вышеуказанная проблема!
Re: Attended Transfer
Добавлено: 07 сен 2011, 20:59
Vlad1983
https://issues.asterisk.org/jira/browse/ASTERISK-18063
но это в ветке 1.8
у вас вроде 1.6
хотя может и там сломали
Re: Attended Transfer
Добавлено: 07 сен 2011, 22:08
call
тоже создал issue
https://issues.asterisk.org/jira/browse/ASTERISK-18450
И нашел временное решение этой проблемы. Когда переводящий положил трубку, и звук пропадает, - тот, на кого переводили, должен нажать клавишу на телефоне. Все нормализуется!