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



Podobne dokumenty
TELEFONIA INTERNETOWA

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

Programowanie centrali telefonicznej Platan Libra

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

Laboratorium Ericsson HIS NAE SR-16

Dodawanie nowego abonenta VOIP na serwerze Platan Libra

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

Instrukcja konfiguracji usługi DDNS na dedykowanym serwerze dla urządzeń Internec serii i7

System interkomowy. Karty VoIP G8-IAX G3-IAX

1.1 Podłączenie Montaż Biurko Montaż naścienny... 4

Centralka IP PBX IPX-300 / IPX300W. Instrukcja Obsługi

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)

Połączenia VoIP z firmą Slican

Telefon AT 530 szybki start.

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

Konfiguracja telefonu Yealink T20P

PAP-2T w sieci FreePhone

1. Instalacja centrali Asterisk w systemie Ubuntu 12.04

INSTRUKCJA KONFIGURACJI KLIENTA POCZTOWEGO

Panel Konta - instrukcja. Warszawa, 2013 r

Telefon IP 620 szybki start.

System IVR. Opis elementów systemu

Przykładowy opis konfiguracji bramy VIP 410 z funkcjonalnością routera.

Czym jest router?... 3 Vyatta darmowy router... 3 Vyatta podstawowe polecenia i obsługa... 3 Zarządzanie użytkownikami... 3 Uzupełnianie komend...

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8.

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

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

Uwaga!!! Autentykacja LDAP/AD zaimplementowana w Vigor wspiera tylko proste uwierzytelnianie (hasło przesyłane jest jawnym tekstem).

Linksys/Cisco SPA2102, SPA3102 Instrukcja Konfiguracji

Instrukcja konfiguracji programu Fakt z modułem lanfakt

Tematy. Wstęp SPA1001 SPA3000

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

W opisywanym przykładzie konta VoIP prezentują się adresem SIP URL:

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

Zdalne zarządzanie systemem RACS 5

Instrukcja dla instalatora systemu SMDP Enterprise/Professional

Bramka IP 1 szybki start.

Instrukcja instalacji v2.0 Easy Service Manager

Instrukcja konfiguracji usługi DDNS na dedykowanym serwerze dla urządzeń Internec serii i7

Instrukcja instalacji Control Expert 3.0

PODŁĄCZENIE I KONFIGURACJA BRAMKI VoIP LINKSYS PAP2T

Przekierowanie portów w routerze TP-LINK na przykładzie kamery Kenik. Po co wykonujemy przekierowanie portów? Spójrzmy na rysunek poniżej:

Przekierowanie portów w routerze TP-LINK na przykładzie kamery Kenik. Po co wykonujemy przekierowanie portów? Spójrzmy na rysunek

Linksys/Cisco RT31P2, WRT54GP2. Instrukcja Konfiguracji

Instrukcja obsługi serwera FTP v

MONITOROWANIE WINDOWS Z NETCRUNCHEM 7 P A G E 1

1. Montaż i podłączenie do sieci Konfiguracja przez stronę 8

Konfiguracja serwera DNS w systemie Windows Server 2008 /2008 R2

T: Konfiguracja interfejsu sieciowego. Odwzorowanie nazwy na adres.

4. Podstawowa konfiguracja

onfiguracja serwera DNS w systemie Windows Server 2008 /2008 R2

Wymagane jest podłączenie serwera do Internetu (konieczne do zdalnego dostępu).

Bezpieczny system poczty elektronicznej

1. Montaż i podłączenie do sieci Konfiguracja przez stronę 8

Bramka IP 2R+L szybki start.

Archiwizacja baz MSSQL /BKP_SQL/ opis oprogramowania

System Call Center IVR Kolejka. Case Study

Konfiguracja serwerów pocztowych na platformie Tradoro.pl

IntegralNet krok po kroku. Pierwsze uruchomienie

V300 Telefon IP. Szybki start. Wersja 1.00 Maj 2007 Wydanie 1. Copyright Wszystkie prawa zastrzeżone.

Instalacja Active Directory w Windows Server 2003

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat protokołu http.

Konfiguracja central Slican IPM-032

W opisywanym przykładzie konta VoIP prezentują się adresem SIP URL:

