Italian Inviare Messaggi sms con b4a senza i costi di notifica

atomic

Member
Salve a tutti,
dovrei realizzare un'applicazione che invia circa 12.000 messaggi ogni 15 giorni.
Di primo acchitto ho fatto una ricerca ed ho scaricato un sorgente che invia un sms con la libreria phonesms, solo che mi sono ritrovato che mi ha "scalato" dei centesimi nonostante avessi a disposizione 500 sms free parlo di wind.
Ho letto (post del 2012 8 anni fa) che c'era questo problema e che Erel in un altro modo l'aveva risolto, ma non l'ho ancora provato.
Non ho approfondito, non ho capito se nel frattempo esiste un'altra libreria che non faccia "scattare" i costi delle notifiche.
Poi, sempre per cortesia, vorrei sapere se posso avere problemi dato il numero elevato di messaggi e soprattutto perchè i messaggi saranno di natura commerciale, si tratta di pubblicità.
Un'altra cosa, in un sms posso inserire un tag html? vorrei inviare un link
un'ultima cosa, sapete se è possibile, con gli sms, capire se il destinatario ha letto il messaggo...tipo le spunte blu di whatsapp?

Grazie a tutti
 

amorosik

Expert
Licensed User
Usa un router con la sim dentro
I Teltonika 955 ad esempio
Con una Sim di quelle sms e voce illimitati, da 4-5 euro/mese in su
E mandi cosa, quanti e come vuoi
 

atomic

Member
Ok, ma il problema del costo delle notifiche?
Ma credo che a questo punto non dovrei usare più b4a (non è un problema...io programmo vbnet c# php etc..)
Grazie cmq
Vorrei contattarti in pvt...non so come fare e se posso mettere la mia email qui
 

udg

Expert
Licensed User
Longtime User
Attenzione alle clausole "fair use" che presumo abbiano tutti gli operatori. Quando dicono "sms illimitati" intendono sempre illimitati entro un limite di utilizzo "normale". Inviare 1000 sms al giorno temo ecceda quella definizione.
Meglio cercare servizi a pagamento (e basso costo) tipo quelli che una volta offriva Aruba (ad esempio). Per quelli dovresti ricevere API che prevedano anche la fase di feedback.

In alternativa agli SMS hai sempre FCM (firebase messaging)..
 

atomic

Member
Ok, ma per tornare a b4a, da quello che ho capito è che le compagnie telefoniche ti inviano una notifica sullo stato di avvenuta consegna del sms (e te lo fanno pagare). Parlando con altri del settore, mi hanno detto che nei loro prodotti si può disattivare il flag che richiede la notifica di avvenuta consegna...quindi michiedo se è possibile anche con b4a disattivare la ricezione di avvenuta notifica.
Per le notifiche firebase sono molto comode, anche se io in altri contesti utilizzo OneSignal per gli utenti web,ma qui ho bisogno di raggiungere i telefoni (almeno la prima volta) poi una volta dirottati sul sito avranno anche la possibilità di ricevere le cosidette notifiche Push...ma adesso devo raggiungerli via sms..e ci sono riuscito...ma mi addebitano il costo delle notifiche...quindi, ripeto, se qualcuno può dirmi in che modo disattivare le notifiche di avvenuta consegna.
Grazie a tutti
 

amorosik

Expert
Licensed User
Meglio cercare servizi a pagamento (e basso costo) tipo quelli che una volta offriva Aruba (ad esempio). Per quelli dovresti ricevere API che prevedano anche la fase di feedback.

Con quel numero di sms non credo sia conveniente in termini economici
Ammettendo di pagarli 5 cent/sms ogni mese sarebbero 1250 euro
 

udg

Expert
Licensed User
Longtime User
Ovviamente dipende dal contesto. Ma se 24000 SMS in un mese non generano sufficiente business per coprire quella cifra allora forse non sono lo strumento più adatto.
Ad ogni modo, qui c'è il listino Aruba, in linea con i costi previsti da @amorosik

Si potrebbe anche "barare"; ovvero avere SIM di operatori diversi ed inviare batch di SMS per ogni operatore. A quel punto, tra gratuiti e costi mensili irrisori (4/5euro o poco più ad operatore) ed un po' di ginnastica nel cambio SIM, si otterrebbe una soluzione molto economica.

Gratis c'è FCM o anche MQTT, ma il cliente deve avere necessariamente uno smartphone..
 

LucaMs

Expert
Licensed User
Longtime User
ma il cliente deve avere necessariamente uno smartphone..
Perché, con questo non funzionerebbero?

1601632226969.png
 

amorosik

Expert
Licensed User
Ovviamente dipende dal contesto. Ma se 24000 SMS in un mese non generano sufficiente business per coprire quella cifra allora forse non sono lo strumento più adatto.
Ad ogni modo, qui c'è il listino Aruba, in linea con i costi previsti da @amorosik

Si potrebbe anche "barare"; ovvero avere SIM di operatori diversi ed inviare batch di SMS per ogni operatore. A quel punto, tra gratuiti e costi mensili irrisori (4/5euro o poco più ad operatore) ed un po' di ginnastica nel cambio SIM, si otterrebbe una soluzione molto economica.

Gratis c'è FCM o anche MQTT, ma il cliente deve avere necessariamente uno smartphone..

Veramente se io avessi necessita' del genere, proverei dove 'arrivano' le sim col piano sms illimitati
Personalmente non ho ma i provato ma magari neanche c'e' il limite tanto temuto
Magari invece di spararne fuori 12K in un giorno solo si cerca di spalmarli tutti i giorni, un migliaio al giorno
E non si tratterebbe neanche di barare, se c'e' scritto 'sms e minuti voce illimitati' quello deve essere
Sono loro che barano aggiungendo le clausole in corpo 4, che neanche con la lente si riescono a vedere
Se sapessi a chi mandare diverse migliaia di sms ci proverei a capire se il fantomatico limite c'e' realmente
Fcm ed Mqtt che sappia io arrivano ma devi avere l'app installata sul telefono che li riceve
E quindi non puoi usarle per sparare pubblicita' a chi non abbia la tua app gia' in esecuzione
 
Last edited:

sirjo66

Well-Known Member
Licensed User
Longtime User
eccoti il codice per inviare gli SMS
B4X:
Sub SendLargeSms(Destination As String, Message As String)

    Dim r As Reflector
    r.Target = r.RunStaticMethod("android.telephony.SmsManager", "getDefault", Null, Null)
    Dim parts As Object
    parts = r.RunMethod2("divideMessage", Message, "java.lang.String")
    r.RunMethod4("sendMultipartTextMessage", _
       Array As Object(Destination, Null, parts, Null, Null), _
       Array As String("java.lang.String", "java.lang.String", _
          "java.util.ArrayList", "java.util.ArrayList", "java.util.ArrayList"))

End Sub
 

atomic

Member
eccoti il codice per inviare gli SMS
B4X:
Sub SendLargeSms(Destination As String, Message As String)

    Dim r As Reflector
    r.Target = r.RunStaticMethod("android.telephony.SmsManager", "getDefault", Null, Null)
    Dim parts As Object
    parts = r.RunMethod2("divideMessage", Message, "java.lang.String")
    r.RunMethod4("sendMultipartTextMessage", _
       Array As Object(Destination, Null, parts, Null, Null), _
       Array As String("java.lang.String", "java.lang.String", _
          "java.util.ArrayList", "java.util.ArrayList", "java.util.ArrayList"))

End Sub

Grazie sirjo66 ,
questo è quello senza notifiche (quindi senza costi aggiuntivi ? ) ...oggi pomeriggio lo provo.
Esiste un modo per poter inserire nel testo un tag html ? cioè vorrei inviare un sms del tipo "clicca sul seguente link per accedere al sito."
Grazie :)
 

