26

Eine API ist eine Programmierschnittstelle, mit der man Sachen automatisieren kann. sipgate bietet insgesamt 3 1/2 solcher Schnittstellen an. Das ist eher viel und man kann schon ein bisschen durcheinanderkommen. Selbst bei uns im Haus herrscht manchmal Unklarheit darüber. Diesbezügliche Unterhaltungen laufen typischerweise so ab:

“Wir haben da eine Kundin, die hat Fragen zur API und zwar -”
“Welche API genau?”

Jetzt möchten wir Licht ins Dunkel bringen und alle APIs (Stand: Mai 2016) kurz vorstellen:

Wie so oft bei einer verwirrenden Komplexität, ist diese historisch gewachsen. Früher, vor gefühlt 100 Internetjahren, war die Welt noch in Ordnung. Fernseher hatten runde Ecken, Faxe waren durch die Leitung gepresstes Papier mit rechtssicherer Unterschrift und Tastentelefone innovativ. Nach dem Fall des Telekom-Monopols wurde plötzlich alles anders. Aufbruchstimmung lag in der Luft. Der Post-Hörnchen-Muff verflog langsam. ISDN war todgeweiht, die Abschaltung nur eine Frage der Zeit. 2004 ging sipgate als Erster in Deutschland mit einem ISDN-Ersatz-Produkt auf Basis von SIP, einem offenen Internetstandard für VoIP, an den Start. Das Produkt hieß sipgate basic und zeigte durch seine niedrigen Kosten und nomadischen Anwendungsmöglichkeiten das riesige Potential der neuen Technik.

Durch die Verwendung von offenen Internetprotokollen ermöglichten wir die freie Wahl von Endgeräten und Software und somit flexiblere Einsatzmöglichkeiten. Mit der Einführung unserer ersten API folgte 2005 der nächste logische Schritt.

XML-RPC-API (aka “sipgate API”)

Dass man zum Versenden eines Faxes ein Faxgerät braucht und für SMS ein Handy, erschien uns schon 2005 antiquiert. Wir wollten unseren Kunden mehr bieten und schufen dafür eine Programmierschnittstelle: die sipgate XML-RPC-API. Diese API meinen wir, wenn wir auf unseren Webseiten und im Hilfe-Center von “sipgate API” sprechen.

Mit einem einfachen XML-Protokoll als Basis ist sie ein Kind ihrer Zeit. Die Erfahrung, dass SOAP zu umfangreich und kompliziert ist, haben zum Glück andere für uns gemacht. JSON und REST waren noch unpopulär. XML-RPC war ein guter Mittelweg.

Der Aufbau ist einfach: Vom sipgate-System angebotene Funktionen lassen sich durch ein Kommando in XML-Form aufrufen. Eine Antwort mit Status-Code und eventuellen Ergebnisdaten gibt es als XML zurück.

Die Nummer 1 Funktionalität, die Kunden realisieren wollen, ist Click2Dial (Wahlhilfe, Click2Call, …, wie man es auch immer nennen will): Man klickt auf eine Telefonnummer und ruft diese automatisch, ohne mühsames Abtippen, an. Das geht. Hier haben wir auf englisch aufgeschrieben, wie: book.sipgate.io/content/click2call.html

Ebenfalls möglich sind u. a. die automatische Abfrage des Kontostands, Fax- und SMS-Versand, sowie der Abruf der Anrufhistorie.

Die API ist für jeden sipgate-Account kostenlos verfügbar, und eine vollständige Dokumentation aller Funktionen lässt sich hier finden.

Die REST-API ist tot

Die REST-API von 2009 verschweigen wir in unserer Hilfe komplett, weil sie keiner mehr benutzen sollte! Sie wird nicht gepflegt. Die Doku stimmt nicht und wir konnten unseren Kunden bei Problemen schon lange nicht mehr wirklich helfen.

Daher stampfen wir die alte REST-API zum 1.7.2016 ein. Habt ihr Anmerkungen dazu? Vielleicht können wir euch die Umstellung erleichtern. Wendet euch an stefan@sipgate.io.

Lang lebe die REST-API!

