1. Cel ćwiczenia. 2. Telefonia IP. Materiały do laboratorium. Uruchomienie i konfiguracja centrali Asterisk PBX



Podobne dokumenty
TELEFONIA INTERNETOWA

Telefonia Internetowa VoIP

1. Instalacja centrali Asterisk w systemie Ubuntu 12.04

1. Wprowadzenie. VoIP ĆWICZENIE Asterisk Podstawowe informacje Konfiguracja użytkowników

Instrukcja konfiguracji funkcji skanowania

Rozdział ten zawiera informacje na temat zarządzania Modułem VoIP oraz jego konfiguracji.

Serwery multimedialne RealNetworks

Dodawanie nowego abonenta VOIP na serwerze Platan Libra

MODEL WARSTWOWY PROTOKOŁY TCP/IP

SIP Studia Podyplomowe Ćwiczenie laboratoryjne Instrukcja

4. Podstawowa konfiguracja

Internetowy serwis Era mail Aplikacja sieci Web

OmniTouch 8400 Instant Communications Suite Integracja z programem Microsoft Outlook

SIP. Protokół podzielony na żądania i odpowiedzi (jak HTTP). Żądania: Invite, Ack, Register, Bye, Cancel, Options, PRACK,.

Ilość sztuka 1 PBX/IP Opis minimalnych wymagań 1 W zakresie sprzętowym 1.1 Porty: - Min 1 port WAN - RJ-45 (10/100Base-TX, automatyczne wykrywanie)

Sygnalizacja Kontrola bramy Media

Połączenia VoIP z firmą Slican

Instrukcja użytkownika ARsoft-CFG WZ1 4.0

Konfiguracja konta pocztowego w Thunderbird

Instrukcja instalacji usługi Sygnity Service

System interkomowy. Karty VoIP G8-IAX G3-IAX

PODRĘCZNIK UŻYTKOWNIKA programu Pilot

ArtPlayer oprogramowanie do odtwarzania plików video sterowane Artnet/DMX V1.0.1

System IVR. Opis elementów systemu

Wykład 4: Protokoły TCP/UDP i usługi sieciowe. A. Kisiel,Protokoły TCP/UDP i usługi sieciowe

Testy współpracy. Asterisk z techniką WebRTC

WYJAŚNIENIA TREŚCI SPECYFIKACJI ISTOTNYCH WARUNKÓW ZAMÓWIENIA

VinCent Administrator

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

1. Opis. 2. Wymagania sprzętowe:

Instrukcja klienta wideokonferencji Yealink VC Desktop dla systemów Windows 7, 8, 10

Współpraca z platformą Emp@tia. dokumentacja techniczna

Uwaga!!! Założono, że router jest poprawnie podłączony i skonfigurowany do obsługi dostępu do Internetu.

Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark

Współpraca z platformą dokumentacja techniczna

POŁĄCZENIE STEROWNIKÓW ASTRAADA ONE MIĘDZY SOBĄ Z WYKORZYSTANIEM PROTOKOŁU UDP. Sterowniki Astraada One wymieniają między sobą dane po UDP

Dane do konfiguracji konta klienckiego...2 Konto SIP...2 Konfiguracja dla Linksys PAP2T:...2 konfiguracje bramek za nat:...2 bez nat:...3 Klient...

Instrukcja użytkownika ARSoft-WZ1

ArtPlayer. Odtwarzacz plików video sterowany poprzez Artnet/DMX V Instrukcja obsługi.

PROGRAM DO ARCHIWIZACJI NOŚNIKÓW KOPII ELEKTRONICZNEJ

Technologie VoIP i Qos Serwer Asterisk

Data wykonania Część praktyczna

Mobilna komunikacja VoIP

PODŁĄCZENIE I KONFIGURACJA APARATU SIEMENS GIGASET A510IP (v )

procertum CLIDE Client 2.1 wersja 1.0.2

2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego

1. Architektura logiczna Platformy Usługowej

Wykaz zmian w programie WinAdmin Replikator

Programowanie centrali telefonicznej Platan Libra

Wszystkie parametry pracy serwera konfigurujemy w poszczególnych zakładkach aplikacji, podzielonych wg zakresu funkcjonalnego.

Laboratorium 6.7.1: Ping i Traceroute

Instrukcja podłączenia bramki IP 1R+L oraz IP 2R+L w trybie serwisowym za pomocą usługi telnet.

Podstawowe protokoły transportowe stosowane w sieciach IP cz.1

INSTRUKCJA OBSŁUGI PROGRAMU. ver

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja

Instrukcja integracji systemu RACS 4 z centralami alarmowymi INTEGRA firmy SATEL

Archiwizacja baz MSSQL /BKP_SQL/ opis oprogramowania

ABA-X3 PXES v Podręczna instrukcja administratora. FUNKCJE SIECIOWE Licencja FDL (bez prawa wprowadzania zmian)

Panel Konta - instrukcja. Warszawa, 2013 r

