Программный набор номера телефона и передача DTMF с помощью iPhone SDK

Как вы программно выполните следующие действия с iPhone SDK:

  • Программный набор номера телефона через iPhone SDK

  • Обходите приглашение набрать/отменить, которое iPhone вызывает

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

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

Ответ 1

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

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

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

Отъезд https://developer.apple.com/iphone/library/featuredarticles/iPhoneURLScheme_Reference/Articles/PhoneLinks.html

-Adam

Ответ 2

Я не знаю, почему все говорят, что вы не можете... вы CAN!

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

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

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

Ответ 3

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

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

Это, по крайней мере, позволяет вставлять паузы с "р" в URL-адресе, но указано много параметров (но не все они требуются) в RFC. Что еще работает?

Ответ 4

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

Ответ 5

Собственно, я просто попробовал следующий 555-555-4822 EXT 8030

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

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

Ответ 6

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