GoJack - SMS gratis

Sezione servizi => Segnalazione nuovi siti e sviluppo xml => Topic aperto da: cape - Aprile 15, 2012, 08:41:36 pm

Titolo: Betamax whoesale
Inserito da: cape - Aprile 15, 2012, 08:41:36 pm
I servizi Betamax whoesale (per esempio siptraffic.com o voicetrading.com) non sono implementati nel service.xml, così a suo tempo me l'ero fatto per conto mio e su Fresmee Desktop funziona perfettamente.
Ora aggiungedolo al service.xml di GoJack quando tento l'invio da web mi esce questo messaggio:

Errore nell'invio!
Il sito non ha risposto nelle modalità previste nell xml

Questo è il service in questione che non funziona:
Codice: [Seleziona]
<service id="8888" name="Betamax-w" v="1.0" maxsms="20" singlelen="160" sms_divisor="160" maxlen="160" reset="daily" output_encoding="ACCENT" icon="">
        <description>
            <info>Invia SMS tramite un betamax whoesale. Bisogna avere un account su un servizio betamax con del credito residuo. Sostituisce le lettere accentate.</info>
            <config>
                <required n="1" name="username" default="" desc="Username del sito voip da usare" />
                <required n="2" name="password" default="" desc="Password del sito voip da usare" />
                <required n="3" name="mittente" default="" desc="Numero verificato che verra' visualizzato come mittente" />
  <required n="4" name="voip" default="siptraffic" desc="nome del servizio betamax scritto in minuscolo (es: voipcheap)" />
            </config>
        </description>
        <procedure>
            <page uri="https://www.%%voip%%.com/myaccount/sendsms.php" method="GET">
                <vars>
                    <var name="username" value="%%username%%" />
                    <var name="password" value="%%password%%" />
                    <var name="from" value="%%mittente%%" />
                    <var name="text" value="%%message%%" />
                    <var name="to" value="%%intpref%%%%intnum%%" />
                </vars>
                <accept>
                    <var acceptstr="success" />
                </accept>
                <errors>
                    <var errstr="failure" errmsg="Errore invio." />
                </errors>
            </page>
        </procedure>
    </service>
Titolo: Re:Betamax whoesale
Inserito da: Daniele8787 - Aprile 15, 2012, 09:34:16 pm
Strano non funzioni. E' un service cosi semplice. Che server utilizzi? altervista per caso? prova a cambiare server. Su altervista c'è un problema analogo per il servizio tim.
Titolo: Re:Betamax whoesale
Inserito da: cape - Aprile 15, 2012, 10:42:27 pm
Eh infatti, é strano.
Il server é mio, non  ne uso uno esterno.
C'é la possibilità di vedere un log con la risposta del server o qualcosa di simile?
Titolo: Re:Betamax whoesale
Inserito da: Daniele8787 - Aprile 16, 2012, 12:40:29 am
Attualmente ancora no. Devi utilizzare uno sniffer, un programma che analizza i dati di connessione e puntarlo sul processo del tuo server. In ogni caso prova a cambiare server. Io sul pc uso easyphp. Hai provato altri php oltre a gojack? funzionano?
Titolo: Re:Betamax whoesale
Inserito da: cape - Aprile 16, 2012, 08:04:54 am
Si, ci sono anche dei siti php nello stesso server e funzionano. Faccio una prova su un'altro server e proverò con lo sniffer...
Titolo: Re:Betamax whoesale
Inserito da: Daniele8787 - Aprile 16, 2012, 02:35:57 pm
Siti in php... si ma dei php che effettuano connessioni esterne con curl? la libreria curl è abilitata? il php  è versione 5? se puoi prova a installarti easyphp e verifica se funziona...è un programma che configura automaticamente apache..e va però attivata la curl.
Titolo: Re:Betamax whoesale
Inserito da: cape - Aprile 16, 2012, 06:44:46 pm
No, siti con curl non ce ne sono però da phpinfo() la libreria risulta attiva.
Il php è la versione 5.3.3

Ho provato anche con easyphp ma non funziona.
Inoltre con lo sniffer (Wireshark) non riesco a vedere la risposta del server betamax perchè è in https e dai pacchetti non si capisce.
Titolo: Re:Betamax whoesale
Inserito da: Daniele8787 - Aprile 16, 2012, 07:19:52 pm
Può darsi che il problema sia l'https ..anche se mi sembra strano, perchè altri servizi in https funzionano. Comunque sto facendo una nuova versione con i log..magari poi provi quella e vediamo di capire.
Titolo: Re:Betamax whoesale
Inserito da: cape - Aprile 16, 2012, 07:24:12 pm
Se non sbaglio gli altri betamax sono in https....
Ok, rimango in attesa allora.

