abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 19:00 | Zajímavý projekt

    Na crowdsourcingové platformě Crowd Supply byla spuštěna kampaň na podporu open source biometrického monitoru ve tvaru hodinek HealthyPi Move. Cena je 249 dolarů a plánovaný termín dodání listopad letošního roku.

    Ladislav Hagara | Komentářů: 0
    včera 22:22 | Upozornění Ladislav Hagara | Komentářů: 9
    včera 17:44 | Nová verze

    Firma Murena představila /e/OS verze 2.0. Jde o  alternativní sestavení Androidu bez aplikací Google. Mezi novinkami je podrobnější nastavení ochrany soukromí před sledováním aplikacemi. Murena prodává několik smartphonů s předinstalovaným /e/OS (Fairphone, repasovaný Google Pixel 5).

    Fluttershy, yay! | Komentářů: 0
    včera 14:33 | Zajímavý software

    Do 30. května lze v rámci akce Warhammer Skulls 2024 získat na Steamu zdarma hru Warhammer 40,000: Gladius - Relics of War.

    Ladislav Hagara | Komentářů: 1
    včera 13:33 | Nová verze

    HelenOS (Wikipedie), tj. svobodný operační systém českého původu založený na architektuře mikrojádra, byl vydán ve verzi 0.14.1. Přehled novinek v poznámkách k vydání. Vypíchnou lze nabídku Start. Videopředstavení na YouTube.

    Ladislav Hagara | Komentářů: 2
    23.5. 23:22 | Zajímavý software

    BreadboardOS je firmware pro Raspberry Pi Pico (RP2040) umožňující s tímto MCU komunikovat pomocí řádkového rozhraní (CLI). Využívá FreeRTOS a Microshell.

    Ladislav Hagara | Komentářů: 0
    23.5. 16:55 | Nová verze

    Vývojáři KDE oznámili vydání balíku aplikací KDE Gear 24.05. Přehled novinek i s náhledy a videi v oficiálním oznámení. Do balíku se dostalo 5 nových aplikací: Audex, Accessibility Inspector, Francis, Kalm a Skladnik.

    Ladislav Hagara | Komentářů: 10
    23.5. 12:55 | Nová verze

    Byla vydána (𝕏) nová verze 18.0.0 open source webového aplikačního frameworku Angular (Wikipedie). Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    22.5. 23:44 | Pozvánky

    V neděli 26. května lze navštívit Maker Faire Rychnov nad Kněžnou, festival plný workshopů, interaktivních činností a především nadšených a zvídavých lidí.

    Ladislav Hagara | Komentářů: 0
    22.5. 16:33 | Nová verze

    Byla vydána nová stabilní verze 3.20.0, tj. první z nové řady 3.20, minimalistické linuxové distribuce zaměřené na bezpečnost Alpine Linux (Wikipedie) postavené na standardní knihovně jazyka C musl libc a BusyBoxu. Z novinek lze vypíchnou počáteční podporu 64bitové architektury RISC-V.

    Ladislav Hagara | Komentářů: 0
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (82%)
     (4%)
     (7%)
     (7%)
    Celkem 526 hlasů
     Komentářů: 16, poslední 14.5. 11:05
    Rozcestník

    Asterisk: VoIP ústředna - 3 (schránka, konference)

    7. 3. 2007 | Ondřej Valoušek | Sítě | 19716×

    V předchozím díle tohoto seriálu jsme dokázali naši ústřednu jednoduše nakonfigurovat a ti úspěšní si byli schopni i zavolat. V tomto díle trochu "uhladíme" vytáčecí plán tím, že ošetříme chybové stavy. Funkci ústředny také obohatíme o hlasovou schránku a nastíníme možnosti konferenčního volání.

    Opět ovšem nečekejte žádný vyčerpávající popis všech funkcí, půjde spíše o demonstraci možností Asterisku.

    Chybové stavy

    V této kapitole se zaměříme na funkční ošetření "chybových" stavů, které mohou nastat při přepojování hovorů. Ono to teď sice telefonuje, ale při bližším zkoumání zjistíme, že tomu "cosi" chybí - např. při volání čísla, které není v číslovacím plánu, je hovor bez vysvětlení zavěšen, volaný telefon donekonečna vyzvání, dokud není vyzvednut apod.

    Všechny tyto stavy se ošetřují v hlavním konfiguračním souboru číslovacího plánu - extensions.conf.

    1. Ošetření dostupnosti účastníka

    Příklad si ukážeme na Jardovi:

    exten => 17,1,Dial(SIP/jarda,30)
       ; Wait 30 seconds for the user to come up
    exten => 17,n,Goto(s-${DIALSTATUS},1)
       ; Jump based on status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION
    
    exten => s-NOANSWER,1,Playback(nbdy-avail-to-take-call)
       ; If unavailable
    exten => s-NOANSWER,2,Playback(pls-try-call-later)
    exten => s-NOANSWER,3,Hangup()
    exten => s-BUSY,1,Playback(the-party-you-are-calling)
       ; If busy, play busy announce
    exten => s-BUSY,2,Playback(is-curntly-busy)
    exten => s-BUSY,3,Hangup()
    exten => s-CHANUNAVAIL,1,Playback(pbx-invalid)
    exten => s-CHANUNAVAIL,2,Hangup()

    Myslím, že tento příklad nepotřebuje komentář. Jak vidno, do funkce Dial jsem předal další parametr - timeout. Pokud někdo Jardu zavolá, telefon bude max. 30 sekund vyzvánět. Pomocí příkazu Goto a podmíněným odskokem pak testujeme návratovou hodnotu (${DIALSTATUS}) výše zmiňované funkce tak, že volající je v případě neúúúspěchu příslušně informován (funkcí Playback). Poté je hovor ukončen (Hangup).

    2. Ošetření volání nesprávného čísla

    ; now we handle invalid extensions
    exten => i,1,Playback(pbx-invalid)
    exten => i,n,Hangup()
    
    ; ... and timeouts
    exten => t,1,Playback(vm-goodbye)
    exten => t,n,Hangup()

    Vidíme, že pro jisté chybové stavy Asterisk definuje zvláštní, předdefinované extenze, které zde můžeme s výhodou využít. Faktem však zůstává, že jejich přínos je diskutabilní - spíše se přikláním k názoru je nevyužít, protože:

    • Timeouty je lepší ošetřit přímo ve funkci Dial.
    • Ošetření volání chybného čísla je obvykle lepší nechat na ústředně v implicitním stavu - SIP telefony s tím nemají problém a ukáží varovnou hlášku na displeji; a pokud přijde chybné volání z jiné ústředny, pak dá Asterisk signalizací vědět, že jde o nesprávné číslo. Hovor tak není spojen, takže volající ušetří, a přitom je svou ústřednou o chybě správně informován.

    Hlasová schránka

    Takřka samozřejmou součástí každé moderní telefonní ústředny je i možnost vytvoření hlasové schránky, kam může volající v případě nepřítomnosti nebo zaneprázdněnosti volaného uložit svůj vzkaz. Ani v Asterisku tato funkce nechybí, takže si ukažme příklad její konfigurace.

    1. Voicemail.conf

    Ano tušíte správně, v tomto konfiguračním souboru je možno vytvořit hlasové schránky pro jednotlivé účastníky. Ukažme si příklad:

    [general]
    format=wav|wav49|gsm
    serveremail=root@localhost
    attach=yes
    maxmessage=180
    minmessage=3
    maxgreet=60
    
    [default]
    17 => 123,Jarda Toman,jarda.toman@seznam.cz

    Vidíme, že syntaxe je podobná všem konfiguračním souborům Asterisku. V sekci general je vidět pár společných položek - v jakých formátech je zpráva zaznamenána, mailovou adresu správce, maximální a minimální časy nahrávek atd. Po nahrání hlasové zprávy je volaný o tomto spraven prostřednictvím emailu, ke kterému je tato zpráva přiložena. Pokud navíc telefon disponuje funkcí MWI (indikátor nevyzvednuté zprávy), Asterisk se postará o rozsvícení indikátoru.

    V sekci default už následují definice jednotlivých účastníků ve formátu:

    exten => password,description,email address[,optional]

    Heslo je využito v případě, že si účastník zprávu chce vyzvednout pomocí telefonu - chrání tedy přístup do systému hlasové schránky pro každého účastníka.

    2. extensions.conf

    Určité úpravy jsou nutné i u číslovacího plánu, ale změny jsou jen drobné:

    exten => 17,1,Dial(SIP/jarda,30)
        ; Wait 30 seconds for the user to come up
    exten => 17,n,Goto(s-${DIALSTATUS},1)
        ; Jump based on status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION
       
    exten => s-NOANSWER,1,Voicemail(17,u)
        ; If unavailable, send to voicemail w/ unavail announce
    exten => s-NOANSWER,2,Hangup()
    exten => s-BUSY,1,Playback(the-party-you-are-calling)
        ; If busy, play busy announce
    exten => s-BUSY,2,Playback(is-curntly-busy)
    exten => s-BUSY,3,Hangup()
    exten => s-CHANUNAVAIL,1,Playback(pbx-invalid)
    exten => s-CHANUNAVAIL,2,Hangup()
    
    exten => 50,1,Answer()
    exten => 50,n,VoiceMailMain(${CALLERID(num)}@default)
    exten => 50,n,Hangup()

    V první změně jsem zařídil, že po uplynutí 30s vyzváněcí pauzy (odskok na s-NOANSWER) přejde systém automaticky do hlasové schránky. Druhá změna se týkala nové definice linky 50, kde si účastníci mohou (po zadání hesla) své zpráávy vyzvednout. Tato linka je také vhodná pro další úkony související s hlasovou schránkou (mazání zpráv, nahrání uvítací zprávy, změna hesla, apod). Všimněte si užití funkce CALLERID(num), která vrací číslo volajícího. Funkci VoiceMailMain je samozřejmě možno užít i bez argumentů, pak by ale byl každý účastník kromě hesla dotázán i na číslo své linky, čemuž právě použitím argumentu zabráníme.

    Konference

    Další mocnou zbraní Asterisku je možnost konferenčního volání. Pod pojmem konference zde rozumíme definici jisté extenze (klapky), kam mohou lidé volat a slyší se pak navzájem. V tomto případě je tedy volaným přímo ústředna Asterisk, která hovory přijímá, mixuje a odesílá zpět.

    1. meetme.conf

    V tomto souboru se definují jednotlivé konferenční "místnosti".

    [rooms]
    ;
    ; Usage is conf => confno[,pin][,adminpin]
    ;
    conf => 1,2468

    Vidíme, že syntaxe je velmi jednoduchá - vytvořil jsem místnost s číslem 1 chráněnou PINem. Tuto místnost pak můžeme použít v číslovacím plánu takto:

    2. extensions.conf

    exten => 02,1,MeetMe(1)
    exten => 03,1,MeetMe(2,DpMIx)

    Vidíme, že z číslovacího plánu konferenci aktivujeme pomocí funkce MeetMe. V prvním případě jsem obsadil klapku 02, která volajícího spojí (po zadání správného PINu) s místností 1 (jak jsem ji definoval v konfiguračním souboru meetme.conf).

    Ve druhém, zajímavějším, případě (jediný, který u nás provozuji) spojuji klapku 03 s neexistující místností 2 - přepínač D mi zajistí její dynamické vytvoření a přiřazení PINu prvním volajícím (přepínač p). Pokud je v konferenci pouze jediný volající, přepínač M zajistí přehrávání muziky na pozadí (music on hold, viz musiconhold.conf) a připojení/odpojení každého účastníka je automaticky ohlášeno - přepínač I.

    Přepínačů k funkci MeetMe je samozřejmě daleko více - opět doporučuji si prostudovat manuál, pokud vás tato funkce zaujala.

    Poznámka:

    Za zmínku také stojí, že se funkce MeetMe dočkala v poslední době docela zajímavého rozvoje - např. rozdíly v její konfigurovatelnosti ve verzi 2.4 a 4.0 jsou při pohledu do zdrojového kódu dosti značné, takže pokud ji chcete využít naplno, koukněte se raději přímo do zdrojového kódu svého Asterisku. Jedním dechem ale musím bohužel dodat, že jinak naprosto stabilní Asterisk dokáže tato funkce za jistých "záhadných" podmínek spolehlivě sestřelit - obvykle na konci konferenčního volání.

    To se mi ale stalo za dobu funkce naší ústředny (1 rok) jen dvakrát a to konferenční hovory docela intenzivně využíváme.

    Závěr

    V příštím, a pravděpodobně i posledním, díle konečně ústřednu připojíme k veřejné síti PSTN a zbyde-li místo, pak ukážeme i výhody použití maker v číslovacím plánu.

           

    Hodnocení: 100 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    7.3.2007 11:58 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Cislo hlasove schranky
    Rad bych upozornil, ze cisla hlasovych schranek urcene ve voicmail.conf jsou nezavisla na cislech telefonu (extensions) v sip.conf a extensions.conf.

    Toho lze vyuzit, chceme-li mit virtualni hlasove schranky, tj. schranky, ke kterym neexistuje telefonni pristroj.

    Naopak proto si musime dat pozor, abysme spravne sparovali obe cisla, pozadujemeli striktni par telefon-schranka.

    Co se tyce MWI, cislo schranky, kterou bude MWI subsystem prohledavat a oznamovat, musi (? aspon mysli, ze to bylo treba) byt uvedeno v sip.conf volbou mailbox. (Jinak by hrozilo, ze se zly telefonista dozvi, kolik novych a starych zprav ma jiny telefonista.) Zrovna tak je mozne takto povolit odebirani upozorneni z vice schranek jednomu telefonnimu cislu.
    7.3.2007 14:24 Ondar | skóre: 25 | blog: Linux_blog
    Rozbalit Rozbalit vše Re: Cislo hlasove schranky
    Dík za tuto poznámku - důležitý fakt, že čísla schránek a telefonu nejsou automaticky spárována je opoměl zmínit. Také ovládání MWI mi nebylo nikdy úplně jasné (prostě mi to vždy fungovalo jak jsem předpokládal :-) ), takže dík i za toto vysvětlení
    7.3.2007 13:23 kokoska.rokoska
    Rozbalit Rozbalit vše Re: Asterisk: VoIP ústředna - 3 (schránka, konference)
    Zdravim vespolek!
    Rad bych upozornil, ze se vloudila chybicka do kodu u "timeoutu" a "neplatneho cisla linky" - Ma to byt naopak:
    i = invalid
    t = timeout

    A mozna by jeste stalo za to dodat, ze pro fungovani konferenci (Meetme) je nezbytne nutny funkcni casovac.
    Bud pridavna karta s vlastnimi hodinami nebo "virtualni" SW casovac ztdummy.

    Hezky den!

    kokoska.rokoska
    7.3.2007 14:37 Ondar | skóre: 25 | blog: Linux_blog
    Rozbalit Rozbalit vše Re: Asterisk: VoIP ústředna - 3 (schránka, konference)
    Dík za opravu - a ano, k MeetMe skutečně potřebujete časovač - buď nějakou kartu (jakoukoli) Digium nebo ztdummy
    7.3.2007 19:18 Robert Krátký | skóre: 94 | blog: Robertův bloček
    Rozbalit Rozbalit vše Re: Asterisk: VoIP ústředna - 3 (schránka, konference)
    Opraveno.
    Ondřej Kuda avatar 7.3.2007 13:53 Ondřej Kuda | skóre: 27 | blog: obcasny_blog
    Rozbalit Rozbalit vše Re: Asterisk: VoIP ústředna - 3 (schránka, konference)
    Existuje nejake GNU rozsireni pro Asterisk video konference?
    7.3.2007 14:44 Ondar | skóre: 25 | blog: Linux_blog
    Rozbalit Rozbalit vše Re: Asterisk: VoIP ústředna - 3 (schránka, konference)
    Pokud mám informace, tak na podpoře videa (nejen konference) se pracuje už v samotném Asterisku. Základní podporu má Asterisk 1.4 (umí komunikovat s videotelefonem s tím, že video vynechává). Lepší podporu lze očekávat až ve verzi 1.6
    9.3.2007 13:13 pj
    Rozbalit Rozbalit vše Re: Asterisk: VoIP ústředna - 3 (schránka, konference)
    podle me video v 1.4 mezi dvema telefony pojede, za predpokladu, ze nebude treba transkodovani, tj. telefony musi mit stejne parametry vide, kodek rozliseni atd...
    7.3.2007 18:50 johny
    Rozbalit Rozbalit vše Re: Asterisk: VoIP ústředna - 3 (schránka, konference)
    mam problem s meetme. presiel som niekolko examplov a kus dokumentacie, ale stale sa nemozem dostat do nijakej miestnosti, koncim s nahovorenou hlaskou: "That is not a valid conference number, please try again"
    8.3.2007 09:22 Prochazka
    Rozbalit Rozbalit vše Re: Asterisk: VoIP ústředna - 3 (schránka, konference)
    super clanek.Kdy planujete to dorazit?? Uz se nemuzu dockat.Zatim postupuji podle Vas a vse OK. Jeste jednou diky a honem sem hodte dalsi :)
    8.3.2007 11:38 Ondar | skóre: 25 | blog: Linux_blog
    Rozbalit Rozbalit vše Re: Asterisk: VoIP ústředna - 3 (schránka, konference)
    Děkuji za slova chvály :-) Na poslední díl si bohužel budete muset pár týdnů počkat - potřebuji ještě otestovat nějaký hardware aby byl kompletní.
    13.3.2007 13:42 Karel Joch
    Rozbalit Rozbalit vše Re: Asterisk: VoIP ústředna - 3 (schránka, konference)
    prosim jak presne funguje prikaz playback.Ve Vašem článku tento příkaz máte uvedený a bohužel nechápu zda uživatel který nebyl přítomen bude volat zpět uživateli který volal.Nebo zda se má volající uživatel pokusit zavolat později.Děkuji
    14.3.2007 16:13 Ondar | skóre: 25 | blog: Linux_blog
    Rozbalit Rozbalit vše Re: Asterisk: VoIP ústředna - 3 (schránka, konference)
    Playback volajicimu prehraje zvoleny zvukovy zaznam - zde jsem pouzil jeden ze standartnich samplu se kterymi je samotny astersik dodavan.
    26.3.2007 18:00 Bomr
    Rozbalit Rozbalit vše Re: Asterisk: VoIP ústředna - 3 (schránka, konference)
    potreboval bych si neco ujasnit ohledne protokolu RTP. je to prosim takhle?? RTP prenasi vlastni multimedialni data SIP a H.323 se stara o vsechnu administrativu Diky za odpoved
    29.3.2007 07:27 Wendy
    Rozbalit Rozbalit vše GUI v ASTERISK
    GUI rozhraní je integrováno i v ASTERISKu 1.4, nebo pouze v ASTERISKNOW?
    31.3.2007 16:48 Wendy
    Rozbalit Rozbalit vše GUI v ASTERISK
    Halo v clanku je toto:

    Dobrou zprávou je, že nejnovější verze Asterisku (1.4) obsahuje GUI rozhraní založené na vestavěném web serveru, které vám pomůže Asterisk nakonfigurovat i bez detailních znalostí jeho architektury. Je ovšem nutno poznamenat, že tato schopnost je v Asterisku úplně nová (a tudíž také ne dostatečně odladěná), takže bych na ni příliš nespoléhal (já to ani nezkoušel, ale rád si přečtu zkušenosti čtenářů).

    Uz nekdo zkusil to GUI rozhrani spustit? Jak na to? Nejak sem to v Asterisku 1.4 nenasel...

    Je to tam, nebo neni?
    2.4.2007 17:41 Wendy
    Rozbalit Rozbalit vše kompletni extensions.conf
    Prosím, dejte sem někdo kompletní extensions.conf pro všechny tři uživatele. Z toho co je v příkladu nevím, co má být v extensions.conf třikrát a co pouze jednou. Je to tam nějak divně, v předchozích dílech bylo vše naznačeno pro Jardu, Tomáše a Jirku. Najednou 2 kluci bez vomluvy zmizeli a já z toho mám hlavu v pejru. Prosím autora, pokud tento článek myslíte jako návod pro začátečníky, uvádějte příklady úplné a polopatické. A ještě prosím opravujte chyby na které Vás upozorní. Například při použití userid se mi na telefonu nezobrazovalo kdo mi volá. Musel jsem to zaměnit za callerid. No a když někdo napíše - bez ztdummy nefunguje konference a vy mu to odsouhlasíte, tak by se asi také hodilo buď z článku návod na konferenci vyřadit, nebo to zaktualizovat o návod jak zprovoznit ztdummy... Nyní je to tak, že některé věci jsou opravené a některé ne. No ale abych to shrnul: těším se na další pokračování. Díky.
    1.7.2007 18:04 Marek
    Rozbalit Rozbalit vše Re: Asterisk: VoIP ústředna - 3 (schránka, konference)
    Bude tento serial este pokracovat? Chcem pripojit Asterisk k ISDN linke a v dalsom diely by toto mohlo byt...
    21.8.2007 18:50 Fibi
    Rozbalit Rozbalit vše Re: Asterisk: VoIP ústředna - 3 (schránka, konference)
    Ahoj, tak jsem diky tvemu navodu rozchodil asterisk a jsem velice rad, ze jeste existuji lide, kteri dokazou takhle pekne veci vysvetlit.... Ale ted k problemu:

    Nastavil jsem dle navodu 4 tel. cisla a ke kazdemu zvlast hlasovou schranku.

    Po zavolani jakehokoli cisla mi ale zpravy padaji do prvni hlasove schranky :-(

    Muzes mi prosim poradit, kde je chyba??? Diky za jakoukoli radu

    ; Uzivatel exten => 1101,1,Dial(SIP/1101,30) ; Wait 30 seconds for the user to come up exten => 1101,n,Goto(s-${DIALSTATUS},1) ; Jump based on status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION exten => s-NOANSWER,1,Voicemail(1101,u) ; If unavailable, send to voicemail w/ unavail announce exten => s-NOANSWER,2,Hangup() exten => s-BUSY,1,Playback(the-party-you-are-calling) ; If busy, play busy announce exten => s-BUSY,2,Playback(is-curntly-busy) exten => s-BUSY,3,Hangup() exten => s-CHANUNAVAIL,1,Playback(pbx-invalid) exten => s-CHANUNAVAIL,2,Hangup()

    ; Uzivatel exten => 1102,1,Dial(SIP/1102,30) ; Wait 30 seconds for the user to come up exten => 1102,n,Goto(s-${DIALSTATUS},1) ; Jump based on status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION exten => s-NOANSWER,1,Voicemail(1102,u) ; If unavailable, send to voicemail w/ unavail announce exten => s-NOANSWER,2,Hangup() exten => s-BUSY,1,Playback(the-party-you-are-calling) ; If busy, play busy announce exten => s-BUSY,2,Playback(is-curntly-busy) exten => s-BUSY,3,Hangup() exten => s-CHANUNAVAIL,1,Playback(pbx-invalid) exten => s-CHANUNAVAIL,2,Hangup()
    20.12.2008 16:37 Martini
    Rozbalit Rozbalit vše Re: Asterisk: VoIP ústředna - 3 (schránka, konference)
    Prosím, potřebuji rozchodit konferenci pro 5 účastníku. Konferenci jsem nastavil podle zdejšího konferenčního souboru. Ovšem při vytočení klapky se ozve "That is not a valid conference number, please try again" docetl jsem se zde v diskuzich ze je potreba naistalovat ztdummy,ale uz neni uvadeno jakym zpusobem. Dekuji za jakokoilv radu.

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.