2009-08-18 2 views
8

Ich habe es geschafft, mit der JAIN-SIP-API für Java einen SIP-Anruf aufzubauen.Wie starte ich den RTP-Stream innerhalb eines SIP/SDP-Anrufs?

Jetzt möchte ich einige Videos streamen, sobald ein Dialog eingerichtet wurde. Ich habe gelesen, dass dies mit SDP und RTP möglich ist, und ich habe mehrere Beispiele gefunden, wie man einen SDP/RTP-Body in einem SIP-Paket definiert.

Aber sobald Sie die Fähigkeit usw. auf Knoten ausgehandelt haben, Wie starten Sie eigentlich den RTP-Stream? Starten Sie einen RTP-Streaming-Server außerhalb oder innerhalb Ihrer Java-Anwendung? Wenn das so ist, wie? Was ist die Verbindung?

In dem, was ich online finden kann, beginnen Knoten nur "Austausch von RTP-Paketen".

Vielen Dank.

Antwort

4

Sie benötigen einen RTP-Stack. Wenn Sie anfangen, ist es am besten, alles in der gleichen App zusammen zu halten. JMF (Java Media Framework), (JMF-RTP Architecture) ist ein guter Anfang, obwohl es andere wie JRTP gibt. JMF Video-Spezifika finden Sie here

0

Versuchen Sie, nach Stichwort "RE-INVITE" und entsprechende Beispiele zu suchen. Sobald Sie einen anderen Audio-/Video-Stream in einem bestehenden SIP-Anruf mit bereits bestehenden Medien benötigen, müssen Sie die neue INVITE/OK/ACK-Sequenz starten. Neue Streams können Ihre vorhandenen Medienströme ersetzen oder hinzugefügt werden. Es ist Ihre Wahl und das hängt von der Signalisierung ab. Natürlich benötigen Sie einen RTP-Stack mit unterstützten Funktionen/Codecs, um Ihre tatsächlichen Anforderungen zu erfüllen.

Benutzer implementieren dies oft, um T.38-Fax-Switching innerhalb von SIP-Anrufen zu handhaben. Sie können den erforderlichen Referenzprotokoll-Dumping-Anruf von einem Gerät erhalten, das T.38 unterstützt (oder tatsächlich über eine Modem-über-IP-Unterstützung verfügt). Denken Sie daran, dass Ihre Voice-Streams LBR-Codecs (niedrige Bitrate) wie G.729 oder G.723.1 sein sollten. Dies könnte Ihnen viele Antworten geben, zumindest wenn Sie RTP starten und dies signalisieren möchten. Zumindest INVITE mit vorgeschlagenen neuen RTP-Stream initiieren, sollten Sie bereit sein, diesen Stream von Anfang an zu empfangen. Sie können beginnen, RTP nach OK zu senden, mit den vorgeschlagenen Ports 'Where', um RTP zu senden.