Asterisk

A Unix/Linux szerverek üzemeltetése wikiből
(Változatok közti eltérés)
a (extensions eleje)
(extensions közepe)
64. sor: 64. sor:
 
==== /etc/asterisk/extensions.conf ====
 
==== /etc/asterisk/extensions.conf ====
 
Itt definiálhatjuk a fentebb már emlegetett dial plan-eket. Mik is ezek? Megmondják, hogy mi történjen, ha pl. hívnak egy számot, vagy éppen csak egy gombot megnyomnak a telefonon, pl. ha tárcsázzák a 123-at, akkor csörögjön ki az egyik SIP kliensen, vagy ha a 100-at, akkor egy kellemes női hang mondja be, hogy nyomják meg az 1es gombot az első mellékhez stb.
 
Itt definiálhatjuk a fentebb már emlegetett dial plan-eket. Mik is ezek? Megmondják, hogy mi történjen, ha pl. hívnak egy számot, vagy éppen csak egy gombot megnyomnak a telefonon, pl. ha tárcsázzák a 123-at, akkor csörögjön ki az egyik SIP kliensen, vagy ha a 100-at, akkor egy kellemes női hang mondja be, hogy nyomják meg az 1es gombot az első mellékhez stb.
* [general] rész:
+
* [general] rész: pár általános beállítás, kettő fontos
**
+
** static=yes
* [globals] rész:
+
** writeprotect=no - ezzel a két beállítással CLI-ből is menthetjük a dial plant a "save dialplan" paranccsal.
**
+
* [globals] rész: globális változó definíciók
 
* [context] - a konkrét dial plan-ek, ezekre hivatkozhatunk a csatornák beállításainál
 
* [context] - a konkrét dial plan-ek, ezekre hivatkozhatunk a csatornák beállításainál
**
+
** formája: exten => név/szám, prioritás, alkalmazás
  +
** a start kiterjesztés: ha a név helyére s-t írunk, akkor a konkrét cím nélküli hívásokat kezeljük (pl. egy csörgő telefonvonal esetén)
  +
** név helyett még lehet minta is, ez "_"-al kezdődik, és a következő speciális karaktereket tartalmazhatja:
  +
*** X : 0-9 számjegyek
  +
*** Z : 1-9 számjegyek
  +
*** N : 2-9 számjegyek
  +
*** [] -ek között tartományokat adhatunk meg, pl. [14-6] az 1,4,5,6 számokra érvényes
  +
*** .() - joker, több karaktert vesz figyelembe.
 
* pár alkalmazás:
 
* pár alkalmazás:
**
+
** Dial
  +
** Echo
  +
** Answer
  +
** Ringing
  +
** Playback
  +
** Background
  +
** Hangup
  +
** Goto
  +
** GotoIf
  +
** System
  +
** Queue
  +
** Congestion
  +
** MixMonitor
  +
 
==== /etc/asterisk/queues.conf ====
 
==== /etc/asterisk/queues.conf ====
 
Ebben a fájlban állíthatjuk be azt, hogy mi történjen, ha épp foglalt minden hívott fél és a hívónak várakoznia kell.
 
Ebben a fájlban állíthatjuk be azt, hogy mi történjen, ha épp foglalt minden hívott fél és a hívónak várakoznia kell.

A lap 2007. december 28., 14:08-kori változata

Az Asterisk egy nyílt forrású szoftveres alközpont. A megfelelő hardverrel képes pl. primer ISDN trönk kezelésére is, de most csak VoIP használatra térünk ki. Támogatja többek közt a két legelterjedtebb, a SIP és a H.323 protokollokat, illetve az Asterisk fejlesztői készítettek egy új protokollt is, az Inter-Asterisk eXchange-t.

Tartalomjegyzék

1 Az Asterisk telepítése

Lehet fordítani is, de csomagból is felrakhatjuk. A részletekbe nem mennék bele, mindenki használt már apt-get -et vagy make-et. A szükséges csomagok:
- asterisk
- asterisk-sounds
- libpri
valamint ha nem csak VoIP-t szeretnénk, vagy időzítés szükséges hardveresen (pl. a MeetMe konferenciához), és van is megfelelő hardverünk, akkor szükségesek még:
- zaptel
- libzap1.

2 A konfiguráció

2.1 A konfigurációs fájlok

A szintaxisról:

  • szekciók megjelölése: [szekció neve]
  • megjegyzések: ";" után
  • értékadás: "="
  • további fájlok figyelembe vétele: #include "filename.conf"
  • változók értékeire hivatkozás: ${változó_neve}
  • valamint használatos sok esetben a "=>", pl. egy dial plan kialakításakor (ha valaki meg tudja szépen fogalmazni a célját, ne habozzon :))

A továbbiakban áttekintjük a fontosabb konfigurációs fájlokat.

2.1.1 /etc/asterisk/modules.conf

Sokan elhanyagolják ennek megfelelő beállítását, ami nagy hiba: pár stabilitási problémát ki lehet küszöbölni, ha csak a szükséges modulokat töltjük be, pl. ha csak SIP-et használunk, ne töltsük be feleslegesen a chan_h323.so-t, a chan_iax.so -t. Fontos lehet még kiszedni a nem használt modulokat, ha a PBX-ünket mondjuk egy OpenWRT-s routeren akarjuk kialakítani.

  • egy szekció: [modules]
  • egy beállítható paraméter: autoload=no; érdemes no-n hagyni a fent említettek miatt
  • három féle utasítás:
    • load => chan_sip.so ; modul betöltése
    • noload => chan_h323.so ; modul kihagyása
    • preload => res_odbc.so ; modul betöltése az asterisk core inicializálása előtt - ritkán van rá szükség.