Instrukcja instalacji Control Expert 3.0

Instrukcja do oprogramowania ENAP DEC-1

7. Konfiguracja zapory (firewall)

Telefonia VoIP w sieci HamNET

INTEGRACJA CTI REJESTRATORÓW TRX z CISCO Unified Communications Manager (SIP Trunk / JTAPI) Cyfrowe rejestratory rozmów seria KSRC

Instrukcja instalacji v2.0 Easy Service Manager

1 Moduł Inteligentnego Głośnika

Laboratorium - Używanie programu Wireshark do obserwacji mechanizmu uzgodnienia trójetapowego TCP

PAP-2T w sieci FreePhone

Wdrożenie modułu płatności eservice. dla systemu Magento

Skanowanie podsieci oraz wykrywanie terminali ABA-X3

Fiery Remote Scan. Uruchamianie programu Fiery Remote Scan. Skrzynki pocztowe

Konfiguracja współpracy urządzeń mobilnych (bonowników).

Instrukcja instalacji usługi Sygnity Service

1 Moduł Inteligentnego Głośnika 3

VComNet Podręcznik użytkownika. VComNet. Podręcznik użytkownika Wstęp

Programowanie współbieżne i rozproszone

12. Wirtualne sieci prywatne (VPN)

PBX SERVER LIBRA. Cennik systemów telekomunikacyjnych LIPIEC 2013

SZYBKA INSTALACJA. BRAMKA VoIP GXW 40XX

GroupWise WebAccess Basic Interface

Krótka instrukcja instalacji

INSTRUKCJA INSTALACJI OPROGRAMOWANIA MICROSOFT LYNC 2010 ATTENDEE ORAZ KORZYTANIA Z WYKŁADÓW SYNCHRONICZNYCH

INSTRUKCJA OBSŁUGI SUPLEMENT

Win Admin Replikator Instrukcja Obsługi

Program GroupWise WebAccess interfejs podstawowy

OFERTA NA CENTRALĘ WIRTUALNĄ DLA USŁUGI INFOLINII 800 / 801

Przesyłania danych przez protokół TCP/IP

Bramka VoIP (Voice over IP gateway) Implementacja VoIP w routerach DrayTek

Wykład Nr Sieci bezprzewodowe 2. Monitorowanie sieci - polecenia

Graficzny terminal sieciowy ABA-X3. część druga. Podstawowa konfiguracja terminala

TRX API opis funkcji interfejsu

3S TeleCloud - Aplikacje Instrukcja użytkowania usługi 3S KONFERENCJA

Transmisja danych multimedialnych. mgr inż. Piotr Bratoszewski

Grzegorz Gliński. 1. Opis wykonanego ćwiczenia

Instrukcja obsługi. Konsola Dyspozytorska.

Sieci komputerowe i bazy danych

Wykład 2: Budowanie sieci lokalnych. A. Kisiel, Budowanie sieci lokalnych

Skrócona instrukcja obsługi grupowego portalu głosowego

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej

Instalacja i konfiguracja SAS PC Files Server

Transkrypt:

Materiały do laboratorium Uruchomienie i konfiguracja centrali Asterisk PBX 1. Cel ćwiczenia Celem ćwiczenia jest instalacja i konfiguracja centrali PBX przy użyciu oprogramowania Asterisk. Asterisk umożliwia stworzenie spójnego systemu, który łączy fragmenty sieci telefonicznej korzystające z tradycyjnej telefonii analogowej oraz te korzystające z telefonii IP. Pozwala na dowolne konfigurowanie połączeń wychodzących oraz przychodzących. Centrala zapewnia standardowe funkcje jakie posiadają tradycyjne centrale telefoniczne oraz daje możliwość konfiguracji bardzo rozbudowanych i złożonych systemów. Takie rozwiązanie jest bardzo popularne ze względu na innowacyjność oraz na możliwość obniżenia kosztów implementacji oraz użytkowania. 2. Telefonia IP Voice over Internet Protocol (VoIP) jest formą komunikacji, która pozwala na tworzenie połączeń telefonicznych poprzez sieć Internet. Do usług VoIP zalicza się również połączenia z użytkownikami tradycyjnej analogowej sieci telefonicznej (PSTN, POTS), ale wiąże się to z koniecznością opłaty za połączenie. Niektóre usługi wymagają użycia komputera lub telefonu VoIP, ale są również takie, z których można korzystać przy pomocy zwykłego telefonu i odpowiedniego adaptera. Technologie wykorzystujące sieć Internet oraz protokół IP do przesyłania głosu stają się atrakcyjną alternatywą dla tradycyjnych sieci telefonicznych. Przedsiębiorców przyciągają głównie niskie stawki na połączenia wychodzące poza sieć firmową oraz darmowe rozmowy wewnątrz firmy. Kolejną zaletą VoIP jest fakt, że ta technologia daje możliwość integracji z przyszłościowymi usługami takimi jak na przykład przesyłanie obrazu czy też integracja z bazami danych. Analogowa transmisja głosu ma istotną wadę, gdyż rozmówcy oprócz rozmowy odbierają szumy generowane przez linię telefoniczną. W przypadku dźwięku przesyłanego przez sieć IP na jakość wpływają przede wszystkim trzy czynniki: Utraty pakietów sieci IP nie gwarantują, że pakiety zawsze zostaną dostarczone do miejsca przeznaczenia na czas i w odpowiedniej kolejności. Przeciążenia łączy powodują, że pakiety są gubione. Dlatego typowe schematy retransmitowania pakietów nie mają tu zastosowania. Zakłada się, że system VoIP działa w miarę poprawnie, jeśli stopa utraty pakietów nie przekracza 10%. Zakłada się również, że retransmisja utraconych pakietów nie jest korzystna, stąd raczej zastosowanie UDP a nie TCP. Opóźnienia (latency) można wymienić dwa podstawowe problemy, które pojawiają się wtedy, gdy opóźnienie przy przesyłaniu dźwięku jest za duże: echo i nakładanie się słów wypowiadanych przez rozmówców. Echo powstaje wtedy, gdy opóźnienie przekracza 50-100 ms (zwłoka mierzona w obie strony). Ze względu na to, że echo potrafi zniekształcić całą rozmowę, systemy IP muszą dysponować mechanizmami likwidującymi tę niedogodność. Nakładanie się na siebie słów wypowiadanych przez 1

