aula 6: bibliotecas e simuladores porto alegre, outubro de 2013 unstructured supplementary service...

55
Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Data Communication Group http://networks.inf.ufrgs.br/dcg/

Upload: internet

Post on 18-Apr-2015

117 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

Unstructured Supplementary

Service Data (USSD)

Aula 6: Bibliotecas e Simuladores

Porto Alegre, outubro de 2013

Data Communication Grouphttp://networks.inf.ufrgs.br/dcg/

Page 2: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

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

2

Page 3: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

USSD Gateways disponíveis no mercado

3Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013

Page 4: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

Comparação

4Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013

Gateway Plataforma Distribuiç

ão

Protocolos

Suportados

Criptografia API

MCTEL Software Livre SMPP, MAP, HTTP, XML NA Sim

Mobicents Software Livre SMPP, MAP,

HTTP, XML RSA/AES NA

Mahindra Hardware Pago SMPP, MAP, HTTP NA Sim

Telestax Hardware/Software Pago NA NA NA

Planet Software Pago SMPP, MAP, HTTP, XML RSA/AES Sim

LeibICT Hardware/Software Pago/Livre SMPP, MAP HTTP, XML RSA/AES Sim

Syniverse Software Pago NA NA Sim

Page 5: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

Gateway LeibICT

Exemplo de Infraestrutura Real

Unstructured Supplementary Service Data (USSD)Porto Alegre, setembro de 2013

5

Page 6: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

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++

6Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013

Page 7: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

Agenda

① Gateways USSD disponíveis

② Simuladores GSM, SMPP e USSD

③ Simulação com Gateway LeibICT

④ Desenvolvendo uma aplicação

7Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013

Page 8: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

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

8Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013

Page 9: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

Implementação de Aplicações

Na operadora

Na prestadora de serviço

Usando simuladores

9Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013

Page 10: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

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

10Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013

Page 11: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

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.)

11Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013

Page 12: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

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.

12Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013

Page 13: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

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

13Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013

Page 14: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

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

14Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013

Page 15: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

15

MAPS™ GSM Abis Interface Emulator

15

MS

BSC

EIR

SMSCAuC

BSS NSS

BTS

HLR

MSC

VLR

GMSC

MAPS Abis Simulator

Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013

Page 16: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

MAPS™ GSM Abis Interface Emulator

16

BTSM 3GPP TS 08.58 V8.6.0

MM 3GPP TS 04.08 V7.17.0

CC 3GPP TS 04.08 V7.17.0

RR 3GPP TS 04.18 V8.13.0

SMS 3GPP TS 03.40 V7.5.0 & 3GPP TS 04.11 V7.1.0 GSM 03.38 version 7.2.0

Release 1998

Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013

MM – Mobility ManagementCC – Customer Care – Atendimento ao clienteRR – Radio Resource managementSMS – Short Message Service

Page 17: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

MAPS™ GSM Abis Interface Emulator

17Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013

Page 18: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

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

18Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013

Page 19: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

19

MAPS™ GSM A Interface Emulator

19

MS

BSC

EIR

SMSCAuC

BSS NSS

BTS

HLR

MSC

VLR

GMSC

MAPS A Simulator

Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013

Page 20: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

MAPS™ GSM A Interface Emulator

20

Protocolos suportado Padrão/Especificação Utilizada

SCCP Q.713, CCITT (ITU-T) Blue Book

MTP3 ITU-T Q.704

BSSMAP / DTAP 3GPP TS 08.08 V8.9.0

MM 3GPP TS 04.08 V7.17.0

CC 3GPP TS 04.08 V7.17.0

RR 3GPP TS 04.18 V8.13.0

SMS3GPP TS 03.40 V7.5.0 & 

3GPP TS 04.11 V7.1.0 GSM 03.38 version 7.2.0 Release 1998

Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013

SCCP - Signalling Connection Control PartMTP – Message Transfer PartBSSMAP – Base Station Subsistem Mobile Application PartDTAP - Direct Transfer Application PartMM – Mobility ManagementCC – Customer Care – Atendimento ao ClienteRR – Radio Resource managementSMS – Short Message Service

Page 21: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

MAPS™ GSM A Interface Emulator

21Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013

Page 22: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

GSM Traffic Channel 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

22Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013

Page 23: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

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 UnixUnstructured Supplementary Service Data (USSD)

Porto Alegre, outubro de 2013 23

Page 24: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

Selenium Software SMPPsim

24

Interface de Usuário(estatísticas)

Interface de Geração de tráfego(testes)

Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013

Page 25: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

Agenda

① Gateways USSD disponíveis

