First, I will be assuming you will take care of the external calling restrictions via ARS and that I do not need to address that at all. i.e. 911, local, Tollfree, LD / 411, Overseas.
For the internal calling to Zero allowed and Rooms restricted, it can be done quite simply with 2 methods
[ul]
[li]Tenanting: Leave all the devices that you want to allow the phone to call in Tenant 1 where they will exist by default. Assign all of your Rooms and voicemail to Tenant 2, and then set the courtesy phone to tenant 3 [/li]
[li]Allow Tenant 1 to call all tenants and to be called by all tenants[/li]
[li]Allow Tenant 2 to call tenant 1 and to be called by tenant 1 (optionally allow tenant 2 to call tenant 3)[/li]
[li]Allow Tenant 3 to call tenant 1 and to be called by Tenant 1[/li]
[/ul]
If tenanting seems too complicated, and considering that some devices cannot be tenanted, you may want to use Interconnection Tables instead. The same logic above applies to interconnection tables (I feel interconnection is easier to configure but I'm old school and my experience pre-dates the introduction of tenanting. Substituting Interconnection for Tenant above you get...
[ul]
[li]Interconnection: Leave all the devices that you want to allow the phone to call in Interconnection #1 where they will exist by default. Assign all of your Rooms and voicemail to Interconnection #2, and then set the courtesy phone to Interconnection #3 [/li]
[li]Allow Interconnection #1 to call all Interconnection #s and to be called by Interconnection #2 and #3[/li]
[li]Allow Interconnection #2 to call Interconnection #1 and to be called by Interconnection #1 (optionally allow Interconnection #2 to call Interconnection #3)[/li]
[li]Allow Interconnection #3 to call Interconnection #1 and to be called by Interconnection #1[/li]
[/ul]