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!