Depuis longtemps ( Année 2008 ) je cherche une méthode qui permet d’envoyer des SMS de longueur supérieures à 160 caractères. Tous les scripts existants sur le Net permettent seulement d'envoyer un message max 160. Meme la version PDU permet d'envoyer seulement un texte max 160. J'ai trouvé la bibliothèque suivante Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens! mais c'est pour Delphi. Est ce que c'est possible de l’exploiter avec windev ?
Une question peut être idiote, pourquoi ne pas envoyer 2 SMS ... Tu divise ton texte par 160 caractères et tu envoi X SMS...
Oui je suis en train de le le subdiviser en 160 caractères mais honnêtement je ne suis pas convaincu. Ce n'est pas une méthode pro. On doit toujours faire le mieux.
Bonjour, J'ai monté une passerelle SMS pour des envois divers venant de multiples plateformes comme des serveurs Nagios, des sites Web pour des sorties, le SMS pour prévenir le cariste qu'il a un camion à déchargé sur tel quai etc.. J'ai été confronté aussi à ça le choix dans l'envoi de SMS multiple. 1er) Les utilisateurs n'aime pas recevoir plusieurs SMS de suite, et il ne mettait pas possible de concaténer les SMS en passant par mon serveur IP. Je n'ai pas trouvé de fournisseur d'accès qui ferait la concaténation de mes SMS. Ce que j'ai fait alors : Prendre la taille du SMS, et si elle fait moins de 160 caractéres ( 153 précisément ) je passe par mon modem GSM avec une carte Free à 2€. Je peu alors envoyé +de 50 sms rapidement. Dans le cas ou le SMS doit faire plus de 160 caractères et jusque 1440 Caractères max soit 9 SMS concaténer alors je passe par IsendPro TELECOM. C'est une plateforme payante avec 1000 SMS pour 58€ environ mais qui permet d'envoyer un seul SMS et là tous le monde est content. J'ai testé aussi SMSMode et OVH Telecom qui fonctionnent aussi sur le même principe. Cordialement.
Bonjour, Voici du code que j'utilise pour l'envoi de SMS au travers de passerelle différentes. Prendre en compte l'encodage du SMS, c'est la base de départ. A Tester aussi : Code (Windev): // Constante Valeur Fonction // RC Caract(1:relievedface: + Caract(10) Retour Chariot // TAB Caract(9) Tabulation // ESC Caract(27) Touche Echap // ESP Caract(160) Espace insécable // Õ Saut de Ligne car en fonction des passerelles d'envoi le comportement est différent. Exemple de constitution de mon SMS pour un changement d'adresse IP Code (Windev): // ************************** // 6 ) SMS de changement IP ! // ************************** // ** CAS 6 // ** // Une boucle simple pour avoir la taille du SMS // Par défaut le retour est : LeRetour = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(1:relievedface: LigneA = "** Changement IP **"+LeRetour LigneB = "IP vient de changer"+LeRetour LigneC = "elle est désormais"+LeRetour LigneD = "en : "+LIP+LeRetour // Ajout des lignes principales LeSMS = LigneA+LigneB+LigneC+LigneD LaTailleduSMS = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(LeSMS) Lib_Taille..Valeur = LaTailleduSMS // A la fin de la création du SMS // je vérifie sa taille. SELON LaTailleduSMS CAS >= 154 // Taille Supérieure à 154 // Dans ce cas je fais un test selon l'envoi que j'ai // prévu pour un message long défini dans Option et qui // à ce jour est iSendPro SELON EnvoiSMSLong CAS 1 // SF100 (Local de la maison) (Peu probable pour un SMS Long) // Je ne fais rien car c'est le retour par défaut CAS 2 // LeRetour fonctionne nickel avec iSendPro // Je refais le SMS cette fois en changeant // le retour. LeRetour = "Õ" LigneA = "** Changement IP **"+LeRetour LigneB = "IP vient de changer"+LeRetour LigneC = "elle est désormais"+LeRetour LigneD = "en : "+LIP+LeRetour // Ajout des lignes principales LeSMS = LigneA+LigneB+LigneC+LigneD LaTailleduSMS = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(LeSMS) Lib_Taille..Valeur = LaTailleduSMS CAS 3 // Pour SMSMode LeRetour = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(1:relievedface:+Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(10) // test concluant le 05/03/2017 LigneA = "** Changement IP **"+LeRetour LigneB = "IP vient de changer"+LeRetour LigneC = "elle est désormais"+LeRetour LigneD = "en : "+LIP+LeRetour // Ajout des lignes principales LeSMS = LigneA+LigneB+LigneC+LigneD LaTailleduSMS = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(LeSMS) Lib_Taille..Valeur = LaTailleduSMS CAS 4 // Pour OVH LeRetour = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(1:relievedface:+Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(10) // test concluant le 05/03/2017 LigneA = "** Changement IP **"+LeRetour LigneB = "IP vient de changer"+LeRetour LigneC = "elle est désormais"+LeRetour LigneD = "en : "+LIP+LeRetour // Ajout des lignes principales LeSMS = LigneA+LigneB+LigneC+LigneD LaTailleduSMS = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(LeSMS) Lib_Taille..Valeur = LaTailleduSMS FIN FIN // Je met le SMS dans la zone associé Sai_Messages..Valeur = LeSMS Puis ce sera l'envoi dans une autre procédure // Ce code permet l'envoi d'un SMS de plus de 160 Caractéres au travers d'une // des 3 passerelles que j'ai testé : SMSMode,iSendpro,OVH. // Création du : 13/09/2017 // Modifier le : // *** 12/02/2017 *** // Mise en place d'une valeur en plus qui me dit ou je passe. // Explication : // EnvoiSMSLong est un indicateur de la page des options qui indique que le // réglage des SMS Long est sur un fournisseur par défaut. Hors ça n'indique // pas le passage du SMS vers cette même direction, car le SMS passe si la taille // est inférieur à 153 Caractères par le SF100. // C'est surtout utile pour le retour des codes erreurs. // Prend en compte ici à la fois l'envoi par la passerelle choisie // selon le code EnvoiSMSLong // *** 25/03/2017 *** // Je n'avais pas mis le bon code d'envoi pour un passage par SMSMode // J'ai pris alors modèle sur Test_SMS_Long // *** 28/03/2017 *** // Prise en compte du nombre total de SMS // *** 05/04/2017 *** // Nbre_msg = 3 // *** 13/04/2017 *** // Modifier pour la prise en compte du SMS d'annulation // Vérifier aussi l'interception du SMS sur le mien // *** 02/08/2017 *** // Prise en compte d'un Proxy pour les requêtes HTTP // Cas 1 - SF100 // Cas 2 - iSendPro // Cas 3 - SMSMode // Cas 4 - OVH Telecom // Traitement automatique des exceptions : exécuter le bloc de code CAS EXCEPTION: // // *** 13/09/2017 *** je dois reprendre le même principe que les SMS longs // avec un changement possible des passerelles choisies. Code (Windev): PROCÉDURE Envoi_SMS_Court() // Ce qui nous importe lorsque l'on clique sur l'envoi // des SMS, c'est de parcourir la liste en cours de la // table et de faire l'envoi tant que le choix est coché // et aussi que SMS ne soit pas coché. // Dans le cas contraire il n'y aura pas d'envoi de SMS LaTaille est un entier sLeResultat est une chaîne LeNom est une chaîne LeMobile est une chaîne CaseSMS est un entier CaseChoix est un entier CaseActivation est un entier LaSuitedeLURL est une chaîne LeDestinataire est une chaîne LURLSMSMode est une chaîne // 0 pour un encodage ASCII Enc est un entier = 0 LeCode est une chaîne JePassePar est un entier Trouve est un entier NbreTotaldeSMS = 0 // La date doit être au format ddmmyyyy-hh:mm // En windev c'est yyyymmjj Datedenvoi est une chaîne = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(),2)+Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(),5,2)+Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(),4) // Heure en 11:00 Heuredenvoi est une chaîne = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(),2)+":"+Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(),3,2) // Utilisé par la passerelle SMSMode Datedenvoi = Datedenvoi+"-"+Heuredenvoi SI Blocage = 1 ALORS Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("Passage dans Envoi_SMS et sorti par BLOCAGE") RETOUR FIN SI PasseParProxy = 1 ALORS Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(SAI_Adresse_Proxy..Valeur,SAI_Port_proxy..Valeur) SINON // Annule la prise en compte du proxy Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("") FIN // Important c'est l'Encodage du message LeMessage = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(Sai_Messages..Valeur) LaTaille = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(Sai_Messages..Valeur) // Sélection de la passerelle d'envoi SELON EnvoiSMSCourt // Envoi SMS Multiple par le SF100 CAS 1 // Je constitue l'ensemble du message LaSuitedeLURL = "to="+LeMobile+"&text="+LeMessage+"" LURLSMSMode = LURL+"enc="+Enc+"&"+LaSuitedeLURL LeDestinataire = LURLSMSMode // Passera par le SF100 JePassePar = 1 // ======== PARTIE ENVOI DU SMS ========== SI Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(LeDestinataire) = Vrai ALORS // Le traitement du Résultat va aussi dépendre de la // Passerelle d'envoi et je dois dans ce cas faire // aussi un choix ICI. NbreTotaldeSMS+=1 SELON JePassePar CAS 1 // Par le SF100 avec plusieurs SMS sLeResultat = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(httpRésultat)) SI Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(sLeResultat,"ID",1) ALORS // Message dans la table avec la taille du SMS Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(Table_Messages,Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!()), 8),"Envoi du SMS avec taille ( "+LaTaille+" )") // N° de Mobile + Résultat de la requête HTTP qui est l'identifiant du message Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(Table_Messages,Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!()), 8),"Envoi du SMS au : "+LeMobile+" de "+LeNom+" avec "+sLeResultat) Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(Table_Messages,Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!()), 8),"Le message est : "+Sai_Messages..Valeur) LeDestinataire = "" // Cette fois dans la Table SMS SMS.IDServeur = sLeResultat SMS.Date = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!() SMS.Heure = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!() SMS.Mobile = LeMobile SMS.Noms = LeNom SMS.Texte = Sai_Messages..Valeur SMS.Statut = "OK" SMS.LaTaille = LaTaille Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(SMS) Une autre procédure qui peut être mise en place pour parfaire l'encodage des SMS avec les accents c'est de transformer la chaîne avant l'envoi. // Résumé : Remplace tous les caractères pris lors // de l'importation d'une sortie afin d'avoir une // phrase correcte à envoyer. // Syntaxe : // Création du : 22/01/2017 // Modifier le : 23/01/2017 // Traitement automatique des exceptions : exécuter le bloc de code CAS EXCEPTION: Code (Windev): PROCÉDURE Transformation(UneChaine) // Des mots complets // UneChaine = Remplace(UneChaine,"rêve","rêve") UneChaine = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(UneChaine,"Ã<ESP>"," ") // ******************** // Caractères accentués // ******************** UneChaine = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(UneChaine,"é","é") UneChaine = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(UneChaine,"Ã","à") UneChaine = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(UneChaine,"É","É") UneChaine = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(UneChaine,"<ESP>"," ") UneChaine = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(UneChaine,"ç","ç") UneChaine = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(UneChaine,"ù","û") UneChaine = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(UneChaine,"â","â") UneChaine = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(UneChaine,"è","è") UneChaine = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(UneChaine,"A¨","è") UneChaine = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(UneChaine,"à ","à") UneChaine = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(UneChaine,"€","€") UneChaine = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(UneChaine,"ô","ô") UneChaine = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(UneChaine,"ê","ê") UneChaine = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(UneChaine,"à¨","è") UneChaine = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(UneChaine,"à´","ô") UneChaine = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(UneChaine,"\r\n","") // Renvoi l'information transformée RENVOYER UneChaine CAS EXCEPTION: Bon Courage !!!!