Die Idee der REST-API war gut, nur unsere damalige Umsetzung war nicht überzeugend. Aber inzwischen sind 7 Jahre ins Land gegangen, in denen wir sehr, sehr viel gelernt haben. Deshalb entsteht in diesen Monaten die neue REST-API. Der große Unterschied zur alten besteht vor allem darin, dass wir die neue auch selbst zur Umsetzung unserer neuen Website verwenden. Wir sind überzeugt, dass dadurch eine tolle Developer-Experience entsteht. Eat your own dog food 😉 Die Anzahl der angebotenen Funktionen ist noch sehr übersichtlich, wächst aber stetig. Ein regelmäßiger Blick auf unsere Dokumentation (api.sipgate.com/doc/) lohnt sich. Trotz des frühen Entwicklungsstadiums laden wir jeden herzlich ein, damit zu entwickeln. Diese API ist kostenlos und für sipgate team, sipgate basic und simquadrat verfügbar.

sipgate.io – Push-API

Seit einem guten Jahr bietet sipgate die Möglichkeit, per Skript Einfluss auf ein- und ausgehende Gespräche zu nehmen. Und das in Echtzeit. Wir realisieren dies über eine an Webhooks angelehnte Push-API. Als Nutzer hinterlegt man dazu in unserem System eine URL, die wir bei Telefongesprächen aufrufen, um über den Anruf zu informieren und eventuell Steuerungsanweisungen zu bekommen. Anrufe umleiten oder Interaktion per DTMF-Tastenabfrage sind prominente Beispiele der angebotenen Funktionen.

Von den unzähligen Anwendungsmöglichkeiten scheinen das Erstellen von Anrufstatistiken und die Integration in CRM-Systeme am bedeutsamsten zu sein. Das zeigt unser bisheriges Kundenfeedback.

Demnach ist eine tiefe, aber einfache Integration in vorhandene Software um einiges gefragter, als eine offene Programmierschnittstelle. Das hat uns überrascht und dazu bewegt, unseren Fokus auf konkrete technische Partnerschaften zu verlagern. Die erste Kooperation – mit Zoho CRM – steht bereits: sipgateteam.de/zoho-crm

sipgate.io als Push-API bleibt weiterhin generisch, um vielfältige Anwendungsszenarien abzubilden. Heimautomatisierer, Privatspezialisten und Experimentierfreudige sind weiterhin herzlich eingeladen, mit dieser API zu entwickeln. Wir hoffen, den Einstieg so einfach wie möglich gestaltet zu haben. Die Dokumentation ist öffentlich auf sipgate.io. Unser Einstiegstarif ist kostenlos, und Supportanfragen beantworten wir, das Entwicklerteam, direkt.

Hier nochmal das Wichtigste zu allen APIs:

XML-RPC API

  • Funktionsumfang: Faxe versenden, SMS versenden, Anruf auslösen, Kontostand abfragen, Anrufhistorie abrufen, und vieles mehr
  • Für diese Produkte: sipgate team, sipgate basic, simquadrat und eingeschränkt für sipgate trunking
  • Preis: kostenlos
  • Dokumentation: XML-RPC API
  • Technologie: XML-RPC

Neue REST-API

  • Funktionsumfang: Endgeräteeinstellungen abfragen, Anruf auslösen, Weiterleitungen konfigurieren und vieles mehr
  • Für diese Produkte: sipgate team, sipgate basic und simquadrat
  • Preis: kostenlos
  • Dokumentation: api.sipgate.com/doc/
  • Technologie: REST, OAuth2

sipgate.io Push-API

  • Funktionsumfang: Echtzeit-Informationen über Anrufe und Anrufannahme an einen Webserver schicken; Anrufe automatisiert weiterleiten, auflegen oder auf Voicemail schicken; DTMF; und vieles mehr
  • Welche Produkte: sipgate team, sipgate basic und simquadrat
  • Preis: sipgate.io/de/prices
  • Dokumentation: sipgate.io (github)
  • Technologie: WebHooks
  • Für diese Produkte: sipgate team, sipgate basic und simquadrat

Haben wir was vergessen? Dann überhäuft uns mit Kommentaren! Wir freuen uns auf eure Fragen!

