Salon Optyczny Joanna Jarzyna
dj_ndc_photo

PLIKI

W domyślnej instalacji Asterisk, pliki konfiguracyjne znajdują się w:

/etc/asterisk

Główne pliki konfiguracyjne to:

asterisk.conf - informacje o lokalizacji plików i folderów,
cdr_mysql.conf - definicja połączenia MySQL dla rejestru połączeń
cdr_pgsql.conf - definicja połączenia PostgreSQL dla rejestru połączeń
chan_dahdi.conf - konfiguracja kart rozszerzeń dla połączeń np. PSTN
extconfig.conf - definicje mapowania bazy danych dla trybu RealTime
extensions.conf - plik z dialplanem, definiowanie obsługi połączeń
features.conf - plik z definicjami kodów DTMF dla przełączania połączeń itp.
iax.conf - definicje użytkoników i trunk-ów z sygnalizacją protokołem IAX
manager.conf - definiowanie użytkowników do zdalnego zarządzania centralą
meetme.conf - definiowanie numerów i pinów dla pokoi konferencyjnych
modules.conf - definiowanie jakie moduły mają lub nie mają być łądowane podczas uruchamiania
musiconhold.conf - definiowanie dodatkowych muzyczek na czekanie, zamiast sygnału w słuchawce
queues.conf - definiowanie kolejek dla połączeń przychodzących, często zwanych CallCenter
res_mysql.conf - definiowanie bazy danych dla trybu RealTime w MySQL
res_pgsql.conf - definiowanie bazy danych dla trybu RealTime w PostgreSQL
rtp.conf - zakres portów dla strumienia głosowego protokołu RTP
sip.conf - definicje użytkoników i trunk-ów z sygnalizacją protokołem SIP
voicemail.conf - definiowanie skrzynek dla poczty głosowej

Plik konfiguracji dla sterownika DAHDI:

/etc/dahdi/system.conf


