550 likes | 708 Views
Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013. Data Communication Group http://networks.inf.ufrgs.br/dcg/. Agenda. Gateways USSD disponíveis Simuladores GSM, SMPP e USSD Simulação com Gateway LeibICT
E N D
Unstructured SupplementaryService Data (USSD) Aula 6: Bibliotecas e SimuladoresPorto Alegre, outubro de 2013 Data Communication Group http://networks.inf.ufrgs.br/dcg/
Agenda • Gateways USSD disponíveis • Simuladores GSM, SMPP e USSD • Simulação com Gateway LeibICT • Desenvolvendo uma aplicação Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013
USSD Gateways disponíveis no mercado Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013
Comparação Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013
Gateway LeibICT • Exemplo de Infraestrutura Real Unstructured Supplementary Service Data (USSD)Porto Alegre, setembro de 2013
Gateway LeibICT • Funcionalidades: • Suporte a UMTS/GSM • Alto desempenho (+500 transações/segundo) • Suporta Interface Sigtran(100Mbit/1Gbit) • Até 64 aplicações USSD (short codes) • O&M Web Interface • SNMP v1 and v2 Traps • Até 4 níveis de redundância • Suporta Linux e Solaris • Criptografia com AES-256bit/RSA-4096bit • APIs para comunicação sobre HTTP, XML/TCP/IP • Linguagens Java and C++ Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013
Agenda • Gateways USSD disponíveis • Simuladores GSM, SMPP e USSD • Simulação com Gateway LeibICT • Desenvolvendo uma aplicação Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013
Implementação de Aplicações • Na operadora • Utilizando a infraestrutura da operadora • Depende de acordos firmados entre a prestadora de serviço e a operadora • Desenvolvimento da aplicação depende dos recursos disponibilizados pela operadora • Problemas: • Dificuldades impostas pelas operadoras • Gasta recursos • Pode comprometer o funcionamento da rede Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013
Implementação de Aplicações • Na operadora • Na prestadora de serviço • Usando simuladores Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013
Implementação de Aplicações • Na prestadora de serviços • Prestadora adquire equipamentos para o desenvolvimento • Não depende da operadora • Desenvolvimento é totalmente controlado pela prestadora • Problemas: • Infraestrutura para testes é cara • Prestadora de serviço pode não ter recursos • Infraestrutura pode não ser reaproveitada Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013
Simuladores • Prós: • Menores custos • Desenvolvimento independente de infraestrutura • Aplicação não fica “refém” da operadora • Contras: • Desenvolvimento pode ficar demasiadamente simplificado, ignorando aspectos importantes • Ambiente simulado não apresenta particularidades de redes reais (atrasos, perdas, etc.) Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013
Tipos de Simulação • GSM • Simula determinados componentes da rede e/ou a comunicação entre eles • Protocolos da rede • Simula a comunicação utilizando determinado protocolo da rede GSM • Tráfego de informações • Simula tráfego de transmissão e recepção de dados em um canal GSM • Utilizado para análise de tráfego (sobrecarga, perdas, estatística, etc. Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013
Tipos de Simulação • USSD • Simula a operação do Gateway USSD • Protocolos de comunicação com a rede GSM e servidor de aplicações simplificados • Utilização de Sockets Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013
MAPS™ GSM Abis Interface Emulator • www.gl.com/maps-gsmabis.html • Software pago • Simula a interface de comunicação via rádio A-bis • Entre BTS e BSC • Possibilita realização de testes entre estes elementos • Rastreamento de erros • Testes de regressão • Testes de conformidade • Testes de sobrecarga • Geração de chamadas • Geração de grandes volumes de tráfego GSM Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013
MAPS™ GSM Abis Interface Emulator MS NSS BSS MAPS Abis Simulator Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013 15
MAPS™ GSM Abis Interface Emulator MM – Mobility Management CC – CustomerCare–Atendimento ao cliente RR – Radio Resource management SMS – Short Message Service Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013
MAPS™ GSM Abis Interface Emulator Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013
MAPS™ GSM A Interface Emulator • www.gl.com/maps-gsma.html • Software pago • Simula a interface de comunicação A • Entre BSC e MSC/VLR • Implementa os protocolos BSSMAP e DTAP • Possibilita realização de testes entre MSC e BSC • Rastreamento de erros • Testes de regressão • Testes de conformidade • Testes de sobrecarga • Geração de chamadas • Geração de grandes volumes de tráfego GSM Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013
MAPS™ GSM A Interface Emulator MS NSS BSS MAPS A Simulator Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013 19
MAPS™ GSM A Interface Emulator SCCP - Signalling Connection ControlPart MTP– MessageTransferPart BSSMAP – Base Station Subsistem Mobile ApplicationPart DTAP- DirectTransferApplicationPart MM – Mobility Management CC – CustomerCare–Atendimento ao Cliente RR – Radio Resource management SMS – Short Message Service Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013
MAPS™ GSM A Interface Emulator Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013
GSM TrafficChannel Simulator • Conjunto de funções para Matlab e Simulink • Gratuito • Simula o tráfego em um canal sem fio GSM • Aplica fading sobre o canal e calcula o Bit Error Rate (BER) na recepção • Útil para analisar a comunicação entre rádios na rede GSM Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013
Selenium Software SMPPsim • www.seleniumsoftware.com • Gratuito • “Emula” a comunicação entre SMSC através do protocolo SMPP • Validação de aplicações fica mais rápida • Aferição de estatísticas de tráfego • Versões para sistemas Windows e Unix UnstructuredSupplementary Service Data (USSD) Porto Alegre, outubro de 2013
Selenium Software SMPPsim Interface de Usuário (estatísticas) Interface de Geração de tráfego (testes) Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013
Agenda • Gateways USSD disponíveis • Simuladores GSM, SMPP e USSD • Simulação com Gateway LeibICT • Desenvolvendo uma aplicação Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013
Simulador de Gateway USSD • LeibICT USSD S-GW Simulator • Gratuito • Além de simular o Gateway, abstrai os demais elementos da rede • Rede GSM • Servidor de Aplicações • Aplicações desenvolvidas através do USSD Developer Kit • Totalmente compatíveis com o S-Gateway USSD da empresa Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013
LeibICT USSD S-GW Simulator • Integração total com a API de desenvolvimento para o S-Gateway USSD • C++ • Java • Facilita o desenvolvimento de aplicações USSD • Aplicação pode ser testada no próprio computador Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013
USSD DeveloperKit - Ambientes MAP – 09.02 LSL HSL Sigtran XML/TCP/IP Telefone HLR BTC/BSC LeibICT USSD S-Gateway Célula MSC Desenvolvimento de Aplicação Rede Real XML/TCP/IP Simulador USSD S-Gateway Desenvolvimento de Aplicação Rede Simulada entre duas máquinas XML/TCP/IP Rede simulada localmente Desenvolvimento de Aplicação Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013
Gateway LeibICT • USSD Developer Kit (Inclui) • Documentação • USSD Java JNI API UserGuide • USSD C++ API UserGuide • USSD XML/TCP/IP ProtocolUserGuide • Exemplos • USSD C++ ApplicationSamplecode • USSD Java ApplicationSamplecode • Simuladores • USSD Gateway Simulator, capableofmultiplesessions in parallel • Phone Skined USSD GW Simulator, useful for presentations • Bibliotecas • Windows (WIN32) libraries • Linux 32bit libraries • Linux 64bit libraries Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013
Interface avançada Configuração do Gateway Testes de escalabilidade Clientes USSD (telefones) Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013
Interface Simplificada • Phone Skined USSD GW Simulator • Útil para apresentações • Configuração via Windows Registry • Não apresenta as opções da interface avançada Unstructured Supplementary Service Data (USSD) Porto Alegre, setembro de 2013
LeibICT: USSDJNI JavaAPI • API para desenvolvimento de aplicações JAVA • Controla a conexão TCP/IP, incluindo reconexão • Implementa criptografia RSA • Cria e realiza parsing de XML • Controla detalhes do protocolo USSD/MAP • Formada por um grupo de bibliotecas desenvolvidas em C++ carregadas na Máquina Virtual Java UnstructuredSupplementary Service Data (USSD) Porto Alegre, outubro de 2013
LeibICT: USSDJNI JavaAPI • Permite que programadores acessem serviços providos pelo USSD S-Gateway utilizando uma interface baseada em funções e callbacks Java • Mecanismo de comunicação utilizado entre a API e o S-Gateway é transparente para o desenvolvedor • Gerenciamento de sockets é realizado pela biblioteca USSDJNI UnstructuredSupplementary Service Data (USSD) Porto Alegre, outubro de 2013
LeibICT: USSDJNI JavaAPI • Callbacks: • Funções chamadas pelo Gateway • Devem ser implementadas e tratadas na aplicação • Instanciadas antes de realizar a conexão entre uma aplicação e o S-Gateway UnstructuredSupplementary Service Data (USSD) Porto Alegre, outubro de 2013
LeibICT: USSDJNI JavaAPI • Conectando uma aplicação ao S-Gateway • É necessário executar algumas funções antes de estabelecer a conexão • Após a conexão ocorre a chamada de uma callback • cb_connected( ) UnstructuredSupplementary Service Data (USSD) Porto Alegre, outubro de 2013
Conexão Gateway-Aplicação USSD S-Gateway Aplicação USSD USSDJNI Initialize() ussd_requestShortCode() connect() rsa_sec() rsa_sec_conf() bind() bind_conf() cb_connected() UnstructuredSupplementary Service Data (USSD) Porto Alegre, outubro de 2013
LeibICT: USSDJNI JavaAPI • Mensagens recebidas pela aplicação (Callbacks): • Reações da aplicação às chamadas Callbacks podem ser implementadas utilizando as funções da API UnstructuredSupplementary Service Data (USSD) Porto Alegre, outubro de 2013
LeibICT: USSDJNI JavaAPI • Funções executadas pela aplicação: UnstructuredSupplementary Service Data (USSD) Porto Alegre, outubro de 2013
USSD Iniciado pelo Usuário Usuário Mobile Aplicação USSD USSD S-Gateway ussd_request ussd_request process_ussd_request cb_ussd_response ussd_response process_ussd_request ussd_end cb_ussd_service UnstructuredSupplementary Service Data (USSD) Porto Alegre, outubro de 2013
USSD Iniciado pela Aplicação Mobile User Aplicação USSD USSD S-Gateway ussd_begin ussd_request ussd_response process_ussd_request ussd_end cb_ussd_response UnstructuredSupplementary Service Data (USSD) Porto Alegre, outubro de 2013
Bugs Conhecidos • O simulador não suporta operações Push • A API C++ não inclui chamadas begin ou notify (somente em Java) • As chamadas requestshortcode não são interpretadas pelo simulador • O simulador não suporta várias aplicações conectadas simultaneamente • A API Java não aceita os parâmetros para ativar criptografia • A API C++ aceita criptografia de 512, 1024 e 2048 bits apenas UnstructuredSupplementary Service Data (USSD) Porto Alegre, outubro de 2013
Agenda • Gateways USSD disponíveis • Simuladores GSM, SMPP e USSD • Simulação com Gateway LeibICT • Desenvolvendo uma aplicação Unstructured Supplementary Service Data (USSD)Porto Alegre, setembro de 2013
Desenvolvendo uma Aplicação C++ • Criando um Projeto C++ no Visual Studio 2010 • File → New Project → Visual C++ → Win32 Console Application Detalhes do projeto no Visual Studio Project → Properties ConfigurationProperties → General CharacterSet: Use Multi-ByteCharacter Set
Desenvolvendo uma Aplicação C++ • Copiar os seguintes arquivos para dentro da pasta do projeto (mesma pasta onde estão os códigos-fonte): • ussd.cpp (implementação do objeto base CUSSD) • ussd.h (headers com as definições do objeto base) • ussd.dll (biblioteca que implementa o protocolo XML de comunicação com o gateway) • Arquivos disponíveis dentro da pasta do simulador • LeibICT-UDK-v1.1f\samples\c++\ussdtest Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013
Desenvolvendo uma Aplicação C++ • No item “Source Files” do projeto no Visual Studio clicar com o botão direito: • Add→ Existing Item • Adicionar o arquivo ussd.cpp ao projeto • No item “Header Files” do projeto no Visual Studio clicar com o botão direito: • Add→ ExistingItem • Adicionar o arquivo ussd.h ao projeto • Adicionar o header ao arquivo principal do projeto • #include "ussd.h" Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013
Estrutura mínima de um programa USSD • Callbacks – Todas as callbacks precisam ser configuradas mesmo que algumas não sejam necessárias para a aplicação //CB whenapplicationisconnectedtogateway voidconnected(){} //CB whenapplicationgetsdisconnectedfrom gateway voiddisconnected(){} //CB tohandlepingsfrom gateway voidping(){} //CB to sinalize whentheuser starts a call voidussdService(intdialogId,char*shortCode,char*phoneNumber){} //CB tohandleuser responses voidussdResponse(intdialogId,char*str){} //CB to sinalize whentheuserendsthecall voidussdEnd(intdialogId){} Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013
Estrutura mínima de um programa USSD • Callbacks – Depois as callbacks devem ser associadas a uma estrutura do tipo USSDCallbacks (no início do programa principal) //CB struct USSDCallbackscallbacks; callbacks.connected=connected; callbacks.disconnected=disconnected; callbacks.ping=ping; callbacks.ussdService=ussdService; callbacks.ussdResponse=ussdResponse; callbacks.ussdEnd=ussdEnd; Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013
Estrutura mínima de um programa USSD • Inicializando a API – Uma instância de CUSSD deve ser criada globalmente para ser usada por todas as funções e callbacks //Create global reference to API CUSSD*ussd; //CUSSD Instance ussd=new CUSSD(); //Initializes API ussd->initialize(&callbacks); Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013
Estrutura mínima de um programa USSD • Conectando ao Gateway – A API conecta ao gateway, com ou sem uso de criptografia, através de TPC/IP //Connects to gateway with no cryptography ussd->connectgw("localhost",5454, 0, 0); //Or connects to gateway with 512 bit key ussd->connectgw("localhost",5454, 1, 1); //Or connects with 1024 reception and 2048 transmission keys ussd->connectgw("localhost",5454, 2, 3); Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013
Desenvolvendo uma Aplicação Java • Criando projeto Java no Netbeans • File → New Project → Java → Java Application Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013