Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
ivr:vzdalene_rizeni_pres_web [2019/03/20 14:50] – [web hook - informace o tom, že byl hovor zdvihnut] rootivr:vzdalene_rizeni_pres_web [2026/06/26 12:43] (current) – [Vzdálené řízení IVR přes web] root
Line 1: Line 1:
 ====== Vzdálené řízení IVR přes web ====== ====== Vzdálené řízení IVR přes web ======
  
-Příchozí hovory nyní můžete řídit ímo z Vaší webové aplikace. +Nastavování URL najdete po přihlášení v menu //Nastavení účtu//-> //IVR - hlasové menu// -> //vzdálené řízení es web//
  
-Vaše webová stránka se dozví o příchozím hovoru zavoláním Vašeho URL, které si nastavíte po přihlášení v menu //Nastavení účtu//-> //IVR - hlasové menu// -> //vzdálené řízení přes web// .+Hovor na URL pošlete tak, ždo paralelního zvonění nastavíte směrování na hodnotu ze sloupečku "Telefonní číslo". Tedy na obrázku je to *0071 .
  
-Stačí pak hovor v paralelním zvonění poslat na telefonní číslo *007XX kde XX je číslo URL z rozsahu 1-99. 
  
  
-Příklad možné URL včetně automaticky přidaných parametrů GET:+{{:ivr:ivr_vzdalene_rizeni_pres_web.png?nolink|}}
  
-http://www.mojevlastnidomena.cz/hovor.php?from=00420799799081&to=00420533533005&dtmf=60200&line=300100+{{:ivr:vzdalene_rizeni_pres_web.png?nolink|}}
  
  
 +Všechny příklady níže toho co by mohl vrátit vaše url lze přímo vložit. Odkazy lze zkopírovat přímo z wiki test.txt, test1.txt test2.txt a podobně.
  
-Vaše aplikace se tak dozví, kdo volá (from), kam volá (to), číslo linky Odorik (line), případně i DTMF volbu uživatele. 
-Vaše aplikace na základě těchto informací rozhodne, jak dále bude hovor pokračovat, jednoduše vrátí telefonní číslo pro další směrování hovoru. 
  
 +===== Názorný příklad použití =====
 +Na našem webu si uložíte své URL např. pod číslem 1 - viz obrázek výše.
 +<file>
 +https://www.mojevlastnidomena.cz/hovor.php
 +</file>
 +můžete přidat libovolný parametr, např. //pocet_neplatnych_pokusu// pro vaši potřebu.
 +<file>
 +https://www.mojevlastnidomena.cz/hovor.php?pocet_neplatnych_pokusu=2
 +</file>
 +Dále v paralelním zvonění pošlete hovor na číslo *0071 . V případě příchozího hovoru Odorik nejdříve přečte hlášku dle nastavení, případně si vyžádá DTMF vstup pak zavolá zadané url, kterému přidá informace o hovoru. Tedy volané url může vypadat např. takto:
 +<file>
 +https://www.mojevlastnidomena.cz/hovor.php?from=00420799799081&to=00420533533005&dtmf=60200&line=300100
 +</file>
 +případně
 +<file>
 +https://www.mojevlastnidomena.cz/hovor.php?pocet_neplatnych_pokusu=2&from=00420799799081&to=00420533533005&dtmf=60200&line=300100
 +</file>
  
-Telefonní číslo pro pokračování může být opět ve tvaru *007XX, tedy může to být pokračování interaktivního hlasového menu ovládaná Vaší webovou aplikací. 
- 
-Ono URL vrátí obyčejný text (nikoli HTML). 
  
 +Vaše webová aplikace na volaném URL vyhodnotí zadané parametry a jako odpověď vrátí obyčejný text (nikoli HTML).  
 +Např.
  
  
  
 <file txt test.txt> <file txt test.txt>
 +answer # zvedne hovor
 play:http://www.odorik.cz/w/_media/ivr:hallo.sln play:http://www.odorik.cz/w/_media/ivr:hallo.sln
