SIP Servlets
SIP Java servlets [7, 8] are a powerful tool for extending the functionality of a
SIP client by allowing it to pass received messages to SIP servlets. SIP servlets
can then process the message and even interact with the SIP client to generate
new messages (if the security settings allow it). This API can be used on both
SIP servers and user agents. It is not a general-purpose SIP API but rather an
API for service extensions. SIP servlets are currently not a work item of any
IETF working group, but may become an informational RFC in the future.
JAIN
The Java Integrated Network (JAIN) SIP specification [9] is part of an effort to
create a set of APIs for various telephony and Internet protocols for service
development. The JAIN SIP specification provides a standard interface to pro-
prietary vendor SIP stacks. JAIN is defined by various Java documents that are
not related to the IETF in any way.
SIP and VoiceXML
Voice Extensible Markup Language (VoiceXML) [10] has been developed to
enable simple voice-enabled services and features to be developed. VoiceXML
is defined by documents at the VoiceXML consortium, which is not related to
the IETF in any way. Like CPL, VoiceXML is based on XML and has a similar
structure. VoiceXML scripts play prompts (either using prerecorded or synthe-
sized speech), collect input (via DTMF tones or speech recognition), and take
specified actions based on results. While VoiceXML does not relate directly to
SIP, a VoiceXML script can be run in conjunction with a SIP CPL or CGI script
to implement a complete interactive service. An example VoiceXML script to
prompt a caller as to whether he or she wishes to be connected to a voicemail
server is shown here:
<vxml>
<form id=”message”>
<field name=”choice”>
<prompt>
<audio>Do you want to be connected to voicemail?
Say yes or no.</audio>
</prompt>
<grammar>
<![CDATA[
[
[yes] {<option “yes”>}
[no] {<option “no”>}
]
]]>
SIP Service Creation 149