24 de julio de 2013

PLATAFORMAS DE DESARROLLO PARA ANDROID

Android SDK
Figura 1.- Android SDK corriendo sobre Ubuntu.

El SDK de Android incluye un conjunto de herramientas de desarrollo: el depurador de código, una biblioteca, un simulador de teléfono basado en QEMU, documentación, ejemplos de código y tutoriales. Entre los SO soportados se incluyen a Linux, Max OS X 10.4.9 o posterior, y Windows (XP o posterior). El IDE soportado oficialmente es Eclipse junto con el complemento ADT (Android Development Tools plugin), aunque también puede utilizarse un editor de texto y con la ayuda de comandos en una terminal (se necesitan los paquetes JDK, Java Development Kit y Apache Ant) se crean y depuran las aplicaciones. Otra característica de este SDK es que pueden controlarse dispositivos Android que estén conectados a la computadora (e.g. reiniciarlos, instalar aplicaciones en remoto).

Las Actualizaciones del SDK están coordinadas con el desarrollo general de Android. El SDK soporta también versiones antiguas de Android, por si los programadores necesitan instalar aplicaciones en dispositivos ya obsoletos o más antiguos. Las herramientas de desarrollo son componentes descargables, de modo que una vez instalada la última versión, pueden instalarse versiones anteriores y hacer pruebas de compatibilidad.
Una aplicación Android está compuesta por un conjunto de ficheros empaquetados en formato .apk y guardada en el directorio /data/app del sistema operativo Android (este directorio necesita permisos de root, por razones de seguridad). Un paquete APK incluye ficheros .dex (ejecutables Dalvik, un código intermedio compilado), recursos, etc.

Android Studio
Figura 2.- Android Studio con Emulador integrado.

Android Studio es un entorno de desarrollo basado en IntelliJ IDEA. Siendo similar a Eclipse con el plugin ADT, Android Studio también proporciona herramientas integradas para el desarrollo y depuración de errores.

De las mejores capacidades esperadas de IntelliJ, Android Studio ofrece entre otras cosas:
  • Soporte para diseño basado en cuadriculas.
  • Asistente basado en plantillas para la creación de diseños y componentes comunes de Android.
  • Un editor de Layouts que permite el arrastrar y pegar de componentes de UI.
  • Un editor WYSIWYG.
La versión mas reciente de Android Studio es la 0.20 lo que significa que es una versión beta. En la página de Android Developers se indica que debido a que Android Studio se encuentra en desarrollo, muchas funciones están inhabilitadas y que tiene errores.

Native Development Kit (NDK)
Figura 3.- Interfaz y emulador del NDK.

El NDK permite instalar bibliotecas escritas en C y otros lenguajes, una vez compiladas para ARM o código x86 nativo. Los programas Java corriendo en la máquina virtual Dalvik (Dalvik VM) pueden llamar a clases nativas por medio de la función System.loadLibrary, que forma parte de las clases estándar Java en Android.

Se pueden compilar e instalar aplicaciones completas utilizando las herramientas de desarrollo habituales. El depurador ADB proporciona un shell root en el Simulador de Android que permite cargar y ejecutar código nativo ARM o x86. Este código puede compilarse con GCC en un ordenador normal. La ejecución de código nativo es difícil porque Android utiliza una biblioteca de C propia (libc, llamada Bionic). Se accede al dispositivo gráfico como un framebuffer disponible en /dev/graphics/fb0. La biblioteca gráfica que utiliza Android para controlar el acceso a este dispositivo se llama Skia Graphics Library (SGL), disponible con licencia de código abierto. Skia tiene implementaciones en win32 y Unix, permitiendo el desarrollo cruzado de aplicaciones, y es el motor de gráficos que soporta al navegador web Google Chrome.

App Inventor para Android
Figura 4.- App Inventor es un entorno visual Web de desarrollo para Android.

Google anunció en julio de 2010 la disponibilidad de App Inventor para Android, que es un entorno de desarrollo visual Web, para programadores novatos, basado en la biblioteca Open Blocks Java, del MIT. Este entorno proporciona acceso a funciones GPS, acelerómetro y datos de orientación, funciones de teléfono, mensajes de texto, conversión habla a texto, datos de contacto, almacenamiento permanente y servicios Web, incluyendo inicialmente Amazon y Twitter. 

