VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Failed to get 160 samples from read factory

Проблемы Asterisk без вэб-оболочек и их решения

Модераторы: april22, Zavr2008

dendroid
Сообщения: 19
Зарегистрирован: 08 ноя 2013, 14:34

Failed to get 160 samples from read factory

Сообщение dendroid »

Приветствую! Нужна помощь, может кто-то сталкивался:
Имеем: ubuntu 12.04, asterisk 1.8.6.0, freepbx 2.10
Все входящие и исходящие звонки пишутся.
Один - два раза в неделю астериск зависает (замерзает), не реагирует на комманды. Спасает только убийство процесса и повторный запуск (service asterisk restart - не отрабатывает).
в консоли под дебагом льются вот такие сообщения:

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

[2013-11-05 01:11:12] DEBUG[32284]: audiohook.c:260 audiohook_read_frame_both: Failed to get 160 samples from read factory 0x7fdae0017b00
[2013-11-05 01:11:12] DEBUG[32284]: audiohook.c:227 audiohook_read_frame_both: Read factory 0x7fdae0017b00 and write factory 0x7fdae0018540 both fail to provide 160 samples
гугл подсказал, что проблема не только у меня, однако решение было найдено в 2011 году, я просмотрел выпущенный тогда патч и в версии 1.8.6.0 он уже добавлен. Однако проблема остается. И она связана именно с записью. Может кто-то знает решение проблемы или может натолкнуть на нужный путь? Видел http://forum.asterisk.ru/viewtopic.php?f=3&t=1029 - однако тема очень старая, поэтому решил написать новую, если не прав, могу перекинуть сообщение туда, а эту тему удалить.
Заранее спасибо!
PS: вот ссылки, которые могут пролить свет на проблему:
http://forums.asterisk.org/viewtopic.php?f=1&t=88239
https://issues.asterisk.org/jira/browse/ASTERISK-12324
http://asteriskforum.ru/viewtopic.php?p=65813

UPD: Пробовал на Asterisk 1.8.15-cert3, freepbx 2.10, ubuntu 12.04 - сообщение в консоли под дебагом остались. На зависание не проверял, так как нужно выводить полностью в работу для тестов. Может попробовать другой дистрибутив (Centos или Debian) ?
Установку проводил по http://wiki.freepbx.org/pages/viewpage. ... Id=1409028 . Только asterisk выбрал 1.8.15-cert3
Железо конечно слабое, однако звонок то всего один и поток записывается тоже всего один. Тестировал на внутренних звонках (звонил себе на вторую линию). Если звонить например в очередь, сообщения (Failed to get 160 samples ) остаются.
Аватара пользователя
Wapo
Сообщения: 795
Зарегистрирован: 02 мар 2011, 17:53

Re: Failed to get 160 samples from read factory

Сообщение Wapo »

Сколько работаю с астером - ЗАМЕРЗАНИЕ возникало при проблемах с ДНС-сетью, ну а уж дальнейшее = лишь следствие.
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: Failed to get 160 samples from read factory

Сообщение ded »

Такое наблюдалось при записи на внешний USB диск.
Что за дисковая подсистема? Может быть что диск старый, и не SMART, и он сам по себе медленно пишет, а если ещё запись разговора туда - подтормаживает?
dendroid
Сообщения: 19
Зарегистрирован: 08 ноя 2013, 14:34

Re: Failed to get 160 samples from read factory

Сообщение dendroid »

ded писал(а):Такое наблюдалось при записи на внешний USB диск.
Что за дисковая подсистема? Может быть что диск старый, и не SMART, и он сам по себе медленно пишет, а если ещё запись разговора туда - подтормаживает?
На рабочем "сервере" стоит WD5003AZEX ( Black серия, 7200 об.мин., 64Mb буфер). На нем стоит asterisk 1.8.6.0.
Тестирую на wd5000aads ( Green серия, 5400 об.мин., 32 буфер). На нем пробовал asterisk 1.8.6.0 и 1.8.15 cert-3.
Сегодня попробую на VPS хостинге (hetzner.de), чтобы исключить влияние железа. Позже попробую Debian и Centos.
Последний раз редактировалось dendroid 08 ноя 2013, 17:42, всего редактировалось 2 раза.
dendroid
Сообщения: 19
Зарегистрирован: 08 ноя 2013, 14:34

