Случайни мисли на щастлив програмист

degges

И така, използвате Asterisk професионално, за забавление или и двете, и искате да знаете как да оптимизирате лайна от вашата платформа Asterisk? Няма проблем, покрих те.

Вземете бира, освободете следващите 2 часа от времето си и нека стигнем до нея!

Защо да направите това?

За да ускорите платформата си Asterisk. Asterisk е голяма и сложна PBX система със стотици функции, команди и различни компоненти. Всеки използван компонент добавя допълнителни режийни разходи към вашата система Asterisk под формата на RAM, CPU и понякога дисково пространство.

За да накарате вашата Asterisk PBX да се представи най-добре, е полезно да премахнете всичко, от което не се нуждаете, и да принудите системата си Asterisk да работи най-добре.

Подготовка

За да направите това бързо, вече трябва да имате кутия със звездичка, работеща, в идеалния случай с някакъв работен код за маршрутизиране на повиквания от някакъв вид. Ако управлявате Asterisk сървър по време на работа, това ще се справи добре.

ВНИМАНИЕ: Не опитвайте тези неща на живо на производствени сървъри, освен ако наистина не харесвате злоупотреби.

Приближаване

Подходът, който обичам да възприемам с отслабването, рационализирането или както искате да го нарека Asterisk, е да инсталирам Asterisk първоначално с възможно най-много функции, да деактивирам всичко, след това избирателно да активирам функциите, от които се нуждая, една по една.

Това се нарича подход на белия списък, тъй като блокирате всичко по подразбиране и след това ръчно разрешавате само определени функции (помислете за мрежова сигурност).

Този метод изисква повече усилия за настройка и поддръжка, но води до възможно най-добрата производителност.

Инсталирайте звездичка

Ако сте запознати с инсталирането на Asterisk, можете да продължите и да преминете към следващия раздел. Добра работа, умен човек!

Ако никога преди не сте инсталирали Asterisk, прочетете ръководството ми.

Ако сте инсталирали Asterisk от мениджъра на пакети на вашата операционна система (yum, apt и т.н.), можете също да пропуснете този раздел.

И така, предполагам, че сте инсталирали Asterisk от източник. Хубаво. Това е най-добрият начин (но вече го знаете). Както и да е, както споменах в предишния раздел, обичам да инсталирам Asterisk с възможно най-много активирани функции. По този начин, ако някога ми се наложи да получа допълнителна функционалност, мога просто да я активирам и да не се налага да преинсталирам напълно Asterisk от източника.

Ако не сте сигурни как селективно да изберете кои функции са инсталирани, когато компилирате Asterisk, трябва само да стартирате make menuselect в директорията Asterisk source (това важи и за asterisk-addons), след като стартирате ./configure, но преди да стартирате make .

Докато инсталирате Asterisk, можете да изпълните следните команди:

Когато стартирате make menuselect, ще видите графичен интерфейс, базиран на ncurses, който ви позволява да използвате клавишите със стрелки, enter и tab, за да се придвижвате и да избирате кои компоненти да инсталирате. Трябва да изберете колкото се може повече.

Разберете кои функции използвате

Тази стъпка е важно. Трябва да разберете кои части на Asterisk сте трябва за да направите това, което правите, преди дори да можете да помислите за премахване на ненужни боклуци.

Ето някои полезни съвети, за да разберете кои части на Asterisk са ви необходими:

Прочетете тази страница на voip-info. Той има доста добър списък с зависимости от модула и конфигурационния файл.

Погледнете целия си код в extensions.conf и запишете всички имена на приложения, които използвате. Това биха били неща като Plaback, Monitor и т.н.

Какъв вид протоколи поддържа вашата система? SIP? IAX? DAHDI? ZAPTEL?

Какъв вид кодеци за повикване поддържате? ULAW, G729 и др.?

В кои конфигурационни файлове изрично сте поставили код? индикации.conf? smdi.conf? и т.н.?

Предлагам да ги запишете някъде. Не е критично да имате всички идеално разбрани в началото, винаги можете да го разберете по-късно чрез проби и грешки.

Получете списък с всички модули

