Szukaj

Samouczek Asteriska: Ładowanie modułów

Samouczek Asteriska: Ładowanie modułów

W tym poście znajdziesz informacje, które podpowiedzą Ci jak załadować, przeładować lub usunąć określone moduły. Dowiesz się też na jakie kategorie są podzielone. Centrala po standardowej instalacji nie zawiera wszystkich dostępnych na rynku modułów i kodeków więc pokażemy jak zainstalować te dodatkowe które mogą Ci być potrzebne.

Spis treści

1) Wstępne informacje

Na początek warto wspomnieć, gdzie znajdziemy pliki konfiguracyjne i katalogi powiązane z konfiguracją modułów. Jeśli zainstalowałeś Asteriska do domyślnych katalogów to powinieneś znaleźć następujące pliki:

  • /etc/asterisk/modules.conf – plik do konfiguracji modułów
  • /usr/lib/asterisk/modulues – folder z modułami

 

Jeśli instalowałeś centralę korzystając z naszego instalatora to folderem dla 64-bitowych systemów z modułami będzie: /usr/lib64/asterisk/modules

Same moduły podzielone są na następujące kategorie:

  • Aplikacje (eng. Applications)
  • Mostki (eng. Bridging)
  • Zapis szczegółów o połączeniach (eng. Call Detail Records)
  • Sterowniki kanałów (eng. Channel Drivers)
  • Kodeki (eng. Codecs)
  • Formaty (eng. Formats)
  • Funkcje (eng. Functions)
  • Jądro (eng. Core/PBX)
  • Zasoby (eng. Resources)
Podpowiedź
Jeśli nie możesz znaleźć pliku modules.conf, spróbuj wykonać:
				
					find / -name 'modules.conf'
				
			

W środku katalogu z modułami, powinieneś znaleźć mnóstwo plik z rozszerzeniem .so. Skoro zostały one wygenerowane przez nasz instalator to powinna istnieć możliwość załadowania każdego z nich.

2) Wykorzystanie 'autoload=yes’

Najprostszym sposobem na załadowanie wszystkich dostępnych modułów jest wykorzystanie autoload. Można to zrobić w pliku modules.conf.

				
					nano /etc/asterisk/modules.conf
				
			
Podpowiedź
Zamiast ręcznie edytować  /etc/asterisk/modules.conf możesz też wykonać polecnie:
				
					sed -i "s/^autoload.*$/autoload=yes/" /etc/asterisk/modules.conf
				
			

Automatycznie załadowanie wszystkich modułów z autoload=yes niesie jednak za sobą pewne konsekwencje. Jeśli któryś z modułów nie został poprawnie załadowany centrala zacznie wyrzucać sporą ilość błędów.

Jeśli na przykład stworzyłeś tylko i wyłącznie podstawowe pliki z wykorzystaniem make basic-pbx, a następnie włączysz autoload=yes zobaczysz sporo błędów np.

ERROR[1373]: res_config_ldap.c:1825 parse_config: Cannot load configuration file: res_ldap.conf
ERROR[1373]: config_options.c:710 aco_process_config: Unable to load config file 'features.conf'
NOTICE[1190]: chan_sip.c:32569 reload_config: Unable to load config sip.conf
WARNING[1373]: func_odbc.c:1916 reload: Unable to load config for func_odbc: func_odbc.conf

i tym podobne.

Jeśli jednak:

  • chcesz użyć autoload=yes,
  • skonfigurowałeś wymagane pliki konfiguracyjne,
  • ale w dalszym ciągu pojawiają się błędu modułów, których nie używasz

możesz wykorzystać noload, żeby pominąć ładowanie wybranych modułów.

Przykładowa konfiguracja zachęca na przykład do wyłączenia modułów res_hep.

Jeśli chcesz ograniczyć ilość błędów, które wyrzuca centrala przygotowana za pomocą make basic-pbx, wystarczy stworzyć (nawet puste) pliki, których brakuje lub skopiować przykładowe pliki (eng. sample files).

# opcja 1 – skopiowanie przykładowych plików (zalecane)

				
					/bin/cp -b /etc/asterisk/samples/{cel.conf,features.conf,acl.conf,pjproject.conf,pjsip.conf,udptl.conf} /etc/asterisk/
				
			

# opcja 2 – przykład tworzenia pustych plików (NIE zalecane; poniżej NIEKTÓRE z wymaganych plików)

				
					touch /etc/asterisk/cel.conf /etc/asterisk/features.conf /etc/asterisk/acl.conf /etc/asterisk/udptl.conf
				
			
Podpowiedź
Jeśli nie posiadasz pliku z przykładowymi plikami (generowanymi podczas instalacji przez make samples) możesz prześledzić ten post, żeby zobaczyć jak wygenerować wspomniane pliki.

3) Ręcznie dodanie modułów z 'autoload=no’

Myślę, że świetnym punktem startowym jest wykorzystanie pliku modules.conf wygenerowanego przez make basic-pbx.

W środku pliku zauważysz, że tutaj zasada jest odwrotna. Domyślnie nie są załadowane żadne moduły i trzeba je dodać ręcznie. We wspomnianym pliku zauważysz, że moduły podzielone są na 9 kategorii. Każda z nich odpowiada temu co było dostępne podczas instalacji centrali w make menuselect.

Podpowiedź
Załadowanie modułu bez lub z błędną konfiguracją wyrzuci błąd, ale Asterisk w dalszym ciągu normalnie się włączy. Jeśli wolisz, żeby centrala nie była aktywna w przypadku błędu określonego modułu, możesz wykorzystać require, jak poniżej.
				
					require = res_pjsip.so
				
			