-#play:https://www.odorik.cz/w/_media/ivr:cink.sln +radky zacinajici znakem # jsou jako poznamky ignorovany 
-#play:http://www.odorik.cz/w/_media/ivr:bzzum.sln +play:https://www.odorik.cz/w/_media/ivr:cink.sln 
-play:5+# play:http://www.odorik.cz/w/_media/ivr:bzzum.sln 
 +play:5
 dial:533533619 dial:533533619
 </file> </file>
 +**answer** : pokud telefonní číslo neumožňuje přehrávání hlášky místo vyzvánění, nebo pokud chceme, aby uživatel zadal nějakou volbu pomocí DTMF, musí jako první hovor zvednout. Pokud hovor jen přesměrujeme jinam, je lepší hovor nezvedat,a by tak volající neplatil za dobu vyzvánění a to i v případě, že se nakonec nedovolá.
  
-komentar,prikaz bude ignorovan+**play**: uri stáhne soubor z uri a přehraje - stáhnuté zvukové soubory cashujeme s využitím If-None-Match: http hlavičky. headrem viz https://tools.ietf.org/html/rfc7232#section-3.2tedy jen vždy zkontrolujeme, že se soubor nezměnil. Pokud se nezměnil, nestahujeme novou kopii. Maximální velikost zvukového souboru je omezena na 2 MB a nesmí se stahovat déle než 5 sekund. V případě nedodržení jedné z těchto podmínek bude voláno na záložní číslo. 
  
-play: uri stahne soubor z uri prehraje+**play**1-999 - přehraje soubor uložený ve `sprava zvukových hlášek`. Pokud si hlášky nevytváříte sami automatizovaně, je asi jednoduší používat hlášky uložené u nás. Snadněji se pak mění spravují v našem webovém rozhraní.
  
-play: 1-999 - prehraje soubor ulozeny ve `zprava zvukovych hlasek`+**play2**uri nebo 1-999, pred prehratim zvedne hovor a hlaska bude moc byt prerusena po zadani libovelneho dtmf. Vybraná DTMF volba se nikam nepřenese, slouží to hlavně proto, aby měl zákazník možnost přerušit dlouhé informační hlášky.
  
-play2uri nebo 1-999, pred prehratim zvedne hovor a hlaska bude moc byt prerusena po zadani libovelneho dtmf.+**playnumber**přečte číslo česky 0-100000 .
  
-Odkazované zvukové soubory pro účely testování existují ímo na naší wiki: {{:ivr:hallo.sln|}} {{:ivr:cink.sln|}} {{:ivr:bzzum.sln|}},+Zvukové soubory jsou ehrávány v pořadí, v jakém jsou zadány. Je možné tak z jednotlivých nahrávek skládat komplikovanější celky, napřčíst různé čísla skládáním z jednotlivých číslic či skládat složitější souvětí.
  
-URL s příkazy výše, které je možné pro otestování zadat je http://www.odorik.cz/w/_export/code/ivr:vzdalene_rizeni_pres_web?codeblock=0+Pro generování zvukových souborů z psaného textu můžete použít naše TTS API: http://www.odorik.cz/w/api:tts
  
-Použít URL s https je také možné, jistější je se ale vyhnout potencionálním problémům s certifikáty v budoucnu a použít jen http.+Odkazované zvukové soubory pro účely testování existují přímo na naší wiki: {{:ivr:hallo.sln|}} {{:ivr:cink.sln|}} {{:ivr:bzzum.sln|}}. Je možné použít i běžné zvukové formátyv tom případě dojde u nás před přehráním k transkódování příkazem sox (viz níže). Pokud nepoužijete http hlavičku If-None-Match, která umožní cashování zvukových souborů u nás, bude to zvyšovat prodlevu před každým přehráním. 
 + 
 +Je možné použít jak URL jak s http tak https.
  
 Jiný příklad, který demonstruje možnost po přehrání hlášek hovor zavěsit. Jiný příklad, který demonstruje možnost po přehrání hlášek hovor zavěsit.
Line 54: Line 73:
 </file> </file>
  
