Patent ID: 7209473

Claim:
A method of processing data packets representing voice over Internet Protocol (VoIP) calls in a packet-switched network, the method comprising the computer-implemented steps of: providing in the packet-switched network one or more VoIP processors at each of a plurality of alternative routing points such that the VoIP processors form a virtual network overlaid upon the packet-switched network, wherein each of the VoIP processors (a) executes a voice packet processing operating system that is configured to monitor or manipulate voice packets at a transport layer, a media layer and a signaling layer of the call, and (b) includes a plurality of independently callable primitive software functions that carry out low-level VoIP packet processing functions; detecting VoIP packets that pass through the one or more VoIP processors and identifying one or more values of fields in the packets; creating and storing call state information associated with each call that is represented by the one or more values of fields in the packets; creating and storing call state information associated with each call that is represented by the one or more VoIP packets; detecting, at one of the VoIP processors, network congestion along a routing path in the packet-switched network; and modifying one or more of the VoIP packets at either the transport layer, the media layer, or the signaling layer as required to carry out one or more call processing functions of one or more application programs to re-route a call along a virtual path between two or more of the VoIP processors of the virtual network.