Re: Failed to get 160 samples from read factory

Сообщение dendroid »

Wapo писал(а):Сколько работаю с астером - ЗАМЕРЗАНИЕ возникало при проблемах с ДНС-сетью, ну а уж дальнейшее = лишь следствие.
Попробую отключить eth0, воткнуть usb модем, включить запись и позвонить на него. По идее так исключится влияние DNS. (Т.е все будет крутиться внутри сервера)
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: Failed to get 160 samples from read factory

Сообщение ded »

тогда надо srvlookup=no и резолвер тоже отключать, никаких FQDN в конфигах SIP.
dendroid
Сообщения: 19
Зарегистрирован: 08 ноя 2013, 14:34

Re: Failed to get 160 samples from read factory

Сообщение dendroid »

тогда надо srvlookup=no и резолвер тоже отключать, никаких FQDN в конфигах SIP.
srvlookup=no -- отключен
BIND сервера нет. Вообще внешних SIP каналов нет. Звонки идут через шлюзы.
Host адреса прописаны цифрами.

UPD: При входящих через шлюзы или на USB модем в консоли валятся вот такие сообщения:

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

[2013-11-08 17:40:00] DEBUG[26892]: audiohook.c:239 audiohook_read_frame_both: Read factory 0x7f23240222f0 was pretty quick last time, waiting for them.
нашел похожую тему: http://forum.asterisk.ru/viewtopic.php?f=3&t=1223

Все же буду пробовать другие дистрибутивы.
Аватара пользователя
Sfinx
Сообщения: 672
Зарегистрирован: 21 июн 2011, 23:40
Откуда: Odessa
Контактная информация:

Re: Failed to get 160 samples from read factory

Сообщение Sfinx »

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

-----------
SfinxSoft
http://sfinxsoft.com
dendroid
Сообщения: 19
Зарегистрирован: 08 ноя 2013, 14:34

Re: Failed to get 160 samples from read factory

Сообщение dendroid »

имеет смысл величить jitter buffer, походу его не хватает. и на всякий случай проверить стабильность таймера - если он плавает, будет та же хрень
менял значения jitter buffer от 20 до 400 и jbresyncthreshold от 800 до 1200 - проблема осталась
по поводу таймера (не знаю сильно он плавает или нет):

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

It has been 1000 milliseconds, and we got 150565 timer ticks
It has been 1000 milliseconds, and we got 150522 timer ticks
It has been 1000 milliseconds, and we got 151145 timer ticks
It has been 1000 milliseconds, and we got 149463 timer ticks
It has been 1000 milliseconds, and we got 148250 timer ticks
It has been 1000 milliseconds, and we got 148712 timer ticks
И после каждого теста пишет: Using the 'timerfd' timing module for this test.
пока что не нашел как использовать этот модуль. Тут как я понимаю указаны максимальное кол-во тактов. Если выставлять например:

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

*CLI> timing test 10000
It has been 1000 milliseconds, and we got 10000 timer ticks
то всегда будет выдавать 10000 timer ticks

т.е вроде не плавает
Аватара пользователя
Sfinx
Сообщения: 672
Зарегистрирован: 21 июн 2011, 23:40
Откуда: Odessa
Контактная информация:

Re: Failed to get 160 samples from read factory

Сообщение Sfinx »

С таймерами целая история, во первых нужно определится что есть в железе :

cat /sys/devices/system/clocksource/clocksource0/available_clocksource

потом что использует Linux ядро:

cat /sys/devices/system/clocksource/clocksource0/current_clocksource

потом с какими опциями это ядро собрано. для астера с софтварным таймером убийственной является NO_HZ - ее обычно ставят в дистрах для экономии энергии. нужно или юзать специально заточенное ядро или собрать ztdummy и не париться - он работает через RTC interrupt.
Rus

-----------
SfinxSoft
http://sfinxsoft.com
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH