1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.
  2. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

Envoie SMS ++ 160 caract. via un modem 3G

Discussion dans 'Windev' créé par aminej76, Mar 25, 2018.

  1. aminej76

    aminej76 Active Member
    MEMBRE WX

    Inscrit:
    Jan 23, 2018
    Messages:
    281
    J'aime reçus:
    101
    :)
    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 ?
     
  2. gapplicat

    gapplicat Well-Known Member
    MEMBRE WX

    Inscrit:
    Mar 8, 2018
    Messages:
    398
    J'aime reçus:
    691
    Une question peut être idiote, pourquoi ne pas envoyer 2 SMS ...
    Tu divise ton texte par 160 caractères et tu envoi X SMS...
     
    #2 gapplicat, Mar 25, 2018
    Dernière édition: Mar 25, 2018
  3. aminej76

    aminej76 Active Member
    MEMBRE WX

    Inscrit:
    Jan 23, 2018
    Messages:
    281
    J'aime reçus:
    101
    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.
     
  4. didierdequin

    didierdequin New Member

    Inscrit:
    Mar 20, 2018
    Messages:
    16
    J'aime reçus:
    21
    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.
     
    Amariaeh et aminej76 aiment ça.
  5. didierdequin

    didierdequin New Member

    Inscrit:
    Mar 20, 2018
    Messages:
    16
    J'aime reçus:
    21
    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 !!!!
     
    joker, Fakirato et suenodesign aiment ça.

Partager cette page

Chargement...