V dosedanjih treh besedilih smo že dobro spoznali odprtokodni Asterisk (www.asterisk.org) oziroma Elastix (www.elastix.org), ki nam lahko zagotavlja različne funkcionalnosti modernega komunikacijskega sistema. Naučili smo se osnov programiranja IP-telefonske centrale in naprednejših funkcionalnosti (npr. govorna pošta, samodejno posredovanje, povratni klic ...) ter povezave z drugimi govornimi sistemi v javnem oziroma zasebnem omrežju. Pri vzpostavitvi funkcionalnosti konferenčnega in sporočilnega strežnika, smo spoznali tudi nekatere strežniške funkcionalnosti. Razmeroma preprosto smo lahko zagotovili potrebno oziroma želeno funkcionalnost, uporaba okolja ukazne vrstice pa je bila do zdaj prej izjema kot pravilo.

A že z vpogledi v opisane konfiguracijske datoteke (npr. /etc/asterisk) so se nam odkrile določene zakonitosti. Prava in nadvse kompleksna konfiguracija celotnega sistema se skriva v konfiguracijskih datotekah, ki jih samodejno ustvarimo prek grafičnega vmesnika (v okolju spletnega brskalnika) oziroma ročno. Pri opisanem primeru smo spoznali, da je ročno popravljanje sicer samodejno ustvarjenih konfiguracijskih datotek mogoče, a neželeno, saj prinaša težave pri poznejših spremembah. Morebitnim težavam se izognemo s preprostim mehanizmom – konfiguracijskimi datotekami, ki so samodejno ustvarjene in jih prepoznamo po opozorilu (»Do NOT edit this file as it is auto-generated by FreePBX. All modifications to this file must be done via the web gui.«). Datoteke ne spreminjamo, morebitne spremembe in prilagoditve pa opravimo prek zunanjih datotek, ki so vključene v posamezno samodejno ustvarjeno datoteko.

Povezavo med konfiguracijskimi datotekami prepoznamo po vrstici #include. Pri datoteki /etc/asterisk/sip.conf najdemo vrstice #include sip_general_additional.conf, #include sip_general_custom.conf ali recimo #include sip_registrations.conf. Konfiguracijske vrstice v datotekah sip_general_additional.conf, sip_general_custom.conf in sip_registrations.conf so enakovredne vnosom v osnovni datoteki /etc/asterisk/sip.conf. Tako sta doseženi velika fleksibilnost (tudi modularnost) ter večja sledljivost konfiguracije, saj jo lahko razbijemo na manjše gradnike (posamezne datoteke). Nikakor pa ne smemo pomena znaka # zamenjati z znakom “;”, ki označuje komentar in ne vpliva na konfiguracijo.

Odprimo zdaj z urejevalnikom alis pregledovalnikom (npr. mc-jem) datoteko /etc/asterisk/extensions.conf. Poščimo vrstico [from-pstn]. Pod njo najdemo nekoliko drugačne vrstice include. Če smo z #include vključevali v konfiguracijsko datoteko druge datoteke, pri vrstici include = &gt vključimo dele segmenta konfiguracije iste datoteke. Pri [from-pstn] in vrstici include = &gt from-pstn-custom, je učinek enak, kot če bi v segment/okvir (context) označen s from-pstn, vpisali celotno vsebino okvirja, vpisanega pod [from-pstn-custom]. Še en primer uporabnega prepletanja, ki olajša delo in povečuje preglednost.

ORGANIZACIJA