② Simuladores GSM, SMPP e USSD

③ Simulação com Gateway LeibICT

④ Desenvolvendo uma aplicação

25Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013

Page 26: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

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

26Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013

Page 27: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

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

27Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013

Page 28: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

USSD Developer Kit - Ambientes

28

Desenvolvimento de AplicaçãoSimulador USSD S-Gateway

XML/TCP/IP

Telefone

Célula

BTC/BSC

MSC

HLR

MAP – 09.02LSLHSL

SigtranDesenvolvimento de Aplicação

XML/TCP/IP

LeibICT USSD S-Gateway

Desenvolvimento de Aplicação

XML/TCP/IP

Rede Real

Rede Simulada entre duas máquinas

Rede simulada localmente

Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013

Page 29: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

Gateway LeibICT

USSD Developer Kit (Inclui)

Documentação USSD Java JNI API User Guide USSD C++ API User Guide USSD XML/TCP/IP Protocol User Guide

Exemplos USSD C++ Application Sample code  USSD Java Application Sample code

Simuladores USSD Gateway Simulator, capable of multiple

sessions in parallel Phone Skined USSD GW Simulator, useful for

presentations

Bibliotecas Windows (WIN32) libraries Linux 32bit libraries Linux 64bit libraries

29Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013

Page 30: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

Interface avançada

30

Configuração do Gateway

Clientes USSD(telefones)

Testes de escalabilidade

Unstructured Supplementary Service Data (USSD)Porto Alegre, outubro de 2013

Page 31: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

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

31

Page 32: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

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 JavaUnstructured Supplementary Service Data (USSD)

Porto Alegre, outubro de 2013 32

Page 33: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

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

Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

33

Page 34: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

LeibICT: USSDJNI JavaAPI

Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

34

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

Page 35: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

LeibICT: USSDJNI JavaAPI

Função Descrição Parâmetros

initialize Inicializa a biblioteca JNI -

ussd_requestShortCode

Informa ao Gateway quais são os ShortCodes aceitos pela aplicação Short code

connectRealiza a conexão entre aplicação e Gateway utilizando o endereço e a porta desejados

Endereço IPPortaCriptografia utilizada

Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

35

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( )

Page 36: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

Conexão Gateway-Aplicação

Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

36

USSDJNI Aplicação USSDUSSD S-Gateway

Initialize()

connect()

ussd_requestShortCode()

rsa_sec()

rsa_sec_conf()

bind()

bind_conf()

cb_connected()

Page 37: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

LeibICT: USSDJNI JavaAPI

Callback Descrição Parâmetros

cb_ussd_service

Inicializada a comunicação de um usuário com a aplicação

dialogIDshortCodephoneNumber

cb_ussd_response

Resposta de um usuário recebida pela aplicaçãodialogIDString (resposta)

cb_ussd_end Usuário encerrou seu diálogo com a aplicação DialogID

cb_ussd_pingGateway testa se aplicação ainda está ativa – Aplicação deve responder com um pong() -

cb_connectedConexão entre Gateway e aplicação foi estabelecida

-

cb_disconnected

Conexão entre Gateway e aplicação foi encerrada -Unstructured Supplementary Service Data (USSD)

Porto Alegre, outubro de 2013 37

Mensagens recebidas pela aplicação (Callbacks): Reações da aplicação às chamadas Callbacks

podem ser implementadas utilizando as funções da API

Page 38: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

LeibICT: USSDJNI JavaAPI

Função Descrição Parâmetrosussd_request

Envia mensagem para um usuário através do Gateway

dialogIDprompt (mensagem)

ussd_endEnvia mensagem para um usuário finalizando o diálogo

dialogIDinfo (mensagem)

pongResponde a chamada ping do Gateway. Caso não responda, a aplicação pode ser desconectado do Gateway

-

ussd_beginEnvia uma mensagem para usuário iniciando um diálogo

dialogIDhlrGT (HLR Global Title)phoneNumberText

ussd_notifyEnvia uma mensagem para um usuário sem iniciar um diálogo (apenas informativo)

dialogIDhlrGT (HLR Global Title)phoneNumbertext

Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

38

Funções executadas pela aplicação:

Page 39: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

USSD Iniciado pelo Usuário

Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

39

USSD S-Gateway Aplicação USSDUsuário Mobile

ussd_request

ussd_request

process_ussd_request

ussd_end

cb_ussd_service

process_ussd_request

ussd_responsecb_ussd_response

Page 40: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

USSD Iniciado pela Aplicação

Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

40

USSD S-Gateway Aplicação USSDMobile User