26 Kommentare

Hi Lorent. Welche API meinst Du? 😉 Mit der sipgate.io pushapi kannst du pro Call die Absendernummer setzen.

Zum Thema Integration in vorhandene Software (sipgate.io Push-API): Was auf jeden Fall kommen muss in ein Wrapper der zwischen der sipgate- und der TAPI-Welt vermittelt. Gerne auch als Drittanbieterlösung.

Dann könnte man die nativen Anrufsignalisierungsfunktionen vieler ERP und Warenwirtschaften nutzen, was echt eine große Erleichterung wäre. Wählen müsste der Wrapper dann über die XML-RPC API bzw. Neue REST-API.

Hallo Sebastian. Das Thema TAPI taucht ab und zu mal wieder auf, aber um ehrlich zu sein, tun wir uns damit etwas schwer. Warum das so ist, kann ich nicht so richtig sagen, aber möglicherweise hängt es damit zusammen, dass der TAPI-„Standard“ eng und kryptisch mit Windows verheiratet ist, und wir da nicht so recht zuhause sind. Trotzdem würden wir uns natürlich über eine Anbindung per TAPI an bestehende Softwareprodukte freuen. Du bist nicht zufälligerweise Entwickler? Gerne würden wir die Entwicklung eines TAPI-Treibers unterstützen. Schreib mir eine Mail an marcus@sipgate.io, falls Du Interesse hast. Dann finden wir gemeinsam heraus, was für die Entwicklung notwendig ist.

Es gibt generische SIP-TAPI-Treiber, z.B. http://www.ipcom.at/telefonie/siptapi/ oder http://www.telinta.com/support/downloads/

Wie gut diese mit sipgate funktionieren, kann ich Dir leider nicht sagen.

Hi, es gehört hier zwar absolut nicht hin, aber irgendwie muss ich mal jemanden bei SipGate erreichen. Auf Kontaktanfragen antwortet ja niemand. Ich habe in meiner Firma seit mehreren Tagen keine Möglichkeit mehr zu telefonieren, weil SipGate alle meine Nummern gelöscht hat. Wie komme ich da wieder ran ? Meine Anfragen sind seit Tagen unbeantwortet, bis auf generierte Standardmails. Vielleicht kennt ja der Blog-Admin eine Möglichkeit, wie ich jemanden erreichen kann. Oder vielleicht eine geheime Telefonnummer unter der es Support gibt.

Gibt es eigentlich auch eine Möglichkeit Sipgate über den Browser zu nutzen bzw. über WebRTC? Wir beschäftigen uns gerade mit dem Thema – und bisher scheint nur Twilio so etwas anzubieten.

Leider ist die API noch nicht wirklich fertig. Um unserer Produkt sinnvoll zu gestalten muss ich 2 1/2 Api’s nutzen. Und das mit verschiedenen Accounts und Authentifizierungen. Sehr schade.

Zum Beispiel gibt es keine Übersicht über alle Devices (Auch die Durchwahlen). Die History gibt nicht zurück, wieviele Einträge existieren usw….

Sehr schade.

Ich hoffe das weiterhin Bewegung in der neuen API ist.

Hallo Erik,

eine funktionale Bedeutung hat hat das Produktiv-schalten im Moment nicht. Aber es hilft uns, einzuschätzen, wie die API’s genutzt werden und welche Auswirkungen Änderungen haben werden.

Ich bin verwirrt. Letzte Woche hab ich mir die Rest-API angeschaut und bereits Client-Klassen für C# generiert. Im Bereich Contacts gab es mehrere Pfade zum Abfragen der Kontaktdaten als VCard bzw. CSV und die Importmöglichkeit mittels CSV.

