GoJack - SMS gratis

  • Marzo 29, 2024, 01:53:28 am
  • Benvenuto, Visitatore
Effettua l'accesso o una nuova registrazione.

Inserisci il nome utente, la password e la durata della sessione.
Ricerca avanzata  

Autore Topic: Creazione alfabeto gsm gojack  (Letto 10746 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

antonino.spampinato

  • User quarto livello
  • ****
  • Karma: +18/-1
  • Offline Offline
  • Post: 468
    • Mostra profilo
Creazione alfabeto gsm gojack
« il: Aprile 23, 2012, 02:21:44 pm »

come da titolo si può creare solo i 128 caratteri a 7 bit come da specifica gsm 03.38 e 03.40?Vedi qui anche se c'e la possibilità di utilizzarli anche a 8bit.

Attenzione 10 caratteri corrispondono in realtà in 20 (escape+carattere=14 bit),il carattere "È" è presente in UCS2 non alfabeto GSM come altri caratteri del resto. (alcuni cellulari sono configurati per scrivere sia caratteri unicode che alfabeto GSM senza dare la possibilità di decidere quale codifica utilizzare,perciò se si digita un carattere al di fuori dell'alfabeto GSM l sms diventa UNICODE=70 caratteri).

Torniamo al topic ;)
Direi di poter inserire i caratteri tramite le entità &#Codice decimale; ISO 10646 compatibile con html 2.0,3.2 è successive.
Ciò comporta la non interpretazione di alcuni caratteri del alfabeto GSM, ma che noi italiani potremmo farne anche a meno..Ci guadagnamo in compatibilità con le codifiche che usano US-ASCII di base.
Dopo di ché prima che i dati siano inviati tramite http sarebbe opportuno usare un urlencode fissa creata appositamente da qualche linguaggio di script,url encode di php non va bene,perché i dati che sono al di fuori dell'US-ASCII saranno convertiti in %hex dalla codifica della pagina da dove sono state inviate.
Sarebbe meglio adottare che quell'entità corrisponde %hex dell'alfabeto GSM, vedi tabella di prima.

Spero di essere stato il più comprensibile possibile, che ne dici DANIELE 8787?
Connesso

Daniele8787

  • Sviluppatore GoJack
  • Administrator
  • Senior
  • *****
  • Karma: +95/-0
  • Offline Offline
  • Post: 1878
  • L'unica vera libertà, corrisponde al non aver bisogno di NULLA.
    • Mostra profilo
Re:Creazione alfabeto gsm gojack
« Risposta #1 il: Aprile 23, 2012, 09:33:07 pm »

Ehm, credo di non aver compreso alcune cose. GoJack non invia direttamente gli sms, ma non fa altro che da tramite tra l'user e i servizi che offrono sms gratuitamente. Sono questi ultimi che decidono con che codifica inviare gli sms ai cellulari, e anzi probabilmente non sono neppure loro, ma i gateway a cui a loro volta si appoggiano. Cambiare la codifica con cui si invia ai siti, non avrebbe effetto, ed anzi potrebbe portare ad errori, poichè i siti fornitori spesso accettano solo alcune codifiche. Ed oltretutto ammesso che le accettino, non ho capito quale sarebbe l'utilità.
In più dici che dovrei utilizzare script di linguaggi differenti che non siano php, ma gojack è scritto in php ???. Se utilizzassi script esterni renderei gojack molto più difficilmente compatibile con i server php in cui viene eseguito.
« Ultima modifica: Aprile 23, 2012, 09:38:55 pm da Daniele8787 »
Connesso

antonino.spampinato

  • User quarto livello
  • ****
  • Karma: +18/-1
  • Offline Offline
  • Post: 468
    • Mostra profilo
Re:Creazione alfabeto gsm gojack
« Risposta #2 il: Aprile 23, 2012, 11:24:10 pm »

l'utilità è di poter inviare sms con accenti usati dalla lingua italiana, in modo da eliminare la codifica ACCENT..
Perché eseguire la conversione di entità numeriche decimali di html 2,3.2 (solo per il corpo del sms)?
Primo perché le entità decimali dovrebbero essere più complete di entità alfanumeriche. Secondo si crea una compatibilità con diversi browser, indipendenti dalla codifica che il browser utilizza, purché sia usata un sottoinsieme di US-ASCII. (Se un browser è impostato UTF-8 il web server invierà i dati UTF-8, cioè la codifica WINDOWS-1252 impostata su gojackweb va a farsi benedire...Amen)

Non ho detto che non si può utilizzare script php!
Non puoi utilizzare la funzione urlencode di php perché credo che converta in %hex i dati trasmessi via http dal charset utilizzato da quella pagina cioè quelli non consentiti nella forma simbolica (vedi url di http 1.1). Dunque caratteri definiti in php come entity che al momento dell'invio dei dati attraverso i siti sms, siano codificati in hex GSM (per i valori non consentiti di http 1.1), che a sua volta vengono inviati hai wap gateway (con già presenti le codifiche hex GSM).

Poi per come dire, se non sia a tempo, voglia non se ne fa niente.
Ma direi un'impostazione avanzata così,saresti l'unico che la utilizza.

Spero che sia chiaro il concetto. Anche se poi dico fantascienza è un discorso diverso.
Connesso

Daniele8787

  • Sviluppatore GoJack
  • Administrator
  • Senior
  • *****
  • Karma: +95/-0
  • Offline Offline
  • Post: 1878
  • L'unica vera libertà, corrisponde al non aver bisogno di NULLA.
    • Mostra profilo
Re:Creazione alfabeto gsm gojack
« Risposta #3 il: Aprile 24, 2012, 12:27:25 am »

La codifica ACCENT è utilizzata per i servizi con i quali le accentate non arrivano neppure dal sito fornitore. E quindi per quelli non c'è nessuna soluzione. Viceversa, per quelli con i quali è possibile inviare le accentate da sito fornitore, è sempre possibile farlo da gojack perchè non ha una codifica propria e fissa, ma variabile in base a quanto stabilito nel services.xml esattamente come avviene in freesmee. ;)
Connesso

antonino.spampinato

  • User quarto livello
  • ****
  • Karma: +18/-1
  • Offline Offline
  • Post: 468
    • Mostra profilo
Re:Creazione alfabeto gsm gojack
« Risposta #4 il: Aprile 24, 2012, 01:33:29 am »

Regola 1 per essere un buon programmatore dimentica tutto quello che sai, lo scopo è di inventare.
Sei sicuro? http://forum.jacksms.it/vodafone-ireland/segnalazione-caratteri-speciali-(lettere-accentate)-ok/msg199606/#msg199606 (non è giusto utilizzare urlencode)

Sarebbe così difficile creare 128 variabili (entity) con i rispettivi 128 valori (%hex alfabeto GSM) In php inseriti direttamente nel service.

urlencode in php codifica il flusso di dati in %hex "PERCENT ENCODING" come da specifica url http 1.1
(con solo html method "POST" è enctype application/x-www-form-urlencode" non si possono inviare dati superiori a US-ASCII). Questo esempio calza a pennello per farti capire i limiti di trasmissione dati da html a http..
Se ti chiamo giovanni per te è la stessa cosa? Presumo di no, come tu ti aspetti di essere chiamato con il tuo nome, anche i wap gateway si attendono di parlare la loro lingua (Alfabeto GSM)
« Ultima modifica: Aprile 24, 2012, 01:52:31 am da antonino.spampinato »
Connesso

Daniele8787

  • Sviluppatore GoJack
  • Administrator
  • Senior
  • *****
  • Karma: +95/-0
  • Offline Offline
  • Post: 1878
  • L'unica vera libertà, corrisponde al non aver bisogno di NULLA.
    • Mostra profilo
Re:Creazione alfabeto gsm gojack
« Risposta #5 il: Aprile 24, 2012, 02:34:07 am »

Gojack non comunica coi gateway, ma coi siti fornitori. Lo scopo di gojack è inviare correttamente i dati al sito, e poi è il sito che decide come inviare e tutti i dettagli. La codifica nel sito è una cosa diversa della codifica cosi come arriva sul cellulare..quella dipende dai bit utilizzati nelle telecomunicazioni e stabiliti convenzionalmente. Ma non c'entra con la codifica sul sito fornitore. Il sito fornitore potrebbe anche aver impostato un meccanismo di conversione della codifica a noi sconosciuto, e non è un centro sms direttamente collegato con la linea telefonica e quindi non sono io a stabilire la codifica ultima da utilizzare.
Nella pagina che mi hai incollato, anyone ti faceva notare che il problema di cui si parlava era risolvibile facilmente con un urlencode su un utf-8, cosa che gojack già attualmente fa...per la corretta comunicazione coi SITI FORNITORI (e non con i cellulari e le loro codifiche che non ci riguardano). Se si invia correttamente ai siti fornitori, cosi come loro sono impostati, poi questi a loro volta, convertono nel modo giusto.
Tant'è vero che ci sono siti che richiedono una codifica, ed altri siti che ne richiedono UN'ALTRA...e nell'xml si imposta quale usare. Eppure la codifica finale che arriva sul cellulare resta la stessa ;) non arriva certo diversamente sul cellulare. E ci sono siti che pur con codifiche differenti, garantiscono l'invio corretto delle accentate. E questo ti dimostra che io non posso stabilire nulla in gojack, perchè qualsiasi cosa stabilissi, sarebbe incompatibile, o con un sito o con un altro..perchè sono loro che stabiliscono e fanno la conversione finale. L'unico modo per essere compatibile con tutti, è impostare la codifica nell'xml, e non nel php.
E lo stesso anyone ti faceva notare che html_entities() che in gojack viene anche utilizzato serve per sostituire i caratteri speciali utilizzati nei browser per l'impaginazione, (< > / " ' ecc ) con delle stringhe convenzionali che dal browser vengono interpretate e sostituite coi caratteri corrispondenti, ma non c'entrano con la codifica, e non hanno a che fare con le accentate.
« Ultima modifica: Aprile 24, 2012, 02:35:44 am da Daniele8787 »
Connesso

antonino.spampinato

  • User quarto livello
  • ****
  • Karma: +18/-1
  • Offline Offline
  • Post: 468
    • Mostra profilo
Re:Creazione alfabeto gsm gojack
« Risposta #6 il: Aprile 24, 2012, 01:37:05 pm »

la codifica output encoding del servizio in uso non fa altro che convertire in %hex (dove la codifica del sito fornitore di sms non c'entra nulla, ma riceve la codifica di output encoding)..
Si può creare una output enconding "GSM"?

Da provare con i servizi che non convertono correttamente i caratteri accentate e simili.

Non tutti i programmatori conoscono cosa sia il flusso di bite ;)..per questo motivo non arrivano le accentate.. Purtroppo è così pure se non ci credi.

Supponiamo che il carattere è sia impostato con output-encoding UTF-8,ISO-8859-1,GSM;

Conversione dei dati UTF-8 "%C3A8".

Conversione dei dati ISO-8859-1 "%E8".

Conversione dei dati GSM "%04".
« Ultima modifica: Aprile 24, 2012, 02:00:41 pm da antonino.spampinato »
Connesso

Daniele8787

  • Sviluppatore GoJack
  • Administrator
  • Senior
  • *****
  • Karma: +95/-0
  • Offline Offline
  • Post: 1878
  • L'unica vera libertà, corrisponde al non aver bisogno di NULLA.
    • Mostra profilo
Re:Creazione alfabeto gsm gojack
« Risposta #7 il: Aprile 24, 2012, 09:02:42 pm »

Vabè, vedrò di approfondire l'argomento facendo qualche prova con la pagina che hai incollato... :) se funziona ed è utile come dici, la implemento. Anche se devo ancora capire molte cose.. :)
Connesso

antonino.spampinato

  • User quarto livello
  • ****
  • Karma: +18/-1
  • Offline Offline
  • Post: 468
    • Mostra profilo
Re:Creazione alfabeto gsm gojack
« Risposta #8 il: Aprile 25, 2012, 11:18:27 pm »

Ok grazie ;)..
Il lato positivo sarebbe poter inviare tutti i caratteri correttamente..