Сега трябва да получим списък с всички модули Asterisk, които в момента са налични във вашата система. Ако сте компилирали Asterisk от нулата и сте прочели моя раздел Инсталиране на Asterisk, трябва да имате много.

В повечето Linux системи можете да получите списък с всичките си модули Asterisk, като изпълните следната команда: ls/usr/lib/asterisk/modules /. Това може да е различно за вас, в зависимост от операционната система, която използвате.

Деактивирайте всичко

Преди да активираме модулите, от които се нуждаем, ще деактивираме всичко. Това е част от нашия подход за отслабване на Asterisk.

За да направите това, отворете вашия файл module.conf (обикновено се намира в/etc/asterisk /). Вашият файл трябва да изглежда по следния начин:

Променете реда, който казва autoload = yes на autoload = no. Това ще предотвратявам Звездичка от автоматично зареждащи се модули.

Следващото нещо, което трябва да направите, е да заредите предварително всички необходими модули. Както е показано в примерната конфигурация по-горе, ако имате нужда от поддръжка на odbc, трябва да поставите preload => res_odbc.so директно под реда си autoload = yes.

След като приключите с предварителното зареждане, изтрийте всичко останало във файла. Сериозно. Вече няма да имате нужда от него:)

Активирайте само това, от което се нуждаете

Все още трябва да сте във вашия файл module.conf. Сега, не забравяйте преди, когато сте получили списък с всички модули Asterisk, налични във вашата система (ls/usr/lib/asterisk/modules /)? Направете следното:

Под всичките си редове за предварително зареждане в modules.conf вмъкнете load => module_name.so за всеки модул, който започва с res_, напр.

Чудите се защо първо трябва да направите всички модули с res? Тъй като тези модули са специални, те са ресурси. Ресурсните модули трябва да бъдат заредени преди други модули, тъй като те често отговарят на проблеми със зависимостта.

Сега, не се колебайте да вмъкнете load => module_name.so редове за останалите модули, които не започват с res_, напр.

Сега прегледайте списъка с модули, които имате във модулите си.conf, и коментирайте тези, без които абсолютно не можете да живеете.

Осъзнавам, че горните стъпки не са точно описателни, затова продължете да четете. Следващият раздел ще ви даде допълнителни указатели.

Съвети за отслабване

По някое време по време на тази статия вероятно сте си помислили: Как да разбера кои модули са абсолютно важни за моята настройка?.

Ако не можете да го разберете, има един надежден начин да го разберете: проба-грешка.

Не се чувствайте зле, когато правите опити и грешки и тук, Asterisk може да е сложна.

Конфигурирайте вашия logger.conf да извежда с максимална многословност към пълния регистрационен файл. Вашият файл logger.conf трябва да има ред, който изглежда така: пълен => известие, предупреждение, грешка, отстраняване на грешки, подробен .

Опитайте да рестартирате Asterisk: /etc/init.d/asterisk рестартирайте. След това проверете пълния си регистрационен файл: tail/var/log/asterisk/full и потърсете редове, които съдържат ВНИМАНИЕ или ГРЕШКА. Asterisk предоставя страхотни съобщения за грешки. Така че, ако не зареждате необходим модул, той ще ви каже.

Заредете модулите, които ви липсваха, и се върнете към стъпка 1.

Знаете, че сте готови, когато сте преминали през всеки един модул на вашата система, и знаете точно кои от тях трябва да сте активирали, за да стартирате системата си.

Резултати

Рационализирането на инсталирането на Asterisk има големи предимства. Не само системата ви ще работи много по-бързо и по-ефективно от преди, но ще знаете и много повече за Asterisk, как работи и как да модифицирате поведението си.

Една от големите силни страни на Asterisk е неговата модулна система, която е изключително динамична и осигурява чудесен интерфейс за добавяне на функционалност от разработчиците.

Имате ли въпроси? Чувствайте се свободни да ми изпратите имейл, ще се радвам да помогна.

PS: Ако прочетете дотук, може да искате да ме следвате в Twitter или github и да се абонирате чрез RSS или имейл по-долу (Ще ви изпратя по имейл нови статии, когато ги публикувам).