-==== Nepovinný příkaz play práce se zvukovými soubory ====+Poslední příkaz může být kromě **dial** a **hangup** také **url**. Ten říká které url má být zavoláno jako další. Tedy na našem webu stačí mít nastavené jen jediné url zavolané jako první, všechna další url tedy větvení hlasového menu si určí vaše aplikace sama. 
 +Jako get parametry jsou předány potřebné údaje - stejné jako by se jinak zadávaly u nás na webu(hláška, počet dtmf, timeout, ..). Tyto parametry (plus libovolné vaše vlastní parametry) se předají jako get parametry opět vaší aplikaci, navíc se k nim přidají další parametry jako informace o hovoru.  
 +<file txt test2.txt> 
 +play:http://mojedomena.cz/soubor1.mp3 
 +uri:https://mojedomena.cz/ivr3.php?dtmf_count=1&annoucement_id=http://mojedomena.cz/soubor2.mp3&timeout=10&backup_number=&step=1&error_email=chyby@mojedomena.cz 
 +</file> 
 + 
 +Odorik následně zavolá vaši aplikaci na url např. 
 + 
 +<file> 
 +https://mojedomena.cz/ivr3.php?dtmf_count=1&annoucement_id=http://mojedomena.cz/soubor2.mp3&timeout=10&backup_number=&step=1&error_email=chyby@mojedomena.cz&from=00420799799081&to=00420533533005&dtmf=60200&line=300100 
 +</file> 
 + 
 +<file txt test3.txt> 
 +dial:533534660 
 +</file> 
 + 
 +Dial příkaz nemusí být poslední, následující příkazy se uplatní, pokud hovor selže (např. volaný má obsazeno) 
 + 
 +<file txt test3.txt> 
 +dial:*764045 
 +dial:*300100 
 +</file> 
 +==== Možná změna čísla volajícího ==== 
 +Od 22.4.2021 byla přidána možnost změny čísla volajícího na libovolné číslo daného účtu.  
 +Příkaz `setclip`, hodnota může být clip nastavený u linky nebo veřejné číslo, které musí náležet k danému účtu. Je tak možné před volaným skrýt skutečného číslo volajícího, což může být pro některé aplikace žádoucí.  
 +Přitom je možné vytvořit mapování tak, aby spolu mohli libovolně navzájem komunikovat přitom naznali navzájem svá pravá telefonní čísla, ale jen čísla mapovací. 
 + 
 + 
 +==== Časově omezené vyzvánění ==== 
 + 
 +*083*10533533533  - značí, že na číslo 533533533 to bude zvonit maximálně 10 vteřin, pak to bude pokračovat další akcí ve vráceném souboru. 
 + 
 + 
 +Příklad ke změně čísla volajícího i pro časově omezené zvonění: 
 +<file txt test3.txt> 
 +play:http://www.odorik.cz/w/_media/ivr:hallo.sln 
 +setclip:514514719 
 +dial:*083*10533533533 
 +play:http://www.odorik.cz/w/_media/ivr:hallo.sln 
 +dial:533533619 
 +</file> 
 +==== Práce se zvukovými soubory ====
  
-Nově od prosince 2017 podporujemě kromě příkazu dial i příkazy play a hangup.  
-Zvukové soubory jsou stahovány z poskytnutého URL a přehrávány v pořadí, v jakém jsou zadány. Je možné tak z jednotlivých nahrávek skládat komplikovanější celky, 
-např. číst různé čísla skládáním z jednotlivých číslic a pod. 
  
-Maximální velikost zvukového souboru je omezena na 2 MB a nesmí se stahovat déle než 5 sekund. 
-V případě nedodržení jedné z těchto podmínek bude voláno na záložní číslo. 
  
-Optimální je mít soubory ve formátu sln, do kterého si můžete převést libovolný soubor příkazem sox:+Optimální je mít soubory ve formátu sln, který používá naše ústředna. Je to důležité pokud se chcete snížit prodlevu před začátkem přehrávání zvukového soubor a nepoužíváte http hlavičku If-None-Match:, která nám umožní cashování nahrávek u nás v případě, že se nezměnily. 
 +Do formátu sln můžete převést libovolný zvukový soubor linuxovým příkazem sox:
  
 <code bash> <code bash>
Line 92: Line 149:
  
 Hlášky můžete nechat namluvit profesionálem, nebo využít naší služby TTS dostupné přes API. http://www.odorik.cz/w/api:tts Hlášky můžete nechat namluvit profesionálem, nebo využít naší služby TTS dostupné přes API. http://www.odorik.cz/w/api:tts
 +Samozřejmě můžete použít i jiný TTS, třeba ten co nabízí google.
  
  
Line 99: Line 157:
  
  
-Další info o pořizování a převádění zvukových souborů viz: http://wiki.4smart.cz/doku.php/stranky_uzivatelu_4smart:vytvareni_ivr?s[]=sox#jak_prevest_do_formatu_vhodneho_pro_asterisk +Další info o pořizování a převádění zvukových souborů viz:[[:vytvareni_ivr]]
-https://www.youtube.com/embed/t4lSO4R5-h8?hl=cs&fs=1+
  
  
-==== Kam zadat URL s řídícími příkazy? ==== 
  
