如何在SIP / SDP呼叫中启动RTP流

我已经设法使用JAIN-SIP API for Java建立SIP呼叫。

现在,我想在建立对话框后传输一些video。 我已经读过SDP和RTP可以实现这一点,并且我已经找到了关于如何在SIP数据包中定义SDP / RTP主体的多个示例。

但是,一旦您在节点上协商了function等, 您如何实际启动RTP流? 您是在Java应用程序之外还是内部启动RTP流服务器? 如果是这样,怎么样? 链接是什么?

在我能够在网上找到的,节点只是“开始交换RTP数据包”。

谢谢。

你需要一个RTP堆栈。 在您开始时,最好将所有内容保存在同一个应用程序中。 JMF (Java媒体框架), (JMF-RTP架构)是一个很好的起点,尽管还有其他像JRTP 。 JMFvideo细节可以在这里找到

尝试搜索关键字“re-INVITE”和相应的示例。 一旦您发现自己需要另一个音频/video流进入已建立媒体的现有SIP呼叫,您需要启动新的INVITE / OK / ACK序列。 新流可以替换现有媒体流或可以添加。 这是你的选择,这取决于信号。 当然,您需要具有支持function/编解码器的RTP堆栈以满足您的实际需求。

人们经常实现这一点来处理SIP呼叫内的T.38传真切换。 您可以从支持T.38的设备(或实际上具有IP支持的任何调制解调器)获取所需的参考日志转储呼叫。 请记住,您的语音流应该是LBR(低比特率)编解码器,例如G.729或G.723.1。 这可以为你提供许多答案,至少“何时”启动RTP以及如何发出信号。 至少使用建议的新RTP流启动INVITE,您应该准备好从一开始就接收此流。 您可以在OK之后开始发送RTP,建议端口’where’发送RTP。