Quarta-feira, 16 de Junho de 2010
Contexto

Um dos principais objectivos deste trabalho é reproduzir publicidade ao utilizador baseado em contexto.

A nossa aplicação contém uma lista de empresas, com várias palavras chave. Cada empresa pode ter várias publicidades, tendo a possibilidade de escolha de horário de preferencia para o seu anuncio. Por exemplo, anuncio de uma pizzaria, têm mais impacto nas horas de almoço e jantar. 

Para seleccionar a publicidade ao utilizador foram considerados as seguintes informações:

De modo a fazer-se uma selecção aleatória, considerou-se os factores acima descrito, tendo em consideração em primeiro lugar uma lista de publicidades ordenadas por distância, apenas para a hora desejada, incluindo-se também publicidades relacionadas com SMS anteriores. Baseado nesta lista efectou-se uma selecção aleatória, permitindo assim que o utilizador não ouça sempre a mesma publicidade.

 Para aceder à distância do utilizador, realizou-se um pedido por webservice ao serviço de geolocalização (ServiceLocation) [1, 2] utilizando o identificador do telefone (Conseguido através do parsing do endereço SIP, exemplo, 915555555@open-ims.test). Desta forma, sabemos o numero de telefone do utilizador, tendo acesso à sua localização.

Por fim, para fornecer a publicidade ao Call Centerdisponibilizou-se através de um pedido HTTP, o anuncio, sendo parametro obrigatório o endereço SIP do utilizador.

[1] - http://smartad.blogs.ua.sapo.pt/1480.html

[2] - http://smartad.blogs.ua.sapo.pt/1160.html




Terça-feira, 15 de Junho de 2010
CallCenter

Como explicado no primeiro post deste blogue, um dos objectivos deste projecto é, ao iniciar uma chamada, reproduzir publicidade enquanto se espera que o destinatário da chamada atenda. Isto foi alterado, na medida em que, ao ser iniciada uma chamada é reproduzida publicidade, mas só quando a publicidade acaba é que a chamada é redireccionada para o destinatário.


Para implementar o CallCenter foi usado o SailFin [1] para interagir com as mensagens SIP [2]. O OpenIMS teve também de ser configurado para comunicar com o SailFin [4].

Para exemplificar o funcionamento do CallCenter suponhamos que a Alice quer ligar ao Bob. O SIP Client da Alice envia um Invite para o Bob que é redireccionado pelo OpenIMS para o SailFin. No SailFin, este Invite, é processado por um Sip Servlet que começa por contactar, através de um Web Service, a aplicação principal para saber qual a publicidade a reproduzir. Depois, é enviado uma SIP Message com o nome da publicidade para o MediaGateway seguida do Invite da Alice, com o destino alterado para o endereço SIP do MediaGateway. Ao receber este Invite, o MediaGateway, estabelece uma chamada com a Alice onde é reproduzida a publicidade. Quando a publicidade acaba, o MediaGateway envia um Bye. Este é apanhado pelo SailFin que envia um Refer [3] à Alice para transferir a chamada actualmente estabelecida com o MediaGateway para o Bob. Ao receber este Refer, a Alice envia um novo Invite para o Bob. A partir deste momento, segue-se um fluxo típico SIP, onde o Bob aceita, ou não, a chamada.

 

[1] SailFin

[2] RFC 3261

[3] RFC 3515

[4] http://ictbackyard.com/archives/tag/openims



Quinta-feira, 3 de Junho de 2010
Ligação entre Sofia-Sip cli e OpenIMS

O Sofia-Sip cli é um cliente de Sip IMS desenvolvido através das bibliotecas Sofia-Sip. Como não possui interface gráfica e a dimensão do código-fonte não é excessiva, torna-o o candidato ideal para desenvolver um MediaGateway.


Existe no entanto algumas questões quanto a ligação com o Open IMS:



  1. O método de autenticação por omissão no OpenIMS é AKAv1-MD5, é necessário alterar o ficheiro scscf.cfg para utilizar MD5.

  2. O Sofia-Sip não possui nenhuma tag P-Visited-Network-ID, que é requerida pelo OpenIMS. No entanto é possível construir esta tag manualmente e envia-lo no registo do Sofia-Sip.

  3. O username utilizado pelo OpenIMS é do tipo bob@open-ims.test, por outro lado o username utilizado pelo SofiaSip cli é apenas bob, na fase de autenticação é necessário indicar o username completo.


Corrigindo este pequenos erros no Sofia-Sip cli é possível liga-lo correctamente ao OpenIMS.


Outro aspecto relevante, nenhuma das stack multimedia fornecidas pelo Sofia-Sip cli parecem funcionar correctamente. É aconselhavel criar uma pipeline com o gstreamer onde se insere um ficheiro de áudio/vídeo e são produzidos pacotes rpt para um determinado destino.


 


Estou de momento a criar a pipeline que lê um ficheiro do tipo mp3 e envia o stream para o cliente IMS.




Quarta-feira, 2 de Junho de 2010
Integração

De modo a testar a parte do projecto relativa à procura de empresas através de sms, foi feito um teste de integração em que se juntou o daemon de geolocalização, o servidor de geolocalização, o sms gateway e ainda o servidor SMS Center.


O daemon de geolocalização registou as suas coordenadas actuais junto do servidor de geolocalização, e mais tarde foi enviada uma sms com a palavra "Restaurante" para o número de telemovel associado ao sms Gateway. O sms Gateway ao receber a mensagem evocou o servidor SMS Center, e este após obter a localização do cliente, realizou uma consulta usando o serviço de mapas do google para encontrar restaurantes perto do local onde o utilizador se encontrava.


O teste foi bem sucedido, sendo que em resposta à sms enviada, foi recebida uma sms contendo alguns dos restaurantes perto do local onde nos encontrávamos, tal como se pode observar pela imagem seguinte.



 


Alguns dos melhoramentos a fazer é corrigir o problema dos caracteres, assim como formatar os resultados de uma forma melhor.




.mais sobre mim
.pesquisar neste blog
 
.Junho 2010
Dom
Seg
Ter
Qua
Qui
Sex
Sab

1
2
3
4
5

6
7
8
9
10
11
12

13
14
17
18
19

20
21
22
23
24
25
26

27
28
29
30


.posts recentes

. Contexto

. CallCenter

. Ligação entre Sofia-Sip c...

. Integração

. Servidor SMS Center

. MediaGateway

. Servidor: Geo-localização

. Android: Daemon de geo-lo...

. SMS Gateway

. Aspectos Técnicos

.arquivos

. Junho 2010

. Maio 2010

.tags

. todas as tags

.participar

. participe neste blog

blogs SAPO
.subscrever feeds