Voice over internet protocol application development framework
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.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1. A 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.
2. The method of claim 1 wherein identifying the control signals comprises:
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;
determining whether the first call participant is available to participate in the call based upon the accessed indication; and
identifying the control signals based upon the determination of whether the first call participant may participate in the call.
3. The method of claim 1 wherein identifying the control signals comprises:
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; and
identifying control signals configured to present the accessed information to the first call participant.
4. The method of claim 1 wherein identifying the control signals comprises:
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; and
identifying the control signals based upon the accessed indication of availability.
5. The method of claim 1 wherein identifying the control signals comprises:
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; and
identifying the control signals based upon the accessed indication of the activity.
6. The method of claim 5 wherein identifying the control signals comprises:
determining whether the activity is an activity during which the first call participant may or may not participate in the call; and
identifying the control signals based upon the determination of whether the first call participant may or may not participate in the call.
7. The method of claim 5 wherein accessing an indication of an activity comprises 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.
8. The method of claim 1 wherein identifying the control signals comprises:
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;
comparing a present time to the time at which a call to the first call participant is to be blocked or allowed; and
identifying the control signals based upon the comparison.
9. The method of claim 1 wherein identifying the control signals comprises:
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;
comparing the amount of time for which the first call participant has participated in phone calls to the maximum allowable amount of time; and
identifying the control signals based upon the comparison.
10. The method of claim 1 wherein identifying the control signals comprises:
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; and
identifying the control signals based upon the accessed indication of the parental control.
11. The method of claim 1 wherein identifying the control signals comprises:
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;
comparing the second call participant to the person to or from whom calls are allowed or blocked; and
identifying the control signals based upon the determination of whether the first call participant may participate in the call.
12. The method of claim 1 wherein identifying the control signals comprises:
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; and
identifying the control signals based upon the specified information.
13. The method of claim 12 wherein enabling the first call participant or a guardian or supervisor of the first call participant to specify the information comprises 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.
14. The method of claim 13 wherein identifying the control signals comprises:
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; and
identifying the control signals based upon the accessed call handling preference.
15. The method of claim 13 wherein identifying the control signals comprises:
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; and
identifying the control signals based upon the accessed call handling preference.
16. The method of claim 1 wherein identifying the control signals comprises:
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 indicating a status of the first call participant as a result of processing of the identified control signals; and
identifying control signals for future calls based upon the updated information.
17. The method of claim 16 wherein updating the information based upon the identified control signals comprises 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.
18. The method of claim 1 wherein identifying the control signals comprises 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.
19. The method of claim 1 wherein identifying the control signals comprises 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.
20. The method of claim 19 wherein identifying control signals to cause an incoming call notification to be delivered to an intended recipient comprises 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.
21. The method of claim 1 wherein the identifying the control signals comprises identifying control signals to cause the call to be delivered to an intended recipient.
22. The method of claim 1 wherein identifying the control signals comprises identifying control signals to cause the call to ring busy for the first or second call participant who placed the call.
23. The method of claim 1 wherein identifying the control signals comprises 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.
24. The method of claim 23 wherein the different system is a voicemail system such that identifying the control signals comprises identifying control signals to cause the call to be forwarded to a voicemail system.
25. The method of claim 1 wherein identifying the control signals comprises identifying control signals to cause the call to be blocked such that an intended recipient of the call does not receive the call.
26. The method of claim 1 wherein identifying the control signals comprises identifying control signals to cause an alert of the call to be presented to the first call participant.
27. The method of claim 1 wherein identifying the control signals comprises 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.
28. The method of claim 1 wherein the voice path is established between the first telephony proxy server and a second telephony proxy server based on the control signals.
29. The method of claim 1 wherein the identified signals conform to the Session Initiation Protocol (SIP).
30. A 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.
31. A 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.
32. The method of claim 1 , wherein the direct signaling path, the first signaling path, and the second signaling path are paths over which Session Initiation Protocol (SIP) call handling signals are communicated to affect the voice path of the call.
33. The method of claim 1 , wherein the direct signaling path, the first signaling path, and the second signaling path are paths over which H.323 call handling signals, Media Gateway Control Protocol (MGCP) call handling signals, Media Gateway Control (Megaco) call handling signals, or Simple Gateway Control Protocol (SGCP) call handling signals are communicated to affect the voice path of the call.
34. The method of claim 1 , wherein determining whether the first call participant is a subscriber comprises:
determining an identity of the first call participant based on a phone number or an IP address of a locally serviced telephone from which the call was placed, and
determining whether the first call participant is a user of the telephony services provider by searching for an indication of the identity of the first call participant in a user database.
35. The method of claim 1 , further comprising if the first call participant is determined to be a subscriber to telephony services provided by the telephony services provider, no direct signaling path is established directly between the first telephony proxy server and the second telephony proxy server that bypasses the telephony services provider.
36. The method of claim 1 , wherein identifying, at the telephony services provider, one or more control signals configured to affect a voice path of the call comprises identifying, at the telephony services provider, one or more control signals configured to affect a voice path of the call that is established directly between the first telephony proxy server and the second telephony proxy server.
37. A 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.
38. 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.
39. A 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.
40. The method of claim 39, wherein the user-specific preferences comprise data representative of one or more call-handling preferences associated with the first user.
41. The method of claim 39, wherein the user-specific preferences comprise data representative of one or more time periods during which the first user does not want to receive telephone calls.
42. The method of claim 39, wherein the user-specific preferences comprise data representative of one or more calendar events maintained in an electronic calendar associated with the first user.
43. The method of claim 39, wherein the user-specific preferences comprise data representative of at least one of:
a list of users with whom the first user does not want to communicate; one or more parental controls; an availability of the first user; one or more tasks maintained in an electronic task list associated with the first user; and one or more contacts maintained in a contact list associated with the first user.
44. The method of claim 39, wherein 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 further comprises selectively blocking the telephone call in accordance with call-handling preferences received from the first user by way of the communications dashboard.
45. The method of claim 39, wherein 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 further comprises selectively presenting information to the first user in conjunction with the telephone call in accordance with call-handling preferences received from the first user by way of the communications dashboard.
46. The method of claim 39, wherein 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 further comprises:
receiving data representative of a communication sent to the first user during a time period associated with the telephone call; and presenting the communication to the second user in conjunction with the telephone call in accordance with call-handling preferences received from the first user by way of the communications dashboard.
47. The method of claim 46, wherein presenting the communication comprises at least one of:
displaying the communication to the second user; or reading the communication to the second user.
48. The method of claim 46, wherein presenting the communication is prevented in accordance with call-handling preferences received from the first user by way of the communications dashboard.
49. The method of claim 39, wherein:
the user-specific preferences comprise data representative of a plurality of features; 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 further comprises selectively applying one or more of the plurality of features to the telephone call, the one or more features being dynamically selected from the plurality of features.
50. The method of claim 39, wherein 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 further comprises providing one or more alerts to the first user based on the user-specific preferences and in conjunction with the telephone call.
51. The method of claim 39, wherein 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 further comprises:
detecting asynchronous activity associated with the first user; and dynamically handling the requested telephone call in accordance with the detected asynchronous activity.
52. The method of claim 51, wherein the asynchronous activity comprises at least one of the following:
a change associated with a context of the telephone call; a change associated with a number of participants on the telephone call; or a change in one or more external factors associated with the first user.
53. The method of claim 39, wherein 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 further comprises transmitting, to a telephony infrastructure provider associated with the telephone call, data representative of one or more control signals for controlling the telephone call.
54. The method of claim 53, wherein:
the telephone services provider provides a data network comprising one or more voice gateway routers configured to establish at least a portion of a voice path between a first telephone associated with the first user and a second telephone associated with the second user; and the first telephone comprises at least one of a wireline telephone, a wireless telephone, a cellular telephone, a mobile personal digital assistant, and a telephone integrated into a computer system.
55. The method of claim 39, wherein 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 further comprises selectively executing one or more telephone call handling applications to control the telephone call, the one or more telephone call handling applications being selected from a plurality of available telephone call handling applications based on the user-specific preferences.
56. The method of claim 39, wherein the telephone services provider is a voice over Internet protocol services provider.
57. The method of claim 39, wherein accessing the user-specific preferences comprises receiving the user-specific preferences from the first user.
58. The method of claim 57, wherein the user-specific preferences are received from the first user by way of a web-based graphical user interface including the communications dashboard.
59. A 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.
60. The method of claim 59, wherein the received instructions comprises one or more control signals for controlling the telephone call.
61. The method of claim 39, wherein the communications dashboard further comprises one or more options associated with one or more calendar events associated with the first user, and wherein the user-specific data comprises call-handing preferences associated with the one or more calendar events.
62. The method of claim 39, wherein the communications dashboard further comprises one or more options for managing alerts, and wherein the user-specific data comprises data representative of one or more alerts.
63. The method of claim 59, wherein the graphical user interface comprises one or more options associated with one or more calendar events associated with the first user, and wherein the user-specific data comprises call-handing preferences associated with the one or more calendar events.
64. The method of claim 59, wherein the graphical user interface comprises one or more options for managing alerts, and wherein the user-specific data comprises data representative of one or more alerts.
65. The method of claim 39, wherein the communications dashboard further comprises a voicemail indicator and a contact information indicator.
66. The method of claim 63, wherein the one or more contacts are provided in an organized contact list.Join the waitlist — get patent alerts
Track USRE46168E — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.