gpt4 book ai didi

iPhone,调用另一个电话号码以响应第一个未接听的电话号码?

转载 作者:IT王子 更新时间:2023-10-29 08:04:00 26 4
gpt4 key购买 nike

我正在尝试创建一个应用程序,该应用程序将向类似调用中心的列表中的优先级为 1 的联系人发起调用。

然后,如果那个联系人没有接听(让我们忘记这里答录机的整个问题),我想调用优先级 2 联系人,依此类推,直到他们中的一个接听或者我用完我的名单。

这可能吗?

我试过以下方法:

  1. 连接到 CTCallCenter.CallEventHandler 事件,并检查 CTCallStateConnectedCTCallStateDisconnected 的调用状态,我让它响应事实上,调用已断开,从未连接,然后尝试发起另一个调用,就像我第一次那样,但第二次尝试只是死在水里。
  2. 覆盖 DidEnterBackground 方法,并定期检查 CTCall.CallState 属性,基本上再次尝试响应从未连接的断开连接,但这似乎没有要么工作

我还尝试在尝试下一次拨号之前检测到断开连接状态后添加一个短暂的延迟(1 秒、2.5 秒和 10 秒),以允许电话应用程序在中止调用后“安定下来”,但这并没有改变一切。

最佳答案

我认为最好在电话目的地解决这个问题。我要么让电话公司配置“跟我来”服务,使用 Twilio 或其他一些第三方服务(如前所述),要么使用类似 Asterisk 的东西配置我自己的 PBX。 (Asterisk 包括配置“跟随我”类型行为的能力)。它为您提供了更大的灵 active 和控制力,即使您确实找到了在 iOS 中本地执行此操作的方法。

话虽如此,我确实在 iOS 中实现了它,假设如下:

  1. 您的应用发起调用。
  2. 电话应用已打开,调用号码,然后断开连接。
  3. 用户明确返回您的应用。如果您在应用后台运行时设法获取事件,我想了解更多 :-)。
  4. 将控制权交还给您的应用后,将发送电话事件并发起新的通话。

我的 UIApplicationDelegate didFinishLaunchingWithOptions 方法中有以下代码片段:

// In appdelegate header, ct is declared as @property (strong, nonatomic) CTCallCenter *ct; 
self.ct = [[CTCallCenter alloc] init];
self.ct.callEventHandler = ^(CTCall *call) {
if (call.callState == CTCallStateConnected) {
// do some state management to track the call
} else if (call.callState == CTCallStateDisconnected) {
// check that this is the expected call and setup the
// new phone number
NSURL *telURL = [NSURL URLWithString:myNewNumberURL];
[application openURL:telURL];
}
};

这将进行新的调用。我正在使用 iOS 5 SDK;在 iPhone 4s 上测试。

编辑:

使用 Return to app behavior after phone call different in native code than UIWebView作为起点,我已经设法让它发挥作用。请注意,为了清楚起见,我已经对内存管理下了赌注。假设您在调用完成后使用 Web View 技术返回您的应用程序,请在调用完成 block 中尝试类似这样的操作:

else if (call.callState == CTCallStateDisconnected) {
// check that this is the expected call and setup the
// new phone number
NSURL *telURL = [NSURL URLWithString:myNewNumberURL];
dispatch_async(dispatch_get_main_queue(), ^{
UIWebView *callWebview = [[UIWebView alloc] init] ;
[self.window.rootViewController.view addSubview:callWebview];
[callWebview loadRequest:[NSURLRequest requestWithURL:telURL]];
// and now callWebView sits around until the app is killed....so don't follow this to the letter.
});
}

但是,这也可能无法满足您的需求。用户将收到有关每个调用请求的警报,从而提供取消调用的机会。

关于iPhone,调用另一个电话号码以响应第一个未接听的电话号码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8717780/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com