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

Asterisk заикается...

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

Кто подскажет, в каком направлении искать проблему?
Описываю ситуацию. Имеется:
Wildcard TDM400P в нее входит 4 потока E1 - ISDN PRI. Начальству потребовалось иметь возможность мониторить работу операторов, а именно, записывать в файлы, для проследующего прослушивания, если поступит жалоба от клиента(ов) на плохую работу, грубость и пр. оператора.
В конфиге сделал:

exten => s,1,DigitTimeout(10)
exten => s,2,BackGround(/var/spool/asterisk/await/gr_1)
exten => s,3,BackGround(/var/spool/asterisk/await/vmenu)
exten => s,4,BackGround(/var/spool/asterisk/await/adv.d/promo)
exten => s,5,SetVar(DIREC=/var/spool/asterisk/monitor)
exten => s,6,SetVar(CALLFILENAME=spravka/${DATETIME:0:8}-${DATETIME:-8:2}_${DATETIME:-5:2}_${DATETIME:-2:2})
exten => s,7,Monitor(wav,${CALLFILENAME})
exten => s,8,Queue(queue_spravka_wait|M|)
exten => h,1,System(/usr/bin/soxmix ${DIREC}/${CALLFILENAME}-in.wav ${DIREC}/${CALLFILENAME}-out.wav ${DIREC}/${CALLFILENAME}.wav)
exten => h,2,System(rm ${DIREC}/${CALLFILENAME}-in.wav ${DIREC}/${CALLFILENAME}-out.wav)
exten => h,3,System(/usr/local/bin/lame -f ${DIREC}/${CALLFILENAME}.wav ${DIREC}/${CALLFILENAME}.mp3)
exten => h,4,System(rm -f ${DIREC}/${CALLFILENAME}.wav)
exten => s,9,Playback(/var/spool/asterisk/await/peregruz)
exten => s,10,Hangup

Дальше идет ожидание нажатия цифр в голосовом меню.