Hal Abelson, director del proyecto en el MIT, dijo: "Sólo hemos podido hacerlo porque la arquitectura Android es tan abierta". Después de un año de desarrollo, la herramienta de edición de bloques se ha utilizado para enseñanza a principiantes en ciencias de computación en Harvard, MIT, Wellesley, y en la Universidad de San Francisco, donde el profesor David Wolber desarrolló un curso de introducción a la ciencia de los ordenadores y un libro de enseñanza para estudiantes que no estudian computación, basado en App Inventor para Android.

HyperNext Android Creator (HAC)
Figura 5.- HAC es un entorno visual de desarrollo para programadores novatos.

HyperNext Android Creator (HAC) es un sistema de desarrollo de programas dirigido a programadores novatos, permitiéndoles crear sus propias aplicaciones sin necesitar conocimientos de Java y del SDK de Android. Está basado en HyperCard, que gestiona el software como una pila de tarjetas en la que sólo una de ellas es visible en un momento dado y por tanto encaja bien en aplicaciones para teléfonos móviles, con una sola ventana disponible a la vez.

El lenguaje principal de desarollo se llama simplemente HyperNext y está relacionado con el lenguaje de HyperCards HyperTalk. HyperNext es un intérprete de un lenguaje similar al inglés y tiene muchas funciones para crear aplicaciones Android. Soporta un subconjunto creciente del SDK de Android incluyendo sus propias versiones de controles gráficos de interfaz de usuario (GUIs) y ejecuta automáticamente su propio servicio, de forma que las aplicaciones pueden continuar ejecutándose y procesando información, sin estar en el frontal del usuario.

El proyecto Simple
El objetivo de Simple es ser un lenguaje fácil de aprender para la plataforma Android. Simple es un dialecto de BASIC para Android. Sirve tanto para progrAamadores profesionales como aficionados permitiendo escribir rápidamente aplicaciones que utilizan los componentes de Android.

Parecido a Visual Basic 6 de Microsoft, los programas Simple consisten en definiciones de formularios (que contienen componentes) y código (con la lógica del programa). La interacción entre ellos se hace por medio de eventos lanzados por los componentes. La lógica del programa consiste en gestores de eventos, que ejecutan código dependiendo del evento.

El proyecto Simple no tiene mucha actividad. La última actualización de código se realizó en agosto de 2009. Existe un producto comercial parecido llamado Basic4android, inspirado en Visual Basic 6 y Microsoft Visual Studio. Este proyecto si tiene actividad y hay una comunidad sólida de programadores.

Referencias


[1] http://es.wikipedia.org/wiki/Desarrollo_de_Programas_para_Android

[2] http://applicantes.com/una-herramienta-gratuita-para-desarrollar-apps-en-ios-y-android/

LA TARJETA SIM

Una tarjeta SIM (acrónimo en inglés de subscriber identity module, en castellano módulo de identificación del suscriptor) es una tarjeta inteligente desmontable usada en teléfonos móviles y módems HSDPA o HSUPA que se conectan al puerto USB. Las tarjetas SIM almacenan de forma segura la clave de servicio del suscriptor usada para identificarse ante la red, de forma que sea posible cambiar la línea de un terminal a otro simplemente cambiando la tarjeta [1].

El uso de la tarjeta SIM es obligatorio en las redes GSM. Su equivalente en las redes UMTS se denomina USIM o UICC (acrónimo de Universal Integrated Circuit Card, ‘Tarjeta Universal de Circuito Integrado’), siendo más popular el RUIM (Removable User Identify Module, ‘Módulo de Identidad de Usuario Desmontable’) en los teléfonos CDMA [1].

Las tarjetas SIM están disponibles en tres tamaños. El primero es similar al de una tarjeta de crédito (85,60 × 53,98 × 0,76 mm). El segundo y más popular mide 25 × 15 × 0,76 mm. El tercero y más reciente, conocido como micro-SIM, tiene unas dimensiones de 15 × 12 × 0,76 mm [1].

Las especificaciones aplicables a las tarjetas SIM son [1]:
  • GSM 11.11: Especificación de la interfaz SIM-ME (Mobile Equipment, ‘Equipamiento Móvil’).
  • GSM 11.14: Especificación del SIM Application Toolkit (‘Herramientas de Aplicación SIM’) para la interfaz SIM-ME.
     
