The aforementioned features and advantages, and other features and aspects of the present invention, will become better understood with regard to the following description and accompanying drawings, wherein:
The illustrative embodiment of the present invention provides a remote plug-in framework in a VoIP (Voice over Internet Protocol) environment where an Internet connection is used as a call transmission media. In the illustrative embodiment, the remote plug-ins are provided using Web services. Those of ordinary skill in the art will appreciate that the Web services are illustrative and the remote plug-ins may be provided using other technologies, such as client-server models and software-oriented architecture (SOA), in other embodiments.
SOA is an approach to build distributed systems that deliver application functionality as services to end-user applications or to build other services. SOA can be based on Web services, but it is not limited to Web services. Designing distributed applications using SOA may expand the use of Web services from simple client-server models to systems of arbitrary complexity.
The illustrative embodiment allows one or more remote plug-ins to communicate with the call control engine of the VoIP environment. The remote plug-in may provide a customized call processing logic or service by which calls are processed in the VoIP environment. A user can implement a customized call processing logic or service for the VoIP environment using the remote plug-in without changes in the call control engine of the VoIP environment. Using the Web service plug-in, the user may also add new services to the call processing logic of the VoIP environment.
In the VoIP environment 1, the clients 5, 6 and 7 may reside on a phone or a computer to enable the calling party to place a call or the called party to receive a call. In the illustrative embodiment, when a user places a call on the client 6 in the main office, the server 8 may direct the call to another user in the main office or to a nomadic user 5 on the network 4. In another instance the servers 8 and 9 may direct the call to the client 7 in the branch office. The call may be directed using a server 3 in a peering service provider, such as VONAGE™. The server may set up a session between the clients using Session Initiation Protocol (SIP). SIP is a protocol for initiating, modifying, and terminating an interactive user session that involves multimedia elements, such as video, voice, instant messaging, online games, and virtual reality. SIP allows the use of network elements, such as Proxy Servers and User Agents, to provide familiar telephone-like operations: dialing a number, causing a phone to ring, hearing ringback tones or a busy signal. SIP acts as a carrier for the Session Description Protocol (SDP), which describes the media content of the session, such as the IP ports to use, the codec being used etc. SIP is used in setting up and tearing down a session between the clients 6 and 7 in the illustrative embodiment. Those of ordinary skill in the art will appreciate that SIP is an illustrative signaling protocol and the present invention may employ a different protocol, such as H.323 protocol, in other embodiments.
After the session is set up between the clients, the content of the call including voice and/or video signals are transmitted over the Internet using Real-time Transport Protocol (RTP). RTP defines a standardized packet format for the real-time delivering of audio and video signals over the Internet. RTP carries the actual voice or video content of the call in real-time. In the illustrative embodiment, the term “session” is used to refer to the packet stream of the RTP.
The illustrative embodiment also provides Web services that may available from a business's Web server for Web users or other Web-connected plug-ins 2. Web services utilize a set of technologies, such as Simple Object Access Protocol (SOAP), Web Services Definition Language (WSDL) and Universal Description, Discovery and Integration (UDDI), as a means to securely and remotely gain access to the function of another application via the network 4. SOAP is used to transfer the data, WSDL is used for describing the services available and UDDI is used for listing what services are available. When the remote plug-ins 2 are registered with the servers 3, 8 and 9, the plug-ins 2 may communicate with the servers 3, 8 and 9 so that new call services can be added to the VoIP environment 1.
The computing device 10 may be electronic and include an execution unit 11, memory 12, storage 13, an input control 14, a modem 15, a network interface 16, a display 17, etc. The execution unit 11 controls each component of the computing device 10 to provide the VoIP environment 1. The memory 12 temporarily stores instructions and data and provides them to the execution unit 11 so that the execution unit 11 operates the computing device 10.
Optionally, the computing device 10 may include multiple Central Processing Units (CPUs) for executing software loaded in the memory 12, and other programs for controlling system hardware. Each of the CPUs can be a single or multiple core processor. The code loaded in the memory 12 may run in a virtualized environment, such as in a Virtual Machine (VM). Multiple VM's may be resident on a single processor. Also, part of the application could be run in hardware, for example, by configuring a field programmable gate array (FPGA) or creating an application specific integrated circuit (ASIC).
The storage 13 usually contains software tools for applications. The storage 13 includes, in particular, code 20 for the operating system (OS) of the device 10, code 21 for applications running on the operation system to provide the VoIP environment 1, and data 22. The storage 13 may include plug-in applications 2 in the Web servers. The applications will be described below in more detail with reference to
The input control 14 may interface with a keyboard 18, a mouse 19, and other input devices. The computing device 10 may receive input data through the input control 14. The computing device 10 may display on the display 17 user interfaces for a user to interact with the VoIP environment 1. The modem 15 and network interface 16 enables the client 6 and 7 to communicate with each other through the servers 8 and 9 in the network 4.
The session control 31 is a control agent and contains registrar and location databases. The clients 6 and 7 may register with a local session control 31 in the servers 8 and 9 so that the servers 8 and 9 can determine the locations of the clients 6 and 7. When the clients 6 and 7 are registered with the session control 31, the locations of the clients 6 and 7 are stored in the location databases in the servers 8 and 9. The session control 31 may set up or tear down the session between the clients 6 and 7 using the SIP protocol. The session control 31 may generate and maintain session detail records of a call between the clients 6 and 7.
The session relay 33 provides the media based services, such as transcoding, recording, lawful intercept, etc. The session relay 33 may supply compression and transcoding and support a plurality of codecs including G.711, G729a, G.729b, and GSM for voice, and H.263 and H.264 for video. The session relay 33 may also provide recording services for recording the session between the clients 6 and 7. The call recordings may be stored locally on the session relay 33.
The session gateway 35 bridges a VoIP network and traditional PSTN/PBX infrastructures, and allows a user to place and receive a call with a PBX user or a user of the PSTN network. The session gateway 35 works with standard-based third party analog and digital line adaptors, supporting a variety of interfaces including ISDN, T1/E1 Channel Associated Signaling (CAS), PBX inter-working and Foreign Exchange Office/Subscriber (FXO/S) incorporation. With the session gateway 35, a user can migrate to VoIP, while using the traditional PBX and maintaining communications with the public telephone infrastructure.
The session manage 37 manages the application components. The session manage may be a Web-based application for managing the VoIP services, resources, sessions, users and clients. The session manage may provide a common Web Browser interface for managing the application components and integrating fault, configuration, performance, and security management for the VoIP functions. The session manage may allow a user to manage call handling and voice mail features through a secure Web Browser. The session manage may provide an XML/SOAP interface for integration with third-party or customer-developed management applications and systems. The session manage 37 may provide an interface for displaying session detail records 23 to the user.
The interfaces 43 and 45 acts as a conduit for the delivery of data between the local call control engine 41 and the plug-ins 47 and 49. The session control 31 may provide APIs that enable the plug-ins 43 and 45 to interact with the call control engine 41. The interfaces 43 and 45 may use simple object access protocol (SOAP) to transfer data between the call control engine 41 and the plug-ins 47 and 49. SOAP is a protocol for exchanging XML-based messages over a computer network, normally using HTTP. SOAP forms the foundation layer of the Web services, providing a basic messaging framework that more abstract layers can build on. The interfaces 43 and 45 may use the APIs of the plug-ins 47 and 49 to transfer data to and from the plug-ins 47 and 49.
In the illustrative embodiment, the clients 5 and 6 may register with the session control 31 in the server 8. When a third party requests a call to be established between the clients 5 and 6 (step 61), the call control engine 41 sets up a session between the clients 5 and 6 using the SIP protocol (step 63). The session control 31 checks the location database in the server 8 to authenticate the users and to determine the location of the clients 5 and 6. The session control 31 sends an INVITE message to the client 6 without the session description protocol (SDP). The client 6 sends back an OK message with the SDP of the client 6. The session control 31 then sends an INVITE message to the client 5, and the client 5 sends an OK message to the session control 31 with the SDP of the client 5. The session control 31 sends a RE-INVITE message to the client 6, and the client sends an OK message to the session control 31. After a call is established between the client 5 and 6, the clients 5 and 6 may send voice and/or video streams through the session relay 33 in the server 8 (step 65). For example, the client 6 may send the voice and/or video streams to the session relay 33, and the session relay 33 may forward the streams to the client 5. In a similar fashion, the client 5 may send the voice and/or video streams to the session relay 33, and the session relay 33 may forward the streams to the client 6.
createSession({a,x}, {b,y}, {c,y}, {d,y})
In response to the request, the call control engine 41 sets up a call between the parties a and x, sets up a call between parties b and y, sets up a call between parties c and y, and sets up a call between parties d and y, as described above with reference to
Certain embodiments of the present invention are described above. It is, however, expressly noted that the present invention is not limited to these embodiments, but rather the intention is that additions and modifications to what is expressly described herein also are included within the scope of the invention. Since certain changes may be made without departing from the scope of the present invention, it is intended that all matter contained in the above description or shown in the accompanying drawings be interpreted as illustrative and not in a literal sense. Practitioners of the art will realize that the sequence of steps and architectures depicted in the figures may be altered without departing from the scope of the present invention and that the illustrations contained herein are singular examples of a multitude of possible depictions of the present invention.
This application claims priority to U.S. Provisional Patent Application Ser. No. 60/835,338, filed Aug. 3, 2006, the contents of which are hereby incorporated by reference.
Number | Date | Country | |
---|---|---|---|
60835338 | Aug 2006 | US |