rozmówców pojawia się wtedy, gdy opóźnienie (mierzone w jedną stronę) jest większe niż 250 ms. Różnice w opóźnieniach (jitter) poszczególne pakiety zawierające głos docierają do celu z różnym opóźnieniem jedne pakiety przychodzą wcześniej, inne później. Problem ten można rozwiązać przez gromadzenie pakietów w buforze i przetrzymywanie ich do momentu, aż do bufora dotrze najwolniej transmitowany (czy też ostatni) pakiet. Daje to gwarancję, że pakiety będą docierały do miejsca przeznaczenia w odpowiedniej kolejności. Zastosowanie buforów ma jednak tę wadę, że powoduje powstawanie dodatkowego opóźnienia. Strumienie danych głosowych są przesyłane przy pomocy bezpołączeniowego protokołu UDP (User Datagram Protocol). Jest to związane z koniecznością dostarczania danych w czasie rzeczywistym oraz brakiem możliwości retransmisji czy korekcji błędów. Dzięki wykorzystaniu tego protokołu unika się dodatkowych opóźnień, mających destrukcyjne działanie na przekazy głosowe. Protokół RTP (Real Time Transport Protocol) wspierany przez RTCP (Real Time Control Protocol) zapewnia utrzymanie sekwencji przesyłanych pakietów, a także nadanie im odpowiednich znaczników czasu, dzięki którym możliwa jest kontrola opóźnień między kolejnymi pakietami podczas ich odbioru. 3. Centrala Asterisk Asterisk jest to oprogramowanie, dzięki któremu komputer może pełnić funkcję centrali IP PBX. Taki komputer wraz z odpowiednim sprzętem jest kompletnym rozwiązaniem dla przedsiębiorstw oraz operatorów telefonicznych. Początkowo centrala była dostępna jedynie pod systemem Linux, jednak wraz z rozwojem projektu pojawiły się również wersje działające na innych systemach operacyjnych. Asterisk jest oprogramowaniem typu open source ale można również korzystać z niego dzięki płatnym licencjom. Kolejną zaletą jest pełna niezależność. W przypadku tradycyjnych central PBX producenci często nie ujawniają pełnej dokumentacji oraz haseł do systemu. Centrala Asterisk pozwala na pełną swobodę działania. Można rozszerzyć funkcjonalność centrali dopisując dodatkowe skrypty lub modyfikując kod źródłowy w języku C, PHP lub Perl. Jako główną wadę platformy najczęściej postrzega się fakt, że Asterisk używa procesora komputera, na którym jest zainstalowany i nie posiada żadnych dodatkowych procesorów. Aby wyeliminować tę wadę, można skorzystać z dodatkowych rozwiązań, takich jak na przykład sprzętowa eliminacja echa. 3.1. Architektura centrali Asterisk Centrale Asterisk różnią się tym od tradycyjnych central PBX, że wszystkie kanały traktowane są w jednakowy sposób. W tradycyjnej centrali jest różnica pomiędzy stacjami końcowymi, a łączami typu trunk. Oznacza to na przykład konieczność używania dodatkowych rozszerzonych numerów w przypadku podłączenia bramy zewnętrznej do portu przeznaczonego dla stacji końcowej. W centralach Asterisk nie ma rozróżnienia pomiędzy łączami. Istnieją różne typy kanałów, ale są one traktowane przez centralę w jednakowy sposób. Oznacza to, że użytkownik końcowy może znajdować się za łączem zewnętrznym i będzie traktowany tak, jakby znajdował się w wewnętrznej sieci. 2