Так вот. Когда запущен мониторинг, люди жалуются, что во время разговора глотаются слова, как бы заикается.
exten => h,3,System(/usr/local/bin/lame -f - сделал потому, что soxmix нивкакую не хочет понимать mp3 формат, пересобирал несколько раз, плюнул, решил так сделать.
Подскажите, что нужно покрутить, что бы этот эффект перестал проявляться?
#2

а иксы стоят на этой машине?
_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#3

Да не в иксах дело...
давай в студию uname -a

дело скорее всего в кодеках
#4

jitterbuffers?
А еще могет быть из-за эхоканцеллера...
#5

Chris писал(а):
Да не в иксах дело...

не торопись с ответом... уже были преценденты, также и на voip-info и в конфе * эта проблема обсуждалась давно еще и сам спенсер сказал что данная проблема очень часто бывает именно из-за иксов. вот. так что свой вопрос не снимаю c повески дня.. Wink

_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#6

pbx:~# uname -a
Linux pbx 2.4.21 #1 Thu Jul 10 06:57:42 MSD 2003 i686 GNU/Linux

Короче, Дебиан. Иксов не наблюдается.
#7

А сам * какой версии и что заикается с H323? или из SIP звонок?
#8

Chris писал(а):
А сам * какой версии и что заикается с H323? или из SIP звонок?


Вы наверное невнимательно почитали начало топика. Я же написал, что у меня ISDN-PRI, Е1 каналы, никакого SIP и H323 нет.
#9

Вадим Фрадков писал(а):

Вы наверное невнимательно почитали начало топика. Я же написал, что у меня ISDN-PRI, Е1 каналы, никакого SIP и H323 нет.


Так а что с jitter'ами и эхом?
Если уж заптел...
#10

Гость писал(а):
Вадим Фрадков писал(а):

Вы наверное невнимательно почитали начало топика. Я же написал, что у меня ISDN-PRI, Е1 каналы, никакого SIP и H323 нет.


Так а что с jitter'ами и эхом?
Если уж заптел...

zapata.conf:

echocancel=yes
rxgain=0.0
txgain=0.0

Это все, что стоит по этому поводу.
#11

На память:
echocancelwhenbridged=yes
echotraining=yes

А вот это актуально для меня как-то было:
jitterbuffers=... (по умолчанию 4, попробуй увеличить до 8 и т.д.)
#12

...да, и еще важная вестчь -
посмотри параметры модуля карты...
#13

может проблема в кол-ве параллельно работающих lame одновременно? 4 Е1 это 120 каналов - я так понимаю нагрузка присутствует таки на сервак а тут еще и lame жрет ресурсы до кучи да еще и во многих копиях одновременно(?)...

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

как вариант.

_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#14

Гость писал(а):
На память:
echocancelwhenbridged=yes
echotraining=yes

А вот это актуально для меня как-то было:
jitterbuffers=... (по умолчанию 4, попробуй увеличить до 8 и т.д.)


Ок, спасибо, echocancelwhenbridged=yes попробую, потому, как многое идет как раз мостом через Asterisk на станцию. Хорошо, что напомнил, хотел давно сделать, но все откладывал.
Но дело, скорее всего, не в этом...
#15

anest писал(а):
может проблема в кол-ве параллельно работающих lame одновременно? 4 Е1 это 120 каналов - я так понимаю нагрузка присутствует таки на сервак а тут еще и lame жрет ресурсы до кучи да еще и во многих копиях одновременно(?)...

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

как вариант.


Да, скороее всего это связано с lame, потому, что служба крупная и вызовов может быть от 10 до 50 в минуту. Винты хоть и сказевые, машика шустрая (Pentium-4 2,4GHz, 2Gb RAM), но такая дикая дисковая активность, видать, притормаживает. Плюс, ко всему прочему, программист тут учудился поставить postgres на эту машину, за что получил депримирование и запрет к доступу на сервер. По выводу top мне стало понятно еще одна причина "мороза" на каналах - дикая активность постгреса. Выключил postgresql, попробовал активировать мониторинг, эффект заикания снизился, но все равно, на качество связи сильно влияет.
Вопрос тольку у меня, скорее хотелось бы совета услышать по поподу мониторинга. Я стал конвертировать сеансы связи в mp3 формат из-за желания сэкономить дисковое пространство. soxmix, как я уже писал, не хочет в этом формате писать, это при всем при том, что я собирал его несколько раз, даже явно указывая, где находятся библиотеки lame кодека, он все равно мне создает mp3 файлы нулевой длинны.
Собственно что хотелось бы услышать, в качестве совета - если я уберу сжатие ламой файлов, глюк нейтрализуется? Если нет, то что, мне совсем отказаться от мониторинга?
Я в небольшом замешательстве.
#16

попробуй пока писать в gsm - думаю должно помочь.
и еще кстати - микшировать не нужно отдельно файлы - это делается ключом m в мониторе прям.

exten => s,7,Monitor(gsm,${CALLFILENAME},m)

_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#17

anest писал(а):
попробуй пока писать в gsm - думаю должно помочь.
и еще кстати - микшировать не нужно отдельно файлы - это делается ключом m в мониторе прям.

exten => s,7,Monitor(gsm,${CALLFILENAME},m)


Ага, сенкс. Только вот вопрос один есть, пикантный. Тётя, которая мониторит операторов, немного в возрасте, и ей надо все на "ублюдечке" подавать Wink Как этот gsm прослушивать? Только не по телефону, Боже упаси такого изврата! Smile
#18

гсм и мп3 и вав файлы можно тем же софтом слушать. обычно Smile
#19

кстати на сайте winamp.com есть плучинчик для винампа для gsm - после его установки винамп подхватывает gsm файлы и играет также как и mp3 без проблем.
_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#20

Почему бы не добавить родной Microsoft GSM codec, тогда слушать можно любым медиа плейером, зачем плагины какие-то?
#21

Хинт от меня: Любой кодек жрец проц... Нативно на винт - жрет винт...
#22

Забыл добавить дефолтный [beep]?
#23

хм. чегото не додумался Embarassed
можешь ссылочку дать?

_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#24

да еще, на сервак под нагрузкой я бы поставил линух с исходников например gentoo какойнить ну или руками собирать самому. заметно ускоряет работу это правда. еще можно попробовать писать файлы сразу на другую тачку(-и) по сети раз винт не справляется.
еще.. еще можно кластер замутить. с перераспределением нагрузки. во!
Razz

_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#25

anest писал(а):
да еще, на сервак под нагрузкой я бы поставил линух с исходников например gentoo какойнить ну или руками собирать самому. заметно ускоряет работу это правда.

...ну ни фига себе... взрослеем...
#26

anest писал(а):
попробуй пока писать в gsm - думаю должно помочь.
и еще кстати - микшировать не нужно отдельно файлы - это делается ключом m в мониторе прям.

exten => s,7,Monitor(gsm,${CALLFILENAME},m)


Ха, дудки! Пишет раздельно! =(

получается 31052005-13_30_50|m-in.gsm
Хренотень какая-то.... Во-первых, даже если формат записи имени будет такой, винда не поймет (по самбе контроллер смотрит файлы). И деффиренциация на in-out - задолбала уже... Можно поправить?
#27

Ded писал(а):
Забыл добавить дефолтный [beep]?


Не "дефолтный", а "традиционный", бестолочь...
#28

Вадим Фрадков писал(а):

exten => s,7,Monitor(gsm,${CALLFILENAME},m)

[/quote]

iMhO:
1) CALLFILENAME - фиксирована? По-моему нет, ибо: "exten => s,6,SetVar(CALLFILENAME=spravka/${DATETIME:0:8}-${DATETIME:-8:2}_${DATETIME:-5:2}_${DATETIME:-2:2})"
2) |m - работает, и вообще с "," _должно_ работать, но лучше по мануалу "|" везде использовать. Ну и ессно: show application Monitor
#29

