AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

jitter asterisk 10

Newbies/FAQ Forum 38 сообщений -
#1

Добрый день. Имеется астер 10 и голосовая проблема в сети: при разговоре с sip->sip внутри астера, часто бывает пропадание голоса - окончания, слова косячные.
Сняв трейс варшарком выяснилось что проблема заключается в джиттере, при декодировании в варшарке джитера до 80мс - проблема с голосом исчезает.
Подскажите насколько верны настройки джиттера SIP в астериске:
sip_custom.conf :
jbenable=yes
jbforce=yes
jbresyncthreshold = 1000
jbimpl = adaptive
jbmaxsize = 700
jbtargetextra = 100
jblog = no

И вообще работает Question ли он может где то ещё включить его нужно Question

И работает ли он на DAHDI chan_dahdi.conf :
[channels]
context=from-pstn
signalling=fxs_ks
rxwink=300 ; Atlas seems to use long (250ms) winks
usecallerid=yes
hidecallerid=no
callwaiting=yes
usecallingpres=yes
callwaitingcallerid=yes
threewaycalling=yes
transfer=yes
canpark=yes
cancallforward=yes
callreturn=yes
echocancel=yes
echocancelwhenbridged=no
faxdetect=incoming
echotraining=yes
rxgain=0.0
txgain=0.0
callgroup=1
pickupgroup=1
jbenable = yes
jbmaxsize = 1000
jbresyncthreshold = 1000
jbimpl = fixed



Спасибо.
#2

Цитата:
при разговоре с sip->sip внутри астера

Это как? Asterisk сам с собой "разговаривает" ?
#3

внутри астериска с пира на пир иначе говоря
#4

То, что управление соединением осуществляет Asterisk - понятно.

Пока непонятно как передается media-трафик:
1) устройство1 --- Asterisk --- устройство2
2) устро1ство1 --- устройство2

Также немаловажно где (на каком/перед каким устройством) и с какими параметрами записывали трафик.
#5

ip телефон ip matika t22 --asterisk --- ip matika t22p

Уважаемый amateur - может джиттер у меня просто не работает - так как при декодированнии варшарком - голос становится иделаьным Question
#6

все верно, декодирование строит пакеты все по очереди, так как они идут и с правильной скоростью.
а в реальности во время разговора пакеты могут доходить с разным интервалом задержки, что и создает звук плохого качества.

покажите настройки SIP и обоих пиров. (пароли и адреса можно убрать или скрыть)
#7

Что значит "джиттер не работает"? Он либо есть, либо его нет (чего на самом деле не бывает).

Не факт, что вам в этом случае нужно использовать Asterisk для пересылки media-трафика. Во-первых, Asterisk сам вносит n-ное кол-во джиттера. Во-вторых, зачем грузить процессор ненужной работой. Если же все-таки нужно пересылать media-трафик через Asterisk (например, устройства не имеют прямой связи друг с другом, или требуется обработка media-трафика), не нужно использовать буфер компенсации джиттера в Asterisk. Оба IP-телефона наверняка тоже имеют свои буферы, а Asterisk только мешает им работать, создавая ненужную задержку перед отправкой media-трафика получателю.
#8

[1107]
deny=0.0.0.0/0.0.0.0
disallow=all
secret=zzzz
dtmfmode=rfc2833
canreinvite=no
context=perv-only
host=dynamic
trustrpid=yes
sendrpid=no
type=friend
nat=yes
port=5060
qualify=yes
qualifyfreq=60
transport=udp
encryption=no
callgroup=5
pickupgroup=5
allow=ulaw,alaw,gsm,h263,h263p
dial=SIP/1107
mailbox=1107@default
permit=0.0.0.0/0.0.0.0
callerid=zzzz
callcounter=yes
faxdetect=no
cc_monitor_policy=generic

и

[1300]
deny=0.0.0.0/0.0.0.0
disallow=all
secret=zzzzz
dtmfmode=rfc2833
canreinvite=no
context=perv-only
host=dynamic
trustrpid=yes
sendrpid=no
type=friend
nat=yes
port=5060
qualify=yes
qualifyfreq=30
transport=udp
encryption=no
callgroup=
pickupgroup=
allow=alaw,ulaw,g729
dial=SIP/1300
mailbox=1300@device
permit=0.0.0.0/0.0.0.0
callerid=zzz
callcounter=yes
faxdetect=no
cc_monitor_policy=generic
#9

как то не вяжется
canreinvite=no
и
nat=yes

попробуйте сделать

directmedia=no
nat=no

вместо canreinvite опция называется directmedia
эти опции нужно поставить и в general, если не предполагается использовать NAT
#10

