Byla vydána Java 27 / JDK 27. Nových vlastností (JEP - JDK Enhancement Proposal) je 9.
Byl vydán Mozilla Firefox 156.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Vestavěný prohlížeč PDF se nyní spouští o 45 % rychleji. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 156 bude brzy k dispozici také na Flathubu a Snapcraftu.
Článek na Raspberry Pi představuje nový vzhled desktopu operačního systému Raspberry Pi OS v aktuálním vydání 2026-09-15.
Nové verze Roundcube Webmailu 1.6.19 a 1.7.4 řeší několik zranitelností.
Na Kickstarteru běží kampaň na podporu hloupého (jenom volání a SMS) tlačítkového DIY telefonu MAKERphone 2.0 od společnosti CircuitMess postaveného na ESP32-S3 a volitelně také s hodinkami MAKERband. S možností psaní vlastních aplikací. S volitelnými HW rozšiřujícími moduly.
Byla vydána nová verze 10.7 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Přibyly balíčky HomeBox a Scrypted.
OpenRGB (GitLab) dospěl do verze 1.0 (YouTube). OpenRGB (dříve OpenAuraSDK) je svobodný multiplatformní software umožňující nastavení podsvícení celé řady různých „herních“ komponent a periferií.
Dnes startuje prodej headsetu Steam Frame. Počínaje dneškem se tedy můžete zapsat na seznam pro jeden z následujících modelů: Steam Frame 256 GB za 1 049 EUR a Steam Frame 1 TB za 1 279 EUR.
Vládní CERT upozorňuje na kritickou zranitelnost v GitLab Community Edition (CE) a Enterprise Edition (EE). Zranitelnost CVE-2026-85706 typu path traversal v Repository Commits API dosahuje skóre CVSS 10.0. Kvůli nedostatečnému omezení cest a chybějícímu vynucení autentizace může za určitých podmínek neautentizovaný útočník číst libovolné soubory ze serveru GitLab, a získat tak přístup k citlivým datům a konfiguraci instance.
Linux může běžet nativně na ESP32-S3 – bez emulace a rovnou s 9,7″ e-paperem.
Opět ovšem nečekejte žádný vyčerpávající popis všech funkcí, půjde spíše o demonstraci možností Asterisku.
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.
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).
; 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:
Dial.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.
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.
extensions.confUrč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.
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.
meetme.confV 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:
extensions.confexten => 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.
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.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
), takže dík i za toto vysvětlení
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í.
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()