2009-02-25 3 views
30

Jak programowo wykonać następujące czynności z iPhone SDK:programowe wybieranie numeru telefonu i przekazać DTMF za pomocą iPhone SDK

  1. programowe wybieranie numeru telefonu za pośrednictwem iPhone SDK

  2. ominąć zadzwoń/anuluj monit, że iPhone wywołuje

  3. Po wybraniu numeru wyślij dodatkowy DTMF, tak jak zaprogramowałeś pauzy w zwykłym pho ne.

Wiem, że można zrobić tel:// rozmowę, ale problemem jest to, że przynosi się pokrętło/anulować szybka i po to, że uniemożliwia przyszłe DTMF przed wysłaniem.

Odpowiedz

30

Zestaw SDK dla iPhone'a NIE daje bezpośredniego dostępu do numerów wybierania (wyobraź sobie, że w telefonie pojawił się "zły" program i wybrał numer na minutę, aby go nie zauważyć).

Jednakże, jeśli korzystasz z łącza tel, powinieneś być w stanie wysłać to "," znaki wstawiające pauzy.

więc wybierać 555-1212, następnie odczekać 4 sekundy, a następnie wykonaj 12345 # na tonowego byś wykorzystać tel: 5551212, 12345 #

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

-Adam

+0

Problem z metodą tel: // polega na tym, że polecenie Dial/Cancel powoduje, że iPhone zignoruje każde dtmf po numerze. Czy masz kod, w którym udało ci się minąć dtmf po faktycznej liczbie? –

+0

Raporty zdają się wskazywać, że adresy URL stron internetowych cierpią z powodu tego problemu, ale prawdziwe aplikacje nie: http://forums.macrumors.com/showthread.php?t=484177 Czy próbujesz utworzyć aplikację na iPhone'a, lub webapp? –

+0

Jest to aplikacja iPhone na bazie SDK, ale moje początkowe testy dotyczyły połączeń tel. //: //. Wypróbuję DTMF w SDK –

-1

Nie możesz tego zrobić. Zestaw SDK nie pozwala kontrolować funkcji telefonu na tym poziomie szczegółowości.

0

Właściwie próbowałem następujących 555-555-4822 EXT 8030

I wydaje się, że przekazuje niektóre tony nawet po naciśnięciu pokrętła (liczba p reprezentuje liczbę sekund opóźnienia). Jednak dźwięki nie reagują na koniec tak, jak tego oczekiwano, więc coś jest nadal nie w porządku.

To jednak działa, chociaż jest nieco bardziej podatne na problemy z synchronizacją tel: 555-555-4822, 8030. Po prostu zatrzymuje się na jedną sekundę (,, będzie dwie sekundy) po nawiązaniu połączenia, a następnie odtwarza 8030 tony

2

Per firmy Apple linku deweloperskim Adama powyżej, nie ten link RFC, która wyjaśnia więcej na temat różnych opcji programu łącza telefonicznego że iPhone obsługuje -

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

to przynajmniej pozwala na wstawianie pauza z "p" w adresie URL, ale wiele opcji jest określonych (ale nie wszystkie wymagane) według RFC. Co jeszcze działa?

18

Nie wiem, dlaczego wszyscy mówią, że nie możesz ... ty CAN!

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

Ten wybierze PhoneNumber pominięciem pokrętło/anulować szybka ...1 sekundę po odebraniu połączenia zostanie automatycznie wybrany ciąg znaków.

Jest to dobry pomysł, aby detect whether or not the device support phone calls

+0

możesz dodać kolejne 1-sekundowe pauzy, wstawiając przecinki do łańcucha dtmfAfterPickup. NSString * dtmfAfterPickup = @ "1,2,3,4"; Spowoduje to dodanie 1-sekundowej przerwy po każdym numerze – AlBeebe

+0

Czy istnieje możliwość zarejestrowania rozmowy telefonicznej za pomocą interfejsu API? –

+1

Nie można nagrać rozmowy telefonicznej w zestawie SDK iOS – AlBeebe

1

Próbowałem z mojego iPhone przy użyciu CoronaSDK i OpenURL API. Działa bardzo dobrze! Po prostu wykonaj: system.openURL ("tel: [numer faksu], 123"). Możesz poczekać więcej z dodatkowymi przecinkami. Testowany z Corona SDK/iOS7.