@Haotik
Провели на предприятие ip телефонию. Подняли свой сервер и через него раздаем внутренних абонентов.
server — Ubuntu 20.04.2 LTS
Версия астериск — Asterisk 16.2.1 — астериск чистый
Проблем со связью две:
1 Эхо на городские номера, но провайдер упорно говорит что это нормально и зависит от оборудования через которое создается канал.
2 — ОСНОВНАЯ — заикание на канале. Не всегда, но очень часто абонент начинает заикаться, случится может как прямо с первой секунды так и через несколько минут.
Проблема двусторонняя т.е. заикаемся и мы и абонент.
Проверял на потерю пакетов с провайдером через mtr —
за пол часа потеряно 100 пакетов, средний пинг 20ms максимальный 120ms
схема подключения: 
конфиги :
sip conf :
[general]
deny=0.0.0.0/0.0.0.0
permit=192.168.0.44/255.255.255.0
permit=****/255.255.255.0
allowsubscribe=yes
callcounter=yes
subscribecontext=BLF
[authentication]
[20111]
type=friend
host=dynamic
secret=*****
nat=force_rport,comedia
canreinvite=no
context=internal
qualify=yes
call-limit=2
disallow=all
allow=alaw
deny=0.0.0.0/0.0.0.0
permit=192.168.0.0/255.255.255.0
allowsubscribe=yes
callcounter=yes
subscribecontext=BLFextensions.conf
[general]
static=yes
writeprotect=no
[globals]
DBHost = localhost
DBuser = ********
DBpass = ********
DBname = asterisk
DBowners = owners
[default]
;Вешаем трубку
[handup-sip]
exten => _X!,1,HangUp()
; Busy Lamp Functionality
[BLF]
exten => _1XX,hint,SIP/20${EXTEN}
[internal]
;исходящие звонки с внутренних аппаратов попадают сюда
exten => _[123]XX,1,Set(fname=${STRFTIME(${EPOCH},,%Y-%m-%d-%H%M)}-${CALLERID(number)}-${EXTEN})
same => n,Set(AUDIOHOOK_INHERIT(MixMonitor)=yes)
same => n,Monitor(wav,/home/asterisk/records/inner/${fname},mb)
same => n,Dial(SIP/20${EXTEN},30)
[rset] ;входящие звонки с транка попадают сюда
exten => _201[123]X,1,Set(fname=${STRFTIME(${EPOCH},,%Y-%m-%d-%H%M)}-${CALLERID(number)}-${EXTEN})
same => n,Monitor(wav,/home/asterisk/records/in/${fname},mb)
same => n,Set(AUDIOHOOK_INHERIT(MixMonitor)=yes)
same => n,Playback(/home/asterisk/records/service/allRecord)
same => n,Dial(SIP/${EXTEN},30,rTt)
Решения вопроса 0
Ответы на вопрос 1
@d-stream
Типичная ситуация: толпа народа с web-броузингом, астериски и т.п. Юзер болтает по телефону и открывает страничку с кучей фоток -> броузер в кучу потоков начинает тащить картинки. Канал провайдера — не резиновый и в какой-то момент переполняется — пакеты встают в очередь и ждут… Для подгрузки картинок это максимум чуть притормозит отображение фотки котика, для голоса — произойдет заикание.
Методы частичного устранения такой проблемы существуют:
— можно зарезервировать часть полосы под голос
— можно как минимум в рамках до своего шлюза включительно приоретизировать трафик
— использовать отдельный канал/шлюз/сеть для телефонии
Гораздо проблемнее устранять сходные заторы на стороне провайдера. Ну а гарантированные потоки (те же E1) нынче дороги…
