Peer 2通过PJSIP和PJSUA进行对等呼叫



我仍在学习SIP及其所有协议,特别是尝试将PJSIP集成到iPhone应用程序中以进行p2p呼叫。我有一个关于使用pjua的对等2点连接的问题。我有能力通过使用URI:

直接调用,可以完美地调用本地网络上的其他客户端:
  • sip: 192。 . *: 5060

我很好奇这是否会起作用直接调用不在本地的其他SIP uri网络不使用服务器配置-如果不是这种方式,有没有另一种方式使p2p呼叫不使用服务器配置?

提前致谢

作为一般原则,您可以在不配置服务器的情况下进行调用,但是某些需要配置。正如mattjgalloway在你的问题下面的评论中指出的那样,最有力的解决方案是一罐涉及ICE的蠕虫,它提供了一种"伞"。

上次我触及这个问题时,我有一个要求,我不能使用基于互联网的SIP服务器来帮助。我想到了一个注册表的概念:你的客户端可以定义一堆"地址空间"。具有特定的路由要求。对于局域网中的SIP uri,您不定义路由;对于你公司的VPN接入网络中的uri,你定义一条通过你的VPN连接的路由;对于其他的东西,你可以通过你的互联网路由器定义一个路由。

所谓"定义路由",我的意思是当你在某个特定的地址空间中对URI进行调用时,你将存储哪些IP将进入Contact报头,哪些路由报头可能需要,等等。

因此,调用过程变成:

  1. 在地址空间集合中查找匹配项
  2. 请求地址空间中需要合适的位来制作一个可行的INVITE(适当的联系人报头详细信息,路由报头等)
  3. 构建一个正常的INVITE,根据前一步的需要进行变异。
  4. 正常发送INVITE。

这基本上复制了ICE会给你的一半内容,以手动管理的形式。"一半",因为这确保了一个SIP代理可以发出呼叫,从而使SIP路由全部工作。缺失的一半是,您仍然需要某种注册器,并且联系人列表中的每个代理都需要有必要的设置来接收传入呼叫。(如果代理在nat internet路由器后面,路由器将需要运行SIP代理,或者将端口5060,5061转发到特定的机器(可能是代理,或者为LAN代理服务的代理)。

基本问题是解决在互联网上的任何地方为多媒体通信获得传输端口的问题。许多公司/专家都试图解决这个问题。一种可能的解决方法是购买一个域名,并在一个可从互联网访问的地址上使用YATE或Asterisk设置一个基本注册商,并根据需要将其配置为也使用ICE。两端的iphone应用程序可以在启动时自动注册到它。

相关内容

  • 没有找到相关文章

最新更新