ussd_begin

ussd_request

ussd_response

ussd_end

cb_ussd_response

process_ussd_request

Page 41: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

Bugs Conhecidos

Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

41

O simulador não suporta operações Push A API C++ não inclui chamadas begin ou

notify (somente em Java) As chamadas request shortcode 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

Page 42: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

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

42

Page 43: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

Desenvolvendo uma Aplicação C++

Criando um Projeto C++ no Visual Studio 2010 File → New Project → Visual C++ → Win32

Console Application

43

Detalhes do projeto no Visual Studio Project → Properties Configuration Properties → General Character Set: Use Multi-Byte Character Set

Page 44: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

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

44

Page 45: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

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 → Existing Item 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

45

Page 46: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

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 when application is connected to gateway

void connected(){}

//CB when application gets disconnected from gateway

void disconnected(){}

//CB to handle pings from gateway

void ping(){}

//CB to sinalize when the user starts a call

void ussdService(int dialogId, char* shortCode, char* phoneNumber){}

//CB to handle user responses

void ussdResponse(int dialogId, char* str){}

//CB to sinalize when the user ends the call

void ussdEnd(int dialogId){}

Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

46

Page 47: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

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

USSDCallbacks callbacks;

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

47

Page 48: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

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

48

Page 49: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

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

49

Page 50: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

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

50

Page 51: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

Desenvolvendo uma Aplicação Java

Copiar os seguintes arquivos para dentro da pasta do projeto (mesma pasta onde estão os códigos-fonte): src\com\leibict\ussd\USSD.java (implementação do

objeto base CUSSD)

Arquivo disponível dentro da pasta do simulador LeibICT-UDK-v1.1f\samples\java\USSDTestMT

Copiar a DLL da pasta lib do simulador dentro da pasta do Windows: Descompactar de ussdjni.b1012.win32.zip ou

ussdjni.b1012.win64.zip Copiar ussdjni.dll para c:\windows\system32

A estrutura mínima de uma aplicação Java é bastante similar a do C++

Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

51

Page 52: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

Exercício 1: Aplicação Bancária

Desenvolver uma aplicação para que o cliente de um banco consiga realizar algumas operações básicas em sua conta

As principais funcionalidades são: Autenticação: Número da conta e senha Menu de Opções:

Consulta Saldo Pagar Conta (Informando valor) Realizar Transferência (Informando conta e

valor) Sair

Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

52

Page 53: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

Exercício 1: Aplicação Bancária

Unstructured Supplementary Service Data (USSD) Porto Alegre, setembro de 2013

IDLEAUTH

IDAUTH PWD

BALANCE PAYMENT

TRANSF ID

TRANSF

MAIN

Service: *123#Request: What is your UID?

What is your UID?

Response: 222Request: Now your passwd

Not foundResponse: 999 (invalid)End: Not found

Now your passwordResponse: 000 (invalid)

End: Wrong Password

Wrong Password

Reponse: 444Request: Main Menu

Menu:1. Balance2. Payment3. Transfer4. ExitResponse: 1

Request: Balance Menu

Balance: $10Menu:1.Go back2.Exit

Reponse: 2End: bye!

Bye!

Reponse: 1Request: Main Menu

Inform Amount:

Reponse: 2Request: Inform amount

Paid/No balanceMenu:1. Balance2. Payment3. Transfer4. Exit

Reponse: 10Request: Paid/No balance & Main Menu

Destination account:

Reponse: 3Request: Destination account

Amount:

Reponse: 333Request: Amount

Reponse: 999Request: Not Found & Main Menu

Not found:Menu:1. Balance2. Payment3. Transfer4. Exit

Reponse: 10Request: Transfered/No balance & Main Menu

Transfered/No BalanceMenu:1. Balance2. Payment3. Transfer4. Exit

Reponse: 4End: bye!

Bye!

Page 54: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

Exercício 2: Teste de Desempenho

Desenvolver um serviço USSD para calcular o enésimo número primo Por exemplo, o usuário digita o código *100*12# O serviço retorna ussd_end com mensagem 37 Caso o usuário digite apenas *100# o serviço

pergunta qual número primo ele deseja descobrir

Objetivo do exercício Fazer um exercício com parsing do string do

serviço USSD Usar a parte de teste de desempenho do

simulador para verificar a carga da aplicação

Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

54

Page 55: Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto

Obrigado!Perguntas?

Cristiano Bonato [email protected]

Unstructured SupplementaryService Data (USSD)

Porto Alegre, outubro de 2013

http://networks.inf.ufrgs.br/dcg