Dec 05

Introduïnt el PIN a la VRA de forma automàtica

Reading time: 3 – 5 minutes

Aquest és un d’aquells posts que podria tenir 40 títols diferents. De fet, només vull passar-vos un parell de trossos de codi un en C i l’altre en perl, que el que fan és obrir el port serie virtual que crea el modem UMTS/GPRS PCMCIA de Vodafone després l’hi envia la comanda AT corresponent per introduir el PIN del SIM que porta la targeta i llestos.

Abans de passar als temes de codis un petit resum d’ordres AT útils per temes de PIN:

AT+CPIN=1234 -> Introduim el PIN a la SIM del mòdem.
AT+CPIN? -> preguntem al mòdem si ja hem introduit la SIM.
AT+CPWD="SC",old_pin,new_pin -> canviem el PIN de la SIM.

De fet, si no voleu fer un codi tan bonic com el que jo uso, també podeu fer una cosa tan senzilla com aquesta:

# echo AT+CPIN=1234 > /dev/tts/USB0

Sent 1234 el codi PIN i /dev/tts/USB0 el dispositiu serie que crea el modem PCMCIA de vodafone.

Anant a codis una miqueta més interessants aquí teniu un trosset de codi C per fer el mateix que em fet en l’ordre anterior:

#include <stdio.h>   /* Standard input/output definitions */
#include <string.h>  /* String function definitions */
#include <unistd.h>  /* UNIX standard function definitions */
#include <fcntl.h>   /* File control definitions */
#include <errno.h>   /* Error number definitions */
#include <termios.h> /* POSIX terminal control definitions */
main() {
	int fd;
	fd = open_port();
	init_modem(fd);
	close(fd);
}
int open_port(void) {
	int fd; /* File descriptor for the port */
	struct termios options;
	fd = open("/dev/tts/USB0", O_RDWR | O_NOCTTY | O_NDELAY);
	if (fd == -1) {
		/*
		* Could not open the port.
		*/
		perror("open_port: Unable to open /dev/tts/USB0 - ");
	}
	else fcntl(fd, F_SETFL, 0);
	/* get the current options */
	tcgetattr(fd, &options);
	cfsetispeed(&options, B19200);
	cfsetospeed(&options, B19200);
	/* set raw input, 1 second timeout */
	options.c_cflag &= ~PARENB;
	options.c_cflag &= ~CSTOPB;
	options.c_cflag &= ~CSIZE;
	options.c_cflag |= CS8;
	options.c_cflag     |= (CLOCAL | CREAD);
	options.c_cflag	    &= ~CNEW_RTSCTS;
	/* set the options */
	tcsetattr(fd, TCSANOW, &options);
	return (fd);
}
int                  /* O - 0 = MODEM ok, -1 = MODEM bad */
init_modem(int fd)   /* I - Serial port file */
{
	char buffer[255];  /* Input buffer */
	char *bufptr;      /* Current char in buffer */
	int  nbytes;       /* Number of bytes read */
	int  tries;        /* Number of tries so far */
	for (tries = 0; tries < 3; tries ++) {
		/* send an AT command followed by a CR */
		if (write(fd, "AT+CPIN=1234\r", 13) < 13) continue;
			/* read characters into our string buffer until we get a CR or NL */
			bufptr = buffer;
			while ((nbytes = read(fd, bufptr, buffer + sizeof(buffer) - bufptr - 1)) > 0) {
				bufptr += nbytes;
				if (bufptr[-1] == '\n' || bufptr[-1] == '\r') break;
			}
		/* nul terminate the string and see if we got an OK response */
		*bufptr = '\0';
		if (strncmp(buffer, "OK", 2) == 0) return (0);
	}
	return (-1);
}

Com en l’exemple anterior el dispositiu serie és /dev/tts/USB0 i el codi PIN 1234. Aquest codi és un copy/paste de la part d’un serial howto que ja no recordo ni d’on el vaig treure. Només m’he quedat amb el codi que em calia i hi he afegit algunes otpions que hi havia al howto però no als exemples de codi.

A continuació penjo un codi equivalent fet en perl. Com podeu veure aquest codi en perl té una dependència de la llibreria CPAN: Device::Gsm. Amb aquest llibreria també és molt senzill enviar SMS i descobrir algunes informacions del telèfon, com el fabricant o l’imei.

use Device::Gsm;
my $gsm = new Device::Gsm( port => '/dev/tts/USB0', pin => '4466' );
if( $gsm->connect() ) {
  print "connected!\n";
} else {
  print "sorry, no connection with gsm phone on serial port!\n";
}
# Register to GSM network (you must supply PIN number in above new() call)
print $gsm->register();
Sep 29

Repetidors GSM/GPRS/UMTS domèstics/SOHO

Reading time: 3 – 5 minutes

Sovint, sobretot la gent que viu en àmbits rurals, tenim problemes de cobertura amb els nostres telefons mòbils a casa, a l’oficina, a l’empresa, etc. Si consultem el tema a l’operador normalment ens diuen que no és viable ampliar la cobertura a la zona on sóm perquè no surt rentable o qualsevol altre motiu que ens tanca les portes a solucionar el problema.

