IP Library Granted Patent US 9,241,012
Granted Patent B2
US 9,241,012 · App. 13/187,253 · Granted Jan 19, 2016

System and method for telephony and communication services with message-based API

Inventors: Jose Maria de Castro, Jr. (Orlando, FL); Neil Stratford (Ely, GB); Wei Chen (Saratoga, CA); Zhiyu Liu (Beijing, CN); Xiaopu Zhu (Beijing, CN); Jason Scott Goecke (San Carlos, CA)
Assignee: Tropo, Inc.
H04L65/1043G06F9/4428G06F9/54H04L65/1006H04L65/1009H04L65/1053G06F2209/541
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,241,012
App. No.
13/187,253
Granted
Jan 19, 2016
Kind
B2
Abstract

A communication application server is provided with a unified framework for call control and media control. The framework supports a unified API having class objects and functions conforming to a telephony object model. The class objects are invoked and manipulated by a finite set of commands and an application program essentially issues a series of such commands to operate the communication application server. More particularly, an API server on the communication application server defining a messaging API protocol enables an application script to pass commands remotely to the communication application server to operate it. This allows application scripts to be processed remotely by appropriate scripting engines. In this way, application scripting is decoupled from the operation of the communication application server, which only needs to focus on providing basic communication services.

Claims (30)

1. A method of operating a server, comprising:

deploying a plurality of application servers on a telephony network for providing telephony and communication services;

providing a communication framework at the plurality of application servers for the telephony and communication services, the communication framework providing an API with a set of class objects for unified call control and media control, so that the API allows programmatic access to the telephony and communication services by a plurality of remote API clients via the telephony network;

providing, at the plurality of application servers, a messaging API server, the messaging API server having a predefined text-based messaging protocol for the API wherein the text-based messaging protocol for the API abstracts a corresponding plurality of at least telephony and media functions;

providing a message broker stored and operating on a network-connected server resident in and compatible with the network and adapted to mediate text-based messaging between the plurality of remote API clients and the plurality of application servers;

federating the plurality of application servers across a plurality of messaging domains based at least on properties and status of the plurality of application servers;

receiving, into the plurality of application servers, commands issued by the plurality of API clients for invoking and manipulating the class objects relative to an ongoing call or media session, the commands being packaged as messages conforming to the predefined text-based messaging protocol for the API;

validating the messages for conformity to the API text-based messaging protocol;

parsing the messages according to the predefined text-based messaging protocol for the API to obtain the commands;

determining whether the commands correspond to a set of commands supported by the a predefined text-based messaging protocol for the API;

locating one or more application servers best suited for executing the commands based at least on the properties and the status; and

executing, at the one or more application servers, the commands to the call or media session in the order the commands become available thereby providing direct real-time call and media control to the API client via the messaging API;

wherein the commands issued by the remote API client are a rendering of an application script to realize an interactive voice response application or a self-help application.

2. The method as in claim 1 , wherein:

the messaging is exchanged using a protocol for presence and real-time communication.

3. The method as in claim 1 , wherein the set of class objects for unified call control and media control are built from class object primitives of a standards-based call control API and a standards-based media control API.

4. The method as in claim 3 , wherein the set of class objects are based on a specific object model that dictates certain predefined constructs of the class objects primitives of the call control API and the media control API.

5. A system for providing telephony and communication services on a telephony network, comprising:

a plurality of application servers for providing telephony and communication services on a telephony network;

a communication framework providing an API with a set of class objects for unified call control and media control, so that the API allows programmatic access to the telephony and communication services by a plurality of remote API clients via the telephony network;

a messaging API server having a predefined text-based messaging protocol for the API, the messaging API server receiving into the application server commands issued by the plurality of remote API clients for invoking and manipulating the class objects relative to an ongoing call or media session, the commands being packaged as messages conforming to the predefined text-based messaging protocol for the API wherein the text-based messaging protocol for the API abstracts a corresponding plurality of at least telephony and media functions;

a message broker stored and operating on a network-connected server and adapted to mediate text-based messaging between the plurality of remote API clients and the plurality of application servers wherein the plurality of application servers are federated across a plurality of messaging domains based at least on properties and status of the plurality of application servers further wherein one or more application servers best suited for executing the commands are located based at least on the properties and the status;

a command parser for parsing the messages according to the predefined text-based messaging protocol for the API to obtain the commands;

a validator for validating the messages for conformity to the text-based messaging protocol wherein the validator determines whether the commands correspond to a set of commands supported by the a predefined text-based messaging protocol for the API; and

a virtual machine for executing the commands to the call in the order the commands become available thereby providing direct real-time call and media control to the plurality of remote API clients via the messaging API;

wherein the commands issued by the remote API client are a rendering of an application script to realize an interactive voice response application or a self-help application.

6. The application server as in claim 5 , wherein:

the messaging is exchanged using a protocol for presence and real-time communication.

7. The application server as in claim 5 , wherein the set of class objects for unified call control and media control are built from class object primitives of a standards-based call control API and a standards-based media control API.

8. The application server as in claim 7 , wherein the set of class objects are based on a specific object model that dictates certain predefined constructs of the class objects primitives of the call control API and the media control API.

Assignments (5)
CORRECTIVE ASSIGNMENT TO CORRECT THE DATE SIGNED AND DOC DATE PREVIOUSLY RECORDED ON REEL 037770 FRAME 0147. ASSIGNOR(S) HEREBY CONFIRMS THE THE DOCUMENT DATE OF 02/19/2016. Recorded Apr 13, 2016
From: TROPO LLC
To: CISCO TECHNOLOGY, INC.
Reel/Frame 038427/0667 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 18, 2016
From: TROPO LLC
To: CISCO TECHNOLOGY, INC.
Reel/Frame 037770/0147 →
CHANGE OF NAME Recorded Feb 18, 2016
From: TROPO, INC.
To: TROPO LLC
Reel/Frame 037856/0768 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2013
From: VOXEO CORPORATION
To: TROPO, INC.
Reel/Frame 031783/0607 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 3, 2011
From: DE CASTRO, JOSE MARIA, JR.; STRATFORD, NEIL; CHEN, WEI; LIU, ZHIYU; ZHU, XIAOPU; GOECKE, JASON SCOTT
To: VOXEO CORPORATION
Reel/Frame 027006/0697 →
Continuity (3)
Continuation In Part 13088396 · Apr 17, 2011
Provisional Application 61325355 · Apr 18, 2010
Related Publication 20120016932A1 · Jan 19, 2012