Skip to content

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

{"event": "callInfoRespNum", "uniqueId": "unique_call_id", "intNum": "short_PBX_extension", "extNum": "external_subscriber_number"}

V odpovědi obdržíte:

{"responsibleNumbers":["short_number_of_responsible","short_number_of_second_responsible(if_any)"]}

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:

{"error":"no persons responsible"}


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“:

7TWeHF.png


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-reload
sudo systemctl restart crm-asterisk-listener


  • Pro vypnutí integrace spusťte:
sudo systemctl stop crm-asterisk-listener
sudo 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)


Přejít na