Encamiñamento de chamadas a través do provedor máis económico

De Manuais Informática - IES San Clemente.
Ir a la navegación Ir a la búsqueda

Introdución

A existencia de múltiples provedores de VoIP, con diferentes tarifas, ubicacións, etc., fan necesaria a existencia de ferramentas para conseguir, en tempo real, realizar unha chamada ao menor custo posible. Asterisk::LCR proporciona esta funcionalidade, aínda que con algunhas limitacións.

Asterisk::LCR (Least Cost Routing)

LCR son un conxunto de ferramentas Perl open-source pensadas para xestionar de xeito eficiente múltiples provedores de VoIP en Asterisk, de forma que sempre se seleccione o máis económico.

Configuración

Unha vez instalado o módulo Asterisk::LCR hai que escribir o ficheiro de configuración /etc/asterisk-lcr.cfg que será similar ao seguinte:

[storage]
package = Asterisk::LCR::Storage::DiskBlob.pm

[comparer]
package = Asterisk::LCR::Comparer::XERAND
currency = eur

[dialer]
package  = Asterisk::LCR::Dialer::MinCost
locale = es
limit = 3 

[import:voipjet]
package = Asterisk::LCR::Importer::VoIPJet
dial = us IAX2/login@voipjet/REPLACEME

[import:nufone]
package = Asterisk::LCR::Importer::NuFone
dial = us IAX2/login@NuFone/REPLACEME

O significado das distintas seccións é o seguinte:

  • [storage]. Nesta sección defínense o mecanismo de almacenamento de datos. É posible usar algún xestor de base de datos como MySQL.
  • [comparer]. Aquí defínise a estratexia de comparación. Pódese usar unha que, por exemplo, compares as tarifas sen ter en conta certos detalles, como o establecemento de chamada ou a facturación por minuto. A través do atributo package pódese cambiar a estratexia. De momento, só hai dous módulos (packages) de comparación escritos, XERAN e DUMMY. Para escribir módulos propios pódese consultar a páxina de manual de Asterisk::LCR::Comparer.
  • [dialer]. Nesta sección inclúese a estratexia de marcación. Actualmente hai dúas, 'MinCost' que tenta minimizar o custo para unha ruta dada probando co operador máis económico ata o máis caro, cun límite de 3 provedores; 'MinTime' que minimiza o PDD (Post-Dialing-Delay ou Retardo-Post-Marcación) probando os tres provedores máis baratos ao mesmo tempo. Máis información sobre esta sección nesta páxina.
  • [import:XXX]. Por último, defínense que tarifas de que provedores se quere importar / descargar. Hai unha sección para cada provedor e debe seguir a nomenclatura [import:<nome>]. O nome non se pode repetir en cada sección import. No exemplo hai dous provedores. No primeiros deles o parámetro 'dial' é unha plantilla, 'us' indica que VoIPJet utiliza o estilo de marcación US e IAX2/login@voipjet/REPLACEME hai que reemprazalo cun login real. Tamén REPLACEME ten que reemprazarse cos datos reais cando se xenere o dialplan. Suponse tamén que a definición do peer voipjet se atopa no ficheiro iax.conf baixo a sección [voipjet]. Os provedores soportados son:
    • Asterisk::LCR::Importer::NuFone
    • Asterisk::LCR::Importer::PlainVoIP
    • Asterisk::LCR::Importer::RichMedium
    • Asterisk::LCR::Importer::VoIPJet

Utilización

Crearase un directorio temporal onde copiar a ferramenta LCR:

mkdir /tmp/lcr

Unha vez que se teña escrito o ficheiro de configuración hai que seguir tres pasos:

  • Paso 1: importar as tarifas dos provedores. O seguinte comando importa todos os provedores definidos na seccións [provider:nome] e gárdaos en disco nun formato normalizado:
cd /tmp/lcr
asterisk-lcr-import
  • Paso 2: xerar a árbore LCR, que creará unha árbore de "<prefix> => [ lista de tarifas ordenadas ]" a partir das tarifas importadas no paso anterior:
cd /tmp/lcr
asterisk-lcr-build
  • Paso 3: xerar un dialplan optimizado que se pode cortar e pegar (ou mellor incluír mediante include) no dialplan do Asterisk.
cd /tmp/lcr
asterisk-lcr-dialplan >/etc/asterisk/lcr-dialplan.conf

Localización da ferramenta

En relación coas opcións dependentes de cada idioma/país, Asterisk::LCR pode xerar dialplan adaptados a cada un. Os ficheiros para as opcións de localización están no cartafol /lib/Asterisk/LCR/Locale/.

Actualmente, hai dúas táboas de tradución implementadas: us.txt (para a marcación US-style) e fr.txt (para Francia + chamadas extranxeiras).

Información para desenvolvedores e descarga

Para descargar o códig fonte e obter información para desenvolvedores temos as seguintes páxinas: