Claims
- 1. A method for communication, comprising:
receiving a request from a first party, submitted via a first communication service provider to a telephony application, to place a call using the application to a second party; responsive to a characteristic of the call placed by the first party, selecting a second communication service provider to carry the call between the application and the second party; and connecting the second party via the second communication service provider to communicate with the first party using the application.
- 2. A method according to claim 1, wherein receiving the request comprises submitting the request to the application via an application programming interface (API), which exposes a platform-independent call model to the application, and wherein connecting the second party comprises connecting the call responsive to an instruction submitted by the application to the API.
- 3. A method according to claim 2, wherein the first and second communication service providers have respective first and second telephony signaling stacks, and wherein the call model comprises an abstract call model that is independent of the telephony signaling stacks used in placing calls to and receiving calls from the application.
- 4. A method according to claim 3, wherein receiving the request comprises passing the request from the first telephony signaling stack to the abstract call model via a service provider interface of the call model, and wherein connecting the second party comprises passing signals to the second telephony signaling stack via the service provider interface, wherein the service provider interface is independent of the telephony signaling stacks.
- 5. A method according to claim 4, wherein passing the request from the first telephony signaling stack comprises using a first plug-in program to associate the signals in the first telephony signaling stack with corresponding elements of the service provider interface, and wherein passing the signals to the second telephony signaling stack comprises using a second plug-in program to associate the signals in the second telephony signaling stack with the corresponding elements of the service provider interface.
- 6. A method according to claim 5, wherein selecting the second communication service provider comprises selecting the second plug-in program from among a plurality of the plug-in programs that are provided for interacting with the abstract call model.
- 7. A method according to claim 6, wherein selecting the second plug-in program comprises passing information regarding the call to a service manager program via a service management interface of the abstract call model, wherein the service manager program processes the information to determine the characteristic, and selects the second plug-in program responsive to the characteristic from a registry of the plug-in programs.
- 8. A method according to claim 1, wherein receiving the request comprises receiving an address of the second party to whom the call is to be placed, and wherein selecting the second communication service provider comprises parsing the address to determine the second communication service provider that should be selected.
- 9. A method according to claim 8, wherein receiving the address comprises receiving a telephone number, and wherein parsing the address comprises identifying the second communication provider based on a portion of the telephone number.
- 10. A method according to claim 1, wherein selecting the second communication service provider comprises determining a communication protocol to be used in communicating with the second party, and choosing the second communication service provider such that the second communication service provider supports the communication protocol.
- 11. A method according to claim 10, wherein receiving the request from the first party comprises communicating with the first party via the first communication service provider using a first communication protocol, and wherein the communication protocol used in communicating with the second party comprises a second communication protocol, different from the first protocol.
- 12. A method according to claim 11, wherein one of the first and second communication protocols comprises a circuit-switched network protocol, while the other of the first and second communication protocols comprises a packet-switched network protocol.
- 13. A method according to claim 1, wherein selecting the second communication service provider comprises specifying a selection rule, and applying the selection rule to the characteristic in order to determine the second communication service provider to be selected.
- 14. A method according to claim 13, wherein specifying the selection rule comprises specifying a temporal criterion, so that the second communication service provider is selected depending on a point in time at which the call is placed.
- 15. A method according to claim 1, wherein the telephony application comprises a teleconferencing application, and wherein connecting the second party comprises establishing a teleconference between the first and second parties.
- 16. A method according to claim 1, wherein the telephony application comprises a call center application, and wherein connecting the second party comprises establishing voice communications between a customer and a call center agent.
- 17. A method for communication, comprising:
receiving a request from a first party, submitted to a telephony application, to place a call using the application to a second party; processing the request to determine a service domain of the call; responsive to the service domain, selecting a communication service provider to carry the call between the application and the second party; and connecting the second party via the communication service provider to communicate with the first party using the application.
- 18. A method according to claim 17, wherein receiving the request comprises submitting the request to the application via an application programming interface (API), which exposes a platform-independent call model to the application, and wherein connecting the second party comprises connecting the call responsive to an instruction submitted by the application to the API.
- 19. A method according to claim 17, wherein selecting the communication service provider comprises providing a registry that lists a plurality of communication service providers and respective service characteristics thereof, and choosing the communication service provider to carry the call by comparing the service domain of the call to the service characteristics of the communication service providers in the registry.
- 20. A method according to claim 17, wherein processing the request comprises determining the service domain by parsing an address of the second party to whom the call is to be placed.
- 21. A method according to claim 20, wherein receiving the address comprises receiving a telephone number, and wherein parsing the address comprises determining the service domain based on a portion of the telephone number.
- 22. A method according to claim 20, wherein selecting the communication service provider comprises selecting one of a plurality of wireless networks over which to make the call, dependent on the address of the second party.
- 23. A method according to claim 17, wherein the service domain is determined by a communication protocol to be used in communicating with the second party, and wherein selecting the communication service provider comprises choosing the communication service provider such that the communication service provider supports the communication protocol.
- 24. A method according to claim 23, wherein processing the request to determine the service domain comprises determining whether to use a circuit-switched network protocol or a packet-switched network protocol to communicate with the second party.
- 25. A method according to claim 17, wherein processing the request comprises determining the service domain based on a temporal criterion, depending on a point of time at which the call is placed.
- 26. Communication apparatus, comprising:
a communication interface, arranged to communicate with first and second communication service providers; and a communication processor, arranged send and receive communications via the communication interface, and further arranged to run a telephony application, such that upon receiving a request from a first party, submitted via the first communication service provider to the telephony application, to place a call using the application to a second party, the processor selects, responsive to a characteristic of the call placed by the first party, a second communication service provider to carry the call between the application and the second party, and connects the second party via the second communication service provider to communicate with the first party using the application.
- 27. Apparatus according to claim 26, wherein the processor is arranged so that the request is submitted to the application via an application programming interface (API), which exposes a platform-independent call model to the application, and so that the call is connected to the second party responsive to an instruction submitted by the application to the API.
- 28. Apparatus according to claim 27, wherein the first and second communication service providers have respective first and second telephony signaling stacks, and wherein the call model comprises an abstract call model that is independent of the telephony signaling stacks used in placing calls to and receiving calls from the application.
- 29. Apparatus according to claim 28, wherein the processor is arranged so that the request is passed from the first telephony signaling stack to the abstract call model via a service provider interface of the call model, and so that the call is connected to the second party by passing signals to the second telephony signaling stack via the service provider interface, wherein the service provider interface is independent of the telephony signaling stacks.
- 30. Apparatus according to claim 29, wherein the processor is arranged so that the request is passed from the first telephony signaling stack to the abstract call model using a first plug-in program to associate the signals in the first telephony signaling stack with corresponding elements of the service provider interface, and wherein the signals are passed to the second telephony signaling stack using a second plug-in program to associate the signals in the second telephony signaling stack with the corresponding elements of the service provider interface.
- 31. Apparatus according to claim 30, and comprising a memory, which is arranged to store a plurality of the plug-in programs that are provided for interacting with the abstract call model, and wherein the processor is arranged to select the second plug-in program from among the plurality of the plug-in programs in the memory.
- 32. Apparatus according to claim 31, wherein the processor is arranged to select the second plug-in program by passing information regarding the call to a service manager program via a service management interface of the abstract call model, wherein the service manager program processes the information to determine the characteristic, and selects the second plug-in program responsive to the characteristic from a registry of the plug-in programs.
- 33. Apparatus according to claim 26, wherein the request comprises an address of the second party to whom the call is to be placed, and wherein the processor is arranged to parse the address to determine the second communication service provider that should be selected.
- 34. Apparatus according to claim 33, wherein the address comprises a telephone number, and wherein the processor is arranged to identify the second communication provider based on a portion of the telephone number.
- 35. Apparatus according to claim 26, wherein the processor is arranged to determine a communication protocol to be used in communicating with the second party, and to choose the second communication service provider such that the second communication service provider supports the communication protocol.
- 36. Apparatus according to claim 35, wherein the processor is arranged to communicate with the first party via the first communication service provider using a first communication protocol, and wherein the communication protocol used in communicating with the second party comprises a second communication protocol, different from the first protocol.
- 37. Apparatus according to claim 36, wherein one of the first and second communication protocols comprises a circuit-switched network protocol, while the other of the first and second communication protocols comprises a packet-switched network protocol.
- 38. Apparatus according to claim 26, wherein the processor is arranged to select the second communication service provider by applying a selection rule to the characteristic in order to determine the second communication service provider to be selected.
- 39. Apparatus according to claim 38, wherein the selection rule comprises a temporal criterion, so that the second communication service provider is selected depending on a point in time at which the call is placed.
- 40. Apparatus according to claim 26, wherein the telephony application comprises a teleconferencing application, and wherein the processor is arranged to establish a teleconference between the first and second parties.
- 41. Apparatus according to claim 26, wherein the telephony application comprises a call center application, and wherein the processor is arranged to establish voice communications between a customer and a call center agent using the call center application.
- 42. Apparatus for communication, comprising:
a communication interface, arranged to communicate with multiple communication service providers; and a communication processor, arranged send and receive communications via the communication interface, and further arranged to run a telephony application, such that upon receiving a request from a first party, submitted to the telephony application, to place a call using the application to a second party, the processor processes the request to determine a service domain of the call and, responsive to the service domain, selects one of the communication service providers to carry the call between the application and the second party, and connects the second party via the selected communication service provider to communicate with the first party using the application.
- 43. Apparatus according to claim 42, wherein the processor is arranged so that the request is submitted to the application via an application programming interface (API), which exposes a platform-independent call model to the application, and so that the second party is connected to the call responsive to an instruction submitted by the application to the API.
- 44. Apparatus according to claim 42, and comprising a memory, which is arranged to contain a registry that lists the communication service providers and respective service characteristics thereof, wherein the processor is arranged to choose the communication service provider to carry the call by comparing the service domain of the call to the service characteristics of the communication service providers in the registry.
- 45. Apparatus according to claim 42, wherein the processor is arranged to determine the service domain by parsing an address of the second party to whom the call is to be placed.
- 46. Apparatus according to claim 45, wherein the address comprises a telephone number, and wherein the processor is arranged to determine the service domain based on a portion of the telephone number.
- 47. Apparatus according to claim 45, wherein the communication service providers comprises a plurality of wireless networks, and wherein the processor is arranged to select one of the wireless networks over which to make the call, dependent on the address of the second party.
- 48. Apparatus according to claim 42, wherein the service domain is determined by a communication protocol to be used in communicating with the second party, and wherein the processor is arranged to choose the communication service provider such that the communication service provider supports the communication protocol.
- 49. Apparatus according to claim 48, wherein the processor is arranged to choose the communication service provider based on determining whether to use a circuit-switched network protocol or a packet-switched network protocol to communicate with the second party.
- 50. Apparatus according to claim 42, wherein the processor is arranged to determine the service domain based on a temporal criterion, depending on a point of time at which the call is placed.
- 51. A conference bridge, comprising:
a communication interface, arranged to communicate with first and second communication service providers; and a communication processor, arranged send and receive communications via the communication interface, and further arranged to run a teleconferencing application, such that upon receiving a request from a first party, submitted via the first communication service provider to the teleconferencing application, to establish a teleconference using the application with a second party, the processor selects, responsive to a characteristic of the call placed by the first party, a second communication service provider to carry the call between the application and the second party, selecting, and connects the second party via the second communication service provider to communicate with the first party using the application.
- 52. A bridge according to claim 51, and comprising a media gateway, which is arranged to transcode media communications carried between the first and second communication service providers, in accordance with transcoding instructions from the communication processor, dependent on the selected communication service providers.
- 53. Contact center apparatus, for operation by an agent in the contact center, the apparatus comprising:
a first communication interface, arranged to communicate with first communication service provider on a circuit-switched communication link; a second communication interface, arranged to communicate with a second communication service provider on a packet-switched communication link; and a communication processor, arranged send and receive communications via the communication interfaces, and further arranged to run a contact center application, such that upon receiving a request from an agent operating the apparatus, submitted to the application, to place a call using the application to a specified party, the processor processes the request to determine whether the call is to be carried on the circuit-switched link or the packet-switched link and accordingly selects one of the communication service providers to carry the call between the application and the specified party, and connects the specified party via the selected communication service provider to communicate with the agent using the application.
- 54. Apparatus according to claim 53, wherein the processor is arranged to connect the agent to communicate with a first party via the circuit-switched link and with a second party via the packet-switched link simultaneously, in the same call.
- 55. A wireless telephone, comprising:
a communication interface, arranged to communicate over the air with first and second wireless communication service providers over respective first and second air interfaces; and a communication processor, arranged send and receive communications via the communication interface, and further arranged to run a telephony application, such that upon receiving a request from a user of the telephone, submitted to the application, to place a call using the application to a specified party, the processor processes the request to determine whether the call is to be carried by the first or the second wireless communication service provider and accordingly selects one of the air interfaces to use in carrying the call between the application and the specified party, and establishes the call via the selected service provider using the respective first or second air interface.
- 56. A computer software product, comprising a computer-readable medium in which program instructions are stored, which instructions, when read by a computer that is arranged to communicate with first and second communication service providers, cause the computer to run a telephony application, such that upon receiving a request from a first party, submitted via the first communication service provider to the telephony application, to place a call using the application to a second party, the computer selects, responsive to a characteristic of the call placed by the first party, a second communication service provider to carry the call between the application and the second party, and connects the second party via the second communication service provider to communicate with the first party using the application.
- 57. A product according to claim 56, wherein the instructions cause the computer to submit the request to the application via an application programming interface (API), which exposes a platform-independent call model to the application, and so that the call is connected to the second party responsive to a response submitted by the application to the API.
- 58. A product according to claim 57, wherein the first and second communication service providers have respective first and second telephony signaling stacks, and wherein the call model comprises an abstract call model that is independent of the telephony signaling stacks used in placing calls to and receiving calls from the application.
- 59. A product according to claim 58, wherein the instructions cause the computer to pass the request from the first telephony signaling stack to the abstract call model via a service provider interface of the call model, and so that the call is connected to the second party by passing signals to the second telephony signaling stack via the service provider interface, wherein the service provider interface is independent of the telephony signaling stacks.
- 60. A product according to claim 59, wherein the instructions cause the computer to pass the request from the first telephony signaling stack to the abstract call model, using a first plug-in program to associate the signals in the first telephony signaling stack with corresponding elements of the service provider interface, and to pass the signals to the second telephony signaling stack using a second plug-in program to associate the signals in the second telephony signaling stack with the corresponding elements of the service provider interface.
- 61. A product according to claim 60, wherein the instructions cause the computer to select the second plug-in program from among a plurality of the plug-in programs that are provided for interacting with the abstract call model.
- 62. A product according to claim 61, wherein the instructions cause the computer to select the second plug-in program by passing information regarding the call to a service manager program via a service management interface of the abstract call model, wherein the service manager program processes the information to determine the characteristic, and selects the second plug-in program responsive to the characteristic from a registry of the plug-in programs.
- 63. A product according to claim 56, wherein the request comprises an address of the second party to whom the call is to be placed, and wherein the instructions cause the computer to parse the address to determine the second communication service provider that should be selected.
- 64. A product according to claim 63, wherein the address comprises a telephone number, and wherein the instructions cause the computer to identify the second communication provider based on a portion of the telephone number.
- 65. A product according to claim 56, wherein the instructions cause the computer to determine a communication protocol to be used in communicating with the second party, and to choose the second communication service provider such that the second communication service provider supports the communication protocol.
- 66. A product according to claim 65, wherein the instructions cause the computer to communicate with the first party via the first communication service provider using a first communication protocol, and wherein the communication protocol used in communicating with the second party comprises a second communication protocol, different from the first protocol.
- 67. A product according to claim 66, wherein one of the first and second communication protocols comprises a circuit-switched network protocol, while the other of the first and second communication protocols comprises a packet-switched network protocol.
- 68. A product according to claim 56, wherein the instructions cause the computer to select the second communication service provider by applying a selection rule to the characteristic in order to determine the second communication service provider to be selected.
- 69. A product according to claim 68, wherein the selection rule comprises a temporal criterion, so that the second communication service provider is selected depending on a point in time at which the call is placed.
- 70. A product according to claim 56, wherein the telephony application comprises a teleconferencing application, and wherein the instructions cause the computer to establish a teleconference between the first and second parties.
- 71. A product according to claim 56, wherein the telephony application comprises a call center application, and wherein the instructions cause the computer to establish voice communications between a customer and a call center agent using the call center application.
- 72. A computer software product, comprising a computer-readable medium in which program instructions are stored, which instructions, when read by a computer that is arranged to communicate with multiple communication service providers, cause the computer to run a telephony application, such that upon receiving a request from a first party, submitted to the telephony application, to place a call using the application to a second party, the computer processes the request to determine a service domain of the call and, responsive to the service domain, selects one of the communication service providers to carry the call between the application and the second party, and connects the second party via the selected communication service provider to communicate with the first party using the application.
- 73. A product according to claim 72, wherein the instructions cause the computer to submit the request to the application via an application programming interface (API), which exposes a platform-independent call model to the application, and so that the second party is connected to the call responsive to a response submitted by the application to the API.
- 74. A product according to claim 72, wherein the instructions cause the computer to choose the communication service provider to carry the call by comparing the service domain of the call to service characteristics of the communication service providers stored in a registry that lists the communication service providers and respective service characteristics thereof.
- 75. A product according to claim 72, wherein the instructions cause the computer to determine the service domain by parsing an address of the second party to whom the call is to be placed.
- 76. A product according to claim 75, wherein the address comprises a telephone number, and wherein the instructions cause the computer to determine the service domain based on a portion of the telephone number.
- 77. A product according to claim 75, wherein the communication service providers comprises a plurality of wireless networks, and wherein the instructions cause the computer to select one of the wireless networks over which to make the call, dependent on the address of the second party.
- 78. A product according to claim 72, wherein the service domain is determined by a communication protocol to be used in communicating with the second party, and wherein the instructions cause the computer to choose the communication service provider such that the communication service provider supports the communication protocol.
- 79. A product according to claim 78, wherein the instructions cause the computer to choose the communication service provider based on determining whether to use a circuit-switched network protocol or a packet-switched network protocol to communicate with the second party.
- 80. A product according to claim 72, wherein the instructions cause the computer to determine the service domain based on a temporal criterion, depending on a point of time at which the call is placed.
CROSS-REFERENCE TO RELATED APPLICATION
[0001] This application claims the benefit of U.S. Provisional Patent Application 60/264,520, filed Jan. 25, 2001, which is incorporated herein by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60264520 |
Jan 2001 |
US |