Linphone with HIP support
Linphone version 1.4 was extended to exchange HITs. tar-ball

Linphone ist ein SIP User Agent dessen SIP Initialisierung erweitert wurde um HIP zu unterstützen.
Dazu wurden neben den Anpassungen für die HIPL-Schnittstellen auch Erweiterungen zum Austausch der HITs im SIP und SDP vorgenommen.
Üblicher weise werden HI/HITs im DNS gespeichert. Im DNS erfolgt die Abbildung der HITs analog zu IPv6 Einträgen, d.h. HIT <-> hostname. Da DNS-Requests i.d.R. bei Clients und Servern zwischen gespeichert werden sind Updates nicht unmittelbar für alle verfügbar.
Die Idee besteht nun darin SIP so zu erweiteren, dass neben den IP Sitzungsparameter zwischen zwei Hosts auch dessen HITs ausgetauscht/verhandelt werden. An dieser Stelle müssen zwei Sessions unterschieden werden. Zum Einen die per SIP verhandelte Media Session (i.d.R. RTP) und zum Anderen die SIP Session selbst.
Parameter der Media Session werden im SIP Body mittels SDP ausgetauscht. Die in Linphone implementierte Variante fügt einen 'k' Parameter mit der HIT des Hosts ein: k=host-identity-tag:2001:700:...
Wenn beide SIP Clients HITs gesendet haben, kann eine HIP Verbindung erstellt werden.

Für eine vollständig HIP basierte SIP Session genüt dies aber noch nicht. Mit den bisherigen Funktionen kann der Media Stream zwar über HIP erfolgen, die Clients können sich fast beliebig zwischen verschiedenen Netzen bewegen ohne dass die Sitzung abreisst, aber die weitere SIP Siganlisierung ist gestört. Denn SIP selbst nutzt noch nicht HIP und so kann die neue IP-Adresse des Peers nicht ermittelt werden. Updated der Client neue IP-Adresskonfigurationen sofort beim SIP Location Server so ist Erreichbarkeit des Clients weiterhin gegeben. Allerdings verwendet dann eine Anwendung HIP-Verbindungen und nicht-HIP-Verbindungen im Rahmen einer Sitzung (z.B. Telefonanruf).
Von daher ist es angebracht, dass auch die SIP Session so weit wie möglich über HIP abgewickelt wird. Um für andere Clients erreichbar zu sein muss zwar weiterhin der Location Server bei geänderte IP Konfiguration informiert werden, aber bestehende Sitzungen werden vollständig über HIP verhandelt.

Die Verbindungsparameter von SIP Client und Media Session nicht unbedingt gleich sind - es kann eine RTP Session zwischen zwei fremden Hosts ausgehandelt werden - muss SIP selbst HITs austauschen. Dazu wurden zwei neue Header Fields definiert HIT-From und HIT-To.
Sobald eine Media Session zwischen zwei Hosts verhandelt wurde müssen auch die SIP Nachrichten per HIP direkt zum Peer geleitet werden. Die Proxy-Struktur von SIP ist nur schwer mit HIP vereinbar.

Tests haben gezeigt, dass sich zwei Linphone Clients mit HIPL Unterstüzung fast beliebig zwischen zwei Netzen bewegen können ohne dass die Verbindung abreisst. Eine Unterbrechung ist spürbar da die Konfiguration der Schnittstelle mehr als 35 ms dauert.

Aktuell können nur IPv6 Verbindungen mit HIP kombiniert werden.