Software


System Asterisk - telefonia Internetowa w firmie

Jeszcze do niedawna na posiadanie własnej centrali telefonicznej mogły sobie pozwolić wyłącznie duże instytucje i przedsiębiorstwa. Proponowane rozwiązania komercyjne opierały się na zamkniętych firmowych standardach, stanowiły więc wysoki koszt już w podstawowej konfiguracji. Również rozbudowa takiego systemu była bardzo kosztowna i w większości wypadków nie zapewniała pożądanej elastyczności. Koszty licencji, konieczność zakupu i dołączania drogich sprzętowych modułów bądź aparatów systemowych budziły niezadowolenie użytkowników biznesowych.

Odpowiedzią na te problemy stało się napisane przez Marka Spencera oprogramowanie o nazwie Asterisk. Platforma ta w krótkim czasie podbiła całkowicie sektor rozwiązań telekomunikacyjnych dla biznesu, stając się na dzień dzisiejszy swego rodzaju standardem, mogącym obsłużyć przy niskich nakładach inwestycyjnych zarówno kilka telefonów w małych firmach jak i setki agentów pracujących w Call-Center.

CZYM JEST ASTERISK?

Asterisk to nie tylko oprogramowanie centrali telefonicznej. To przede wszystkim media server, którego zadaniem jest obsługa różnego rodzaju mediów. Po integracji z systemem Linux umożliwia prowadzenie rozmów telefonicznych, videokonferencji, obsługę poczty e-mail, faxów, czy też poczty głosowej. Asterisk pracuje przede wszystkim w oparciu o protokół VoIP (Voice over IP), potrafi również współpracować z tradycyjnymi liniami ISDN ( z pomocą odpowiednich kart można podłączyć linie BRI lub PRI).

Funkcjonalność PBX (centrali telefonicznej) Asteriska obejmuje wszystkie znane z komercyjnych central telefonicznych funkcje, między innymi:

  • Przełączanie połączeń
  • Połączenia oczekujące
  • Music on Hold czyli muzyka na czas oczekiwania
  • Kolejkowanie połączeń (również z powiadomieniami głosowymi)
  • Pocztę głosową
  • Obsługę fax-ów
  • Zapowiedzi głosowe
  • Interaktywne menu głosowe (IVR)

Dzięki prawie nieograniczonym możliwościom integracji z aplikacjami zewnętrznymi, możliwe jest także zwiększenie funkcjonalności centrali o niektóre usługi, do których należą między innymi:

  • Fax to e-mail
  • Poczta głosowa na e-mail
  • Click to Call
  • Text to Speech (syntezator mowy)
  • Voice recognition (rozpoznawanie mowy)
  • Integracja z systemem CRM
  • Automatyczny dialer do połączeń wychodzących

Istnieje również możliwość pisania skryptów AGI, dzięki którym można w sposób praktycznie nieograniczony modyfikować pracę centrali telefonicznej.

DLACZEGO ASTERISK?

telefon systemowy, hardphone

Asterisk jest poważnym konkurentem dla markowych systemów telekomunikacyjnych z uwagi na o wiele niższy koszt wdrożenia, integracji z innymi systemami telefonicznymi (bądź informatycznymi) oraz kosztami wsparcia technicznego. W przeciwieństwie bowiem do systemów komercyjnych nie są tu konieczne drogie moduły sprzętowe − do poprawnej i niezawodnej pracy wystarczającym jest średniej klasy serwer. Poza tym goszczący oprogramowanie centrali system operacyjny oraz sam Asterisk nie wymagają zakupu licencji (wyjątkiem są niektóre płatne kodeki).

Ponadto − nie występuje konieczność instalacji dodatkowego okablowania telefonicznego, gdyż stacje telefoniczne mogą łączyć się z centralą przy użyciu już istniejącej w przedsiębiorstwie sieci LAN. Nie bez znaczenia jest również fakt, iż Asterisk potrafi obsługiwać tak sprzętowe telefony, jak i tzw. softphone − czyli oprogramowanie telefonu, które instalowane jest na komputerze użytkownika.