sirjo66

Well-Known Member
Licensed User
Longtime User
Grazie sirjo66 ,
questo è quello senza notifiche (quindi senza costi aggiuntivi ? )

Si

Esiste un modo per poter inserire nel testo un tag html ? cioè vorrei inviare un sms del tipo "clicca sul seguente link per accedere al sito."
Grazie :)

Basta che inserisci il link nel testo, viene di solito riconosciuto in automatico
 

atomic

Member
Grazie, ho verificato.
Ho inviato due sms con link ad un sito
Ha funzionato tutto e senza che mi è stato addebitato nessun costo.
Grazie a tutti.
 

amorosik

Expert
Licensed User
...senza che mi è stato addebitato nessun costo....

Forse hai inviato l'sms usando un telefono con sim che prevede sms illimitati
E quindi e' normale che non ti sia stato addebitato niente
O meglio, quell'sms lo paghi con la quota mensile della sim
Se cosi' non fosse, ci potresti spiegare come hai fatto?
 

atomic

Member
Forse hai inviato l'sms usando un telefono con sim che prevede sms illimitati
E quindi e' normale che non ti sia stato addebitato niente
O meglio, quell'sms lo paghi con la quota mensile della sim
Se cosi' non fosse, ci potresti spiegare come hai fatto?

No, ho fatto le prove sempre con la stessa sim.
Prima con un codice che adesso non ho sottomano (ma che ho preso sempre da qui...ma non ricordo dove l'ho preso) e mi faceva apagare le notifiche di avvenuta ricezione
Poi con il codice postato da Sirjo66 e non m'ha fatto pagare nulla
Ciao
 

amorosik

Expert
Licensed User
... mi faceva apagare le notifiche di avvenuta ricezione...

Stai mischiando 'invio sms' con 'notifiche di ricezione'
Prova ad inviare un sms dal telefono (e se disponibile come opzione, disattiva 'notifica ricezione'), e verifica se te lo mette in conto
Forse e' solo la notifica ricezione che ti fa pagare
Ed il codice ultimo provato, non richiedendola, consente l'invio sms senza costi
Se fosse cosi', il problema del codice prima dell'ultimo provato (che ti addebita costi) sta nel fatto che richiede anche la notifica di ricezione
 

Star-Dust

Expert
Licensed User
Longtime User
Hai provato usando Send2?

B4X:
 Phone1.Send2 (PhoneNumber , Text, False, False)

vedi:
 
Top