是否可以在客户端和 VOIP 提供商之间放置一个 SIP 代理服务器?
is it possible to put a SIP proxy server between clients and VOIP provider?
我在供应商处有一个 SIP 帐户,它仅支持 UDP 作为传输协议。
我读到对于移动客户端应用程序,如 CSipSimple 和其他应用程序,UDP 传输需要非常频繁的保持活动数据包发送,这会严重影响电池使用。
显然,在这种情况下,TCP 协议会好得多,因为保持活动的频率较低。
我想知道...我可以在服务器上设置 SIP 代理并使其连接到我的供应商并为客户端提供 TCP 连接吗?某种 "man in the middle" 服务器。我该怎么做?
(也许我误解了"SIP proxy"的"proxy"?)
你可以把SIP代理(例如Kamailio)放在中间,甚至是PBX(例如Asterisk,Freeswitch)。
对你来说最简单的方法可能是在两者之间使用 Asterisk,它很容易配置。尽管如此,切换到 TCP 可能对您没有帮助。这取决于您打算使用的手机 - Android 或 iPhone。对于 iPhone TCP 工作得很好,但在最新的 Android 版本 6.0 中是新的打瞌睡模式,它将终止所有连接,甚至包括 TCP,因此对于 Android 您将需要添加推送功能将在 Android 唤醒 CSipSimple。在 iPhone 上推送不是必需的,但可能也是推荐的。
我在供应商处有一个 SIP 帐户,它仅支持 UDP 作为传输协议。
我读到对于移动客户端应用程序,如 CSipSimple 和其他应用程序,UDP 传输需要非常频繁的保持活动数据包发送,这会严重影响电池使用。
显然,在这种情况下,TCP 协议会好得多,因为保持活动的频率较低。
我想知道...我可以在服务器上设置 SIP 代理并使其连接到我的供应商并为客户端提供 TCP 连接吗?某种 "man in the middle" 服务器。我该怎么做?
(也许我误解了"SIP proxy"的"proxy"?)
你可以把SIP代理(例如Kamailio)放在中间,甚至是PBX(例如Asterisk,Freeswitch)。
对你来说最简单的方法可能是在两者之间使用 Asterisk,它很容易配置。尽管如此,切换到 TCP 可能对您没有帮助。这取决于您打算使用的手机 - Android 或 iPhone。对于 iPhone TCP 工作得很好,但在最新的 Android 版本 6.0 中是新的打瞌睡模式,它将终止所有连接,甚至包括 TCP,因此对于 Android 您将需要添加推送功能将在 Android 唤醒 CSipSimple。在 iPhone 上推送不是必需的,但可能也是推荐的。