Grazie per ora
Titolo: Re:Betamax whoesale
Inserito da: Daniele8787 - Aprile 16, 2012, 07:36:24 pm
E gli altri betamax ti funzionano con gojack?
Titolo: Re:Betamax whoesale
Inserito da: cape - Aprile 16, 2012, 07:40:31 pm
Purtroppo non avendo account con il credito caricato non posso provarli...
Titolo: Re:Betamax whoesale
Inserito da: Daniele8787 - Aprile 19, 2012, 10:32:26 pm
Fatta versione con log, puoi provare. ;) attiva il log e prova ad inviare, e dopo vedi un po cosa scrive nella cartella log. Se vuoi cancelli tutte le password contenute, e gli username, e quando sei sicuro me le puoi inviare via mail e cosi vediamo di capire.
Titolo: Re:Betamax whoesale
Inserito da: cape - Aprile 19, 2012, 11:25:20 pm
Grazie!
L'ho provata e ti ho mandato una mail.
Titolo: Re:Betamax whoesale
Inserito da: Daniele8787 - Aprile 20, 2012, 12:05:34 am
Ho visto i files. Potrebbe essere dovuto al fatto che freesmee, invia sempre il cookie phpsessid mentre gojack non invia nessun cookie se non è specificato nell'xml.
Per cui prova con questo xml modificato, ho aggiunto il phpsessid che risulta dai log che mi hai inviato.
Se non ti funziona allora dovresti inserire un'altra page nella quale con un content prelevare il cookie che il sito invia, e successivamente inviarlo di nuovo al sito. Anche se in realtà basterebbe solo fare un'altra page, e poi ci penserebbe gojack a reinviare i cookie ricevuti.
Se non dovesse funzionare neppure cosi, allora il problema è un altro.

   
Codice: [Seleziona]
<service id="8888" name="Betamax-w" v="1.0" maxsms="20" singlelen="160" sms_divisor="160" maxlen="160" reset="daily" output_encoding="ACCENT" icon="">
        <description>
            <info>Invia SMS tramite un betamax whoesale. Bisogna avere un account su un servizio betamax con del credito residuo. Sostituisce le lettere accentate.</info>
            <config>
                <required n="1" name="username" default="" desc="Username del sito voip da usare" />
                <required n="2" name="password" default="" desc="Password del sito voip da usare" />
                <required n="3" name="mittente" default="" desc="Numero verificato che verra' visualizzato come mittente" />
  <required n="4" name="voip" default="siptraffic" desc="nome del servizio betamax scritto in minuscolo (es: voipcheap)" />
            </config>
        </description>
        <procedure>
            <page uri="https://www.%%voip%%.com/myaccount/sendsms.php" method="GET">
                <headers>
                    <var name="Cookie" value="PHPSESSID=p415r07u9hih9vavnkut89htk3" />
                </headers>
                <vars>
                    <var name="username" value="%%username%%" />
                    <var name="password" value="%%password%%" />
                    <var name="from" value="%%mittente%%" />
                    <var name="text" value="%%message%%" />
                    <var name="to" value="%%intpref%%%%intnum%%" />
                </vars>
                <accept>
                    <var acceptstr="success" />
                </accept>
                <errors>
                    <var errstr="failure" errmsg="Errore invio." />
                </errors>
            </page>
        </procedure>
    </service>