Гость писал(а):
Вадим Фрадков писал(а):

exten => s,7,Monitor(gsm,${CALLFILENAME},m)

Цитата:


iMhO:
1) CALLFILENAME - фиксирована? По-моему нет, ибо: "exten => s,6,SetVar(CALLFILENAME=spravka/${DATETIME:0:8}-${DATETIME:-8:2}_${DATETIME:-5:2}_${DATETIME:-2:2})"
2) |m - работает, и вообще с "," _должно_ работать, но лучше по мануалу "|" везде использовать. Ну и ессно: show application Monitor


CALLFILENAME - не фиксировано, потому, как надо записывать уникальное имя файла с датой и временем. Неужели это влияет на Monitor?
С "|" пробовал, эффект тот же... в общем, запарился... в доках написано, что Monitor понимает флаги после какого-то CVS. Желания делать CVS на боевой машине нет. Оставил с soxmix и gsm. Все. Голова болит уже от этого всего.
#30

anest писал(а):
хм. чегото не додумался Embarassed
можешь ссылочку дать?

Без ссылки (они через google), по памяти: Add hardware -> add new hardware (advanced) -> manualy from list -> have a disk -> from location ..\windows\system32 -> mmdriver.inf -> Microsoft GSM 6.10 audio codec -> Restart now? Yes/No/OK
#31

Есть такой кодек. но только не играет он ничего Sad
пришлось плагин к винампу ставить - винамп играет а другие плеера нет.

_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#32

Ded:
Цитата:
Надо рестартить, играет. Но капризный - это да. В смысле, на одной машине встаёт, на другой нет.
#33

Вот еще вопрос. У меня имя файла содержит CallerID звонящего. Если он не определился, то у меня в том месте имени файла пишется байда всякая. Если возможность дать астериску понять, что если номер неопознан, то писать вместо него unknown?
#34

да запусти ты скрипт и не майся! Wink

cd ~/tmp
wget http://www.szmidt.org/asterisk/asterisk-update.sh
chmod +x asterisk-update.sh
./asterisk-update.sh update
Addon's is currently NOT in use. Do you want them (y/n)? n
CreditCard is currently NOT in use. Do you want them (y/n)? n

и всё будет пучком Smile

Цитата:
Asterisk has been checked out from CVS.
Would you like to compile and install now (y/n)? y