softphone Poważnym biznesowym atutem Asteriska jest możliwość podłączenia stacji telefonicznych fizycznie zlokalizowanych poza główną siedzibą przedsiębiorstwa (np. w oddziałach) bez konieczności instalowania modułów wyniesionych, jak to miało miejsce w centralach komercyjnych. Koszt prowadzonych w ten sposób wewnętrznych rozmów telefonicznych jest zerowy, co niektórym spółkom potrafi przynieść oszczędności sięgające nawet do 2 tysięcy zł/miesięcznie.

Kolejny biznesowy atut to istnienie internetowych Operatorów Usług VoIP (np. FreecoNet), do których można podłączyć firmowego Asteriska. Oferują oni atrakcyjne w stosunku do tradycyjnych operatorów (TP S.A, Netia itd.) stawki połączeń. Szczególnie celowe z punktu widzenia kosztów jest posługiwanie się połączeniem z Operatorem VoIP w sytuacji, gdy personel przedsiębiorstwa z uwagi na charakter jego działalności zmuszony jest do wykonywania częstych rozmów telefonicznych za granicę, bądź też firma ma rozrzucone po wielu krajach lokalizacje. W takiej sytuacji skorzystanie z usług Operatora VoIP może przynieść przedsiębiorstwu oszczędności sięgające nawet kilku − kilkunastu tysięcy zł/miesiąc.

SCHEMAT PRZYKŁADOWEJ INFRASTRUKTURY

W niniejszym artykule przedstawiony jest przykładowy proces instalacji i konfiguracji centrali Asterisk. Poniższa konfiguracja nadaje się do użytku w kilku lub kilkunastoosobowej spółce. Jako stacje telefoniczne zostaną wykorzystane komputery użytkowników (z zainstalowanym darmowym programem XLite). Prezentowana centrala telefoniczna podłączona zostanie przez sieć z infrastrukturą operatora usług VoIP − w tym wypadku FreecoNet, który oferuje bezpłatne konto SIP w swoim systemie oraz przydzieli bezpłatny numer telefoniczny - może być wykorzystany w celu przeprowadzenia testów funkcjonowania usługi VoIP oraz opisanej w tym artykule centrali telefonicznej.

Proponowaną testową infrastrukturę telefoniczną ilustruje poniższy schemat:

infrastruktura telefoniczna - schemat

WYMAGANIA SPRZĘTOWE

Wdrożenie Asteriska rozpoczniemy od uzyskania niezbędnego sprzętu w postaci serwera. Z uwagi na fakt, iż system telekomunikacyjny jest jednym z kluczowych dla funkcjonowania przedsiębiorstwa systemów − bardzo istotnym jest, aby do roli serwera Asterisk przeznaczona została stabilna konfiguracyjnie platforma sprzętowa. Przy projektowaniu konfiguracji sprzętowej serwera należy również wziąć pod uwagę obciążenia (ilość równoczesnych połączeń oraz pracujących aplikacji), którym będzie podlegał Asterisk.

Jeśli planujemy integrację centrali z już istniejącymi w przedsiębiorstwie usługami ISDN − w zależności od rodzaju świadczonych przez operatora telekomunikacyjnego dla przedsiębiorstwa usług (linie PRI lub BRI), należy również zaopatrzyć się w odpowiedni rodzaj karty ISDN. Mogą to być karty firm: Digium, Sangoma lub OpenVox.

INSTALACJA OPROGRAMOWANIA CENTRALI TELEFONICZNEJ

Instalację rozpoczniemy od zainstalowania na platformie sprzętowej systemu operacyjnego. Dla potrzeb powstania tego artykułu autor zastosował dystrybucję systemu Linux − CentOS 5.6 w wersji 32 bitowej, którą pobrać można z jednego z mirrorów 1). Jeśli dysponujemy 64 bitową architekturą sprzętową − można zastosować CentOS 5.6 w wersji 64 bit (x86_64).

Pobieramy obraz dystrybucji CentOS-5.6-i386-netinstall.iso i przygotowujemy płytę instalacyjną systemu.

Po starcie serwera powinien ukazać się ekran startowy systemu CentOS:

CentOS - ekran startowy

Po starcie opcji konfiguracyjnych instalacji systemu należy wybrać metodę instalacji systemu (Installation Method). Pożądaną przez nas metodą jest metoda HTTP. Następnie dokonujemy konfiguracji kart sieciowych serwera, dobieramy układ partycji oraz wybieramy pakiety oprogramowania, które znajdą się w instalowanym systemie operacyjnym − przy czym zaleca się zainstalowanie minimalnej ilości pakietów − tylko tych, które niezbędne będą do zainstalowania aplikacji.