cdr_mysql.conf [global] hostname=database.host.name dbname=asteriskcdrdb table=cdr password=password user=asteriskcdruser port=3306 ;sock=/tmp/mysql.sock Podajemy dane dostępowe go bazy danych gdzie jest tabela CDR w postaci: CREATE TABLE `cdr` ( `calldate` datetime NOT NULL default '0000-00-00 00:00:00', `clid` varchar(80) NOT NULL default '', `src` varchar(80) NOT NULL default '', `dst` varchar(80) NOT NULL default '', `dcontext` varchar(80) NOT NULL default '', `channel` varchar(80) NOT NULL default '', `dstchannel` varchar(80) NOT NULL default '', `lastapp` varchar(80) NOT NULL default '', `lastdata` varchar(80) NOT NULL default '', `duration` int(11) NOT NULL default '0', `billsec` int(11) NOT NULL default '0', `disposition` varchar(45) NOT NULL default '', `amaflags` int(11) NOT NULL default '0', `accountcode` varchar(20) NOT NULL default '', `userfield` varchar(255) NOT NULL default '' ); ALTER TABLE `cdr` ADD `uniqueid` VARCHAR(32) NOT NULL default ''; ALTER TABLE `cdr` ADD INDEX ( `calldate` ); ALTER TABLE `cdr` ADD INDEX ( `dst` ); ALTER TABLE `cdr` ADD INDEX ( `accountcode` ); Jeżeli baza jest na localhost, wprowadzamy Socket z pliku /etc/mysql/my.cnf: [client] port = 3306 socket = /var/run/mysqld/mysqld.sock
chan_dahdi.conf Definicja analogowej karty FXO w oparciu o modem Motorolla: [trunkgroups] [channels] context=default usecallerid=yes hidecallerid=no callwaiting=yes usecallingpres=yes callwaitingcallerid=yes threewaycalling=yes transfer=yes canpark=yes cancallforward=yes callreturn=yes echocancel=no echocancelwhenbridged=no relaxdtmf=yes rxgain=0.0 txgain=0.0 group=1 callgroup=1 pickupgroup=1 callprogress=no immediate=no context=from-motorola signalling=fxs_ls channel => 1 Plik /etc/dahdi/system.conf: fxsls=1 loadzone = pl defaultzone = us
extconfig.conf Definiujemy pracę z bazą danych, wszystkie wpisy z plików konfiguracyjnych mogą zostać przeniesione do bazy danych, przez co ich edycja ma wpływ na rzeczywistą pracę centrali, bez potrzeby przeładowywania jej konfiguracji jak ma to miejsce po edycji plików tekstowych. Należy zmapować odpowiednie tabele. Przykład dla silnika MySQL oraz bazy danych "mojagwiazda": sippeers => mysql,mojagwiazda,sip_buddies sipusers => mysql,mojagwiazda,sip_buddies queues => mysql,mojagwiazda,queue_table queue_members => mysql,mojagwiazda,queue_member_table voicemail => mysql,mojagwiazda,voicemail_users extensions => mysql,mojagwiazda,extensions_table Aby asterisk zaczał korzystać z tych tabel należy wskazać miejsce bazy danych w pliku res_mysql.conf.
extensions.conf Przykłądowa definicja połączenia przychodzącego na linię analogową na modemie Motorolla, gdzie połączenie jest odebrane, odtworzony jest komunikat powitalny, następnie połączenie zostaje skierowane po protokole SIP do użytkownika "andrzej007". W definicji karty połączenia przychodzące trafiają do kontekstu "from-motorola": [from-motorola] exten => s,1,Answer() exten => s,2,Wait(2) exten => s,3,Playback(powitanie) exten => s,4,Dial(SIP/andrzej007,,) Definicja kontekstu dla połączń wywchodzących przez linię analogową modemem Motorolla, dla użytkownika andrzej007, który ma zdefiniowany kontekst dla połączeń wychodzących "grupa-technicy": [grupa-technicy] exten => _X.,1,Dial(DAHDI/1/${EXTEN},,) Ponieważ jest to tylko jedna linia anlogowa, a więc jeden kanał mamy: /1/. Dla łącza typu PRA gdzie linii jest 30, można zdefiniować w pliku dla DAHDI grupę i zrobić dzwonienie przez dowolną wolną linię np.: exten => _X.,1,Dial(DAHDI/g1/${EXTEN},,)
features.conf [general] parkext => 700 ; What extension to dial to park (all parking lots) parkpos => 701-720 ; What extensions to park calls on. (defafult parking lot) [featuremap] ;blindxfer => #1 ; Blind transfer (default is #) - przełączenie na ślepo, ;disconnect => *0 ; Disconnect (default is *) - rozłączenie połączenia z przełączonej rozmowy, ;automon => *1 ; One Touch Record a.k.a. Touch Monitor - włączenie nagrywania dla rozmowy, ;atxfer => *2 ; Attended transfer - przełączenie z wcześniejszą rozmową z osobą docelową, ;parkcall => #72 ; Park call (one step parking) - połączenia zaparkowane, ;automixmon => *3 ; One Touch Record a.k.a. Touch MixMonitor - włączenie nagrywania dla rozmowy, Można zdefiniować własne zamiast domyślnych kody DTMF służące do przełączania połączeń, automatycznego odbierania połączeń, parkowania połączeń, czasy reakcji na stukanie DTMF itp.
iax.conf Przykładowy wpis dla użytkownika, który rejestruje się do Asteriska poprzez IAX: [andrzej007] type=friend host=dynamic secret=hasło context=grupa-technicy Przykładowy wpis dla IAX Trunk z oddziałem w Katowicach: [katowice] type=peer host=192.168.2.200 requirecalltoken=no username=katowice secret=hasełko auth=plaintext context=polaczenia_katowice peercontext=polaczenia_katowice qualify=yes trunk=yes disallow=all allow=alaw allow=ulaw allow=gsm Wpis na serwerze w Katowicach przyjmujący połączenia: [katowice] type=user requirecalltoken=no host=192.168.3.300 secret=hasełko context=polaczenia_katowice peercontext=polaczenia_katowice auth=plaintext disallow=all allow=alaw qualify=yes Wywołanie numeru w katowicach: exten => _X.,1,Dial(IAX2/katowice/${EXTEN},,) Odebranie połączenia w Katowicach kierowane do kolejki, a połączenia na 1000 po SIP do "andrzej007": [polaczenia_katowice] exten => 1000,1,Dial(SIP/andrzej007,,) exten => _X.,1,Queue(kolejka)
manager.conf [general] enabled = yes port = 5038 [andrzej] secret = hasełko deny=0.0.0.0/0.0.0.0 permit=209.16.236.73/255.255.255.0 read = system,call,log,verbose,command,agent,user,config write = system,call,log,verbose,command,agent,user,config Włączenie managera "enabled=yes" i stworzenie użytkownika [andrzej], umożliwi dostęp poprzez telnet na port 5038 do inteface AMI, czyli managera umożliwiającego zdalne zarządzanie oprogramowanie Asterisk. Dzięki wykonywaniu specjalnych komend, można sprawdzać status zarejestrowancych bramke, rozłączać kanały, przełączać połączenia itp. Dostępne komendy: http://www.voip-info.org/wiki/view/Asterisk+manager+API
meetme.conf Można zdefiniować numer pokoju konferencyjnego oraz pin dostępu: [general] [rooms] conf => 1234 conf => 2345,9938 Pokój 1234 bez PINu oraz 2345 z pinem 9938. Aby dostać się do pokoju, należy w extensions.conf zdefiniować dla niego jakiś numer wewnętrzny np. 2000: [grupa-technicy] exten => 2000,1,Meetme(1234)
modules.conf Można wyłączyć np. ładowanie kanału IAX przez dodanie linii: noload => chan_iax2.so Wtedy po przeładowaniu konfiguracji Asterisk nie będzie brał pod uwagę wpisów z iax.conf.
musiconhold.conf Aby utworzyć własną muzykę zamiast sygnału dzwonienia należy utworzyć folder z jej nazwą np.: root# mkdir /var/lib/asterisk/moh/vangelis Wgrać do tego folderu utwór najlepiej WAV lub przerobiony do odpowiedniego kodeka PCM, dodać wpis do musiconhold.conf: [vangelis] mode=files directory=/var/lib/asterisk/moh/vangelis Muzyka będzie dostępna jako etykieta [nazwa] w dialplane extensions.conf np.: exten => 2010,1,MusicOnHold(vangelis) lub zamiast sygnału dzwonienia: exten => _X.,1,Dial(DAHDI/1/${EXTEN},,m(vangelis))
queues.conf Aby zdefiniować kolejkę, która obsługuje połączenia przychodzące, odtwarza komunikaty osobom oczekującym na połączenie z konsultantem o ich miejscu w kolejce należy dodać wpis: [kolejka] setinterfacevar = yes timeout = 15 announce-frequency = 15 announce-holdtime = yes queue-youarenext = queue-youarenext queue-thereare = queue-thereare queue-callswaiting = queue-callswaiting queue-holdtime = queue-holdtime queue-minutes = queue-minutes queue-seconds = queue-seconds queue-thankyou = queue-thankyou queue-reporthold = queue-reporthold strategy = rrmemory member => SIP/andrzej007,1 Połączenia przychodzące trafią do kolejki "kolejka" obsługiwanej przez usera "andrzej007" exten => s,1,Queue(kolejka)
res_mysql.conf Definicja połączenia z bazą danych przygotowaną dla trybu pracy RealTime: [general] dbhost=localhost dbname=mojagwiazda dbuser=asterisk dbpass=hasło ;dbport=3306 dbsock = /var/run/mysqld/mysqld.sock W zależności czy localhost, czy zdalna baza danych połączenie albo po Socket, albo przez port.
rtp.conf Definicja zakresu portów RTP dla transmisji głosowych: [general] rtpstart=10000 rtpend=20000 Standardowo zakres UDP 10000 do 20000
sip.conf Definicja użytkownika, który zarejestruje się po SIP do centrali i będzie wykonywał połączenia w kontekscie "grupa-technicy": [andrzej007] defaultusername=andrzej007 secret=hasełko type=friend nat=yes host=dynamic disallow=all allow=alaw allow=ulaw allow=gsm context=grupa-technicy
voicemail.conf Przy poprawnie zainstalowanym serwerze poczty wysyłającym wiadomości e-mail, możemy zdefiniować skrzynkę dla poczty głosowej poprzez wpisy: [andrzej] 123 => 1111,andrzej,andrzej.ciupek@asterisk.edu.pl,,attach=yes|delete=yes Wiadomości, które trafią do tej skrzynki zostaną wysłane na zadany e-mail, następnie skasowane z serwera, aby nagrać wiadomość na tej skrzynce należy dodać wpis: exten => 1000,1,Dial(SIP/andrzej007,20,r) exten => 1000,2,Voicemail(u,123@andrzej) Gdy połączenie będzie nieodbierane przez 20 sekund trafi na skrzynkę 123 w kontekscie andrzej, z komunikatem "u" czyli Unavail, może być "b" z komunikatem Busy, lub "s" bez komunikatu, wtedy linijkę wyżej warto dać własny: exten => 1000,1,Dial(SIP/andrzej007,20,r) exten => 1000,2,Playback(jestem_zajety) exten => 1000,3,Voicemail(s,123@andrzej)