2005-03-11
SCMxx
scmxx 1 SCMxx
scmxx scambia dati con il tuo telefonino Siemens
`scmxx` `--device` device `--baud` baudrate `--quiet` `--verbose` `--reset` `--info` `--set-time` `--mem-info` `--lock-info` `--lock` lock `--enable` `--disable` `--set-smsc` `--number` numero nome `scmxx` `--device` device `--baud` baudrate `--quiet` `--verbose` `--out` file `--pipe` pipe `--remove` `--send` `--get` `--binary` `--mem` memoria `--slot` slot file... `scmxx` `--device` device `--baud` baudrate `--quiet` `--verbose` `--out` file `--pipe` pipe `--pin` PIN `--remove` `--send` `--get` `--pbook` `--mem` memoria `--slot` slot `--text` testo `--number` numero nome file... `scmxx` `--device` device `--baud` baudrate `--quiet` `--verbose` `--out` file `--pipe` pipe `--remove` `--send` `--get` `--sms` `--mem` memoria `--slot` slot `--text` testo `--number` numero nome `--direct` `--flash` `--srr` `--unicode` file... `scmxx` `--help` `--version`

## Descrizione

SCMxx può copiare files da e verso un telefonino Siemens e inoltre può cancellare file salvati. I file possono venire letti da un determinato file o attraverso stdin e salvati in un determinato file o su stdout. Gli SMS possono essere anche direttamente mandati o ricevuti senza essere salvati nel telefonino. SCMxx è stato testato con diversi modelli della Siemens (solo S25 e successivi) e quindi verrà stampato un messaggio di avviso ogniqualvolta lo si usi con altri modelli non supportati.

## Opzioni

`--device (-d)`

  specifica un device diverso da quello specificato nelle opzioni di compilazione. Sovrascriverà la variabile d'ambiente SCMXX_TTY e l'opzione di compilazione. Per sistemi linux, questo device può essere ad esempio /dev/ttyS0 per connessioni seriali, /dev/ircomm0 per connessioni via infrarosso e /dev/rfcomm0 per connessioni via bluetooth.

`--baud (-b)`

  specifica la velocità di trasmissione. Valori validi dipendono dal sistema, ma possono essere 9600, 19200, 38400, 57600 o 115200. Il valore di default è 19200. Il S25 e il *35i lavorano solo a 19200, tutti gli altri modelli successivi possono lavorare anche a piena velocità. Le connessioni via infrarosso possono essere un'eccezione a queste regole (dipende dal dongle dell'infrarosso). Questo valore sovrascriverà la variabile d'ambiente SCMXX_BAUD e l'opzione di compilazione.

`--out (-o)`

  specifica il file da usare. Quando si prendono dei file binari con l'opzione "all", vengono accodati il numero dello slot, un punto e il tipo di file. Quando si manda o si cancella, questo parametro non viene usato, ma gli ultimi parametri devono essere dei file validi. Stdout dev'essere esplicitamente selezionato mediante il trattino ("-"), di default niente viene scritto su stdout. Non viene accodato nulla su "-" quando si prendono file multipli.

`--pipe (-p)`

  specifica un pipe verso un altro programma. Quando si prendono dei file con l'opzione "all", ogni file viene mandato in pipe a questo programma singolarmente (solo per --binary e --sms).

`--quiet (-q)`

  decrementa il numero dei messaggi in output

`--pin`

  usa questa opzione nel caso dovesse venire richesto un codice PIN per l'accesso.

`--verbose (-v)`

  incrementa il numero dei messaggi in output

`--reset`

  cerca di resettare il telefonino, così che sia nuovamente accessibile. Potrebbe succedere che il telefonino non risponda più sull'interfaccia seriale, specialmente dopo un trasferiemnto di file interrotto dall'utente. Questo comando semplicemente ignora alcuni caratteri speciali.

`--help (-h)`

  stampa il messaggio di aiuto.

`--version`

  stampa il numero di versione.

`--remove (-r)`

  rimuove un record dal telefonino. Quando specificato assieme a --sms e --get, questo comando prenderà e cancellerà il messaggio. Quando specificato assieme a --sms e --send, questo comando prenderà e manderà il messaggio.

`--get (-g)`

  prende un record e la salva su di un file. Quando specificato assieme a --sms e --remove, questo comando prenderà e cancellerà il messaggio. Quando specificato assieme a --sms e --send, questo comando prenderà e manderà il messaggio.

`--send (-s)`

  manda un file al telefonino. Nel caso volessi mandare sms, dai un'occhiata anche all'opzione --direct. Quando specificato assieme a --sms e --remove, questo comando prenderà e cancellerà il messaggio. Quando specificato assieme a --sms e --get, questo comando prenderà e manderà.

`--info (-i)`

  ottiene informazioni dal telefonino, --mem-info può essere usata come opzione per visualizzazre un elenco più completo delle memorie disponibili.

`--mem-info`

  visualizza informazioni sulle memorie disponibili e i loro slot, oltre ad altre informazioni. Usa lo stesso formato di --mem=? (vedi sotto) e può essere usato come opzione per --info così da visualizzare informazioni più complete riguardo la memoria.