LA TARJETA SIM
La tarjeta SIM o Modulo de Identificación del Subscriptor (Subscriber Identification Module) es una "tarjeta inteligente" que es incluida en cualquier teléfono celular de la familia de redes GSM. Físicamente la tarjeta puede ser de dos tamaños [2]:
  • ID-1: que posee las dimensiones de una tarjeta de crédito.
  • Plug-in ó micro tarjeta (con unas dimensiones de 25x15 milímetros).
En cualquiera de los dos tamaños, el modulo tiene las mismas capacidades de procesamiento y almacenamiento por medio de los siguientes elementos [3]:
  • Contiene memoria RAM (Random Acceso Memory) y EEPROM (Electrically Erasable Programmable Read-Only Memory) (ver Figura 1).
  • Contiene memoria ROM (Read-Only Memory) que se encuentra protegida físicamente, hace a la tarjeta una herramienta poderosa (ver Figura 1).
  • Un microprocesador que le otorga capacidad de procesamiento local e independencia del Handset (ver Figura 1).
  • Entradas y salidas de control para comunicarse con el Handset (ver Figura 1).
Figura 1.- Descripción del modulo SIM y el tamaño ID-1.
Respecto a las características de las tarjetas, existen tres modos de operación: 5V, 3V y 1.8V, con unos consumos máximos de corrientes asociados. El terminal GSM ó UMTS intentará activar la tarjeta desde del voltaje más bajo hasta obtener una respuesta estable. En GSM se suelen utilizar las tarjetas que se alimentan con 5V ó 3V, mientras que en UMTS se utilizan 3v ó 1.8V [2].

ESTRUCTURA LOGICA
El diálogo de alto nivel entre el terminal y la tarjeta hace referencia a una estructura lógica basada en ficheros, con condiciones de acceso asociadas. Los conceptos empleados en 2G como en 3G son los mismos. Sin embargo en 3G la estructura es genérica y abierta, soportando la noción de aplicación (que también se soporta en fases de desarrollo mas tardías de la tarjeta SIM) [2].

La estructura lógica se basa en un árbol de directorios y ficheros. Los directorios pueden contener otros directorios o ficheros, y hacen agrupaciones lógicas de estos elementos basándose en funcionalidades asociadas. Existen dos tipos de directorios: el directorio MF y el directorio DF. Además se define un directorio de aplicación o ADF, que es la raíz absoluta dentro de dominio de una aplicación [2].

Todos los ficheros de la tarjeta tienen un FID (File Identifier) asociado, que junto a su ruta de acceso lo definen unívocamente. Adicionalmente, los ficheros tienen unas condiciones de acceso respecto a cada una de las operaciones que se pueden realizar sobre ellos. Para cada uno, se puede definir una matriz que asocia cada operación (lectura, escritura, borrado, etc.) con la condición necesaria para poder ejecutar la operación: Always, PIN, clave administrativa, Never, etc. Por ejemplo, para poder leer un registro de la agenda se necesita modificar el PIN. Para modificar el IMSI de la tarjeta, la condición es Never, por lo que nunca se podrá modificar utilizando mecanismos convencionales. En la Figura 2 se puede observar la estructura de ficheros de la tarjeta SIM [2].



Figura 2.- Estructura de ficheros de la Tarjeta SIM .

Como puede observarse, bajo el directorio raíz (MF) existen dos ficheros y dos directorios. El fichero EF ICCID almacena el identificador de la tarjeta de circuitos integrados (ICC: Integrated Circuits Card) que es único y no modificable. El fichero EF ELP define los lenguajes preferidos del usuario en orden de prioridad. El directorio DF GSM contiene la aplicación GSM y el directorio DF TELECOM almacena información relacionada con los servicios que ofrece la operadora de telecomunicación a las aplicaciones presentes en la tarjeta (DF ADN: agenda telefónica, DF SMS: almacén de SMS, DF LND: últimos números marcados, DF MSISDN (Mobile Station International ISDN Number): contiene el numero asociado al abonado, etc.) [2].

