Parlay X Third Party Call over SIP/IMS provides
the ability to initiate a call from a network entity between two different
users or user agents.
Parlay X Third Party Call over SIP/IMS provides
simple (high level) Parlay X functions to application developers that
can be used to determine how to initiate a third party call. Using
this Web service application developers can quickly develop applications
use without having detailed knowledge of the telecommunications field. Parlay X Third Party Call over SIP/IMS works
on a request or response message from a client to a Web service application.
The implementation includes a SIP application and SIP
Servlets that are required to run in a WebSphere® converged
HTTP and SIP container. The call initiation is done through a SOAP
over HTTP request.
Parlay X Third Party Call over SIP/IMS provides
Parlay X Web service support for applications with the ability to
initiate a call between two addresses (makeCall), retrieve the current
call status after a call has been initiated (getCallInformation),
terminate a call (endCall), or cancel a call if the parties have not
yet been reached (cancelCall).
Call flows
This is a sample call flow for
the makeCall Webservice operation:
- The application client invokes a Web service with two user endpoints
(User Agent 1 and User Agent 2)
using SOAP message over HTTP to Access Gateway.
- If there is a service policy for Parlay X Third Party Call over SIP/IMS then Access Gateway will
send this information through SOAP message to the service.
- Access Gateway invokes Parlay X Third Party Call over SIP/IMS,
with any policy information as discussed in Step 2.
- Parlay X Third Party Call over SIP/IMS will
contact the Admission control service to ensure the service does not
exceed the server or cluster capacity.
- The common service Privacy is called to ensure that the requester
is allowed to view requested information.
- Traffic Shaping component Web service is
called to control the rate of traffic (messages) to the element in
the network. The traffic estimate size can be configured for the method
being called using the trafficEstimatePerRequest property. A default
50 to 1 ratio means for every Parlay X request there will be up to
50 SIP requests generated. When planning, along with figuring the
number of outstanding SIP requests that will be supported, the duration
of the call needs to be taken into consideration.
- The Parlay X Third Party Call over SIP/IMS creates
a new SIP application session, with the initial state Call_Initial.
- The SIP call signals now flow from the SIP Servlet 1 to the Out
Bound Proxy address, which can be referred to also as the S-CSCF.
- Call Information data is stored in the database table THIRDPARTYCALL.
- SIP call negotiation between Servlet 1 call flow and User Agents
is taking place.
- The call negotiation is completed and the User Agents can now
start their phone conversation through the established Mobile media
connection.
Interfaces
- ThirdPartyCall
- makeCall
- Initiates a call between two addresses, CallingParty and CalledParty.
Optionally the application can also indicate the charging information
(Charging). This is determined by the policy information configured
per provider.
- getCallInformation
- Retrieves the current call status of the CallIdentifier (a parameter
returned from makeCall). A CallInformation structure is returned,
containing StartTime, Call status, Duration, and TerminationCause
(if applicable). Provided that the call status record has not expired
and has not been purged, this method can be invoked multiple times
even if the call has ended.
- endCall
- Terminates the call identified by CallIdentifier.
- cancelCall
- Cancels the call identified by CallIdentifier. This operation
has no effect if a call has been connected.
Session affinity
Session affinity is provided
through WebSphere Application Server.
To make use of this capability for session affinity, the calling Web
service client must preserve the same HTTP session for subsequent
calls related to a corresponding SIP session.
In your Third
Party Call application, therefore, requests that refer to the result
of a previous makecall invocation must preserve
the HTTP session. A Java application would preserve the HTTP session
by setting SESSION_MAINTAIN_PROPERTY in the Call
class.
Here is an example of using the Java Call class to preserve
the HTTP session:
ServiceFactory factory = ServiceFactory.newInstance();
Service service = factory.createService(new Qname("http://www.provider.ParlayX..."));
Call call = service.createCall();
:
call.setProperty(call.SESSION_MAINTAIN_PROPERTY,new Boolean(true));
:
// rest of class