repeater.jpg

Aquest problema malgrat viure al camp no l’havia patit massa, ja que visc a una zona força elevada i aconseguia cobertura de repetidors dels operadors força llunyans. Però al començar a treballar en dades això ja comença a donar alguns problemes importants. Així doncs m’he decidit a donar un cop d’ull al que comento al titol.

El que primer he trobat i que potser és més a l’avast és el material de la gent de xacom. Aquesta colla estan especialitzats en vendre modems gprs i d’altres similars. En el fons venen material de marca blanca remarcat com a xacom, especialment de la marca Siemens.

xacom.gif

Doncs bé Xacom té un aparell molt econòmic que és el CB-128 que malgrat ser un amplificador i no un repetidor es pot usar com a repetidor si connectem dues antenes una de recepció i una d’emisió encomptes de posar directament l’amplificador al connector d’antena del terminal mòbil. No és res de l’altre món però per donar cobertura a una habitació esta prou bé. Tot i amb això només és bi-banda i no soportaria UMTS. De fet, les especificacions no diuen res de GPRS però jo diria que si que hauria de funcionar.

Si busquem per internet podrem trobar el mateix dispositiu venut pel que jo diria que és el seu fabricant original Powertec Telecommunications. Concretament el model CB-128 a la seva botiga online costa uns 190$. als que caldria afegir el cost de les antenes que li volguem posar per millorar la senyal. Sovint amb això en tindrem més que de sobres per molts casos sobretot si parlem d’amplificar veu. Però per dades l’he trobat una mica limitat al no parlar de GPRS ni suportar UMTS.

Cal afegir però que tan Powrtec com Xacom, tenen repetidors propiament dits a les seccions corresponent del seu cataleg de productes. Perquè us feu una idea si parlem de sistemes monobanda i sense parlar de suport de dades, cosa que no vol dir que no funcionin, el cost està a partir dels 400$. Un repetidor per una nau podria costar uns 1000$ més antenes, així doncs per un cost raonable podeu tenir veu a la vostre nau sense cobertura.

andrew

Si voleu posar un repetidor més professional amb suport explicit de GPRS, EDGE, UMTS, etc. us recomano que us mireu els links que hi ha a: mobilecomms-technology.com. Concretament una boníssima empresa que es dedica al tema des de fa temps és Andrew és americana i molt usada arreu del món inclòs el nostre país. A la web anterior podeu trobar un resum del material que heu d’usar d’Andrew per montar un repetidor amb suport 2G, 2’5G i 3G: Andrew – Indoor and Outdoor Mobile Network Coverage and Capacity Solutions.

Sep 22

VRA de Vodafone

Reading time: 2 – 4 minutes

vra.gif

Acabo d’arribar a casa: BIEN!!! Com haig d’anar de cansat entre la feina d’aquí i la d’Andorra. Tan viatjar i a més la m___ de connexió que tinc a allà d’alt que fa més d’1 setmana que tinc la VRA de Vodafone 3G amb tarifa plana i encara ni l’he obert. Com que el tràfic de dades no té roaming a Andorra doncs la veritat tampoc l’he pogut provar.

Això si tants quilòmetres amunt i avall tinc una d’informació inútil que vaig aprenent per la carretera, què és informació inútil. Per exemple, a Andorra hi ha un hotel molt famós que es diu: Roc blanc doncs a Ponts, un dels famosos pobles pels que es passa per anar a Andorra des de casa meva hi ha un hotel que es diu: pedra negra. Interessant,eh!?

Doncs res nanos, altres efectes d’anar tan avui i avall és tenir dies com el que m’espera demà, no us perdeu l’horari que m’espera:

  • 9:00-9:15 trucada d’un projecte de seguretat nou
  • 9.15-10:30 reunió per montar una nova vpn per un client
  • 10:30-13:00 reunió amb l’equip de programació d’AS2
  • 13:00-14:00 reunió amb partner del projecte movilpoint
  • 16:00-18:00 reunió pel tema d’una web de música

Com mola el meu dia,eh!? això si quan plegui me’n penso anar de pet cap a casa em fotre una dutxa ben relaxant i entraré en mode vegetal fins dilluns així que si algú em parla i no li contesto que no s’ho prengui com algo personal perquè la setmana que vé no pinta molt millor 🙂

UpDate: podeu veure més informació sobre les primeres proves amb la VRA a: Servidors web i de fitxers i servidor web alimentat amb patates.

UpDate 2: mentre espero que vingui la reunió de les 16h m’he connectat amb la VRA que ara automàticament m’ha passat a 3G des de l’oficina de Cornellà. La cosa va molt millor que des de casa, ni punt de comparació. No diria que és com una ADSL de 256 però de moment pel que veig poc li té que envejar. Aquesta afegit l’estic fent des de la VRA. He vist com a nota curiosa que la IP que em sortia des de casa era del tipus 212.x.x.x i la que m’ha sortit des de Cornellà és 62.x.x.x no sé si canviarà segons si uso 3G o GPRS ja us ho comentaré.