Your meshes are positioned not properly and have geometry unsuitable for Boolean to work - flipped normals, doubles.
Problem 1. Position of objects
In your file objects are placed one inside of another. The modifier will work (under certain conditions) however you won't see any result (because the result of this operation will be only a copy of object, which was expected to be cut off, located inside of the main one).

Solution
Place object to be cut off appropriately; generally you want it to create an indentation somewhere in the main object, so move it out of main object as much as indentation should be. If you want to cut through the other object (so to "break it into 2 pieces) then scale up the one which is used for cutting appropriately.
Problem 2. Normals
Normals of the objects are pointing in the wrong way.

Solution
In Edit mode select all and press Ctrl+N; if nothing changed choose Inside in the Last Operator panel or press Ctrl+Shift+N.
From manual:
The face normals are taken into account for the calculations.
See also Why are some faces in my mesh darker? for more info.
Problem 3. Doubles
There are double vertices in the mesh which prevented normals from being recalcualated successfully.
While Boolean, oddly enough, will work without this being done, it's best to get rid of them because of possible problems furthermore.
Solution
Select all > W > Remove Doubles.
Result

Applying transforms
Scale and rotation aren't applied to both objects. While Boolean will work with that, it's best to apply them to have expected result of work of modifiers. See Why is it important to apply transformation to an objects data?.
Optionally: fixing topology
Listed above is enough to make Boolean start working. Generally you would keep track of topology of objects though, because Ngons can be treated differently in different circumstances (still there are cases when they can be good).
As from manual:
The target topology determines the new topology of the modified mesh.
In your model top faces are Ngons; it's better to not leave this:

and tend to create something more like grid:

It can be easily done with insetting face with I and converting Ngon into grid of quads by filling it with Ctrl+F > GridFill.
Same applies to both sides of both meshes.
More reading:
Ctrl+Nwhile in Edit mode with all selected and proceed to Boolean again. If that doesn't help please attach a copy of your file for reproducing problem. – Mr Zak May 12 '16 at 19:17