Programaticamente Disque um número de telefone e passar DTMF usando o iPhone SDK
-
06-09-2019 - |
Pergunta
Como você programaticamente faça o seguinte a partir do iPhone SDK:
-
Dial programaticamente um número de telefone através do iPhone SDK
-
Bypass o discar / cancelar prompt que o iPhone traz
-
Enviar DTMF adicional após o número é marcado apenas como como você iria programar pausas em um telefone regular.
Eu sei que você pode fazer uma chamada tel://
mas a questão é que ele traz a marcação / cancelar a solicitação e depois que ele impede que qualquer futuro DTMF seja enviado.
Solução
O iPhone SDK não lhe dá acesso directo para discar números (imagine se um programa de 'mau' tem em seu telefone e discou um pagamento por minuto número no mudo para que você não percebeu).
No entanto, se você usar o link tel, então você deve ser capaz de enviá-lo "" personagens que insere pausas.
Assim, para discar 555-1212, e depois esperar 4 segundos, em seguida, fazer 12345 # no tom de toque que você usaria tel: 5551212, 12345 #
Outras dicas
Eu não sei porque todo mundo diz que você não pode ... você CAN !
NSString *phoneNumber = @"15555551212";
NSString *dtmfAfterPickup = @"1234";
NSString *telString = [NSString stringWithFormat:@"tel:%@,%@", phoneNumber, dtmfAfterPickup];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:telString]];
Isto irá marcar o telefoneNumero ignorando a marcação / cancelar prompt de ... 1 segundo após a chamada é atendida, o dtmfAfterPickup string será marcado automaticamente.
É uma boa idéia para detectar se ou não o telefone suporte a dispositivos chama
link desenvolvedor da Apple Por Adam acima, há essa ligação RFC que explica mais sobre as diferentes opções para um esquema de ligação telefónica que os suportes para iPhone -
http://www.ietf.org/rfc/rfc2806.txt
Esta, pelo menos, permite inserir pausas com um 'p' na URL, mas muitas das opções são especificados (mas não todos são necessários) por RFC. O que funciona mais?
Eu tentei com o meu iPhone usando CoronaSDK e API OpenURL. Funciona muito bem! Basta fazer: system.openURL ( "tel: [phonenumber], 123"). Você pode esperar mais com vírgulas additinal. Testado com Corona SDK / iOS7.
Na verdade, eu só tentei o seguinte 555-555-4822 EXT 8030
E parece transmitir alguns tons mesmo depois de premir de marcação (o número de p de representa o número de segundos de atraso). No entanto, os tons não estão sendo respondeu a na extremidade como esperado, assim que algo ainda está errado.
Isto funciona, no entanto, embora seja um pouco mais propensos a problemas de sincronismo tel: 555-555-4822, 8030. Isso só faz uma pausa por um segundo (,, seriam dois segundos) após a conexão, e depois joga o 8030 tons
Você não pode fazer isso. O SDK não permite que você controlar a função de telefone neste nível de detalhe.