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. решение - пакетизация. нужно указать размер пакета для кодека g729 - 80 ms. запись allow=g729:80
3. это будет работать в SIP.
| Цитата: |
| 2. решение - пакетизация. нужно указать размер пакета для кодека g729 - 80 ms. запись allow=g729:80 |
нашел Я описание этой функции в книге астера, мы получаем большую пропускную способность за счет увеличения задержки -я правильно понял ?
только не понял как просчитать что б влезло 30 линий!
а так 17 кбит на канал это жесть. учтите еще qos - если будут лоссы...
_________________
http://mh.otx.ru Гибкие SIP/E1 шлюзы Alvis-GW-2E1. Модернизация LDK300/TDA100:VoIP
смотрю в сторону speex, ilbpc, lpc10 - у кого есть опыт что лучше что хуже?
ADPCM - даже и не слышал...
amr-nb - тоже буду гуглить....
и не понятно как все это дела в астеры ставить.
пакетизация - это не увеличение задержки, а увеличение длительности аудио пакета, за раз будет не 20 мс, а 80 передаваться. сильно упадет нагрузка на канал. и да, появится задержка, аж +60 мс к той что у вас есть.
speex8 и ilbc - примерно одинаково по трафику с g729.
lpc10 - скажем так, вам он совсем не подойдет
512кб = 4096 кбит/с ? или опечатались?
если не опечатались, то вообще у вас проблем с кодеком на 30 линий нет
в случае правильности рекомендую попробовать silk8.
смотрю в сторону 723-го, что про него скажите?
по поводу обновлений решил поставить еще один транзитный сервере (11 стейбл) - так как обновления нежелательны на главном
Это G.726 кодек. Была раньше такая аппаратура Кроникс, которая в один Е1 впихивала 2Е1 путем изменения кодирования.
А в вашем случае надо ужать в 4 раза. То есть для сохранения заданной пропускной способности надо выбрать кодек 16 кбит/с и не больше. Тогда более-менее нагрузка может быть пропущена. Но качество голоса пострадает.
думаете я просто так пишу и делюсь опытом?
у меня по казазстану уже много лет стоят addpac с пакетизацией ptime=80. нагрузка на канал 12-18 Кбит/с.
А проблема в том, что это - 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
Чтобы посчитать объём голосового трафика, надо ещё посчитать количество пакетов, необходимых для передачи одной секунды голоса и учесть заголовки пакетов, которые состоят из заголовка 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 мс) %)
потом у ТС - IAX, там есть режим "транк" с аггрегацией пакетов. Но это всё - софистика. Как я уже упоминал ранее, сначало важно провести анализ состояния канала, а не гадать на кофейной гуще.
Потом уже выбирать и кодек, и оптимальный размер пакетов и прочее.
_________________
http://mh.otx.ru Гибкие SIP/E1 шлюзы Alvis-GW-2E1. Модернизация LDK300/TDA100:VoIP
IAX не экономит сетевой трафик относительно плотности кодирования.
конечно он экономит сигнальный трафик, всё же там он один, а не 30 как в сип.
НО, на пакетизации значительно больше будет экономия.
и да, Zavr2008, действительно у Вас есть очень важно замечание - нужно включить и/или настроить jitter buffer.
но тогда получается, что потеря пакета или даже нескольких, компенсируется jitter buffer.
в итоге на 30 соединений, кодек g729 в IAX требует ~920 Кбит/с,
а в SIP с пакетизацией 80 мс ~420 Кбит/с
| 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)
а почему нельзя было сразу ТС расписать всё это? и не нести предложения которые фактически не реализуему по задаче ТС.
мы уже выяснили, что у ТС что-то не так, и это не канал... скорее всего IAX не в режиме транка работает, а как простое соединение. тогда то что я написал достоверно и канала просто не хватает.
ЗЫ. вот ещё фактор, asterisk разных версий, и обновлять или синхронизировать версии ТС не хочет (или не может). а в результате, транк то может и есть, но не работает...
ipood
покажите конфиги iax обоих сереров.
у Вас что используется для VPN?
поставили на сервере и на клиентском астериске 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
задержка - это время прохождения пакета от точки до точки
а размер пакета - это длинна буфера передаваемой за раз информации.
есть ещё момент:
* человек не замечает задержку до 250 мс в телефонном разговоре
* привыкает к разговору в среднем меньше минуты при задержке в 500 мс
* сильно ощущает задержку до 1000 мс, и в случае отсутствия эха привыкает во время разговора
10 каналов - это маловато.
покажите sip show peer ИМЯ_ПИРА с обоих серверов.
ЗЫ. не нужно забывать про оверхид от опенвпн. если его соединить по UDP, то оверхид будет значительно меньше.
но при таких значениях ацд не вытягивает тех показателей что надо
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
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
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
а эти рекомендации проверили?
------------------------------------------------------------
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.
на двух компах
iperf -u -c server_host -l128 -b512k -t180 -p65005
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.
запускать нужно одновременно?
и порт одинаковый
_________________
http://mh.otx.ru Гибкие SIP/E1 шлюзы Alvis. SIP-Модернизация LDK/TDA:VoIP, Добавь E1 к Asterisk.
UPDATE! Теперь и T.38! Скидки для форумчан!!