пользуюсь исключительно admin`кой - фри пбх
Там нет возможности directmedia выставить
#11

ну тогда canreinvite=no и nat=no попробуйте.

ЗЫ. в chan_sip.c в опции конфигурирования:
Код:
} else if (!strcasecmp(v->name, "directmedia") || !strcasecmp(v->name, "canreinvite")) {


так что использование canreinvite или directmedia сейчас не важно (я смотрел в 10.5.1)


Последний раз редактировалось: adt2k (Чт Июн 28, 2012 10:30)
#12

А выключить использование буфера можно?
jbenable=no
#13

в настройках нат выпадает список след:
-Да
-Нет-RFC3581
-никогда-RFC3581
-route NAT no rport

?
Просто -Нет-RFC3581 выставить ?
#14

ставить "Нет-RFC3581"
#15

А выключить использование буфера можно?
jbenable=no


можно только в файлах конфигурациооных, в админке нет такой возможности
#16

тогда будет не эффективно использование буфера только на клиентской стороне.
буфер должен быть включен и настроен на сервере и на клиенте.
#17

Поставьте jbenable=no для проверки. Проверим мое предположение.

Added after 58 seconds:

Цитата:
тогда будет не эффективно использование буфера только на клиентской стороне.
буфер должен быть включен и настроен на сервере и на клиенте.

У нас два "клиента", у каждого свой буфер. Asterisk тут "третий лишний".
#18

"Нет-RFC3581"
выставил - должен сразу результат появится ?? может чего перегрузить
Трейс снова снимать ?
#19

при canreinvite=no есть только 2 связки клиент - сервер
при canreinvite=yes есть 1 связка клиент - клиент, и то не всегда.

Added after 1 minutes:

Appela @ Чт Июн 28, 2012 15:34 писал(а):
"Нет-RFC3581"
выставил - должен сразу результат появится ?? может чего перегрузить
Трейс снова снимать ?


это не ко мне вопрос. я через различные GUI не настраиваю и особенностей настроек не знаю.
#20

нет rfc3851 применил... что дальше ? позвонить уточнить как слышно ?
#21

ну само собой спросить как слышно. только нужно объективному человеку звонить.
#22

говорит мол слышно нормально 3 минуты полёт нормально - дальше уже устал разговаривать )
Проблема прослеживается не постоянно, она то есть то нет.

Added after 1 minutes:

ребят такое впечатление что ДЖиттер не отрабатывает как надо.. либо настроен корявенько..

Added after 1 minutes:

причём позвонив ещё клиентам людям внутри астера (та же схема) у них тоже самое прослеживается проблема с голосом. Пропадает и восстанавливается.. Приоритет по Qos`у сделан
#23

Такое впечатление, что вы пытаетесь пересылать media-трафик через перегруженный сервер Smile
#24

сервер в ЧНН загружен всего на 10% top
даже при 80 сип разговорах не больше 10% подымается загрузка проца + памяти Mem: 3631756k total, 1851672k used, 1780084k free, 93192k buffers

Added after 2 minutes:

Cpu(s): 2.1%us, 1.0%sy, 0.0%ni, 95.9%id, 0.1%wa, 0.6%hi, 0.3%si, 0.0%st
средняя загрузка

Added after 2 minutes:

Мне кажется необходимы рыть в сторону джиттера...
Кстати а на что влияет интернал тайминг ?

Added after 4 minutes:

Network QoS Settings:
---------------------------
IP ToS SIP: CS3
IP ToS RTP audio: EF
IP ToS RTP video: AF41
IP ToS RTP text: CS0
802.1p CoS SIP: 4
802.1p CoS RTP audio: 5
802.1p CoS RTP video: 6
802.1p CoS RTP text: 5
Jitterbuffer enabled: Yes
Jitterbuffer forced: Yes
Jitterbuffer max size: 200
Jitterbuffer resync: 1000
Jitterbuffer impl: adaptive
Jitterbuffer tgt extra: 40
Jitterbuffer log: Yes
#25

Код:
jbenable = yes ; Enables the use of a jitterbuffer on the receiving side of a
; SIP channel. Defaults to "no". An enabled jitterbuffer will
; be used only if the sending side can create and the receiving
; side can not accept jitter. The SIP channel can accept jitter,
; thus a jitterbuffer on the receive SIP side will be used only
; if it is forced and enabled.

jbforce = no ; Forces the use of a jitterbuffer on the receive side of a SIP
; channel. Defaults to "no".

jbmaxsize = 200 ; Max length of the jitterbuffer in milliseconds.

jbresyncthreshold = 1000 ; Jump in the frame timestamps over which the jitterbuffer is
; resynchronized. Useful to improve the quality of the voice, with
; big jumps in/broken timestamps, usually sent from exotic devices
; and programs. Defaults to 1000.

jbimpl = fixed ; Jitterbuffer implementation, used on the receiving side of a SIP
; channel. Two implementations are currently available - "fixed"
; (with size always equals to jbmaxsize) and "adaptive" (with
; variable size, actually the new jb of IAX2). Defaults to fixed.


