FreePBX

De la Planfix
Salt la: navigare, căutare

FreePBX este un sistem telefonic gratuit care îți permite să gestionezi apelurile într-o companie.

Funcționalități

  • Apeluri telefonice prin internet: folosește tehnologia VoIP, permițând apeluri prin internet în locul rețelei telefonice obișnuite.
  • Distribuție automată a apelurilor: ajută la rutarea automată a apelurilor primite către numerele sau departamentele corecte din companie.
  • Meniuri vocale interactive (IVR): poți configura meniuri vocale interactive astfel încât apelantul să poată alege departamentul potrivit apăsând taste.
  • Mesagerie vocală (voicemail): dacă nimeni nu poate răspunde la un apel, FreePBX poate înregistra un mesaj vocal care poate fi redat ulterior.
  • Conferințe telefonice: poți organiza conferințe astfel încât mai multe persoane să participe simultan.
  • Înregistrare apeluri: poți înregistra conversațiile telefonice pentru redare sau analiză ulterioară.
  • Integrare cu alte sisteme: FreePBX poate fi integrat cu diverse CRM-uri, inclusiv Planfix.

Conectare

Poți conecta FreePBX la Planfix în două moduri:

Reține că echipa Planfix nu configurează Asterisk la client și nu oferă consultanță pentru astfel de amenajări.

Planfix API pentru telefonie

  • Prin această metodă poți doar primi evenimente de apel în Planfix, adică atunci când are loc un apel, va apărea o fișă de apel în fila activă Planfix.
  • Nu poți iniția apeluri din Planfix.
  • Pentru a obține înregistrările apelurilor este necesar să configurezi suplimentar apache/nginx (pasul 5).


Pasul 1

Pe server, editează /etc/asterisk/extensions_override_freepbx.conf (fișier exemplu) astfel încât să conțină următoarele 3 contexte:

  • [macro-dialout-one-predial-hook]
  • [macro-dialout-trunk-predial-hook]
  • [macro-hangupcall]

Pentru [macro-hangupcall], forma exactă nu este obligatorie ca în exemplu.

Găsește contextul [macro-hangupcall] în extensions_additional.conf — copiază-l — și adaugă următoarea linie la foarte început:

exten => s,1,Macro(hangupcall-send-post)


Pasul 2

Copiază toate contexte din exemplu în extension_custom.conf. Acest lucru poate fi făcut și prin interfața FreePBX.


Pasul 3

Adaugă 3 linii în globals_custom.conf și înlocuiește {…} cu valorile corespunzătoare:

  • PBX_URL = {…} — URL-ul PBX-ului tău
  • PF_URL = {…} — adresa pentru a primi cererile
  • PF_KEY = {…} — tokenul de autorizare Planfix


Pasul 4

  • În Planfix, mergi la Account management — Integrations — Virtual PBXs — Planfix API for telephony.
  • Completează adresa PBX astfel încât Planfix să știe să accepte evenimente provenite de la acel site sau adresă.


Pasul 5

Pentru a obține înregistrările trebuie să le faci accesibile extern printr-un server web. Pentru aceasta, folosind Apache inclus în FreePBX, adaugă un link către folderul cu înregistrări. Folderul trebuie să aibă owner, group și permisiunile corecte — 775.

  • Crează linkul:
ln -s /var/spool/asterisk/monitor /var/www/html/monitor
  • Editează permisiunile și owner-ul:
chmod -R 775 /var/www/html/monitor/
chown -R asterisk:asterisk /var/www/html/monitor/

Dacă folosești o distribuție fără Apache — configurează un setup similar pentru serverul tău web.

Integrare FreePBX

(FreePBX 16+ / Asterisk 18+)

Înainte de a începe, inserează următoarele în fișierul tău de setări personalizate extensions_override_freepbx.conf:

[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()

Pasul 1

Deschide FreePBX și adaugă un utilizator: Settings — Asterisk REST Interface Users — Add User.

Completează următoarele câmpuri:

  • REST Interface User Name: nume utilizator
  • REST Interface User Password: parolă
  • Password Type: Plain Text
  • Read Only: No

Copiază (va fi necesar la pasul 4) și salvează.


Pasul 2

Adaugă un manager: Settings — Asterisk Manager Users — Add Manager:

  • Name: nume
  • Secret: lasă implicit sau setează propriul secret
  • Este recomandat să nu modifici celelalte setări.

Copiază (va fi necesar la pașii 4 și 6) și salvează.


Pasul 3

Salvează setările apăsând Apply Config în colțul din dreapta sus.


Pasul 4

În Planfix, mergi la Primary Account Admin — Integrations — Virtual PBXs — FreePBX.

Completează:

  • PBX address: URL-ul PBX-ului tău (inclusiv protocolul și portul unde este disponibil ARI)
  • ARI User Name: Name de la pasul 1
  • ARI User Password: Password de la pasul 1

Copiază URL-ul scriptului de recepție și salvează integrarea.


Pasul 5

Pe server:

  • În /var/spool/asterisk/ creează un symlink numit recording către folderul monitor (în același director). Comandă:
ln –s /var/spool/asterisk/monitor /var/spool/asterisk/recording


Pasul 6

  • Mergi în /etc/asterisk/
  • Crează un folder scripts dacă nu există deja
  • În folderul scripts creează un fișier ami_listener.py


Pasul 7

Completează ami_listener.py conform exemplului, înlocuind:

  • Your_user_name: cu Name de la pasul 2
  • Your_user_password: cu Secret de la pasul 2
  • Your_planfix_endpoint_url: cu URL-ul scriptului de recepție de la pasul 4


Pasul 8

Fă fișierul executabil cu:

chmod +x /etc/asterisk/scripts/ami_listener.py


Pasul 9

  • Mergi în /lib/systemd/system/
  • Crează un fișier crm-asterisk-listener.service
  • Completează crm-asterisk-listener.service conform exemplului


Pasul 10

Adaugă fișierul la autostart și pornește serviciul cu următoarele comenzi:

sudo systemctl enable crm-asterisk-listener

sudo systemctl start crm-asterisk-listener


Lucrul cu versiuni mai vechi de Asterisk

Pentru Asterisk 13+ trebuie să adaugi proprietăți suplimentare în fișierele de configurare.

Pentru /etc/asterisk/cdr.conf

[general]
enable = yes
batch = no
unanswered = yes

Pentru /etc/asterisk/cdr_manager.conf

[general]
enable = yes
unanswered = yes

Reține că extragerea înregistrărilor apelurilor va funcționa doar pentru Asterisk 14+.

Metode adiționale

Poți apela aceste metode tu însuți din dialplan.


Obținerea informațiilor despre supervizori

Poți trimite o cerere POST către URL-ul specificat în integrare conținând:

Content-type: application/json

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

Vei primi ca răspuns:

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

SAU

Dacă pentru contact:

  • nu există supervizori
  • nu sunt atribuite numere scurte
  • supervizorul este angajatul a cărui extensie a fost apelată ("short_PBX_extension")

Atunci răspunsul va conține:

{"error":"no persons responsible"}


Notificare apel ratat

  • Pentru a folosi această metodă, în setările integrării selectează — „Record missed calls only by a separate special request”:

7TWeHF.png


Poți trimite o cerere POST către URL-ul specificat în integrare conținând:

Content-type: application/json
{"event": "callMissedNotify", "uniqueId": "unique_call_id", "intNum": "short_PBX_extension_to_receive_missed_call_notification", "extNum": "external_subscriber_number"}

Dacă există un angajat cu acel număr scurt, acesta va primi o notificare de apel ratat.

Răspunsul la cererea POST va fi gol.

Note de funcționare

  • Asigură-te că biblioteca "panoramisk" este instalată pentru ca scriptul să funcționeze. Poate fi instalată cu 'pip install panoramisk'.


  • Dacă scriptul nu pornește imediat sau ai făcut modificări la ami_listener după rularea comenzilor, următoarele comenzi pot ajuta:
sudo systemctl daemon-reload
sudo systemctl restart crm-asterisk-listener


  • Pentru a dezactiva integrarea, rulează:
sudo systemctl stop crm-asterisk-listener
sudo systemctl disable crm-asterisk-listener


  • În toate metodele de conectare trebuie să ai configurate:
    • internal extensions (Extensions)
    • inbound and outbound routing (Inbound/Outbound Routes)


Mergeți la