`--lock-info`

  visualizza lo stato dei blocchi. Può anche essere usato come opzione di --info per visualizzare la lista dei nomi dei blocchi.

`--lock`

  specify a lock that you can enable or disable. For some locks, a password is needed (see --pin)

`--enable`

  enable e.g. a lock

`--disable`

  disable e.g. a lock

`--dial`

  dial a number (requires --number). The program returns either after 10 seconds or when the call reached the other side.

`--hangup`

  hangup all currently active calls

`--set-time`

  sincronizza l'orologio del telefonino. L'uso di comandi come ntpdate è raccomandato prima di usare questo comando.

`--set-smsc`

  setta il numero SMSC (necessita --number)

`--binary (-N)`

  seleziona il tipo di trasferimento file in modalità binaria.

`--pbook (-P)`

  seleziona il trasferimento dell'agenda telefonica.

`--sms (-S)`

  seleziona il trasferimento di sms.

`--mem`

  seleziona una memoria a cui accedere. I numeri degli slot possono variare dipendentemente dalla memoria selezionata. Vedi l'output di --info per i tipi di memoria supportata. Non usando questa opzione si modifica il comportamento di default (se un comportamento di default è stato definito). La stringa speciale "?" stampa in output nello stesso formato di --mem-info ma solo per il modo selezionato.

`--slot`

  seleziona uno slot da accedere. Vedi l'output di --mem-info o di --mem=?. Non usando questa opzione modifica il comportamento di default (se un comportamento di default è stato definito). La stringa speciale "all" definisce tutto l'intervallo di slot disponibili per la memoria selezionata e il modo e, ad eccezione di --sms, non può essere usata con --send. Per quanto riguarda gli SMS, ci sono anche altre quattro stringhe speciali: "read", "unread", "sent" e "unsent". Le ultime due possono essere usate con --send. Per l-accesso all-elenco telefonico, c'è anche la stringa speciale "last" (ultimo). Quando questa opzione viene tralasciata con --send, scmxx cerca di trovare uno slot vuoto (operazione che potrebbe anche durare molto). La ricerca di uno slot libero non è ancora supportata per l'elenco telefonico. Quando uno slot viene specificato assieme a vari file da caricare, lo slot specificato è il punto di partenza da cui cercare altri slot vuoti. La riscrittura di slot multipli non vuoti non è ancora possibile, eccetto per il caso speciale "all" (tutti).

`--text (-t)`

  specifica il testo di un SMS o il testo di un record della rubrica. Per i record della rubrica telefonica, il limite del record dipende dalla rubrica selezionata (vedi l'output di --mem-info o di --mem=?).

`--number (-n)`

  specifica un numero a cui mandare l'SMS o il numero del record all'interno della rubrica telefonica. Nota che il numero può avere un '+' iniziale per i numeri internazionali. E' normalmente limitato a 20 cifre (senza il '+') che di certo è a sufficienza.

`--direct`

  manda/prendi sms senza salvarli nel telefonino. Questo non è il comportamento di default in quanto vieni di certo accreditato quando spedisci un sms. Quando prendi direttamente, gli SMS che non sono di tipo DELIVER rimangono nella memoria del telefonino (scmxx non può ancora decodificare quei messaggi).

`--unicode`

  spedisci l'SMS usando l'UCS-2 (16bit unicode) come set di caratteri. Non devi specificare questo parametro per rendere disponibile la decodifica di sms in formato unicode.

`--flash`

  setta la class0 nello schema di codice dei dati, che viene normalmente interpretato come "visualizza immediatamente". Non tutti i supporti riceventi lo supportano. Fai attenzione che un secondo SMS di questo tipo generalmente sovrascrive il precedente senza chiedere! Il suo uso non è consigliato.

`--srr`

  questo comando setta il bit di RichiestaReportDiStato all'interno del tipo della pdu della pdu dell'SMS. Dipende dalla SMSC se questo viene seguito. Con alcuni carrier, questo parametro porta a costi aggiuntivi!

`--sort`

  ordina i messaggi durante la stampa sull'output scelto. Alcuni metodi possibili di ordinamento sono "tipo", "slot" o "tipo, slot". "tipo" ordina per tipo di SMS con un ordine interno di tipi non supportati all'inizio, dopo SMS-SUBMIT, SMS-STATUS-REPORT e SMS-DELIVER. "slot" ordina per slot dell'SMS. "tipo, slot" ordina con "type" prima e ordina ogni SMS dello stesso tipo con "slot". Il comportamento di default non ordina affatto (l'ordine dipende dal telefonino).

`--pin`

  enable pin usage. Use this only if there was an error message that asks for a PIN or PUK. For a PIN, this is the corresponding "<PIN>", for a PUK, it is "<PUK>,<new PIN>". The value is only used once. Consider using the pin file (see below) instead of this option.

`--system-charset`

  definisce il set di caratteri del sistema invece di usare il valore di ritorno da nl_langinfo(CODESET). Questo è dovuto al fatto che alcuni sistemi non supportano se di caratteri unicode come UTF-8 oppure quando i dati sono stati codificati in un altro set di caratteri. In generale non dovresti aver bisogno di questa opzione.

