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

1е1 в 512кб

Asterisk IP PBX 27 сообщений -
#1

1е1 в 512кб


Всем привет,
помогите в решении задачи, нужно впихнуть 30 линий в 512кбит между двумя астерами 1.4 и 1.8. (Инет в стране 3-го мира, расширить канал нет возможности)
пробовал и сип и иакс, разную кучу кодеков - сейчас работает в 729. как только пытаемся пропихнуть все это дело проседаем по качеству!
знаю что по идее сделать это можно но как... на кодеке 723 и в иаксе оно должно впритык все ходить! - но не ходит... иакс сыпит логи подобного плана :

WARNING[13771]: chan_iax2.c:3487 __attempt_transmit:
Max retries exceeded to host 10.1.1.1 on IAX2/asterisk-a-10963 (type =
6, subclass = 11, ts=318547115, seqno=216)
#2

1. нужно обновить 1.4 как минимум.
2. решение - пакетизация. нужно указать размер пакета для кодека g729 - 80 ms. запись allow=g729:80
3. это будет работать в SIP.
#3

Цитата:
2. решение - пакетизация. нужно указать размер пакета для кодека g729 - 80 ms. запись allow=g729:80

нашел Я описание этой функции в книге астера, мы получаем большую пропускную способность за счет увеличения задержки -я правильно понял ?
только не понял как просчитать что б влезло 30 линий!
#4

amr-nb можно попробовать..
а так 17 кбит на канал это жесть. учтите еще qos - если будут лоссы...

_________________
http://mh.otx.ru Гибкие SIP/E1 шлюзы Alvis-GW-2E1. Модернизация LDK300/TDA100:VoIP
#5

А нагрузка в час пик у вас какая? Чисто теоретически ADPCM-кодек поможет.
#6

нагрузка пик - это 30 каналов.

смотрю в сторону speex, ilbpc, lpc10 - у кого есть опыт что лучше что хуже?

ADPCM - даже и не слышал...
amr-nb - тоже буду гуглить....
и не понятно как все это дела в астеры ставить.
#7

нужно обновиться!

пакетизация - это не увеличение задержки, а увеличение длительности аудио пакета, за раз будет не 20 мс, а 80 передаваться. сильно упадет нагрузка на канал. и да, появится задержка, аж +60 мс к той что у вас есть.

speex8 и ilbc - примерно одинаково по трафику с g729.
lpc10 - скажем так, вам он совсем не подойдет Smile

512кб = 4096 кбит/с ? или опечатались?
если не опечатались, то вообще у вас проблем с кодеком на 30 линий нет Smile
в случае правильности рекомендую попробовать silk8.
#8

опечатался, ширина канала полмегабита на адсл!
смотрю в сторону 723-го, что про него скажите?
по поводу обновлений решил поставить еще один транзитный сервере (11 стейбл) - так как обновления нежелательны на главном Smile
#9

ADPCM - это почти PCM. (Вот что нам сообщает Википедия)
Это G.726 кодек. Была раньше такая аппаратура Кроникс, которая в один Е1 впихивала 2Е1 путем изменения кодирования.
А в вашем случае надо ужать в 4 раза. То есть для сохранения заданной пропускной способности надо выбрать кодек 16 кбит/с и не больше. Тогда более-менее нагрузка может быть пропущена. Но качество голоса пострадает.
#10

народ, ну вы чё в самом деле?
думаете я просто так пишу и делюсь опытом?

у меня по казазстану уже много лет стоят addpac с пакетизацией ptime=80. нагрузка на канал 12-18 Кбит/с.
#11

Длина пакетизации особо сильно не влияет на загрузку канала, скорее это уже следствие..
А проблема в том, что это - ADSL. там в одну сторону одна скорость, в другую - другая. И это медь, т.е. в кабельных колодцах затопило скажем кабель и модемы снюхались совсем не на 512 скорости..
Это особенно по весне.
Рекомендации:
1. Проставиться телефонистам, пусть проверят кроссы, импеданс линии итп, возможно ли включить Annex A или Annex M, сколько SNR итп...
2. Проверить трассу с использованием утилиты iperf с полосой 512к, UDP, длиной пакетов 160 байт для начала.
Выложите результаты: сколько там лоссов, итп.
3. Записать какой-либо звонок с помощью tcpdump, далее в wireshark посмотреть jitter, losses итп (Telephony->RTP Analyzer)

Ну а потом уже начать думать о том, какой нужен кодек, какие должны быть настройки jitter buffer - а он у Вас чую вообще вырублен!