Milyen modulokat is lehet betölteni?

  • források (resources), pl. res_musiconhold.so, általában külön konfigurációs fájllal rendelkeznek
  • alkalmazások, pl. app_dial.so, a dial plan -ben használt utasítások
  • adatbázis csatolók, pl. cdr_psql.so, ha a hívások adatait nem plain text-ben akarjuk tárolni
  • csatorna kezelő modulok, pl. chan_sip.so
  • codec-ek, pl. codec_ulaw.so
  • formátumok, pl. format_wav.so, hasonló a codec-hez, csak nem live media stream-hez, hanem fájlokhoz
  • PBX core modulok, pl. pbx_config.so
  • egyedülálló funkciók, pl. func_callerid.so, megvan a pdb_functions.so -ban is, de ha nem akarjuk az egészet betölteni...

2.1.2 /etc/asterisk/sip.conf

A csatorna általános jellemzőinek beállítását és a SIP csatornák felvételét oldjuk meg itt. Az általános beállítások:

  • a [general] részben
  • IPcím, port: bindaddr, bindport
  • külső IP cím (NAT esetén fontos): externip
  • helyi hálózati tartomány: localnet (ha van NAT is, akkor kell, hogy mikor használja az externip-t a SIP fejlécben)
  • vendégek beengedése: allowguest (lényegében az, hogy legyen-e autentikáció, de figyeljünk oda, vannak kliensek, amik nem támogatják az autentikációt, ekkor allowguest=yes legyen)
  • hívás előzmények rögzítése: recordhistory
  • videó hívás támogatása: videosupport (csak két végpont között, a videó konferencia még nem támogatott)

Egy csatorna (és itt ez lényegében egy kliens, végpont) felvétele:

  • [SIP név] szekció
  • típus: type={friend, user, peer} - a user csak bejövő, a peer csak kimenő, a friend pedig két irányú csatornát jelöl
  • használt/nem használt codec-ek: allow, disallow
  • csoportok: callgroup, pickupgroup, segítségükkel az adott csoportba tartozó csatornák válaszolhatnak a többi csoporttagnak szóló hívásra (felvehetik)
  • melyik dial plan vonatkozzon a csatornára: context
  • IP cím, port: host={IP vagy "dynamic"}, port=...
  • NAT mögött van-e a kliens: nat=...
  • felhasználói név, jelszó: username, secret

Egyes opciók, mind pl. a recordhistory beállítható csatornánként is.

2.1.3 /etc/asterisk/extensions.conf

Itt definiálhatjuk a fentebb már emlegetett dial plan-eket. Mik is ezek? Megmondják, hogy mi történjen, ha pl. hívnak egy számot, vagy éppen csak egy gombot megnyomnak a telefonon, pl. ha tárcsázzák a 123-at, akkor csörögjön ki az egyik SIP kliensen, vagy ha a 100-at, akkor egy kellemes női hang mondja be, hogy nyomják meg az 1es gombot az első mellékhez stb.

  • [general] rész: pár általános beállítás, kettő fontos
    • static=yes
    • writeprotect=no - ezzel a két beállítással CLI-ből is menthetjük a dial plant a "save dialplan" paranccsal.
  • [globals] rész: globális változó definíciók
  • [context] - a konkrét dial plan-ek, ezekre hivatkozhatunk a csatornák beállításainál
    • formája: exten => név/szám, prioritás, alkalmazás
    • a start kiterjesztés: ha a név helyére s-t írunk, akkor a konkrét cím nélküli hívásokat kezeljük (pl. egy csörgő telefonvonal esetén)
    • név helyett még lehet minta is, ez "_"-al kezdődik, és a következő speciális karaktereket tartalmazhatja:
      • X : 0-9 számjegyek
      • Z : 1-9 számjegyek
      • N : 2-9 számjegyek
      • [] -ek között tartományokat adhatunk meg, pl. [14-6] az 1,4,5,6 számokra érvényes
      • .() - joker, több karaktert vesz figyelembe.
  • pár alkalmazás:
    • Dial
    • Echo
    • Answer
    • Ringing
    • Playback
    • Background
    • Hangup
    • Goto
    • GotoIf
    • System
    • Queue
    • Congestion
    • MixMonitor

2.1.4 /etc/asterisk/queues.conf

Ebben a fájlban állíthatjuk be azt, hogy mi történjen, ha épp foglalt minden hívott fél és a hívónak várakoznia kell.

2.2 Alternatív konfiguráció: CLI

Ha az asterisk-et nem démonként indítjuk (argumentumok nélkül), hanem mondjuk a "-vvvgc" kapcsolóval, akkor az asterisk beépített parancssoros kezelőfelületéhez jutunk. Rengeteg beállítást itt is el tudunk végezni, ennek előnye, ha valamilyen új funkciót először le akarunk tesztelni, nem kell külön újraindítgatni az asterisket minden kis módosítás után, tehát azonnal láthatjuk az eredményt.

3 Sipura VoIP gateway

3.1 A gateway beállítása

3.2 Az Asterisk beállítása

3.3 Tippek, meg amikre figyeljünk oda

3.4 Egy összetett példa

4 Ajánlott irodalom

Személyes eszközök