A processor architecture for
processing data packets representing voice over
Internet Protocol (VoIP) calls in a packet-switched network is disclosed. According to an embodiment, a VoIP processor executes a voice
packet processing operating system that is configured to monitor or manipulate the packets at an
IP layer,
media layer and signaling layer of the call. The VoIP processor includes a plurality of independently callable primitive
software functions that carry out low-level VoIP
packet processing functions. The VoIP processor executes one or more application programs that selectively call one or more of the primitive
software functions and are independent of any underlying protocols of the existing network, thereby isolating the application programs from low-level
processing details. Further, techniques are described for modifying characteristics of VoIP traffic for the purpose of monitoring and directing the VoIP traffic through a network. The techniques include extracting information associated with the VoIP traffic and using the information for the purpose of controlling access, for fraud detection, for billing, for enforcing policy decisions, for protection against denial of service attacks, for
lawful interception, for
service selection, and other applications.