Todos hemos tenido clientes cuyas líneas telefónicas son analógicas pero que quieren instalar una central telefónica IP. En lo personal prefiero trabajar con Grandstream por ser una marca con buen respaldo, equipos de calidad y de fácil instalación.
En esta oportunidad vamos a configurar una troncal SIP para conectar nuestro sistema Issabel con el gateway GXW-4104, y los dialplans para separar las llamadas por canal.
Escenario
- 2 líneas analógicas: 1 para llamadas locales y 1 para llamadas de larga distancia nacional (LDN).
- 1 telular para llamadas a móviles.
- 1 línea analógica para llamadas internacionales.
- 1 servidor Issabel con IP 192.168.200.2.
- 1 gateway Grandstream GXW-4104 con IP 192.168.200.3.
Troncal SIP en Issabel
Primero vamos a configurar la troncal SIP en nuestro Issabel. En el menú vamos a PBX → PBX Configuration → Trunks → Add SIP Trunk.

- Colocamos el nombre de la troncal SIP.
- Si lo deseamos, le configuramos un CID.
- Por último, completamos los PEER Details:
username=trunk1
type=friend
secret=admin123 ;;;; Usar contraseñas fuertes
qualify=yes
insecure=port,invite
host=192.168.200.3 ;;;; IP del gateway GXW-4104
dtmfmode=rfc2833
disallow=all
context=from-pstn
allow=ulaw&alaw&gsm
nat=no
Ya podemos guardar y hacer reload en nuestro Issabel.


Rutas de salida
Con la troncal SIP configurada, vamos a crear los dialplans que necesitamos para separar los canales de nuestro gateway. En mi caso, como me encuentro en Panamá, voy a configurar los planes basados en llamadas a Panamá.
En el menú vamos a Outbound Routes:
- Colocamos un nombre para identificar nuestra ruta de salida.
- Completamos los Dial Patterns.
- Por último, en la secuencia de troncales seleccionamos, en la posición 0, la troncal que creamos anteriormente.

Ya tenemos nuestro dial pattern configurado; más adelante explico cada uno.
Configuración del gateway GXW-4104
Ahora vamos a nuestro GXW-4104.

Primero vamos a Accounts → Account 1 → General Settings. Activamos la cuenta, asignamos un nombre de identificación y colocamos como SIP Server la dirección IP de nuestro Issabel, 192.168.200.2. Si hemos cambiado el puerto 5060 por defecto de nuestra PBX, el formato será 192.168.200.2:XXXXX.

Guardamos los cambios, vamos a User Account y completamos los datos con el username y el secret que configuramos en la troncal SIP de Issabel.

Listo: podemos guardar y reiniciar el gateway. En el panel de operador de la PBX veremos que la troncal SIP está registrada correctamente.
Separar los canales (puertos FXO)
- Puerto 1: línea analógica para llamadas locales.
- Puerto 2: línea analógica para llamadas LDN.
- Puerto 3: el telular.
- Puerto 4: la línea para llamadas internacionales.
En el menú del gateway vamos a FXO Lines → Dialing. En el campo Round-robin and/or Flexible viene por defecto rr:1-4;, lo que significa que el sistema seleccionará el canal que esté disponible. Nosotros lo vamos a configurar como rr:1;rr:2;rr:3;rr:4;; de esta manera separamos cada canal.
Luego, en el campo Prefix to Specify Port, colocaremos el prefijo que vamos a enviar desde nuestra PBX. La sintaxis es: prefijo + canal + destino. Por defecto el prefijo es 99, pero podemos cambiarlo.

Ya terminamos con la configuración del gateway: guardamos todo y reiniciamos el equipo.
Configurar los canales en la PBX
Volvemos a nuestra PBX, vamos a Outbound Routes y seleccionamos la ruta creada anteriormente.


La configuración se hace en el campo Prepend:
- El primer dialplan es para llamadas locales; el prepend será 991.
- El siguiente es para llamadas internacionales: 994.
- Este también es para llamadas locales, pero con otras condiciones en el match pattern: 991.
- El siguiente es para llamadas LDN. Como en Panamá para algunos números hay que marcar 011, el prepend quedará 992011.
- Este es para llamadas a móviles: 993.
- Por último, también llamadas LDN pero con condiciones distintas al anterior: 992011.
Con esto ya podemos guardar el dialplan y hacer reload de nuestro servicio Asterisk.
Cómo funcionan los dial patterns
Un patrón de marcación es un conjunto único de dígitos que seleccionará esta ruta y enviará la llamada a las troncales designadas. Si un patrón marcado coincide con esta ruta, no se intentarán rutas posteriores. Si los grupos de tiempo están habilitados, las rutas siguientes se verificarán para coincidencias fuera de los horarios designados.
Reglas:
- X: coincide con cualquier dígito del 0 al 9.
- Z: coincide con cualquier dígito del 1 al 9.
- N: coincide con cualquier dígito del 2 al 9.
- [1237-9]: coincide con cualquier dígito entre corchetes (en el ejemplo: 1, 2, 3, 7, 8, 9).
- .: comodín, coincide con uno o más dígitos marcados.
- Prepend (anteponer): dígitos que se anteponen cuando hay coincidencia. Si el número marcado coincide con los patrones de las columnas siguientes, estos dígitos se agregarán antes de enviarlo a las troncales.
- Prefix (prefijo): prefijo que se elimina cuando hay coincidencia. El número marcado se compara con este y con las columnas siguientes; si coincide, el prefijo se elimina antes de enviarlo a las troncales.
- Match pattern (patrón de coincidencia): el número marcado se compara con el prefijo + este patrón. Si coincide, la parte del número que corresponde al patrón se envía a las troncales.
- Caller ID (identificador de llamada): si se indica, el número marcado solo coincidirá con el patrón + prefijo si el identificador de llamada transmitido coincide con este. Cuando las extensiones hacen llamadas salientes, el identificador de llamada será su número de extensión y no su CID saliente. Las secuencias especiales anteriores también se pueden usar aquí.
Puedes consultar la documentación oficial en la wiki de Asterisk. Cualquier consulta, estoy a la orden.