примерно так
#26

то что указано это понятно, а на самом деле то как проверить??что джиттер включен?
при звонке появляется такое:

-- adaptive jitterbuffer created on channel SIP/1119-00007393
-- adaptive jitterbuffer created on channel SIP/1107-00007392

значит адаптивный джиттер включился и работает, но сразу сыпется такое:

Warning[69220]:chan_iax2.c:1149 jb_warning_output: Resyncing the jb. last_delay 0, this delay -998869, threshold 1000, new offset 998869
WARNING[6922]: chan_iax2.c:1149 jb_warning_output: Resyncing the jb. last_delay 0, this delay -61392, threshold 1000, new offset 61392
#27

Я конечно не эксперт в Asterisk, но chan_iax2.c тут причем?
#28

вот и я поджумал что не причем на iax2 сидят только факсы.
так вот вернёмся к джиттеру - после внесения изменений в файл:
sip_custom.conf :
jbenable=yes
jbforce=yes
jbresyncthreshold = 1000
jbimpl = adaptive
jbmaxsize = 700
jbtargetextra = 100
jblog = no


Кроме как sip reload - может сам процесс астериска перегрузить ? - этого не делал...может тогда это применится ?? или я немного не в теме....

Added after 41 minutes:

Есть может у других мысли по всему этому поводу ?
Question
#29

Ладно, я свой совет отключить буфер уже дал. Для канала SIP это либо
Код:
jbenable=no
, либо
Код:
jbenable=yes
jbforce=no

Дальше делайте что хотите. Хоть ОС переустанавливайте.
#30

так я так понимаю если мы отключим jbenable=no 0 то у нас просто не будет джиттера, и если в сети коллизии то всё привет....
а тогда jbenable=yes jbforce=no - как будет работать ? и вообще что оно даст ?
#31

Вам при соединении IP-IP буфер Asterisk'а только мешает, т.к. обе стороны (оба ваших телефона) самостоятельно борются с джиттером. Если включите
Код:
jbenable=yes
jbforce=no
, то буфер будет использоваться только в том случае, если сторона, принимающая media-трафик (в вашем случае второй телефон) не в состоянии бороться с джиттером собственными средствами.
#32

понятно, а что тогда получается jbimpl = adaptive -- нам вообще не понадобится чтоли?
#33

подведу итог:
рекомендуемые насторойки

SIP:
jbimpl = adaptive
jbmaxsize = 2000
#34

Господа, изменил все настройки с джиттером как отписал анест.
Тестировать буду сегодня.. Завтра дам ответ как работает.

Анесту и всем принимавшим участие большое спасибо. Patient from #6
Как приятно когда люди не посылают в различные документации на сотни страниц, а дельным советом могут помочь. Phone
#35

и вообще в сети должен быть QoS!!! IMHO
_________________
нанотехнолигии в области Asterisk
#36

QOS настроен на сервере..

-A OUTPUT -p tcp -m tcp --dport 5060 -j DSCP --set-dscp 26
-A OUTPUT -p udp -m udp --sport 8000:60000 -j DSCP --set-dscp 46
-A OUTPUT -p udp -m udp --dport 5060 -j DSCP --set-dscp 26
-A OUTPUT -p tcp -m tcp --dport 1720 -j DSCP --set-dscp 26
-A OUTPUT -p udp -m udp --dport 1720 -j DSCP --set-dscp 26
-A OUTPUT -p tcp -m tcp --sport 5060 -j DSCP --set-dscp 26
-A OUTPUT -p udp -m udp --sport 5060 -j DSCP --set-dscp 26

Вот такой небольшой кусок из iptables .. Может он не верно настроен ?? Хотя тут всё предельно просто и ясно.

Кстати обещал отписаться по проблеме с голосом - траблы устранились..

Added after 1 hours 46 minutes:

Кстати, может кто знает ?
А как можно в режиме реального времени в астериске, при активном разговоре посмотреть а какой джиттер используется*??*

Если опять брать варшарк снимать трейс - вродибы всё хорошо всё снимается, но когда необходимо поглядеть разговор(сам голос в варшарке) необходимо сначала выбрать джиттер в который хотим декодировать - стандартно предлагает 50мс, при декодировании в 50 мс отчётливо слышны косяки в голосе - при декодировании в 100мс уже всё - всё чётко... Дак вот может есть возможность тогда и в варшарке послушать без декодирования, т.е. прослушать разговор в точности такой какой был записан Question
#37

Appela @ Пн Июл 02, 2012 07:37 писал(а):
QOS настроен на сервере..
...


если только на сервере этого мало.
должны и устройства настроены быть

_________________
нанотехнолигии в области Asterisk
#38

не ну шлюзы и ип телефоны тоже выставлен qos и sip тоже 26-46.... это обязательно