2009-08-18 32 views
8

我已经设法使用Java的JAIN-SIP API设置SIP呼叫。如何在SIP/SDP呼叫中启动RTP流

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

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

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

谢谢。

回答

4

您需要一个RTP堆栈。正如你刚开始的时候,最好将所有的东西放在同一个应用程序中。 JMF(Java Media Framework),(JMF-RTP Architecture)是一个很好的开始,但也有其他人喜欢JRTP。可以找到JMF视频细节here

0

尝试搜索关键字“re-INVITE”和适当的示例。 只要您发现自己需要将另一个音频/视频流转换为已有媒体的现有SIP呼叫,则需要启动新的INVITE/OK/ACK序列。 新的流可以替代您现有的媒体流或可以添加。这是您的选择,这取决于信号。当然,您需要RTP堆栈支持能力/编解码器来满足您的实际需求。

人们经常实现这个功能来处理SIP呼叫中的T.38传真交换。您可以从支持T.38的设备(或实际上具有任何支持IP的调制解调器)获取所需的参考日志转储呼叫。请记住,您的语音流应该是LBR(低比特率)编解码器,例如G.729或G.723.1。这可能会给你带来很多答案,至少在何时开始RTP以及如何发信号。至少启动建议的新RTP流邀请,您应该准备好从一开始就接收此流。您可以在建议的端口'where'发送RTP后,开始发送RTP。