posso chiederti un consiglio in php? se voglio che il service.xml,trasformi un simbolo in binario è successivamente gli dia valore all esadecimale che dico io %hex gsm è lo invii direttamente, che devo fare?
« Ultima modifica: Aprile 25, 2012, 11:20:16 pm da antonino.spampinato »
Connesso

Daniele8787

  • Sviluppatore GoJack
  • Administrator
  • Senior
  • *****
  • Karma: +95/-0
  • Offline Offline
  • Post: 1878
  • L'unica vera libertà, corrisponde al non aver bisogno di NULLA.
    • Mostra profilo
Re:Creazione alfabeto gsm gojack
« Risposta #9 il: Aprile 26, 2012, 01:24:12 am »

Ehm, credo di non saperti aiutare... fin'ora in php le funzioni di codifica che ho utilizzato non si occupano delle cose di cui parli...
Connesso

antonino.spampinato

  • User quarto livello
  • ****
  • Karma: +18/-1
  • Offline Offline
  • Post: 468
    • Mostra profilo
Re:Creazione alfabeto gsm gojack
« Risposta #10 il: Aprile 26, 2012, 11:23:22 am »

Grazie lo stesso..
in php c'e la funzione che converte le stringe in binario in (base2)è lo converte in esadecimale.
bin2hex('simboli');dopo quel hex lo trasformo nel valore %hex gsm.
solo che non so come abbinarli a dfreesms nel file xml...
Grazie x la pazienza dimostrata.
Fine OTTT!!!
Connesso

