FreePBX

Aus Planfix
Wechseln zu: Navigation, Suche

FreePBX ist eine freie Software-Telefonanlage, mit der Sie Anrufe in einem Unternehmen verwalten können.

Funktionen

  • Internettelefonie: nutzt VoIP-Technologie, so dass Anrufe über das Internet statt über das reguläre Telefonnetz geführt werden.
  • Automatische Anrufverteilung: hilft eingehende Anrufe automatisch an die richtigen Nummern oder Abteilungen im Unternehmen zu leiten.
  • Interaktive Sprachmenüs (IVR): Sie können interaktive Sprachmenüs einrichten, damit der Anrufer durch Tastendruck die passende Abteilung wählen kann.
  • Voicemail: kann eine Sprachnachricht aufzeichnen, wenn niemand den Anruf entgegennimmt, die später abgehört werden kann.
  • Konferenzschaltungen: Sie können Konferenzgespräche organisieren, bei denen mehrere Personen gleichzeitig teilnehmen.
  • Anrufaufzeichnung: Telefonate können zur späteren Wiedergabe oder Analyse aufgezeichnet werden.
  • Integration mit anderen Systemen: FreePBX lässt sich mit verschiedenen CRMs integrieren, einschließlich Planfix.

Verbindung

Sie können FreePBX auf zwei Arten mit Planfix verbinden:

Beachten Sie, dass das Planfix-Team Asterisk auf Kundenseite nicht konfiguriert und zu solchen Themen keine Beratung anbietet.

Planfix API für Telefonie

  • Mit dieser Methode können Sie in Planfix nur Anrufereignisse empfangen, d. h. wenn ein Anruf erfolgt, erscheint eine Anrufkarte im aktiven Planfix-Tab.
  • Sie können von Planfix aus keine Anrufe tätigen.
  • Um Anrufaufzeichnungen zu erhalten, müssen Sie zusätzlich apache/nginx konfigurieren (Schritt 5).


Schritt 1

Bearbeiten Sie auf dem Server /etc/asterisk/extensions_override_freepbx.conf (Beispiel-Datei), sodass sie die folgenden 3 Kontexte enthält:

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

Für [macro-hangupcall] ist die exakte Form nicht zwingend identisch mit dem Beispiel.

Suchen Sie den Kontext [macro-hangupcall] in extensions_additional.conf — kopieren Sie ihn — und fügen Sie die folgende Zeile ganz am Anfang ein:

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


Schritt 2

Kopieren Sie alle Kontexte aus dem Beispiel in extension_custom.conf. Dies kann auch über die FreePBX-Oberfläche erfolgen.


Schritt 3

Fügen Sie 3 Zeilen in globals_custom.conf ein und ersetzen Sie {…} durch die entsprechenden Werte:

  • PBX_URL = {…} — URL Ihrer PBX
  • PF_URL = {…} — Adresse zum Empfangen von Anfragen
  • PF_KEY = {…} — Planfix-Autorisierungstoken


Schritt 4

  • In Planfix gehen Sie zu Kontoverwaltung — Integrationen — Virtuelle Telefonanlagen — Planfix API für Telefonie.
  • Füllen Sie die PBX-Adresse aus, damit Planfix weiß, Ereignisse von dieser Site oder Adresse zu akzeptieren.


Schritt 5

Um Aufzeichnungen zu erhalten, müssen Sie diese über einen Webserver extern zugänglich machen. Um dies mit dem in FreePBX enthaltenen Apache zu tun, fügen Sie einen Link zum Aufzeichnungsordner hinzu. Der Ordner muss den richtigen Besitzer, die richtige Gruppe und Berechtigungen — 775 — haben.

  • Erstellen Sie den Link:
ln -s /var/spool/asterisk/monitor /var/www/html/monitor
  • Berechtigungen und Besitzer ändern:
chmod -R 775 /var/www/html/monitor/
chown -R asterisk:asterisk /var/www/html/monitor/

Wenn Sie eine Distribution ohne Apache verwenden — konfigurieren Sie eine analoge Einrichtung für Ihren Webserver.

FreePBX Integration

(FreePBX 16+ / Asterisk 18+)

Bevor Sie beginnen, fügen Sie Folgendes in Ihre Custom-Settings-Datei extensions_override_freepbx.conf ein:

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

Schritt 1

Öffnen Sie FreePBX und fügen Sie einen Benutzer hinzu: Settings — Asterisk REST Interface Users — Add User.

Füllen Sie folgende Felder aus:

  • REST Interface User Name: Benutzername
  • REST Interface User Password: Passwort
  • Password Type: Plain Text
  • Read Only: No

Kopieren Sie die Daten (für Schritt 4 benötigt) und speichern Sie.


Schritt 2