Architektura central Asterisk składa się z modułów. Moduł jest to element, który pozwala na realizację funkcji takich jak obsługa kanałów czy łączność zewnętrzna. To, które moduły będą wykorzystywane przez centralę, można zdefiniować w pliku modules.conf znajdującym się w katalogu /etc/asterisk/. Można uruchomić centralę nie korzystając z żadnych modułów, jednak w takim przypadku nie będzie dostarczała żadnych funkcjonalności. Moduły można również dołączyć w trakcie działania centrali posługując się linią komend. Dzięki strukturze modułowej funkcje systemu są zebrane w grupach, co sprawia, że system jest bardziej przejrzysty. Można wyróżnić kilka typów modułów: Aplikacje i funkcje są używane w pliku extensions.conf do zdefiniowania jakie akcje będą zastosowane w przypadku konkretnego połączenia. Call Detail Recording (CDR) służą do przechowywania danych dotyczących rozmów - w bazach danych lub specjalnych plikach. Te dane to na przykład czas trwania rozmowy, numer telefonu dzwoniącego czy docelowego. Channel Event Logging (CEL) te moduły mają podobną funkcję do modułów CDR ale dostarczają więcej szczegółowych informacji na temat połączeń. Sterowniki kanałów wszystkie połączenia przychodzące są modyfikowane przez sterowniki kanałów tak aby były zgodne z wewnętrznym protokołem sygnalizacyjnym centrali, a połączenia wychodzące dzięki sterownikom kanałów zyskują formę zgodną z zewnętrznym protokołem sygnalizacyjnym. Translatory kodeków moduły zmieniające kodeki tak aby były zgodne dla użytkowników końcowych wykonujących połączenia. Na przykład, jeśli przy realizacji połączenia korzysta się jednocześnie z kilku protokołów, odpowiedni moduł zmieni sposób kodowania sygnału dźwiękowego tak, aby połączenie mogło być zrealizowane. Translatory formatów plików umożliwiają odtwarzanie i nagrywanie dźwięków w różnych formatach. Ważnym pojęciem w architekturze Asterisk są interfejsy i kanały. W terminologii Asterisk wszystkie połączenia przychodzą i wychodzą na specyficznych interfejsach. Nazwy ich pochodzą od obsługiwanych protokołów, czy technik, natomiast wszelkiego typu operacje na konkretnym połączeniu, to operacje na specyficznym dla danego interfejsu kanale. Przychodzące połączenia obsługiwane są zgodnie z wcześniej skonstruowaną logiką zapisaną przy pomocy dedykowanego języka skryptowego jako tzw. Dial Plan. Kanał jest równoważny linii telefonicznej w cyfrowym formacie [6]. Na kanał składają się analogowy lub cyfrowy system sygnalizacyjny lub system połączony z odpowiednim kodekiem. W centralach Asterisk można korzystać z kanałów zgodnych z protokołami występującymi w tradycyjnej sieci telefonicznej PSTN (chan_dahdi, chan_misdn) oraz protokołami przeznaczonymi dla telefonii VoIP (chan_sip, chan_h323, chan_iax itd.). Dzięki temu możliwe jest stworzenie spójnego systemu w którym wykorzystuje się kilka technik jednocześnie. 3.2. Protokoły stosowane w centralach Asterisk Centrale Asterisk obsługują większość aktualnie używanych w sieciach telefonicznych protokołów: SS7, DSS1, SIP (Session Initiation Protocol), H.323, MGCP (Media Gateway Control Protocol), SCCP (Skinny Client Control Protocol), IAX (Inter Asterisk exchange). 3

