By Mark Spencer <[email protected]> and the Asterisk.org developer community.
Copyright (C) 2001-2021 Sangoma Technologies Corporation and other copyright holders.
Es imperativo que lea y comprenda completamente el contenido del documento de información de seguridad antes de intentar configurar y ejecutar un servidor Asterisk.
Consulte Consideraciones de seguridad importantes para obtener más información.
Asterisk es un conjunto de herramientas de telefonía y PBX de código abierto. En cierto sentido, es un middleware entre Internet y los canales de telefonía en la parte inferior, y las aplicaciones de Internet y telefonía en la parte superior. Sin embargo, Asterisk admite más interfaces de telefonía que sólo la telefonía por Internet. Asterisk también tiene una gran cantidad de soporte para la telefonía PSTN tradicional.
Para obtener más información sobre el proyecto en sí, visite la página de inicio de Asterisk y la documentación oficial. Además encontrará mucha información compilada por la comunidad Asterisk en voip-info.org.
Hay un libro sobre Asterisk publicado por O'Reilly bajo la licencia Creative Commons. Está disponible en librerías y en una versión descargable en el sitio web asteriskdocs.org.
El PBX de código abierto de Asterisk se desarrolla y prueba principalmente en el sistema operativo GNU/Linux y es compatible con todas las distribuciones principales de GNU/Linux.
Asterisk también ha sido "portado" y, según se informa, también funciona correctamente en otros sistemas operativos, incluidos Sun Solaris, Mac OS X de Apple, Cygwin y las variantes BSD.
Primero, asegúrese de tener hardware compatible (pero tenga en cuenta que no necesita NINGÚN hardware especial, ni siquiera una tarjeta de sonido) para instalar y ejecutar Asterisk.
El hardware de telefonía compatible incluye:
Si está actualizando desde una versión anterior de Asterisk, asegúrese de leer el archivo UPGRADE.txt en el directorio fuente. Hay algunos archivos y opciones de configuración que tendrás que cambiar, aunque hicimos todo lo posible para mantener la compatibilidad con versiones anteriores.
Para descubrir nuevas funciones para usar, consulte los ejemplos de configuración en el directorio de configuración de la distribución del código fuente. Para obtener una lista de nuevas características en esta versión de Asterisk, consulte el archivo CAMBIOS.
Asegúrese de que su sistema contenga un compilador y bibliotecas de desarrollo compatibles. Asterisk requiere la versión 4.1 o superior de la Colección de compiladores GNU (GCC) o superior, o un compilador que admita la especificación C99 y algunas de las extensiones del lenguaje gcc. Además, su sistema necesita tener disponibles los encabezados de la biblioteca C y los encabezados y bibliotecas para ncurses.
Hay muchos módulos que tienen dependencias adicionales. Para ver qué bibliotecas se buscan, consulte ./configure --help
o ejecute make menuselect
para ver las dependencias de módulos específicos.
En muchas distribuciones, estas dependencias se instalan mediante paquetes con nombres como 'glibc-devel', 'ncurses-devel', 'openssl-devel' y 'zlib-devel' o similares.
Entonces, procedamos:
Hay más documentos que este en el directorio de documentos. Es posible que también desee consultar los archivos de configuración que contienen ejemplos y guías de referencia en el directorio de configuraciones.
./configure
Ejecute el script de configuración para adivinar los valores de las variables dependientes del sistema utilizadas durante la compilación. Si el script indica que faltan algunos componentes necesarios, puede ejecutar ./contrib/scripts/install_prereq install
para instalar los componentes necesarios. Tenga en cuenta que esto instalará todas las dependencias para cada funcionalidad de Asterisk. Después de ejecutar el script, deberá volver a ejecutar ./configure
.
make menuselect
[opcional]Esto es necesario si desea seleccionar los módulos que se compilarán y verificar las dependencias de varios módulos opcionales.
make
Suponiendo que la compilación se complete correctamente:
make install
Si es la primera vez que trabaja con Asterisk, es posible que desee instalar el PBX de muestra, con extensiones de demostración, etc. Si es así, ejecute:
make samples
Al hacerlo, se sobrescribirán los archivos de configuración existentes que haya instalado.
# asterisk -vvvc
Verá un montón de mensajes detallados pasar por su pantalla a medida que Asterisk se inicializa (ese es el modo "muy, muy detallado"). Cuando esté listo, si especificaste la "c", obtendrás una consola de línea de comando, que se ve así:
*CLI>
Puede escribir "core show help" en cualquier momento para obtener ayuda con el sistema. Para obtener ayuda con un comando específico, escriba "core show help". Para iniciar el PBX usando su tarjeta de sonido, puede escribir "marcación de consola" para marcar el PBX. Luego puede utilizar "respuesta de consola", "colgar consola" y "marcar consola" para simular las acciones de un teléfono. Recuerde que si no tiene una tarjeta de sonido full duplex (y Asterisk le dirá en algún lugar de sus mensajes detallados si la tiene o no), entonces no funcionará correctamente (todavía no).
"man asterisk" en el símbolo del sistema de Unix/Linux le brindará información detallada sobre cómo iniciar y detener Asterisk, así como todas las opciones de la línea de comando para iniciar Asterisk.
Siéntase libre de revisar los archivos de configuración en /etc/asterisk
, donde encontrará mucha información sobre lo que puede hacer con Asterisk.
Todos los archivos de configuración de Asterisk comparten un formato común. Los comentarios están delimitados por ';' (ya que '#', por supuesto, al ser un dígito DTMF, puede aparecer en muchos lugares). Un archivo de configuración se divide en secciones cuyos nombres aparecen entre []. Cada sección normalmente contiene dos tipos de declaraciones, las de la forma 'variable = valor' y las de la forma 'objeto => parámetros'. Internamente, el uso de '=" y '=>' es exactamente el mismo, por lo que se usan sólo para ayudar a que el archivo de configuración sea más fácil de entender y no afectan la forma en que se analiza realmente.
Las entradas del formato 'variable=valor' establecen el valor de algún parámetro en asterisco. Por ejemplo, en chan_dahdi.conf, se podría especificar:
switchtype=national
Para indicarle a Asterisk que el switch al que se están conectando es del tipo “nacional”. En general, el parámetro se aplicará a las instancias que se produzcan por debajo de su especificación. Por ejemplo, si el archivo de configuración dice:
switchtype = national
channel => 1-4
channel => 10-12
switchtype = dms100
channel => 25-47
El tipo de conmutación "nacional" se aplicaría a los canales del uno al cuatro y a los canales del 10 al 12, mientras que el tipo de conmutación "dms100" se aplicaría a los canales del 25 al 47.
El "objeto => parámetros" crea una instancia de un objeto con los parámetros dados. Por ejemplo, la línea "canal => 25-47" crea objetos para los canales 25 al 47 de la tarjeta, obteniendo la configuración a partir de las variables especificadas anteriormente.
Quienes utilicen teléfonos SIP deben tener en cuenta que Asterisk es sensible a grandes saltos en el tiempo. Cambiar manualmente la hora del sistema usando date(1) (u otros comandos similares) puede provocar que fallen los registros SIP y otros procesos internos. Si su sistema no puede mantener la hora exacta por sí solo, utilice NTP para mantener el reloj del sistema sincronizado en "tiempo real". NTP está diseñado para mantener sincronizado el reloj del sistema acelerando o desacelerando el reloj del sistema hasta que esté sincronizado en "tiempo real" en lugar de saltar el tiempo y causar discontinuidades. La mayoría de las distribuciones de Linux incluyen versiones precompiladas de NTP. Tenga cuidado con algunos métodos de sincronización horaria que obtienen periódicamente la hora real correcta y luego configuran manualmente el reloj del sistema.
Los cambios de hora aparente debido al horario de verano son solo eso, aparentes. El uso del horario de verano en un sistema Linux es puramente una cuestión de interfaz de usuario y no afecta el funcionamiento del kernel de Linux ni de Asterisk. El reloj del sistema en los kernels de Linux funciona en UTC. UTC no utiliza el horario de verano.
También tenga en cuenta que este problema es independiente de la sincronización de los canales TDM y se sabe que al menos afecta los registros SIP.
Dependiendo del tamaño de su sistema y su configuración, Asterisk puede consumir una gran cantidad de descriptores de archivos. En UNIX, los descriptores de archivos se utilizan para algo más que archivos en el disco. Los descriptores de archivos también se utilizan para manejar la comunicación de red (por ejemplo, llamadas SIP, IAX2 o H.323) y el acceso al hardware (por ejemplo, hardware de troncales analógicos y digitales). Asterisk accede a muchos archivos en disco para todo, desde información de configuración hasta almacenamiento de correo de voz.
La mayoría de los sistemas limitan la cantidad de descriptores de archivos que Asterisk puede tener abiertos al mismo tiempo. Esto puede limitar la cantidad de llamadas simultáneas que su sistema puede manejar. Por ejemplo, si el límite se establece en 1024 (un valor predeterminado común), Asterisk puede manejar aproximadamente 150 llamadas SIP simultáneamente. Para cambiar la cantidad de descriptores de archivos, siga las instrucciones para su sistema a continuación:
Si su sistema utiliza PAM (Módulos de autenticación conectables), edite /etc/security/limits.conf
. Agregue estas líneas al final del archivo:
root soft nofile 4096
root hard nofile 8196
asterisk soft nofile 4096
asterisk hard nofile 8196
(ajusta los números al gusto). Es posible que tengas que reiniciar el sistema para que estos cambios surtan efecto.
Si no hay instrucciones arriba adaptadas específicamente a su sistema, puede intentar agregar el comando ulimit -n 8192
al script que inicia Asterisk.
Consulte el directorio de documentos para obtener más documentación sobre varias funciones. Nuevamente, lea todos los ejemplos de configuración que incluyen documentación sobre las opciones de configuración.
Finalmente, es posible que desee visitar el sitio de soporte y unirse a la lista de correo si está interesado en obtener más información.
¡Bienvenido a la creciente comunidad mundial de usuarios de Asterisk!
Mark Spencer, and the Asterisk.org development community
Asterisk es una marca registrada de Sangoma Technologies Corporation