You need the onenter and onleave functions there too.
You can use either the editor or your script to put the sound. It's a matter of personal choice though; I prefer script even though it's not as simple, just because I find it so easy to overlook things I put in the level editor.
Here's an example of my script I use for a locked door.
void LockedDoor2(string &in asEntity)
{
if (GetGlobalVarInt("Lock") == 1){ SetMessage("Entryway", "LockedDoor2", 0);
PlaySoundAtEntity("locked_door", "locked_door.snt", "prison_1", 0, false);
}
}
I had SetGlobalVarInt("Lock", 1); in my OnStart for the variable, as well as SetEntityPlayerInteractCallback("prison_section_1", "LockedDoor", false); for the function. So yea, like the Panda Man said (I totally just made that up, sorry
) you can use level editor if you find it harder to script that stuff.