FreePBX
FreePBX je bezplatný software telefonní systém, který umožňuje spravovat hovory ve společnosti.
Funkce
- Telefonování přes internet: využívá technologii VoIP, umožňuje hovory přes internet místo běžné telefonní sítě.
- Automatické rozdělování hovorů: pomáhá automaticky směrovat příchozí hovory na správná čísla nebo oddělení ve firmě.
- Interaktivní hlasová nabídka (IVR): můžete nastavit interaktivní hlasová menu, aby volající zvolil příslušné oddělení pomocí kláves.
- Hlasová schránka: pokud nikdo nemůže hovor zvednout, FreePBX může nahrát hlasovou zprávu, kterou lze později přehrát.
- Konferenční hovory: můžete organizovat konferenční hovory, aby se jich mohlo účastnit více osob současně.
- Nahrávání hovorů: můžete nahrávat telefonní rozhovory pro pozdější poslech nebo analýzu.
- Integrace s jinými systémy: FreePBX lze integrovat s různými CRM, včetně Planfix.
Připojení
FreePBX k Planfixu můžete připojit dvěma způsoby:
Vezměte prosím na vědomí, že tým Planfixu neprovádí konfiguraci Asterisku na straně zákazníka a neposkytuje konzultace týkající se těchto záležitostí.
Planfix API pro telefony
- Pomocí této metody můžete do Planfixu pouze přijímat události hovorů, tj. když dojde k hovoru, v kartě aktivních úkolů Planfixu se objeví karta hovoru.
- Z Planfixu nelze hovory volat.
- Pro získání nahrávek hovorů je navíc třeba nakonfigurovat apache/nginx (krok 5).
Krok 1
Na serveru upravte /etc/asterisk/extensions_override_freepbx.conf (ukázkový soubor) tak, aby obsahoval následující 3 contexty:
- [macro-dialout-one-predial-hook]
- [macro-dialout-trunk-predial-hook]
- [macro-hangupcall]
Pro [macro-hangupcall] nemusí být přesná forma povinně stejná jako v příkladu.
Najděte context [macro-hangupcall] v extensions_additional.conf — zkopírujte ho — a přidejte následující řádek na úplný začátek:
exten => s,1,Macro(hangupcall-send-post)
Krok 2
Zkopírujte všechny contexty z příkladu do extension_custom.conf. Lze to provést i přes rozhraní FreePBX.
Krok 3
Přidejte 3 řádky do globals_custom.conf a nahraďte {…} příslušnými hodnotami:
- PBX_URL = {…} — URL vaší PBX
- PF_URL = {…} — adresa pro přijímání požadavků
- PF_KEY = {…} — autorizační token Planfixu
Krok 4
- V Planfixu přejděte do Správa účtu — Integrace — Virtual PBXs — Planfix API for telephony.
- Vyplňte adresu PBX, aby Planfix věděl, že má akceptovat události přicházející z této stránky nebo adresy.
Krok 5
Pro získávání nahrávek je třeba učinit je přístupné zvenčí přes webový server. Pokud použijete Apache (součást FreePBX), přidejte odkaz na složku s nahrávkami. Složka musí mít správného vlastníka, skupinu a práva — 775.
- Vytvoření odkazu:
ln -s /var/spool/asterisk/monitor /var/www/html/monitor
- Úprava oprávnění a vlastníka:
chmod -R 775 /var/www/html/monitor/chown -R asterisk:asterisk /var/www/html/monitor/
Pokud používáte sestavení bez Apache — nakonfigurujte obdobné nastavení pro váš webový server.
Integrace FreePBX
(FreePBX 16+ / Asterisk 18+)
Než začnete, vložte do svého souboru s vlastními nastaveními extensions_override_freepbx.conf následující:
[macro-dialout-trunk-predial-hook]
exten => s,1,Gosub(planfix-mark-outbound,s,1)
same => n,MacroExit()
[planfix-mark-outbound]
exten => s,1,NoOp(Outgoing call from ${CALLERID(all)} to ${EXTEN})
same => n,Set(__CRM_DIRECTION=OUTBOUND)
same => n,NoOp(Setting CRM_DIRECTION=${CRM_DIRECTION})
same => n,Return()
[macro-dialout-one-predial-hook]
exten => s,1,Gosub(planfix-mark-inbound,s,1)
same => n,MacroExit()
[macro-dial-ringall-predial-hook]
exten => s,1,Gosub(planfix-mark-inbound,s,1)
same => n,MacroExit()
[planfix-mark-inbound]
exten => s,1,NoOp(Incoming call to ${EXTEN} from ${CALLERID(all)})
same => n,Set(__CRM_DIRECTION=INBOUND)
same => n,NoOp(Setting CRM_DIRECTION=${CRM_DIRECTION})
same => n,Return()
Krok 1
Otevřete FreePBX a přidejte uživatele: Settings — Asterisk REST Interface Users — Add User.
Vyplňte následující pole:
- REST Interface User Name: uživatelské jméno
- REST Interface User Password: heslo
- Password Type: Plain Text
- Read Only: No
Zkopírujte (potřebné v kroku 4) a uložte.
Krok 2
Přidejte manažera: Settings — Asterisk Manager Users — Add Manager:
- Name: jméno
- Secret: ponechte výchozí nebo nastavte vlastní
- Nejlepší je neměnit ostatní nastavení.
Zkopírujte (potřebné v krocích 4 a 6) a uložte.
Krok 3
Uložte nastavení kliknutím na Apply Config vpravo nahoře.
Krok 4
V Planfixu přejděte na Primary Account Admin — Integrations — Virtual PBXs — FreePBX.
Vyplňte:
- PBX address: URL vaší PBX (včetně protokolu a portu, kde je ARI dostupné)
- ARI User Name: jméno ze kroku 1
- ARI User Password: heslo ze kroku 1
Zkopírujte URL přijímacího skriptu a uložte integraci.
Krok 5
Na serveru:
- V /var/spool/asterisk/ vytvořte symlink s názvem recording na složku monitor (ve stejném adresáři). Příkaz:
ln –s /var/spool/asterisk/monitor /var/spool/asterisk/recording
Krok 6
- Přejděte do /etc/asterisk/
- Vytvořte složku scripts, pokud ještě neexistuje
- Ve složce scripts vytvořte soubor ami_listener.py
Krok 7
Vyplňte ami_listener.py podle příkladu, nahrazujíc:
- Your_user_name: jménem z kroku 2
- Your_user_password: Secret z kroku 2
- Your_planfix_endpoint_url: URL přijímacího skriptu z kroku 4
Krok 8
Udělejte soubor spustitelným pomocí:
chmod +x /etc/asterisk/scripts/ami_listener.py
Krok 9
- Přejděte do /lib/systemd/system/
- Vytvořte soubor crm-asterisk-listener.service
- Vyplňte crm-asterisk-listener.service podle příkladu
Krok 10
Přidejte soubor do autostartu a spusťte službu pomocí následujících příkazů:
sudo systemctl enable crm-asterisk-listener
sudo systemctl start crm-asterisk-listener
Práce se staršími verzemi Asterisku
Pro Asterisk 13+ je třeba do konfiguračních souborů přidat další vlastnosti.
Pro /etc/asterisk/cdr.conf
[general] enable = yes batch = no unanswered = yes
Pro /etc/asterisk/cdr_manager.conf
[general] enable = yes unanswered = yes
Všimněte si, že získávání nahrávek hovorů bude fungovat pouze pro Asterisk 14+.
Dodatečné metody
Tyto metody můžete volat prostřednictvím dialplanu sami.
Získání informací o odpovědných osobách
Můžete poslat POST požadavek na URL uvedené v integraci s obsahem:
Content-type: application/json
V odpovědi obdržíte:
NEBO
Pokud pro kontakt:
- neexistují žádné odpovědné osoby
- nejsou přiřazena krátká čísla
- odpovědnou osobou je zaměstnanec, jehož číslo bylo voláno ("short_PBX_extension")
Pak bude odpověď obsahovat:
Upozornění na zmeškaný hovor
- Pro použití této metody v nastavení integrace zvolte — „Record missed calls only by a separate special request“:
Můžete poslat POST požadavek na URL uvedené v integraci s obsahem:
Content-type: application/json
{"event": "callMissedNotify", "uniqueId": "unique_call_id", "intNum": "short_PBX_extension_to_receive_missed_call_notification", "extNum": "external_subscriber_number"}
Pokud existuje zaměstnanec s tímto krátkým číslem, obdrží upozornění na zmeškaný hovor.
Odpověď na POST požadavek bude prázdná.
Poznámky k provozu
- Zajistěte, že je pro scénář nainstalována knihovna "panoramisk". Lze ji nainstalovat pomocí 'pip install panoramisk'.
- Pokud se skript nespustí okamžitě nebo jste provedli změny v ami_listener poté, co jste spustili příkazy, může pomoci:
sudo systemctl daemon-reloadsudo systemctl restart crm-asterisk-listener
- Pro vypnutí integrace spusťte:
sudo systemctl stop crm-asterisk-listenersudo systemctl disable crm-asterisk-listener
- Ve všech metodách připojení musíte mít nakonfigurováno:
- interní přípojky (Extensions)
- inbound a outbound routing (Inbound/Outbound Routes)