4) Przykładowe dodatkowe moduły

Chociaż centrala startowa zawiera wszystko czego potrzebujesz, żeby uruchomić centralę z podstawową funkcjonalnością, możesz chcieć załadować dodatkowe moduły. Poniżej omówimy jak dodać niektóre z nich.

4.1) Moduł chan_sip.so

Począwszy od Asteriska 13, PJSIP jest domyślnym sterownikiem do obsługi kanałów. Dlatego plik sip.conf nie jest już domyślnie generowany przez make basic-pbx, ale przez make samples już tak.

Jeśli posiadasz przykładowe pliki, mogło by się wydawać, że wystarczy skopiować plik sip.conf do /etc/asterisk/ oraz załadować moduł w modules.conf. Jednak jeśli w CLI (polecenie asterisk -r) wykonamy „module load chan_sip.so” otrzymamy błąd:

WARNING[1901]: chan_sip.c:33496 reload_config: Failed to bind to 0.0.0.0:5060: Address already in use

Powyższy błąd wynika z faktu, że port UDP 5060 jest już zajęty przez chan_pjsip.so. Wystarczy, że zmienimy port na np. 5070 i błąd zniknie, a centrala będzie nasłuchiwać na innym porcie:

SIP Listening on 0.0.0.0:5070

Później musimy tylko dopisać załadowanie modułu chan_sip.so do modules.conf, żeby sterownik był ładowany podczas autostartu Asteriska.

Całość osiągniemy tworząc sip.conf z minimalna konfiguracją, wykonując następujące polecenia:

				
					cat <<'EOF'>/etc/asterisk/sip.conf
[general]
bindaddr=0.0.0.0
bindport=5070
transport=udp
EOF
				
			

# option if you don’t use autoload = yes in modules.conf

				
					echo "load = chan_sip.so" >> /etc/asterisk/modules.conf
				
			
Podpowiedź
Jeśli chcesz wykorzystać przykładowy plik z naszego instalatora, wykonaj:
				
					/bin/cp -b /etc/asterisk/samples/sip.conf /etc/asterisk/
sed -i "s/^udpbindaddr=0.0.0.0.*$/udpbindaddr=0.0.0.0:5070/" /etc/asterisk/sip.conf
echo "load = chan_sip.so" >> /etc/asterisk/modules.conf
				
			

4.2) Dodatkowe kodeki G.723 oraz G.729

Odkąd zwolniono licencję na wykorzystanie G.729, można dodać kodek G.729 bez konieczności zakupowania dodatkowych kart transkodujących lub licencji od Digium.

Na stronie http://asterisk.hosting.lv/ znajdziesz linki do pobrania gotowych, skompilowanych kodeków G.723 oraz G.729. Nie będziemy wdawać się w szczegóły, jak pobrać pliki dla każdej wersji systemu. Skupimy się na naszym przypadku, czyli na 64-bitowej wersji Asteriska 16.

				
					wget http://asterisk.hosting.lv/bin/codec_g723-ast160-gcc4-glibc-x86_64-barcelona.so
wget http://asterisk.hosting.lv/bin/codec_g729-ast160-gcc4-glibc-x86_64-barcelona.so
mv codec_g723-ast160-gcc4-glibc-x86_64-barcelona.so /usr/lib64/asterisk/modules/codec_g723.so
mv codec_g729-ast160-gcc4-glibc-x86_64-barcelona.so /usr/lib64/asterisk/modules/codec_g729.so
chmod +x /usr/lib64/asterisk/modules/codec_g723.so
chmod +x /usr/lib64/asterisk/modules/codec_g729.so
				
			

# opcjonalnie jeśli nie korzystasz z automatycznego ładowania modułów

				
					echo "load = codec_g723.so" >> /etc/asterisk/modules.conf
echo "load = codec_g729.so" >> /etc/asterisk/modules.conf
asterisk -rx "module load codec_g723.so"
asterisk -rx "module load codec_g729.so"
				
			

Efekt końcowy powinien zawierać dodatkowe kodeki. Wykonanie w konsoli Asteriska „core show codecs audio” wyświetli nasze nowe kodeki.

				
					core show codecs audio
				
			

5) Pokaż załadowane moduły

Chociaż nie ma bezpośredniego sposobu, aby pokazać wszystkie załadowane moduły za pomocą jednego polecenia, możesz użyć polecenia 'module show like’. Ponieważ moduły mają rozszerzenia .so, większość modułów można wyświetlić za pomocą:

				
					asterisk -rx 'module show like so'
				
			

Spowoduje to wyświetlenie prawie wszystkich załadowanych modułów w Asterisk. Mówimy 'prawie’, ponieważ to polecenie pomija niektóre podstawowe moduły, takie jak acl, manager, http, logger, itp…

Czy wiesz co tak na prawdę dzieje się na Twojej centrali? Wypróbuj nasze autorskie oprogramowanie VOIPERO.

Instalacja i konfiguracja zajmuje tylko kilka minut a system jest teraz udostępniany całkowicie za darmo.

Dowiedz się jakie możliwości ma system VOIPERO jeżeli chodzi o raportowanie i monitorowanie na żywo systemów VoIP bazujących na asterisku.

Share this post

Masz pytania lub potrzebujesz oferty?

Skontaktuj się z naszym doradcą.

Popularne wpisy

Powiązane posty

Projekt wystartował!

Monitorowanie i raportowanie Twojego serwera VoIP