Страница 1 из 1

Кодек SILK

Добавлено: 21 окт 2014, 10:43
drug591
Добрый день. Решил попробовать установить кодек SILK в Asterisk 11. Скачал с http://downloads.digium.com/pub/telephony/codec_silk/ . C помощью benchsilk определил какую версию кодека нужно установить. Скопировал кодек в /usr/lib/asterisk/modules. В CLI набрал module load codec_silk.so, в ответ получил что кодек загружен.

Код: Выделить всё

[root@localhost ~]# asterisk -rx "core show translation"
         Translation times between formats (in microseconds) for one second of data
          Source Format (Rows) Destination Format (Columns)

            gsm  ulaw  alaw  g726 adpcm  slin lpc10  ilbc g726aal2  g722 slin16 testlaw slin12 slin24 slin32 slin44 slin48 slin96 slin192 silk8 silk12 silk16 silk24
      gsm     - 15000 15000 15000 15000  9000 15000 15000    15000 17250  17000   15000  17000  17000  17000  17000  17000  17000   17000 15000  15000  15000  15000
     ulaw 15000     -  9150 15000 15000  9000 15000 15000    15000 17250  17000   15000  17000  17000  17000  17000  17000  17000   17000 15000  15000  15000  15000
     alaw 15000  9150     - 15000 15000  9000 15000 15000    15000 17250  17000   15000  17000  17000  17000  17000  17000  17000   17000 15000  15000  15000  15000
     g726 15000 15000 15000     - 15000  9000 15000 15000    15000 17250  17000   15000  17000  17000  17000  17000  17000  17000   17000 15000  15000  15000  15000
    adpcm 15000 15000 15000 15000     -  9000 15000 15000    15000 17250  17000   15000  17000  17000  17000  17000  17000  17000   17000 15000  15000  15000  15000
     slin  6000  6000  6000  6000  6000     -  6000  6000     6000  8250   8000    6000   8000   8000   8000   8000   8000   8000    8000  6000   6000   6000   6000
    lpc10 15000 15000 15000 15000 15000  9000     - 15000    15000 17250  17000   15000  17000  17000  17000  17000  17000  17000   17000 15000  15000  15000  15000
     ilbc 15000 15000 15000 15000 15000  9000 15000     -    15000 17250  17000   15000  17000  17000  17000  17000  17000  17000   17000 15000  15000  15000  15000
 g726aal2 15000 15000 15000 15000 15000  9000 15000 15000        - 17250  17000   15000  17000  17000  17000  17000  17000  17000   17000 15000  15000  15000  15000
     g722 15600 15600 15600 15600 15600  9600 15600 15600    15600     -   9000   15600  17500  17000  17000  17000  17000  17000   17000 15600  15600  15600  15600
   slin16 14500 14500 14500 14500 14500  8500 14500 14500    14500  6000      -   14500   8500   8000   8000   8000   8000   8000    8000  8750   8750   8750   8750
  testlaw 15000 15000 15000 15000 15000  9000 15000 15000    15000 17250  17000       -  17000  17000  17000  17000  17000  17000   17000 15000  15000  15000  15000
   slin12 14500 14500 14500 14500 14500  8500 14500 14500    14500 14000   8000   14500      -   8000   8000   8000   8000   8000    8000  8750   8750   8750   8750
   slin24 14500 14500 14500 14500 14500  8500 14500 14500    14500 14500   8500   14500   8500      -   8000   8000   8000   8000    8000  8750   8750   8750   8750
   slin32 14500 14500 14500 14500 14500  8500 14500 14500    14500 14500   8500   14500   8500   8500      -   8000   8000   8000    8000 14500  14500  14500  14500
   slin44 14500 14500 14500 14500 14500  8500 14500 14500    14500 14500   8500   14500   8500   8500   8500      -   8000   8000    8000 14500  14500  14500  14500
   slin48 14500 14500 14500 14500 14500  8500 14500 14500    14500 14500   8500   14500   8500   8500   8500   8500      -   8000    8000 14500  14500  14500  14500
   slin96 14500 14500 14500 14500 14500  8500 14500 14500    14500 14500   8500   14500   8500   8500   8500   8500   8500      -    8000 14500  14500  14500  14500
  slin192 14500 14500 14500 14500 14500  8500 14500 14500    14500 14500   8500   14500   8500   8500   8500   8500   8500   8500       - 14500  14500  14500  14500
    silk8 15000 15000 15000 15000 15000  9000 15000 15000    15000 15300   9300   15000   9300   9300  17000  17000  17000  17000   17000     -      -      -      -
   silk12 15000 15000 15000 15000 15000  9000 15000 15000    15000 15300   9300   15000   9300   9300  17000  17000  17000  17000   17000     -      -      -      -
   silk16 15000 15000 15000 15000 15000  9000 15000 15000    15000 15300   9300   15000   9300   9300  17000  17000  17000  17000   17000     -      -      -      -
   silk24 15000 15000 15000 15000 15000  9000 15000 15000    15000 15300   9300   15000   9300   9300  17000  17000  17000  17000   17000     -      -      -      -