Ponieważ w ramach laboratorium skupimy się na konfiguracji centrali używającej protokołu SIP poniżej kilka informacji. Podstawowe funkcje SIP w realizacji połączenia to: lokalizacja punktów końcowych, sygnalizowanie żądania nawiązania połączenia, negocjacja parametrów sesji by zestawić sesję oraz zwolnienie sesji już zestawionej. Protokół SIP oparty jest na modelu transakcyjnym zapytań/odpowiedzi podobnych do HTTP. Każda transakcja składa się z żądań, które przywołują odpowiednią metodę lub funkcję na serwerze i przynajmniej jedną odpowiedź. SIP zbudowany jest jako protokół warstwowy, co oznacza, że jego zachowanie jest opisane przez niezależne stany przetwarzania z luźnym powiązaniem miedzy poszczególnymi stanami. Zachowanie protokołu jest opisane jako warstwy dla celów prezentacji, umożliwiających opisanie funkcji wspólnych dla elementów w pojedynczej sekcji. Nie narzuca on sposobu implementacji. Najniższą warstwą SIP jest składnia i kodowanie. Kodowanie jest wykonywane przy użyciu gramatyki BNF (notacja Backus-Naur Form). Drugą warstwą jest warstwa transportowa. Określa w jaki sposób klient wysyła żądania i otrzymuje odpowiedzi, oraz jak serwer wysyła/odbiera żądania/odpowiedzi poprzez sieć. Wszystkie elementy SIP zawierają warstwę transportową. Trzecią warstwą jest warstwa transakcyjna. Jest to fundamentalny komponent SIP. Transakcja jest żądaniem wysłanym przez klienta do serwera, z wszystkimi odpowiedziami na to żądanie, wysłanymi z serwera do klienta. Warstwa ta obsługuje retransmisje warstwy aplikacyjnej, dopasowanie odpowiedzi do żądań oraz przekroczenia czasu timeout warstwy aplikacyjnej. Powyżej warstwy transakcyjnej znajduje się warstwa użytkownika transakcji (TU). Każdy z elementów SIP, oprócz bezstanowego proxy, jest użytkownikiem transakcji. 3.3. Konfiguracja Konfiguracja systemów Asterisk odbywa się poprzez edycję plików konfiguracyjnych. Niektóre komendy można również wprowadzić bezpośrednio przed CLI (Command-line Interface), po włączeniu systemu. Każdy plik odpowiada za konkretną funkcjonalność systemu. Struktura wewnętrzna oraz sposób implementowania ustawień różni się dla każdego pliku. Pliki podzielone są na części, których nazwy umieszczone są w kwadratowych nawiasach. W większości przypadków ustawienia wprowadza się poprzez edytowanie wartości określonych zmiennych. Pliki najczęściej są związane z używanym aplikacjami, usługami lub protokołami, więc nie zawsze wymagana jest edycja wszystkich z nich. Plik asterisk.conf Edytując ten plik można zmienić ustawienia wpływające na pracę systemu jako całości. Przykładowy plik asterisk.conf jest dostępny po zainstalowaniu systemu. Składa się on z 4 części: [directories] tutaj można zmienić katalogi domyślne plików konfiguracyjnych, wszystkie opcje przedstawione są w tabeli 1, [options] ogólne ustawienia dotyczące pracy systemu, tabela 2, [files] część zawierająca ustawienia plików związanych z gniazdem sterującym, [compact] część, w której można zmienić zachowanie niektórych części systemu na takie jakie obowiązywało we wcześniejszych wersjach central Asterisk (zgodność wstecz). 4

Tabela 1. Zawartość pliku asterisk.conf [directories] Argument Wartość domyślna Opis astetcdir /etc/asterisk Ścieżka do folderu z plikami konfiguracyjnymi astmoddir /usr/lib/asterisk/modules Ścieżka do folderu z modułami centrali astvarlibdir /var/lib/asterisk Ścieżka do folderu z plikami informującymi o stanie systemu astdbdir /var/lib/asterisk Ścieżka do pliku astdb z wewnętrzną bazą danych astkeydir /var/lib/asterisk Ścieżka do katalogu, w którym zamieszczone są używane klucze astdatadir /var/lib/asterisk Ścieżka do katalogu z przykładowymi plikami konfiguracyjnymi astagidir /var/lib/asterisk/agi-bin Ścieżka do pokatalogu skryptów AGI astspooldir /var/spool/asterisk Katalog z plikami nagranych rozmów astrundir /var/run/asterisk Katalog z plikami procesu centrali astlogdir /var/log/asterisk Ścieżka do katalogu z plikami dziennika Tabela 2. Wybrana zawartość pliku asterisk.conf [options] Argument Wartość domyślna Opis verbose 3 Poziom wyświetlania informacji w CLI debug 3 Ilość informacji wyświetlana w CLI podczas debugowania systemu alwaysfork yes Uruchamianie systemu w tle nofork yes Uruchamianie systemu na pierwszym planie quiet yes Zmniejszenie ilości wyświetlanych informacji podczas pracy timestamp yes Dołączenie znaczników czasowych do komunikatów execincludes yes Pozwolenie na użycie funkcji #exec w plikach konfiguracyjnych console yes Uruchomienie Asteriska w trybie konsoli highpriority yes Uruchomienie centrali z priorytetem czasu rzeczywistego initcrypto yes Załadowanie kluczy z katalogu astkeydir podczas startu centrali nocolor yes Brak kolorów komunikatów zapisywanych do plików dontwarn yes Ukrycie zbędnych komunikatów dumpcore yes Uaktywnienie powoduje utworzenie wersji zapasowaj podczas awarii systemu maxcalls 100 Maksymalna liczna równoczesnych rozmów maxload 0.9 Maksymalne obciążenie systemu (powyżej odrzuca nowe zgłoszenia) maxfiles 1000 Maksymalna liczba otwartych deskryptorów plików minmemfree 1 Minimalna ilość wolnej pamięci, dla której centrala przyjmie nowe połączenie runuser asteriskpbx Nazwa użytkownika uprawnionego do obsługi centrali rungroup asteriskpbx Nazwa grupy użytkowników systemu Linux uprawnionych od obsługi centrali lockconfdir no Uaktywnienie tej opcji powoduje ochronę przed możliwością zapisu plików konfiguracyjnych przez dwie aplikacje jednocześnie 5

