The drafts and documents below provide APIs and programming environments suitable for SIP servers and user agents.
This Technical Report illustrates how CSTA can be used over a SIP session to control and observe SIP user agents (uaCSTA).
In Internet telephony, there must be a means by which new services are
created and deployed rapidly. In the World Wide Web, the Common Gateway
Interface (CGI) has served as popular means towards programming web
services. Due to the similarities between the Session Initiation
Protocol (SIP) and the Hyper Text Transfer Protocol (HTTP), CGI is a
good candidate for service creation in a SIP environment. This document
defines a SIP CGI interface for providing SIP services on a SIP server.
Due to the similarity of SIP and HTTP, many mechanisms that have been
instrumental in the success of the World Wide Web have been replicated
in SIP. PHP is a robust, cross-platform scripting language, which has
been tailored to simplify and accelerate service development on the
World Wide Web while empowering the developer with easy and yet reliable
connectivity with all modern databases. This draft discusses the
creation of SIP services using PHP.
This document improves and extends the SIP Servlet API defined in .
The SIP Servlet API defines a mechanism, which enables the encapsulation
of service logic in so called SIP Servlets on the top of the protocol
stack of a SIP Server. A very important point, which is not treated by
 is the interoperability of services.  proposes a first approach
to overcome this problem with a so called root servlet. In this
Internet draft we define a more generic model to perform a combination
or interaction of SIP Servlets. This makes the servlet approach to a
very powerful alternative also in UMTS to connect SIP Proxy and Service
This Internet draft builds on and refines the SIP Servlet API defined in
. The SIP Servlet API defines an API for SIP Clients that allows
them, via a SIP Servlet engine, present messages to 'Servlets' which can
then interact with the message and the Client to change the behavior of
the CIP Client. This document expands on this concept to: Suggest a
standard way to identity or name SIP Servlets; Introduce the concept of
a 'Root' SIP Servlet; Introduce some rules and mechanisms for SIP
Servlet interaction; Suggest some Permission parameters for invoked SIP
This document defines an extension to the SIP protocol to combine some
of the concepts introduced by the SIP Servlet API work and by Java
Enhanced SIP. This document proposes a way to distribute SIP Servlets
to SIP clients using the SIP protocol itself, including a way to
authenticate the source of the Servlet. This may prove a useful
mechanism for rolling out new services across multiple SIP clients. In
addition it proposes a way for an originating SIP Client to specify in a
message generated by it that it wants the message to be passed to a
particular named SIP Servlet in the receiving SIP Client.
This document describes an extension to the Session Initiation Protocol
(SIP). The purpose of this extension is to provide an extremely generic
and extensible framework through which SIP nodes can request additional
services from remote nodes. Examples of such nodes include SIP Network
Servers, SIP User Agents, SIP/PSTN Gateways, SIP/H.323 Gateways and SIP
Enabled Application Service Brokers. It also a candidate for providing
a remote procedure call mechanism for Call Processing Language (CPL)
scripts. This proposal is based upon a new SIP method, called SERVICE.
The SERVICE method can carry a Simple Object Access Protocol (SOAP)
message as it's payload. SOAP is a lightweight protocol for exchange of
information in a decentralized, distributed environment. SOAP defines a
framework for encoding request and response messages in XML. Typically
SOAP uses HTTP as a transport protocol but this proposal enables SIP to
be used instead.
This document defines an extension to the SIP protocol to do a
number of things - to extend SIP messages to carry Java applets or Java
Mobile Agents, to define a Java SIP API which will allow the Java applet
or Java Mobile Agent to interact with the receiving host system and to
extend the SIP protocol client so that the Java applet or Java Mobile
Agent is run before any other actions are taken on the receipt of a
message by the receiving host SIP client.
The Call Processing Language (CPL) is a language that can be used to
describe and control Internet telephony services. It is designed to be
implementable on either network servers or user agent servers. It is
meant to be simple, extensible, easily edited by graphical clients, and
independent of operating system or signalling protocol. It is suitable
for running on a server where users may not be allowed to execute
arbitrary programs, as it has no variables, loops, or ability to run
Several newly developed languages and interfaces, such as the CPL and
SIP CGI, allow users or administrators to specify how Internet telephony
servers should process calls. There needs to be a method of
transporting scripts for such languages between a client and a server.
This document proposes using the payload of SIP REGISTER messages, and
their responses, as one method to transport them.
Last updated by Henning Schulzrinne