This is the code that I use. It works, is fast, and you should be able to use it to ignore certain clipping planes (e.g. in directional light shadow mapping). Plus it will tell you if your AABB is inside, outside, or intersecting your frustum.
UInt ViewVolume:: intersects( const AABB3& box ) const
{
const Plane3* planes = &near;
UInt result = INSIDE;
for ( Index i = 0; i < 6; i++ )
{
// planes have unit-length normal, offset = -dot(normal, point on plane)
const Plane3& plane = planes[i];
Index nx = plane.normal.x > Real(0);
Index ny = plane.normal.y > Real(0);
Index nz = plane.normal.z > Real(0);
// getMinMax(): 0 = return min coordinate. 1 = return max.
Real dot = (plane.normal.x*box.getMinMax(nx).x) + (plane.normal.y*box.getMinMax(ny).y) + (plane.normal.z*box.getMinMax(nz).z);
if ( dot < -plane.offset )
return OUTSIDE;
Real dot2 = (plane.normal.x*box.getMinMax(1-nx).x) + (plane.normal.y*box.getMinMax(1-ny).y) + (plane.normal.z*box.getMinMax(1-nz).z);
if ( dot2 <= -plane.offset )
result = INTERSECTS;
}
return result;
}