Dialplan de Asterisk para celulares de Argentina

Después de consultar el sitio de la Comisión Nacional de Comunicaciones, y parsear un pdf que convertí a texto plano gracias al comando pdftotxt, pude identificar los destinos cuya característica es de solo 3 números y por lo tanto, los celulares tienen 7 dígitos. Así, completan los 10 dígitos.

Convertir PDF a texto plano

pdftotext -layout /tmp/Geo.pdf /tmp/Geo.txt

Extraer todos los valores de una columna (INDICATIVO INTERURBANO) con php

$lines = file("/tmp/Geo.txt");
$pattern = '/^[A-Z]{1,}[\s]{3,}([\d*]{2,4})(.)*/';
$prefix = array();

foreach ($lines as $line_num => $line) 
{
  preg_match($pattern, $line, $matches);

  if (count($matches) == 0) 
  {
    continue;
  }
  if (!in_array($matches[1], $prefix) && strlen($matches[1]) == 3)
  {
    $prefix[] = $matches[1];
  }
}
sort($prefix);
print_r($prefix);

El resultado es el siguiente:

Array
(
    [0] => 220
    [1] > 221
    [2] > 223
    [3] > 230
    [4] > 236
    [5] > 237
    [6] > 249
    [7] > 260
    [8] > 261
    [9] > 263
    [10] > 264
    [11] > 266
    [12] > 280
    [13] > 291
    [14] > 294
    [15] > 297
    [16] > 298
    [17] > 299
    [18] > 336
    [19] > 341
    [20] > 342
    [21] > 343
    [22] > 345
    [23] > 348
    [24] > 351
    [25] > 353
    [26] > 358
    [27] > 362
    [28] > 364
    [29] > 370
    [30] > 376
    [31] > 379
    [32] > 380
    [33] > 381
    [34] > 383
    [35] > 385
    [36] > 387
    [37] > 388
)

Entonces, en las salidas a celulares, la configuración es la siguiente:

022[013]15XXXXXXX
023[067]15XXXXXXX
024915XXXXXXX
026[01346]15XXXXXXX
028015XXXXXXX
029[14789]15XXXXXXX
033615XXXXXXX
034[12358]15XXXXXXX
035[138]15XXXXXXX
036[24]15XXXXXXX
037[069]15XXXXXXX
038[013578]15XXXXXXX

Agregamo por último la local (Buenos Aires) y la general (todos menos los prefijos de 3 dígitos).

022[013]15XXXXXXX
023[067]15XXXXXXX
024915XXXXXXX
026[01346]15XXXXXXX
028015XXXXXXX
029[14789]15XXXXXXX
033615XXXXXXX
034[12358]15XXXXXXX
035[138]15XXXXXXX
036[24]15XXXXXXX
037[069]15XXXXXXX
038[013578]15XXXXXXX
0[23]XXX15XXXXXX
15XXXXXXXX
01115XXXXXXXX

La última regla es para los celulares locales. Esto, depende del código de area en donde se haya instalado la central. Como en este caso se encuentra en Buenos Aires y el código de area es de 2 dígitos (11) los números de celular son de 8 dígitos.

En el momento de la configuración me molestó un parámetro de estilo del FreePBX que limita el ancho de la tabla a 500px. Editando el archivo: /var/www/html/admin/modules/core/core.css mejoran las cosas.

Salud!