Plik modules.conf Edycja pliku modules.conf pozwala na decyzję czy dany moduł powinien być włączony przy starcie systemu czy nie. Wszystkie zmienne zostały przedstawione w tabeli 3. Tabela 3. Zawartość pliku modules.conf Argument Wartość domyślna Opis autoload yes Automatyczne załadowanie wszystkich modułów dostępnych w katalogu modułów poza tymi, które zabronione są przez noload. Można także ręcznie wpisać listę ładowanych modułów. preload res_odbc.so Lista modułów ładowanych w pierwszej kolejności. load chan_sip.so Lista ładowanych modułów (opcja nieistotna, gdy użyto wcześniej autoload) noload - Lista modułów, której nie mają być załadowane require chan_sip.so Lista modułów wymaganych do startu systemu. W przypadku niepowodzenia załadowania modułów system nie zostanie uruchomiony preload-require res_odbc.so Jak wyżej (ładowane w pierwszej kolejności) Plik indication.conf Ten plik pozwala na zmianę sygnałów dźwiękowych takich, jak np. sygnał zajętości, wysyłanych przez centralę do użytkowników tak, aby były zgodne z sygnałami obowiązującymi w konkretnym kraju (można wprowadzać swoje pliki dziękowe, np..wav,.mp3,.acc). Plik musiconhold.conf W tym pliku można zdefiniować ścieżkę do pliku muzycznego, który będzie używany przez centralę w przypadku użycia w pliku extensions.conf funkcji z grupy MusicOnHold. Plik sip.conf Kolejnym omawianym plikiem jest sip.conf. Jest to plik, w którym definiuje się użytkowników używających przy połączeniach protokołu SIP. Każdy protokół posiada oddzielny plik do ustawień użytkowników. Wszystkie te pliki mają bardzo podobną do siebie budowę i różnią się nieznacznie. W centrali stworzonej na potrzeby laboratorium wykorzystany będzie protokół SIP. [general] część, w której definiuje się ustawienia obowiązujące dla wszystkich użytkowników. Zmienne zostały przedstawione w tabeli 4. [nazwa_grupy] część, w której definiuje się użytkowników oraz przypisuje im ustawienia specyficzne dla grupy, do której należą. Można stworzyć kilka takich grup. Zmienne zostały przedstawione w tabeli 5. 6

Tabela 4. Zawatość pliku sip.conf [general] Argument Wartość domyślna Opis context unauthenticated Domyślny kontekst z pliku extentions.conf dla połączeń przychodzących allowguest no Uniemożliwienie podłączenia niezarejestrowanych użytkowników srvlookup yes Zezwolenie na wyszukiwanie przez DNS SRV podczas ruchu kierowanego do zewnętrznego operatora udpbindaddr 0.0.0.0 Adres, na którym centrala nasłuchuje żądań UDP tcpenable no Brak zezwolenia na połączenia z zastosowaniem TCP Tabela 5. Zawartość pliku sip.conf [nazwa_grupy] Argument Wartość domyślna Opis type friend Typ dopasowania z preferencją nazwy context nazwa_grupy Kontekst dla użytkowników grupy nawa_grupy w DialPlanie host dynamic Automatyczne pobranie IP urządzenia końcowego użytkownika nat yes W przypadku, gdy urządzenie końcowe znajduje się za NATem secret hasło Hasło dla użytkowników z grupy nawa_grupy dtmfmode auto Definicja rodzaju wyierania tonowego obsługiwanego przez urządzenia końcowe. Można ustawić konkretną metodę, np. rfc2833, inband. disallow all Opcja dotycząca kodeków dźwiękowych używanych przez centralę. Ustawienie all powoduje użycie jedynie kodeków wybranych w opcji allow allow ullaw, allaw Lista kodeków obsługiwanych przez centralę Po ustawieniach specyficznych dla grupy należy zdefiniować użytkowników w przedstawiony poniżej sposób. [100](nazwa_grupy), gdzie 100 to numer użytkownika, a nazwa_grupy to jego grupa. Plik meetme.conf Jest to plik zawierający listę z nazwami pokoi oraz rozszerzeniami. Związany jest z aplikacją Meetme() służącą do tworzenia połączeń konferencyjnych. Plik voicemail.conf Plik związany z użyciem automatycznej sekretarki. Definiuje się w nim szereg ustawień i opcji związanych z działaniem aplikacji Voicemail(). Składa się z kilku części: [general] część służąca do konfiguracji ogólnych ustawień dotyczących działania systemu poczty. Dokonuje się tego poprzez zmianę wartości zmiennych, takich jak na przykład maksymalna liczba wiadomości dla jednego użytkownika czy format zapisu pliku dźwiękowego. [zonemessages] część związana ze strefami czasowymi i poprawnych formatów odczytywania godzin dla różnych części świata. [nazwa_kontekstu] jest to część, którą można nazwać dowolnie. W niej definiuje konta dla użytkowników czyli przypisuje się im odpowiednie numery. numer poczty =>hasło, Imię Nazwisko, adres email,,opcja opcja 101=> test1234, Jan Kowalski, jan@agh.pl,, attach=no Zdefiniowano użytkownika Jan Kowalski, jego numer 7