Ogled datoteke extensions.conf in z njo povezanih (poiščemo vrstice #include) datotek je odličen pripomoček za razumevanje o tem, kako sistem deluje. Že samo poimenovanje posameznega segmenta največkrat pove, čemu je ta namenjen in kako deluje. Datoteka extensions.conf je ena od najpomembnejših, saj je srce vsakega sistema ki temelji na Asterisku. Vsebuje tako imenovani načrt usmerjanja (dial plan), ki definira, kako Asterisk obdeluje oziroma usmerja odhodne in dohodne klice. Prek načrta usmerjanja lahko najdemo vse številke, do katerih lahko uporabniki dostopajo. Načrt usmerjanja sestavljajo različni segmenti (context), vsakega od segmentov pa definira ena ali več številk (extensions). Posamezno številko lahko označimo s številko ali že določeno črko. V načrtu usmerjanja za vsako številko definiramo želeno zaporedje »dogodkov«, ki se izvedejo v povezavi s to številko.

Na začetku datoteke extensions.conf najdemo dva segmetna (general in globals), v katerih najdemo »sistemske« nastavitve in določimo globalne spremenljivke. Načeloma pustimo segment [general] nespremenjen, parameter writeprotect=no pa nam omogoča, da spremembe načrta usmerjanja izvedemo in aktiviramo prek ukazne vrstice z ukazom save dialplan. Če te možnosti ne potrebujemo oziroma ne uporabljamo, je iz varnostnih razlogov smiselno to možnost onemogočiti. Pogosteje pa urejamo segment [globals], v katerem definiramo globalne spremenljivke, ki jih nato uporabljamo v načrtu usmerjanja. Oznaka »spremenljiv« ni odvisna od tipa oz. velikosti črk, zato je spremenljivka ${mojMikro} enaka spremenljivki ${mojMIKRO}. Največ dela pa zahteva urejanje segmentov, ki so nasploh videti takole:

[ime_segmeta]
-- &gt extension številka_X, prioriteta 1, aplikacija1 (argument_a, argument_b,...)
-- &gt extension številka_X, prioriteta 2, aplikacija2 (argument_c, argument_d,...)
-- &gt extension številka_Y, prioriteta 1, aplikacija3 (argument_e, argument_f,...)
-- &gt extension številka_Y, prioriteta 2, aplikacija4 (argument_g, argument_h,...)

Pri datoteki /etc/asterisk/extensions_custom.conf je del segmenta [from-internal-custom] definiran kot:

exten = &gt 1234,1,Playback(demo-congrats) ; extensions can dial 1234
exten = &gt 1234,2,Hangup()
...

Posledica je, da pri izbiri številke 1234 Asterisk samodejno predvaja (aplikacija Playback) zvočno datoteko »demo-congrats«, na koncu pa prekine zvezo (aplikacija Hangup). Podobno lahko zagotovimo klicatelju ton zvonjenja (aplikacija Ringing – npr. exten = &gt 1234,1,Ringing), vnesemo čakanje s poljubnim parametrom (aplikacija Wait – npr. exten = &gt 1234,2, Wait,5) ali predvajamo v ozadju zvočno datoteko (aplikacija Background – npr. exten = &gt 1234,3,Background(demo)). Vnos interne številke zagotovimo z aplikacijo WaitExten (npr. exten = &gt 1234,4,WaitExten), pogosto pa z uporabo ene od vrstic kličemo drugo interno številko (aplikacija Dial – npr. exten = &gt 1234,5,Dial(SIP/201) – pokliče SIP-naročnika s klicno številko 201). Seznam in razlago podprtih aplikacij skupaj s potrebnimi parametri ter informacijo o podprti različici Asteriska najdemo na spletni strani www.voip-info.org/wiki/view/Asterisk+-+documentation+of+application+comm... (ali www.asteriskguru.com/tutorials/dialplan_applications.html). Med opisanimi primeri uporabe posameznih ukazov zasledimo tudi uporabo posameznih črk (X – katera koli številka od 0−9; Z – katerakoli številka od 1−9; N – katerakoli številka od 2−9 ter znaka „.“ ter „_“) in zapis številk v oglatem oklepaju, kar smo že spoznali v preteklih številkah pri definiranju dovoljenega odhodnega prometa. Poleg teg pogosto uporabljamo še vnaprej definirane vrednosti, ki imajo poseben pomen

- i – Invalid (neveljaven)
- s – Start (privzeta interna številka, običajno dohodna)
- h – Hangup (prekinitev povezave)
- t – Timeout (potek časovnika)
- T – AbsoluteTimeout (potek časovnika)
- o – Operator (operater − telefonist)

Pri pregledu posameznih konfiguracijskih datotek ste morda opazili, da na mestu prioritete nastopa namesto številke črka n. Ta označuje skok na naslednjo prioriteto in olajšuje vnašanje vrstic, saj pri vrivanju ni potrebno njihovo »preštevilčenje«.

Preprosta konfiguracija za dostop do dveh predalov govorne pošte bi bila videti nekaj podobnega, kot kaže primer spodaj. Vrstice s komentarji so označene z „;“ , drugo pa lahko z že pridobljenim znanjem brez večjih težav razumemo

[general]
static=yes
writeprotect=no

; Marko in Lili konfiguracija

[default]
; Cakanje 10 s na odgovor
exten = &gt s,1,Wait(10)
; Odgovor čez 10 s
exten = &gt s,n,Answer
; Predvajanje pozdravnega sporocila govorne poste
exten = &gt s,n(greeting),Background(vm/generic/greet)
; Odziv najpozneje v 10 s sicer se zveza prekine
exten = &gt s,n,Set(TIMEOUT(digit)=3)
exten = &gt s,n,WaitExten(10)
; 1 - Marko govorna posta
exten = &gt 1,1,Playback(vm/1/unavail)
exten = &gt 1,2,Voicemail(1)
exten = &gt 1,3,Goto(t,1)
; 2 - Lili govorna posta
exten = &gt 2,1,Playback(vm/2/unavail)
exten = &gt 2,2,Voicemail(2)
exten = &gt 2,3,Goto(t,1)
; 8 - Govorna posta upravljanje
exten = &gt 8,1,VoicemailMain
exten = &gt *,1,Directory(default)
exten = &gt *,2,Goto(s,greeting)
exten = &gt #,1,Playback(vm/generic/goodbye)
exten = &gt #,2,Hangup
; t - prekinitev
exten = &gt t,1,Playback(vm/generic/goodbye)
exten = &gt t,2,Hangup

Pri naprednejših scenarijih pogosto uporabljamo spremenljivke, saj si z njihovo uporabo olajšamo urejanje konfiguracijskih datotek. Zavedati pa se je treba, da za pisanje scenarijev potrebujemo »kritično količino« znanja oziroma poznavanja sistema, zato je najlažje preurediti že narejene konfiguracije in se učiti sestavljanja scenarijev po korakih.

UPORABNA PRIPOMOČKA

Od razmeroma preprostega konfiguriranja (že pripravljenih tipskih scenarijev) prek privzetega grafičnega vmesnika oziroma »de facto« standardnega vmesnika FreePBX (www.freepbx.org/), smo dokaj preprosto zagotovili želeno delovanje komunikacijskega strežnika. Zahtevnejši uporabniki lahko dosežejo potrebno fleksibilnost z neposrednim dostopom do konfiguracijskih datotek, umazana podrobnost pa se skriva v dejstvu, da za to potrebujejo precej znanja in izkušenj. Velikokrat se zgodi, da uporabnik potrebuje več, kot ponuja privzeti grafični vmesnik, zaradi narave osnovnega dela pa nima potrebnih znanj, saj gre pri tovrstnem programiranju za občasen ali morda celo enkraten poseg. V takšnem primeru si lahko pomaga z različnimi pripomočki, ki mu na uporabniku prijazen način omogočijo ustvarjanje zahtevnejših scenarijev upravljanja dohodnih in odhodnih klicev.

Ena od možnosti je paket Visual Dialplan (www.apstel.com/). Visual Dialplan je na voljo kot različica za Windows in Linux in je ne glede na paket (Standard, Professional) plačljiv. Na srečo lahko funkcionalnosti obeh paketov preizkusimo s preizkusnimi in polno funkcionalnimi, a časovno omejenimi različicamik. Visaul Dialplan podpira uporabo različnih uporabniških vmesnikov za različne distribucije Asteriska. Z njim preprosto ustvarimo želene funkcionalnosti s preprostim vmesnikom in postavljanjem gradnikov, ki jih poljubno povezujemo med seboj. Uporabnik DialPlana lahko z modeliranjem in že pripravljenimi primeri naredi načrt delovanja sistema oziroma usmerjanja klicev. Poleg načrta usmerjanja klicev (odhodni, dohodni) lahko v Visual DialPlanu definiramo tudi delovanje naprednejših funkcionalnosti, ki jih lahko pred namestitvijo v strežnik z nameščenim Asteriskom tudi preverimo. Rezultat uporabnikove domišljije/kreativnosti in dela s programom je ustrezna konfiguracija, ki jo na koncu naložimo v strežnik z nameščenim Asteriskom. Razvijalci paketa so se osredotočili na integracijo s FreePBX-om (ki je del vseh najpopularnejših distribucij) , distribucijami Trixbox Communiti Edition (CE), PBX in a Flash ter z »našim« Elastixom. Integracija je zagotovljena tudi z nekoliko manj znanim, a odličnim programom LumenVox (www.lumenvox.com/), ki sodi med vodilne na področju prepoznavanja govora …

Cena, slabih sto ameriških zelencev (različica Standard) oziroma dvesto (različica Professional), se glede na delovanje in prihranjeni čas tudi za občasno rabo ne zdi pretirana, še posebej če to primerjamo s cenami posega storitve strokovnjaka. Tudi če ste prepričani, da Asterisk obvladate brez težav, boste cenili dejstvo, da lahko s programom DialPlan z nekaj kliki naredite čakalno vrsto za klicni center, uporabite knjižnice z več kot šestdesetimi funkcijami oziroma sto petdesetimi komponentami − omenimo le povezljivost z najbolj priljubljenimi programi za podatkovne zbirke (npr. MS SQL) in s poštnimi strežniki (npr. Gmail) ali z možnostjo, da v testnem okolju preverite konfiguracijo.

Pa si poglejmo nekaj osnovnih korakov. Naš strežnik ima IP-naslov 192.168.200.100, paket z Visual Dialplanom pa je nameščen v delovni postaji z Windows. Na začetku izberemo ime povezave (polje Name – v našem primeru Elastix) in možnost Remote server (SSH). V našem primeru vpišemo v polje Server 192.168.200.100, v polje Username in Password pa podatke za račun (root in ustrezno geslo). Vse možnosti v polje Deploy Preferences pustimo aktivne in pritisnemo gumb Test connection. Ko dobimo ustrezno potrditev o uspešnosti vzpostavljene povezave, vnose potrdimo s pritiskom gumba OK. Na te nastavitve se lahko kadarkoli vrnemo z izbiro možnosti Edit &gt Preferences. Če imamo ustvarjeno le eno povezavo, se nam konfiguracija ob zagonu samodejno naloži. To storimo tako, da izberemo File &gt New Dialplan in izberemo možnost Create new dialplan for Asterisk server ter vnos potrdimo (takoj se začne prenos konfiguracijskih parametrov iz strežnika v Visual Dialplan. Po prenosu lahko preverimo konfiguracijo s klikom možnosti Asterisk Config. Če izberemo možnost SIP, dobimo izpisane vse že ustvarjene naročniške številke.

Za lažji začetek si oglejmo še kak že pripravljeni scenarij (File &gt Open Samples ). V našem primeru smo izbrali Elastixov Outbound_banned. Če izberemo Contexts in dvakrat kliknemo vpd-outbound, vidimo v obliki gradnikov prikazano funkcionalnost. Kljub vsem obljubam o trenutnem konfiguriranju sistema brez osnovnega znanja to ne drži, saj sicer programu ne bi bila dodana več kot tristo strani dolg priročnik in povezava do demo videoposnetkov (vsekakor priporočamo ogled!).

PREPROSTO KOT SAFI

Na prvi pogled podoben, a po delovanju precej drugačen je Safi (www.safisystems.com/). Sestavlja ga več delov. SafiServer je, kot že ime pove, strežnik v katerem tečejo aplikacije (imenovane »saflets« in še najbolj spominjajo na neke vrste blok diagram poteka), ki jih pripravimo s paketom SafiWorkshop. S temi aplikacijami lahko izvajamo najrazličnejša opravila – od nadzora delovanja Asteriska pa vse do povezav z drugimi strežniki (npr. dostop do zbirke podatkov). Tako SafiServer kot paket WorkShop sta na voljo za okolje Windows in Linux in ju lahko namestimo v obstoječ strežnik z Asteriskom ali v ločen strežnik. Pri prenosu potrebnih datotek ne smemo pozabiti na modul FreePBX (SafiServer FreePBX Module), s katerim novo funkcionalnost »pripnemo« na FreePBX in posredno v Asterisk/Elastix. Dobrodošlo je, da lahko tudi v tem primeru izvedemo »razhroščevanje« znotraj SafiWorkshopa.

Če smo bili do zdaj vajeni, da smo popolnoma vse funkcionalnosti zagotavljali z Asteriskom, pri uporabi SafiServerja to ni več potrebno. Asterisk prevzame osnovno funkcionalnost in zagotavlja robustnost delovanja oziroma dostopa, naprednejše funkcionalnosti pa zagotavljamo z okoljem Safi, ki ga je lažje obvladovati in je z njim preprosteje zagotavljati določene funkcionalnosti, ki jih Asterisk nima brez dodelav (npr. prilagajanje dostopa do konferenčnega strežnika z vpogledom v zbirko MySQL, preprosto povezovanje s spletnimi servisi). Tako ni dosežen le lažji zagon, ampak so na voljo tudi spremembe konfiguracije, testiranja in odprava morebitnih težav − omogočeno je tudi odpravljanje napak pri »živih« klicih, korak za korakom .. Najlepše pri vsem skupaj je, da lahko s strežnikom Safi zagotovimo potrebno funkcionalnost za več Asteriskovih strežnikov. S centralnim strežnikom Safi lahko sistem hitro prilagodimo novemu načinu delovanja, saj spremembo naredimo le v centralnem strežniku. Že pripravljene spremembe konfiguracije postanejo aktivne takoj, ko jih v strežniku objavimo (klik gumba Publish) in so aktivne že za prvi naslednji klic brez potrebe po ponovnem zagonu strežnika.

Za lažje razumevanje si poglejmo praktičen primer. Najprej namestimo modul FreePBX (FreePBX &gt Tools &gt Module Admin &gt Upload module (pokažemo modul, ki ga ne razpakiramo) &gt Upload), ki nam omogoči podporo strežniku Safi v našem okolju. Modul je prenesen v strežnik, a še ni nameščen. Zato med moduli poiščemo Saflets, izberemo možnost Install in na dnu strani kliknemo gumb Process. Namestitev potrdimo še s klikom možnosti Confirm. Ne pozabite še aktivirati spremembe.

Po namestitvi modula lahko v razdelku Inbound Call Control (FreePBX) najdemo novo možnost Saflets, na katero se bomo vrnili v nadaljevanju. Če paketov SafiServer in SafiWorkshop še nismo namestili, je zdaj pravi čas, da to storimo. Pri morebitnih težavah si lahko pomagamo s posnetki na spletni strani www.safisystems.com/screencasts/?pagemode=screencasts.
Strežnik dodamo v FreePBX z možnostjo Add SafiServer Entry. Rezultat je ta vnos v datoteko manager_safi.conf

;SafiServer(192.168.200.2)
;
[safi]
secret=mojMikro
deny=0.0.0.0/0.0.0.0
permit=127.0.0.1/255.255.255.0
permit=192.168.200.2/255.255.255.0
read=system,call,log,verbose,command,agent,user,dtmf,agi
write=system,call,log,verbose,command,agent,user,originate,agi

VOZI, MIŠKO!

Te podatke bomo vnesli v okno za definiranje povezave SafiServerja in našega Asteriskovega sistema. IP-naslov naše delovne postaje za administracijo je 192.168.200.2 (na njem tečeta tudi SafiServer in SafiWorkshop). Najprej naredimo nov projekt (File &gt New &gt New Safi project) z imenom mojMikro. V tem projektu naredimo novo datoteko saflet (File &gt New &gt New saflet) in jo poimenujmo test.saflet. Po kliku gumba Finish se nam prikaže že prvi gradnik (Incoming Call). Nato kliknemo zavihek Palette, ki nam odpre podprte možnosti, in izberemo Asterisk:Main. Kliknimo gradnik Answer in ga povlečemo ob gradnik Incomming Call. Postopek ponovimo še za gradnika StreamAudio in Hangup in jih povežemo v tem vrstnem redu med seboj. Povežemo jih tako, da najprej kliknemo gradnik Incomming Call in ga povlečemo v gradnik Answer. Izhod (default) gradnika Answer na enak način povežemo z gradnikom StreamAudio in tako nadaljujemo do konca.

Gotovo ste opazili, da ima lahko gradnik več izhodov (default, error ...). Gradnik StreamAudi še ni polno definiran (rdeč X), zato ga dvakrat kliknemo in v polju Filename* izberemo datoteko (npr. prepaid-final.gsm). Svojo mojstrovino lahko preverimo (debug – ikona z zelenim hroščem) in naložimo v strežnik za Asteriskom (Update resource &gt Public resource).

Datoteko saflet smo pripravili v strežniku, Asterisk že lahko uporablja zunanji SafletServer, še vedno pa nimamo povezanega oštevilčenja z delovanjem naše datoteke. To storimo tako, da v FreePBX-u dodamo povezavo (AddSaflet). Izberemo številko (npr. 9000), pokažemo na SafiServer (v našem primeru 192.168.200.2), izberemo projekt (pri nas mojMikro) in datoteko (test.saflet). Na koncu izberemo še akcijo, ki se bo izvedla, ko se konča scenarij, npr.Terminate Call (Hangup), in potrdimo vnos. Sprememba je vidna tako v okolju vmesnika FreePBX kot tudi v privzetem Elastixovem grafičnem vmesniku.

Jasno je, da lahko uporabnik naredi veliko kompleksnejše scenarije in jih prepleta med seboj. Na podlagi lastnih praktičnih izkušenj lahko trdimo, da gre za odličen izdelek, ki omogoča še tako kompleksno »štrikanje«, dejstvo pa je, da so v določenih primerih (npr. povezave z zbirkami podatkov) potrebna dodatna znanja. Vedno moramo paziti, da zagotovimo ustrezno zmogljivo platformo za SafiServer, saj se sicer zgodi, da se določene funkcije začnejo izvajati poooočassnneejee ...

KONEC, KI TO NI

Asterisk oziroma njegove izpeljanke so odlično ogrodje za zagotavljanje komunikacijskih strežnikov. Zato ni nič nenavadnega, če pomeni Asterisk ali njegova izpeljanka v določeni primerih alternativo komercialnim govornim sistemom, še posebej če vas ne moti dejstvo, da boste v obvladovanje novega sistema prisiljeni vložiti čas in znanje oziroma sredstva za pogodbenega vzdrževalca. Morda se niti ne zavedate, a z do zdaj pridobljenimi znanji lahko prihranite velike denarce.
Zakaj smo uporabljali izraz komunikacijski strežnik, in ne govorni strežnik ali telefonska centrala Zmogljivo osnovo tvori skoraj vedno govorni del, ki so mu dodane funkcionalnosti, ki so pri komercialnih govornih sistemih pogosto licenčno omejene ali so v vlogi zunanjih rešitev kot nadgradnja govorne komunikacije.

Elastix sodi nedvomno med najbolj dodelane pakete, ki temeljijo na Asterisku in na ravni grafičnega vmesnika simpatično integrirajo potrebne funkcionalnosti. A dejstvo je, da smo se dotaknili le nekaterih. Različnih modulov, ki jih lahko prenesemo iz spleta, nismo obravnavali, vsekakor pa je prav, da omenimo vsaj nekatere - klicni center, CRM (vTigerCRM, SugarCRM), IM (OpenFire), kreiranje spletne konference (Web conference). Asterisk podpira tudi uporabo TAPI-ja v združljivih aplikacijah (npr. MS Outlook), ki omogočajo uporabo neposredno iz aplikacije ... Več kot dovolj branja še za nekaj številk.


Zanimivosti in nasveti
• Srce delovanja sistemov z Asteriskom so konfiguracijske datoteke. Segmenti in datoteke se z ukazom include preletajo med seboj, s čimer se olajša delo in povečuje preglednost. Pri spreminjanju datotek moramo paziti, da ne popravljamo samodejno ustvarjenih datotek.
• Načrt usmerjanja (Dial Plan) določa delovanje sistema pri odhodnih in dohodnih klicih. Usmerjanje lahko definiramo z grafičnim vmesnikom (npr. FreePBX, ki generira ustrezne datoteke), ročnimi vnosi v konfiguracijske datoteke ali z drugim pripomočkom.
• Visual DIalplan in SafiWorkshop sta pripomočka, s katerimi uporabnik s premikanjem in sestavljanjem gradnikov lažje definira želeno delovanje sistema. Navzven podobna programa delujeta popolnoma različno. Rezultat dela z Visual DialPlanom so konfiguracijske datoteke, ki jih naložimo v strežnik z Asteriskom, pri SafiWorkshopu pa naredimo datoteke, ki se izvajajo v strežniku Safi.
• Noben od pripomočkov za konfiguracijo ne nadomesti osnovnih znanj, ki so potrebna za razumevanje mehanizmov delovanja sistema. Poglobljena znanja so potrebna na mejnih področjih (npr. pri povezovanju s podatkovnimi zbirkami), saj je v gradnik treba vnesti specifične parametre, povezane z določeno funkcionalnostjo.
• SafiServer omogoča povezavo z več Asteriskovimi strežniki. Asterisk lahko skrbi le za usmerjanje v strežnik Safi, aplikacije pa se izvajajo v njem, zato moramo paziti na ustrezne strojne zmogljivosti.

Moj mikro, september 2011 | Marko Koblar