Cílem je rozšířit současný systém doručování nahrávek hovorů o doručování přes Telegram.
Současná politika doručování zůstává zachovaná: zákazník si v nastavení určuje cíle doručení a systém po dokončeném doručení nahrávku smaže podle pravidel rozesílacího skriptu.
Telegram nebude fungovat jako e-mailová adresa. Zákazník si musí Telegram cíl nejdříve jednorázově spárovat přes našeho Telegram bota. Výsledkem spárování bude uložené Telegram chat_id v databázi.
Do stávajícího pole pro doručování nahrávek se potom bude moci přidat interní URI ve tvaru tel://300169.
Číslo 300169 znamená linku, u které byl Telegram cíl vytvořen. Toto URI není veřejná Telegram adresa, ale interní odkaz na uložený Telegram cíl zákazníka.
Příklad použití:
Telegram cíl může být soukromý chat nebo skupina. Zákazník si při párování zvolí, kam bota připojí. Rozesílací skript později už nemusí řešit, zda jde o soukromý chat nebo skupinu, protože používá pouze uložený chat_id.
Je potřeba vytvořit samostatného Telegram bota pro doručování nahrávek hovorů zákazníkům.
Navržený název bota: @OdorikCallRecordingsBot
Bot má sloužit pouze pro zákaznické doručování nahrávek. Neměl by být míchán s interními monitoring boty ani s jinými účely.
Bot bude používaný pro dvě věci:
Token bota musí být uložen bezpečně a nesmí se zapisovat do běžných logů.
future code
Do současného systému doručování se přidá nový typ cíle: tel://300169.
Význam:
Vyhledávání tel://300169 musí být omezené na stejného zákazníka. Nesmí se hledat globálně jen podle čísla linky.
Praktický příklad:
Tím zákazník nemusí párovat stejný Telegram chat znovu pro každou svoji linku.
future code
Web při kliknutí na připojení Telegramu vygeneruje jednorázový párovací token.
Token bude použit v odkazu na Telegram bota a bude určovat, ke kterému zákazníkovi a ke které lince se má příchozí Telegram chat_id uložit.
Tabulka má sloužit pouze pro dočasné párování.
Potřebné údaje:
Požadavky na token:
Token nesmí být trvalý identifikátor Telegram cíle.
future code
Telegram cíl má být samostatný doručovací cíl zákazníka.
Nemá jít jen o přímou vazbu linka → chat_id, protože jeden Telegram cíl může zákazník chtít použít u více svých linek.
Telegram cíl se vytvoří u konkrétní linky. Tato linka potom slouží jako alias pro použití v URI tel://.
Potřebné údaje:
Pravidlo:
Tím platí, že každá linka může mít maximálně jeden vlastní Telegram cíl, ale zároveň jiné linky stejného zákazníka mohou tento cíl použít.
future code
Serverová část bude přijímat příchozí zprávy od Telegramu.
Produkčně má smysl použít webhook. Telegram při kliknutí zákazníka na párovací odkaz pošle našemu serveru update s informací o chatu a zprávě.
Serverová část musí umět zpracovat hlavně příkaz /start TOKEN.
Zpracování:
Příklad potvrzovací zprávy:
Odorik: Telegram cíl byl připojen k lince 300169. Pro použití u dalších linek použijte tel://300169.
future code
U linky bude možnost připojit Telegram cíl pro nahrávky.
Na webu mají být dvě volby:
Podle volby se vygeneruje odkaz na Telegram bota.
Pro soukromý účet se použije varianta start.
Pro skupinu se použije varianta startgroup.
Zákazník si tím sám určí, jestli chce nahrávky dostávat do soukromého chatu nebo do skupiny.
Po kliknutí se otevře Telegram a zákazník provede spárování. Po úspěšném spárování se v systému uloží chat_id.
future code
Po úspěšném spárování se má u linky zobrazit stav Telegram cíle.
Zobrazení má obsahovat:
Doporučené akce:
Chat_id není nutné běžně ukazovat zákazníkovi. Pro zákazníka je důležité hlavně tel://300169 a srozumitelný popis cíle.
future code
Pokud má zákazník více linek, nemusí připojovat Telegram znovu u každé linky.
Stačí, aby u další linky použil existující interní URI.
Příklad:
Web může zákazníkovi nabídnout seznam jeho existujících Telegram cílů, aby nemusel URI opisovat ručně.
future code
Stávající pole pro cíle doručení zůstane zachované.
Nově se musí rozpoznat položky začínající na tel://.
Rozesílací skript musí u každé položky rozpoznat typ cíle a pro tel:// spustit Telegram transport.
Pro tel://300169 musí rozesílací skript udělat:
Pokud Telegram cíl neexistuje nebo není aktivní, doručení na tento cíl se musí považovat za neúspěšné.
future code
Telegram transport bude další doručovací metoda vedle současných metod.
Musí umět:
Doporučený obsah zprávy:
Konkrétní dostupná metadata z aktuálního rozesílacího skriptu:
NELZE URČIT – CHYBÍ DATA
future code
Pro Telegram musí platit, že soubor se nesmí smazat před úspěšným odesláním nahrávky.
Pokud je v poli pro doručení více cílů, je potřeba jasně definovat, kdy se soubor smaže.
Doporučené pravidlo:
Jak přesně dnes mazání funguje v produkčním skriptu:
NELZE URČIT – CHYBÍ DATA
future code
Je potřeba ošetřit hlavní chybové stavy.
Příklady chyb:
Doporučené chování:
future code
Je potřeba definovat, co se stane, když nahrávku nebude možné přes Telegram odeslat kvůli velikosti souboru.
Doporučené pravidlo pro první verzi:
Možné budoucí varianty:
Konkrétní limit a zvolený fallback pro produkci:
NELZE URČIT – CHYBÍ DATA
future code
Na webu u Telegram cíle má být možnost poslat testovací zprávu.
Testovací zpráva ověří:
Příklad testovací zprávy:
Odorik: testovací zpráva pro Telegram cíl linky 300169. Tento cíl lze použít jako tel://300169.
future code
Na webu musí být možnost Telegram cíl odpojit.
Je potřeba rozlišit:
Pokud Telegram cíl používá více linek, při smazání je potřeba zobrazit varování.
Příklad varování:
Tento Telegram cíl používá více linek. Smazáním cíle přestanou chodit nahrávky ze všech linek, které používají odpovídající URI.
future code
Je vhodné logovat stav doručení pro každý jednotlivý cíl.
Doporučené údaje:
Do běžných logů se nesmí zapisovat:
future code
Základní bezpečnostní pravidla:
Telegram skupina je z pohledu systému jen jeden doručovací cíl. Pokud zákazník chce, aby nahrávky vidělo více lidí, může si je přidat do své Telegram skupiny.
future code
Současné doručování musí zůstat zachované.
Telegram se přidá pouze jako další typ cíle.
Stávající cíle se nemají měnit. Nově přibude pouze rozpoznání tel://.
Výsledné chování:
future code
První verze musí obsahovat:
Princip:
future code