Программно наберите номер телефона и передайте DTMF с помощью iPhone SDK - PullRequest
30 голосов
/ 25 февраля 2009

Как программно сделать следующее из iPhone SDK:

  1. Программно наберите номер телефона через iPhone SDK

  2. Обход набора / отмены запроса, что iPhone вызывает

  3. Отправьте дополнительный DTMF после набора номера так же, как вы программируете паузы в обычном телефоне.

Я знаю, что вы можете сделать tel:// вызов, но проблема в том, что он вызывает запрос набора / отмены и после этого предотвращает отправку любого будущего DTMF.

Ответы [ 6 ]

30 голосов
/ 25 февраля 2009

iPhone SDK НЕ дает вам прямого доступа к набираемым номерам (представьте, если «плохая» программа попала на ваш телефон и набрала номер с оплатой за минуту при отключении звука, чтобы вы не заметили).

Однако, если вы воспользуетесь ссылкой на телефон, вы сможете отправлять ей символы ",", которые вставляют паузы.

Таким образом, чтобы набрать 555-1212, подождите 4 секунды, затем наберите 12345 # на тональном сигнале, который вы используете, тел: 5551212,, 12345 #

Выезд https://developer.apple.com/library/archive/featuredarticles/iPhoneURLScheme_Reference/PhoneLinks/PhoneLinks.html

18 голосов
/ 09 февраля 2011

Я не знаю, почему все говорят, что ты не можешь ... ты МОЖЕТ !

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

Это наберет номер телефона , минуя приглашение набора / отмены ... Через 1 секунду после ответа на вызов dtmfAfterPickup строка будет набрана автоматически.

Полезно определить, поддерживает ли устройство телефонные звонки

2 голосов
/ 23 июля 2009

В соответствии с приведенной выше ссылкой для разработчиков Apple Адама, есть эта ссылка RFC, которая объясняет больше о различных вариантах схемы телефонной связи, которые поддерживает iPhone -

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

Это, по крайней мере, позволяет вставлять паузы с 'p' в URL, но множество опций указано (но не все обязательны) для RFC. Что еще работает?

1 голос
/ 03 января 2014

Я пытался с моим iPhone, используя CoronaSDK и openurl API. Это работает очень хорошо! Просто сделайте: system.openURL ("тел: [номер телефона], 123"). Вы можете ждать больше с дополнительными запятыми. Протестировано с Corona SDK / iOS7.

0 голосов
/ 16 июня 2009

На самом деле, я только что попробовал следующее 555-555-4822 EXT 8030

И он, кажется, передает некоторые тона даже после нажатия кнопки набора (число p представляет количество секунд задержки). Однако на дальнем конце тоны не реагируют должным образом, поэтому что-то все еще не в порядке.

Это работает, однако, хотя это немного более подвержено проблемам с синхронизацией по тел. 555-555-4822, 8030. Это просто делает паузу на одну секунду (,, будет две секунды) после подключения, а затем воспроизводит 8030 тоны

0 голосов
/ 25 февраля 2009

Вы не можете сделать это. SDK не позволяет управлять функциями телефона на этом уровне детализации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...