Patent ID: 7454505

Claim:
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, 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, and 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.