Fügen Sie einen Manager hinzu: Settings — Asterisk Manager Users — Add Manager:

  • Name: Name
  • Secret: Standard belassen oder eigenes setzen
  • Es ist am besten, die anderen Einstellungen nicht zu verändern.

Kopieren Sie die Daten (werden in den Schritten 4 und 6 benötigt) und speichern Sie.


Schritt 3

Speichern Sie die Einstellungen, indem Sie oben rechts auf Apply Config klicken.


Schritt 4

Gehen Sie in Planfix zu Primary Account Admin — Integrationen — Virtuelle Telefonanlagen — FreePBX.

Füllen Sie aus:

  • PBX address: die URL Ihrer PBX (inklusive Protokoll und Port, auf dem ARI verfügbar ist)
  • ARI User Name: Name aus Schritt 1
  • ARI User Password: Passwort aus Schritt 1

Kopieren Sie die URL des empfangenden Skripts und speichern Sie die Integration.


Schritt 5

Auf dem Server:

  • Erstellen Sie in /var/spool/asterisk/ einen symbolischen Link namens recording zum monitor-Ordner (im selben Verzeichnis). Befehl:
ln –s /var/spool/asterisk/monitor /var/spool/asterisk/recording


Schritt 6

  • Gehen Sie zu /etc/asterisk/
  • Erstellen Sie einen Ordner scripts, falls noch nicht vorhanden
  • Erstellen Sie im scripts-Ordner eine Datei ami_listener.py


Schritt 7

Füllen Sie ami_listener.py entsprechend dem Beispiel aus und ersetzen Sie:

  • Your_user_name: mit dem Name aus Schritt 2
  • Your_user_password: mit dem Secret aus Schritt 2
  • Your_planfix_endpoint_url: mit der empfangenden Skript-URL aus Schritt 4


Schritt 8

Machen Sie die Datei ausführbar mit:

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


Schritt 9

  • Gehen Sie zu /lib/systemd/system/
  • Erstellen Sie eine Datei crm-asterisk-listener.service
  • Füllen Sie crm-asterisk-listener.service entsprechend dem Beispiel aus


Schritt 10

Fügen Sie die Datei dem Autostart hinzu und starten Sie den Service mit den folgenden Befehlen:

sudo systemctl enable crm-asterisk-listener

sudo systemctl start crm-asterisk-listener


Arbeiten mit älteren Asterisk-Versionen

Für Asterisk 13+ müssen zusätzliche Eigenschaften zu Konfigurationsdateien hinzugefügt werden.

Für /etc/asterisk/cdr.conf

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

Für /etc/asterisk/cdr_manager.conf

[general]
enable = yes
unanswered = yes

Beachten Sie, dass das Abrufen von Anrufaufzeichnungen nur für Asterisk 14+ funktioniert.

Zusätzliche Methoden

Sie können diese Methoden selbst aus dem Dialplan aufrufen.


Informationen über Aufsichtspersonen abrufen

Sie können eine POST-Anfrage an die in der Integration angegebene URL senden mit folgendem Inhalt:

Content-type: application/json

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

Sie erhalten als Antwort:

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

ODER

Wenn für den Kontakt:

  • keine Aufsichtspersonen vorhanden sind
  • Kurznummern nicht zugewiesen sind
  • die Aufsichtsperson der Mitarbeiter ist, dessen Nummer angerufen wurde ("short_PBX_extension")

Dann enthält die Antwort:

{"error":"no persons responsible"}


Benachrichtigung bei verpassten Anrufen

  • Um diese Methode zu verwenden, wählen Sie in den Integrationseinstellungen — „Record missed calls only by a separate special request“:

7TWeHF.png


Sie können eine POST-Anfrage an die in der Integration angegebene URL senden mit folgendem Inhalt:

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

Wenn ein/e Mitarbeiter/in mit dieser Kurznummer existiert, erhält diese eine Benachrichtigung über den verpassten Anruf.

Die POST-Antwort ist leer.

Betriebshinweise

  • Stellen Sie sicher, dass die Bibliothek "panoramisk" installiert ist, damit das Skript funktioniert. Sie kann mit 'pip install panoramisk' installiert werden.


  • Wenn das Skript nicht sofort startet oder Sie Änderungen an ami_listener vorgenommen haben, nachdem Sie die Befehle ausgeführt haben, kann Folgendes helfen:
sudo systemctl daemon-reload
sudo systemctl restart crm-asterisk-listener


  • Um die Integration zu deaktivieren, führen Sie aus:
sudo systemctl stop crm-asterisk-listener
sudo systemctl disable crm-asterisk-listener


  • Bei allen Verbindungsmethoden müssen Sie konfiguriert haben:
    • interne Nebenstellen (Extensions)
    • Eingangs- und Ausgangs-Routing (Inbound/Outbound Routes)


Gehe zu