User Tools

Site Tools


wiki:voip:asterisk:extensions_conf

This is an old revision of the document!


extensions.conf

  • Tvoří dialplán Asterisku

Kontexty

  • Dialplán lze dělit na kontexty - oddělené “routovací pravidla” hovorů
  • tel.čísla v kontextu nemohou využít funkcí (směrování) jiného kontextu není-li to vysloveně nakonfigurováno.
  • Pomocí kontextů lze tedy definovat oprávnění volání (např.interní,externí,mezinárodní) či definovat rozdílné IVR pro různé skupiny telefonů apod.
  • kontexty jsou definovány názvem (max.79 znaků) v hranatých závorkách - nesmí se jmenovat global,general či default
  • speciální kontexty: [general] a [global]
  • [general] - zde bývají speciální nastavení týkajcí se dialplánu, která však v drtivé většině případů necháváme defaultní
  • [globals] -

Extensions

  • exten ⇒ name, priority, application()
  • např. exten ⇒ 123,1,Answer()

Priority

Číslované priority:

exten => 123,1,Answer()
exten => 123,2,do something
exten => 123,3,do something else
exten => 123,4,do one last thing
exten => 123,5,Hangup()

Nečíslované priority:

exten => 123,1,Answer()
exten => 123,n,do something
exten => 123,n,do something else
exten => 123,n,do one last thing
exten => 123,n,Hangup()

'same =>' operator

exten => 123,1,Answer()
   same => n,do something
   same => n,do something else
   same => n,do one last thing
   same => n,Hangup()

Priority labels

  • pomocí labels je řádek v dialplánu adresovatelný, tzn. odjinud z dialplánu mohu přeskočit GoSub() na konkrétní řádek buď na základě č.priority (kterou v případě použití nečíslovaných priorit neznám) nebo na základě labels.
exten => 123,n(label),application()

Applications

  • každá aplikace provádí nějakou činnost - přehrání hudby, přijetí volby, select do DB, vytočení kanálu, zavěšení hovoru apod.

Progress()

  • Zasílá protistraně progress informace ještě před vyzvednutím hovoru, může vyřešit sig.problémy s některými operátory

Answer()

  • Přijme hovor
  • Nemá žádné argumenty

Hangup()

  • Zavěsí hovor, je vhodné jej použít vždy na konci kontextu, aby se účastníkovi zamezilo v nějaké další nepředvídatelné činnosti.
  • Bez argumentů, lze ale použít ISDN cause code např. Hangup(16)

Playback()

  • Přehraje zadaný zvukový soubor
  • Ignoruje event.zadané volby uživatelem
  • Zdroj souborů /etc/asterisk/sounds/
  • Synatxe Playback(filename), kde filename se píše bez přípony a odkazuje na soubor filename.wav
  • Použití relativní cesty (k adr./etc/asterisk/sounds): Playback(subdir/filename)
  • Lze také použít absolutní cestu: Playback(/home/lukas/filename)
  • Je-li v adresáři více souborů se stejným názvem a rozdílnou příponou, asterisk si vybere ten nejvhodnější dle náročnosti na CPU (náročnost formátů na CPU lze zjistit *CLI> show translation)
  • Playback(digits/1) - řekne zadanou číslovku (jedna)

Background(), WaitExten()

  • Přijímají stisknutá čísla od volajícího
  • Background navíc při čekání na volbu přehrává zadaný zvukový soubor, přijme-li nějaké číslo či čísla, přeruší přehrávání zvuku a přeskočí na příslušnou extenzi
  • Takto se dají dělat hlasová menu
  • Vhodné je kombinovat obě aplikace, čímž zajistíme, že uživatel může zadat volbu i po přehrání celého zvukového souboru
[TestMenu]
exten => start,1,Answer()
   same => n,Background(main-menu)   ;přehraje soubor main-menu, přičemž očekává volbu
   same => n,WaitExten(5)            ;čeká na volbu dalších 5s  

Goto()

  • same ⇒ Goto(context,extension,priority)
  • má tři argumenty, ale všechny nejsou povinné
  • Počet zadaných argumentů:
    • 1 - (priority) - asterisk jej vyhodnotí jako prioritu v této extenzi
    • 2 - (extension,priority)
    • 3 - (context,extension,priority)
[TestMenu]
exten => start,1,Answer()
   same => n,Background(main-menu)
   same => n,WaitExten(5)

exten => 1,1,Playback(digits/1)
   same => n,Goto(TestMenu,start,1)

exten => 2,1,Playback(digits/2)
   same => n,Goto(TestMenu,start,1)

Aplikace změn

*CLI> dialplan reload

nebo:

$ sudo /usr/sbin/asterisk -rx “dialplan reload”
wiki/voip/asterisk/extensions_conf.1353089182.txt.gz · Last modified: 2014/12/26 18:31 (external edit)