Letzte Woche stellte ich verschiedene Herangehensweisen vor, um einen eigenen SIP-Client zu entwickeln. Wir entschieden uns, eine bestehende High-Level-API zu verwenden, um komplexe, protokollspezifische Probleme zu umgehen.
Jedoch erwies sich die Suche nach solch einer API als sehr mühsam:
Unser Projekt soll im Idealfall plattformunabhängig sein, weshalb wir Anfangs eine JAVA-Lösung bevorzugten und uns deshalb gleich mit dem SIP-Communicator auseinandersetzten. Dieser Client erwies sich als sehr mächtig, jedoch baut er auf einem komplexen Framework auf, das für unser Projekt nicht geeignet ist.
Quasi das Gegenteil vom SIP-Communicator ist der kleine Client Peers. Hierbei handelt es sich um ein Projekt, das sich ausschließlich auf den Telefonvorgang beschränkte, und daher sehr schlank war – scheinbar perfekt für unser Projekt. Leider sind zwei Sekunden Verzögerung im Gespräch ein bisschen zuviel des Guten. Wir mussten also weitersuchen.
Inzwischen weiteten wir das Suchfeld aus, und betrachteten verschiedene Lösungen in C/C++ genauer. Als erstes stießen wir auf den mächtigen Linphone-Client. Das eigene SDK schien vielversprechend zu sein, jedoch stellte sich der Compilier-Vorgang unter Windows als eigene Wissenschaft heraus, weshalb ein Einbinden in unseren Client zu komplex geworden wäre.
Schlussendlich landeten wir bei der ebenfalls mächtige SipXtapi. Diese API bietet ebenfalls einen Highlevel-Zugang zu allen wichtigen SIP-Funktionen. Außerdem kann die Library mittels VS-Projekt kompiliert werden. Allem Anschein nach hat unsere API-Suche an dieser Stelle nun ein gutes Ende gefunden. Hoffentlich…