I agree with Charles on the Roommaster aspect. Only one file needed to be changed in my instance. Works well.
911 can be handled with an outbound rule. You can use extension ranges or even groups such that a 911 call from the aforementioned can be say strip 3 and prepend XXXX or whatever you might use for the operator/front desk etc. Just keep in mind the order in which rules are invoked and if you have predefined 911 call handling in emergency calls.