VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Attended Transfer

Проблемы Asterisk без вэб-оболочек и их решения

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

Ответить
call
Сообщения: 35
Зарегистрирован: 06 сен 2011, 13:15

Attended Transfer

Сообщение 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)

Кто нибудь сталкивался? Как решить?
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: Attended Transfer

Сообщение Vlad1983 »

может настройки из sip.conf приведете? что в general? что в пользовательский?
заодно CLI> core show translation
заодно кусок контекста где вызов на того кто пытается сделать трансфер
ЛС: @rostel
call
Сообщения: 35
Зарегистрирован: 06 сен 2011, 13:15

Re: Attended Transfer

Сообщение 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
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: Attended Transfer

Сообщение Vlad1983 »

может настройки из sip.conf приведете? что в general? что в пользовательский?
имелось ввиду полностью, а не только allow/disallow

и где
кусок контекста где вызов на того кто пытается сделать трансфер
либо вывод консоли если скачки из контекста в контекст
ЛС: @rostel
call
Сообщения: 35
Зарегистрирован: 06 сен 2011, 13:15

Re: Attended Transfer

Сообщение 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 году. Но вот - опять. Может кто уже сталкивался?
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: Attended Transfer

Сообщение ded »

Попробуйте изменить приоритеты кодеков в глобальной секции
Global Signalling Settings:
---------------------------
Codecs: 0x10c (ulaw|alaw|g729)
Codec Order: alaw:20,ulaw:20,g729:20,
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: Attended Transfer

Сообщение Vlad1983 »

ё моё, что за народ
Скачков нет. Трасфер - проходит (первая его фаза). Я уже выше написал, на каком этапе возникает проблема. Это уже говорит о том, что с планом нет проблем.
вызов на абонента А может быть направлен через dial(SIP/номА) или dial(Local/номА@контекст) во втором случае как раз таки бывают проблемы с выводом именно этих сообщений "ip_write: Asked to transmit frame type"
поэтому и спрашиваю кусок контекста

если используется Local нужно использовать модификатор /n
https://wiki.asterisk.org/wiki/display/ ... +Modifiers
ЛС: @rostel
call
Сообщения: 35
Зарегистрирован: 06 сен 2011, 13:15

Re: Attended Transfer

Сообщение 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 на В, то возникает вышеуказанная проблема!
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: Attended Transfer

Сообщение Vlad1983 »

https://issues.asterisk.org/jira/browse/ASTERISK-18063
но это в ветке 1.8
у вас вроде 1.6
хотя может и там сломали
ЛС: @rostel
call
Сообщения: 35
Зарегистрирован: 06 сен 2011, 13:15

Re: Attended Transfer

Сообщение call »

тоже создал issue https://issues.asterisk.org/jira/browse/ASTERISK-18450

И нашел временное решение этой проблемы. Когда переводящий положил трубку, и звук пропадает, - тот, на кого переводили, должен нажать клавишу на телефоне. Все нормализуется!
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH