以编程方式拨打电话号码并使用iPhone SDK传递DTMF

时间:2009-02-25 03:57:28

标签: ios phone-call

如何以编程方式从iPhone SDK执行以下操作:

  1. 通过iPhone SDK以编程方式拨打电话号码

  2. 绕过iPhone出现的拨号/取消提示

  3. 拨打号码后发送额外的DTMF,就像您将暂停程序编入普通电话一样。

  4. 我知道您可以进行tel://通话,但问题是它会显示拨号/取消提示,之后会阻止任何未来的DTMF发送。

6 个答案:

答案 0 :(得分:30)

iPhone SDK不允许您直接访问拨号号码(想象一下,如果手机上有“坏”程序,并且静音拨打了每分钟付费号码,那么您就不会注意到这一点。)

但是,如果你使用tel链接,那么你应该能够发送“,”插入暂停的字符。

所以要拨打555-1212,然后等待4秒,然后按照你要使用的电话口号做12345#:5551212 ,, 12345#

退房 https://developer.apple.com/library/archive/featuredarticles/iPhoneURLScheme_Reference/PhoneLinks/PhoneLinks.html

答案 1 :(得分:18)

我不知道为什么每个人都说你不能......你 CAN

NSString *phoneNumber = @"15555551212";
NSString *dtmfAfterPickup = @"1234";
NSString *telString = [NSString stringWithFormat:@"tel:%@,%@", phoneNumber, dtmfAfterPickup];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:telString]];

这将拨打 phoneNumber ,绕过拨号/取消提示...在应答呼叫后1秒, dtmfAfterPickup 字符串将自动拨打。

detect whether or not the device support phone calls

是一个好主意

答案 2 :(得分:2)

根据上面的Adam的Apple开发者链接,这个RFC链接解释了有关iPhone支持的电话链接方案的不同选项的更多信息 -

http://www.ietf.org/rfc/rfc2806.txt

这至少允许您在URL中插入带有'p'的暂停,但是根据RFC指定了很多选项(但并非所有选项都是必需的)。还有什么用?

答案 3 :(得分:1)

我使用CoronaSDK和openurl API尝试使用我的iPhone。 它运作得很好! 只需:system.openURL(“tel:[phonenumber],123”)。 您可以使用附加逗号等待更多内容。 使用Corona SDK / iOS7进行测试。

答案 4 :(得分:0)

实际上,我刚试过以下555-555-4822 EXT 8030

即使在按下拨号后它似乎也传输了一些音调(p的数量表示延迟的秒数)。然而,音调没有像预期那样在远端响应,所以有些事情仍然不对。

然而,这确实有效,虽然它更容易出现计时问题,电话:555-555-4822,8030。这只是在连接后暂停一秒钟(,即两秒钟),然后播放8030音

答案 5 :(得分:-1)

你不能这样做。 SDK不允许您在此详细程度中控制手机功能。