Gestão de Sessões Multimédia IP com IM-SSF
Gestão de Sessões Multimédia IP com IM-SSF
2010 Informática
Ao Mestre António Amaral pela amizade e pela colaboração que foi de extrema
importância na realização desta dissertação.
resumo Na rede Internet Protocol (IP), é sempre possível um terminal comunicar com
outro terminal remoto desde que seja conhecido o endereço IP destino e o
número da porta da aplicação destino. Este modo de comunicação é muito
limitado quer do ponto de vista do utilizador quer do ponto de vista do
operador. Utilizando um protocolo de sinalização de rede IP como o Session
Initiation Protocol (SIP), é possível descobrir a localização do utilizador na rede
e negociar os recursos a usar nos terminais numa chamada (codecs por
exemplo). Com o protocolo SIP, é também dada mobilidade aos utilizadores da
rede IP.
Para dar satisfação de forma integrada a requisitos como segurança,
mobilidade, qualidade de serviço, gestão de sessão e tarifação foi definida, no
âmbito do 3rd Generation Partnership Project (3GPP), a arquitectura IP
Multimedia Subsystem (IMS) baseada no protocolo SIP, permitindo suporte de
serviços e aplicações multimédia em redes IP.
Sob o ponto de vista dos operadores é importante aplicar todo o trabalho
desenvolvido no controlo e gestão de chamadas Global System for Mobile
Communications (GSM), a sessões IP. É neste contexto que se enquadra o IP
Multimédia Service Switching Function (IM-SSF). Na arquitectura IMS,
enquadra-se na categoria dos Application Servers (AS’s) e possibilita que o
controlo e gestão de sessões multimédia IP sejam feitos através da lógica
GSM existente. Existem vários tipos de AS, os que funcionam como ponto
terminal da chamada, os que funcionam apenas como um ponto de transporte
na rede e ainda os Back to Back User Agent (B2BUA) 3GPP TS 23.218 onde
podem interligar duas chamadas diferentes.
O IM-SSF opera como um B2BUA e proporciona o controlo de sessões
multimédia IP participando no estabelecimento de sessão na rede IMS.
O sistema IM-SSF, definido em 3GPP TS 23.278, pode ser visto como um
servidor de aplicações SIP que implementa a porta de ligação entre o
protocolo SIP da interface IMS Service Control (ISC) e o protocolo Customized
Application for Mobile Network Enhanced Logic Application Part (CAP) que é
utilizado na interface entre o IM-SSF e as funções de controlo de serviço
Esta dissertação surge no seguimento do trabalho efectuado na PT Inovação
que proporcionou os meios necessários para o desenvolvimento e teste de um
módulo IM-SSF com vista à sua integração nas soluções da empresa.
keywords Signaling, IP Multimedia Sessions, IMS, IM-SSF, 3GPP
abstract In the network Internet Protocol (IP), it is always possible for a terminal to
communicate with other remote terminal since the destination IP address and
port number is known. This kind of communication it’s very limited for the users
and even for the operator. Using a signalization protocol like the Session
Initiation Protocol (SIP) it’s possible to find out the location of the user in the
network and negotiate the resources that will be used by the terminals in the
call (codecs for example). With SIP protocol it’s also given mobility to users of
the IP network.
To satisfy requirements like security, mobility, quality of service, session
management and charging it was defined by 3rd Generation Partnership
Project (3GPP), the IP Multimedia Subsystem (IMS) architecture, based in the
SIP protocol, allowing service support and multimedia applications in IP
networks.
On the point of view of operators its important apply all the work developed in
session and management of sessions in Global System for Mobile
Communications (GSM), to IP sessions. It’s in this context that IP Multimedia
Service Switching Function (IM-SSF) fits. In IMS architecture IM-SSF is an
Application Servers (AS’s) and allows that the control and management of IP
multimedia sessions could be made using the existing GSM control logic. There
are three types of AS: the ones that function like a terminal point of the call, the
ones that function like a transport point in the network and the Back to Back
User Agent (B2BUA) 3GPP TS 23.218 that can interconnect two different calls.
The IM-SSF operates like a B2BUA and furnishes the session control in IP
multimedia, by participating in the IMS session establishment.
The IM-SSF system, defined in 3GPP TS 23.278 can be seen like a server of
SIP applications that implements the gateway between SIP protocol of IMS
Service Control (ISC) interface and the Customized Application for Mobile
Network Enhanced Logic Application Part (CAP) protocol that’s used in the
interface between IM-SSF and the functions that control the service.
Índice
Índice de figuras................................................................................................................9
Acrónimos....................................................................................................................... 11
7
3.2 Perspectiva Funcional ............................................................................................... 62
3.3 Perspectiva Lógica ..................................................................................................... 64
3.3.1 SIPSTACK ........................................................................................................... 64
3.3.2 O/D Services ........................................................................................................ 65
3.3.3 T Services............................................................................................................. 65
3.3.4 REGISTER ........................................................................................................... 65
3.3.5 ImcnSSF ............................................................................................................... 66
3.3.6 CSGW(1) ............................................................................................................. 66
3.3.7 CSGW(2) ............................................................................................................. 66
3.4 CNIMSSF ................................................................................................................... 66
3.4.1 Interfaces ............................................................................................................. 68
[Link] Interface SIPSTACK <-> CNIMSSF ......................................................................... 68
[Link] Interface CNIMSSF <-> CSGW ............................................................................... 68
3.4.2 Elementos fundamentais .................................................................................... 69
3.4.3 Threads ................................................................................................................ 72
[Link] Main .......................................................................................................................... 72
[Link] Thread ISC ................................................................................................................ 74
[Link] Thread ImcnSSF ....................................................................................................... 75
[Link] Thread Update_CSI .................................................................................................. 78
3.4.4 Máquina de estados ............................................................................................. 79
3.4.5 Mecanismos de prevenção .................................................................................. 79
[Link] Terminação de Sessão involuntária ......................................................................... 79
[Link] Congestionamento de queues .................................................................................. 80
Referências.................................................................................................................... 108
8
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
Índice de figuras
Figura 2-1: Estabelecimento directo de uma chamada SIP ............................................................................. 19
Figura 2-2: Mensagem Diameter ..................................................................................................................... 21
Figura 2-3: Arquitectura IMS .......................................................................................................................... 24
Figura 2-4: Pilha protocolar SS7 ..................................................................................................................... 32
Figura 2-5: Fluxo MAP ................................................................................................................................... 34
Figura 2-6: Fluxo CAP .................................................................................................................................... 37
Figura 2-7: Modelo de interfaces do IM-SSF .................................................................................................. 40
Figura 2-8: Fluxo de mensagens no IM-SSF ................................................................................................... 43
Figura 3-1: Sistema IM-SSF desenvolvido...................................................................................................... 51
Figura 3-2: Casos de uso do sistema ............................................................................................................... 62
Figura 3-3: SDL do processo de Registo ......................................................................................................... 63
Figura 3-4: Perspectiva lógica do IM-SSF...................................................................................................... 64
Figura 3-5: Esquema gráfico da solução desenvolvida para o módulo CNIMSSF ........................................ 67
Figura 3-6: Sessões em curso .......................................................................................................................... 71
Figura 4-1: Arquitectura de Alta Disponibilidade ........................................................................................... 82
Figura 4-2: Arquitectura de testes ................................................................................................................... 91
Figura 4-3: Fluxo de estabelecimento de uma sessão ...................................................................................... 95
Figura 4-4: Fluxo de sessões canceladas ......................................................................................................... 96
Figura 4-5: Fluxo de sessões rejeitadas pelo destino ....................................................................................... 97
Figura 4-6: Utilização de memória da SIPSTACK ....................................................................................... 102
9
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
Índice de Tabelas
Tabela 4-1: Características das máquinas usadas ............................................................................................ 84
Tabela 4-2: Ambiente de teste ......................................................................................................................... 85
Tabela 4-3: Lista de testes de módulo ............................................................................................................. 87
Tabela 4-4: Configuração para o módulo CNIMSSF ...................................................................................... 93
Tabela 4-5: Configuração para o módulo SIPSTACK .................................................................................... 94
Tabela 4-6: Configuração para o módulo CSGW ............................................................................................ 94
Tabela 4-7: Tempos de resposta ...................................................................................................................... 98
Tabela 4-8: Valores obtidos para sucesso de chamadas .................................................................................. 99
Tabela 4-9: Tamanho das mensagens usadas no fluxo de estabelecimento de sessão ................................... 100
Tabela 4-10: Valores de utilização de memória da SIPSTACK................................................................... 101
Tabela 4-11: Configuração dos buckets para 20000 sessões activas ............................................................. 103
Tabela 4-12: Utilização de memória pelos módulos CNIMSSF e o CSGW ................................................. 103
Tabela 4-13: Valores de memória base e acréscimo por sessão activa .......................................................... 103
Tabela 4-14: Utilização de CPU em função do ritmo de sessões por segundo .............................................. 104
10
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
Acrónimos
3GPP 3rd Generation Partnership Project
AAA Authentication, Authorization, and Accounting
AS Application Server
AVP Attribute Value Pair
BGCF Breakout Gateway Control Function
CAMEL Customized Applications for Mobile Network Enhanced Logic
CAP CAMEL Application Part
CDR Call Detail Records
CSCF Call Session Control Function
CSGW CAMEL Signaling GateWay
DHCP Dynamic Host Configuration Protocol
DSCP Data Service Control Point
GSM Global System for Mobile Communications
gsmSCF GSM Service Control Function
HLR Home Location Register
HSS Home Subscriber Server
I-CSCF Interrogating Call Session Control Function
IM-CSI IP Multimedia CAMEL Subscription Information
IMS IP Multimedia Subsystem
IM-SSF IP Multimedia Service Switching Function
IP Internet Protocol
ISC IMS Service Control
ISDN Integrated Services Digital Network
ISUP ISDN User Part
MAP Mobile Application Part
MGCF Media Gateway Control Function
MRFC Multimedia Resource Function Controller
11
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
12
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
Capítulo 1 - Introdução
13
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
Sob o ponto de vista dos operadores é importante poder aplicar às sessões multimédia IP
todo o trabalho desenvolvido no controlo e gestão de chamadas Global System for
Mobile Communications (GSM). É neste contexto que se enquadra o IP Multimedia
Service Switching Function (IM-SSF). Na arquitectura IMS, o IM-SSF enquadra-se na
categoria dos Application Servers (AS’s) e possibilita que o controlo e gestão de sessões
multimédia IP sejam feitos através da lógica GSM existente.
Esta dissertação surge no seguimento do trabalho efectuado na PT Inovação que
proporcionou os meios necessários para o desenvolvimento do módulo IM-SSF e
consequentemente a possibilidade da realização desta dissertação.
14
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
de dados (voz, vídeo, texto) usam o mesmo formato de transmissão. No contacto com o
Home Location Register (HLR), ou Home Subscriber Server (HSS) como é designado na
rede IMS, a comunicação é efectuada utilizando o protocolo Mobile Application Part
(MAP) ou Diameter.
Uma sessão SIP é estabelecida entre dois clientes através da troca de mensagens
específicas. O chamador envia a primeira mensagem, o “INVITE”, para um elemento
SIP conhecido (proxy gateway). Este elemento encaminha a mensagem até ao destino,
podendo a mensagem eventualmente passar por outros elementos SIP até atingir o
destino. Quando a mensagem “INVITE” chega ao destino, fica estabelecido o percurso
SIP. O destinatário responde pelo percurso SIP estabelecido com um “200 OK” que
confirma a recepção e aceitação da ligação. Ao receber esta mensagem, o chamador
responde com um “ACK” que reconfirma que a ligação de sinalização está em boas
condições e a ligação de dados pode ser estabelecida. Após este ponto, ambos os
intervenientes já sabem para onde dirigir os seus pacotes de dados media, estando assim,
do ponto de vista da sinalização SIP, a sessão estabelecida. Para terminar uma sessão
estabelecida, um dos intervenientes envia a mensagem de “BYE” que agora segue por
um percurso marcado por alguns intervenientes aquando do encaminhamento do
“INVITE”. Esta mensagem ao chegar ao destino é respondida com um “200 OK” que
finaliza a sessão estabelecida.
O IM-SSF é um elemento interveniente no encaminhamento do “INVITE” e por
consequência da sessão. Com isto consegue obter o controlo da sessão através da
manipulação das mensagens que por si passam estabelecendo, por vezes, novas ligações
com outros elementos. Através do contacto com o HSS, o IM-SSF consegue obter
informação necessária dos clientes intervenientes na sessão e por conseguinte fornecer
os serviços específicos a cada um deles. Estes serviços são fornecidos através da consulta
do módulo GSM Service Control Function (gsmSCF) que indicará o que se deve fazer
para que o cliente possa desfrutar dos serviços a que tem direito. O IM-SSF tem acesso
apenas à sinalização da mensagem; por ele não passam os pacotes de media embora este
15
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
1.3 Objectivos
Esta dissertação tem como objectivos:
i) estudar as normas vigentes que suportam o IM-SSF
ii) estudar os protocolos que suportam as interfaces entre o IM-SSF e as diversas
entidades associadas
iii) implementar o módulo IM-SSF
iv) testar o desempenho das funcionalidades do módulo.
16
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
2.1 IMS
Para melhorar a compreensão dos vários módulos que constituem o IMS, é necessário
conhecer como são estabelecidas chamadas no IMS. Para este propósito é necessário
entender primeiro quais os protocolos usados, quais os módulos que os usam e como
estes empregam os protocolos para interagir entre si e assim formar a arquitectura IMS.
2.1.1 Protocolos
Os protocolos usados pelo IMS são o protocolo SIP, que é o responsável pelo
estabelecimento de sessões no IMS e o protocolo Diameter, que é o responsável pela
comunicação com as bases de dados que armazenam os dados dos clientes.
[Link] SIP
O protocolo Session Initiation Protocol (SIP), definido na RFC 3261, foi desenvolvido
com o objectivo de suportar o estabelecimento de sessões multimédia entre utilizadores
da rede IP. Na linguagem SIP, as mensagens de sinalização que iniciam acções tomam o
17
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
nome de methods e a cada method podem corresponder várias respostas. Uma sessão
SIP corresponde à chamada tradicional entre utilizadores da rede IP.
As trocas de sinalização para o estabelecimento, terminação ou modificação de uma
sessão são denominadas transacções SIP. Uma transacção SIP é constituída por um
pedido (request) seguido de uma ou mais respostas informativas, e por uma ou mais
respostas finais. Por exemplo, no estabelecimento de uma sessão Voice over IP (VoIP)
entre utilizadores, é feito o pedido de estabelecimento da sessão com a utilização do
method “INVITE”. Quando a campainha do chamado toca, o equipamento chamado
responde com a resposta informativa “180 RINGING” e quando o utilizador atende é
enviada a mensagem de resposta final “200 OK” indicando sucesso no estabelecimento
da chamada. O utilizador que enviou o “INVITE” assinala a recepção da mensagem “200
OK” com a mensagem “ACK” que encerra a transacção de estabelecimento da chamada.
Para o transporte das mensagens SIP, pode ser usado o protocolo TCP ou UDP. Se for
usado o protocolo UDP, o protocolo SIP para garantir a chegada das mensagens ao
destino, repete o envio das mensagens temporizadamente até que seja recebida a
confirmação do destino. Para todos os pedidos (excepto o “INVITE”) há repetição das
mensagens até chegar a resposta definitiva. No caso do pedido “INVITE”, a resposta
final é dependente da reacção do utilizador chamado a atender a chamada. A resposta
final pode demorar muito tempo e isso corresponderia a uma sobrecarga da rede com
mensagens de “INVITE” desnecessárias. Sendo assim, a mensagem de “INVITE” pára de
ser enviada logo que seja recebida uma resposta informativa (ex. “180 RINGING”).
O toque da campainha do chamado é assinalado ao chamador através da tonalidade de
chamar. Se a mensagem OK se perder o chamador continuaria a receber a tonalidade de
chamar apesar de o chamado já estar em “linha”. Para evitar esta situação, que
originaria a falha do estabelecimento da sessão, é utilizada a mensagem “ACK”. A
mensagem de “200 OK” é repetida até que o chamado receba a mensagem de “ACK”.
18
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
Invite
180 Ringing
200 OK
ACK
O modo de funcionamento do SIP tal como descrito até aqui pressupõe que o chamador
conhece o endereço IP e a porta onde o chamado recebe as mensagens de sinalização.
Só assim é possível enviar a mensagem de “INVITE” directamente para o chamador.
O envio directo da mensagem de “INVITE” para o chamador apresenta várias
limitações. Ter que ser conhecido o endereço IP e a porta do utilizador impede a
mobilidade dos utilizadores como serviço prestado pelo operador e desaproveita todos
os mecanismos de encaminhamento e descoberta de endereços já implementados na
rede IP. Além disso, a troca de sinalização entre chamador e chamado não permite a
possibilidade de controlar o acesso à rede dos utilizadores para efeitos de gestão de
recursos, identificação, autenticação e tarifação.
Para garantir a flexibilidade necessária no estabelecimento das sessões e a mobilidade
dos utilizadores, a rede SIP integra como seus componentes os servidores Proxy,
Redirect, Registration e Location.
O SIP corre sobre o protocolo IP e baseia as suas mensagens no protocolo HTML. Este
tipo de mensagens privilegiam a leitura do utilizador humano devido ao seu pequeno
texto descritivo do erro que para nós humanos é-nos mais fácil compreender pois do
ponto de vista da máquina é apenas uma questão de hardware. Isto torna a análise do
19
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
SIP mais perceptível ao nível humano visto que, quase todos os que já tiveram algum
contacto com a Internet conhecem algumas das suas mensagens de erro.
O SIP define 3 tipos base, o proxy, o User Agent Server (UAS) e o User Agent Client
(UAC). Dentro dos user agents existe um tipo que é uma junção do UAS mais o UAC
que se chama o Back to Back User Agent (B2BUA).
Na arquitectura IMS como proxy SIP temos o I-CSCF, S-CSCF e o P-CSCF. Os AS
podem ser de todos os tipos SIP base mais o tipo B2BUA, sendo este o tipo de AS que
define o IM-SSF.
[Link] Diameter
O protocolo Diameter, definido na [RFC 3588], é um protocolo de Authentication,
Authorization and Accounting (AAA) desenvolvido para providenciar de uma forma
genérica os requisitos de um protocolo AAA requeridos pelo [AAA Jaques].
O protocolo Diameter define as suas mensagens como conjuntos de Attribute Value
Pairs (AVP). Os AVPs são formados por um cabeçalho mais um campo de dados. O
cabeçalho é composto da seguinte forma:
- Código – Identificador numérico do AVP.
- Flags – Informação para o receptor do AVP, indicando como este AVP deve ser
administrado.
- Tamanho – Indica tamanho do AVP em bytes, incluindo o cabeçalho e os dados.
- Vendor Id – Identificador numérico que identifica a identidade de quem definiu o
AVP (por exemplo, o vendor Id do 3GPP é o 10415).
Um AVP pode ser um tipo simples (ex: string) ou então ele próprio pode ser composto
por um conjunto de AVPs. Cada AVP é definido inequivocamente através do seu
código e do seu vendor Id. Cada mensagem Diameter possui AVPs que são fixos, outros
obrigatórios e alguns opcionais (ver Figura 2-2). Com isto é possível garantir que duas
entidades conseguem comunicar entre si desde que respeitem os AVP fixos e
obrigatórios. A norma permite que a mensagem contenha outros AVPs no campo de
AVPs extra. Se ambas as entidades comunicantes estiverem de acordo, podem ainda
20
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
transportar informação extra num outro AVP que não estando definido para a
mensagem pode ser utilizado nessa mensagem no campo de AVPs extra.
21
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
ぁ Entrega d’AVPs
ぁ Notificação d’erros
ぁ Troca de informação sobre a utilização de recursos que podem ser usados para
propósitos de taxação, planeamento de capacidade, etc.
22
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
O protocolo base Diameter pode ser usado só por si para propósitos de taxação, ou pode
ser usado com uma aplicação Diameter como o Mobile IPv4 [Diameter Perkins], ou
acesso à rede [NASREQ Haag].
O Diameter define quatro entidades base: o cliente, o agente, o servidor e o nó.
Um cliente Diameter é um dispositivo que no limiar da rede efectua o controlo de
acesso como um Network Access Server (NAS) ou um Foreign Agent (FA). Um cliente
Diameter gera mensagens Diameter para pedir serviços de autenticação, autorização e
taxação para o utilizador. Um agente Diameter é um nó intermédio que efectua apenas
a retransmissão das mensagens (proxis, agentes de redireccionamento e de relay.) Um
servidor Diameter efectua a autenticação e/ou autorização do utilizador. Um nó
Diameter pode funcionar como agente para alguns pedidos e funcionar como servidor
para outros.
O protocolo Diameter também suporta pedidos iniciados no servidor, tal como pedidos
para abortar o serviço de um determinado utilizador.
No IMS, o Diameter é o protocolo escolhido para transportar informação de/para o HSS,
pois, devido à sua versatilidade nas mensagens, cada mensagem pode transportar muita
informação, algo que favorece o transporte de quantidades maciças de informação. Na
arquitectura IMS como cliente Diameter temos o I-CSCF, S-CSCF e os AS, como
servidor Diameter temos o HSS e como agente temos o SLF (estes elementos serão
introduzidos na secção seguinte).
23
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
Dh
SLF Sh
DIAMETER
Dx HSS MAP
DIAMETER Si AS
Cx
SIP
I-CSCF DIAMETER
Mw Mm
P-CSCF Mw S-CSCF ISC
SIP SIP
SIP
SIP Mr
Mi MRFC
Redes de Acesso
Diferentes
(WLAN, UMTS, DSL) Înterligação com:
Legacy Networks
BGCF Mj MGCF (GSM, ISDN, DVB)
SIP
24
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
qual o S-CSCF que irá servir este cliente. Para isso, é necessário aceder aos dados do
cliente em causa para que lhe seja atribuído um S-CSCF. Estes dados estão guardados no
HSS mas devido à enormidade de registos que podem existir num HSS, é possível existir
mais do que um HSS numa mesma rede IMS. Assim é necessário que alguém consiga
indicar o HSS onde se encontram os dados de determinado assinante. É precisamente
esta a função do Subscription Locator Function (SLF). Então o I-CSCF usando o
Diameter, contacta o SLF para saber qual o HSS onde se encontram os dados do
assinante. O SLF indica ao I-CSCF qual o HSS que deve ser consultado. Com esta
informação, o I-CSCF contacta o HSS pedindo-lhe um S-CSCF para servir o assinante.
O HSS pode enviar-lhe o endereço de um S-CSCF ou uma lista deles. Ao receber esta
informação, o I-CSCF tenta contactar um S-CSCF para lhe reenviar o “REGISTER” do
cliente. Neste ponto, o S-CSCF contacta o HSS para indicar que o assinante vai utilizar
este S-CSCF para as comunicações. Além desta indicação, o S-CSCF também pede os
Initial Filter Criteria (IFCs) do assinante que está a registar. Estes IFC são uma lista de
critérios que, quando cumpridos, indicam o endereço de um AS que deve ser
contactado. O S-CSCF analisa os IFCs pois o assinante pode ter algum serviço que é
utilizado no registo (ex: o envio de uma SMS dando-lhe as boas vindas). Caso não exista
nenhum serviço para contactar na fase de registo (ou após esse serviço ser realizado) o
S-CSCF envia uma resposta para o cliente. No caso de o registo ter sido efectuado com
sucesso é enviada a mensagem “200 OK”. Esta mensagem percorre o caminho inverso
efectuado pela mensagem REGISTER, ou seja, passa primeiro pelo I-CSCF e depois pelo
P-CSCF antes de chegar ao terminal do cliente. No caso de o registo não ter sido aceite
pelo sistema, o S-CSCF envia uma mensagem de erro (mensagens da família 300, 400,
500) que percorre o mesmo percurso que é percorrido pelo “200 OK” no caso de
sucesso.
[Link] P-CSCF
O Proxy Call Session Control Function (P-CSCF) é o ponto de entrada na rede IMS. É
através do P-CSCF que o cliente consegue aceder à sua rede e efectuar chamadas. Para
25
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
além de outras funções que não cabem no âmbito desta descrição, o P-CSCF
providencia as seguintes funções ([3GPP TS 23.228 V6.8.0],[3GPP TS 24.229 V6.14.0] ):
ぁ Funciona como um proxy SIP definido em [RFC 3261], ou seja aceita pedidos e
ou serve-os internamente ou encaminha-os com a possibilidade de alguma
manipulação de alguns parâmetros.
ぁ Pode comportar-se como User Agent (UA), definido em [RFC 3261], ou seja,
pode em casos anormais terminar uma chamada e independentemente gerar
transacções SIP.
[Link] I-CSCF
O Interrogating Call Session Control Function (I-CSCF) providencia as seguintes
funções:
26
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
ぁ Pode ser visto como uma espécie de firewall entre uma rede IMS externa e a
rede IMS interna de um operador. Podem existir múltiplos I-CSCF dentro duma
rede de um operador.
[Link] S-CSCF
O Serving Call Session Control Function (S-CSCF) tem as seguintes funcionalidades:
27
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
28
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
[Link] HSS
O Home Subscriber Server (HSS) é uma combinação do Universal Mobile
Telecommunications System (UMTS)/GSM Home Location Register (HLR), Visitor
Location Register (VLR) e as funcionalidades necessárias de registo para o IMS. O HSS
fornece as seguintes funcionalidades:
29
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
[Link] MRFC
O Multimedia Resource Function Controller (MRFC) providencia as funções de
multiparty e conferência multimédia [3GPP TS 23.228 V6.8.0]. O MRFC consegue
controlar o media da conversa inserindo-se como nó intermédio quando a sessão está a
ser estabelecida. Desta forma possibilita a conversação entre grupos, mediando quem
tem o controlo para falar. Ao conseguir aceder directamente ao media, o MRFC,
consegue incluir-se na ligação de dados como um elemento intermédio ou final dessa
ligação e assim consegue enviar mensagens de voz, vídeo, etc. Com a ajuda de um AS
que controla a sessão ao nível da sinalização SIP, é possível fornecer os mais variados
serviços ao utilizador, tais como voice mail, conferência e até enviar um sinal sonoro
quando é atingido o fim do saldo. Todos estes cenários são exemplos comuns da
utilização do MRFC.
[Link] AS
O Aplication Server (AS) é o módulo responsável por fornecer serviços avançados na
rede IMS. A rede IMS por si só consegue fornecer os serviços básicos de
estabelecimento e manutenção de uma sessão. Os AS fornecem serviços avançados ao
cliente, ou seja outros serviços que não sendo serviços de base interagem com estes para
proporcionar aos clientes algumas facilidades úteis e atractivas. Os AS fornecem os mais
variados serviços avançados desde conferências utilizando como suporte o MRFC,
encaminhamento de chamadas, bloqueio de chamadas, serviço de indicação do estado
do cliente (Presence), etc.
O AS é contactado pelo S-CSCF. Os AS não conseguem encaminhar as mensagens para
fora da rede o que significa que têm necessariamente de enviar as mensagens pelo S-
CSCF que os contactou. Existem três tipos de AS: os que funcionam como ponto
terminal da chamada, os que funcionam apenas como um ponto de transporte na rede e
ainda os Back to Back User Agent (B2BUA)[3GPP TS 23.218 V6.4.0] que podem
interligar duas chamadas diferentes. Um B2BUA funciona como ponto terminal no
sentido chamador – B2BUA e funcionam como ponto de início de chamada no sentido
30
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
2.2 IM-SSF
Nesta secção é descrito sucintamente o comportamento do IM-SSF segundo as normas
que o definem. Para isto é necessário explicar quais os protocolos que o IM-SSF utiliza
para comunicar. Como AS, o IM-SSF deve conseguir comunicar em SIP e Diameter com
a rede IMS. Do lado das redes inteligentes GSM deve conseguir comunicar em MAP e
CAP que utilizam a pilha Signalling System Number 7 (SS7) para efectuar o transporte
das suas mensagens.
31
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
ISUP
Utilizadores
Rede
SCCP
MTP
A estrutura do sistema SS7 pode ser vista globalmente como uma rede de sinalização
controlada pelo Message Transfer Part (MTP), através da qual vários pares de
utilizadores da rede trocam mensagens.
O MTP tem como função efectuar a transferência fiável das mensagens de sinalização
entre utilizadores da rede de sinalização que comunicam entre si.
O ISDN User Part (ISUP) permite que os pares de módulos ISUP situados em estações
telefónicas digitais diferentes troquem mensagens para o estabelecimento,
monitorização e transmissão das chamadas telefónicas.
O Telephone User Part (TUP) é um procedimento para o estabelecimento de chamadas
telefónicas na rede telefónica não Rede Digital com Integração de Serviços (RDIS)
implementando funcionalidades semelhantes às sinalizações telefónicas anteriores ao
SS7. O TUP é actualmente pouco utilizado tendo sido substituído por uma versão
simplificada do ISUP.
O Data Users Part (DUP) fornece sinalização para o controlo de chamadas relacionadas
com os serviços de transmissão de dados através de circuitos comutados. Tal como o
TUP, foi pouco implementado.
O Signalling Connection Control Part (SCCP) acrescenta facilidades de endereçamento
ao MTP indispensáveis no funcionamento das redes móveis. Inclui funções de gestão de
32
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
[Link] MAP
O Mobile Application Part (MAP) define os protocolos e procedimentos de
comunicação entre entidades da rede GSM. A sua especificação técnica é descrita em
GSM 09.02: Mobile Application Part specification.
O MAP utiliza serviços disponibilizados pela pilha Signalling System Number 7 (SS7). A
pilha SS7 apresentada na Figura 2-4 é comparável ao modelo OSI. Comparativamente, o
MAP insere-se ao nível das aplicações. As mensagens MAP têm uma parte transaccional
33
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
IM-SSF HSS
ATSI
ATSI Ack
...
NSDC
NSDC Ack
34
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
cliente foi actualizada. Este protocolo não foi muito aprofundado uma vez que se optou
por não o implementar.
[Link] CAP
O Customized Application for Mobile Network Enhanced Logic Application Part
(CAP) definido em 3GPP 29.078 é o protocolo usado para estabelecer o contacto entre o
IM-SSF e o gsmSCF.
O Customized Application for Mobile Network Enhanced Logic (CAMEL) é uma
iniciativa do 3GPP para efectuar a convergência das redes inteligentes na arquitectura
das redes GSM fazendo uso de entidades e protocolos existentes em ambas. O CAMEL
especifica os fluxos de informação que podem ser passados entre duas redes.
O CAP é uma evolução do protocolo INAP sendo o CAP mais restrito e menos flexível
logo tem a vantagem de ser usado de uma forma mais global.
O CAP, à semelhança do MAP, utiliza serviços disponibilizados pela pilha SS7 para a
construção do cabeçalho da mensagem. O corpo da mensagem é definido pelo CAP. No
contexto deste documento, apenas são relevantes as mensagens CAP 4 IMS que na
realidade são uma extensão às mensagens CAP 3, com a finalidade de incluir campos
específicos do IMS.
No contexto desta dissertação, as mensagens relevantes do CAP enviadas pelo IM-SSF
são:
ぁ Call Gap
ぁ Connect
35
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
ぁ Continue
ぁ Apply Charging
ぁ Cancel
ぁ Release Call
ぁ Connect To Resource
ぁ Reset Timer
ぁ Play Announcement
36
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
IM-SSF gsmSCF
IDP
Request Report
Apply Charging
Continue
Event Report
Continue
...
Apply Charging
...
Apply Charging Report
Event Report
End Call
A Figura 2-6 confirma que para iniciar um fluxo CAP é utilizada a mensagem IDP que
transporta a informação relativa ao chamador, ao chamado, ao gsmSCF contactado e ao
serviço a ser invocado. O gsmSCF analisa a informação recolhida na IDP e decide
fornecer o serviço. Antes de conceder o serviço, o gsmSCF decide activar alguns pontos
de detecção na chamada. Estes pontos de detecção ou em inglês Detection Points (DP),
são pontos específicos que ocorrem numa chamada de voz (por exemplo: o
estabelecimento da sessão, rejeição da sessão, cancelamento da sessão, etc...). A
mensagem “Request Report BCSM Event” contém uma lista de DP que se pretendem
activos nessa sessão.
Após o envio de activação dos pontos de detecção o gsmSCF decide que o serviço em
causa necessita de informação de taxação em tempo real. Para isto é enviada a
37
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
38
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
sessão vai terminar no último “Event Report BCSM” que envia ou então enviar uma
mensagem só com a parte transaccional indicando o término da sessão (TC_END).
39
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
ISC
S-CSCF
Como foi explicado na secção [Link] o protocolo MAP é utilizado pelo IM-SSF para
possibilitar a comunicação com o HSS e deste receber os CAMEL Subscription
Information (CSI). Os CSI contêm informação específica do cliente e entre esta
informação os serviços avançados subscritos por este. Com base no CSI recolhido, o IM-
SSF decide se o serviço invocado pelo cliente é autorizado ou não. Depois da decisão e
caso o serviço seja autorizado, o IM-SSF comunica com o gsmSCF que fornece a
indicação de como deve ser tratada a sessão.
Na interface ISC é usado o protocolo SIP. É por esta interface que chega a informação
transmitida pelo cliente. Ao receber um pedido na interface ISC, o IM-SSF efectua os
seguintes passos:
40
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
procedimentos que o módulo deve efectuar. Desta forma, o motor do módulo é uma
representação fiel desta norma facilitando assim a detecção e correcção de erros e
deixando liberdade para que o módulo possa crescer com o desenvolvimento da norma.
Existem dois cenários práticos de utilização do IM-SSF, Mobile Originator (MO) e
Mobile Terminator (MT). Para perceber estes termos, basta compreender que os
cenários MO dizem sempre respeito ao originador da sessão, e o cenário MT diz respeito
ao destino da sessão. Considere-se, por exemplo, o toque de uma música ao chamador
enquanto este espera que o destino atenda. Este tipo de serviço é o destino quem o
subscreve e só quando se tenta estabelecer a sessão com esse destino é que uma
determinada música (escolhida pelo destino) é tocada. Assim este é um serviço MT.
Quem decide a passagem do estado MO para o estado MT é o S-CSCF. Por exemplo, se o
Cliente A da rede IMS A estiver a efectuar uma chamada para o Cliente B da rede IMS
B e o IM-SSF for contactado pela rede IMS A, a sessão é considerado no estado MO pois
ainda se encontra no sentido ascendente. Por outro lado, se o IM-SSF for contactado
pela rede IMS B a sessão é considerada no estado MT, pois já se encontra no sentido
descendente.
Ao serviço MO são associados os CSI O_IM_CSI e D_IM_CSI. O O_IM_CSI é
informação relativa ao originador, sendo o serviço fornecido à origem enquanto o
D_IM_CSI é informação relativa ao originador tendo como base de análise o destino
marcado pelo originador, ou seja o serviço é fornecido ao destino mas no entanto a
sessão encontra-se ainda no lado originado (MO).
O VT_IM_CSI é o CSI associado ao serviço MT e contém informação relativa ao destino
da chamada. Neste tipo de serviços quem requer o serviço é o destino e é com base
neste que o serviço é fornecido.
O IM-SSF como AS do tipo B2BUA consegue funcionar como elemento SIP terminal ou
como elemento SIP originador numa sessão. Este é o comportamento adoptado pelo
IM-SSF, ou seja ao receber o pedido de estabelecimento de sessão (“INVITE”), após o
processamento adequado, cria um novo pedido de estabelecimento de sessão para o
41
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
destino. Desta forma o IM-SSF possui dois ramos SIP (duas sessões SIP correlacionadas
no IM-SSF), um ramo desde o chamador ao IM-SSF e outro ramo desde o IM-SSF ao
chamado.
42
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
INVITE
IDP
100 Trying
Request Report
Apply Charging
Connect To Resource
Play Announcement
INVITE
100 Trying
200 OK
200 OK
ACK
ACK
...
BYE
Event Report
Continue
200 OK
INVITE
100 Trying
180 Ringing
200 OK
Event Report
Continue
INVITE
200 OK
ACK
ACK
... ...
Apply Charging
BYE
...
Apply Charging Report
Event Report
End Call
BYE
200 OK
200 OK
ぁ António, depois de registado na rede IMS, pretende efectuar uma chamada para
Bernardo. Após o registo, o equipamento do chamador já conhece o caminho
para chegar ao S-CSCF que o serve. Assim, o equipamento envia um “INVITE”
43
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
ぁ O IM-SSF envia um “200 OK” para o equipamento de António. Este “200 OK” é
encaminhado pelo percurso inverso percorrido pelo “INVITE” ou seja S-CSCF,
P-CSCF e equipamento do António.
44
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
ぁ O IM-SSF envia um “ACK” para o MRFC via S-CSCF. Neste ponto a ligação está
estabelecida e é tocado o anúncio pelo MRFC.
ぁ Quando o anúncio termina, o MRFC envia um “BYE” para o AS via S-CSCF que
responde com “200 OK”. Considerando o AS, o IM-SSF, é contactado mais uma
vez o gsmSCF que indica que a chamada deve prosseguir para o destino, o
Bernardo. Neste ponto o IM-SSF envia um “INVITE” para o S-CSCF.
ぁ O S-CSCF verifica se tem algum serviço que seja activado em modo terminado
para o destinatário. O modo terminado é aqui despoletado directamente pois o S-
CSCF verifica que o assinante originador não é servido por si. Após esta
verificação e caso não ocorra nenhum serviço, a sessão é encaminhada para o P-
CSCF e por sua vez para o equipamento de Bernardo.
45
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
ぁ Quando Bernardo atende, envia um “200 OK” que percorre o mesmo percurso
que percorreu o “180 Ringing”.
46
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
SIP no campo Record Route e, assim, não recebe requests subsequentes para essa sessão,
libertando-o para desempenhar outras tarefas mais importantes que o encaminhamento
SIP. Esta é a razão pela qual o BYE final já não contacta o I-CSCF.
47
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
Capítulo 3 - Desenvolvimento
48
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
facto dos serviços de dialing só fazerem sentido para o Originador, sendo este o único
que no estabelecimento da sessão consegue digitar os dígitos.
Para o desenvolvimento do software, foi escolhido utilizar a plataforma Linux e
utilizando como linguagem de programação o C++ pois o projecto foi desenvolvido na
PT Inovação que utiliza estes recursos com maior frequência, tendo já algumas
bibliotecas C++ que facilitam o desenvolvimento do software, abstraindo o programador
um pouco das especificidades do sistema operativo.
49
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
50
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
SIPSTACK SIPSTACK
ISC SIP
IM-SSF
Figura 3-1: Sistema IM-SSF desenvolvido
51
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
52
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
possível efectuar novos desenvolvimentos, criando novas versões, sem contudo afectar
os clientes que utilizam versões mais antigas.
ぁ Pipes
ぁ FIFOs
ぁ Memória partilhada
ぁ Memória mapeada
ぁ Queues de mensagens
ぁ Semáforos
ぁ Sockets
As descrições que se seguem estão em conformidade com o livro Advance Linux
Programming [ALP Samuel].
Pipes
Os pipes providenciam um fluxo de comunicação unidireccional entre processos dentro
do mesmo sistema operativo. Um pipe é criado através da execução da função do
sistema operativo “pipe(filedes)” que cria um par de descritores de ficheiro devolvidos
pelo argumento filedes. O filedes[0] é usado para leitura e o filedes[1] é usado para a
53
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
escrita. Isto significa que para se poder utilizar um pipe é necessário que os processos
tenham alguém que lhes passe os descritores. Isto pode ser feito usando um processo
que cria o pipe e depois cria os vários processos que utilizam o pipe, passando-lhes os
descritores do pipe.
Os pipes, tal como o nome indica, podem ser vistos como canos onde numa
extremidade é colocada informação e na outra é recebida informação. Nos pipes, a
ordem de leitura é dada pela ordem de escrita dos dados e ao ler os dados estes deixam
de existir no pipe. O acesso a um pipe é feito no Linux da mesma forma que o acesso a
um ficheiro, contudo o ficheiro é puramente virtual (não existe fisicamente). Os pipes
são normalmente bloqueantes, ou seja, quando um processo tenta ler de um pipe e caso
não tenha informação para ler, o processo fica bloqueado. Da mesma forma, um
processo que tente escrever num pipe que esteja cheio, fica bloqueado até que o outro
processo retire dados para que este possa escrever. Os pipes duram apenas o ciclo de
vida do processo que o criou.
FIFOs
Os FIFOs (First In, First Out) são semelhantes aos pipes, providenciando também um
fluxo de dados half-duplex. A diferença em termos conceptuais entre um FIFO e um
pipe é que o FIFO é identificado pelo sistema com um nome e os pipes não, ou seja, os
FIFOs são pipes com nomes. Assim, um FIFO, ao contrário de um pipe, pode durar para
além do ciclo de vida do processo que o criou (um FIFO mantém a sua existência no
sistema até ser explicitamente removido).
No Linux quando é criado um FIFO é criado um ficheiro com o nome do FIFO e é este
ficheiro que é utilizado para guardar os dados do FIFO. O acesso ao FIFO para escrita ou
leitura é semelhante ao de um ficheiro.
Memória partilhada
Este mecanismo permite que diferentes processos comuniquem como se partilhassem
um espaço de endereçamento virtual (zona de memória que não necessita de ser
contigua). Qualquer processo que partilhe esta memória virtual pode lá escrever ou ler.
54
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
Este mecanismo reserva uma parte da memória para ser utilizada por diferentes
processos. Tal como os pipes, é necessário existir um processo que disponibilize esta
memória virtual aos outros processos, o processo pai.
Este é o mecanismo mais rápido nos sistemas de comunicação entre processos. Contudo,
não garante a consistência dos dados, pois existe a possibilidade de dois processos
acederem à memória ao mesmo tempo possibilitando a escrita e leitura simultânea,
criando assim conflitos. Por esta razão, é imperioso que o acesso à memória seja
mutuamente exclusivo.
Memória mapeada
A memória mapeada é uma memória partilhada mas com um nome. Da mesma forma
que os FIFOS estão para os pipes, a Memória mapeada está para a memoria partilhada.
Este tipo de memória em Linux consiste em associar um ficheiro a uma zona de
memória. Desta forma sempre que se escreve ou lê no ficheiro, está-se na realidade a
escrever ou a ler na memória. Neste tipo de comunicação de processos, é necessário um
mecanismo que regularmente efectue uma sincronização entre o conteúdo da memória
e o ficheiro. No Linux é o sistema operativo que se responsabiliza por esta tarefa.
Considere-se, por exemplo, um ficheiro que contém dados específicos num formato
conhecido pelo utilizador (o ficheiro pode ser necessário para a execução de alguma
aplicação). Neste caso, tem de existir uma função que procure dados no ficheiro e
eventualmente os devolva. A função em causa tem de aceder sempre ao ficheiro de cada
vez que é invocada, pelo que se for invocada muitas vezes numa aplicação, esta torna-se
consideravelmente lenta devido aos acessos ao disco duro (hard drive). Colocando os
dados do ficheiro em memória virtual, consegue-se uma melhoria significativa nos
tempos de acesso aos dados pois o acesso à memória é muito mais rápido do que o acesso
ao disco.
A técnica de mapeamento em memória consegue diminuir os tempos de computação
pois o ficheiro é associado logicamente a uma porção da memória virtual ou ao espaço
55
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
56
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
ぁ Flush queue. Neste método, o sistema ao detectar a queue cheia esvazia-a para
poder colocar as novas mensagens na queue. Este é um método simples de
implementar e acaba com a congestão dando algum tempo ao sistema para
recuperar até a fila encher novamente.
57
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
Semáforos
Os semáforos podem ser considerados um mecanismo de comunicação entre processos
pois permitem que dois processos comuniquem entre si para chegarem a um acordo de
qual dos dois processos deve aceder ao recurso que ambos pretendem. No entanto, os
semáforos por si só, não efectuam a troca de dados inerente às outras formas de
comunicação entre processos. Contudo, pela simplicidade e história dos semáforos, estes
são considerados suficientemente relevantes para serem aqui apresentados.
Os semáforos são um mecanismo de sincronização, que utiliza o conceito conhecido
nas redes rodoviárias como semáforo, ou seja, quando um semáforo se encontra verde é
indicação que o cruzamento se encontra disponível para avançar e quando o semáforo
se encontra vermelho é indicação que o cruzamento se encontra ocupado e deve-se
aguardar. Na comunicação entre processos, aplica-se exactamente o mesmo conceito;
um processo tenta aceder a uma zona partilhada e coloca o semáforo a vermelho, um
processo que queira aceder à mesma zona aguarda que o sinal fique verde para aceder.
Quando o processo que se encontra na zona partilhada termina o seu processamento
nessa zona, coloca o semáforo a verde indicando a qualquer processo que se encontre
em espera que a zona partilhada se encontra acessível. Este é o conceito básico que
permite uma sincronização dos processos a uma zona de dados partilhada.
Sockets
Os sockets são o mecanismo mais popular de entre todos os mecanismos de
comunicação entre processos pela simples razão de permitirem, ao contrário dos
anteriores, a comunicação entre processos executados em diferentes máquinas. Os
sockets providenciam um canal de comunicação full-duplex entre processos que não
necessitam de estar na mesma máquina.
Um socket é basicamente um ponto de acesso tornado acessível ao processo que o criou.
O socket agrupa os dados em grupos a que chamamos pacotes, sendo estes transmitidos
pelo socket.
58
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
Modelo cliente-servidor
Neste modelo de comunicação, o servidor instancia um socket num porto tornando-o
público aos clientes. Neste socket, o servidor fica à escuta de pedidos vindos dos
clientes. O cliente por seu lado instancia um socket para estabelecer a comunicação com
o servidor (neste caso o porto do cliente não necessita de ser previamente conhecido
59
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
visto ser ele a iniciar a ligação). Com o socket criado, o cliente tenta criar um canal de
comunicação com o servidor no porto previamente conhecido. Neste modelo de
comunicação o cliente é quem inicia a comunicação.
60
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
tolerante a falhas bastando para isso colocar réplicas dos vários módulos em máquinas
distintas. Desta forma, quando um módulo activo é desactivado por qualquer motivo,
pode ser usado um módulo semelhante existente noutra máquina.
Após a análise das várias formas de comunicação entre processos, decidiu-se que para a
comunicação entre threads (dentro do mesmo programa) a melhor solução seria utilizar
as queues de mensagens e memória partilhada pelas razões que a seguir se enunciam.
A memória partilhada é usada para guardar os dados de sessão necessários para o
funcionamento do módulo no sistema. Por exemplo, é necessário que a informação
recebida na interface SIP (thread ISC do CNIMSSF) seja transmitida para a interface
CAP (ImcnSSF do CNIMSSF), isto concretiza-se usando um array de estruturas que é
criado pelo programa principal (main) e disponibilizado o seu acesso às várias threads
do módulo. A consistência dos dados é garantida através da organização da estrutura
deste array que no local onde uma thread escreve todas as outras só podem ler.
As queues de mensagens são usadas para os diferentes threads comunicarem entre si. As
queues de mensagens, pela sua construção, suportam que as mensagens sejam colocadas
e retiradas de uma forma assíncrona o que implica que as threads mais rápidas não têm
de esperar pelas mais lentas. As queues funcionam também como uma espécie de área
de armazenamento de mensagens que necessitam de processamento.
Para fazer a gestão das queues, quando estas estão cheias, escolheu-se o método Drop-
from-head pois considerou-se que se deveriam penalizar as mensagens mais antigas no
sistema em relação às novas. Tanto no SIP como no CAP, caso seja enviada uma
mensagem e a resposta a essa mensagem não for recebida, ao fim de um determinado
tempo é despoletado um evento. Este evento pode ser um reenvio da mensagem, ou um
término da sessão. Desta forma tentou-se minimizar o tempo que uma nova sessão
demora a ser processada no IM-SSF quando este se encontra em situação de sobrecarga.
O custo a pagar por esta escolha é a perda eventual de algumas sessões mais antigas, o
que até pode ser algo positivo pois poderia ser uma destas sessões a causadora da
sobrecarga do sistema.
61
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
Originated/ Dialled
ImcnSSF
Services
Lógica Controlo
Register
(gsmSCF)
Assinante
(IMS) Terminated Services
Na Figura 3-2 é apresentado o diagrama de casos de uso do sistema que pode ser lido da
seguinte forma: um assinante pode invocar no IM-SSF um dos seguintes serviços
Originated/Dialled, Register, Terminated. O serviço de Originated/Dialled pode
contactar o serviço de Register (registo do assinante implicitamente durante a
chamada). O serviço de Originated/Dialled contacta o gsmSCF que se encontra fora do
sistema IM-SSF sendo assim considerado um actor do IM-SSF. Outro actor é o HSS que
será contactado apenas pelo serviço Register. O caso de uso ImcnSSF representa a gestão
da sessão CAP com o gsmSCF. As setas apresentadas na Figura 3-2 indicam o sentido de
quem inicia a ligação.
62
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
O diagrama mostra que o sistema começa num estado inicial (idle) e com a recepção da
mensagem Register o sistema vai verificar o campo expires da mensagem. Caso este
63
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
campo seja maior do que zero, é um processo de registo e por conseguinte a função de
Register (diagrama SDL que não está aqui exemplificado) é chamada. Caso o campo
expires seja zero, é invocada a função de DeRegister. Depois de executada a função
correcta, o sistema volta para o estado inicial ficando novamente pronto para receber
novos registos.
O/D T CNIMSSF
Services Services
SIP/RTDAP
SIPSTACK SIPSTACK
ISC SIP
IM-SSF
Figura 3-4: Perspectiva lógica do IM-SSF
De seguida serão explicados os vários componentes que juntos compõem a solução do
sistema IM-SSF desenvolvido.
3.3.1 SIPSTACK
Este componente é responsável pela comunicação com o S-CSCF através da interface
ISC. Baseia-se na utilização de um produto comercial de uma pilha SIP (Session
Initiation Protocol), fornecida pela Trillium [TRILLIUM].
A solução adoptada assenta (i) na pilha SIP Trillium utilizada para descodificar e
codificar mensagens SIP numa estrutura e (ii) nas bibliotecas necessárias para a
codificação e descodificação de mensagens SIP no protocolo Real Time Data
64
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
3.3.3 T Services
Este componente faz parte do módulo CNIMSSF e implementa os fluxos de mensagens
definidos na norma [3GPP TS 23.278 V6.1.0] quando é uma sessão que deve ser tratada
pelo T-IM-BCSM (MT). Este componente é muito semelhante ao O/D-IM-SSF e é
aplicado quando o processo de sinalização das sessões se encontra no lado terminado.
3.3.4 REGISTER
Este componente é especializado no tratamento dos registos dos utilizadores no módulo
CNIMSSF. Armazena localmente toda a informação referente ao utilizador podendo,
caso necessite, recorrer ao HSS ou a configurações internas para obter a informação
necessária.
Faz também parte do módulo CNIMSSF e é independente do BCSM a tratar ou seja, este
componente está sempre presente e activo quer o CNIMSSF esteja a funcionar em MO
ou em MT.
65
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
3.3.5 ImcnSSF
Este componente é o elemento principal do CNIMSSF e encontra-se sempre presente,
independentemente do BCSM a tratar. Cada instância do IP Multimédia Core Network
Service Switching Function (ImcnSSF) apenas comunica com um O/D-IM-BCSM ou T-
IM-BCSM e nunca com ambos em simultâneo.
Para além da comunicação com esses componentes, é ainda responsável pela
implementação de toda a máquina de estados do CAP, sendo também da sua
competência a construção das mensagens CAP a enviar, bem como a decisão de qual o
serviço a invocar, com base na informação existente no Register Handling. Essa
comunicação baseia-se em CAP4IMS, que é uma extensão do CAP3 e é transportado em
Real Time Transaction Application Protocol (RTTAP) para o CAMEL Signaling
GateWay (CSGW).
3.3.6 CSGW(1)
Este componente é um componente genérico do sistema IM-SSF, responsável pela
comunicação SS7 com o HLR /HSS. A sua principal função no IM-SSF é a de
disponibilizar essa capacidade de comunicação com o HSS ao Register Handling.
3.3.7 CSGW(2)
Este componente é o elemento responsável pela decisão de enviar as mensagens CAP
para o gsmSCF. Tem a capacidade de comunicar quer em SS7 (interface normalizada
definida pelo 3GPP) quer em RTDAP para outros sistemas da PT Inovação.
Os componentes CSGW são na realidade duas instâncias do mesmo componente. Isto
deve-se meramente ao objectivo de reduzir a complexidade e aumentar a segurança.
3.4 CNIMSSF
Nesta secção é apresentado o componente Core Network IMSSF (CNIMSSF) que é o
responsável por basicamente implementar a norma [3GPP TS 23.278 V6.1.0] que
garante o correcto funcionamento dos serviços identificados nos casos de uso (Figura 3-
2: Casos de uso do sistema).
66
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
Na Figura 3-5 é apresentado um esquema gráfico que tenta mostrar uma representação
visual dos componentes que constituem o módulo CNIMSSF e a forma como estes
interagem entre si.
TIMERS
(Skiplist) TIMERS_IMCN
I (Skiplist)
m
c
Dados do n
Utilizador O/D T
S
(Skiplist) R
S
E S S
F
G e e
I r r
S v v
Queue Interna de
T i i
entrada
E c c
R e e capQueueIn
MapQueOut s s
Thread
imcnSSF
Thread Queue Interna de CAP/
MAP/ Update_CSI saida RTTAP
RTTAP
MapQueIn Main
Array de
Sessões
(ArrayTmp)
sipQueOut sipQueIn
Thread ISC
SIP/
RTDAP
Legenda
X
Y - Caso de Uso - Queue XYZ - Protocolo Thread - Thread
Z
67
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
interfaces. Após este desenho decidiu-se o que cada thread faria para implementar o
correcto funcionamento previsto pela norma [3GPP TS 23.278 V6.1.0].
3.4.1 Interfaces
68
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
69
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
dez (10) elementos onde queremos que a chave seja um inteiro não superior a dez (10) a
chave a ser colocada como chave final é onze (11).
Dados do Utilizador – Dados do utilizador é uma Skiplist que contém a informação CSI
(O-IM-CSI, D-IM-CSI e VT-IM-CSI) de cada assinante. Esta informação pode ser
acedida através da pesquisa pelo campo userName do assinante (ex:
NNovo@[Link]). Como os dados de informação CSI podem ser extensos, nesta
lista é guardado apenas o ponteiro para a localização dos dados. Os dados são
armazenados num array que não é descrito na Figura 3-5. Esta solução foi concebida
para poder conter a informação necessária dos assinantes, quer esta provenha do HSS ou
por leitura de ficheiros de configuração. Esta solução visa possibilitar a existência de
perfis de utilizadores com os mesmos CSI partilhados entre eles, diminuindo desta
forma os recursos ocupados por cada utilizador registado.
TIMERS – É uma Skiplist onde como chave utiliza o tempo actual mais o tempo que
pretende aguardar, i.e., quando se pretende adicionar um temporizador de trinta (30)
segundos é verificado o tempo actual (timestamp devolvido em nano segundos) e
somado a este tempo, os trinta (30) segundos respeitando as ordens de grandeza. Com
isto é obtida a chave que é inserida na lista. Periodicamente, a thread Main retira o
primeiro elemento desta lista (o que tem um tempo mais próximo do actual) e compara-
o com o tempo actual. Caso o tempo actual seja superior significa que o temporizador
inserido na Skiplist cuja chave se encontra na primeira posição expirou, logo o Main vai
processá-lo.
TIMERS_IMCN – É semelhante ao TIMERS mas esta Skiplist é utilizada pela thread do
ImcnSSF.
Array de sessões – É o responsável por guardar toda a informação necessária
(informação dos clientes, duração da chamada, etc.) para o bom funcionamento das
sessões activas. Cada posição deste array guarda os dados relativos a uma sessão IMS;
assim, o número máximo de sessões simultaneamente activas permitidas pelo módulo é
dado pelo número máximo de posições deste array.
70
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
5
1
3
9
2
Na Figura 3-6 pode-se ver que a lista de sessões em curso já se encontra preenchida com
alguns valores. O próximo valor a ser retirado da lista é o cinco (5) o que significa que
vai processar os dados armazenados na posição cinco (5) do array de sessões. Ao inserir
um novo valor, por exemplo quatro (4), este será colocado na última posição após o dois
(2). Caso se pretendesse colocar o valor três (3) como este já existe seria forçado o
processamento dos dados dessa sessão, removendo o três (3) existente entre o um (1) e o
nove (9). Após este processamento, o três (3) que se pretendia colocar é inserido no
final da lista normalmente.
sipQueOut – É uma queue onde se encontra o conteúdo das mensagens SIP/RTDAP
para envio. Esta queue guarda uma estrutura por cada mensagem que a thread ISC
converte para o protocolo RTDAP e transmite para a SIPSTACK, que por sua vez a
transforma numa mensagem SIP.
71
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
3.4.3 Threads
Nesta secção são descritas as threads que constituem o CNIMSSF, as suas principais
funções e o seu ciclo de processamento.
[Link] Main
O Main é o processo principal do módulo. É este processo que invoca todas as outras
threads e que inicia todos os processos. É o responsável por processar as chamadas de
acordo com a ordem indicada na lista de Sessões em curso. Retira da lista uma posição
do Array de sessões, vai à respectiva posição no Array de sessões e inicia o processo
(REGISTER, O/D Services, T Services) que deverá iniciar o processamento.
Entre as competências desta thread encontram-se as seguintes:
72
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
ぁ Lê os ficheiros de configuração.
73
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
74
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
75
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
76
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
77
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
Ciclo de processamento:
78
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
79
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
ぁ A ligação com a SIPSTACK é perdida. Neste caso, é feita uma imagem das sessões
activas no momento e essas sessões são colocadas nesta lista para serem
terminadas.
80
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
Capítulo 4 - Testes
A fase de testes é de extrema importância pois é com esta fase que se testa o correcto
funcionamento do módulo segundo as normas que se lhe aplicam e conforme as
estratégias pensadas na sua concepção e aplicadas no desenvolvimento. Neste capítulo,
são descritos dois tipos de testes: testes comprovativos do correcto funcionamento do
sistema e testes de desempenho que aferem a eficácia das soluções e estratégias
adoptadas. Decidiu-se efectuar a separação entre os testes funcionais e os testes de
desempenho pois, embora os cenários sejam idênticos, os objectivos e parâmetros
analisados são diferentes e, por conseguinte, conduzem a conclusões diferentes.
81
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
CNIMSSF_01_1 CNIMSSF_02_1
Round Robin
[Link] (5062)(5063)
[Link] [Link]
SIPSTACK_01_1 SIPSTACK_02_1
IM-SSF
Cluster
[Link] (5060) (5061)
82
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
3.1 ). Desta forma a arquitectura de alta disponibilidade é replicada para cada modo de
funcionamento. Para dividir os dois cenários MO e MT decidiu-se usar portos distintos
para cada cenário, o porto 5060 utilizado pelo S-CSCF invoca o cenário MO e o porto
5061 o cenário MT. Por outro lado o porto 5062 é utilizado pelo CNIMSSF para
estabelecer comunicação com a SIPSTACK. Na Figura 4-1 apresentam os módulos
utilizados para construir apenas o cenário MO por uma questão de simplicidade não
estão presentes os módulos MT mas no sistema implementado todos os módulos são
replicados e correm noutros portos (no cluster a SIPSTACK para MT corre nos portos
5061 e 5063 para contacto do S-CSCF e CNIMSSF).
O módulo CNIMSSF é o ponto de maior inteligência do sistema e em caso de falha
deste, todas as sessões são terminadas e o serviço fica indisponível. Assim, optou-se por
tornar a SIPSTACK num servidor para o CNIMSSF e desta forma podem-se ter vários
módulos CNIMSSFs ligados a um único módulo SIPSTACK onde as sessões são
distribuídas segundo uma filosofia de Round-Robin entre cada um deles (na Figura 4-1,
o sentido de uma ligação indica a estratégia cliente-servidor adoptada: a origem é o
cliente e o destino é o servidor). Na situação de falha de um dos módulos CNIMSSF, o
módulo SIPSTACK liberta todas as sessões servidas por esse CNIMSSF.
Quanto ao CSGW, numa situação de falha, e uma vez que este módulo não guarda
qualquer informação relevante, optou-se por uma solução de Active/Standby, em que
um segundo CSGW assume o modo activo, quando o primeiro CSGW falha. Esta
comutação é proporcionada pelo CNIMSSF que conhece à partida os dois CSGW’s e
apenas utiliza um deles para efectuar a comunicação CAP. O CSGW consegue ligar-se a
um ou mais gsmSCF. Para distinguir qual dos gsmSCF deve contactar o CSGW possui
uma lista configurável que, de acordo com a identificação do serviço, encaminha os
pedidos para o gsmSCF correspondente. O gsmSCF não faz parte da solução do IM-SSF
e é representado apenas para enfatizar o facto de o CSGW poder contactar mais do que
um gsmSCF de acordo com o serviço invocado. Para testes, usou-se um módulo
pertencente à PT Inovação que é capaz de enviar os fluxos de mensagens CAP tal como
83
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
Na Tabela 4-1 REL x significa Red Hat Enterprise Linux versão x e 4x Intel Xeon y.z
GHz significa que a máquina possui quatro processadores Intel Xeon que funcionam à
frequência de y.z GHz cada.
Dscp1 e Dscp2 são as máquinas onde se encontra instalado o sistema IM-SSF segundo a
arquitectura de alta disponibilidade apresentada na Figura 4-1. A Twin2 corre os
utilizadores, chamador e chamado, utilizados para efectuar os testes.
84
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
Módulo IP Porto
gsmSCF_01_1 5080
[Link]
gsmSCF_01_2 5081
gsmSCF_02_1 5080
[Link]
gsmSCF_02_2 5081
CSGW_01_1 5070
[Link]
CSGW_01_2 5071
CSGW_02_1 5070
[Link]
CSGW_02_2 5071
CNIMSSF_01_1 [Link] 5062
CNIMSSF_02_2 [Link] 5062
SIPSTACK_01_1 [Link] 5060
Chamador (1) 5060
[Link]
Chamado (1) 5061
Chamador (2) 5062
[Link]
Chamado (2) 5063
Chamador (3) 5064
[Link]
Chamado (3) 5065
Tabela 4-2: Ambiente de teste
85
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
PT Inovação impõem aos seus sistemas. A Tabela 4-3 apresenta os testes do sistema IM-
SSF.
86
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
Os testes identificados por 1,2,3,4 e 5 são grupos que identificam um conjunto de testes.
De seguida, descreve-se o que é cada um dos testes e qual o resultado da sua realização
no sistema desenvolvido.
Grupo 1:
1.1– Este teste permite validar a solução de alta disponibilidade. Para isso foram
executados os seguintes passos
Passo 1 – o CSGW activo foi abortado e verificou-se que o CNIMSSF se
ligou ao segundo.
Passo 2 – o CNIMSSF foi abortado e verificou-se que a SIPSTACK
reencaminhou todo o tráfego para o outro CNIMSSF que ainda se
encontrava activo. Nesta situação a SIPSTACK terminou todas as sessões
que mantinha para o CNIMSSF que foi abortado.
Passo3 – a SIPSTACK foi abortada e verificou-se que o cluster arrancou
uma nova SIPSTACK. Nesta situação também se verificou que os
CNIMSSFs começaram a libertar as sessões que tinham activas.
Grupo 2:
2.1 – Neste teste foi enviado um SIP “REGISTER” para o sistema e através da
análise das mensagens impressas pelo CNIMSSF verificou-se que o registo foi
efectuado.
2.2 - Neste teste enviou-se um SIP “REGISTER” onde no campo SIP Expires se
encontrava o valor 0 (zero). Isto significa que é um fim de registo. Analisando
87
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
88
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
89
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
90
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
gsmSCF gsmSCF
CSGW_01_1 CSGW_01_1
CNIMSSF_01_1 CNIMSSF_01_1
SIPSTACK_01_1 SIPSTACK_01_1
Cliente A Cliente B
Nas chamadas MO, o sistema na pior das hipóteses activa o serviço de O_IM_CSI e o de
D_IM_CSI antes de prosseguir com a sessão (a melhor hipótese seria invocar apenas um
dos dois serviços). Estes dois serviços activos implicam duas invocações ao gsmSCF e é
necessário aguardar as instruções recebidas do gsmSCF para os dois serviços. Desta
forma, este cenário é o que implica maiores tempos de atraso e maior consumo de
recursos devido à complexidade inerente de activar dois serviços assíncronos que
influenciam a sessão em causa.
Em chamadas do tipo MT o IM-SSF apenas activa o serviço VT_IM_CSI.
91
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
ぁ Tempo de resposta – tempo que demora o sistema desde que recebe a mensagem
SIP “INVITE” até a enviar para o destino correcto.
92
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
pedidos SIP temos sempre uma resposta. Após os vários testes preliminares executados,
os parâmetros adoptados para o CNIMSSF são os que se mostram na Tabela 4-4.
93
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
94
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
INVITE
IDP
100 Trying
Request Report
Apply Charging
Continue
INVITE
100 Trying
180 Ringing
180 Ringing
200 OK
Event Report
Continue
200 OK
ACK
ACK ...
... ...
Apply Charging
BYE
Apply Charging Report
Event Report
End Call
BYE
200 OK
200 OK
95
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
Os eventos armados (os eventos são armados pela mensagem “Request Report BCSM
Event”) e accionados neste fluxo são do tipo de notificação. Isto significa que o IM-SSF
quando detecta que um evento deve ser reportado envia-o usando a mensagem Event
Report e não necessita de aguardar nenhuma resposta proveniente do gsmSCF.
INVITE
IDP
100 Trying
Request Report
Apply Charging
Continue
INVITE
100 Trying
180 Ringing
180 Ringing
Na Figura 4-4 é apresentado o fluxo de mensagens usado nas sessões canceladas. Este
tipo de sessões caracteriza-se pelo não estabelecimento da sessão. O chamador
([Link]:5062) após efectuar o pedido envia uma mensagem, “Cancel”, que como
o nome indica cancela o pedido. O cancelamento é passado ao chamado
([Link]:5063). É de notar que como o IM-SSF é um B2BUA não necessita de
aguardar a confirmação do chamado para aceitar o término do pedido.
Nas mensagens CAP é de notar que ao Event Report final o gsmSCF responde com uma
mensagem Continue. Isto deve-se ao facto do evento de cancelamento estar armado
como interrupção, por outras palavras após o envio deste evento para o gsmSCF o IM-
SSF é obrigado a aguardar uma resposta para poder prosseguir com a sessão.
96
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
INVITE
IDP
100 Trying
Request Report
Apply Charging
Continue
INVITE
100 Trying
180 Ringing
180 Ringing
486 Busy
Apply Charging Report
Event Report
End Call
486 Busy
ACK
ACK
97
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
horas, o que permitiu obter os resultados apresentados na Tabela 4-7 e Tabela 4-8. O
cenário de sessões estabelecidas foi configurado para estas terem uma duração de cerca
de 120 segundos.
98
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
99
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
cálculo de largura de banda utilizada). O fluxo foi executado 7 vezes fazendo variar o
tempo de duração da sessão (tempo entre o “ACK” e o envio do “BYE”).
O fluxo de estabelecimento de sessão é definido na Tabela 4-9 assim como o tamanho
para cada mensagem.
Ramo 1 Ramo 2
Fluxo Tamanho (bytes) Tamanho (bytes)
“INVITE” 1147 946
“100 Trying” 339 318
“180 Ringing” 632 319
“200 OK” ao “INVITE” 827 586
“ACK” 1025 451
“BYE” 884 397
“200 OK” ao “BYE” 487 320
Total 5341 3337
Tabela 4-9: Tamanho das mensagens usadas no fluxo de estabelecimento de sessão
Na Tabela 4-9 são distinguidos dois ramos pois o IM-SSF como B2BUA define dois
ramos (duas sessões SIP relacionadas pelo IM-SSF), um do chamador para o IM-SSF
(Ramo 1) e outro do IM-SSF para o chamado (Ramo 2). A diferença de tamanho entre
os dois ramos deve-se ao facto do IM-SSF remover toda a informação SIP considerada
supérflua quando inicia o Ramo 2.
100
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
Executou-se o fluxo da Tabela 4-9 e efectuaram-se várias corridas para o mesmo ritmo e
para durações de sessão diferentes. Desta forma conseguiram-se os valores para os
buckets em função das sessões activas. Os dados obtidos são apresentados na Tabela 4-
10.
O atraso médio por sessão é calculado fazendo a divisão do número de sessões activas
pelas sessões por segundo, subtraindo a duração da sessão
pela sessão, desde que a sessão é criada (primeiro “INVITE”) até ao seu término (“200
OK” ao “BYE”).
Através dos valores obtidos na Tabela 4-10 conseguiu-se obter o gráfico apresentado na
Figura 4-6 que representa o crescimento dos buckets (o crescimento do bucket é
directamente proporcional ao crescimento de memória utilizada pelo processo) em
função do número de sessões activas.
101
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
700000
600000
500000
Nº Blocos do Bucket
400000 Bucket 0
Bucket 1
Bucket 2
300000 Bucket 3
200000
100000
0
0 75 1049 2048 3046 4044
Cham adas activas
Usando a regressão linear do Microsoft Excel 2003 que tenta aproximar uma recta sobre
os valores obtidos conseguiram-se rectas lineares que são muito próximas dos valores
obtidos. Através destas rectas consegue-se uma estimativa que permite configurar os
valores para os buckets de acordo com a sua utilização. Desta forma para se ter cerca de
20000 sessões activas em simultâneo na SIPSTACK devem-se configurar os buckets com
os valores apresentados na Tabela 4-11. O total de memória é calculado somando o
tamanho de cada bucket em bytes. Para calcular o tamanho de cada bucket é só
multiplicar o número de elementos de bucket pelo tamanho de cada elemento em bytes
((80 ).
102
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
Na Tabela 4-12 são apresentados os valores de utilização de memória para cada módulo
utilizado. Nesta tabela são apresentados os valores de memória na forma Virt e Res.
OVirt é toda a memória acessível pelo módulo, isto inclui memória de bibliotecas
partilhadas, memória alocada pelo módulo, memória mapeada pelo módulo em ficheiros
do sistema. O Res é a memória residente que é uma representação fiel da memória física
que o módulo ocupa.
Base ∆
Memória (MB) Virt (MB) Res (MB) Virt(MB) Res (MB)
SIPSTACK 541,00 354,00 0,00 0,00
CNIMSSF 58,19 11,99 0,01 0,01
CSGW 60,47 2,67 0,01 0,01
Tabela 4-13: Valores de memória base e acréscimo por sessão activa
103
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
Os dados obtidos para o consumo de CPU são bons pois os requisitos do cliente onde o
sistema foi instalado são de ritmos inferiores às 50 sessões por segundo. Como se
verifica, até 50% de consumo de CPU, que é uma carga aceitável numa máquina de
produção, o sistema poderá processar sessões a ritmos de 150 sessões por segundo.
Conclui-se que o sistema é bastante eficiente no que diz respeito ao consumo de CPU.
104
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
Capítulo 5 - Conclusões
O primeiro objectivo desta dissertação foi o estudo das normas vigentes que especificam
o IM-SSF. Este estudo prendeu-se fundamentalmente com a análise da norma [3GPP TS
23.278 V6.1.0]. Contudo, por muito boa que a norma seja, foi também necessário
perceber como o IM-SSF se enquadra na arquitectura IMS e como interage com os seus
outros componentes de forma a fornecer os serviços a que se propõe. É neste contexto
que surge o segundo objectivo que foi o de estudar os protocolos que suportam as
interfaces entre o IM-SSF e as entidades a si associadas. Os protocolos analisados foram
o SIP, CAP, MAP e Diameter. De entre os protocolos referidos, os mais importantes
foram o SIP e o CAP pois são estes que permitem o estabelecimento de sessões. Os
outros dois protocolos (MAP e Diameter) são apenas utilizados na comunicação com o
HSS para a obtenção dos dados relativos aos utilizadores. A implementação do IM-SSF
desenvolvida neste trabalho baseia-se na utilização de ficheiros de configuração para
leitura dos dados de utilizador mais relevantes, que doutra forma poderiam ser obtidos
do HSS. Mesmo com as limitações impostas pelo facto de se usarem ficheiros de
configuração (em vez da comunicação com o HSS), a implementação desenvolvida é
uma mais-valia para redes onde não exista HSS. Com isto chega-se ao terceiro objectivo,
o de implementar o módulo IM-SSF. Como a implementação segue a norma [3GPP TS
23.278 V6.1.0], a alteração e mesmo leitura do código torna-se mais simples. Mesmo o
105
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
facto de a norma ser bastante boa em detalhes e fluxo de sessões, ainda não está fechada
(à data da escrita desta dissertação). Não obstante algumas melhorias que podem ser
efectuadas à solução desenvolvida, os testes de desempenho provaram ser uma solução
robusta e eficaz. Assim, avaliando os objectivos propostos para esta dissertação, pode-se
concluir que estes foram globalmente cumpridos.
106
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
núcleo do operador o IM-SSF ainda assim pode ser uma mais-valia pois permite que
todos os mecanismos de controlo e desenho de lógicas de controlo continuem a ser
válidos.
107
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
Referências
3rd Generation Partnership Project, Technical
[3GPP TS 23.002 V6.10.0]
Specification Group Services and Systems Aspects;
(2005-12) “Network architecture”; (Release 6)
3rd Generation Partnership Project, Technical
[3GPP TS 23.218 V6.4.0]
Specification Group Core Network IP Multimedia (IM)
session handling; (2006-06) “IM call model”; Stage 2
(Release 6)
3rd Generation Partnership Project; Technical
[3GPP TS 23.228 V6.8.0]
Specification Group Services and System Aspects; (2004-
12) “IP Multimedia Subsystem (IMS)”;
Stage 2 (Release 6)
3rd Generation Partnership Project, Technical
[3GPP TS 23.278 V6.1.0]
Specification Group Core Network and Terminals (2005-
06) “Customised Applications for Mobile network
Enhanced Logic (CAMEL) Phase 4”; Stage 2; IM CN
Interworking (Release 6)
108
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
109
CONTROLO E GESTÃO DE SESSÕES MULTIMÉDIA IP USANDO O IM-SSF
URL: [Link]
[17 Outubro 2006]
(2007) SIPp URL: [Link] [1 Junho
[SIPp]
2007]
Henrique Teixeira de Sousa, “SINALIZAÇÂO nº 7 teoria
[SS7 Teixeira de Sousa]
e prática”, Portugal, João Azevedo Editor, 1ª ed, 2005,
351p
(2007) Tech Invite, SIP Portal URL: [Link]
[TECH-INVITE]
[Link]/ [23 Abril 2007]
(2007) Continuous Computing
[TRILLIUM]
URL:[Link] [16 Fevereiro 2007]
110