7 votes

Comment appeler depuis la console ?

Comment passer ou recevoir un appel depuis la console ?

Je m'attendais à quelque chose comme ça, style UNIX :

make_call +3750291234567 < played_data.wav > recorded_data.wav

wait_for_call < played_data.wav > recorded_data.wav 2> call_info.txt

De préférence, cela ne devrait pas avoir d'effets secondaires comme des sons provenant de l'appareil. Le téléphone est le Xperia X10 (pour lequel l'enregistrement des appels est censé fonctionner).

Je veux que les appels soient scriptables comme les autres choses de Linux auxquelles je suis habitué.

9voto

Joe Points 386

Vous ne pourrez pas y parvenir en utilisant uniquement des outils userland, comme ceux que vous décrivez, du moins pas pendant l'exécution d'Android.

La raison en est que le RIL ouvre le dispositif radio (généralement un nœud de dispositif sous /dev/* ) en tant que service linux de bas niveau et, bien qu'il dispose d'un verrou exclusif sur le dispositif, rien d'autre ne peut lire ou écrire sur la radio. Le RIL communique ensuite avec la plate-forme Android pour tous les événements liés à la radio.

Cela pourrait être fait avec quelques extensive en modifiant le noyau Linux sous-jacent (il s'agit d'un code source ouvert, ce qui est tout à fait possible si vous n'avez pas peur de vous salir les mains en C), ou en remplaçant le démon RIL (ce qui n'est pas aussi facile, car le démon rild es no Il n'est donc pas possible de savoir quelle est la mise en œuvre sous-jacente sans faire de l'ingénierie inverse). Cette dernière solution empêchera Android de l'utiliser correctement, à moins que vous ne trouviez un canal de compatibilité pour assurer la communication par procuration entre le nouveau RIL et le RIL existant - et même dans ce cas, il y a de fortes chances qu'Android s'embrouille lorsqu'il essaiera de passer un appel (sachant que le modem ne devrait pas être actuellement en service, mais obtenir une réponse de la radio disant qu'elle est en service).

Si ce n'est pas le cas, vous pouvez également y parvenir en remplaçant l'application Téléphone et en utilisant des API de plate-forme entièrement natives. Mais je pense que cela ne fonctionnera pas (du moins d'après ma connaissance du fonctionnement des radios HTC). Dans un appareil HTC, lorsque vous passez un appel, Android informe rild qui passe l'appel, et ensuite rild indique à la radio qu'il doit acheminer tout le son de l'appel par le haut-parleur du combiné et acheminer tout le son capté par le microphone dans l'appel téléphonique. La plate-forme Android ne gère pas elle-même l'acheminement du son de l'appel.

Tout ce qui précède nécessite de rooter l'appareil et d'installer une ROM personnalisée au minimum.

5voto

Steve Obbayi Points 1499

Vous devriez être en mesure de passer des appels téléphoniques facilement en ligne de commande, en supposant que vous ayez Root.

La commande est service call phone 2 s16 "+18001231234" . Cela permettra d'appeler automatiquement ce numéro de téléphone.

Cependant, tout cela se fait au premier plan. Si vous aviez le téléphone, vous verriez les écrans d'appel normaux s'afficher. Si vous essayez de lancer un appel téléphonique en arrière-plan sans que l'utilisateur le sache, je ne sais pas comment vous pourriez le faire.

De plus, cela ne sert qu'à envoyer des appels, pas à en recevoir. Il n'est pas possible d'ajouter un fichier son à l'appel au lieu d'utiliser le microphone réel, ni d'enregistrer le son entrant.

Plus d'informations : Android - Appeler/composer à partir de la ligne de commande du shell adb

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X