Pierrick
Salut !
En plus de proposer le sitelsms.com, est-il possible d'intégrer à gestan la communication vers un modem sur l'ordinateur pour l'envoi de sms puisque windev sait le faire ?
http://www.developpez.net/forums/d858396/environnements-developpement/windev/contribuez/envoi-sms-partir-modem-gsm-modem-executant-commandes-at/
[code]bMonPort est un booléen
nNbreOctet est un entier
sMess est une chaîne
//Ouverture du port COM
bMonPort = sOuvre(1, 1024, 1024, sTimeoutDéfaut)
SI bMonPort = Vrai ALORS
//On renseigne les paramètres du modem
sFixeParamètre(1, 9600, 0, 8, 1, Vrai, Vrai, Faux)
//On teste le modem
sEcrit(1, "AT" + Caract(13))
//On laisse au moden le temps de répondre
Temporisation(100)
nNbreOctet = sDansFileEntrée(1)
sMess = sLit(1, nNbreOctet)
//Si la réponse (qui est en fonction du modem) est différente Entrée_OK_Entrée...
SI Majuscule(sMess) <> Caract(13) + Caract(10) + "OK" + Caract(13) + Caract(10) ALORS
Info("Communication avec le terminal impossible !" + RC + " Réseau mauvais ou revérifiez les branchements du modem et sa configuration !")
SINON
//Selon le pays le nombre de chiffre pour composer un numéro
//Pour moi c'est 8, pour la France c'est supérieur dont à changeren fonction
//du pays (ici SAI_N_Téléphone est le champ qui contient le N° de tél
SI Taille(SAI_N_Téléphone) <> 8 ALORS
Info("Numéro de Téléphone érronné ! Vérifier le SVP !")
SINON
Temporisation(100)
//Pour les commandes AT chercher la syntaxe sur le net
sEcrit(1, "AT+CMGS=" + Caract(34) + Droite(SAI_N_Téléphone, 8) + Caract(34) + Caract(13))
Temporisation(100)
nNbreOctet = sDansFileEntrée(1)
sMess = sLit(1, nNbreOctet)
SI Majuscule(sMess) <> Caract(13) + Caract(10) + "> " ALORS
Info("Mauvaise initialisation du Modem !")
SINON
Temporisation(100)
sEcrit(1, SAI_Message + Caract(26))
// Temporisation(100)
Info("Message envoyer avec succès !")
FIN
FIN
FIN
//On ferme le port
sFerme(1)
SINON
Erreur("Erreur d'ouverture du COM1")
FIN
[/code]
Ca se tente ? J'avoue qu'avec mon forfait illimité, la connexion bluetooth du téléphone et la possibilité de l'utiliser comme modem, la tentation est grande...
A +
Pierrick
Gestan
La vache, c'est super, cette idée ! 🔝 🔝 🔝
Pouvez-vous la tester sur votre machine, via la compilation dynamique ?
(outils > admin > outils spéciaux > compilation dynamique, et vous faites un copier-coller du code dans la zone en haut)
Gestan
Il faut juste modifier un peu le code, bien sûr :
[code]
bMonPort est un booléen
nNbreOctet est un entier
sMess est une chaîne
SAI_N_Téléphone est une chaine ="0699999999" // N° de téléphone du destinataire, à renseigner
SAI_Message est une chaine="Message de test SMS via Modem" // Le message que vous voulez envoyer
//Ouverture du port COM
bMonPort = sOuvre(1, 1024, 1024, sTimeoutDéfaut)
SI bMonPort = Vrai ALORS
//On renseigne les paramètres du modem
sFixeParamètre(1, 9600, 0, 8, 1, Vrai, Vrai, Faux)
//On teste le modem
sEcrit(1, "AT" + Caract(13))
//On laisse au moden le temps de répondre
Temporisation(100)
nNbreOctet = sDansFileEntrée(1)
sMess = sLit(1, nNbreOctet)
//Si la réponse (qui est en fonction du modem) est différente Entrée_OK_Entrée...
SI Majuscule(sMess) <> Caract(13) + Caract(10) + "OK" + Caract(13) + Caract(10) ALORS
Erreur("Communication impossible avec le terminal." + RC + "Vérifiez les branchements du modem et/ou sa configuration.")
SINON
//Selon le pays le nombre de chiffre pour composer un numéro
//Pour moi c'est 8, pour la France c'est supérieur dont à changer en fonction
//du pays (ici SAI_N_Téléphone est le champ qui contient le N° de tél
SI Taille(SAI_N_Téléphone) <> 8 ALORS
Info("Le numéro de téléphone est apparemment incorrect.")
SINON
Temporisation(100)
//Pour les commandes AT chercher la syntaxe sur le net
sEcrit(1, "AT+CMGS=" + Caract(34) + Droite(SAI_N_Téléphone, 8) + Caract(34) + Caract(13))
Temporisation(100)
nNbreOctet = sDansFileEntrée(1)
sMess = sLit(1, nNbreOctet)
SI Majuscule(sMess) <> Caract(13) + Caract(10) + "> " ALORS
Erreur("Problème d'initialisation du modem.")
SINON
Temporisation(100)
sEcrit(1, SAI_Message + Caract(26))
// Temporisation(100)
Info("Le message a été envoyé avec succès.")
FIN
FIN
FIN
//On ferme le port
sFerme(1)
SINON
Erreur("Erreur d'ouverture du port COM1")
FIN
[/code]
Pierrick
Je n'arrive plus à remettre la main sur la bidouille qui me permet d'utiliser le port COM du modem du téléphone. :grr:
Merci pour les indications et je fais un retrour dès que possible !
A +
Pierrick
Pierrick
Bonjour !
J'ai pu remettre la main sur la manip mais l'éxécution du code me renvoie une erreur de communication avec le modem.
Je ne suis pas surpris car je pars de Gestan direction un modem logiciel dans le PC qui émule un port COM provenant du téléphone mobile...
Ce n'est pas gagné cette affaire.
A +
Pierrick
P.S : A force de bidouiller, j'arrive maintenant à utiliser mon mobile comme modem bluetooth (plus besoin du cable) ! 😁
P.S 2 : On peut contourner le truc en envoyant des mails du type : numerodemobile@fournisseurtelephonique qui sont reconvertis en SMS (ça marche pour orange, bouygues et sfr à condition d'avoir la bonne adresse de serveur).
Gestan
pas bête, l'histoire du n° de mobile + FAI....
sinon, dès que vous trouvez la manip, on intègre ça dans Gestan avec un petit tuto made in Pierrick ! :wink:
Pierrick
Bonjour !
J'arrive à faire la connexion sur le mobile avec le script mais la manip' échoue en cours de route. Je ne dois pas utiliser les bonnes commandes AT. L'interrogation du modem par windows répond correctement.
Je ne vais pas pouvoir aller beaucoup plus loin avec mes maigres connaissances.
A +
Pierrick
Gestan
aïe, c'est dommage !... :cry:
s'il y a un spécialiste des commandes AT qui lit ce forum, c'est le moment !!
Gestan
aïe, c'est dommage !... :cry:
s'il y a un spécialiste des commandes AT qui lit ce forum, c'est le moment !!
Pierrick
Bonjour !
A force de farfouiner, j'ai trouvé une autre piste avec un petit logiciel qui tourne via l'activesync en bluetooth et surement en cable (je suis sous windows mobile).
http://www.dnisoftware.co.uk/content/Free+Software/Send+SMS.aspx
C'est gratuit. 😁
Contrairement à ce qui est indiqué dans les prérequis, je le fais fonctionner sous windows 7 pro 32bits avec un smartphone sous windows mobile 6.1.
Par contre, j'obtiens un message d'erreur sur le mobile lors de l'envoi (qui fonctionne correctement).
Je l'ai intégré à Gestan via les raccourcis paramétrables.
Ok, ce n'est pas parfait comme intégration mais c'est toujours mieux que de payer deux fois pour avoir une fonctionnalité de SMS (sur le mobile et sur le PC).
Désolé pour les ibidules et leurs copains android, cela ne va pas fonctionner (on doit pouvoir trouver un équivalent).
Enfin, ce genre de logiciel d'envoi de SMS à partir du PC via le mobile est souvent interdit d'usage dans les conditions générales des forfaits d'où mes difficultés avec les commandes AT.
M. l'admin, peut-on améliorer l'intégration dans Gestan (sélection de contact notamment) ?
A +
Pierrick
Gestan
pfiuuu, alors là, c'est moins facile d'intégrer cela, vous avez le budget pour 15 jours de développement ? :cry:
Pierrick
bah pas vraiment j'essaye déjà de serrer les vis...
Je continue mes recherches.
A +
Pierrick
Pierrick
Bonjour !
J'ai lu sur un forum que les commandes AT utilisées avec windev devaient :
[quote]Il faut envoyer au port COM des chaines UTF8 et non ANSI. Toutes les chaines
de commandes doivent être de la forme ChaineVersUTF8(sTexte). Voilà.[/quote]
Comment je peux faire ça dans la fenêtre de compilation de script et est-ce que c'est ça qui coinçait ?
A +
Pierrick
Gestan
Vous êtes un sacré chercheur !! 🔝 🔝
Faudrait essayer :
[code]
bMonPort est un booléen
nNbreOctet est un entier
sMess est une chaîne
SAI_N_Téléphone est une chaîne ="0699999999" // N° de téléphone du destinataire, à renseigner
SAI_Message est une chaîne="Message de test SMS via Modem" // Le message que vous voulez envoyer
//Ouverture du port COM
bMonPort = sOuvre(1, 1024, 1024, sTimeoutDéfaut)
SI bMonPort = Vrai ALORS
//On renseigne les paramètres du modem
sFixeParamètre(1, 9600, 0, 8, 1, Vrai, Vrai, Faux)
//On teste le modem
sEcrit(1, ChaîneVersUTF8("AT" + Caract(13)))
//On laisse au moden le temps de répondre
Temporisation(100)
nNbreOctet = sDansFileEntrée(1)
sMess = sLit(1, nNbreOctet)
//Si la réponse (qui est en fonction du modem) est différente Entrée_OK_Entrée...
SI Majuscule(sMess) <> Caract(13) + Caract(10) + "OK" + Caract(13) + Caract(10) ALORS
Erreur("Communication impossible avec le terminal." + RC + "Vérifiez les branchements du modem et/ou sa configuration.")
SINON
//Selon le pays le nombre de chiffre pour composer un numéro
//Pour moi c'est 8, pour la France c'est supérieur dont à changer en fonction
//du pays (ici SAI_N_Téléphone est le champ qui contient le N° de tél
SI Taille(SAI_N_Téléphone) <> 8 ALORS
Info("Le numéro de téléphone est apparemment incorrect.")
SINON
Temporisation(100)
//Pour les commandes AT chercher la syntaxe sur le net
sEcrit(1, ChaîneVersUTF8("AT+CMGS=" + Caract(34) + Droite(SAI_N_Téléphone, 8) + Caract(34) + Caract(13)))
Temporisation(100)
nNbreOctet = sDansFileEntrée(1)
sMess = sLit(1, nNbreOctet)
SI Majuscule(sMess) <> Caract(13) + Caract(10) + "> " ALORS
Erreur("Problème d'initialisation du modem.")
SINON
Temporisation(100)
sEcrit(1, ChaîneVersUTF8(SAI_Message + Caract(26)))
// Temporisation(100)
Info("Le message a été envoyé avec succès.")
FIN
FIN
FIN
//On ferme le port
sFerme(1)
SINON
Erreur("Erreur d'ouverture du port COM1")
FIN
[/code]
Pierrick
Bonjour !
Je n'ai pas encore eu le temps de tester le script (j'ai mis un peu le bazar dans la communication entre l'ordi et le téléphone). Dès que j'ai un moment, je reprends tout cela à plat.
A +
Pierrick