Servlets SIP

Um servlet do Protocolo de Inicialização de Sessão (SIP) é um componente de aplicativo baseado em Java que é gerenciado por um contêiner do servlet SIP e que executa sinalização SIP. Os servlets SIP interagem com os clientes, trocando mensagens de pedidos e respostas através do contêiner de servlets.

A especificação SIP Servlet 1.0 (JSR 116) é padronizada utilizando O JSR (Java™ Specification Request) 116. A idéia por trás da especificação é fornecer uma API (Interface de Programação de Aplicativos) Java semelhante aos servlets HTTP, que fornece um modelo de programação SIP de fácil uso. Como o modelo de programação de servlet HTTP popular, alguma flexibilidade é limitada para otimizar a facilidade de utilização e o tempo para valorização.

Porém, a API do SIP Servlet é diferente de muitas maneiras dos servlets HTTP porque o protocolo é muito diferente. Como o SIP é um protocolo de pedido-resposta, não há necessariamente apenas uma resposta para cada pedido. Essa complexidade e a necessidade de uma solução de alto desempenho significavam que era mais fácil tornar os servlets SIP nativamente assíncronos. Além disso, diferente dos servlets HTTP, o modelo de programação para servlets SIP procuraram tornar os pedidos do cliente fáceis de criar ao lado da outra lógica sendo gravada porque muitos aplicativos agem como um cliente ou proxy para outros servidores ou proxies.

Solicitações de SipServlet

Como os servlets HTTP, cada servlet SIP estende uma classe javax.servlet.sip.SipServlet base. Todas as mensagens vêm através do método de serviço, que pode ser estendido. Porém, como não há um mapeamento um-para-um de pedidos para respostas no SIP, a prática sugerida é estender os métodos doRequest ou doResponse. Ao estender os métodos doRequest ou doResponse, é importante chamar o método estendido para que o processamento seja concluído.

Cada método de pedido, que a especificação deve suportar, tem um método doxxx exatamente como HTTP. No HTTP, métodos como doGet e doPost existem para pedidos GET e POST. No SIP, os métodos doInvite, doAck, doOptions, doBye, doCancel, doRegister, doSubscribe, doNotify, doMessage, doInfo e doPrack existem para cada método de pedido SIP.

Diferente do servlet HTTP, os servlets SIP têm métodos para cada um dos tipos de resposta suportados. Portanto, os servlets SIP incluem as respostas doProvisionalResponse, doSuccessResponse, doRedirectResponse e doErrorResponse. Especificamente, as respostas provisionais (respostas 1xx) são utilizadas para indicar status, as respostas de sucesso (respostas 2xx) são utilizadas para indicar uma conclusão bem-sucedida da transação, as respostas de redirecionamento (respostas 3xx) são utilizadas para redirecionar o cliente para um recurso ou entidade movido e as respostas de erro (respostas (4xx, 5xx e 6xx) são utilizadas para indicar uma falha ou uma condição de erro específica. Esses tipos de mensagens de resposta são semelhantes ao HTTP, mas como o modelo de programação do SIP Servlet inclui um modelo de programação do cliente, é necessário ter respostas manipuladas programaticamente também.

Esclarecimentos do JSR 116

O JSR 289 fez alguns esclarecimentos ao JSR 116, conforme a seguir:
  • JSR 289 Seção 4.1.3: Campo de Cabeçalho de Contato
  • JSR 289 Seção 5.2: Estado de Transação Implícita
  • JSR 289 Seção 5.8: Acessibilidade de Mensagens do Servlet SIP

Ícone que indica o tipo de tópico Tópico de Conceito



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=csip_servlet
Nome do arquivo: csip_servlet.html