ciopper90

  • Sviluppatore GoJack Android
  • Leggenda
  • *****
  • Karma: +39/-0
  • Offline Offline
  • Post: 615
    • Mostra profilo
R: Creazione alfabeto gsm gojack
« Risposta #11 il: Aprile 26, 2012, 12:02:03 pm »

Basta aggiungere un post ad uno script php che converta la stringa e poi recuperare la stringa convertita con un content

Inviato dal mio DroniX con Tapatalk 2
Connesso

antonino.spampinato

  • User quarto livello
  • ****
  • Karma: +18/-1
  • Offline Offline
  • Post: 468
    • Mostra profilo
Re:Creazione alfabeto gsm gojack
« Risposta #12 il: Maggio 12, 2012, 01:11:16 pm »

Grazie ciopper ma non ho capito dove inviare questo post.

Qualcuno ha delle novità?
Ho scoperto come far comparire gli accenti ;) se interessa chiedete.
Connesso

ciopper90

  • Sviluppatore GoJack Android
  • Leggenda
  • *****
  • Karma: +39/-0
  • Offline Offline
  • Post: 615
    • Mostra profilo
R: Creazione alfabeto gsm gojack
« Risposta #13 il: Maggio 13, 2012, 01:01:53 am »

potresti postare il codice php e il serbice cosi provo a sistemare il tutto??