-Vaše URL s příkazy, které se mají provést, nastavíte zde: 
- 
-Nastavování URL najdete po přihlášení v menu //Nastavení účtu//-> //IVR - hlasové menu// -> //vzdálené řízení přes web// 
- 
- 
-{{:ivr:vzdalene_rizeni_pres_web.png?nolink|}} 
- 
-Otestovat funkčnost příkladu můžete vložením URI přímo na naši wiki např. test.txt  výše: 
- 
-http://www.odorik.cz/w/_export/code/ivr:vzdalene_rizeni_pres_web?codeblock=0 
  
 ==== Příklad použití 1 -  směrování hovorů podle PSČ zákazníka ==== ==== Příklad použití 1 -  směrování hovorů podle PSČ zákazníka ====
Line 120: Line 166:
  
 Zákazník zavolá na Vaši infolinku, je mu přečtena hláška vyzývající k vyťukání poštovního směrovacího čísla. Podle PSČ přečte informaci o nejbližších pobočkách a hovor následně přepojíte na prodejce v dané oblasti. Zákazník zavolá na Vaši infolinku, je mu přečtena hláška vyzývající k vyťukání poštovního směrovacího čísla. Podle PSČ přečte informaci o nejbližších pobočkách a hovor následně přepojíte na prodejce v dané oblasti.
 +Seznam PSČ včetně okresů lze stáhnout odsud. https://www.ceskaposta.cz/ke-stazeni/zakaznicke-vystupy 
 +https://www.ceskaposta.cz/documents/10180/3738087/csv_cobce_psc.zip
 ==== Příklad použití 2 -  informace k čísle objednávky, které zákazník zadá ==== ==== Příklad použití 2 -  informace k čísle objednávky, které zákazník zadá ====
  
Line 137: Line 184:
  
 ==== Příklad použití 5 - informační služby - náhrada čísel 906 XXX XXX běžným číslem, zákazník si předplácí přímo u provozovatele služby ==== ==== Příklad použití 5 - informační služby - náhrada čísel 906 XXX XXX běžným číslem, zákazník si předplácí přímo u provozovatele služby ====
-Lze tak provozovat např. věštírnu, nebo technickou podporu. Spojeny budou jen hovory zákazníků s předplaceným kreditem, z kterého bude strháváno, ostatním bude přečtena hláška o nedostatečném kreditu, nebo nutnosti se registrovat a předplatit. +Lze tak provozovat např. věštírnu, nebo technickou podporu. Spojeny budou jen hovory zákazníků s předplaceným kreditem, z kterého bude strháváno, ostatním bude přečtena hláška o nedostatečném kreditu, nebo nutnosti se registrovat a předplatit. Předplatit může být velmi snadné, obyčejnou okamžitou platbou na účet, kde se jako variabilní symbol použije telefonní číslo, které pak bude službu využívat.  O tom všem je možné informovat v přečtené hlášce
-Hovor je možné přerušit přes API. Provoz je tak výrazně levnější, není nutné vyplácet vysokou provizi mobilním operátorům, protože zákazník platí přímo. Vhodné především pro pravidelné zákazníky.+Poté co kredit dojde, je hovor je možné přerušit přes API. Výhoda je, že náklady na provoz takové služby se blíží nule a není nutné vyplácet vysokou provizi mobilním operátorům (cca polocinu z toho co platí volající) jako při použití čísel 906 XXX XXX , protože zákazník platí přímo poskytovateli služeb.
 ====== web hook - jen informace o existenci příchozího hovoru  ====== ====== web hook - jen informace o existenci příchozího hovoru  ======
 Řízení přes web můžete použít i v případě, že nepotřebujete nic "řídit" (vždy se zavolá stejné číslo), ale jen se Vaše aplikace potřebuje dozvědět o tom, že příchozí hovor přišel, např. proto, aby měla přehled o zmeškaný/vyřízených hovorech.  Nezapomeňte ale pro každou linku zřídit "jiné" url, kde bude použito správné záložní číslo pro případ, že by Vaše webová stránka měla výpadek. Řízení přes web můžete použít i v případě, že nepotřebujete nic "řídit" (vždy se zavolá stejné číslo), ale jen se Vaše aplikace potřebuje dozvědět o tom, že příchozí hovor přišel, např. proto, aby měla přehled o zmeškaný/vyřízených hovorech.  Nezapomeňte ale pro každou linku zřídit "jiné" url, kde bude použito správné záložní číslo pro případ, že by Vaše webová stránka měla výpadek.
  
