【发布时间】:2012-02-01 19:38:06
【问题描述】:
我正在尝试创建一个应用程序,该应用程序将向类似呼叫中心的列表中的优先级 1 联系人发起呼叫。
然后,如果该联系人没有接听电话(让我们在此忘记答录机的整个问题),我想呼叫优先级 2 的联系人,依此类推,直到其中一个接听电话或我用尽了我的名单。
这可能吗?
我尝试了以下方法:
- 挂钩
CTCallCenter.CallEventHandler事件,检查CTCallStateConnected和CTCallStateDisconnected的呼叫状态,我让它响应呼叫断开的事实,没有连接,然后尝试发起另一个呼叫就像我第一次做的那样,但第二次尝试只是死在水里。 - 重写
DidEnterBackground方法,并定期检查CTCall.CallState属性,基本上再次尝试响应从未连接过的断开连接,但这似乎也不起作用
我还尝试在检测到断开状态后在尝试下一次拨号之前添加一个短暂的延迟(1 秒、2.5 秒和 10 秒),以允许电话应用程序在中止呼叫后“稳定下来”,但这并没有改变任何东西。
【问题讨论】:
-
您可以考虑通过 Twilio 号码执行此操作。他们有这种流程的示例代码。
-
我肯定会更多地关注 Twilio,但粗略的一看告诉我这不是我想要的。目前,呼叫必须来自我的电话并转到优先级为 1 的呼叫者,以便他/她看到是我。另外,这个应用程序会被其他人安装,并且让这些人都设置他们自己的twilio帐户不在这个应用程序的范围内(如果我在这里理解有问题,请纠正我。)
-
我知道这可能是一个很长的机会,但您是否尝试在一段时间后使用
[self performSelector:<#(SEL)#> withObject:<#(id)#> afterDelay:<#(NSTimeInterval)#>]发送您的第二个呼叫@ 使用 iOS 有一段时间向我展示了您通常必须在延迟后发送事件(特别是在您切换到手机视图的情况下需要 UI 动画)。 -
这听起来像是您会使用 Google Voice 来做的事情。 google.com/googlevoice/about.html
标签: iphone ios core-telephony