GeorgeVita


Διαχείριση SIM PIN σε 3G MODEM μέσω AT commands

Γενικά

Για να κάνουμε ρυθμίσεις σε 3G MODEM μέσω AT commands χρειαζόμαστε ένα πρόγραμμα σειριακής επικοινωνίας όπως το minicom (εγκατάσταση από Synaptic στο Ubuntu 8.04). Οι εντολές στο minicom δίνονται πατώντας ctrl-a και μετά το πλήκτρο της εντολής. Ετσι το menu του minicom εμφανίζεται με ctrl-a z (πατάμε ctrl-a και μετά z), το cοnfiguration menu με ctrl-a o και η έξοδος με ctrl-a x (περισσότερα θα βρείτε στην εντολή man minicom).

Μετά την εγκατάσταση του minicom το "τρέχουμε" από παράθυρο τερματικού:
minicom -s
Ρυθμίζουμε τις παραμέτρους επικοινωνίας με το modem στο configuration menu:
ctrl-a o
Serial port setup
A Serial Device:
/dev/ttyUSB0 (για τα Huawei E170, E220)
... ή /dev/ttyACM0 γιά κάποια παλαιότερα 3G modems και κινητά τηλέφωνα
... ή ότι άλλο καθορίζει την θέση του modem
Modem and dialling
A Init string:
~^M~AT&F E1 V1 X1 &D2 &C1 S0=0^M
Save setup as dfl
ESC (ή Exit)

Εφόσον είναι συνδεδεμένο το modem στη ρυθμισμένη πόρτα, γράφουμε AT πατάμε ENTER και πρέπει να δούμε ΑΤ ΟΚ. Σημειώστε ότι κάθε εντολή ξεκινά με AT και τερματίζεται με ENTER (CR). Υπάρχουν απλές εντολές (ATE1) και σύνθετες εντολές (ATE1V1Q1S0=0).

Μερικές χρήσιμες εντολές AT:
ATZ (s/w reset modem)
AT&F (επαναφορά εργοστασιακών ρυθμίσεων)
AT&V (δείχνει όλες τις τρέχουσες ρυθμίσεις)
ΑΤΙ (δείχνει στοιχεία κατασκευαστή, τύπο συσκευής κλπ.)

Προσοχή: μερικές εντολές ή παράμετροι μπορεί να απορυθμίσουν την επικοινωνία με το modem, άρα πρώτα κατανοούμε και μετά ρυθμίζουμε! Συνήθως επαναφέρουμε με initialization του modem ή με επανεκκίνηση του PC.

Διαχείριση SIM PIN
Στα 3G modems ο έλεγχος SIM PIN γίνεται μετά το Power On εφόσον είναι ενεργοποιημένος. Το σωστό PIN πρέπει να χορηγηθεί πριν από κάθε άλλη ενέργεια (DIAL, SMS, ατζέντα, κλπ). Αν γίνουν 3 ανεπιτυχείς προσπάθειες (λάθος PIN και όχι ορθογραφικό λάθος εντολής) το 3G modem "κλειδώνει" αναμένοντας PUK. Κατά τη χρήση του minicom πληκτρολογούμε τις εντολές και προσέχουμε τις ERROR αποκρίσεις του modem. Χρειάζεται ιδιαίτερη προσοχή στην αυτόματη χορήγηση PIN μέσω script ή wvdial γιατί π.χ. με Dial Attempts μεγαλύτερο του 2, τότε το "κλείδωμα PUK" είναι σίγουρο.

Αν θέλετε ΑΠΛΑ να απενεργοποιήσετε το SIM PIN πληκτρολογήστε:
AT+CLCK="SC",0,"1234" (βάλτε στη θέση του 1234 το δικό σας PIN) θα πρέπει να λάβετε OK σαν απάντηση.


Εντολές που σχετίζονται με το SIM PIN (στα παρακάτω παραδείγματα το PIN είναι 1234)

Ελεγχος άν χρειάζεται να εισαχθεί SIM PIN
AT+CPIN?
με πιθανές απαντήσεις:
+CPIN: READY (το PIN έχει δοθεί ή είναι απενεργοποιημένος ο έλεγχός του)
+CPIN: SIM PIN (απαιτείται PIN)
+CPIN: SIM PUK (το modem περιμένει PUK, πιθανό κλείδωμα μετά από 3 λανθασμένα PIN)
+CPIN: ... (άλλες πιό σύνθετες περιπτώσεις "κλειδώματος" κάρτας, συσκευής ή δικτύου)

Χορήγηση SIM PIN
AT+CPIN="1234"

Ενεργοποίηση ελέγχου SIM PIN ("κλείδωμα")
AT+CLCK="SC",1,"1234"

Απενεργοποίηση ελέγχου SIM PIN ("ξεκλείδωμα")
AT+CLCK="SC",0,"1234"

Ερώτηση αν ελέγχεται SIM PIN στο Power ON
AT+CLCK="SC",2
+CLCK: 0 (OXI, ΔΕΝ είναι ενεργοποιημένος ο έλεγχος SIM PIN)
+CLCK: 1 (NAI, ΕΙΝΑΙ ενεργοποιημένος ο έλεγχος SIM PIN)

Αλλαγή SIM PIN (ισχύον PIN="1234", νέο PIN="5678")
AT+CPWD="SC","1234","5678"
Προσοχή: η εντολή +CPWD λειτουργεί μόνο εφόσον είναι ήδη ενεργοποιημένος ο έλεγχος του PIN (AT+CLCK="SC",1,"1234"), αλλιώς δίνει ERROR

Πιθανή διαδικασία driver ή script για διαχείριση PIN

Ενα driver ή script για 3G MODEM θα μπορούσε να περιέχει τα παρακάτω:
- Ρύθμιση σειριακού interface στην κατάλληλη πόρτα (λ.χ. /dev/ttyUSB0)
- AT - αναμονή για OK
- ATZ
- αναμονή για OK
- AT&F E1 V1 X1 &D2 &C1 S0=0
- αναμονή για OK
- ATI
- αναμονή για στοιχεία modem (κατασκευαστής, τύπος, κλπ.)
- AT+CPIN?
- άν η απάντηση είναι +CPIN: READY ελέγχουμε το δίκτυο, κάνουμε DIAL, κλπ
... σε +CPIN: SIM PIN δίνουμε AT+CPIN="1234"
... σε +CPIN: SIM PUK ή κάτι άλλο ... "τα πράγματα είναι πιο δύσκολα!"

Εννοείται ότι αν θέλουμε πραγματικά "κρυφό" PIN πρέπει να το αποθηκεύουμε στα αρχεία που φυλάσσονται τα passwords (secrets) και να μην είναι ορατό στα scripts.



brains