skrzynki pocztowej to 100. Opcje użyte przy definicji użytkowników nadpisują opcje globalne ustawione wcześniej w części [general]. Plik extensions.conf Plik ten zawiera Dial Plan, który jest sercem systemu Asterisk. Jest to plik konfiguracyjny, w którym używa się dedykowanego języka skryptowego. W nim zdefiniowany jest sposób obsługi wszystkich połączeń realizowanych przez centralę. Dial Plan jest bardzo elastyczny i praktycznie w nieograniczony sposób potrafi kierować połączeniami. [10]. Składa się z czterech głównych części: kontekstu (context), rozszerzeń, priorytetów, aplikacji. Kontroluje sposób, w jaki przychodzące i wychodzące rozmowy są obsługiwane i przełączane. Kontekst jest częścią organizującą Dial Plan. Jest definiowany przez administratora w celu oddzielenia instrukcji wykonywalnych (rozszerzeń). Konteksty dzielą Dial Plan na osobne sekcje, w których wykonywane są odnoszące się do niego funkcje. Na przykład można stworzyć osobne konteksty dla rozmów przychodzących czy wychodzących do sieci PSTN. Nazwy kontekstu w pliku konfiguracyjnym umieszcza się w nawiasach kwadratowych. Rozszerzenia definiowane są w kontekście. W centrali Asterisk, konteksty są ciągami wywołującymi określone zdarzenia. W tradycyjnych centralach PBX rozszerzenia odnoszą się do numerów telefonów, interfejsów, menu itd. W centralach Asterisk rozszerzenia definiują listę aplikacji z ewentualnymi argumentami, które należy uruchomić. Rozszerzenia determinują to w jaki sposób połączenie przechodzi z odpowiednimi priorytetami do aplikacji. exten => nazwa (numer), priorytet, aplikacja(argumenty) Priorytety są kolejnymi krokami wykonywania Dial Planu. Na przykład, jeżeli w sekwencji znajduje się więcej niż jedna instrukcja do wykonania, priorytety określają kolejność ich wykonania. exten => 2000, 1, Answer exten => 2000, 2, Playback(welcome) exten => 2000, 3, Hangup W powyższym przykładzie numer 2000 jest rozszerzeniem. Gdy przychodzące połączenie pasuje do tego rozszerzenia, w pierwszej kolejności Asterisk odbierze połączenie, potem odtworzy użytkownikowi plik dźwiękowy welcome a na końcu zostanie wykonana aplikacja rozłączenia. Działanie Dial Planu nie zależy od sekwencji, w jakiej jest pisany, o tym decydują priorytety. Aplikacje są wykorzystywane do zarządzania połączeniami i interakcji z użytkownikiem. Każdy priorytet określa użycie aplikacji w celu wykonania określonego zadania w kanale głosowym, jak odegranie dźwięku, uruchomienie poczty głosowej, wybranie numeru, odpowiedzi na połączenie lub rozłączenie. Niektóre działania aplikacji można modyfikować poprzez podanie określonych dla nich argumentów. Są również aplikacje które nie wymagają podawania argumentów. Przydatne aplikacje: Answer( ) tej aplikacji używa się w przypadku, kiedy kanał jest w stanie dzwonienia. Przy wykonywaniu aplikacji zostają wprowadzone wstępne ustawienia dla kanału. Użycie tej aplikacji nie jest konieczne w przypadku tworzenia połączenia, ale dzięki niej uzyskuje się pewność, że kanał jest połączony przed wykonaniem innych działań. 8

