English 中文(简体)
在 iPhone VOIP 应用程序中保持SIP 登记活期,间隔不到600秒
原标题:Keeping SIP registration alive for interval less than 600 seconds in iPhone VOIP app

我正在执行一个 VOIP 应用程序, 我在此使用 SIP 协议 。 根据 SIP 程序, 我需要在一定的间隔内更新 SIP 服务器的注册。 但当我的应用程序在背景内使用时, 我的保存处理器只在600秒后被作为文件 OS App 使用。 但这不是 SIP 协议所希望的 。 要能够保持我与服务器的连接并接收收到的电话, 我需要在600秒前发送注册信息, 即使应用程序是背景的。 根据苹果文件, 这是不可能的, 但是在背景内运行的 AppStore 上我仍然看到应用程序, 即使注册间隔为60秒, 并保持其在 SIP 服务器上的注册 。 他们如何在整个背景内保持程序运行? 我知道在背景内播放静音会生存下来, 但是程序会拒绝它 。 但是, 如果它存在的话, 苹果是如何允许在 AppStor 上使用其它这样的应用程序的? 是否有某种标准的方法来实现我前面描述的? 任何帮助都会受到赞赏 。

问题回答

您不必更经常地发送注册信息。 您可以这样做 : 配置您的服务器, 将保存的软件包发送到您的吸水客户端, 以便保持 TCP 连接的打开 。 您的服务器应该支持 TCP 连接, 您的客户端应该通过 TCP 进行通信, 因为苹果在背景模式上非常严格, 只有 TCP 连接允许在背景中保持开放( 如果您的 TCP 套接字被 CFREadStreamRef 包包包包包包包包) 。

问题在于没有注册信息, 这可以由客户端配置, 指定连接尝试之间的时间, 吸量在两个注册信息之间间隔1小时后会好起来。 真正的问题在于服务器如何在接到电话或 IM 时联系吸量客户端 。 大多数吸量客户将没有公开的 IP 缩写, 但很可能是 NAT 背后的 。 因此吸量服务器无法打开与吸量客户端的直接连接, 因此您必须在您的客户端和服务器之间保持套接线 。

公寓里没有一个应用程序 经常发送超过600秒的登记信息。

您是否使用自己的库来吸水或使用 pjsip? 如果您使用 pjsip, 我可以给您更多提示。 您计划使用什么 SIP 服务器?

一些提示 :

  • 确保您在 App- info. plist 中设置所需的背景模式, 以“ AP 提供IP 服务语音” 和“ App 播放音频” 。

  • 如果您的应用程序不会被绑在您的空口服务器上, 那么会为用户提供一种方法, 使用户禁用允许- contact_ rewriter pjsip pram( 通常为您希望它能够绕过 nat 问题), 因为有些会话边框控制器对此功能不满意

  • 确定, 如果您在主线中捕捉信件发送时, 您正在使用一种方法将信件张贴在主线中 。

  • 这里介绍一些其他有趣的问题。

  • 有许多咖啡准备:))





相关问题
List Contents of Directory in a UITableView

I am trying to list the contents of Ringtones directory in a TableView, however, I am only getting the last file in the directory in ALL cells, instead of file per cell. This is my code: - (...

iPhone NSUserDefaults persistance difficulty

In my app i have a bunch of data i store in the NSUserdefaults. This information consists of an NSObject (Object1) with NSStrings and NSNumbers and also 2 instances of yet another object (Object2). ...

Writing a masked image to disk as a PNG file

Basically I m downloading images off of a webserver and then caching them to the disk, but before I do so I want to mask them. I m using the masking code everyone seems to point at which can be found ...

Resize UIImage with aspect ratio?

I m using this code to resize an image on the iPhone: CGRect screenRect = CGRectMake(0, 0, 320.0, 480.0); UIGraphicsBeginImageContext(screenRect.size); [value drawInRect:screenRect blendMode:...

Allowing interaction with a UIView under another UIView

Is there a simple way of allowing interaction with a button in a UIView that lies under another UIView - where there are no actual objects from the top UIView on top of the button? For instance, ...

热门标签