API

Im API Menü können Sie Einstellungen zum API-Zugang sowie den Webhooks vornehmen. 



API-Token
Der API-Token ist das Passwort für den Zugriff via API. Über einen Klick auf das Generieren Symbol wird die neu Erstellung des Tokens aufgerufen. Bitte beachten Sie, dass wenn ein neuer Token erstellt wird, der alte nicht mehr funktionieren wird. Aus Sicherheitsgründen wird der Token nur nach der Generierung angezeigt und kann anschliessend nicht mehr aufgerufen werden. 

IP Zugangsrestriktion
Der Zugang kann auf einzelne IP Adressen beschränkt werden. Um mehrere IP Adressen zu erlauben können diese in einer Komma-separierten Liste aufgeführt werden, z.B. "123.123.123.123, 234.234.234.234, 100.100.100.100"




Als Webhooks können URLs hinterlegt werden, welche bei einem entsprechenden Event aufgerufen werden. Zusätzlich kann ausgewählt werden welcher Kanal (Call-Leg) gesendet werden soll.

Der POST Request enthält ein JSON Objekt mit folgenden Keys:
  • event: aufgetretenes Event (channel_create | channel_answer | channel_destroy)
  • caller: Anrufernummer im E164 Format (+41121231212)
  • callee: angerufene Nummer im E164 Format (+41121231212)
  • timestamp: Zeitpunkt des Events im Format %Y-%m-%d %H:%M:%S (2021-10-01 10:00:00)
  • sip_from: SIP From Header des Requests, bei ausgehendem Anruf z.B. 1000@psXXXX.sip.phonestar.ch
  • sip_request: SIP Request Header, bei ausgehendem Anruf z.B. +41555114141@ps100.sip.phonestar.ch
  • channel_leg: inbound / outbound - Unterscheidung der Anruf-Kanäle (Call-Legs), welche benötigt wird wenn der ein- und ausgehende Kanal abonniert wurde

Jeder Key kann auch in der URL als Parameter hinterlegt werden. Die Zeichenfolge %KEY% wird durch den entsprechenden Wert ersetzt. 
z.B. https ://musteradresse.ch/webhook?caller_id=%caller%&callee_id=%callee%&webhook_event=%event%


API
Die Basis URL für alle Anfragen lautet: https://my.phonestar.ch/

Parameter können als GET  oder POST Variablen übergeben werden. 

Die Antworten enthalten ein JSON Objekt, welches folgende Keys enthält:
  • session_id: die Session-ID der aktuellen Session
  • status: success | error
  • data: Optional das Datenset, welches Angefragt wurde. 

Fehlgeschlagene Logins oder Anfragen mit abgelaufener Session werden mit "403 not Authorized" beantwortet. 

Authentifizierung
Zur Authentifizierung wird zuerst ein Login mit dem API Token gemacht. Bei erfolgreichem Login wird in der Rückmeldung eine Session-ID übermittelt, welche bei weiteren Anfragen zur Authentifizierung übergeben werden muss. 

Login
Endpunkt: ../api/login
Parameter:
  • api_token: API Token für die Authentifizierung
Antwort JSON:
  • session_id: Session-ID welche für weitere Anfragen benutzt wird

Logout
Endpunkt: ../api/logout
Parameter:
  • session_id: Session-ID der aktiven Session

Quickcall
Mit Quickcall kann ein Anruf via HTTP Request gestartet werden. Quickcall baut zuerst einen Anruf zur angegebenen Nebenstelle auf, welche anschliessend mit der Zielnummer verbunden wird. 

Endpunkt: ../quickcall
Parameter:
  • session_id: Session-ID der aktiven Session. (Wenn bei der verwendeten Software kein separates Login möglich ist, kann anstelle der session_id auch der api_token übergeben werden) 
  • extension: Nebenstelle welche angerufen wird (z.B. 1000)
  • destination: Zielrufnummer welche angerufen werden soll (z.B. 0791234567)
  • caller_id: Rufnummer welche als Anruferclip signalisiert werden soll. Der Anruferclip muss von unserem Support freigegeben werden, ohne Freigabe wird der Clip mit der Rufnummer der Nebenstelle überschrieben. 
Antwort JSON:
  • session_id: Session-ID der aktiven Session
  • status: success | error
  • message: Fehlermeldung bei Status "error"

Anrufsliste
get_cdrs
Endpunkt: ../get_cdrs
Parameter:
  • session_id: Die Session-ID der aktiven Session
  • start: DateTime im Format YYYY-MM-DD HH:MM:SS (2021-08-19 00:00:00)
  • end: DateTime im Format YYYY-MM-DD HH:MM:SS (2021-08-19 00:00:00)
Antwort JSON:
  • session_id: Session-ID der aktiven Session
  • status: success | error
  • message: Fehlermeldung bei Status "error"
  • data: Liste mit CDR Einträgen, zum Aufbau der CDR Einträgen siehe unten

CDR-Eintrag:
  • cdr_id: ID des CDR Eintrags (Integer)
  • caller: Anrufernummer (0555114141)
  • callee: angerufene Nummer (079123456)
  • description: Beschreibung des Anrufsziel (Switzerland Mobile-Swisscom)
  • connected: DateTime im Format YYYY-MM-DD HH:MM:SS (2021-08-19 00:00:00)
  • disconnected: DateTime im Format YYYY-MM-DD HH:MM:SS (2021-08-19 00:00:00)
  • billed_duration: verrechnete Anrufdauer in Sekunden
  • cost: Kosten des Anrufes in CHF