Konfiguracja poczty IMO dla urządzeń mobilnych z systemem ios oraz Android.

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

1. INSTALACJA SERWERA

1. Opis. 2. Wymagania sprzętowe:

LINKSYS SPA2102/3102

Instrukcja konfiguracji funkcji skanowania

Niniejsza instrukcja przedstawia przykład konfiguracji koncentratora SSL VPN w trybie Network Extension.

ActiveXperts SMS Messaging Server

Zmienne i stałe w PHP

Pobieranie komunikatów GIF

Asix.Evo - Uruchomienie aplikacji WWW

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

URZĄDZENIA KOMUNIKACJI INTERNETOWEJ PODŁĄCZENIE I KONFIGURACJA

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

OmniTouch 8400 Instant Communications Suite Integracja z programem Microsoft Outlook

Konfiguracja programu pocztowego Mozilla Thunderbird do pracy w sieci NEO.pl

MODEM GSM-01. INSTRUKCJA OBŁUGI MODUŁU KOMUNIKACYJNEGO GSM-01 wersja 1.0 GSM-01 INSTRUKCJA OBSŁUGI - 1 -

Uzyskanie nazwy i hasła konta SIP

Opis komunikacji na potrzeby integracji z systemem klienta (12 kwiecień, 2007)

Ćwiczenie Nr 7 Instalacja oraz konfiguracja wskazanego systemu operacyjnego

3S TeleCloud - Aplikacje Instrukcja użytkowania usługi 3S TELEFON UŻYTKOWNIK

Brinet sp. z o.o. wyłączny przedstawiciel DrayTek w Polsce

Wielokanałowa bramka cyfrowa. Budowa modułowa. Konfiguracja ISDN. Podstawowe wersje bramki MultiCellink ISDN

Połączenie VPN Host-LAN PPTP z autentykacją LDAP/AD. 1. Konfiguracja serwera VPN 1.1. LDAP/AD 1.2. Ustawienia ogólne 1.3.

INSTRUKCJA OBSŁUGI PROGRAMU. ver

ZADANIE.10 Cisco.&.Juniper DHCP (Router, Firewall)

Zakład Teleinformatyki i Telekomutacji LABORATORIUM SIECI

TRX Konsola dyspozytorska - instrukcja obsługi

System. Instalacja bazy danych MySQL. Autor : Piotr Zielonka tel Piotrków Tryb., sierpień 2018r.

Telefoniczne Usługi abonenckie w sieci CHOJNET

Połączenia poprzez Modemy Wirtualne.

Przykład wykorzystania programu Mini Mag do zarządzania kasami ELZAB z wykorzystaniem sieci rozległej WAN

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

IP PBX / Asterisk Wdrożenia i Administracja

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

Transkrypt:

ĆWICZENIE Asterisk Dariusz Dwornikowski 20 maja 2010 1. Wprowadzenie Ćwiczenia mają na celu wprowadzenie do konfiguracji podstawowych elementów budujących infrastrukturę SIP, tj.: serwer SIP Proxy, serwer rejestracji SIP, serwer dostępności (ang. SIP presence server), klient (ang. user agent). Serwer Asterisk jest często nazywany kombajnem telekomunikacyjnym. Oznacza to, że potrafi on obsługiwać wiele protokołów komunikacyjnych, takich jak: SIP, ISDN, IAX, H.323, DSS1. Wpiera także obsługę kart sprzętowych, umożliwiających podłączenie różnych mediów (telefonów, linii ISDN, linii PSTN, itd). W przypadku protokołu SIP, Asterisk potrafi pełnić rolę każdego elementu infrastruktury SIP. 1.1. Podstawowe informacje Wszystkie pliki konfiguracyjne serwera Asterisk znajdują się w katalogu: /etc/asterisk. Włączenie serwera odbywa się poprzez wywołanie komendy asterisk. Część statycznej konfiguracji Asteriska odbywa się przez edycję plików konfiguracyjnych, jednakże możliwe jest także zarządzanie serwerem w czasie rzeczywistym poprzez interaktywne CLI, uruchamiane przez: asterisk -r. Komendy CLI: core set verbose 3 ustawienie poziomu interaktywności wiadomości diagnostycznych Asteriska reload przeładowanie konfiguracji z plików konfiguracyjnych core restart now przeładowanie procesu serwera sip set debug on włączenie trybu debugu protokołu SIP sip show peers wylistowanie użytkowników zarejestrowanych w Asterisku sip show registry wylistownie kont, na które Asterisk jest zarejestrowany sip show channels wylistowanie aktywnych kanałów SIP show dialplan wylistowanie aktualnego diaplanu 1.2. Konfiguracja użytkowników Użytkowników SIP konfiguruje się w pliku konfiguracyjnym Asteriska sip.conf. Aby stworzyc uzytkownika należy stworzyć dla niego wpis, ustawić jego nazwę, ewentualnie hasło oraz odpowiednie dyrektywy, dotyczące kodeków, prezentacji oraz monitorowania. Poniższy przykład prezentuje przykładowy wpis dla użytkownika: [user] type=friend username=user secret=passsword insecure=very ; Dla pewności dajemy nat Laboratorium (ćwiczenie Asterisk) strona 1/6