-====== web hook - informace o tom, že byl hovor zdvihnut  ====== +====== web hook - informace o tom, že hovor začal zvonit a byl zdvihnut  ====== 
-Číslo URL 99 má zvláštní význam, bude voláno vždy, když bude nějaký hovor SIP hovor daného uživatele zdvihnut. Příklad použití. Mám firemní informační systém a chci, aby se telefonistovi, který hovor vyřizuje, otevřelo okno s kartou volajícího zákazníka v okamžiku, kdy hovor zdvihne. Nastavím si tedy URL pod číslem 99, které bude voláno kdykoli, kdy bude zdvihnut hovor na některé z linek tohoto uživatele. Kromě čísla linky v síti Odorik.cz, na které byl hovor přijat, bude předáno i telefonní číslo volajícího. Předáváno je to pomocí GET parametrů. //From// je pro číslo volajícího a //line// je číslo linky, která byla zdvihnutá. +Číslo URL 99 má zvláštní význam, bude voláno vždy, když bude nějaký SIP hovor daného uživatele začne zvonit a bude zdvednut. Příklad použití. Mám firemní informační systém a chci, aby se telefonistovi, který hovor vyřizuje, otevřelo okno s kartou volajícího zákazníka v okamžiku, kdy hovor zdvihne. Nastavím si tedy URL pod číslem 99, které bude voláno kdykoli, kdy bude zdvihnut hovor na některé z linek tohoto uživatele. Kromě čísla linky v síti Odorik.cz, na které byl hovor přijat, bude předáno i telefonní číslo volajícího. Předáváno je to pomocí GET parametrů. //From// je pro číslo volajícího a //line// je číslo linky, která byla zdvihnutá.  
 + 
 +Použít se to dá tak, že volaný bude již v době vyzvánění může automaticky vidět informace o volajícím klientovi - např. historii komunikace a jméno. Jiná jednodužší možnost je si tuhle informaci vyžádat přes API.
  
 Příklad výsledného URL (pod URL 99 je uloženo jen https://neexistuje.cz/test.php, voláno ale bude níže) Příklad výsledného URL (pod URL 99 je uloženo jen https://neexistuje.cz/test.php, voláno ale bude níže)
 <code> <code>
 +ZVONENI
 +https://neexistuje.cz/test.php?from=799799799&line=300100&ringing=yes
 +
 +ANSWER
 https://neexistuje.cz/test.php?from=799799799&line=300100&answered=yes https://neexistuje.cz/test.php?from=799799799&line=300100&answered=yes
 </code> </code>
Line 158: Line 211:
  
 Použit je url s číslem 98 Použit je url s číslem 98
 +
 +====== novinky k 13.10.2020 ======
 +
 +WebHook - info o začátku zvonění 
 +
 +Prepošleme GET parametry zadané ve webovém rozhraní nebo v příkazu uri:.
 +
 +
 +Přidán nový přikaz **uri:**, v, kterém můžete vtátit uri i s parametrama, stejně jako by se vytočilo *007X
 +    Očekávané parametry: backup_number 
 +                         error_email
 +                         dtmf_cout
 +                         annoucement_id
 +                         timeour
 +                         
 +    Uri může přijit s libovolnýma paramatrama, které přepošleme.
 +    Očekávané parametry, které nepřijdou s příkazem uri: budou nahrazeny původnímy z webového rozhraní.
 +    
 +    Parametr **annoucement_id** muže být url na soubor stejně jako u př9kazu play:
 + 
 +   
 +Cachujeme vzdálené audio soubory s If-None-Match: headrem viz [[https://tools.ietf.org/html/rfc7232#section-3.2]], není potřeba při každém volaní soubor stahovat a konvertovat.
 +
 +Nyni muzete libovolne bez omezeni vetvit Vase IVR .........
 +
 
ivr/vzdalene_rizeni_pres_web.1553093446.txt.gz · Last modified: (external edit)