Problema 003:
¿Cómo implementar límites personalizados de llamadas usando el Plan de Marcación?
Ejemplo de Uso: Limitar el número de llamadas salientes simultáneas en una ruta de llamadas salientes.
Receta 003: 
En las primeras versiones de Asterisk esto se hacia con parámetros en los canales como el SIP, pero mas recientemente se recomienda el uso de las aplicaciones GROUP( ) y GROUP_COUNT( ) del Plan de Marcación, haciendo mas flexible y poderoso el control.
GROUP( ) y GROUP_COUNT( )
El grupo definido con GROUP( ) es propio de un objeto especificado como argumento a la función, de modo que podría ser una extensión o un proveedor de minutos. La función GROUP_COUNT( ) simplemente cuenta cuantos canales hay activos dentro de dicho grupo lo que nos sirve para tomar decisiones.
Veamos un ejemplo de implementación:
[salida-local]
exten => _9NXXXXXX,1,Verbose(2,Llamada saliente local)
          same,n,Set(GROUP(salida)=miproveedorsip )
          same,n,Set(CONTEO=${GROUP_COUNT(miproveedorsip@salida)})
          same,n,NoOp(Existen ${CONTEO} llamadas salientes activas en miproveedorsip)
          same,n,GotoIf($[${CONTEO} > 5]?denegar:marcar)
          same,n(denegar),Verbose(2,Limite de llamadas alcanzado en miproveedorsip)
          same,n,Hangup( )
          same,n(marcar),Verbose(2,Realizando llamada saliente en miproveedorsip)
          same,n,Dial(SIP/ miproveedorsip/${EXTEN:1})
Aplicación GotoIf
En la aplicación GotoIf comparamos el valor de la variable CONTEO y si es mayor a 5 llamadas, es decir si ya existen 5 llamadas activas en esta ruta, enviamos la llamada a la etiqueta “denegar” para colgar la llamada, de lo contrario es decir si no hemos alcanzado el límite de 5 llamadas enviamos el control a la etiqueta “marcar” y luego hacemos el Dial correspondiente.

http://www.asteriskcolombia.org/recetas/receta-003/