nat=yes host=dynamic ; może się rejestrować z różnych adresów qualify=20 ; Ustawienia dot. połączeń canreinvite=no dtmfmode=info ; Ustawienia kodeków (pozwalamy na wszystkie) allow=all ; Ustawienie kontekstu w dialplanie (extensions.conf) context=default 1.3. Konfiguracja trunk W pliku konfiguracyjnym sip.conf znajdują się ustawienia Asteriska dotyczące obsługi protokołu SIP. Aby zarejestrować w Asterisku użytkownika zewnętrznego (np. konto uzyskane od dostawcy usług ), należy skorzystać z dyrektywy register. Ustawienie to pozwoli na odbieranie połączeń przychodzących do Asteriska na numerze extension. Poniższy listing przedstawia przykładową konfigurację. register => user:password@sip.example.com/extension Po wpisaniu dyrektywy register, należy przeładować serwer Asterisk, używając komendy reload. Swoje ustawienia można zweryfikować wykonując komendę: sip show registry. Aby móc wykonywać połączenia wychodzące przez konto user, konieczne jest dodanie użytkownika, który będzie zarejestrowany w serwerze Asterisk. Dane uwierzytelniające są takie same jak w przypadku listingu powyżej. Powiązanie dyrektyw register oraz stworzenie użytkownika pozwala na osiągnięcie pełnej funkcjonalności trunka (kanału zewnętrznego, linii zewnętrznej). Poniższy listing prezentuje przykładową konfigurację: [user] type=peer username=user fromdomain=sip.example.com fromuser=user secret=passsword insecure=very ; Dla pewności dajemy nat nat=yes host=dynamic qualify=20 ; Ustawienia dot. połączeń canreinvite=no dtmfmode=info ; Ustawienia kodeków (pozwalamy na wszystkie) allow=all ; Ustawienie kontekstu w dialplanie (extensions.conf) context=default Zwery- Analogicznie jak dla wcześniejszego przykładu, Asterisk musi zostać przeładowany. fikowanie ustawień można zweryfikować komendą: sip show peers. 1.4. Konfiguracja dialplan Dialplan jest rdzeniem Asteriska odpowiedzialnym za przetwarzanie połączeń przechodzących przez serwer. Można o nim myśleć jak o elemencie trasującym. Definicja dialplanu znajduje się w pliku konfiguracyjnym extensions.conf. Składa się on z kontekstów (ang. context), definiowanych w kwadratowych nawiasach, np. [defualt]. Konteksty są blokami dialplanu, do których kierowane są połączenia. W kontekstach definiuje się końcówki (extensions), można o nich myśleć Laboratorium (ćwiczenie Asterisk) strona 2/6

