La solución propuesta por @venturinog y @yayafernandez es la más simple y disponible con cualquier version de Issabel.
Para probar algunas funcionalidades nuevas que estarán disponibles en el próximo release (están disponibles ya mismo en la versión iso beta), armé una solución utilizando accountcode , dialplan injection y funciones ODBC (esto es lo nuevo), donde una extensión con un acccountcode cualquiera configurado solo podrá llamar a otras extensiones que tengan el mismo accountcode, y no a otras. Esto permite salirse del patrón de marcado si por caso alguien quiera restringir llamadas para extensiones dentro de un mismo rango:
Se creaa un dialplan injection con estos comandos:
Set(srcacc=${CDR(accountcode)})
SET(dstacc=${ODBC_SQL(SELECT data FROM sip WHERE keyword='accountcode' AND id='${SQL_ESC(${EXTEN})}')}
GotoIf($["${srcacc}" = "${dstacc}"]?ext-local,${EXTEN},1)
El destino de ese dialplan es un Terminate Call o similar, sería el rechazo de llamado. Los comandos de arriba lo que hacen es comparar el accountcode de la extensión de origen con el accountcode de la extensión de destino, si coinciden, completa el llamado, si no, continua al destino por omisión que corta el llamado.
Luego en CoS se deniega el acceso a Extensions y a Followme, y se hace failover al diaplan injection.
Para que esto funcione, es menester tener activadas funciones odbc, cosa que no está disponible en la versión actual, sino en la beta, nueva versión.
Y luego hay que configurar account codes en cada extension a gusto y placer.