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

9
我已成功使用Java的JAIN-SIP API建立了一个SIP呼叫。
现在,我想在建立对话后流式传输一些视频。我已经了解到这可以通过SDP和RTP实现,并且找到了多个示例来定义SIP数据包中的SDP / RTP体。
但是一旦在节点上协商了能力等等,你如何实际启动RTP流?您是否需要在Java应用程序内部或外部启动RTP流服务器?如果是这样,怎么做?它们之间有什么关联?
在我能够在线找到的资料中,节点只是“开始交换RTP数据包”。
谢谢。
2个回答

5
你需要一个RTP堆栈。由于你刚开始,最好将所有东西都放在同一个应用程序中。Java媒体框架(JMF)(JMF-RTP架构)是一个不错的起点,尽管还有其他像JRTP这样的工具。关于JMF视频的细节可以在这里找到。

0
尝试搜索关键词“re-INVITE”和相关示例。 一旦您发现需要将另一个音频/视频流添加到已建立媒体的SIP呼叫中,您就需要启动新的INVITE / OK / ACK序列。 新流可以替换现有的媒体流或者可以添加。这取决于信令。当然,您需要具备满足实际需求的RTP堆栈和支持的编解码器。
人们经常使用此功能来处理SIP通话内部的T.38传真切换。您可以从支持T.38(或实际上拥有任何调制解调器)的设备转储所需的参考日志。请记住,您的语音流应该是LBR(低比特率)编解码器,例如G.729或G.723.1. 这至少可以为您带来许多答案,至少可以了解何时开始RTP以及如何进行信令。至少在使用提议的新RTP流初始化INVITE之后,您应该准备好从一开始就接收此流。您可以在OK后使用提议的端口开始发送RTP。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接