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

你如何编程从iPhone SDK中执行以下操作:

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

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

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

我知道你可以拨打电话,但问题是它会提示拨号/取消提示,之后会阻止任何未来的DTMF发送。

iPhone SDK不允许你直接拨打电话号码(想象一下,如果你的手机上有一个'坏'程序,并拨打了每分钟付费静音,所以你没有注意到)。

但是,如果使用tel连接,则应该可以发送“,”插入暂停的字符。

所以要拨打555-1212,然后等待4秒钟,然后按12345#键就可以使用电话:5551212,12345#

查看https://developer.apple.com/iphone/library/featuredarticles/iPhoneURLScheme_Reference/Articles/PhoneLinks.html

-亚当

我不知道为什么每个人都说你不能…你可以!

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

这将拨打电话号码绕过拨号/取消提示… 1秒钟后,电话应答, dtmfAfterPickupstring将自动拨号。

它是一个好主意,以检测设备是否支持电话

根据上面的亚当的苹果开发者链接,这个RFC链接解释了更多关于iPhone支持的电话链接scheme的不同选项 –

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

这至less可以让你在URL中插入一个'p'的暂停,但是每个RFC指定了很多选项(但不是全部都是必需的)。 还有什么作用?

我尝试用我的iPhone使用CoronaSDK和openurl API。 它工作得很好! 只要做:system.openURL(“tel:[phonenumber],123”)。 您可以使用附加逗号等待更多。 经过Corona SDK / iOS7testing。

其实我只是试了下面的555-555-4822 EXT 8030

而且,即使在按下拨号键后,它似乎也传送一些音(p的数字表示延迟秒数)。 然而,音调并没有像预期的那样在远端得到响应,所以还是有些不妥。

然而,这样做还是有效的,但是它更容易出现计时问题,电话号码是:555-555-4822,8030。连接后暂停一秒(即两秒钟),然后播放8030音调

你不能这样做。 该SDK不允许您在这个级别的细节中控制电话function。