我在启动媒体会话并将其与我的 SIP 客户端结合时遇到问题。我设计了一个递归 SIP 客户端,它根据 RFC 中记录的可接受序列和我阅读的示例,重用相同的请求模板将下一个请求发送到服务器。据我所知,SIP 部分工作正常,可以很好地注册服务器邀请并进行身份验证。我还没有完成对客户端的任何调用,因为需要填充内容标头(我还没有,所以我从服务器得到一个 503,我猜这没问题)。
很长一段时间我不知道从哪里开始媒体会话,慢慢学会了如何使用JMF,我已经构建了一个处理RTP传输的对象,现在我站在十字路口,在一个一方面我有我的 SIP 信令,但它需要 SDP 内容标头来完成邀请,另一方面我有知道如何 p2p 的 RTP。
为了完成我的设计,我需要您帮助解决以下问题:
是否有一种简单的//一种简单的//一种将音频/视频格式从 JMF 转换为 SDP 媒体标头的实施方法?甚至是一个生成器,我可以输入内容头的所有参数,它会快速生成一个内容头,还是我必须自己实现这个?
一旦我完成了 SDK 的构建并且 SIP 启动并运行并且我从服务器获得了 OK 响应(在响铃之后),我如何启动媒体会话?如何根据我在 SIP 邀请中发送的呼叫者详细信息连接 p2p?
如果 2 是正确的,那么如何连接到陆线?陆线是否知道一旦他们将 OK 发送回服务器,他们会在特定端口上侦听/启动 RTP 会话?
还是我把一切都弄错了?:-/
我真的很感谢我能得到的任何帮助,我到处寻找答案,但他们并不清楚,他们忽略了问题 2,就好像这是一件显而易见的事情,但对我来说,事实并非如此。
在此先感谢亚当·泽哈维。
添加:
首先感谢您的回复以及您花时间帮助我。
我会回到问题2:
一旦您收到 Ok 响应,您就会知道 SIP 用户代理服务器 (UAS) 正在侦听的 IP 套接字(您的意思是 ADDRESS:PORT 正确吗?)以及它接受并可以开始发送您的 RTP 的编解码器。
好吧,我明白了,我想知道另一件事,在我向 UAS 发送 RTP 数据包的这段对话期间,UAS 用作两个 UAC 之间的桥梁。
现在...我可以使用 SIP 实例化会话,然后将客户端信息从一台计算机发送到另一台计算机,并在两台计算机之间建立 P2P,无需任何中间人(UAS),然后处理 SIP 会话吗?
我希望我现在能更好地解释我自己...
谢谢,亚当。