Detecting collision event for specific surface of cube

I have a RigidBody (a capsule) with a CharacterController, and I am trying to detect when that interacts with the top of a cube using OnCollisionEnter, yet the OnCollisionEnter function never runs (apparently). Any idea why? Noe: I am very new to Unity so I’m not sure what other information to include. If you will comment with requests I will reply as soon as possible.

Cube script:

using UnityEngine;
using System.Collections;

public class onHit : MonoBehaviour {

	// Use this for initialization
	void Start () {
		GetComponent<Renderer>().material.color = Color.green;
	}
	
	// Update is called once per frame
	void Update () {
	
	}
	void OnCollisionEnter (Collision col)
	{
			//Destroy(col.gameObject);
			GetComponent<Renderer>().material.color = Color.red;
	}

}

Read the doc on OnCollisionEnter, sounds like you are not meeting the criteria for a Collision.