Hungup( ) aplikacja rozłącza aktywny kanał. Powinna być używana na końcu kontekstu w Dial Plan aby nie dopuścić do sytuacji, w której niepoprawnie obsłużone połączenie będzie obsługiwane przez centralę w niekontrolowany sposób. Playback(nazwa_pliku_lub_ścieżka_do_pliku) aplikacja powodująca odtworzenie wcześniej przygotowanego pliku muzycznego w kanale. Jako argument aplikacji należy podać nazwę pliku w przypadku, kiedy znajduje się on w domyślnym katalogu (/var/lib/asterisk/sounds) lub ścieżkę do pliku w przypadku, kiedy plik znajduje się w innym miejscu. Dial(cel, timeout, opcje) jest to jedna z najistotniejszych aplikacji w systemie Asterisk. Pozwala łączyć użytkowników, nawet jeśli używają telefonów z różnymi metodami połączeń (na przykład telefon VoIP i tradycyjny telefon sieci PSTN). Pierwszy argument aplikacji wskazuje cel połączenia i należy w nim wskazać na technikę używaną przez docelowy telefon oraz numer użytkownika wcześniej skonfigurowany w odpowiednim pliku (np. SIP/04F002). Można jednocześnie stworzyć wiele połączeń poprzez podanie kilku zestawów technika/numer i połączenie ich znakiem & (np. SIP/04F002&IAX/555&DAHDI/1). Możliwe jest również stworzenie połączenia z użytkownikiem, który nie został wcześniej dodany do odpowiedniego pliku konfiguracyjnego. W tym celu w miejsce argumentu cel należy wpisać dla użytkowników VoIP: (technika/ nazwa_użytkownika [:hasło] @nazwa_hosta [:port] [/rozszerzenie]). Kolejny argument służy do ustawienia czasu timeout. Czas podaje się w sekundach. Centrala dzwoni na podany numer przez czas podany w opcji timeout, a jeśli użytkownik docelowy przez określony czas nie odpowiada przechodzi do następnego priorytetu w Dial Plan. Jeżeli przez upłynięciem czasu timeout połączenie zostanie zestawione, nie są wykonywane dalsze instrukcje z pliku Dial Plan. Trzeci argument aplikacji to opcja. Najpopularniejszą z nich jest opcja m. Ustawienie opcji m powoduje zmianę standardowego sygnały oczekiwania na plik muzyczny. Goto(kontekst, rozszerzenie, priorytet) jest wykorzystywana do przeniesienia połączenia do innej części Dial Plan. Jako argumenty należy podać docelowy kontekst, rozszerzenie oraz priorytet. Background(nazwa_pliku_lub_ścieżka_do_pliku) podobnie do aplikacji Playback odtwarza podany plik dźwiękowy, jednak w tym przypadku jeśli użytkownik wybierze numer w trakcie odtwarzania pliku połączenie zostanie zrealizowane zgodnie z wybranym numerem. Waitexten(czas_podany_w_sekundach) oczekuje na wprowadzenie cyfr przez użytkownika przez określony czas. Jest ona często wykorzystywana wraz z aplikacją Background(). Gotoif(wyrażenie?cel1:cel2) aplikacja ocenia czy wyrażenie jest prawdą czy fałszem i na tej podstawie przesyła połączenie do odpowiedniego miejsca w Dial Plan. Jeśli wyrażenie jest prawdziwe wybierany jest cel1, jeśli fałszywe cel2. Gotoiftime(godzina, dzień_tygodnia, dzień_miesiąca, miesiąc?cel) aplikacja sprawdza czy aktualna data i czas zgadzają się z określonymi w argumentach. Wtedy połączenie jest przesyłane do miejsca określonego przez argument cel. Może to być na przykład określone rozszerzenie lub priorytet. Jeśli data nie jest zgodna, połączenie jest przekazywane do kolejnego priorytetu w aktualnym rozszerzeniu. Godzinę należy określić w 24-godzinnym formacie (czyli np 9:00, 18:00), dzień tygodnia określa się podając trzy pierwsze litery nazwy dnia w języku angielskim (czyli mon, tue, wen itd), dzień miesiąca jest wyrażony w postaci liczbowej (czyli 1, 15, 30 itd), a miesiąc jako trzy pierwsze litery nazwy miesiąca w języku angielskim (jan, feb, mar itd). Wyrażenia te można łączyć poprzez znak & który oznacza i oraz znak który określa zakres. 9

Voicemail(skrzynka@kontekst,opcje) polecenie powoduje przekazanie aktualnego połączenia do poczty. W argumencie skrzynka@kontekst należy podać numer skrzynki, na którym ma być pozostawiona wiadomość oraz kontekst z pliku voicemail.conf. Voicemailmain(skrzynka@kontekst, opcje) dzięki tej aplikacji użytkownicy mogą odsłuchać pozostawione dla nich wiadomości. Można użyć jej bez argumentów i wtedy numer skrzynki należy wprowadzić po wywołaniu aplikacji z klawiatury telefonu. Meetme(nazwa_pokoju, opcje, hasło) aplikacja służąca do tworzenia połączeń konferencyjnych. Do pliku extensions.conf można również dołączyć obsługę niepoprawnie wybranych numerów oraz przekroczenia czasu timeout. Jeśli kontekst otrzymuje żądanie o rozszerzenie, które jest niepoprawne wewnątrz tego kontekstu, połączenie przesyłane jest do rozszerzenia i. Jeśli przez określony parametrem timeout czas nie zostanie podane żadne rozszerzenie, połączenie jest przesyłane do rozszerzenia t. Literatura 1. F. E. Gonçalves: Getting Started with Asterisk PBX 2. Madsen L., Meggelen J. V., Bryant R.:Asterisk : The Definitive Guide 3. Madsen L., Meggelen J. V., Bryant R.:Asterisk : The Future of Telephony 4. https://wiki.asterisk.org/wiki/display/ast/home 10