Pagina 1 di 1

Invio SMS - interfacciamento con servizi Aruba

Inviato: martedì 15 novembre 2016, 17:59
da Conte
Ho provato a configurare il servizio invio SMS mediante l'interfaccia apposita. Il problema è che "aggiungendo un nuovo provider di servizio" viene chiesto di inserire una stringa, un URL per la precisione, che viene fornita dal provider SMS affinché analizzando la stringa la SurvStation possa analizzare e ricostruire la sintassi utile per inviare i messaggi SMS in autonomia. In pratica deve ricostruire la correlazione "paramentro-valore-codici di separazione parametro".
Il punto è che Aruba non mi aiuta nel costruire la stringa: mi indirizzano ai loro SDK per "includere" brani di codice in pagine html per l'invio autonomo di SMS, ma non è ciò che chiedo.

Qualcuno ha già affrontato il problema trovando la stringa (URL) che va bene?

Re: Invio SMS - interfacciamento con servizi Aruba

Inviato: mercoledì 16 novembre 2016, 13:06
da dMajo
Se aggiungi qualche link agli SDK di aruba forse qualcuno ti aiuterà.

In alternativa ti installi Fiddler (o similari) e "sniffi" i post/get fatti mentre invii qualche SMS dall'interfaccia web di Aruba. Sarai cosi in grado di costruirti le chiamate delle API usate da loro e personalizzartele.

Re: Invio SMS - interfacciamento con servizi Aruba

Inviato: mercoledì 16 novembre 2016, 14:27
da Conte
dMajo ha scritto:Se aggiungi qualche link agli SDK di aruba forse qualcuno ti aiuterà
Eccolo
https://hosting.aruba.it/servizio-sms/s ... Gwod2aIPXA
dMajo ha scritto:In alternativa ti installi Fiddler (o similari) e "sniffi" i post/get fatti mentre invii qualche SMS dall'interfaccia web di Aruba. Sarai cosi in grado di costruirti le chiamate delle API usate da loro e personalizzartele.
Me lo scarico e lo testo.

Re: Invio SMS - interfacciamento con servizi Aruba

Inviato: mercoledì 16 novembre 2016, 18:55
da dMajo
Non so se è questo o qualcosa di simile quello che cerchi:

Codice: Seleziona tutto

http://adminsms.aruba.it:80/Aruba/SENDSMS?login=uuu%password=psw&message=msg&message_type=LL&sender=sss&recipient=rrr
Dando una rapida occhiata al codice php, per inviare un SMS, è necessaria una richiesta HTTP POST eventualmente simulabile da chrome con l'estensione postman (se ben ricordo) oppure usa fiddler.

Codice: Seleziona tutto

Request:
========
http     'adminsms.aruba.it:80/Aruba/SENDSMS'
method   'POST'
header   'Content-type: application/x-www-form-urlencoded'
content  'login=uuu%password=psw&message=msg&message_type=LL&sender=sss&recipient=rrr'
Dove:
uuu= utente
psw= password
msg= il messaggio
tipo: LL=standard ; N=alta priorità
sender= mittente
recipient= destinatari separati da virgola

il tutto "urlencoded" affinche nell'URL non ci siano spazi e caratteri speciali/di controllo

Re: Invio SMS - interfacciamento con servizi Aruba

Inviato: giovedì 17 novembre 2016, 10:47
da Conte
dMajo ha scritto:Non so se è questo o qualcosa di simile quello che cerchi:

Codice: Seleziona tutto

http://adminsms.aruba.it:80/Aruba/SENDSMS?login=uuu%password=psw&message=msg&message_type=LL&sender=sss&recipient=rrr
Perfetto: è proprio l'URL che chiede il pannello di Surveillance station per analizzare la sintassi dei comandi. Prima di darla da analizzare però è necessario fare un test per verificare se quanto costruito funziona, quindi ho costruito la stringa

Codice: Seleziona tutto