El directorio de la aplicación GSM (DF GSM) está contenido en el directorio principal o MF de la tarjeta. En DF GSM se encuentran todos los contenidos relacionados con la aplicación GSM. A continuación se explicara la función de algunos ficheros elementales de DF GSM [2]:
  • EF LP: Contiene la lista de los lenguajes preferidos (LP: Language Preference) por orden de prioridad, de forma que el usuario pueda escoger sus preferencias. El ME quizás use esta información para propósitos que tengan que ver con MMI (Man Machine Interface) o para presentar en pantalla los mensajes de difusión en la lengua preferida.
  • EF LOCI: contiene información de localización (LOCI: Location Information). Los datos guardados son: el TMSI (Temporary Mobile Subscriber Identity), el temporizados que controla las actualización de posición periódicas (indica cada cuanto debe realizarse una actualización de posición periódica) el estado de la actualización (se ha actualizado o no),  si la PLMN o el área de localización no son permitidas, etc.
  • EF IMSI: contiene el IMSI (International Mobile Subscriber Identity) del usuario.
  • EF PLMN: Contiene una lista de PLMN´s (Public Land Mobile Network) en orden de preferencia. Esta información la determina el usuario o el operador de red.
  • EF FPLMN: contiene los códigos de redes móviles prohibidas (FPLMN: Forbidden PLMN).
  • EF SST: contiene la tabla de servicios de la SIM, SST (SIM Service Table), es decir, indica los servicios que han sido definidos en la SIM y dentro de éstos, cuáles están activos. Los servicios a los que se refiere son por ejemplo: ADN, FDN, SMS, CCP, PLMN Selector, LDN, MSISDN, etc.

CONCLUSIONES
La tarjeta SIM es un modulo que proporciona capacidad de almacenamiento (128 Kb) y de procesamiento según la señal de reloj. Además la SIM es en sí misma un sistema de cómputo completo, puesto que cuenta con ROM, RAM y EEPROM.

Los rangos de operación de voltaje de la tarjeta son los adecuados para ser utilizados en cualquier Handset. Además que al tener tres distintas opciones (1.8V, 3V y 5V) el Handset puede elegir la más adecuada para optimizar la energía disponible en la batería.

La estructura lógica del SIM incluye los tipos de directorios (MF, DF y ADF) y los ficheros (EF). Dentro de este tópico se inspecciono los EF más importantes, como ejemplo el fichero que almacena el IMSI (EF ‘6F07’).

REFERENCIAS
[1] http://es.wikipedia.org/wiki/Tarjeta_SIM
[2] Benita, J. (s.f.). Proyecto de Fin de Carrera. Cifrado de la Información con Algoritmos Simétricos usando Claves de Identificación Única de la Java Card para la Java ME . Sevilla, España.
[3] http://www.cicomra.org.ar/cicomra2/asp/Present.%20F.%20Giannattasio%20-%20GEMALTO.pdf
 

14 de octubre de 2012

DISTRIBUCIÓN DE LA BANDA GSM 1900 EN MÉXICO

Los primeros trabajos con GSM se iniciaron en 1982 en el Instituto Europeo de Normas de Comunicaciones (ETSI, European Telecommunications Standards Institute) [3].

Originalmente, este organismo se llamaba Groupe Sociale Mobile, lo que origino el acrónimo de GSM. Inicialmente era acabar con la incompatibilidad de sistemas en el área de las comunicaciones móviles y crear una estructura de sistemas de comunicaciones a nivel Europeo [3].

El estándar GSM se diseño para incluir una amplia variedad de servicios que incluyen transmisiones de voz y servicios de manejo de mensajes entre unidades móviles o cualquier unidad portátil. Actualmente GSM significa Global System for Mobile communications (Sistema Global para las Comunicaciones Móviles) y paso a ser el estándar para teléfonos móviles adoptado mundialmente [3]. El estándar es abierto, no propietario y en constante cambio. GSM está presente en más de 160 países (ver Figura 1) y según la asociación GSM, tienen el 70 por ciento del total del mercado móvil digital [1].

Figura 1.- Distribución Global de las Bandas GSM [6]

En México se utiliza la banda 1900 para GSM y la banda 850 para 3G. Los principales operadores son: Telcel y Telefónica Movistar.          

BANDAS DE RADIOFRECUENCIA DE GSM

Como GSM es utilizado en todo el mundo, se han ampliado para funcionar en cuatro bandas de frecuencia principales, 900, 1800, 1900 y 800, las cuales se describen a continuación y se pueden observar en la Figura 1 [2].

