Triggers not working - What's wrong with this script?

Hi, I have written this script to change the sound of my footsteps depending on whether the player is inside or outside, or rather whether they are in a trigger called inside or not. However, the triggers don't seem to be working. As you can see I have put a print statement and this doesn't appear. I have set up the triggers and tag correctly so I'm sure it must be the code. Can you see where I've gone wrong? Thanks

EDIT - Might not even be the triggers, I've got it recognizing them with static vars but it doesn't change the sounds of the steps. Any Ideas?

var walkSounds : AudioClip[];
var indoorsounds : AudioClip[];
var audioStepLength = 0.3;

var inside = true;

function Awake() {
    if(inside){
        PlayIndoorStepSounds();
    }
    else if (!inside){
        PlayStepSounds();
    }
}
function OnTriggerEnter(other : Collider) {

    if(other.gameObject.CompareTag == ("inside")){
        inside = true;
        print ("Inside");
    }

}
function OnTriggerExit(other : Collider) {

    if(other.gameObject.CompareTag == ("inside")){
        inside = false;
        print ("Outside");
    }

}

function PlayStepSounds () {
    var controller : CharacterController = GetComponent(CharacterController);

    while (true) {
        if (controller.isGrounded && controller.velocity.magnitude > 0.3) {
            audio.clip = walkSounds[Random.Range(0, walkSounds.length)];
            audio.Play();
            yield WaitForSeconds(audioStepLength);
        } else {
            yield;
        }
    }
}

function PlayIndoorStepSounds () {
    var controller : CharacterController = GetComponent(CharacterController);

    while (true) {
        if (controller.isGrounded && controller.velocity.magnitude > 0.3) {
            audio.clip = indoorsounds[Random.Range(0, indoorsounds.length)];
            audio.Play();
            yield WaitForSeconds(audioStepLength);
        } else {
            yield;
        }
    }
}

If you're not receiving OnTriggerEnter messages, the first thing you might try is to double check the collision matrix on this page and ensure that you have all the necessary components.

Found an easier way to do this:

var walkSounds : AudioClip[];
var indoorsounds : AudioClip[];
var audioStepLength = 0.3;

function Awake() {

        PlayStepSounds();
    }

function PlayStepSounds () {
    var controller : CharacterController = GetComponent(CharacterController);

    while (true) {
        if (controller.isGrounded && controller.velocity.magnitude > 0.3 && GUITextScript.INSIDE) {
            audio.clip = indoorsounds[Random.Range(0, indoorsounds.length)];
            audio.Play();
            yield WaitForSeconds(audioStepLength);
        } 
        else if (controller.isGrounded && controller.velocity.magnitude > 0.3) {
            audio.clip = walkSounds[Random.Range(0, walkSounds.length)];
            audio.Play();
            yield WaitForSeconds(audioStepLength);
        } 

        else {
            yield;
        }
    }
}