Una domanda: perchè hai scritto method="GET"? di solito le variabili si inviano sempre tramite post... e gojack le invia sempre tramite post, (anche perchè è più sicuro..rispetto al mettere le variabili nell'indirizzo, come fa il metodo get)  ignorando quel comando method. Il sito richiede che vengano inviate tramite get? in tal caso potrebbe essere questo il problema..anche se ne dubito.
Titolo: Re:Betamax whoesale
Inserito da: cape - Aprile 20, 2012, 05:51:51 pm
No, non funziona nemmeno adesso...
Il fatto è che il PHPSESSID cambia ogni volta.

Il metodo l'ho scritto con il GET perchè con il POST non funziona, o meglio mi rimanda alla pagina di sessione scaduta.
Facendo una semplice form così:
Codice: [Seleziona]
<form id="form1" name="form1" method="get" action="https://www.siptraffic.com/myaccount/sendsms.php">
  <table width="50" border="1" align="center">
    <tr>
      <td width="10%">Mittente</td>
      <td width="90%"><input name="from" type="text" id="from" value="" width="172" /></td>
    </tr>
    <tr>
      <td>Destinatario</td>
      <td><input type="text" name="to" value="+39" width="172" id="to" /></td>     
    </tr>
    <tr>
      <td height="136">Testo</td>
      <td><textarea name="text" id="text" cols="26" rows="8"></textarea></td>
    </tr>
    <tr>
      <td colspan="2"><div align="center"><input id="bottone" type="submit" value="Invia" /></div></td>
    </tr>
  </table>
    <input name="username" type="hidden" value="" />
    <input name="password" type="hidden" value="" />
</form>

con il metodo GET funziona, con POST mi rimandava alla pagina di warning, quindi ne ho dedotto che anche nel service servisse il GET.
Titolo: Re:Betamax whoesale
Inserito da: Daniele8787 - Aprile 20, 2012, 06:16:54 pm
Ok, allora è questo il problema. :) gojack ignora il parametro method e se ci sono variabili le invia tutte tramite post, anche perchè per fare il get basta mettere le variabili nell'indirizzo, o mi sbaglio?
il tuo service allora potrebbe essere modificato cosi:

Codice: [Seleziona]
<service id="8888" name="Betamax-w" v="1.0" maxsms="20" singlelen="160" sms_divisor="160" maxlen="160" reset="daily" output_encoding="ACCENT" icon="">
        <description>
            <info>Invia SMS tramite un betamax whoesale. Bisogna avere un account su un servizio betamax con del credito residuo. Sostituisce le lettere accentate.</info>
            <config>
                <required n="1" name="username" default="" desc="Username del sito voip da usare" />
                <required n="2" name="password" default="" desc="Password del sito voip da usare" />
                <required n="3" name="mittente" default="" desc="Numero verificato che verra' visualizzato come mittente" />
  <required n="4" name="voip" default="siptraffic" desc="nome del servizio betamax scritto in minuscolo (es: voipcheap)" />
            </config>
        </description>
        <procedure>
            <page uri="https://www.%%voip%%.com/myaccount/sendsms.php?username=%%username%%&password=%%password%%&from=%%mittente%%&text=%%message%%&to=%%intpref%%%%intnum%%" >
                <accept>
                    <var acceptstr="success" />
                </accept>
                <errors>
                    <var errstr="failure" errmsg="Errore invio." />
                </errors>
            </page>
        </procedure>
    </service>
Titolo: Re:Betamax whoesale
Inserito da: cape - Aprile 20, 2012, 06:21:29 pm
Ho provato a modificare il service per recuperare il PHPSESSID così:
Codice: [Seleziona]
<service id="8888" name="Betamax-w" v="1.0" maxsms="20" singlelen="160" sms_divisor="160" maxlen="160" reset="daily" output_encoding="ACCENT" icon="">
        <description>
            <info>Invia SMS tramite un betamax whoesale. Bisogna avere un account su un servizio betamax con del credito residuo. Sostituisce le lettere accentate.</info>
            <config>
                <required n="1" name="username" default="" desc="Username del sito voip da usare" />
                <required n="2" name="password" default="" desc="Password del sito voip da usare" />
                <required n="3" name="mittente" default="" desc="Numero verificato che verra' visualizzato come mittente" />
  <required n="4" name="voip" default="siptraffic" desc="nome del servizio betamax scritto in minuscolo (es: voipcheap)" />
            </config>
        </description>
        <procedure>
<page method="GET" uri="http://www.%%voip%%.com">
<contents>
<var name="phpsid" left="Set-Cookie: PHPSESSID=" right=";"/>
</contents>
</page>
            <page method="GET" uri="https://www.%%voip%%.com/myaccount/sendsms.php" >
                <headers>
<var name="Cookie" value="PHPSESSID=%%phpsid%%" />
                </headers>
                <vars>
                    <var name="username" value="%%username%%" />
                    <var name="password" value="%%password%%" />
                    <var name="from" value="%%mittente%%" />
                    <var name="text" value="%%message%%" />
                    <var name="to" value="%%intpref%%%%intnum%%" />
                </vars>
                <accept>
                    <var acceptstr="success" />
                </accept>
                <errors>
                    <var errstr="failure" errmsg="Errore invio." />
                </errors>
            </page>
        </procedure>
    </service>