http://adminsms.aruba.it/Aruba/SENDSMS?login=Smsxxxxx%password=yyyyyyyyyyyy&message=TestMessaggio&sender=%2b328xxxxxxx&recipient=%2b328xxxxxxx
e messa dentro la barra degli indirizzi (utilizzo Firefox, ma l'ho testato anche con iExplorer) mi viene restituito l'errore (N.B. nell'URL il codice "%2b" davanti al numero di cellulare codifica "+")

Codice: Seleziona tutto

KO|1|Invalid+username+or+password
Ovviamente i dati di account sono corretti in quanto li ho presi direttamente dalla mail di attivazione del servizio Aruba.
Qualche suggerimento? :roll:

Re: Invio SMS - interfacciamento con servizi Aruba

Inviato: giovedì 17 novembre 2016, 14:23
da dMajo
Posso anche aver sbagliato io nell'analizzare il codice PHP, ci ho messo 5 minuti. Non o tempo per fare un reverse engineering più approfondito del loro SDK in questo periodo.

Non so quali linguaggi tu conosca, visual basic e c# richiedono l'installazione dei rispettivi ambienti di sviluppo (e loro conoscenza) per poterli testare. PHP è molto più semplice: puoi usare il webserver del nas o qualche prodotto tipo XAMPP per fare i test.
Nel SDK PHP trovi la cartella test con lo script che richiama la funzione d'invio che ti fa vedere come compilare i dati della loro classe (ad esempio per i numeri destinatario usano +39328......).

Se installi l'SDK-PHP sul nas puoi semplicemente modificare il loro script di test affinché prelevi i dati dai parametri URL per passarli avanti. A questo punto nella SS indicherai l'URL del tuo nas, con i parametri come meglio credi ed il PHP li inoltrerà successivamente ad aruba via SDK.


Altrimenti sia che tu usi il webserver del NAS che XAMP (o similari sul PC) non cambia:
1) configuri un sito sul nas inserendovi dentro l'SDK-PHP di aruba compreso gli script di test.
2) installi fiddler sul PC (stessa lan del nas)
3) nelle impostazioni di rete del NAS imposti il tuo PC come server proxy alla porta configurata in fiddler
3) spedisci un SMS usando lo script di test che lo invierà via SDK-PHP
5) in Fiddler potrai vedere tutte le transizioni con il loro contenuto scambiate fra il sito del nas (quello che invia l'SMS) e quello di aruba. L'url che vedrai sarà così "sniffata" e non costruita.

Oppure verifica nel codice PHP (come ho fatto io). Il file è "sendsms.php" e le sue dipendenze:

Codice: Seleziona tutto

require_once('util.php');
require_once('config.php');
require_once('smstype.php');
require_once('http_post.php');
config.php contiene unicamente la configurazione inclusi credenziali utente

Mentre l'invio lo fai con "test_sendsms.php":

Codice: Seleziona tutto

<?php
require('../sendsms.php');

$sms = new Sdk_SMS();
$sms->sms_type = SMSTYPE_STANDARD;
$sms->add_recipient('+393479057982');
$sms->add_recipient('+393479876543');
$sms->message = 'hello world!';;
$sms->sender = 'test';
$sms->set_immediate(); // or sms->set_scheduled_delivery($unix_timestamp)
$sms->order_id = '999FFF111';
echo 'About to send a message '.$sms->count_smss().' SMSs long ';
echo 'to '.$sms->count_recipients().' recipients </br>';
if ($sms->validate()) {
  $res = $sms->send();
  if ($res['ok']) {
    echo $res['sentsmss'].' SMS sent, order id is '.$res['order_id'].' </br>';
  } else {
    echo 'Error sending SMS: '.$sms->problem().' </br>';
  }
} else {
    echo 'invalid SMS: '.$sms->problem().' </br>';
}
?>

Re: Invio SMS - interfacciamento con servizi Aruba

Inviato: giovedì 17 novembre 2016, 17:58
da Conte
Per la miseria! Complimenti per il corso monografico. :o
Ho sviluppato siti HTML con ASP, ma solo di recente mi sono accostato a Joomla e quindi so cosa è XAMPP e conosco qualche cosa di PHP l'ho masticata anche se l'utilizzo di Fiddler al momento non mi è noto.
Comunque mi prendo qualche giorno per studiare i tuoi preziosi appunti e fare qualche test per prendere dimestichezza con i SDK in PHP e provare ad utilizzare Fiddler.

Nel frattempo ci tengo a ringraziare per il tempo che mi hai dedicato. :P