jak o numerach wewnętrznych w centrali abonenckiej. Każda końcówka składa się z identyfikatora, priorytetu oraz komendy Asteriska. Priorytet definiuje kolejność przetwarzania komend. Poniższy przykład ukazuje kontekst domyślny ze zdefiniowanymi dwoma końcówkami - robert oraz 2030. ; składania końcówki ; exten => nazwa, priorytet, komenda exten => robert, 1, Answer exten => robert, 2, Playback(beep) exten => robert, 3, Dial(SIP/bob,20,rRtg) exten => robert, 4, Hangup exten => 2030, 1, Answer exten => 2030, n, Dial(SIP/bob,20,rRtg) exten => 2030, n, Hangup W przykładzie zarówno połączenia na adres sip:robert@sip.example.com, jak i sip:2030@sip.example.com zostaną przekierowane na klienta SIP bob, jeśli jest zarejestrowany w serwerze Asterisk. Komenda Dial wykonuje połączenie w technologii SIP na konto bob, timeout jest ustawiony na 20s, dodatkowe parametry to rrtg. Rys. 1 obrazuje ogólną zasadę działania dialplanu. Połączenie na sip:robert@sip.example.com Kanał SIP [context1] [context2] robert 2030 Kanał SIP Połączenie na użytkownika bob Rys. 1: Dialplan w Asterisk Z kanałem (połączeniem) w Asterisku skojarzony jest szereg zmiennych kanału. Przykładowymi zmiennymi są: CALLERID(name) nazwa dzowniącego, np. Jan Kowalski CALLERID(num) numer dzowniącego lub konto, np. jan_kowalski CONTEXT aktualny kontekst SIPDOMAIN domena SIP Laboratorium (ćwiczenie Asterisk) strona 3/6

CHANNEL nazwa kanału ANSWEREDTIME aktualny czas trwania rozmowy EXTEN aktualna końcówka to na co dzowniono Istnieją także zmienne skojarzone z aplikacjami, np. aplikacja Dial posiada skojarzoną ze sobą zmienną DIALSTATUS, która przyjmuje wartość rezultatu połączenia. Jest to wygodny sposób, aby sprawdzić, czy rozmowa przebiegła pomyślnie, czy też wystąpił nieoczekiwany błąd. Aby móc odczytać wartość tej zmiennej, konieczne jest podanie argumentu g do komendy Dial, tak aby przetwarzanie po zakończeniu rozmowy mogło kontunować w ramach dialplanu. exten => 2020, 1, Answer() exten => 2020, 2, Dial(SIP/zdzislawa,20,g) exten => 2020, 3, Noop(${DIALSTATUS}) exten => 2020, 4, Hangup() Inną przydatną zmienną jest EXTEN, która przybiera zawsze wartość końcówki, na którą trafiła rozmowa. Pozwala to na dynamiczne odczytanie np. numery, na który dzowniono i jego zmianę, czy weryfikację przed dokonaniem przekierowania. Poniższy przykład dokonuje wyświetlenia numeru (nazwy), na który przychodzi połączenie. Zmienna _X. to wzorzec, który określa, że końcówka może przybierać dowolne wartości numeryczne. exten => _X., 1, Answer() exten => _X., n, Noop(Dzwoniono na ${EXTEN}) exten => _X., n, Hangup Linki: Komendy i aplikacje Asterisk http://www.voip-info.org/wiki/view/asterisk+- +documentation+of+application+commands Dialplan http://www.voip-info.org/wiki/index.php?page=asterisk+config+extensions.conf Zmienne kanału http://www.voip-info.org/wiki/view/asterisk+variables Wzorce końcówek http://www.voip-info.org/wiki/view/asterisk+dialplan+patterns 1.5. AGI (Asterisk Gateway Interface) Asterisk Gateway Interface (AGI) jest interfejsem programistycznym dla serwera Asterisk, pozwala na podłączenie się dowolnym programem implementującym AGI pod przebieg rozmowy i dowolne nią sterowanie. Z poziomu AGI dostępne są wszystkie komendy i aplikacje z dialplanu. Przykładowo, można odebrać rozmowę, odegrać zapowiedź głosową i zadzwonić na inny kanał (np. wykonanie aplikacji Dial). Skrypty AGI umieszone są w katalogu /var/lib/asterisk/agi-bin/, mogą posiadać dowolne rozszerzenie. Ważnym jest aby pamiętać, że skrypty te muszą mieć prawa do wykonania dla użytkownika, na którym działa serwer Asterisk (przeważnie root). Metoda połączenia do AGI dzieli się na dwa rodzaje: lokalną oraz zdalną. W wersji pierwszej skrypty AGI uruchamiane są przez serwer Asterisk na tym samym węźle, jako zewnętrzne programy. Większość prostych scenariuszy zakłada właśnie takie użycie protokołu. Z uwagi na problemy wydajnościowe stworzono wersję zdalną protokołu, tzw. FastAGI, komunikujące się z serwerem Asterisk za pomocą protokołu IP. Wiadomości AGI przesyłane są do zdalnego hosta, gdzie odbywa się przetwarzanie. Programy AGI wywoływane są z poziomu dialplanu komendą AGI, lub DeadAGI, różnica polega na tym, iż skrypty DeadAGI nie kończą przetwarzania po zamknięciu kanału. Jest to wykorzystywane np. w sytuacjach, gdy rekordy billingowe zrzucane są po zakończeniu rozmowy, lub zapisywane są dane rozmowy (np. prepaid). Poniższy przykład prezentuje wywołanie programu AGI, zarówno lokalnego, jak i zdalnego: Laboratorium (ćwiczenie Asterisk) strona 4/6

