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.