Jeśli wszystkie opcje instalacji systemu zostały skonfigurowane poprawnie, system zacznie pobieranie z sieci Internet odpowiednich pakietów oprogramowania i ich instalację na serwerze:

proces instalacji VoIP

KONFIGURACJA SYSTEMU OPERACYJNEGO SERWERA

Po zainstalowaniu systemu operacyjnego CentOS, którego zadaniem będzie hostowanie oprogramowania Asterisk, należy wykonać czynności konfiguracyjne, które umożliwią nam dostęp do repozytoriów Asteriska oraz repozytoriów firmy Digium − producenta oprogramowania oraz bibliotek współpracujących z Asteriskiem:

1. Najpierw należy utworzyć oba pliki repozytoriów, aby instalator pakietów oprogramowania systemu CentOS posiadał informację, w jakiej lokalizacji sieciowej należy pakietów szukać. W tym celu wydajemy polecenia:

[root@localhost~]# touch /etc/yum.repos.d/centos-asterisk.repo

2. Następnie dowolnym edytorem (vi, nano, pico) należy wyedytować utworzony plik, dodając do niego następujące wpisy:

[asterisk-tested]
name=CentOS-$releasever - Asterisk - Tested
baseurl=http://packages.asterisk.org/centos/$releasever/tested/$basearch/

3. Kolejnym repozytorium, które dodajemy do naszego systemu, jest repozytorium firmy Digium. W tym celu wydajemy polecenie:

[root@localhost~]# touch /etc/yum.repos.d/centos-digium.repo

4. I do utworzonego pliku dodajemy następujący wpis:

[digium-tested]
name=CentOS-$releasever - Digium - Tested
baseurl=http://packages.digium.com/centos/$releasever/tested/$basearch/
enabled=0
gpgcheck=0

[digium-current]
name=CentOS-$releasever - Digium - Current
baseurl=http://packages.digium.com/centos/$releasever/current/$basearch/
enabled=1
gpgcheck=0

Po wykonaniu powyższych czynności repozytoria centrali Asterisk powinny być dostępne w systemie operacyjnym. Można dokonać sprawdzenia poprawności przeprowadzonych czynności konfiguracyjnych, wydając polecenie:

[root@localhost~]# yum search asterisk

Po wydaniu powyższego polecenia system powinien podać listę pakietów oprogramowania, związanych z Asteriskiem.

INSTALACJA OPROGRAMOWANIA CENTRALI TELEFONICZNEJ

Po przygotowaniu systemu operacyjnego do pracy z repozytoriami oprogramowania Asterisk kolejnym krokiem wdrożenia jest instalacja oprogramowania Asterisk (pdf). Wcześniej jednak istnieje konieczność założenia użytkownika (oraz grupy) w systemie, na jakim pracować będzie oprogramowanie centrali.

Następnie przechodzimy do instalacji oprogramowania centrali PBX. Na użytek tego artykułu założono, że zostanie ono zainstalowane z większością dostępnych modułów oraz oprogramowania.

W celu rozpoczęcia instalacji wydajemy następujące polecenie:

[root@localhost~]# yum install asterisk18.i386 asterisk18-addons.i386 asterisk18-addons-bluetooth.i386 asterisk18-addons-core.i386 asterisk18-addons-mysql.i386 asterisk18-addons-ooh323.i386 asterisk18-alsa.i386 asterisk18-configs.i386 asterisk18-core.i386 asterisk18-curl.i386 asterisk18-doc.i386 asterisk18-odbc.i386 asterisk18-ogg.i386 asterisk18-pgsql.i386 asterisk18-resample.i386 asterisk18-snmp.i386 asterisk18-tds.i386 asterisk18-voicemail.i386

Po wykonaniu przez system czynności instalacyjnych należy dodać usługę Asterisk - a do listy usług, które system uruchomi automatycznie podczas startu systemu:

[root@localhost~]# chkconfig asterisk on

I ostatecznie uruchamiamy zainstalowane oprogramowanie poleceniem:

[root@localhost~]# service asterisk start

System operacyjny zawiadomi o uruchomieniu oprogramowania centrali telefonicznej, sygnalizując poprawność wykonania poprzez wyświetlenie komunikatu: “Starting asterisk: [ OK ]”