exten => 2030,1,AGI(plik.agi) exten => 2030,1,AGI(agi://192.168.1.1) Dużą zaletą AGI jest istnienie bibliotek programistycznych niemalże dla każdego znanego języka programowania, np. C, C#, Java, Perl, Python, PHP, Lisp itd. Najczęściej spotykane skrypty lokalne pisane są w języku Perl oraz PHP, ze względu na ich upowszechnienie. Dla AGI wykonywanego zdalnie przeważnie stosowane są własne rozwiązania lub serwery w języku Java oraz C#. Poniższe przykłady demonstrują proste programy w języku Perl oraz PHP. #!/usr/bin/perl use Asterisk::AGI; my $agi = new Asterisk::AGI(); my %input = $agi->readparse(); $agi->answer(); $agi->stream_file("hello", 1 ); $agi->hangup(); <?php include("phpagi.php"); $agi = new AGI(); $agi->answer(); $agi->stream_file("hello"); $agi->hangup();?> Linki 1. PHPAGI http://phpagi.sourceforge.net/ 2. Perl AGI http://www.voip-info.org/tiki-index.php?page=asterisk+perl+agi 3. AGI http://www.voip-info.org/wiki/view/asterisk+agi 4. Perl AGI http://asterisk.gnuinter.net/files/asterisk-perl-1.01.tar.gz 2. Zadania 1. Skonfiguruj serwer Asterisk, aby obsługiwał protokół SIP, oraz dodaj użytkownika. Sprawdź czy użytkownik został poprawnie dodany. 2. Zarejestruj użytkownika przy pomocy programu Linphone oraz bramki PAP2 lub telefonu IP. 3. Zarejestruj kilku użytkowników oraz wykonaj połączenia wewnętrzne pomiędzy nimi. Uruchom tryb debugu w serwerze Asterisk (core set verbose 10) oraz popatrz co się dzieje w czasie wykonywania rozmów. 4. Stwórz kontekst w serwerze Asterisk oraz spraw by rozmowy przychodzące do użytkownika zdefiniowanego w sip.conf trafiały do tegoż kontektsu. Wykonaj operację odegrania pliku dźwiękowego znajdującego się w /var/lib/asterisk/sounds. 5. Wykonaj przekierowanie rozmowy: gdy zajęty, gdy nie odbiera, gdy niedostępny oraz bezwarunkowe. 6. Korzystając z komendy NoOp, wyświetl dane kanału oraz nagłówki SIP. 7. Skonfiguruj dwa serwery Asterisk, niech pierwszy z nich będzie trunkiem dla drugiego. Wykonaj połączenia przez trunk, oraz odbierz połączenia przychodzące. 8. Połącz trzy serwery Asterisk i zasymuluj LCR. Laboratorium (ćwiczenie Asterisk) strona 5/6

9. Napisz prosty program AGI, symulujący menu jednostopniowe. 10. Napisz program pobierający numer telefonu i wykonujący na niego przekierowanie. 11. Stwórz skrypt, który oddzwania na numer, z którego ostatnio dzwoniono, po czym odgrywa zapowiedź głosową z datą. 12. Stwórz program konferencji z pinem wykorzystaniem komendy Meetme oraz AGI. Laboratorium (ćwiczenie Asterisk) strona 6/6