Ora nel log si vede questo:
Codice: [Seleziona]
Pagina 1 redir 0 : http://www.siptraffic.com
Inviata richiesta get
Caricata pagina (11267 bytes)
Lettura pagina.
Individuato content phpsid : tdijkcjv7po3k3pvava3ti0e05
Pagina 2 redir 0 : https://www.siptraffic.com/myaccount/sendsms.php
Aggiunta variabile: username=
Aggiunta variabile: password=
Aggiunta variabile: from=
Aggiunta variabile: text=
Aggiunta variabile: to=
Aggiunto header: Cookie: PHPSESSID=tdijkcjv7po3k3pvava3ti0e05
[glow=red,2,300]Inviata richiesta post[/glow]
Caricata pagina (0 bytes)
Lettura pagina.
Pagina 2 redir 1 : https://www.siptraffic.com/warning.html
Inviata richiesta get
Caricata pagina (8805 bytes)
Lettura pagina.
Il sito non ha risposto nelle modalità previste nell xml

Mi sorge un dubbio...perchè nella parte evidenziata (che è quella che dovrebbe inviare i dati (username, password, from, to, text)) c'è inviata richiesta post mentre io ho specificato nel service GET?
Titolo: Re:Betamax whoesale
Inserito da: cape - Aprile 20, 2012, 06:22:44 pm
Siamo contemporaneamente arrivati entrambi alla stessa soluzione ;)
Si, è come dici tu. Adesso provo con il service che hai scritto e ti dico.
Titolo: Re:Betamax whoesale
Inserito da: cape - Aprile 20, 2012, 07:02:58 pm
Perfetto!!
Ora funziona, grazie mille dell'aiuto!

Avrei ancora un'altro paio di domande (sono un po' offtopic quindi cancella pure e le faccio nella sezione più adatta):
 1. Per aggiornare da una versione di gojack all'altra (incluso gojackweb) basta sostituire il gojack.php e rieseguire installgojackweb.php senza cancellare gli altri file?
 2. Gojack è particolarmente lento, nel caricarsi e nel passare da una pagina all'altra, per esempio dal momento in cui clicco su Invia in gojackweb al momento in cui mi appare la conferma di messaggio inviato passano circa 30 secondi, nonostante il messaggio arrivi subito sul cellulare, c'è qualche parametro del php da sistemare per questa "lentezza"?
Titolo: Re:Betamax whoesale
Inserito da: Daniele8787 - Aprile 20, 2012, 07:47:34 pm
Per aggiornare la web ti basta inserire il nuovo installgojackweb.php ed eseguirlo, e lui pensa a sostituire il file gojackweb.php. Per aggiornare il php di base invece, ti basta sostituire il file gojack.php e quando lo esegui, (anche tramite web provando ad inviare un sms) ti dice lui se il file gojacksetting va sostituito. Nel caso della 2.8 va sostituito, mentre in quasi tutte le precedenti no. Se ti dice che il file va tolto, basta effettuare il reset dagli strumenti della web.
Quanto alla lentezza, non so proprio cosa dirti. La versione precedente era più veloce? prova a disattivare il log, e forse dovrebbe velocizzarsi un po. Ma per il resto dubito si possa fare granchè. Il processore durante l'invio lo vedi utilizzato al 100% dal task manager?
Titolo: Re:Betamax whoesale
Inserito da: cape - Aprile 21, 2012, 11:48:30 am
Perfetto, allora ho fatto tutto correttamente.
Disattivando il log si velocizza leggermente. Il processore aumenta al 50% l'utilizzo quando esegue lo script, forse è un problema di macchina su cui l'ho montato perchè quando lo provavo in locale era molto più veloce.
Pensavo ci fosse qualche ottimizzazione particolare da fare sul php.ini
Titolo: Re:Betamax whoesale
Inserito da: Daniele8787 - Luglio 26, 2012, 03:56:32 am
Dalla versione 3.0 in poi dovrebbe funzionarti anche quel vecchio service che non ti funzionava con le versioni 2.x.
Titolo: Re:Betamax whoesale
Inserito da: cape - Luglio 26, 2012, 09:31:13 am
Ok, grazie!