Dodatkowo możemy także sprawdzić poprawność instalacji, logując się do konsoli centrali. W tym celu należy wydać polecenie:

[root@localhost~]# asterisk -rvvvvvv

Efektem wydania powyższego polecenia powinien być następujący zestaw informacji:

Asterisk 1.8.4.2, Copyright (C) 1999 - 2011 Digium, Inc. and others.
Created by Mark Spencer
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
== Parsing '/etc/asterisk/asterisk.conf': == Found
== Parsing '/etc/asterisk/extconfig.conf': == Found
Connected to Asterisk 1.8.4.2 currently running on localhost (pid = 8124)
Verbosity is at least 6
localhost*CLI>

Pojawienie się go oznacza, że oprogramowanie centrali Asterisk zostało uruchomione poprawnie.

KONFIGURACJA CENTRALI TELEFONICZNEJ ASTERISK

Po pomyślnym przejściu przez czynności konfiguracyjne serwera oraz instalację centrali telefonicznej możemy cieszyć się zainstalowaną przez nas centralą telefoniczną. Jednak aby zaczęła ona spełniać swoją rolę − należy podłączyć do niej aparaty telefoniczne. Asterisk umożliwia podłączenie sprzętowego aparatu telefonicznego VoIP − tzw. hardphone, jak również programowego aparatu telefonicznego − instalowanego na komputerze klasy PC, który staje się wtedy ekwiwalentem aparatu telefonicznego − tzw. softphone.

Najpopularniejszym softphone, który może współpracować z Asteriskiem jest darmowy program XLite, przedstawiony na drugim rysunku od góry, który możemy pobrać z sieci Internet. W opisanym wdrożeniu wykorzystywany będzie program XLite.

Aby jednak XLite mógł połączyć się z centralą, konieczne jest założenie w niej konta SIP, które wiąże numer telefoniczny (wewnętrzny) z konkretnym użytkownikiem. W tym celu należy wyedytować plik sip.conf, znajdujący się w katalogu /etc/asterisk i dodać do niego następujące wpisy:

; przykładowa definicja stacji telefonicznej w pliku sip.conf

[2000]
defaultuser=2000 ; nazwa użytkownika telefonu
callerid="Jan Kowalski" <2000> ; ID użytkownika
secret=haslo ; hasło użytkownika
type=friend
host=dynamic; adres stacji telefonicznej jest zmienny (dhcp)
context=wewnetrzne; kontekst, w którym umieszczamy wewnętrzne telefony
disallow=All ; zabronienie użycia jakichkolwiek kodeków
allow=alaw ; pozwolenie na użycie kodeka alaw
allow=ulaw; pozwolenie na użycie kodeka ulaw
allow=gsm; pozwolenie na użycie kodeka gsm
nat=yes ; gdy serwer centrali jest za NAT-em
qualify=yes ;
canreinvite=no
canredirect=no

Dalsze stacje telefoniczne możemy dodawać w prosty sposób: kopiując wpisy konfiguracyjne i zmieniając kolejno przydzielony danej stacji nr wewnętrzny ( tj. 2001, 2002 itd.) oraz parametr “callerid”

Następnie przeładowujemy ustawienia centrali poleceniem “sip reload” i konfigurujemy w programie XLite stacje telefoniczne według wpisów, których dokonaliśmy uprzednio oraz podanego wzorca.

Po skonfigurowaniu stacji telefonicznych należy sprawdzić, czy uzyskały one połączenie z centralą Asterisk. Dokonujemy tego z poziomu konsoli Asteriska.

Jeśli umieszczona na komputerach aplikacja XLite skonfigurowana została poprawnie, centrala powinna podać listę dostępnych stacji telefonicznych:

localhost*CLI> sip show peers
Name/username  Host   Dyn   Forcerport  ACL   Port   Status  
2000/2000192.168.6.20  DN 64738  OK (29 ms)
2001/2001192.168.6.21  DN  57634OK (31 ms)
2 sip peers [Monitored: 2 online, 0 offline Unmonitored: 0 online, 0 offline]

KONFIGURACJA TRAS POŁĄCZEŃ TELEFONICZNYCH

