Voice over internet protocol application development framework
Claim Score by NHIP
Abstract
Applying services to calls involving subscribers to a telephony services provider includes receiving an indication of a call placed to or from a first call participant. The indication is received by a telephony services provider over a first signaling path of the call that is established between the telephony services provider and a first telephony proxy server that is controlled by a telephony infrastructure provider. Control signals configured to affect a voice path of the call that is established between the first telephony proxy server and a second telephony proxy server also controlled by the telephony infrastructure provider but associated with a second call participant are identified. The identified control signals are sent to the first telephony proxy server over the first signaling path and to the second telephony proxy server over a second signaling path that is established between the telephony services provider and the second telephony proxy server.

Term
Term ended
Expired 27 December 2024, 1.7 years ago.
- Priority
- Filed
- Granted
- Expired
- Today
66 claims: 7 independent, 59 dependent
- 1A method for applying services to calls placed to or from subscribers to a telephony services provider, the method comprising:receiving, at a first telephony proxy server controlled by a telephony infrastructure provider, a request to place a call to or from a first call participant;identifying a second telephony proxy server also controlled by the telephony infrastructure provider but associated with a second call participant;in response to the request, determining whether the first call participant is a subscriber to telephony services provided by the telephony services provider;if the first call participant is determined to not be a subscriber to telephony services provided by the telephony services provider, establishing a direct signaling path and a direct voice path for the call directly between the first telephony proxy server and the second telephony proxy server bypassing the telephony services provider;and if the first call participant is determined to be a subscriber to telephony services provided by the telephony services provider: (i) establishing a first signaling path for the call between the first telephony proxy server and the telephony services provider, (ii) establishing a second signaling path for the call between the second telephony proxy server and the telephony services provider, (iii) sending an indication of the call to the telephony services provider over the first signaling path, (iv) receiving the indication of the call at the telephony services provider over the first signaling path, (v) identifying, at the telephony services provider, one or more control signals configured to affect a voice path of the call that is established between the first telephony proxy server and the second telephony proxy server, and (vi) sending the identified control signals to the first telephony proxy server over the first signaling path and to the second telephony proxy server over the second signaling path.
- 30A non-transitory machine-accessible medium that when accessed, results in a machine performing operations for applying services to calls placed to or from subscribers to a telephony services provider, comprising:receiving, at a first telephony proxy server controlled by a telephony infrastructure provider, a request to place a call to or from a first call participant;identifying a second telephony proxy server also controlled by the telephony infrastructure provider but associated with a second call participant;in response to the request, determining whether the first call participant is a subscriber to telephony services provided by the telephony services provider;if the first call participant is determined to not be a subscriber to telephony services provided by the telephony services provider, establishing a direct signaling path and a direct voice path for the call directly between the first telephony proxy server and the second telephony proxy server bypassing the telephony services provider;and if the first call participant is determined to be a subscriber to telephony services provided by the telephony services provider: (i) establishing a first signaling path for the call between the first telephony proxy server and the telephony services provider, (ii) establishing a second signaling path for the call between the second telephony proxy server and the telephony services provider, (iii) sending an indication of the call to the telephony services provider over the first signaling path, (iv) receiving the indication of the call at the telephony services provider over the first signaling path, (v) identifying, at the telephony services provider, one or more control signals configured to affect a voice path of the call that is established between the first telephony proxy server and the second telephony proxy server, and (vi) sending the identified control signals to the first telephony proxy server over the first signaling path and to the second telephony proxy server over the second signaling path.
- 31A system for applying services to calls placed to or from subscribers to a telephony services provider, the system comprising:means for receiving, at a first telephony proxy server controlled by a telephony infrastructure provider, a request to place a call to or from a first call participant;means for identifying a second telephony proxy server also controlled by the telephony infrastructure provider but associated with a second call participant;means for, in response to the request, determining whether the first call participant is a subscriber to telephony services provided by the telephony services provider;means for, if the first call participant is determined to not be a subscriber to telephony services provided by the telephony services provider, establishing a direct signaling path and a direct voice path for the call directly between the first telephony proxy server and the second telephony proxy server bypassing the telephony services provider;and means for, if the first call participant is determined to be a subscriber to telephony services provided by the telephony services provider: (i) establishing a first signaling path for the call between the first telephony proxy server and the telephony services provider, (ii) establishing a second signaling path for the call between the second telephony proxy server and the telephony services provider, (iii) sending an indication of the call to the telephony services provider over the first signaling path, (iv) receiving the indication of the call at the telephony services provider over the first signaling path, (v) identifying, at the telephony services provider, one or more control signals configured to affect a voice path of the call that is established between the first telephony proxy server and the second telephony proxy server, and (vi) sending the identified control signals to the first telephony proxy server over the first signaling path and to the second telephony proxy server over the second signaling path.
- 37A method for applying services to calls placed to or from subscribers to a telephony services provider, the method comprising:receiving, at a first telephony proxy server controlled by a telephony infrastructure provider, a request to place a call to or from a first call participant;identifying a second telephony proxy server also controlled by the telephony infrastructure provider but associated with a second call participant;in response to the request, determining whether the first call participant is a subscriber to telephony services provided by the telephony services provider;if the first call participant is determined to not be a subscriber to telephony services provided by the telephony services provider, establishing a direct signaling path and a direct voice path for the call directly between the first telephony proxy server and the second telephony proxy server bypassing the telephony services provider;and if the first call participant is determined to be a subscriber to telephony services provided by the telephony services provider: (i) establishing a first signaling path for the call between the first telephony proxy server and the telephony services provider, (ii) establishing a second signaling path for the call between the second telephony proxy server and the telephony services provider, (iii) sending an indication of the call to the telephony services provider over the first signaling path, (iv) receiving, at the first telephony proxy server and over the first signaling path, one or more first control signals from the telephony services provider configured to affect a voice path of the call that is established between the first telephony proxy server and the second telephony proxy server, and (v) receiving, at the second telephony proxy server and over the second signaling path, one or more second control signals from the telephony services provider configured to affect the voice path of the call that is established between the first telephony proxy server and the second telephony proxy server.
- 38Broadest claimClaim Score 40, average(NHIP)A method for applying services to calls placed to or from subscribers to a telephony services provider, the method comprising:receiving an indication of a call placed to or from a first call participant, the indication being received by a telephony services provider over a first signaling path of the call that is conditionally established between the telephony services provider and a first telephony proxy server that is controlled by a telephony infrastructure provider;identifying, at the telephony services provider, one or more control signals configured to affect a voice path of the call that is established between the first telephony proxy server and a second telephony proxy server and sending the identified control signals to the first telephony proxy server over the first signaling path and to the second telephony proxy server over a second signaling path that is conditionally established between the telephony services provider and the second telephony proxy server, wherein the first signaling path and the second signaling path being conditionally established comprises: the first signaling path and the second signaling path not being established by the telephony infrastructure provider if the first call participant is determined to not be a subscriber to telephony services provided by the telephony services provider and instead a direct signaling path being established by the telephony infrastructure provider between the first telephony proxy server and the second telephony proxy server bypassing the telephony services provider, and the first signaling path and the second signaling path being established by the telephony infrastructure provider if the first call participant is determined to be a subscriber to telephony services provided by the telephony services provider.
- 39A method comprising:accessing, by a telephone service provider, user-specific preferences associated with a first user of services provided by the telephone services provider;presenting, within a graphical user interface and based on the accessed preferences associated with the first user, a communications dashboard for the first user, the communications dashboard comprising at least a recent communications indicator and one or more options for providing call-handling preferences;receiving, by the telephone services provider, an indication of a telephone call initiated between the first user and a second user;determining whether the second user is a subscriber to the telephone services provider;if the second user is not a subscriber to the telephone services provider, establishing a direct signaling path and a direct voice path for the telephone call directly between a first telephony proxy server and a second telephony proxy server bypassing the telephone services provider;and if the second user is a subscriber to the telephone services provider: establishing a first signaling path for the telephone call between the first telephony proxy server and the telephone services provider, establishing a second signaling path for the telephone call between the second telephony proxy server and the telephone services provider, identifying, at the telephone services provider, one or more control signals configured to affect a voice path of the telephone call that is established between the first telephony proxy server and the second telephony proxy server, and sending the identified one or more control signals to the first telephony proxy server over the first signaling path and the second telephony proxy server over the second signaling path.
- 59A method comprising:receiving, by a telephony infrastructure provider at a gateway router, an indication of a telephone call initiated between a first user and a second user;identifying, by the telephone infrastructure provider, at least one of the first user and the second user;determining, by the telephony infrastructure provider, that at least one of the first user and the second user is associated with a separate telephone services provider;receiving, by the telephony infrastructure provider from the telephone services provider, data representative of instructions for handling the telephone call, wherein the instructions are based on user-specific data associated with at least one of the first user and the second user, and wherein the user-specific data comprises data received from the first user or the second user by way of a graphical user interface, wherein the graphical user interface comprises one or more options associated with one or more contacts of the first user, and wherein the user-specific data comprises call-handing preferences for the one or more contacts;determining whether the second user is a subscriber to the telephone services provider;if the second user is not a subscriber to the telephone services provider, establishing a direct signaling path and a direct voice path for the telephone call directly between a first telephony proxy server and a second telephony proxy server bypassing the telephone services provider;and if the second user is a subscriber to the telephone services provider: establishing a first signaling path for the telephone call between the first telephony proxy server and the telephone services provider, establishing a second signaling path for the telephone call between the second telephony proxy server and the telephone services provider, identifying, at the telephone services provider, one or more control signals configured to affect a voice path of the telephone call that is established between the first telephony proxy server and the second telephony proxy server, and sending the identified one or more control signals to the first telephony proxy server over the first signaling path and the second telephony proxy server over the second signaling path.
Independent claims7
105 paragraphs in 6 sections, as filed
CROSS REFERENCE TO RELATED APPLICATIONS
This application claims the benefit of U.S. Provisional Application No. 60/577,216, filed Jun. 7, 2004, and titled “Voice over Internet Protocol Application Development Framework,” the entire contents of which are incorporated by reference in its entirety.
TECHNICAL FIELD
This document relates to systems that provide telephone services using Voice over Internet Protocol (VoIP).
BACKGROUND
In a typical VoIP communications system, a network services provider (i.e., the owner and manager of a network/telephony infrastructure) and a telephone services provider (i.e., a customer-facing provider of telephony services) work together to offer VoIP services to customers over a data network. The network services provider controls the physical media through which the VoIP data travels (e.g., the fiber-optic network and the optical networking equipment) and the proxy servers and voice gateway routers that direct and control the flow of VoIP data. The underlying system is generally capable of creating a basic communications session, with assistance of the telephone services provider in the form of subscriber identifying information (e.g., a telephone number). The telephone services provider typically develops the voice applications that enable the proxy servers and voice gateway routers to handle VoIP calls in accordance with the VoIP telephone services offered by the telephone services provider. The telephone services provider also controls back-end computer systems that may be accessed by the proxy servers or voice gateway routers in response to procedure calls generated while executing a voice application. The back-end computer systems typically store customer-specific, voice-services-related configuration data.
The proxy servers and the voice gateway routers manage the voice paths of VoIP calls and the signaling used to setup and tear down the VoIP calls in accordance with the voice applications developed by the telephone services provider. The voice applications are typically scripts containing Application Programming Interface (API) commands that, when executed by a voice gateway router, manage a VoIP call in accordance with a VoIP service offered to a customer. More particularly, call signals arrive at the voice gateway router, and the voice gateway router processes the signals in a predefined manner that is indicated by the API-based voice applications. At well defined points in the processing of the messaging, the voice gateway router may use API commands to retrieve particular pieces information required by the voice applications. The API commands facilitate development of voice applications and, hence, VoIP services by providing building blocks that may be put together to construct voice applications that offer typical voice services.
SUMMARY
In one general aspect, applying services to calls placed to or from subscribers to a telephony services provider includes receiving an indication of a call placed to or from a first call participant. The indication is received by a telephony services provider over a first signaling path of the call that is established between the telephony services provider and a first telephony proxy server that is controlled by a telephony infrastructure provider. One or more control signals configured to affect a voice path of the call that is established between the first telephony proxy server and a second telephony proxy server also controlled by the telephony infrastructure provider but associated with a second call participant are identified. The identified control signals are sent to the first telephony proxy server over the first signaling path and to the second telephony proxy server over a second signaling path that is established between the telephony services provider and the second telephony proxy server.
Implementations may include one or more of the following features. For example, identifying the control signals may include accessing an indication of whether the first call participant may participate in the call based upon information stored on a back-end system controlled by the telephony services provider related to the first call participant to or from whom the call is placed. A determination may be made as to whether the first call participant is available to participate in the call based upon the accessed indication, and the control signals may be identified based upon the determination of whether the first call participant may participate in the call.
Identifying the control signals may include accessing information to be presented to the first call participant during the call based upon information stored on a back-end system controlled by the telephony services provider related to the first call participant to or from whom the call is placed. Control signals configured to present the accessed information to the first call participant may be identified.
Identifying the control signals may include accessing an indication of availability of the first call participant to place and receive calls based upon information stored on a back-end system controlled by the telephony services provider related to the first call participant to or from whom the call is placed. The control signals may be identified based upon the accessed indication of availability.
Identifying the control signals may include accessing an indication of an activity undertaken by the first call participant at a time at which the indication of the call is received by the telephony services provider based upon information stored on a back-end system controlled by the telephony services provider related to the first call participant to or from whom the call is placed. The control signals may be identified based upon the accessed indication of the activity.
Identifying the control signals may include determining whether the activity is an activity during which the first call participant may or may not participate in the call. The control signals may be identified based upon the determination of whether the first call participant may or may not participate in the call. Accessing an indication of an activity may include accessing an indication of at least one activity from among a list of activities including participation in an event from an electronic calendar of the first call participant, participation in another call, communication with another entity, sending and receiving instant messages, and sending and receiving e-mail messages.
Identifying the control signals may include accessing at least one indication of a time at which a call to the first call participant is to be blocked or allowed based upon information stored on a back-end system controlled by the telephony services provider related to the first call participant to or from whom the call is placed. A present time may be compared to the time at which a call to the first call participant is to be blocked or allowed, and the control signals may be identified based upon the comparison.
Identifying the control signals may include accessing an indication of an amount of time for which the first call participant has participated in phone calls and a maximum allowable amount of time for which the first call participant may participate in telephone calls based upon information stored on a back-end system controlled by the telephony services provider related to the first call participant to or from whom the call is placed. The amount of time for which the first call participant has participated in phone calls may be compared to the maximum allowable amount of time, and the control signals may be identified based upon the comparison.
Identifying the control signals may include accessing an indication of a parental control that has been specified for the first call participant based upon information stored on a back-end system controlled by the telephony services provider related to the first call participant to or from whom the call is placed. The control signals may be identified based upon the accessed indication of the parental control.
Identifying the control signals may include accessing at least one indication of a person to or from whom calls are allowed or blocked based upon information stored on a back-end system controlled by the telephony services provider related to the first call participant to or from whom the call is placed. The second call participant may be compared to the person to or from whom calls are allowed or blocked, and the control signals may be identified based upon the determination of whether the first call participant may participate in the call.
Identifying the control signals may include enabling the first call participant or a guardian or supervisor of the first call participant to specify information stored on a back-end system controlled by the telephony services provider related to the first call participant to or from whom the call is placed that is accessed for use in identifying the control signals. The control signals may be identified based upon the specified information. Enabling the first call participant or a guardian or supervisor of the first call participant to specify the information may include presenting to the first call participant or to guardian or supervisor of the first call participant a graphical user interface with which the first call participant or the guardian or supervisor of the first call participant may specify the information. Identifying the control signals may include accessing at least one call handling preference that has been specified by the first call participant prior to a time at which the indication of the call is received by the telephony services provider based upon information stored on a back-end system controlled by the telephony services provider related to the first call participant to or from whom the call is placed. The control signals may be identified based upon the accessed call handling preference.
Identifying the control signals may include may include accessing at least one call handling preference that has been specified by a supervisor or a guardian of the first call participant prior to a time at which the indication of the call is received by the telephony services provider based upon information stored on a back-end system controlled by the telephony services provider related to the first call participant to or from whom the call is placed. The control signals may be identified based upon the accessed call handling preference.
Identifying the control signals may include updating information stored on a back-end system controlled by the telephony services provider that is accessed when identifying the control signals based upon the identified control signals. The updated information may indicate a status of the first call participant as a result of processing of the identified control signals. Control signals for future calls may be identified based upon the updated information. Updating the information based upon the identified control signals may include updating the information to include at least one indication from a list of indications including an indication of availability of the first call participant to place and receive a call, an indication of an activity undertaken by the first call participant, an indication of a time at which the first call participant may or may not place or receive a call, an indication of a person with which the first call participant may or may not participate in a call, an indication of an amount of time for which the first call participant has participated in calls, an indication of a call handling preference, or an indication of a parental control.
Identifying the control signals may include identifying control signals to cause identification of the first or second call participant who placed the call to be presented to a call recipient before the voice path is established therebetween. Identifying the control signals may include identifying control signals to cause an incoming call notification to be delivered to an intended recipient when the intended recipient is occupied with an ongoing but different call and to enable the intended recipient to interrupt the ongoing but different call to handle the incoming call. Identifying control signals to cause an incoming call notification to be delivered to an intended recipient may include identifying control signals to cause the incoming call notification that identifies the first or second call participant who placed the call to the intended recipient to be delivered to the intended recipient.
Identifying the control signals may include identifying control signals to cause the call to be delivered to an intended recipient, identifying control signals to cause the call to ring busy for the first or second call participant who placed the call, or identifying control signals to cause the call to be forwarded to a system different than a system to which the call was to be routed originally, such as a voicemail system. Identifying the control signals may include identifying control signals to cause the call to be blocked such that an intended recipient of the call does not receive the call, identifying control signals to cause an alert of the call to be presented to the first call participant, or identifying control signals to cause a pre-recorded message to be played to the first or second call participant who placed the call or an intended call recipient.
The voice path may be established between the first telephony proxy server and a second telephony proxy server based on the control signals.
The identified signals may conform to the Session Initiation Protocol (SIP).
These general and specific aspects may be implemented using a system, a method, or a computer program, or any combination of systems, methods, and computer programs.
Other features will be apparent from the description and drawings, and from the claims.
DESCRIPTION OF DRAWINGS
<figref idref="DRAWINGS">FIG. 1</figref> is a block diagram of a communications system for providing telephone services.
<figref idref="DRAWINGS">FIG. 2</figref> is a flow chart of a process for controlling a telephone call.
<figref idref="DRAWINGS">FIG. 3</figref> is a flow chart of a process for identifying control signals for applying services to a telephone call.
<figref idref="DRAWINGS">FIG. 4</figref> is a flow chart of a process for retrieving control signals for application to a telephone call.
<figref idref="DRAWINGS">FIG. 5</figref> is a block diagram of a telephony services provider that provides services for controlling telephone calls.
<figref idref="DRAWINGS">FIG. 6</figref> is a flow chart of a process for identifying control signals for a telephone call using the telephony services provider of <figref idref="DRAWINGS">FIG. 5</figref>.
<figref idref="DRAWINGS">FIG. 7</figref> is an illustration of an interface for presenting information related to call handling services.
Like reference symbols in the various drawings indicate like elements.
DETAILED DESCRIPTION
An enhanced VoIP communications system enables a telephone services provider to directly generate and process the signaling information (e.g., SIP commands/information) used to setup and tear down VoIP calls. The enhanced VoIP communications system provides greater flexibility by allowing the telephone services provider to rapidly develop voice applications that include features not available through use of existing APIs, and to redefine the format of the voice application procedure calls to back-end systems. Moreover, the enhanced VoIP communications system enables development of voice applications that include references to back-end systems prior to a determination of the type of voice service associated with the call. The call management and signal processing may then be entirely determined by the customer-specific and other contextual data stored in the back-end systems.
The enhanced VoIP communications system is advantageous over a typical VoIP communications system in which APIs are used to develop voice services to be applied to telephone calls. Since the enhanced VoIP communications system does not use APIs to develop the voice services, a telephone services provider is not limited to providing services that may be developed using the predefined set of APIs and corresponding procedure calls. Therefore, development of voice applications is not limited by API development, which would be required for applications that include features that are not covered by the existing set of APIs. Developing new APIs may slow down the application development process significantly. The kinds of call treatments that can be applied to a particular session in the enhanced VoIP communications system is not limited by the APIs. More particularly, alternative call treatments are not limited to those stored away from the telephone service provider. The telephone service provider may apply concurrent, asynchronous activity taking place in the telephone service provider's environment to affect the session in progress, without explicitly anticipating the asynchronous activity in the application.
Referring to <figref idref="DRAWINGS">FIG. 1</figref>, an enhanced communications system <b>100</b> provides VoIP telephone services through use of voice applications that directly process signaling information used to establish VoIP calls. The communications system <b>100</b> controls calls placed between a caller telephone <b>105</b>a and a call recipient telephone <b>105</b>b. The call is serviced by a telephony infrastructure provider <b>110</b> that receives instructions for handling the call from a telephony services provider <b>115</b>. The telephony infrastructure provider <b>110</b> includes a data network <b>120</b> and voice gateway routers <b>125</b>a and <b>125</b>b. The voice gateway routers <b>125</b>a and <b>125</b>b include respective user databases <b>130</b>a and <b>130</b>b and respective mappings <b>135</b>a and <b>135</b>b. The voice gateway routers <b>125</b>a and <b>125</b>b establish a voice path <b>140</b> between themselves and respective signaling paths <b>145</b>a and <b>145</b>b between each of them and the telephony services provider <b>115</b>. The telephony services provider <b>115</b> includes a telephony services signal processing system <b>150</b> and a telephony services back-end system <b>155</b>. The telephones <b>105</b>a and <b>105</b>b communicate with the telephony infrastructure provider <b>110</b> through respective optional delivery systems <b>160</b>a and <b>160</b>b, respectively.
The caller telephone <b>105</b>a is configured to place a call to, or to receive a call from, the call recipient telephone <b>105</b>b using the telephony infrastructure provider <b>110</b>. Each of the telephones <b>105</b>a and <b>105</b>b may be a landline or wireline phone, a wireless phone, a cellular phone, a mobile personal digital assistant (PDA) with embedded cellular phone technology, or a soft phone, which is a telephone integrated into a computer system. Alternatively or additionally, each of the telephones <b>105</b>a and <b>105</b>b may be integrated into a client computer system.
The telephony infrastructure provider <b>110</b> provides infrastructure that may be used to operate calls between the telephones <b>105</b>a and <b>105</b>b. The telephony infrastructure provider <b>110</b> does not determine how the calls between the telephones <b>105</b>a and <b>105</b>b should be controlled. Instead, the telephony infrastructure provider <b>110</b> relies on the telephony services provider <b>115</b> to indicate how the calls should be controlled. In one implementation, communications between the components of the telephony infrastructure provider <b>110</b> are packet-based communications that use Internet Protocol (IP).
The telephony services provider <b>115</b> determines how the calls between the telephones should be controlled. The telephony services provider <b>115</b> instructs the telephony infrastructure provider <b>110</b> to control a call between the telephones <b>105</b>a and <b>105</b>b in an identified manner. The telephony services provider <b>115</b> determines how to control the call based on information that may be accessed only by the telephony services provider <b>115</b> and not by the telephony infrastructure provider <b>110</b>. The telephony services provider may provide Session Initiation Protocol (SIP) signals, H.323 signals, Media Gateway Control Protocol (MGCP) signals, Media Gateway Control (Megaco) signals, Simple Gateway Control Protocol (SGCP) signals, or other types of call handling signals to the telephony infrastructure provider <b>110</b> to identify how the call should be handled. In one implementation, the telephony services provider <b>115</b> also is an Internet service provider (ISP), and the information that may be accessed only by the telephony services provider may relate to Internet use of customers of the ISP, as well as to other services provided by the ISP. In such implementations, users of the telephones <b>105</b>a and <b>105</b>b may be customers of the ISP. As a result, the ISP may provide information relating to Internet use of the users to the telephones <b>105</b>a and <b>105</b>b. Furthermore, information describing phone usage and call handling preferences of the users may be presented to the users when the users access the ISP, for example, with a computer.
The data network <b>120</b> is configured to enable direct or indirect communications between the voice gateway routers <b>125</b>a and <b>125</b>b. The data network <b>120</b> may include, for example, one or more of the Internet, Wide Area Networks (WANs), Local Area Networks (LANs), analog or digital wired and wireless telephone networks (e.g., Public Switched Telephone Network (PSTN), Integrated Services Digital Network (ISDN), and Digital Subscriber Line (xDSL)), radio, television, cable, satellite, and/or any other delivery or tunneling mechanism for carrying data.
The voice gateway routers <b>125</b>a and <b>125</b>b route calls between the telephones <b>105</b>a and <b>105</b>b. The voice gateway router <b>125</b>a is associated with the telephone <b>105</b>a and with a user of the telephone <b>105</b>a, and the voice gateway router <b>125</b>b is associated with the telephone <b>105</b>b and with a user of the telephone <b>105</b>b. When the voice gateway router <b>125</b>a receives a call placed from the telephone <b>105</b>a to the telephone <b>105</b>b serviced by the voice gateway router <b>125</b>b, the voice gateway router <b>125</b>a determines if the call was placed by a user whose calls are controlled by the telephony services provider <b>115</b>. If so, then the call is routed to the telephony services provider <b>115</b> such that the telephony services provider <b>115</b> may control the call. If not, then the call is routed to the voice gateway router <b>125</b>b, which services the telephone <b>105</b>b, such that the call may be handled normally. The voice gateway router <b>125</b>b operates in a corresponding manner when a call is placed from the telephone <b>105</b>b to the telephone <b>105</b>a. When a call is handled by the telephony services provider <b>115</b>, the voice gateway routers <b>125</b>a and <b>125</b>b receive call handling signals from the telephony services provider <b>115</b>. The voice gateway routers <b>125</b>a and <b>125</b>b execute the received call handling signals to handle the call in a manner identified by the telephony services provider <b>115</b>. The voice gateway routers <b>125</b>a and <b>125</b>b also may be referred to as edge proxy servers or PSTN gateways.
The user databases <b>130</b>a and <b>130</b>b enable the voice gateway routers <b>125</b>a and <b>125</b>b, respectively, to determine whether received calls should be handled by the telephony services provider <b>115</b>. More particularly, the user databases <b>130</b>a and <b>130</b>b include indications of users of telephones serviced by the voice gateway routers <b>125</b>a and <b>125</b>b, respectively, whose calls are controlled by the telephony services provider <b>115</b>. When a call is received at one of the voice gateway routers <b>125</b>a and <b>125</b>b, the voice gateway router may determine that the call should be routed to the telephony services provider <b>115</b> when one or more people involved in the call are included in the corresponding user database. The people involved in the call may be identified based on information included in the call, such as the source and destination phone numbers for the call.
The mappings <b>135</b>a and <b>135</b>b enable the voice gateway routers <b>125</b>a and <b>125</b>b to route calls to telephones serviced by the voice gateway routers <b>125</b>a and <b>125</b>b, respectively. More particularly, the mappings <b>135</b>a and <b>135</b>b relate phone numbers to IP addresses of telephones that correspond to the phone numbers. Each of the mappings <b>135</b>a and <b>135</b>b includes entries for each telephone serviced by the corresponding voice gateway routers <b>125</b>a and <b>125</b>b. For example, the voice gateway router <b>125</b>a may use the mapping <b>135</b>a to identify an IP address of the telephone <b>105</b>a when the voice gateway router <b>125</b>a receives a call to the telephone <b>105</b>a from, for example, the telephone <b>105</b>b. In one implementation, the voice gateway router <b>125</b>b may route the call from the telephone <b>105</b>b to the voice gateway router <b>125</b>a based on characteristics of the phone number or the location to which the call is placed. For example, the telephone <b>105</b>a may be serviced by the voice gateway router <b>125</b>a as a result of being in a particular location or having a particular phone number. In another implementation, the voice gateway router <b>125</b>b may route the call to the voice gateway router <b>125</b>a because the voice gateway router <b>125</b>a may have informed the voice gateway router <b>125</b>b that the voice gateway router <b>125</b>a services the telephone <b>105</b>a. The voice gateway router <b>125</b>b may use the mapping <b>135</b>b to route calls to the telephone <b>105</b>b in a corresponding manner.
Voice data for a call between the telephones <b>105</b>a and <b>105</b>b is sent between the voice gateway routers <b>125</b>a and <b>125</b>b through the network over the voice path <b>140</b>. In addition, signals for controlling the call may be sent over signaling paths <b>145</b>a and <b>145</b>b. The signaling paths <b>145</b>a and <b>145</b>b are established when the call is to be handled by the telephony services provider <b>115</b>. Otherwise, a signaling path is established between the voice gateway routers <b>125</b>a and <b>125</b>b.
The telephony services signal processing system <b>150</b> identifies call handling signals that are used by the voice gateway routers <b>125</b>a and <b>125</b>b to control a call between the telephones <b>105</b>a and <b>105</b>b. The telephony services signal processing system <b>150</b> preferably includes one or more applications that may cause the call to be controlled in a particular manner, by producing call handling signals for the call. One or more of the applications may be selected for execution based on call handling preferences of a user involved in the call.
The call handling preferences, as well as other information needed by the selected applications, may be accessed from the telephony services back-end system <b>155</b>. In implementations where the telephony services provider <b>115</b> also is an ISP, the telephony services back-end system <b>155</b> may include information relating to how the user involved in the call uses the ISP. For example, the information may include indications of people with which the user may or may not communicate, events from an electronic calendar of the user, availability of the user, an activity undertaken by the user, times at which calls to the user are blocked or allowed, a maximum allowable amount of time for which the user may participate in telephone calls, and parental controls.
In some implementations, the telephones <b>105</b>a and <b>105</b>b are VoIP telephones that may communicate directly with the telephony infrastructure provider <b>110</b>, for example, using the voice gateway routers <b>125</b>a and <b>125</b>b. In such implementations, the delivery systems <b>160</b>a and <b>160</b>b are not required. In other implementations, the telephones <b>105</b>a and <b>105</b>b are circuit-switched telephones, in which case the delivery systems <b>160</b>a and <b>160</b>b are needed to enable the telephones <b>105</b>a and <b>105</b>b to communicate with the telephony infrastructure provider <b>110</b>. The delivery systems <b>160</b>a and <b>160</b>b convert circuit-switched data from the telephones <b>105</b>a and <b>105</b>b into packets of data that may be used by the telephony infrastructure provider <b>110</b>. Each of the delivery systems <b>160</b>a or <b>160</b>b may be a public switched telephone network (PSTN) or a private branch exchange (PBX) that that may communicate with the telephony services provider <b>115</b>. Alternatively or additionally, each of the delivery systems <b>160</b>a and <b>160</b>b may be an adapter configured to convert data from a circuit-switched telephone into data that may be used by the telephony infrastructure provider <b>110</b>.
<figref idref="DRAWINGS">FIG. 2</figref> is a flow chart of a process <b>200</b> for handling a call in the enhanced communications system <b>100</b>. The call is placed from a telephone serviced by a first voice gateway router <b>125</b>a to a telephone serviced by a second voice gateway router <b>125</b>b. A signaling path for the call is routed through a telephony services signal processing system <b>150</b>. The telephony services signal processing system <b>150</b> identifies signals for controlling the telephone calls, and the identified signals are sent to the voice gateway routers <b>125</b>a and <b>125</b>b to establish or control a voice path between the voice gateway routers <b>125</b>a and <b>125</b>b.
The process begins when the voice gateway router <b>125</b>a receives a call from a locally serviced telephone (<b>205</b>). For example, the voice gateway router <b>125</b>a may receive the call from the caller telephone <b>105</b>a of <figref idref="DRAWINGS">FIG. 1</figref>. In implementations where the locally serviced telephone is not a VoIP telephone, the call may be received through a delivery system, such as the delivery system <b>160</b>a of <figref idref="DRAWINGS">FIG. 1</figref>. The voice gateway router <b>125</b>a determines whether the call should be routed through the telephony services signal processing system <b>150</b>. Such a determination may be based on a user database maintained by the voice gateway router <b>125</b>a, such as the user database <b>130</b>a of <figref idref="DRAWINGS">FIG. 1</figref>. The user database identifies people whose calls are specially handled by the telephony services signal processing system <b>150</b>. The voice gateway router <b>125</b>a may identify people involved in the call based on, for example, phone numbers or IP addresses associated with the call. If the identified people are found in the user database, then the call may be routed through the telephony services signal processing system <b>150</b>.
When the call is to be routed through the telephony services signal processing system <b>150</b> such that the telephony services signal processing system <b>150</b> may control the call, the voice gateway router <b>125</b>a builds a signaling path to the telephony services signal processing system <b>150</b> (<b>210</b>). In response, the telephony services signal processing system <b>150</b> builds signaling paths to the voice gateway routers <b>125</b>a and <b>125</b>b (<b>215</b>), and the voice gateway router builds a signaling path to the telephony services signal processing system <b>150</b> (<b>220</b>). As a result, the telephony services signal processing system <b>150</b> may send signals for controlling the call to the voice gateway routers over the signaling paths that have been established.
The voice gateway router <b>125</b>a sends an indication of the call to the telephony services signal processing system <b>150</b> over the signaling path to the telephony services signal processing system <b>150</b> (<b>225</b>). The indication of the call may include a telephone number or an IP address from which the call was placed, a telephone number or an IP address to which the call was placed, identifiers of people involved in the call, and a time at which the call was placed. The telephony services signal processing system <b>150</b> receives the indication of the call from the voice gateway router <b>125</b>a over the signaling path (<b>230</b>).
The telephony services signal processing system <b>150</b> uses the received indication of the call to identify signals for controlling the call (<b>235</b>). The telephony services signal processing system <b>150</b> may identify the signals by executing one or more call handling applications included in the telephony services signal processing system <b>150</b>. The applications may use information that may be accessed from a telephony services back-end system, such as the telephony services back-end system <b>155</b> of <figref idref="DRAWINGS">FIG. 1</figref>. The call handling applications that are executed by the telephony services signal processing system <b>150</b> may be selected based on call handling preferences for a participant of the call. The chosen applications identify the signals such that the call is controlled in a manner that is consistent with the call handling preferences.
The telephony services signal processing system <b>150</b> sends the identified signals to the voice gateway routers <b>125</b>a and <b>125</b>b over the signaling paths <b>145</b>a and <b>145</b>b that have been established to the voice gateway routers <b>125</b>a and <b>125</b>b (<b>240</b>). The voice gateway routers <b>125</b>a and <b>125</b>b receive the signals from the telephony services signal processing system <b>150</b> (<b>245</b>, <b>250</b>). In one implementation, the telephony services signal processing system <b>150</b> sends only the signals to be used by the voice gateway router <b>125</b>a to the voice gateway router <b>125</b>a, and only the signals to be used by the voice gateway router <b>125</b>b to the voice gateway router <b>125</b>b.
The voice gateway routers <b>125</b>a and <b>125</b>b use the received signals to establish and/or control a voice path <b>140</b> between the voice gateway routers <b>125</b>a and <b>125</b>b (<b>255</b>, <b>260</b>). For example, if the received signals indicate that the call should be allowed without restriction, then the voice path is established such that the people involved in the call may communicate over the voice path. In addition, other audio data, such as alerts and ring tones, may be presented to the people involved in the call over the voice path, as may be indicated by the received signals.
As the call is operating, the telephony services signal processing system <b>150</b> may continue to identify additional signals for controlling the call, and the identified signals may be sent to the voice gateway routers <b>125</b>a and <b>125</b>b. The additional signals may be identified at any time, in response to any stimuli deemed important to the call or the participants of the call. Among these stimuli are dynamic, evolving context of the call, the participants, or external factors that affect or are affected by the session. The additional signals may be identified using any application included in the telephony services signal processing system <b>150</b> that applies to the call or to the participants. After the call has been completed, the voice gateway routers <b>125</b>a and <b>125</b>b may tear down the voice path and the signaling paths.
In the implementation of the process <b>200</b> illustrated in <figref idref="DRAWINGS">FIG. 2</figref>, the voice gateway router <b>125</b>a sends to the telephony services signal processing system <b>150</b> an indication of the call because calls to or from a user that placed the calls are controlled by the telephony services signal processing system <b>150</b>. In such an implementation, the voice gateway router <b>125</b>b may not receive an indication of the call until the telephony services signal processing system <b>150</b> establishes a signaling path to the voice gateway router. In other implementations of the process <b>200</b>, the voice gateway router <b>125</b>b may send the telephony services signal processing system <b>150</b> an indication of the call, even though the call was placed from a telephone serviced by the voice gateway router <b>125</b>a, because calls to or from a user to which the call was placed are controlled by the telephony services signal processing system <b>150</b>. In such implementations, the voice gateway router <b>125</b>a may establish a signaling path and may forward an indication of the call to the voice gateway router <b>125</b>b. Upon a determination that the call is to be controlled, the voice gateway router <b>125</b>b may tear down the signaling path to the voice gateway router <b>125</b>a, and may forward an indication of the call to the telephony services signal processing system <b>150</b>.
Referring to <figref idref="DRAWINGS">FIG. 3</figref>, a process <b>300</b> is used to identify signals for controlling a received call. The process <b>300</b> may be executed by a telephony services signal processing system of a telephony services provider, such as the telephony services signal processing system <b>150</b> of <figref idref="DRAWINGS">FIG. 1</figref>. The telephony services signal processing system is an entity distinct from a telephony infrastructure provider that operates the call in accordance with the identified signals. The telephony services signal processing system identifies the signals using information that may not be accessed by the telephony infrastructure provider.
The process <b>300</b> begins when the telephony services provider receives an indication of a call placed to or from a user whose calls are controlled by the telephony services provider (<b>305</b>). The indication of the call is received from a voice gateway router that services an origin or a destination of the call. More particularly, the indication of the call is received from a voice gateway router that services a telephone that is used by a user whose calls are controlled by the telephony services signal processing system <b>150</b>. The indication of the call may be received over a signaling path that has been established between the voice gateway router and the telephony services signal processing system <b>150</b>.
The telephony services signal processing system accesses information describing call handling preferences of the user (<b>310</b>). The information may be accessed from a telephony services back-end system, such as the telephony services back-end system <b>155</b> of <figref idref="DRAWINGS">FIG. 1</figref>. The call handling preferences for the user may indicate times at which the user desires and does not desire to receive calls. The times at which the user may and may not receive the calls may be indicated by electronic calendar events maintained in an electronic calendar of the user. The call handing preferences also may indicate people with whom the user may or may not desire to communicate. The people may be indicated by contact lists maintained by the user, such as an e-mail address book or an instant messaging buddy list of the user. The call handling preferences may indicate that alerts and reminders of, for example, tasks and calendar events are to be presented to the user while the user is participating in a telephone call.
The telephony services signal processing system identifies signals indicating how the call is to be handled based on the accessed information (<b>315</b>). The signals may be identified through execution of one or more applications included in the telephony services signal processing system. Each of these applications identifies signals for handling the call in a particular manner. The applications that are executed to identify the signals may be selected in a manner indicated by the call handling preferences accessed for the user. For example, if the call handling preferences indicate that the user is to be provided with reminders of events from an electronic calendar maintained by the user while the user is participating in a call, an application for providing the user with the reminders may be executed. The applications may access information from the telephony services back-end system while executing. For example, the application for providing the user with the reminders may access the electronic calendar event for which a reminder is to be provided from the telephony services back-end system.
The identified signals are sent to voice gateway routers that service telephones involved in the call (<b>320</b>). The voice gateway routers execute the signals to control the call in the manner identified by the telephony services signal processing system. Using the example from above, executing the received signals may result in the user being provided with the reminder of the calendar event.
Referring to <figref idref="DRAWINGS">FIG. 4</figref>, a process <b>400</b> is used to retrieve signals for controlling a call. The process <b>400</b> may be executed by a voice gateway router of a telephony infrastructure provider, such as one of the voice gateway routers <b>125</b>a and <b>125</b>b of <figref idref="DRAWINGS">FIG. 1</figref>. When a query is to be handled by a telephony services provider, such as the telephony services provider <b>115</b> of <figref idref="DRAWINGS">FIG. 1</figref>, the voice gateway router retrieves signals for controlling the call from the telephony services provider. Otherwise, the call is handled normally without retrieving signals from the telephony services provider.
The voice gateway router first receives a call from a locally serviced telephone (<b>405</b>). The call may be received directly from the telephone, or from a delivery system that connects the telephone to the voice gateway router, such as one of the delivery systems <b>160</b>a and <b>160</b>b of <figref idref="DRAWINGS">FIG. 1</figref>. The voice gateway router identifies a person that placed the call (<b>410</b>). The voice gateway router may identify people involved in the call, based on, for example, phone numbers or IP addresses of the locally serviced telephone from which the call was placed.
The voice gateway router determines whether the call was placed by a user of the telephony services provider (<b>415</b>). In other words, the voice gateway router determines whether the person that placed the call is a person whose calls are controlled by the telephony services provider. The voice gateway router may make such a determination by searching for an indication of the person that placed the call in a local user database, such as one of the user databases <b>130</b>a and <b>130</b>b of <figref idref="DRAWINGS">FIG. 1</figref>. If an indication of the person is found in the user database, then the person is a user of the telephony services provider. Otherwise, the person is not a user of the telephony services provider.
If the person is a user of the telephony services provider, then the voice gateway router builds a signaling path to the telephony services provider (<b>420</b>). The voice gateway router may know the location of the telephony services provider and, consequently, may be able to build the signaling path directly to the telephony services provider. The voice gateway router queries the telephony services provider over the signaling path for signals indicating how the call should be handled (<b>425</b>). The voice gateway router may query the telephony services provider for the signals by providing an indication of the call to the telephony services provider over the signaling path.
In response to the query, the telephony services provider identifies the signals, as described above with respect to <figref idref="DRAWINGS">FIG. 3</figref>. The telephony services provider sends the identified signals to the voice gateway router, and the voice gateway router receives the signals (<b>430</b>). The voice gateway router then handles the call as indicated by the received signals (<b>435</b>). More particularly, the voice gateway router executes the received signals such that the call is handled in a manner identified by the telephony services provider.
If the person is not a user of the telephony services provider (<b>415</b>), then the voice gateway router handles the call normally without involving the telephony services provider. More particularly, the voice gateway router identifies a voice gateway router that services the telephone to which the call was placed (<b>440</b>). The voice gateway router may identify the voice gateway router that services the telephone to which the call was placed based on characteristics of the telephone. For example, the voice gateway router first may identify a phone number or a location to which the call was placed from the indication of the call received from the locally serviced telephone. The voice gateway router then may identify the corresponding voice gateway router based on the identified phone number or location.
The voice gateway router then builds a signaling path for the call directly to the voice gateway router that services the telephone to which the call was placed (<b>445</b>), and also builds a voice path for the call directly to the same voice gateway router (<b>450</b>). The voice gateway router, in conjunction with the voice gateway router that services the telephone to which the call was placed, operates the call using the signaling path and the voice path (<b>455</b>). The voice gateway routers may use mappings, such as the mappings <b>135</b>a and <b>135</b>b of <figref idref="DRAWINGS">FIG. 1</figref>, to route signals and voice data to the endpoints of the call. As a result, the call is handled normally without involving the telephony services provider.
The illustrated implementation of the process <b>400</b> is executed by a first voice gateway router that services a telephone that placed the call. A similar process may be executed by a second voice gateway router that services a telephone to which the call was placed. In general, the similar process is the same as the illustrated implementation of the process <b>400</b>. More particularly, the second voice gateway router may receive an indication of the call from the first voice gateway router or from the telephony services provider instead of from the telephone from which the call was placed (<b>405</b>). Instead of identifying a person that placed the call, the second voice gateway router may identify a person to which the call was placed (<b>410</b>).
However, the second voice gateway router may execute the similar process only when the first gateway router does not execute the process <b>400</b>. If special call handling is to be applied for both the person that placed the call and the person to which the call was placed, control signals for handling the call for the caller are identified first, and control signals for handling the call for the recipient are identified second. The control signals for handling the call for the second user are identified such that those control signals do not conflict with the control signals identified for the caller.
Referring to <figref idref="DRAWINGS">FIG. 5</figref>, one implementation of the telephony services provider <b>115</b> of <figref idref="DRAWINGS">FIG. 1</figref> includes a telephony services signal processing system <b>150</b> and a telephony services back-end system <b>155</b>. The telephony services signal processing system <b>150</b> includes a feature server <b>505</b> that includes features <b>510</b>a-<b>510</b>n, a service logic execution environment <b>515</b>, a back-to-back user agent <b>520</b>, call handling preferences <b>525</b>, a communications dashboard <b>530</b>, and a communications manager <b>535</b>. The telephony services back-end system includes various information sources <b>540</b>a-<b>540</b>g that include an address book <b>540</b>a, a calendar <b>540</b>b, an alerts and reminders information source <b>540</b>c, an instant messaging information source <b>540</b>d, an e-mail information source <b>540</b>e, a presence monitor <b>540</b>f, and a parental controls information source <b>540</b>g.
The feature server <b>505</b> manages the features <b>510</b>a-<b>510</b>n. Each of the features <b>510</b>a-<b>510</b>n represents an application that may be executed to identify signals for controlling a call in a particular manner. For example, the feature <b>510</b>a may cause e-mail messages sent to a participant of the call to be read to the participant during the call. The feature <b>510</b>b may provide to the participant reminders of calendar events from an electronic calendar maintained by the participant, or of tasks to be performed by the participant. The feature <b>510</b>c may provide news updates, stock quotes, weather reports, or other information to a participant of the call. Such a feature may signal for information to be presented to the user such that other participants in the call may not perceive the information. In addition, the feature <b>510</b>d may cause ring tones or other call announcements that are specific to participants in a call to be provided to the participants when the calls are received. The feature <b>510</b>e may allocate charges to a person that placed a call when a recipient of the call indicates that the call is undesirable.
Other features may cause the call to be delivered to an intended recipient of the call. The call may be made to ring busy for a participant that placed the call. Alternatively or additionally, the call may be forwarded to a system that is different than a system to which the call was to be routed originally, such as a voicemail system. A call may be blocked such that an intended recipient of the call does not receive the call. An alert of the call, such as a ring tone, another pre-recorded audio message, or a visual alert of the call, may be presented to one or more participants of the call. An identification of a participant that placed the call may be presented to other participants of the call before the call is completed. An incoming call notification may be delivered to an intended recipient when the intended recipient is occupied with an ongoing but different call, and the intended recipient may be enabled to interrupt the ongoing call to handle the incoming call.
The feature server <b>505</b> may identify one or more of the features <b>510</b>a-<b>510</b>n that may be executed to control a call. The feature server <b>505</b> provides the identified features to the service logic execution environment <b>515</b>, which is a generic execution environment in which any of the features <b>510</b>a-<b>510</b>n may be executed. For example, the service logic execution environment <b>515</b> may define an API of supported functions, and the features <b>510</b>a-<b>510</b>n may be implemented using the API.
The execution of one or more of the features <b>510</b>a-<b>510</b>n in the service logic execution environment <b>515</b> results in the identification of one of more call handling signals that are passed to the back-to-back user agent <b>520</b>. The back-to-back user agent <b>520</b> is an interface of the telephony services provider <b>115</b> to a telephony infrastructure provider that operates calls that are controlled by the telephony services provider <b>115</b>. Signaling paths that are built from the telephony infrastructure provider to the telephony services provider are built to the back-to-back user agent <b>520</b>. As a result, indications of calls for which control signals are to be identified are received from the telephony infrastructure provider by the back-to-back user agent <b>520</b>. In addition, the control signals are sent to the telephony infrastructure provider from the back-to-back user agent <b>520</b>.
The call handing preferences <b>525</b> identify one or more of the features <b>510</b>a-<b>510</b>n to be applied to a call. More particularly, the feature server <b>505</b> may use the call handling preferences <b>525</b> when identifying which of the features <b>510</b>a-<b>510</b>n to apply to a call. The call handling preferences <b>525</b> may identify conditions that must be satisfied for a particular feature to be applied to the call. The conditions may reference information that may be accessed from the telephony services back-end system <b>155</b>. The call handling preferences <b>525</b> may include conditions for each user whose calls are controlled by the telephony services provider <b>115</b>. The communications dashboard <b>530</b> enables a user whose calls are controlled by the telephony services provider <b>115</b>, or a supervisor or a guardian of the user, to specify personal call handling preferences. More particularly, the communications dashboard <b>530</b> is a user interface that may be accessed by the user to specify the personal call handling preferences. In one implementation, the dashboard <b>530</b> may include a program running on a server that can serve web pages to a user accessing the dashboard from a web browser. The communications dashboard <b>530</b> also may be used to view information provided by the telephony services back-end system <b>155</b>.
The communications manager <b>535</b> is an interface between the telephony services signal processing system <b>150</b> and the telephony services back-end system <b>155</b>. More particularly, the communications manager <b>535</b> may provide an API with which other components of the telephony services signal processing system <b>150</b> may request and receive information from the telephony services back-end system <b>155</b>. In one implementation, the communications manager <b>535</b> also may be used by the feature server <b>505</b> and the service logic execution environment to access the call handing preferences <b>525</b>. In one implementation, the communications manager <b>535</b> may include a cache of information from information sources <b>540</b>a-<b>540</b>g such that commonly needed information does not need to be accessed repeatedly from the information sources <b>540</b>a-<b>540</b>g.
The telephony services back-end system <b>155</b> includes information sources <b>540</b>a-<b>540</b>g that provide information that may be used when identifying one or more of the features <b>510</b>a-<b>510</b>n for application to a call, or when executing the identified features. The information provided by the information sources <b>540</b>a-<b>540</b>g may be maintained by the telephony services back-end system <b>155</b>, or by one or more external systems corresponding to the information sources <b>540</b>a-<b>540</b>g. For example, information provided by the e-mail information source <b>540</b>d may be maintained by an e-mail system that is external to the telephony services provider <b>115</b>.
Each of the information sources <b>540</b>a-<b>540</b>g may include information that corresponds to each of the users whose calls are controlled by the telephony services provider <b>115</b>. The information sources <b>540</b>a-<b>540</b>g are described below with respect to a single user, though each of the information sources <b>540</b>a-<b>540</b>g typically corresponds to multiple users.
The address book <b>540</b>a includes contact information of people known to the user. The address book <b>540</b>a may be used to determine if a person or opposite party participating in a call for which control signals are being identified is known to the user. In particular, if contact information for the person is found in the address book, then the person may be assumed to be known by the user. A feature may be applied to the call depending on whether the person is known to the user. For example, a feature for providing contact information for the user may be applied to the call only when the user communicates with a known person in the call. Furthermore, execution of a feature may require a determination of whether another person participating in a call is known to the user. For example, a feature for providing an alert to the user may require a determination of whether the other participant is known such that the alert may be presented only to the user when the participant is not known, and to both the user and the other participant when the participant is known.
The calendar <b>540</b>b includes indications of events in which the user is to participate. A feature may be applied to a call when the user is participating in a particular type of event from the calendar <b>540</b>b. For example, a feature for providing news alerts to the user over a telephone used by the user may be applied to the call because the user is participating in the call as part of an event indicated by the calendar <b>540</b>b. In addition, execution of a feature may require accessing a description of an event in which the user is participating such that signals for presenting the description to the user may be identified. For example, a feature for providing alerts of events to the user may access a description of the event such that the description may be provided to the user. The events indicated by the calendar <b>540</b>b may indicate the availability of the user, for example, to place and receive calls. For example, the user may be unavailable when participating in one of the events, and may be available otherwise. The alerts and reminders information source <b>540</b>c may include similar indications of events and tasks in which the user is to participate.
The instant messaging information source <b>540</b>d and the e-mail information source <b>540</b>e both include information describing instant messages and e-mail messages sent and received by the user. Signals for presenting instant messages and e-mail messages to the user may be identified by one of the features <b>510</b>a-<b>510</b>n, but the call handling preferences <b>525</b> may indicate that such a feature is only to be executed when the information sources <b>540</b>d and <b>540</b>e include messages that have not been presented to the user already. For example, if a new e-mail message or a new instant message for the user is received while the user is participating in the call, then an indication of the new message, such as a sender, subject, or a time of receipt of the message, may be presented to the user. In response to the indication, the user may signal for the message to be read. Appropriate signals for reading the message to the user such the message is not read to other participants of the call do not hear the message may be identified.
The presence monitor <b>504</b>f indicates a current activity of the user. For example, the presence monitor <b>540</b>f may indicate whether the user is communicating with one or more other entities using a telephone, instant messages, or e-mail messages, or participating in an event from an electronic calendar of the user. The call handling preferences <b>525</b> may indicate that one or more of the features <b>510</b>a-<b>510</b>n be selected for execution if the user is using the telephone. For example, if the presence monitor <b>504</b>f indicates that the user is communicating using a telephone and instant messages, a feature for presenting new instant messages to the user on the telephone may be selected for execution.
In addition, the signals identified through execution of one of the features <b>510</b>a-<b>510</b>n may depend on an activity of the user. For example, a feature for determining whether the user may or may not participate in a call based on an activity of the user may identify signals for blocking or allowing the call, depending on the activity of the user. For example, the user may be available to participate in the call when participating in particular activities, and signals for allowing the user to participate in the call may be identified when the presence monitor <b>504</b>f indicates that the user is participating in one of the particular activities. Furthermore, the user may not be available to participate in the call when participating in other activities, and signals for blocking the call may be identified when the presence monitor <b>504</b>f indicates that the user is participating in one of the other activities. In other words, the current activity identified by the presence monitor <b>504</b>f may indicate the availability of user to place and receive telephone calls.
The parental controls information source <b>540</b>g includes information describing parental controls the telephone use of the user. For example, the parental controls information source <b>540</b>g may include an indication of an amount of time during a period for which the user has communicated using a telephone, as well as an indication of a maximum amount of time during the period for which the user may communicate using the telephone. The parental controls information source <b>540</b>g also may include indications of times when the user may participate in telephone calls, and times when the user may not participate in telephone calls. The parental controls information source <b>540</b>g also may include indications of people to or from whom calls are blocked.
The call handling preferences <b>525</b> may indicate that one or more of the features <b>510</b>a-<b>510</b>n be selected for application to a call based in information included in the parental controls information source <b>540</b>g. For example, if the parental controls information source <b>540</b>g indicates that the present time is a time at which the user may not participate in the call, then the a feature for notifying other participants in the call that the user may not participate in the call may be selected for execution. As another example, if the parental controls information source <b>540</b>g indicates that one or more other participants in the call are people to or from whom calls are blocked, then a feature for blocking the call may be selected for execution.
In addition, the signals identified through execution of one of the features <b>510</b>a-<b>510</b>n may depend on the information included in the parental controls information source <b>540</b>g. For example, a feature for blocking or allowing a call may identify signals for allowing the call when the user has not communicated for longer than the maximum allowable amount of time during the time period. In addition, the feature may identify signals for blocking the call when the user has communicated for at least the maximum allowable amount of time during the time period. Furthermore, the feature may identify signals for allowing the call when the other participants in the call are people whose calls are allowed, and signals for blocking the call when the one or more of the other participants in the call are people whose calls are blocked.
Information included in the telephony services back-end system <b>155</b> may be updated as a result of the execution of one or more of the features <b>510</b>a-<b>510</b>n. For example, when a feature for allowing the user to participate in a call is executed, information included in the presence monitor <b>504</b>f may be updated to indicate that the user currently is participating in the call. In general, the information may be updated to include an indication of availability of the first call participant to place and receive a call, an activity undertaken by the first call participant, a time at which the first call participant may or may not place or receive a call, a person with which the first call participant may or may not participate in a call, an amount of time for which the first call participant has participated in calls, a call handling preference, or a parental control.
The updated information may be used to identify control signals for future calls. For example, if a subsequent call for the user is received while the user still is participating in the original call, control signals for providing a notification of the subsequent call to the user in a manner that does not interfere with the user's participation in the original call may be identified. Such control signals may be identified based on the updated information included in the presence monitor <b>504</b>f, which indicates that the user is participating in the original call.
The information included in the telephony services back-end system <b>155</b> and the preferences <b>525</b> that applies to the user may be specified by the user, or by a guardian or supervisor of the user, such as a parent or an employer of the user. For example, the user or the guardian or supervisor of the user may be presented a graphical user interface that may be used to specify the information. The user, or the guardian or supervisor of the user, may specify the information by accessing the telephony services back-end system <b>155</b> directly, or by accessing one or more of the external systems that correspond to the information sources <b>540</b>a-<b>540</b>g. For example, the user may specify the information included in the address book <b>540</b>a with an external communications system, such as an e-mail system. The information is specified prior to being used to identify control signals for a call.
Referring to <figref idref="DRAWINGS">FIG. 6</figref>, a process <b>600</b> is executed by the telephony services provider <b>115</b> of <figref idref="DRAWINGS">FIG. 5</figref> to identify control signals for handling a call that involves a user of the telephony services provider <b>115</b>. The process <b>600</b> includes multiple components of the telephony services provider <b>115</b>, such as the back-to-back user agent (B<b>2</b>BUA) <b>520</b>, the service logic execution environment (SLEE) <b>515</b>, the communications manager <b>535</b>, and the feature server <b>505</b>.
The process begins when the B<b>2</b>BUA <b>520</b> receives signals identifying a call to be handled (<b>605</b>). The signals are received over a signaling path that has been established to the B<b>2</b>BUA <b>520</b> by a telephony infrastructure provider that is operating the call. The telephony infrastructure provider may send the signals identifying the call to the B<b>2</b>BUA <b>520</b> because the telephony infrastructure provider determined that the call should be handled by the telephony services provider <b>115</b>. The B<b>2</b>BUA <b>520</b> passes information describing the call to the SLEE <b>515</b> (<b>610</b>). The SLEE <b>515</b> passes the information to the feature server <b>505</b> (<b>615</b>), and the feature server <b>505</b> receives the information (<b>620</b>). The information may include telephone numbers to and from which the call was placed, identifiers of people participating in the call, and a time at which the call was placed.
The feature server <b>505</b> requests information from the communications manager <b>535</b> (<b>625</b>). More particularly, the feature server <b>505</b> requests information that may be used when identifying which of one or more included features, such as the features <b>510</b>a-<b>510</b>n of <figref idref="DRAWINGS">FIG. 5</figref>, should be applied to the call. The requested information may include call handling preferences for one or more of the participants in the call.
The communications manager <b>535</b> identifies the requested information (<b>630</b>), for example from the telephony services back-end system <b>155</b>, and then sends the requested information to the feature server <b>505</b> (<b>635</b>). Using the received information, the feature server <b>505</b> identifies one or more of the included features to be applied to the call (<b>640</b>). For example, the call handling preferences may indicate that a particular feature should be applied for one of the participants in the call, so the feature server <b>505</b> may identify the particular feature as one of the features to be applied to the call.
The feature server <b>505</b> sends the identified features to the SLEE <b>515</b> for execution (<b>645</b>), and the SLEE <b>515</b> receives the features (<b>650</b>). The SLEE <b>515</b> executes the received features to identify control signals for handling the call (<b>655</b>). Execution of one or more of the features may require information from the telephony services back-end system <b>155</b>, and the SLEE <b>515</b> requests that information from the communications manager <b>535</b> (<b>660</b>). The communications manager <b>535</b> identifies the requested information from the telephony services back-end system <b>155</b> (<b>665</b>) and sends the requested information to the SLEE <b>515</b> (<b>670</b>).
The SLEE <b>515</b> continues to execute the features that were sent by the feature server <b>505</b> using the information received from the communications manager, and identifies control signals for handling the call (<b>675</b>). The SLEE <b>515</b> forwards the identified signals to the B<b>2</b>BUA <b>520</b> (<b>680</b>). The B<b>2</b>BUA <b>520</b> may validate the signals received from the SLEE <b>515</b> to verify that the signals will result in allowable handling of the call. The B<b>2</b>BUA <b>520</b> sends the signals for execution to handle the call (<b>685</b>). More particularly, the B<b>2</b>BUA <b>520</b> sends the signals over the signaling path on which the signals identifying the call were received. The telephony infrastructure provider receives and executes the signals to handle the call as indicated by the features that were executed.
Referring to <figref idref="DRAWINGS">FIG. 7</figref>, one implementation of the communications dashboard <b>530</b> of <figref idref="DRAWINGS">FIG. 5</figref> enables a user to view information used when identifying signals for controlling telephone calls involving the user. The communications dashboard <b>530</b> includes multiple sections <b>705</b>-<b>730</b>, including a contact list <b>705</b>, a calendar <b>710</b>, an availability indicator <b>715</b>, a contact information indicator <b>720</b>, a voice mail indicator <b>725</b>, and a recent communications indicator <b>730</b>. Interaction with the communications dashboard <b>530</b> may add or modify information to the call handling preferences <b>525</b> and the telephony services back-end system <b>155</b> of <figref idref="DRAWINGS">FIG. 5</figref>.
The contact list <b>705</b> includes contact information for people known to a user for which the communications dashboard <b>535</b> is presented. The information included in the contact list <b>705</b> may be taken from one or more external sources, such as an address book of an e-mail system or a buddy list of an instant messaging system. In one implementation, one of the entries of the contact list <b>705</b> may be selected and an additional interface may be presented for specifying call handling preferences for calls to or from a person corresponding to the entry. For example, the additional interface may enable the specification of a ring tone for calls from the person.
The calendar <b>710</b> includes events from an electronic calendar of the user that may be retrieved from an external system that maintains the electronic calendar. Similarly to the contact list <b>705</b>, one of the events may be selected to display an additional interface for specifying call handling preferences related to the event. For example, the additional interface may enable the specification of whether an alert for the selected event will be presented to the user, and, if so, the type of alert to be presented to the user.
The availability indicator <b>715</b> indicates the availability of the user to participate in telephone calls. The user may specify an availability with the availability indicator <b>715</b> to override other automatic determinations of the availability of the user that may be made. The specified availability may indicate one or more call handling applications or features to be applied to calls to the user, such as the features <b>510</b>a-<b>510</b>n of <figref idref="DRAWINGS">FIG. 1</figref>. The specified availability also may affect the control signals that are identified with the one or more call handling applications.
The contact information indicator <b>720</b> includes contact information for the user. The voice mail indicator <b>725</b> indicates whether or not new voicemails for the user have been received. In one implementation, the information presented by the contact information indicator <b>720</b> and the voicemail indicator <b>725</b> does not affect how calls to the user are handled. In other implementations, the information presented by the indicators <b>720</b> and <b>725</b> may be used to identify and to affect the execution of the one or more call handling applications. For example, a call handling application may be identified for execution only when a new voicemail has been received for the user.
The recent communications list <b>730</b> identifies recent communications of the user. The recent communications may include telephone calls, instant messages, and e-mail messages. The recent communications list <b>730</b> may include indications of how the recent communications were handled. Such indications may be used to identify how future communications are to be handled. For example, future communications may be handled in the same manner as the recent communications, such that the applications for handling the future communications may be identified based on the indications of how the recent communications were handled.
Control signals for handling a call are described throughout as first being identified and then being distributed for execution. However, control signals may be identified throughout the entire duration of the call, and the control signals may be distributed as they are identified. As a result, the call may be continually and asynchronously controlled through the entire call, rather than being controlled at one or more points within the call. When control signals are identified at multiple points during a call, different features or applications may be used at each of the multiple points to identify the signals.
A voice gateway router is described throughout as a single entity to which signaling and voice paths are established such that calls to telephones serviced by the voice gateway router may be controlled. In particular implementations of the described techniques, the voice gateway router may include multiple subsystems that collectively operate as the voice gateway router described herein. For example, the voice gateway router may include one or more subsystems that are analogous to a telephony services signaling processing <b>150</b> of <figref idref="DRAWINGS">FIG. 1</figref> such that control signals may be identified for calls that are not handled by an external telephony services provider, such as the telephony services provider <b>115</b> of <figref idref="DRAWINGS">FIG. 1</figref>. However, such subsystems may not access the information included in the telephony services provider, such as the information included in the telephony services back-end system <b>155</b> of <figref idref="DRAWINGS">FIG. 1</figref>.
A VoIP telephony system is described throughout as a telephone system in which calls are operated by a telephony infrastructure provider and are controlled by a telephony services provider. However, other telephone systems may be used to enable a telephony services provider to control calls operated by a telephony infrastructure provider. For example, the telephony services provider may be applied to a circuit-switched implementation of the described techniques such that calls between telephones connected to a circuit switched telephone network provided by a telephony infrastructure provider may be controlled by an external telephony services provider.
The described systems, methods, and techniques may be implemented in digital electronic circuitry, computer hardware, firmware, software, or in combinations of these elements. Apparatus embodying these techniques may include appropriate input and output devices, a computer processor, and a computer program product tangibly embodied in a machine-readable storage device for execution by a programmable processor. A process embodying these techniques may be performed by a programmable processor executing a program of instructions to perform desired functions by operating on input data and generating appropriate output. The techniques may be implemented in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. Each computer program may be implemented in a high-level procedural or object-oriented programming language, or in assembly or machine language if desired; and in any case, the language may be a compiled or interpreted language. Suitable processors include, by way of example, both general and special purpose microprocessors. Generally, a processor will receive instructions and data from a read-only memory and/or a random access memory. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as Erasable Programmable Read-Only Memory (EPROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and Compact Disc Read-Only Memory (CD-ROM). Any of the foregoing may be supplemented by, or incorporated in, specially-designed ASICs (application-specific integrated circuits).
It will be understood that various modifications may be made without departing from the spirit and scope of the claims. For example, advantageous results still could be achieved if steps of the disclosed techniques were performed in a different order and/or if components in the disclosed systems were combined in a different manner and/or replaced or supplemented by other components. Accordingly, other implementations are within the scope of the following claims.
Contents6
8 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8
Every citation, both waysCites: the store holds 99 of 100
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US2001043691A1 | Cites | United States of America | Applicant |
| US2002118807A1 | Cites | United States of America | Applicant |
| US2003007621A1 | Cites | United States of America | Applicant |
| US2003076941A1 | Cites | United States of America | Applicant |
| US2003078081A1 | Cites | United States of America | Applicant |
| US2003091032A1 | Cites | United States of America | Applicant |
| US2003112944A1 | Cites | United States of America | Applicant |
| US2003115070A1 | Cites | United States of America | Applicant |
| US2003156695A1 | Cites | United States of America | Applicant |
| US2003156700A1 | Cites | United States of America | Applicant |
| US2003161456A1 | Cites | United States of America | Applicant |
| US2003215078A1 | Cites | United States of America | Search report |
| US2004028208A1 | Cites | United States of America | Applicant |
| US2004114747A1 | Cites | United States of America | Applicant |
| US2004133683A1 | Cites | United States of America | Applicant |
| US2004158647A1 | Cites | United States of America | Search report |
| US2004161080A1 | Cites | United States of America | Applicant |
| US2004161090A1 | Cites | United States of America | Applicant |
| US2004208308A1 | Cites | United States of America | Applicant |
| US2004213396A1 | Cites | United States of America | Applicant |
| US2004225650A1 | Cites | United States of America | Applicant |
| US2004246331A1 | Cites | United States of America | Applicant |
| US2005010573A1 | Cites | United States of America | Applicant |
| US2005053215A1 | Cites | United States of America | Search report |
| US2005100008A1 | Cites | United States of America | Applicant |
| US2005147224A1 | Cites | United States of America | Applicant |
| US2006291641A1 | Cites | United States of America | Applicant |
| US2007123311A1 | Cites | United States of America | Search report |
| US2007127707A1 | Cites | United States of America | Search report |
| US2007211698A1 | Cites | United States of America | Search report |
| US2008130860A1 | Cites | United States of America | Search report |
| US5200995A | Cites | United States of America | Applicant |
| US5887056A | Cites | United States of America | Applicant |
| US6052372A | Cites | United States of America | Applicant |
| US6229879B1 | Cites | United States of America | Search report |
| US6330317B1 | Cites | United States of America | Applicant |
| US6343121B1 | Cites | United States of America | Applicant |
| US6353663B1 | Cites | United States of America | Applicant |
| US6477374B1 | Cites | United States of America | Applicant |
| US6483910B1 | Cites | United States of America | Applicant |
| US6498841B2 | Cites | United States of America | Applicant |
| US6606647B2 | Cites | United States of America | Applicant |
| US6614781B1 | Cites | United States of America | Applicant |
| US6639977B1 | Cites | United States of America | Applicant |
| US6650742B1 | Cites | United States of America | Applicant |
| US6697474B1 | Cites | United States of America | Applicant |
| US6735295B1 | Cites | United States of America | Applicant |
| US6747970B1 | Cites | United States of America | Applicant |
| US6748072B1 | Cites | United States of America | Applicant |
| US6757362B1 | Cites | United States of America | Applicant |
| US6757371B2 | Cites | United States of America | Applicant |
| US6798755B2 | Cites | United States of America | Applicant |
| US6834103B1 | Cites | United States of America | Search report |
| US6876734B1 | Cites | United States of America | Search report |
| US6888935B1 | Cites | United States of America | Search report |
| US6912276B1 | Cites | United States of America | Search report |
| US6990187B2 | Cites | United States of America | Search report |
| US7023980B2 | Cites | United States of America | Applicant |
| US7130405B2 | Cites | United States of America | Search report |
| US7180912B1 | Cites | United States of America | Search report |
| US7197560B2 | Cites | United States of America | Search report |
| US7277528B2 | Cites | United States of America | Applicant |
| US7305081B1 | Cites | United States of America | Applicant |
| US7342920B2 | Cites | United States of America | Applicant |
| US7397910B2 | Cites | United States of America | Search report |
| US7408925B1 | Cites | United States of America | Search report |
| US7418091B1 | Cites | United States of America | Search report |
| US7760707B1 | Cites | United States of America | Applicant |
| US20010043691A1 | Cites | United States of America | Applicant |
| US20020118807A1 | Cites | United States of America | Applicant |
| US20030007621A1 | Cites | United States of America | Applicant |
| US20030076941A1 | Cites | United States of America | Applicant |
| US20030078081A1 | Cites | United States of America | Applicant |
| US20030091032A1 | Cites | United States of America | Applicant |
| US20030112944A1 | Cites | United States of America | Applicant |
| US20030115070A1 | Cites | United States of America | Applicant |
| US20030156695A1 | Cites | United States of America | Applicant |
| US20030156700A1 | Cites | United States of America | Applicant |
| US20030161456A1 | Cites | United States of America | Applicant |
| US20030215078A1 | Cites | United States of America | Search report |
| US20040028208A1 | Cites | United States of America | Applicant |
| US20040114747A1 | Cites | United States of America | Applicant |
| US20040133683A1 | Cites | United States of America | Applicant |
| US20040158647A1 | Cites | United States of America | Search report |
| US20040161080A1 | Cites | United States of America | Applicant |
| US20040161090A1 | Cites | United States of America | Applicant |
| US20040208308A1 | Cites | United States of America | Applicant |
| US20040213396A1 | Cites | United States of America | Applicant |
| US20040225650A1 | Cites | United States of America | Applicant |
| US20040246331A1 | Cites | United States of America | Applicant |
| US20050010573A1 | Cites | United States of America | Applicant |
| US20050053215A1 | Cites | United States of America | Search report |
| US20050100008A1 | Cites | United States of America | Applicant |
| US20050147224A1 | Cites | United States of America | Applicant |
| US20060291641A1 | Cites | United States of America | Applicant |
| US20070123311A1 | Cites | United States of America | Search report |
| US20070127707A1 | Cites | United States of America | Search report |
| US20070211698A1 | Cites | United States of America | Search report |
| US20080130860A1 | Cites | United States of America | Search report |
| U.S. Appl. No. 11/020,681, Jan. 26, 2009, Office Action. | Non-patent | – | Applicant |
4 members in 1 office
Priority claims10
| Document | Office | Kind | Date |
|---|---|---|---|
| 57721604 | United States of America | P | |
| 57721604 | United States of America | P | |
| 2067904 | United States of America | A | |
| 2067904 | United States of America | A | |
| 201213555073 | United States of America | A | |
| 11020679 | – | – | – |
| 60577216 | – | – | – |
| US20040020679 | – | – | – |
| US20040577216P | – | – | – |
| US201213555073 | – | – | – |
Members4
| Document | Office | Kind | |
|---|---|---|---|
| US7760707B1 | United States of America | B1 | |
| US8855287B1 | United States of America | B1 | |
| USRE46168EThis record | United States of America | E | |
| US9462122B1 | United States of America | B1 |
107 transactions on the USPTO file
Allowed after 4 non-final rejections, 2 final rejections and 2 RCEs.
- Non-final rejections
- 4
- Final rejections
- 2
- RCEs
- 2
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Email NotificationEML_NTR | EML_NTR | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| Email NotificationEML_NTR | EML_NTR | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| Payment of Maintenance Fee, 12th Year, Large EntityM1553 | M1553 | |
| Payment of Maintenance Fee, 8th Year, Large EntityM1552 | M1552 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Printer Rush- No mailingTCPB | TCPB | |
| Printer Rush- No mailingTCPB | TCPB | |
| Examiner's Amendment CommunicationEX.A | EX.A | |
| Misc Special Soft Scanning- No MailingMSCSS | MSCSS | |
| Examiner's Amendment CommunicationEX.A | EX.A | |
| Pubs Case Remand to TCPUBTC | PUBTC | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Examiner's Amendment CommunicationEX.A | EX.A | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Mail Interview Summary - Applicant Initiated - TelephonicMEXAT | MEXAT | |
| Interview Summary- Applicant InitiatedEXIA | EXIA | |
| Interview Summary - Applicant Initiated - TelephonicEXAT | EXAT | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Advisory Action (PTOL - 303)MCTAV | MCTAV | |
| Advisory Action (PTOL-303)CTAV | CTAV | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Final ActionA.NE | A.NE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Mail Interview Summary - Applicant Initiated - PersonalMEXAP | MEXAP | |
| Interview Summary- Applicant InitiatedEXIA | EXIA | |
| Interview Summary - Applicant Initiated - PersonalEXAP | EXAP | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Application Is Now CompleteCOMP | COMP | |
| Email NotificationEML_NTR | EML_NTR | |
| Filing Receipt - UpdatedFLRCPT.U | FLRCPT.U | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Payment of additional filing fee/PreexamFLFEE | FLFEE | |
| A statement by one or more inventors satisfying the requirement under 35 USC 115, Oath of the ApplicOATHDECL | OATHDECL | |
| Notice of Reissue Published in Official GazetteNRE. | NRE. | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Email NotificationEML_NTR | EML_NTR | |
| Notice Mailed--Application Incomplete--Filing Date AssignedINCD | INCD |
7 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| AssignmentAS | AS | |
| Maintenance fee paymentMAFP | MAFP | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS |
Numbers
- Publication
- RE046168
- Publication, DOCDB
- RE46168
- Publication, EPODOC
- USRE46168E
- Application
- 13555073
- Application, DOCDB
- 201213555073
- Application, EPODOC
- US201213555073
Titles
- English
- Voice over internet protocol application development framework
Classification
- CPC, 6
- H04M7/0012
- H04M1/6505
- H04L65/1045
- H04L65/1069
- H04L65/1026
- H04L65/1036
- IPC, 3
- H04M1 64
- H04M1 65
- H04M7 00
- USPC, 1
- 001001000