## Esempi

Manda un file bitmap al telefonino come bitmap (logo):

  `scmxx` `--send` `--binary` `--mem`="bmp" `--slot`=0 myfile.bmp

Prende una Bitmap dal telefonino e la salva in un nuovo file:

  `scmxx` `--get` `--binary` `--mem`="bmp" `--slot`=0 `--out`=myfile.bmp

Prendi tutti gli SMS non ancora letti (comportamento di default) e mandali sullo stdout:

  `scmxx` `--get` `--sms` `--slot`=unread `--out`=-

  `scmxx` `-gS` `-o`-

Spedisce un sms direttamente (senza salvarlo nel telefonino):

  `scmxx` `--send` `--sms` `--direct` `--number`=123 `--text`="test"

Prende una entry dell'agenda telefonica e la salva in un file:

  `scmxx` `--get` `--pbook` `--mem`=SM `--out`=SM.pb

Modifica uno slot specifico (33) nell'agenda telefonica all'interno della memoria SM:

  `scmxx` `-sP` `--mem`=SM `--slot`=33 `--number`=123 `--text`="test"

## Nota

L'output testuale (elenco telefonico e SMS) dipende dal set di caratteri in uso localmente. Con l'input è lo stesso. Questo ha il vantaggio della localizzazione, ma ha anche lo svantaggio che tutti gli altri caratteri devono essere inseriti mediante una sequenza \XXXX dove X è un carattere esadecimale (ad esempio \20ac per il segno dell'Euro). Questa è una rappresentazione a 16bit del valore unicode. Il \XXXX è solo usato per l'output con l'intenzione di leggerlo nuovamente più tardi. Per l'output normale i caratteri che non possono essere visualizzati nella zona locale vengono sostituiti con un '?'. Usando una base locale UTF-8, si può essere sicuri che ogni carattere potrà essere convertito. Il carattere di nuova riga può essere inserito utilizzando il carattere comune \n e '\' dev'essere mascherato da sè stesso. Nella shell bash, questo può anche risultare in un input come "\\\\".

## Problemi di Connessione

Ci sono parametri addizionali, come --ignore-serial-bits (default) e --keep-serial-bits. Usali solo quando non ottieni assolutamente nessuna risposta dal telefonino. La selezione di una delle due dipende dal cavo e dalla porta seriale, e non può essere determinata automaticamente.

Se noti dei time-out al primo comando, prova con il parametro --start-delay=<secondi>

Un altro parametro --device-timeout=<secondi> viene fornito per il caso in cui il tuo telefonino dovesse aver bisogno di più di 10 secondi per rispondere. Attualmente questo valore dovrebbe essere più che sufficiente ma non si è mai sicuri. Il valore minimo è 1, valori più alti di 25 hanno lo stesso valore di "per sempre".

## Sicurezza

L'opzione --pin dev'essere usata con cautela. L'opzione e il suo argomento sono visibili nella lista dei processi.

## Ambiente

`SCMXX_TTY`

  vedi --device per la descrizione

`SCMXX_BAUD`

  vedi --baud per la descrizione

## Files

`~/.scmxx/cache.pb`

  questo file serve come file di ricerca durante l'output di SMS (per l'indirizzo del ricevente/mittente) e per creare alias dei numeri (--number) nell'invio di sms. Il formato è lo stesso di un elenco telefonico (i numeri degli slot non servono, ma devono essere presenti).

`~/.scmxx/config`

  questo file può contenere opzioni lunghe (senza il --), gli argomenti sono separati dal nome dell'opzione da un '='. Ogni spazio è permesso all'inizio di una riga, prima e dopo il separatore. Un '#' all'inizio della linea, la commenta. Esempi:

                #scegli un device a cui accedere
                device  =  /dev/ttyS0
                #manda sempre gli SMS usando UCS-2
                unicode

`~/.scmxx/pin`

  This file is used as an alternativ to the --pin command line option. The file MUST NOT be group readable/writeable or world readable/writeable! It also MUST be a regular file, not a symlink. SCMxx refuses to use the file if this is not the case. If a PUK value is requested by the phone, the corresponding PIN must also be defined. The only necessary format elements are '{', '=', ';' and '}'. Spaces and newlines are ignored. The file has the following format:

                sim 262031234567890 {
                  pin = 1234
                  puk = 12345678;
                  pin2 = 4321;
                  puk2 = 87654321;
                }
                device 350123456789012 {
                  type SIM {
                    pin = 0000;
                    puk = 0000;
                  }
                }

  "sim" sections use the IMSI as identifier, "device" sections use the IMEI as identifier (see output of --info). Since the IMSI is needed, you canNOT switch the phone on with this! The "type" sub section in the device section has the following idenfifiers:
  SIM
    device code (theft protection)
  FSIM
    very first inserted SIM
  NET
    network personalization
  NETSUB
    network subset personalization
  SP
    service provider personalization
  CORP
    corporate personalization

## Autore

Andrea Benazzo andy@slacky.it