【问题标题】:pjsip iOS handling ip change during callpjsip iOS在通话期间处理ip更改
【发布时间】:2016-06-03 11:09:09
【问题描述】:

我想在 ios 上使用 pjsip 在正在进行的通话期间处理从 wifi 到 4g 的 ip 更改并返回。
我已按照 pjsip 网站上的所有步骤操作:https://trac.pjsip.org/repos/wiki/IPAddressChange,在这里我发现在发送pjsua_acc_set_registration(the_acc_id, PJ_FALSE); 后呼叫已断开。 另外我不知道如何在第 4 点发送重新注册。

“最后,一旦上述 2b) 中的注销完成, 重新注册(使用 TCP)。”

任何可以让我解决问题的建议、建议、任何资源的链接都很好。

【问题讨论】:

  • IP 地址更改后重新注册后如何更新传输。请帮帮我

标签: ios ip-address pjsip


【解决方案1】:

为了获得 Internet/IP 更改,您可以使用 Apple Reachability API 或使用 Tony 的 Reachability。在可达性变化观察器中,您可以比较以前的 IP 地址系列和当前的 IP 地址系列。

如果两者都来自同一个系列,例如 last 和 new 属于同一个 ip 系列 IPV4 或 IPV6 而不是

  1. 获取当前通话信息。
  2. 使用 pjsip 方法 pjsua_call_reinvite() 并使用标志 PJSUA_CALL_UPDATE_CONTACT

如果两者都来自不同的家庭,例如最后一个属于 IPV4,而新的属于 IPV6,反之亦然,则使用以下步骤。

  1. 发送注册请求
  2. 获取当前通话信息。
  3. 使用 pjsip 方法 pjsua_call_reinvite() 并使用标志 PJSUA_CALL_UPDATE_CONTACT

【讨论】:

    【解决方案2】:

    从 2.7 版开始,有第二种方法:

    方法 2:选择性更新

    或者,可能有一种方法可以让堆栈继续 运行,必要时更新地址信息。这种方法 将需要使用一些特定的功能,以及一些 当应用程序检测到 IP 地址有 改变了。

    下面会解释具体的配置和任务。注意我们 假设 SIP 和媒体套接字绑定到 INADDR_ANY (0.0.0.0) 而不是特定的接口 IP 地址(这是 默认行为)。

    2.7 或更高版本的更新:应用程序可以应用此选择性更新 更简单的方法,请检查票#2041

    【讨论】:

    • 你试过这个功能吗?我尝试使用“handleIpChange”功能并面临问题。它并不总是有效。
    • 迈克尔凯斯勒同样的问题。它并不总是有效。
    【解决方案3】:

    您的reference中描述了最简单可靠的方法:

    最直接的解决方案当然是重新启动一切,这意味着在 pjsua 术语中调用pjsua_destroy(),然后调用pjsua_create()pjsua_init(),等等。

    要检测 4G/WiFi 变化,您应该使用 Apple Reachability API,伟大的包装器是 Tony Million 的 AFNetworkReachabilityManagerReachability。我在自己的项目中使用了这种方法,并且效果很好。

    【讨论】:

    • 谢谢马克西姆,但如果你这样做并且你有一个正在进行的呼叫,呼叫将被挂断。我已经设法在正在进行的通话中更新了 IP 更改的传输,当我找到更多时间时,我将在这里添加我是如何实现的。
    • 在我的情况下,掉线不是一个大问题,看到你解决这个问题会很有趣:)
    • 嘿,你最后是怎么解决这个问题的?我也面临同样的问题
    • @MaximPavlov,当你这样做时,呼叫掉线并且客户端实际上再次拨到另一端?它实际上在另一边响起?还是通话会自动接通?
    • @MichaelKessler 在我的例子中很简单:在 Freeswitch 服务器上有一个电话会议,如果任何参与者由于某种原因掉线,它只需要再次呼叫服务器。我知道在 p2p 调用的情况下事情会变得更加复杂。
    猜你喜欢
    • 1970-01-01
    • 2011-12-03
    • 1970-01-01
    • 1970-01-01
    • 2018-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-21
    相关资源
    最近更新 更多