Figura 2.- Banda de frecuencias de GSM [2].
GSM 900
La banda de frecuencia original especificada para el GSM era 900 Mhz. La mayoría de las redes GSM por todo el mundo utilizan esta banda. En algunos países se utiliza esta banda principalmente y su versión extendida que proporciona capacidad adicional a la red. La versión extendida se le conoce como E-GSM y la versión primaria como P-GSM [2].

GSM 1800
En 1990, para aumentar la competencia entre los operadores, el Reino Unido solicito el comienzo de una nueva versión del GSM adaptada a la banda de frecuencia de 1800 Mhz. Actualmente está en operación en varios países [2].
            En un país que conceda licencias para las bandas GSM 900 y GSM 1800, establece las bases para que operen varios operadores en el mismo. Esto provocaría que la competencia crezca y el servicio a los suscriptores mejore [2].

GSM 1900
En 1995, el concepto personal de los servicios de comunicaciones (PCS) fue especificado en los Estados Unidos. La idea básica es permitir la comunicación "persona-a-persona" más bien que "estación-a-estación". Los PCS no requieren que tales servicios estén puestos en ejecución usando tecnología celular, pero éste ha demostrado ser el método más eficaz. Las frecuencias disponibles para los PCS son alrededor de los 1900 Mhz. Pues el GSM 900 no se podría utilizar en Norteamérica debido a la asignación anterior de las frecuencias de 900 Mhz, el GSM 1900 Mhz se considera como oportunidad de tender un puente sobre este campo. La diferencia principal entre el GSM americano 1900 estándar y GSM 900 es la señalización ANSI [2].

GSM 800
La Multi-banda en el sistema de GSM de Ericsson ahora se realza para incluir la banda de 800 Mhz., así aumentando la capacidad para los operadores con una licencia para esta frecuencia. Esta banda de frecuencia fue tradicionalmente por TDMA en los EE.UU [2].

Localización de las Bandas GSM
Existen un total de 14 bandas de frecuencias GSM reconocidas las cuales están representadas en la Tabla 1.
Tabla 1.- Rangos de las Bandas de frecuencias GSM [5]
BAND
UPLINK 
(MHZ)
DOWNLINK
(MHZ)
COMMENTS
380
380.2 - 389.8
390.2 - 399.8

410
410.2 - 419.8
420.2 - 429.8

450
450.4 - 457.6
460.4 - 467.6

480
478.8 - 486.0
488.8 - 496.0

710
698.0 - 716.0
728.0 - 746.0

750
747.0 - 762.0
777.0 - 792.0

810
806.0 - 821.0
851.0 - 866.0

850
824.0 - 849.0
869.0 - 894.0

900
890.0 - 915.0
935.0 - 960.0
P-GSM, i.e. Primary or standard GSM allocation
900
880.0 - 915.0
925.0 - 960.0
E-GSM, i.e. Extended GSM allocation
900
876.0 – 915
921.0 - 960.0
R-GSM, i.e. Railway GSM allocation
900
870.4 - 876.0
915.4 - 921.0
T-GSM
1800
1710.0 - 1785.0
1805.0 - 1880.0

1900
1850.0 - 1910.0
1930.0 - 1990.0


METODOS DE ACCESO MULTIPLE EN GSM

Acceso a Sistemas Truncados
Si el número de canales disponibles para todos los usuarios de un sistema de radio es menor que el número de posibles usuarios, entonces a ese sistema se le llama sistema de radio truncado. El truncamiento es el proceso por el cual los usuarios participan de un determinado número de canales de forma ordenada. Los canales compartidos funcionan debido a que podemos estar seguros que la probabilidad de que todo el mundo quiera un canal al mismo tiempo es muy baja. Un sistema de telefonía celular como GSM es un sistema de radio truncado, porque hay menos canales abonados que posiblemente quieran usar el sistema al mismo tiempo. El acceso se garantiza dividiendo el sistema en uno o más de sus dominios: frecuencia, tiempo, espacio o codificación, para el caso de GSM, utiliza combinación entre FDMA y TDMA [2].