Inviato dal mio BlackBerry Runtime for Android Apps usando Tapatalk
Connesso

antonino.spampinato

  • User quarto livello
  • ****
  • Karma: +18/-1
  • Offline Offline
  • Post: 468
    • Mostra profilo
Re:Creazione alfabeto gsm gojack
« Risposta #14 il: Maggio 13, 2012, 02:03:11 pm »

fai un copia incolla di questo carattere, è lo provi in un servizio che non supporta gli accenti.. tipo freesms.net, secondo la tabella utf-8 equivale(non so in windows-1252) in esadecimale 04 end of tag..secondo la tabella gsm il carattere è.
Difatti se provi da gojackweb a fare un invio quel carattere dal gateway sms sarà letto è.
Premessa gli sms si possono inviare in modalità text/plain o UDP.. PERÒ text/plain sarà rappresentato dal suo corrispettivo che può essere tra i seguenti: esadecimale,binario,ottale,decimale ecc.. insomma in modo che capisca che il carattere è equivale a 04hex..
Sarebbe meglio gestire già dal l'input dell'utente?
cioè fare in modo che determinati caratteri da gojackweb con il php li converta nel valore gsm.
Devi tenere conto di tre cose, windows-1252 che è il charset di gojackweb,http 1.1 rfc 2616 è l'alfabeto gsm per far quadrare il tutto.