_________________
http://mh.otx.ru Гибкие SIP/E1 шлюзы Alvis-GW-2E1. Модернизация LDK300/TDA100:VoIP
#12

ой ли не влияет размер пакета на трафик? или 4 пакета будет или 1? в udp то?

Чтобы посчитать объём голосового трафика, надо ещё посчитать количество пакетов, необходимых для передачи одной секунды голоса и учесть заголовки пакетов, которые состоят из заголовка RTP, заголовка UDP, IP и Ethernet:

RTP - 12 байт,
UDP - 8 байт,
IP - 20 байт,
Ethernet - 18 байт.

размер пакета 20 мс для g.729 - 20 байт
для передачи одной секунды голоса требуется (58+20)*(1000/20) = 3900 байт = 31200 бит = 30,47 Кбит/с

размер пакета 80 мс для g.729 - 80 байт
для передачи одной секунды голоса требуется (58+80)*(1000/80) = 1725 байт = 13800 бит = 13,48 Кбит/с


есть разница?

ЗЫ. может попутал с объемом хидеров и их количеством, но +- 10% роли не играют. да и процентное соотношение то же не поменяется...

Added after 33 minutes:

а вот ответ
http://www.bandcalc.com/
на сайте даже меньше ширину канала считает, но опять же - это 10%
12 (80 мс) против 24 (20 мс) %)
#13

а ничего если пропадет сразу 80 мс а не 20? Smile

потом у ТС - IAX, там есть режим "транк" с аггрегацией пакетов. Но это всё - софистика. Как я уже упоминал ранее, сначало важно провести анализ состояния канала, а не гадать на кофейной гуще.
Потом уже выбирать и кодек, и оптимальный размер пакетов и прочее.

_________________
http://mh.otx.ru Гибкие SIP/E1 шлюзы Alvis-GW-2E1. Модернизация LDK300/TDA100:VoIP
#14

ну допустим с каналом всё в порядке. но он 512 кбит/с всего!

IAX не экономит сетевой трафик относительно плотности кодирования.
конечно он экономит сигнальный трафик, всё же там он один, а не 30 как в сип.
НО, на пакетизации значительно больше будет экономия.

и да, Zavr2008, действительно у Вас есть очень важно замечание - нужно включить и/или настроить jitter buffer.
но тогда получается, что потеря пакета или даже нескольких, компенсируется jitter buffer.

в итоге на 30 соединений, кодек g729 в IAX требует ~920 Кбит/с,
а в SIP с пакетизацией 80 мс ~420 Кбит/с
#15

adt2k @ Вт Мар 25, 2014 14:16 писал(а):
ну допустим с каналом всё в порядке. но он 512 кбит/с всего!