Acceso Múltiple por División de Frecuencia (FDMA).
FDMA (Frecuency Division Multiple Access) es la manera más común de acceso truncado. Con FDMA, se asigna a los usuarios un canal de un conjunto limitado de canales ordenados en el dominio de la frecuencia. Cuando hay más usuarios que el suministro de canales de frecuencia puede soportar, se bloquea el acceso de los usuarios al sistema. Cuantas más frecuencias se disponen, hay más usuarios, y esto significa que tiene que pasar más señalización a través del canal de control. Los sistemas muy grandes FDMA frecuentemente tienen más de un canal de control. Los sistemas muy grandes FDMA frecuentemente tienen más de un canal de control para manejar todas las tareas de control de acceso. Una característica importante de los sistemas FDMA es que una vez que se asigna una frecuencia a un usuario, ésta es usada exclusivamente por ese usuario hasta que éste no se necesite el recurso [2].

            En concreto, en el esquema de FDMA se tienen en total 125 canales. Cada canal tiene un ancho de banda de 200 Khz., los cuales están contiguos y separados por “bandas de seguridad” para evitar la interferencia y solapamiento entre los mismos. Como se observa en la Tabla 1 las bandas GSM están divididas en dos secciones: de subidoa (uplink) y de bajada (downlink). Cada una de estas secciones tiene un ancho de banda de 25 Mhz. Para el caso de la banda GSM 900 se puede observar su división en canales en la Figura 2.

Figura 3.- Subida y bajada de la banda GSM 900 [4]

Acceso Múltiple por División del Tiempo (TDMA).
TDMA (Time Division Multiple Access) es común en los sistemas de telefonía fija. Las últimas tecnologías en los sistemas de radio son la codificación de la voz y la compresión de datos, que eliminan la redundancia y periodos de silencio y decrementan el tiempo necesario en representar un periodo de voz. Los usuarios acceden a un canal de acuerdo con un esquema temporal. Aunque no hay ningún requerimiento técnico para ello, los sistemas celulares, que emplean técnicas TDMA siempre usan TDMA sobre una estructura FDMA. Un sistema puro TDMA tendría sólo una frecuencia de operación, y no sería un sistema útil [2].

En los sistemas modernos celulares y digitales, TDMA implica el uso de técnicas de compresión de voz digitales, que permite a múltiples usuarios compartir un canal común utilizando un orden temporal. La codificación de voz moderna, reduce mucho el tiempo que se lleva en transmitir mensajes de voz, eliminando la mayoría de la redundancia y periodos de silencio en las comunicaciones de voz. Otros usuarios pueden compartir el mismo canal durante los periodos en que éste no se utiliza. Los usuarios comparten un canal físico en un sistema TDMA, donde están asignados unos slots de tiempo. A todos los usuarios que comparten la misma frecuencia se les asigna un slot de tiempo, que se repite dentro de un grupo de slots que se llama trama. Un slot GSM es de 577 micro segundos y cada usuario tiene uso del canal (mediante su slot) cada 4.615 milisegundos (577 microsegundos * 8 = 4.615 milisegundos), ya que en GSM se tienen 8 slots de tiempo [2].

Entonces el sistema GSM emplea Acceso Múltiple por División del Tiempo (TDMA) combinado con saltos de frecuencia, de aquí que el canal físico sea particionado tanto en tiempo como en frecuencia. En consecuencia, el canal físico es definido como una secuencia de canales de radio frecuencia  y de intervalos de tiempo (TS o Time Slots). Cada frecuencia de portadora soporta 8 canales físicos vaciados en 8 TS dentro de una trama TDMA. La Figura 2 ilustra el proceso de creación de una trama GSM TDMA [3].

Figura 4.- Estructura de la trama GSM TDMA [3]

Referencias:

[1] http://www.masadelante.com/faqs/gsm
[2] Ordaz, L. A. (Noviembre de 2007). Trabajo Recepcional. Normatividad de la Telefonía Móvil en México Relacionada con las Radiaciones Electromagneticas y sus Riesgos para la Salud . Coatzacoalcos, Veracruz, México.
[3] Amador, J., González, L., Morales, M., Palacio, M., & Salazar, P. (s.f.). Seminario de Titulación Procesamiento Digital de Señales. Descripción de un sitio celular GSM y parámetros de calidad de TELCEL . México, Distrito Federal, México.
[4] http://www.dcl.hpi.uni-potsdam.de/teaching/mobilitySem03/slides/hpi_gsm_air_interface.pdf
[5] http://www.radio-electronics.com/info/cellulartelecomms/gsm_technical/gsm-frequency-frequencies-bands-allocations.php
[6] http://www.worldtimezone.com/gsm.html