1. A system for routing interactions, the system comprising: a plurality of media servers operating on network-attached computers, each adapted to handle interactions of one or more specific media types; a routing server comprising a routing database and operating on a network-attached computer; wherein upon receiving or initiating an interaction of a specific media type, a first media server from the plurality of media servers sends a route request message comprising at least an interaction identifier and a collection of interaction-specific data to the routing server; wherein the routing server periodically executes, using data from the routing database, a routing script and sends routing instructions to the plurality of media servers; and wherein the routing script comprises at least the execution of a constraint-based optimization process that matches the plurality of interactions requiring routing to one or more of a plurality of resources that may handle interactions.