Es handelt sich um folgende Methoden ( https://api.sipgate.com/doc/#/contacts ) :
/contacts/csv
/contacts/jcard
/contacts/vcard
/contacts/import/csv
/contacts/import/vcard
/contacts/preparecontactsforimport
/contacts/resolvecsvcolumnnames

Wo sind die Methoden auf einmal hin? Laut swagger.json handelt es sich immer noch um die Version 1.0.0 der Rest-API.
Ich benötige diese Funktionen.

Hallo Markus,

die Pfade wurden versehentlich dokumentiert und sollten in der Form nie veröffentlicht werden.

Wir selbst verwenden im Frontend selbst keine vCards, sind aber gerade dabei verschiedene Funktionen für Kontakte zu erstellen.

Was brauchst du denn von den nicht mehr vorhandenen? Vielleicht kommen wir da ja zusammen 🙂

Gruss

Ich benötige Funktionen zum verwalten der Kontaktdaten (Telefonbuch) im Sipgate. Am besten wäre eine PUT Methode zum schreiben von Kontaktdaten. Es soll nur das persönliche Telefonbuch einens Nutzers geschrieben werden. Ziel ist der Import von Kontaktdaten aus einem anderem System.

Habe gerade gesehen, dass es jetzt wieder eine Methode /contacts/import/csv gibt. Kann man die jetzt verwenden? Wenn ja, welche Spaltennamen sind in der CSV zu verwenden?

Markus

Vielen Dank für die Bereitstellung von REST-APIs.
Ich bin auf der Suche nach einer einfachen Umsetzung einer API um SMS zu versenden.
So wie ich das verstehe kann ich dies bisher nur über die XML-RPC API, richtig? Bei den REST-API zum Thema SMS kann ich nur Informationen abrufen aber keine SMS versenden. Oder verstehe ich da was falsch? Gibt es schon ein Plan dies mit aufzunehmen und wenn ja wann.
Vielen Dank
Gerhard

Hallo,

ich habe einen Fehler in der Methode GetAllContacts in der RestApi gefunden. Diese liefert JSON-Objekte im falschen Format zurück.
Laut Schnittellenbeschreibung ist der Typ einer Nummer als ENUM definiert. Es wird jedoch ein Array mit Strings zurückgegeben.

Schnittstellenbeschreibung:

ContactsResponse {
items (Array[ContactResponse], optional)
}
ContactResponse {
id (string, optional),
name (string, optional),
picture (string, optional),
emails (Array[EMailResponse], optional),
numbers (Array[NumberResponse], optional),
addresses (Array[AddressResponse], optional),
organization (Array[Inline Model 1], optional)
}
EMailResponse {
email (string, optional),
type (Array[string], optional)
}
NumberResponse {
id (string, optional),
number (string, optional),
localized (string, optional),
type (string, optional) = [‚MOBILE‘, ‚LANDLINE‘, ‚QUICKDIAL‘, ‚INTERNATIONAL‘]
}

Rückgabe:
{
„items“: [
{
„id“: „9sdfsdfsd-e6fd-sdfsdb2b3-80f7fsdfsdf7245“,
„name“: „XXXXX“,
„picture“: null,
„emails“: [],
„numbers“: [
{
„number“: „9999999999“,
„type“: [
„home“
]
}
],
„addresses“: [],
„organization“: []
},

Ich habe ein paar Ideen und würde gerne etwas mit der REST-API bauen. Lässt sich darauf auf alle Einstellungen von sipgate team zugreifen oder nur auf bestimmte? Z.B. würde ich gerne als Erstes den Kompatibilitätsmodus ein- und ausschalten. Dann kann ich was bauen, was mir diesen nur für Gespräche aktiviert, die zu einem HD-fähigen Teilnehmer führen und sonst bleibt er aus, damit BLF, sipgate.io etc. funktionieren.

Hallo, ich versuche gerade auf ein Monitoring System mit automagisierten SMS-Versand zu bestücken und stecke gerade im kleinen Problem fest. Der zu verwendende sipgate Account ist von der Sorte sipgate Trunking. und ich hatte vor die sipgateAPI zu verwenden. Jetzt steht hier dass „sipgate Trunking“ von dieser API nur eingeschränkt unterstützt wird. Gibt es dennoch eine simple Methodik Web-SMS Versand über sipgate zu ermöglichen? Muss ich eventuell auf eine andere API zurückgreifen? (ICh verfüge bereits über fertige Routinen die auf ein sipgate Team Account abgefeuert das korrekte Ergebnis liefern. Soll heißen, mein Handy kann vibrieren ;D )

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*