W poprzednim kroku skonfigurowaliśmy stacje telefoniczne, aby mogły uzyskać połączenie z serwerem centrali Asterisk. Aby jednak możliwe było wykonywanie połączeń − należy zdefiniować trasy, którymi centrala będzie realizować połączenie w zależności od wybranego przez użytkownika numeru telefonu. Na wstępie należy umożliwić realizowanie połączeń wewnątrz firmy. W poniższym artykule założono, iż numeracja wewnętrzna przedsiębiorstwa zawierać się będzie w przedziale od numeru 2000, do numeru 2020.

Konfigurację tras dla połączeń wewnątrz firmy zaczynamy od dodania tzw. kontekstu dla połączeń wewnętrznych. W tym celu należy w pliku extensions.conf odszukać sekcję [default] i dodać następujący wpis:

[default]

include => wewnetrzne

Poinformowaliśmy centralę telefoniczną, iż standardowo ma uwzględniać kontekst “wewnętrzne”, w którym umieszczone będą instrukcje określające zachowanie się centrali przy wybieraniu czterocyfrowych numerów wewnętrznych w firmie.

W celu zdefiniowania powyższego na końcu wspomnianego pliku dodajemy odpowiednie wpisy, które informują centralę, iż w wypadku wybrania przez użytkownika czterocyfrowego numeru, zaczynającego się cyfrą 2 (czyli zakres wewnętrznych numerów telefonów w naszej firmie) − powinna ona skierować połączenie poprzez kanał SIP do tegoż numeru.

Aby wprowadzone przez nas zmiany doszły do skutku, uruchamiamy managera centrali (polecenie Asterisk −rvvvv) i wydajemy następujące polecenie:

localhost*CLI> dialplan reload

Po wydaniu powyższej dyrektywy połączenia pomiędzy numerami wewnętrznymi będą już możliwe do wykonania, o czym konsola centrali poinformuje nas w sposób następujący:

localhost*CLI>
== Using SIP RTP CoS mark 5
-- Executing [2001@wewnetrzne:1] Dial("SIP/2000-00000002", "SIP/2001") in new stack
== Using SIP RTP CoS mark 5
-- Called SIP/2001
-- SIP/2001-00000003 is ringing
== Spawn extension (wewnetrzne, 2001, 1) exited non-zero on 'SIP/2000-00000002'

ŁĄCZENIE CENTRALI TELEFONICZNEJ Z OPERATOREM USŁUG VoIP

Nadszedł czas na zdefiniowanie połączenia centrali Asterisk z operatorem usług VoIP. W tym celu edytujemy plik sip.conf.

W sekcji [general] dodajemy wpisy, które przede wszystkim umożliwią następujące działania:

  • nieznane połączenia kierujemy do kontekstu default,
  • włączymy rozwiązywanie domeny po rekordach SRV,
  • nie zezwalamy na nieautoryzowane wywołania,
  • ustawienia wymagane przez operatora,
  • ustawienia dla bramek/telefonów za NATem,
  • ustawiamy adres sieci lokalnej Asteriska,
  • ustawiamy adres publiczny routera, za którym jest Asterisk,
  • inne ustawienia.

Rejestrujemy naszą centralę u operatora telefonii VoIP. W tym celu w pliku sip.conf należy dodać następującą dyrektywę:

register => uzytkownik:haslo@sip.freeconet.pl/przychodzace przychodzace

Następnie należy zdefiniować połączenia do operatora i od operatora, tzw. peer-y. A w kolejnym kroku przeprowadzamy odpowiednie zmiany w pliku extensions.conf.

Pozostaje jedynie przetestować naszą konfigurację, dzwoniąc (np. z telefonu komórkowego) pod uzyskany od operatora FreecoNet testowy numer telefoniczny.

Artykuł opracował Mariusz Hyra, Support Online Sp. z o.o.

Linki - źródła:
  1. http://ftp.ps.pl/pub/Linux/CentOS/5.6/isos/i386/CentOS-5.6-i386-netinstall.iso

Dodał: Paweł​Dzedzej
Dział: Software


 

ComputerSun.pl na FaceBooku
Polecamy lekturę:

Excel 2007 PL. Pierwsza pomoc



X

Zapisz się na biuletyn serwisu ComputerSun.pl, aby otrzymać poradnik:

Zabezpieczanie sieci bezprzewodowych. Przydatne wskazówki jak chronić sieć domową przed intruzami

Imię:  
Email:
Tak, akceptuję Politykę Prywatności