Cette id�e va faire plaisir � Xavier CAZIN : c'est la sienne. Le mieux est de le laisser parler :
En fait, je trouverais tr�s utile de cliquer sur un bouton pour appeler une personne retrouv�e dans une base de donn�es par exemple. Surtout si elle se trouve � l'�tranger (minimum 12 chiffres depuis ici). Donc, ce que j'aimerais, ce sont les renseignements n�cessaires au programmeur pour pouvoir construire un frontal qui demande au modem de composer le num�ro choisi, puis affiche un message (si le poste n'est pas occup�) du style "Le t�l�phone sonne, prenez le combin�". Ces petites choses toutes simples demandent de comprendre ce que signifie prendre la ligne et la rel�cher, pour un modem.
Excellent exercice. Alors avec tout ce que l'on vient de dire, au
travail :-)
. En laissant de c�t� la partie base
de donn�es, l'algorithme � utiliser correspond �
l'organigramme d'un appel donn� � titre
d'information au chapitre
Le modem, auquel il
faut rajouter :
/dev/cua<n>
), le configurer. Le mieux est de prendre
exemple sur ce que fait getty ;
Par contre les messages NO DIALTONE (modem pas branch�), et BUSY sont fort int�ressants et permettent d'informer l'utilisateur imm�diatement.
Vous trouverez sur les serveurs ftp habituels quelques petits programmes permettant d'afficher l'�tat de la jonction. Vous pourrez vous int�resser particuli�rement � la fa�on de r�cup�rer les informations (plut�t que sur l'interface utilisateur qui est l'exemple m�me de ce qu'il ne faut pas faire).
/pub/linux/sunsite/system/Serial/modem-stats-1.0.tar.gz
/pub/linux/sunsite/system/Serial/statserial-1.1.tar.gz
/pub/linux/sunsite/system/Serial/modemstat-0.2.tgz
Un bon point pour statserial aussi simple que bien pr�sent�, en mode texte.
Lu dans comp.os.linux.development.apps cette demande
Existe-t-il un utilitaire que je pourrais utiliser dans un shell-script et retournant une valeur, disons 1, si le signal D�tection de porteuse est mont� et 0 sinon ?
Le message ne dit pas quel en serait l'usage mais peu importe c'est un excellent exemple d'utilitaire assez facile � r�aliser. Voici d'ailleurs un exemple de code source possible :
------------------------- debut de carrier.c ------------------------- #include <sys/types.h> #include <sys/stat.h> #include <sys/ioctl.h> #include <termios.h> #include <unistd.h> #include <fcntl.h> #include <string.h> #include <stdlib.h> #include <errno.h> #include <stdio.h> main(int argc, char *argv[]) { char *whoami, *device; int fd; int modem_bits; whoami = (whoami = strrchr(argv[0], '/')) ? whoami + 1 : argv[0]; if (argc != 2) { fprintf(stderr, "Usage: %s device-file\n", whoami); return(EXIT_FAILURE); } device = argv[1]; if ((fd = open(device, O_RDONLY | O_NDELAY)) < 0) { fprintf(stderr, "%s: error opening \"%s\": %s\n", whoami, device, strerror(errno)); return(EXIT_FAILURE); } if (ioctl(fd, TIOCMGET, & modem_bits) < 0) { fprintf(stderr, "%s: error getting modem line statuses for \"%s\": %s\n", whoami, device, strerror(errno)); return(EXIT_FAILURE); } if (modem_bits & TIOCM_CAR) { printf("1\n"); return(EXIT_SUCCESS); } printf("0\n"); return(EXIT_FAILURE); } ------------------------- fin de carrier.c -------------------------
On pourra ensuite l'utiliser dans un shell de la mani�re suivante :
if [ `carrier /dev/modem` -eq 1 ]; then ... choses a faire si la porteuse est detectee ... else ... choses a faire s'il n'y a pas de porteuse ... fi
Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:31