Тестировать надо, а не допускать! Если есть потери, вероятно дело в настройках модемов. Если физика хреновая, хоть какой кодек ставь - 1 хрен(

Цитата:

IAX не экономит сетевой трафик относительно плотности кодирования.
конечно он экономит сигнальный трафик, всё же там он один, а не 30 как в сип.
НО, на пакетизации значительно больше будет экономия.

Как раз в режиме транка получается гораздо бОльшая экономия - можно передавать скажем пакетами по 1к, с одним лишь набором заголовков IP/UDP/IAX и несколькими пэйлоудами каналов не увеличивая задержку. Не забывайте, что в IAX нет отдельно RTP!
Но есть и обратная сторона медали - пропал пакет, пропало сразу у нескольких каналов. но 20 мс..
Цитата:

но тогда получается, что потеря пакета или даже нескольких, компенсируется jitter buffer.

Заблуждение, потеря пакета (полная) компенсируется средствами кодека, если это предусмотрено. Например в том же iLBC это реализовано.
Никак jitter buffer не может сам восстановить потерянный пакет, он лишь раскладывает их по очереди, компенсируя дрожание потока в зависимости от уровня предзаполнения.

Цитата:

в итоге на 30 соединений, кодек g729 в IAX требует ~920 Кбит/с,

в случае 30 каналов но 1 соединения (транк) ситуация малость другая. Суммарно: 50 пакетов в секунду * (30*20байт + заголовок IAX пусть те же 58 байт) = 32900 байт или 263 кбит. итого на 1 канал это 8.78 кбит.
Я оценочно указал величину заголовка пакета IAX, она в реальности другая - но не значительно.
Но опять же - если канал - дырявый, это ничего не решит.
Тестировать нужно сам канал, потом уже изобретать!

В случае RTP стоит RTCP отключить, это примерно 5% полосы.

Update: сосчитал калькулятором. http://floomby.ru/s1/RWgDcd, желающие могут сделать это сами: http://www.asteriskguru.com/tools/bandwidth_calculator.php

_________________
http://mh.otx.ru Гибкие SIP/E1 шлюзы Alvis-GW-2E1. Модернизация LDK300/TDA100:VoIP


Последний раз редактировалось: Zavr2008 (Вт Мар 25, 2014 11:51)
#16

Zavr2008 молодец! Smile

а почему нельзя было сразу ТС расписать всё это? и не нести предложения которые фактически не реализуему по задаче ТС.

мы уже выяснили, что у ТС что-то не так, и это не канал... скорее всего IAX не в режиме транка работает, а как простое соединение. тогда то что я написал достоверно и канала просто не хватает.

ЗЫ. вот ещё фактор, asterisk разных версий, и обновлять или синхронизировать версии ТС не хочет (или не может). а в результате, транк то может и есть, но не работает...

ipood
покажите конфиги iax обоих сереров.
у Вас что используется для VPN?
#17

в качестве ВПН - опен впн
поставили на сервере и на клиентском астериске allow=g729:80
лучше от этого не стало уперлись в 10 линий - если выше проседаем по качеству
ширина канала (если кто не понял) 512 килобит = 64 килобайт....
я правильно понимаю что 1 звонок в 729 = 1килобАЙт?
как правильно отдебажить и увидеть что оно действительно ходит с задержкой в 80мс?

Added after 1 hours 48 minutes:

забыл ганяем в сип - от иакс отказались!
по кодекам:
lpc10 не завелся! ((
ilbc - нормально, но с ним нельзя так схитрить как с 729
723 - дошли до 8 линий и снова уперлись в качество....
сейчас тестю на allow=g729:150
так как из книги по астеру на 729 максимальная возможная задержка 230
#18

не нужно путать задержку и размер пакета. это разные параметры.
задержка - это время прохождения пакета от точки до точки
а размер пакета - это длинна буфера передаваемой за раз информации.

есть ещё момент:
* человек не замечает задержку до 250 мс в телефонном разговоре
* привыкает к разговору в среднем меньше минуты при задержке в 500 мс
* сильно ощущает задержку до 1000 мс, и в случае отсутствия эха привыкает во время разговора

10 каналов - это маловато.
покажите sip show peer ИМЯ_ПИРА с обоих серверов.

ЗЫ. не нужно забывать про оверхид от опенвпн. если его соединить по UDP, то оверхид будет значительно меньше.
#19

вас понял, вот описание пиров.
но при таких значениях ацд не вытягивает тех показателей что надо

server
Name : server
Description :
Secret :
MD5Secret :
Remote Secret:
Context : public
Record On feature : automon
Record Off feature : automon
Subscr.Cont. :
Language :
Tonezone :
AMA flags : Unknown
Transfer mode: open
CallingPres : Presentation Allowed, Not Screened
Callgroup :
Pickupgroup :
Named Callgr :
Nam. Pickupgr:
MOH Suggest :
Mailbox :
VM Extension : asterisk
LastMsgsSent : 0/0
Call limit : 30
Max forwards : 0
Dynamic : Yes
Callerid : ""
MaxCallBR : 384 kbps
Expire : 46
Insecure : port,invite
Force rport : Auto (No)
Symmetric RTP: No
ACL : No
DirectMedACL : No
T.38 support : No
T.38 EC mode : Unknown
T.38 MaxDtgrm: -1
DirectMedia : No
PromiscRedir : No
User=Phone : No
Video Support: No
Text Support : No
Ign SDP ver : No
Trust RPID : No
Send RPID : No
Subscriptions: Yes
Overlap dial : No
DTMFmode : rfc2833
Timer T1 : 500
Timer B : 32000
ToHost :
Addr->IP : 10.10.10.24:5060
Defaddr->IP : (null)
Prim.Transp. : UDP
Allowed.Trsp : UDP
Def. Username: s
SIP Options : (none)
Codecs : (g729)
Codec Order : (g729:150)
Auto-Framing : No
Status : OK (169 ms)
Useragent : Asterisk PBX 1.8.15-cert3
Reg. Contact : sip:s@10.10.10.24:5060
Qualify Freq : 60000 ms
Keepalive : 0 ms
Sess-Timers : Accept
Sess-Refresh : uas
Sess-Expires : 1800 secs
Min-Sess : 90 secs
RTP Engine : asterisk
Parkinglot :
Use Reason : No
Encryption : No


client

Name : client
Secret :
MD5Secret :
Remote Secret:
Context : 30lines
Subscr.Cont. :
Language :
AMA flags : Unknown
Transfer mode: open
CallingPres : Presentation Allowed, Not Screened
Callgroup :
Pickupgroup :
MOH Suggest :
Mailbox :
VM Extension : asterisk
LastMsgsSent : 32767/65535
Call limit : 0
Max forwards : 0
Dynamic : No
Callerid : ""
MaxCallBR : 384 kbps
Expire : -1
Insecure : port,invite
Force rport : Yes
ACL : No
DirectMedACL : No
T.38 support : No
T.38 EC mode : Unknown
T.38 MaxDtgrm: -1
DirectMedia : No
PromiscRedir : No
User=Phone : No
Video Support: No
Text Support : No
Ign SDP ver : No
Trust RPID : No
Send RPID : No
Subscriptions: Yes
Overlap dial : No
DTMFmode : rfc2833
Timer T1 : 500
Timer B : 32000
ToHost : 10.10.10.62
Addr->IP : 10.10.10.62:5060
Defaddr->IP : (null)
Prim.Transp. : UDP
Allowed.Trsp : UDP
Def. Username:
SIP Options : replaces replace timer
Codecs : 0x10c (ulaw|alaw|g729)
Codec Order : (g729:150,ulaw:20,alaw:20)
Auto-Framing : No
Status : OK (169 ms)
Useragent :
Reg. Contact :
Qualify Freq : 60000 ms
Sess-Timers : Accept
Sess-Refresh : uas
Sess-Expires : 1800 secs
Min-Sess : 90 secs
RTP Engine : asterisk
Parkinglot :
Use Reason : No
Encryption : No
#20

ipood
а эти рекомендации проверили?
Zavr2008 @ Вт Мар 25, 2014 15:04 писал(а):
2. Проверить трассу с использованием утилиты iperf с полосой 512к, UDP, длиной пакетов 160 байт для начала.
Выложите результаты: сколько там лоссов, итп.
3. Записать какой-либо звонок с помощью tcpdump, далее в wireshark посмотреть jitter, losses итп (Telephony->RTP Analyzer)
#21

aster@aster:~# iperf -u -c 10.10.X.X -l 160 -b 512K -t 180
------------------------------------------------------------
Client connecting to 10.10.X.X, UDP port 5001
Sending 160 byte datagrams
UDP buffer size: 110 KByte (default)
------------------------------------------------------------
[ 3] local 10.10.Z.Z port 46885 connected with 10.10.X.X port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-180.0 sec 740 GBytes 35.3 Gbits/sec
[ 3] Sent 72001 datagrams
read failed: Connection refused
[ 3] WARNING: did not receive ack of last datagram after 1 tries.
#23

server


server@static:~# iperf -u -c 10.10.10.2 -l128 -b512k -t180 -p19998
------------------------------------------------------------
Client connecting to 10.10.10.2, UDP port 19998
Sending 128 byte datagrams
UDP buffer size: 110 KByte (default)
------------------------------------------------------------
[ 3] local 10.10.10.1 port 38352 connected with 10.10.10.2 port 19998
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-180.0 sec 168 GBytes 8.02 Gbits/sec
[ 3] Sent 90001 datagrams
read failed: Connection refused
[ 3] WARNING: did not receive ack of last datagram after 1 tries.


client


client@aster:~# iperf -u -c 10.10.10.1 -l128 -b512k -t180 -p19999
------------------------------------------------------------
Client connecting to 10.10.10.1, UDP port 19999
Sending 128 byte datagrams
UDP buffer size: 110 KByte (default)
------------------------------------------------------------
[ 3] local 10.10.10.2 port 52112 connected with 10.10.10.1 port 19999
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-180.0 sec 740 GBytes 35.3 Gbits/sec
[ 3] Sent 90001 datagrams
read failed: Connection refused
[ 3] WARNING: did not receive ack of last datagram after 1 tries.


запускать нужно одновременно?
#24

конечно Smile
и порт одинаковый
#25

запускал повторно - результат - тот же
#26

На другом компе iperf надо запускать в режиме сервера. Прочтите же уже документацию на него. Вам же дали ссылку на wiki!
#27

Ну и как, чем дело закончилось? Что показал iperf?
_________________
http://mh.otx.ru Гибкие SIP/E1 шлюзы Alvis. SIP-Модернизация LDK/TDA:VoIP, Добавь E1 к Asterisk.
UPDATE! Теперь и T.38! Скидки для форумчан!!