Код: Выделить всё

[root@localhost ~]# asterisk -rx "core show codecs"
Disclaimer: this command is for informational purposes only.
	It does not indicate anything about your configuration.
      ID  TYPE     NAME DESCRIPTION
-----------------------------------------------------------------------------------
  100001 audio     g723 (G.723.1)
  100002 audio      gsm (GSM)
  100003 audio     ulaw (G.711 u-law)
  100004 audio     alaw (G.711 A-law)
  100011 audio     g726 (G.726 RFC3551)
  100006 audio    adpcm (ADPCM)
  100019 audio     slin (16 bit Signed Linear PCM)
  100007 audio    lpc10 (LPC10)
  100008 audio     g729 (G.729A)
  100009 audio    speex (SpeeX)
  100016 audio  speex16 (SpeeX 16khz)
  100010 audio     ilbc (iLBC)
  100005 audio g726aal2 (G.726 AAL2)
  100012 audio     g722 (G722)
  100021 audio   slin16 (16 bit Signed Linear PCM (16kHz))
  300001 image     jpeg (JPEG image)
  300002 image      png (PNG image)
  200001 video     h261 (H.261 Video)
  200002 video     h263 (H.263 Video)
  200003 video    h263p (H.263+ Video)
  200004 video     h264 (H.264 Video)
  200005 video    mpeg4 (MPEG4 Video)
  400001  text      red (T.140 Realtime Text with redundancy)
  400002  text     t140 (Passthrough T.140 Realtime Text)
  100013 audio   siren7 (ITU G.722.1 (Siren7, licensed from Polycom))
  100014 audio  siren14 (ITU G.722.1 Annex C, (Siren14, licensed from Polycom))
  100017 audio  testlaw (G.711 test-law)
  100015 audio     g719 (ITU G.719)
  100028 audio  speex32 (SpeeX 32khz)
  100020 audio   slin12 (16 bit Signed Linear PCM (12kHz))
  100022 audio   slin24 (16 bit Signed Linear PCM (24kHz))
  100023 audio   slin32 (16 bit Signed Linear PCM (32kHz))
  100024 audio   slin44 (16 bit Signed Linear PCM (44kHz))
  100025 audio   slin48 (16 bit Signed Linear PCM (48kHz))
  100026 audio   slin96 (16 bit Signed Linear PCM (96kHz))
  100027 audio  slin192 (16 bit Signed Linear PCM (192kHz))
  100018 audio    silk8 (SILK Custom Format 8khz)
  100018 audio   silk12 (SILK Custom Format 12khz)
  100018 audio   silk16 (SILK Custom Format 16khz)
  100018 audio   silk24 (SILK Custom Format 24khz)
А в логах почему-то вот так пишет

Код: Выделить всё

[2014-10-21 10:04:26] VERBOSE[14490] translate.c: == Registered translator 'silktolin' from format unknown to slin, table cost, 900000, computational cost 999999
[2014-10-21 10:04:26] VERBOSE[14490] translate.c: == Registered translator 'lintosilk' from format slin to unknown, table cost, 600000, computational cost 999999
[2014-10-21 10:04:26] VERBOSE[14490] translate.c: == Registered translator 'silktolin12' from format unknown to slin12, table cost, 930000, computational cost 999999
[2014-10-21 10:04:26] VERBOSE[14490] translate.c: == Registered translator '12lintosilk' from format slin12 to unknown, table cost, 875000, computational cost 999999
[2014-10-21 10:04:26] VERBOSE[14490] translate.c: == Registered translator 'silktolin16' from format unknown to slin16, table cost, 930000, computational cost 999999
[2014-10-21 10:04:26] VERBOSE[14490] translate.c: == Registered translator '16lintosilk' from format slin16 to unknown, table cost, 875000, computational cost 999999
[2014-10-21 10:04:26] VERBOSE[14490] translate.c: == Registered translator 'silktolin24' from format unknown to slin24, table cost, 930000, computational cost 999999
[2014-10-21 10:04:26] VERBOSE[14490] translate.c: == Registered translator '24lintosilk' from format slin24 to unknown, table cost, 875000, computational cost 999999
[2014-10-21 10:04:26] VERBOSE[14490] loader.c: Loaded codec_silk.so => (Silk Transcoder)
При звонке в конференцию вываливается:

Код: Выделить всё

[2014-10-20 16:41:48] WARNING[862][C-0000002f] channel.c: Unable to find a codec translation path from (silk24) to (ulaw)
[2014-10-20 16:41:48] WARNING[862][C-0000002f] file.c: Unable to open conf-onlyperson (format (silk24)): No such file or directory
[2014-10-20 16:41:48] WARNING[862][C-0000002f] channel.c: Unable to find a codec translation path from (silk24) to (slin)
[2014-10-20 16:41:48] WARNING[862][C-0000002f] app_meetme.c: Unable to set 'SIP/0001-0000005b' to write linear mode
В sip_general_custom.conf:

Код: Выделить всё

disallow=all
allow=ulaw:90
allow=alaw:130
allow=gsm
allow=slin24
allow=silk24
В codecs.conf:

Код: Выделить всё

[silk8]
type=silk
samprate=8000
fec=true
packetloss_percentage=10
maxbitrate=20000
dtx=false

[silk12]
type=silk
samprate=12000
fec=true
packetloss_percentage=10
maxbitrate=25000
dtx=false

[silk16]
type=silk
samprate=16000
fec=true
packetloss_percentage=10
maxbitrate=30000
dtx=false

[silk24]
type=silk
samprate=24000
fec=true
packetloss_percentage=10
maxbitrate=40000
dtx=false

Re: Кодек SILK

Добавлено: 21 окт 2014, 11:18
drug591
Конечно делал service asterisk restart, в логах то после этого все равно

Код: Выделить всё

[2014-10-21 11:14:10] VERBOSE[17135] translate.c: == Registered translator 'silktolin' from format unknown to slin, table cost, 900000, computational cost 999999
[2014-10-21 11:14:10] VERBOSE[17135] translate.c: == Registered translator 'lintosilk' from format slin to unknown, table cost, 600000, computational cost 999999
[2014-10-21 11:14:10] VERBOSE[17135] translate.c: == Registered translator 'silktolin12' from format unknown to slin12, table cost, 930000, computational cost 999999
[2014-10-21 11:14:10] VERBOSE[17135] translate.c: == Registered translator '12lintosilk' from format slin12 to unknown, table cost, 875000, computational cost 999999
[2014-10-21 11:14:10] VERBOSE[17135] translate.c: == Registered translator 'silktolin16' from format unknown to slin16, table cost, 930000, computational cost 999999
[2014-10-21 11:14:10] VERBOSE[17135] translate.c: == Registered translator '16lintosilk' from format slin16 to unknown, table cost, 875000, computational cost 999999
[2014-10-21 11:14:10] VERBOSE[17135] translate.c: == Registered translator 'silktolin24' from format unknown to slin24, table cost, 930000, computational cost 999999
[2014-10-21 11:14:10] VERBOSE[17135] translate.c: == Registered translator '24lintosilk' from format slin24 to unknown, table cost, 875000, computational cost 999999
[2014-10-21 11:14:10] VERBOSE[17135] loader.c: codec_silk.so => (Silk Transcoder)

Re: Кодек SILK

Добавлено: 21 окт 2014, 11:52
drug591
Модули загружены

Код: Выделить всё

res_format_attr_silk.so - loaded
codec_silk.so - loaded
codecs.conf приводил выше, все сделано по
https://wiki.asterisk.org/wiki/display/ ... io+Formats

При звонке с одного клиента на другой звонок проходит и все работает с этим кодеком. Не работает только в конференции.

Re: Кодек SILK

Добавлено: 21 окт 2014, 13:40
drug591
Хорошо попробую собрать из исходниоков. По ссылке с гитхаба переадресовывает на msdn. Нашел на code.google.com версию SILK_SDK_SRC_v1.0.9.zip. Это последняя версия или возможно есть более новые?

Re: Кодек SILK

Добавлено: 21 окт 2014, 14:23
awsswa
в паблике более новых нету - сам собирал на такой, только по 10 астер

Re: Кодек SILK

Добавлено: 21 окт 2014, 14:59
drug591
awsswa, в конференции все нормально работает с silk24?

Re: Кодек SILK

Добавлено: 21 окт 2014, 15:22
awsswa
нет
там нету перекодирования из одного в другого

Re: Кодек SILK

Добавлено: 21 окт 2014, 15:49
drug591
У всех клиентов используется silk24. И у меня в режиме конференции в логах

Код: Выделить всё

codec_silk.c: SKP_Silk_SDK_Decode returned -12
Насколько я понял эта ошибка возвращается, если размер входящего в декодер буфера больше 1024 или меньше 0. Но такого не может быть, в wireshark'e размеры пакетов нормальные.
При обычном звонке с одного клиента на другой все отлично работает.