Stop Asterisk before or after compiling, or not at all (b/a/n)? b
Compiling Asterisk
Verifying kernel version and source availability... Running 2.4 kernel
...
--- Compile took 178 sec. (Excluding any addons.) --- P-4 2.4GHz
...
Asterisk installed
Restarting Asterisk

Starting asterisk: [ OK ]
#


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

_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#35

если есть сомнения насчет данного метода обновления астериска на критичных узлах - предлагаю сначала попробовать этот скприпт на любой отдельной машине с целью убедиться что всё будет ок Smile
_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#36

Сомнения оправдались, заткнулся скриптец.
#37

тоесть?
_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#38

Цитата:
Stop Asterisk before or after compiling, or not at all (b/a/n)? b

Question

_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#39

Ну так в чём там дело, Ded? а то чувствую себя погано...
_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#40

Не нашёл CVS repositories head и обломался. Проехали.
#41

anest писал(а):
да запусти ты скрипт и не майся! Wink


Неее, дружище, маятся не буду, потому, что простой этого всего дела ( а кто его там знает, что не так пойдет) может обернуться потерей нескольких сотен тысяч баксов, что само по себе вызовет сексуальные потребности у руководства, без вазелина....скорее с тормозной житкостью... Это вы уж простите, но эскперементировать на живом Колл-центре и остальных службах, которые через астериск идет - нет желания.

Вообще мне не нравится как он с ISDN-PRI работает. А недавно вообще по 11 сигналу покрошил себя намертво, хорошо, что я был рядом, увидел на мониторе в логе системы сигнал от него.
С аудиоконтролем (Monitor) - полная лажа, писать - пишет, но глючат каналы при записи.
В общем, нужен коммерческий софт. Если кто начнет говорить, что дескать "вы не умеете готовить астериски просто", скажу так. В бизнесе надо все делать оперативно и качественно. Времени на эксперименты не так мало и трата того же времени - деньги.

Жаль.. Увы... Пока оставил без монитора, пусть пока так работает, попробую поискать хороший комерческий софт.
#42

Ded писал(а):
Не нашёл CVS repositories head и обломался. Проехали.


ты интернет случайно не забыл "включить" на тестируемой машине? Wink

заглянул в скрипт - что он там у тебя не нашел и почему - для меня остаётся загадкой... если вообще ты его запускал..

прям как в том анекдоте - толи лыжи не едут.. толи еще чего..

использовать скрипт я предложил по той причине что вижу что у человека стоит древняя сборка а обновлять "руками" ему влом (бывает). хотя известно что этот апдейт решит большинство его проблем. так что не вижу причин для раздражения..

_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#43

Вадим Фрадков писал(а):
Неее, дружище, маятся не буду, потому, что простой этого всего дела ( а кто его там знает, что не так пойдет) может обернуться потерей нескольких сотен тысяч баксов, что само по себе вызовет сексуальные потребности у руководства, без вазелина....скорее с тормозной житкостью... Это вы уж простите, но эскперементировать на живом Колл-центре и остальных службах, которые через астериск идет - нет желания.
Все обновления на работающих системах делаются после полного бэкапа в часы наименьшей загрузки, например ночью, около 4-х часов. Предварительно подготавливаются планы восстановления системы из резервной копии, возможно пишутся скрипты для более быстрого [автоматизированного] восстановления, расчитывается максимальное время простоя ("время_на _ручное_восстановление_системы" * 2), уведомляются пользователи и другие заинтересованные лица.
#44

ядро какое?
если 2.4 то очень рекомендую
http://www.plumlocosoft.com/kernel/patch ... e.diff.bz2

очень помогает при многих (>3) процессах в R и задержки гасит неплохо. Хорошую частоту переключения задач тебе прерывания от zap организуют
Hint: при конфигурации ядра вруби SMP.

а еще хорошо ограничить нагрузку М разговорами.
#45

Pasha писал(а):

PPPS а купить отдельную систему... эти вопросы в ней уже решены, конечно. но не факт, что ты их не сможешь решить самостоятельно за те же или меньшие деньги. А если, сможешь, то зачем платить чужим? Smile

..с жаром присоединяюсь к мнению!