Asterisk i klienci SIP w 10 minut

Asterisk to bardzo wdzięczna programowa centrala telefoniczna. Mimo tego, że jest wielkim kombajnem bez problemów można ja zainstalować nawet na Raspberry Pi i obsługiwać malutką sieć VoIP.

Założenia

Zakładamy, że używamy Debiana (nie ważne na jakiej platformie) a pliki konfiguracyjne Asteriska nie są zmodyfikowane - mamy doczynienia z konfiguracją startową dla Debiana.

Instalcja Asteriska

Asterisk jest dostępny wprost z repozytoriów:

apt install asterisk

Dodawania użytkowników SIP

Cała konfiguracja Astriska przetrzymywana jest w katalogu /etc/asterisk. Użytkowników dodajemy w pliku /etc/asterisk/users.conf

Pliki konfiguracyjne mają strukturę plików .ini. Poniższej konfiguracja dla dwóch użytkowników:

[81]
fullname = Jacek
secret = PASSWORD
hassip = yes
context = wewnetrzne
host = dynamic

[82]
fullname = Placek
secret = PASSWORD
hassip = yes
context = wewnetrzne
host = dynamic

Cóż to wszystko oznacza?

[8x] to nazwa użytkownika i zarazem numer telefoniczny danego klienta

fullname wartość używana jako identyfikator rozmówcy

secret hasło użytkownika wymagane do zalogowania się

hassip ten parametr mówi Asteriskowi, że ma utowrzyć konto SIP dla tego użytkownika

context to kontekst w którym pojwią się połączenia od tego użytkownika - parametr używanym w dialplanie

host informuje Asteriska czy dany użytkownik ma stały czy zmienny adres IP

Aktywacja utworzonych kont w centralce

Przeładowujemy konfigurację Asteriska by wprowadzone zmiany stały się aktywne:

asterisk@asterisk:~# rasterisk -vvv
asterisk*CLI> reload
asterisk*CLI> sip show users
Username                   Secret           Accountcode      Def.Context      ACL  Forcerport
81                         PASSWORD                          wewnetrzne       No   No        
82                         PASSWORD                          wewnetrzne       No   No     

Użycie parametru -vvv powoduje, że konsola Asteriska będzie wyświetlać bardziej szczegółowe dane (tryb verbose na poziomie 3).

Konfiguracja klientów

Dla poprawnej konfiguracji klienta potrzebne są następujące dane:

  • adres IP serwera
  • nazwa użytkownika
  • hasło

W przypadku Debiana jako klient SIP dobrze sprawuje się Jami a na Androidzie ZoIPer. Niestety od wersji 12 Android nie wspiera w standardowym dialerze opcji klienta SIP.

Po poprawnym skonfigurowaniu klienta i połączeniu z centralką w konsoli Asteriska powinniśmy zobaczyć

Registered SIP '81' at 192.168.1.104:5060

Asterisk daje możliwość podglądu statusu klientów SIP przy użyciu polecenia:

asterisk*CLI> sip  show peers
Name/username             Host                                    Dyn Forcerport Comedia    ACL Port     Status      Description                      
81/81                     192.168.1.104                            D  Auto (No)  No             5060     Unmonitored                                  
82                        (Unspecified)                            D  Auto (No)  No             0        Unmonitored                                  
2 sip peers [Monitored: 0 online, 0 offline Unmonitored: 1 online, 1 offline]

Modyfikacja dialplanu

Na tą chwilę klienci SIP tak naprawdę nic nie mogą zrobić. By jakiekolwiek połączenia były możliwe do wykonania musimy dodać odpowiednie reguły do dialplanu (w pliku extensions.conf)

Dodajemy sekcję wewnetrzne czyli konteks który ustaliliśmy w konfiguracji klientów SIP.

[users]
exten => 81,1,Dial(SIP/81)
exten => 82,1,Dial(SIP/82)

Teraz wystarczy przeładować konfigurację dialplanu by połączenia między klientami stały się możliwe.

CLI> dialplan reload

Następny wpis