Nápověda

Příjem hovorů z ústředny

Když dispečerovi zazvoní telefon, ukáže mu aplikace okénko se jménem volajícího, jeho adresami a posledními jízdami — a novou jízdu z něj založí na jedno kliknutí. Nemusí se ptát „kdo volá" a hledat člověka v seznamu.

Tahle stránka popisuje, jak si propojení zapojíte. Zvládne to správce firmy sám, bez nás. Zabere to pár minut, pokud máte, čím na nás zavolat — a to je jediná podmínka, kterou si vyjasněme hned.

Nejdřív to hlavní: co k tomu potřebujete

Aplikace se nedozví, že vám zvoní telefon, sama od sebe. Musí jí to někdo říct. Potřebujete proto telefonní ústřednu nebo VoIP operátora, který umí při příchozím hovoru zavolat na internetovou adresu — tomu se říká webhook.

Umí to například:

  • Asterisk a nadstavby jako FreePBX či Issabel,
  • 3CX,
  • řada VoIP operátorů, kteří nabízejí „webhook", „HTTP notifikaci"

nebo „callback URL" u příchozích hovorů.

S obyčejným mobilem to nejde. Mobil nemá komu dát vědět, že zvoní. Totéž platí pro pevnou linku zapojenou přímo do telefonu. Pokud objednávky berete na mobil, tahle funkce vám bohužel nepomůže — a je lepší to vědět teď než po hodině hledání v nastavení.

Nevíte, co máte? Zeptejte se toho, kdo vám telefony spravuje, nebo svého operátora: „Umí naše ústředna při příchozím hovoru poslat HTTP požadavek (webhook) na zadanou adresu?" Odpověď ano/ne rozhodne.

Krok 1: Vygenerujte si heslo

V aplikaci otevřete Telefonie (v horním menu, vidí ji jen správce firmy) a klikněte na Vygenerovat heslo.

Heslo se ukáže jen jednou. Opište si ho hned — v databázi z něj zůstane jen otisk, takže ho podruhé nezobrazíme ani my. Kdybyste ho ztratili, prostě si vygenerujete nové (a přepíšete ho v ústředně).

K čemu je: aby k vám hovory nemohl posílat nikdo cizí. Adresa je veřejná, heslo je to, co ji chrání.

Krok 2: Zapište údaje do ústředny

Aplikace vám na téže obrazovce ukáže dvě adresy — jednu pro začátek hovoru, druhou pro jeho konec. Vypadají takhle (<váš-klíč> bude konkrétní řetězec):

POST https://mujdispecink.cz/api/telephony/<váš-klíč>/incoming-call
POST https://mujdispecink.cz/api/telephony/<váš-klíč>/call-ended

Ke každému požadavku patří:

  • hlavička X-Telephony-Secret: <vaše heslo z kroku 1>
  • hlavička Content-Type: application/json
  • tělo ve tvaru JSON:
{ "number": "+420777123456", "line": "hlavni" }

number je číslo volajícího; může přijít v jakémkoli běžném tvaru (+420777123456, 777123456, 777 123 456) — aplikace si ho převede sama. line je nepovinné a slouží jen jako poznámka, ze které linky hovor přišel.

Konec hovoru (call-ended) je taky nepovinný. Bez něj všechno funguje, jen se u hovoru nezaznamená, kdy skončil.

Adresu i heslo dejte tomu, kdo vám spravuje telefony. Nemusí mít přístup do aplikace — stačí mu tyhle dva údaje.

Ukázka: Asterisk / FreePBX

V dialplanu (extensions.conf) do kontextu příchozích hovorů přidejte volání curl na začátku:

exten => _X.,1,NoOp(Prichozi hovor od ${CALLERID(num)})
 same => n,System(curl -s -m 3 -X POST \
   -H "Content-Type: application/json" \
   -H "X-Telephony-Secret: VASE_HESLO" \
   -d "{\"number\":\"${CALLERID(num)}\",\"line\":\"hlavni\"}" \
   https://mujdispecink.cz/api/telephony/VAS_KLIC/incoming-call)
 same => n,Dial(SIP/dispecink,30)
 same => n,System(curl -s -m 3 -X POST \
   -H "Content-Type: application/json" \
   -H "X-Telephony-Secret: VASE_HESLO" \
   -d "{\"number\":\"${CALLERID(num)}\"}" \
   https://mujdispecink.cz/api/telephony/VAS_KLIC/call-ended)
 same => n,Hangup()

Ve FreePBX totéž patří do Admin → Config Edit → extensions_custom.conf, nebo se dá použít modul, který umí spustit příkaz při příchozím hovoru.

Dvě věci, na které si dát pozor:

  • -m 3 (timeout 3 vteřiny) tam nechte. Kdyby náš server neodpovídal,

nesmí to zdržet vyzvánění.

  • System() běží synchronně. Když vám vadí i ta chvilka, použijte

TrySystem() nebo pošlete požadavek na pozadí (curl … &).

Ukázka: 3CX

3CX má Settings → CRM Integration (v novějších verzích Admin → Integrations). Vytvořte vlastní šablonu s HTTP požadavkem:

  • URL: https://mujdispecink.cz/api/telephony/VAS_KLIC/incoming-call
  • Metoda: POST
  • Hlavičky: X-Telephony-Secret: VASE_HESLO,

Content-Type: application/json

  • Tělo: {"number":"[Number]","line":"3CX"}

Zástupný symbol pro číslo volajícího se ve 3CX píše jako [Number]; v některých verzích %CallerNumber%. Který tvar platí u vás, poznáte v nápovědě k té konkrétní verzi.

Jiná ústředna nebo operátor

Postačí cokoli, co umí odeslat HTTP POST s vlastní hlavičkou. Předejte svému technikovi tři věci: adresu, hlavičku s heslem a tvar těla z kroku 2 — víc k tomu není potřeba.

Krok 3: Zapněte příjem hovorů

Zpátky v aplikaci na obrazovce Telefonie klikněte na Zapnout. Dokud je vypnutý, hovory se odmítají — i s platným heslem. Je to pojistka, abyste si mohli nastavení v klidu připravit a spustit ho, až budete chtít.

Krok 4: Vyzkoušejte, že to funguje

Jsou to dvě různé zkoušky a obě mají smysl:

  1. Zkušební hovor v aplikaci — tlačítko Zkusit hovor ukáže

dispečerům okénko, jako by někdo opravdu volal. Ověří, že se panel zobrazuje a že se zákazník najde podle čísla.

  1. Skutečný hovor — zavolejte na své číslo z jiného telefonu. Na

obrazovce Telefonie se pak dole objeví poslední přijatý hovor. Tím se pozná, že vaše ústředna doopravdy volá k nám.

Když se druhá zkouška neozve, hledejte chybu na straně ústředny — nejčastěji je to překlep v adrese, chybějící hlavička s heslem, nebo firewall, který ven na HTTPS nepustí.

Když je potřeba něco změnit

  • Vyměnili jste ústřednu nebo heslo někam uniklo: vygenerujte nové

heslo. Staré tím okamžitě přestane platit. Adresa zůstává stejná, takže v ústředně měníte jen heslo.

  • Chcete propojení dočasně vypnout: stačí tlačítko Vypnout, nic se

nemaže.

  • Končíte s ním úplně: Zneplatnit heslo a vypnout.

Na co se nás lidé ptají

Uvidí dispečer telefonní číslo i u neznámého volajícího? Ano — okénko se ukáže vždycky. U neznámého čísla jen nebude jméno a nabídne se založení nového zákazníka.

Nahráváte hovory? Ne. Neukládá se ani obsah, ani zvuk. Zaznamenává se jen to, kdy hovor přišel, z jakého čísla, kdo ho v aplikaci obsloužil a jestli z něj vznikla jízda.

Jak dlouho záznamy zůstávají? Devadesát dní, pak se samy smažou.

Musí být kvůli tomu něco zvlášť ve smlouvě? Telefonní číslo volajícího je osobní údaj a zpracovává se podle zpracovatelské smlouvy, kterou máte uzavřenou. Nic navíc podepisovat nemusíte.

Zvládne to víc firem najednou? Ano. Každá firma má vlastní klíč i heslo a hovory se nikdy nemíchají.

Pořád si nevíte rady? Napište nám — poradíme, i když jde o nastavení na vaší straně.