Colgo l'occasione di dare un' idea per la wap.
la wap deve essere compatibile sia con cellulari che con browser pc, per debug io ho usato get è charset UTF-8. (cambiatelo in windows-1252 è i rispettivi hex)
ecco una bozza incompleta di quel che vorrei *Ps sostituite preg_replace con un array str_replace dell'alfabeto gsm è create la controparte decode gsm che vanno a salvare gli sms inviati
Codice: [Seleziona]
<?php
// Non caricare la cache
header "Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
header "Cache-Control: no-cache, must-revalidate" );
header "Pragma: no-cache" );
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<?php
header
('Content-Type: text/html; charset=utf-8');
?>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>GoJack&nbsp;Wap</title>
</head>
<body>
<?php
// converto i 5 caratteri illeciti per html/xml
// elimino i codici di controllo
$servizio htmlspecialchars( ( string ) $_GET['srv'], ENT_QUOTES ENT_HTML401'UTF-8'TRUE);
$servizio preg_replace( ( string ) "/[\\000-\\040\\177]/"""$servizio);
$srv = (string) $servizio;
// accetto anche caratteri numerici con segno+
$n_c = ( ( string ) $_GET['num']);
$n_c preg_replace( (string) "/[\\000-\\037\\177]/"""$n_c);
if (
preg_match("/^[0-9;+]{1,100}\$/"$n_c) !== 1);
$num = (string) $n_c;
var_dump($num);
// converto i 5 caratteri illeciti per html/xml
// elimino i codici di controllo
$textarea htmlspecialchars( ( string ) $_GET['text'], ENT_QUOTES ENT_HTML401'UTF-8'TRUE);
$textarea
 
preg_replace( ( string ) "/[\\000-\\011\\013-\\037\\177]/"""$textarea);
$textarea preg_replace( (string) "/[\xc3\xa8]/u""\x04"$textarea);
$text = ( string ) $textarea;
var_dump($textarea);
?>

<fieldset>
<form name="form_invio_sms"
method="get"
action=""
enctype="application/x-www-form-urlencoded"
accept="text/plain"
accept-charset="UTF-8">
GoJack Wap<br />Servizio<select name="srv"><?php
echo ("<option>");
echo(
$servizio);
echo(
"</option>");
?>
<option>Nome'Servizio1</option><option>Nome'Servizio2</option></select><br />Destinatario<br />Numero<input type="text" name="num" value="<?php
echo ($num);
?>
" /><br />Oppure<select name="el"><option>Nome'Contatto1</option><option>Nome'Contatto2</option></select><hr />Testo<br /><textarea name="text"><?php
echo ($textarea);
?>
</textarea><br /><input type="reset" value="Svuota" />
<input type="submit" value="Invia" />
</fieldset>
</form>
</body>
</html>
si consiglia di aggiungere il name ha submit,reset è di togliere i var_dump.
Connesso
 

Contatta Daniele8787 l'autore di GoJack


Se vuoi ringraziare me (Daniele8787) e ciopper90, per il lavoro svolto fin'ora,
puoi prendere in considerazione una libera donazione. Grazie mille.