Last active
March 12, 2025 06:29
-
-
Save razametal/18785923be942af78ef8a0984903d5dd to your computer and use it in GitHub Desktop.
Asterisk 22 FreePBX en Debian 12 Bookworm
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Asterisk 22 / FreePBX 17 en Debian 12 Bookworm | |
| apt -y install build-essential git curl wget libnewt-dev libssl-dev libncurses5-dev subversion libsqlite3-dev libjansson-dev libxml2-dev uuid-dev default-libmysqlclient-dev htop sngrep lame ffmpeg mpg123 vim expect pkg-config libedit-dev cmake | |
| apt -y install linux-headers-`uname -r` openssh-server apache2 mariadb-server mariadb-client bison flex php8.2 php8.2-curl php8.2-cli php8.2-common php8.2-mysql php8.2-gd php8.2-mbstring php8.2-intl php8.2-xml php-pear curl sox sqlite3 automake libtool autoconf unixodbc-dev uuid libasound2-dev libogg-dev libvorbis-dev libicu-dev libcurl4-openssl-dev odbc-mariadb libical-dev libneon27-dev libsrtp2-dev libspandsp-dev sudo libtool-bin python-dev-is-python3 unixodbc wget software-properties-common nodejs npm ipset iptables fail2ban php-soap libncurses-dev libblocksruntime-dev xmlstarlet libopusfile-dev libopus-dev | |
| cd /usr/src | |
| wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-22-current.tar.gz | |
| tar xvf asterisk-22-current.tar.gz | |
| cd asterisk-22.*/ | |
| contrib/scripts/get_mp3_source.sh | |
| contrib/scripts/install_prereq install | |
| git clone https://github.com/traud/asterisk-opus | |
| cp --verbose ./asterisk-opus*/include/asterisk/* ./include/asterisk | |
| cp --verbose ./asterisk-opus*/codecs/* ./codecs | |
| cp --verbose ./asterisk-opus*/res/* ./res | |
| cp --verbose ./asterisk-opus*/formats/* ./formats | |
| patch -p1 <./asterisk-opus*/asterisk.patch | |
| patch -p1 <./asterisk-opus*/enable_native_plc.patch | |
| ./bootstrap.sh | |
| ./configure --libdir=/usr/lib64 --with-pjproject-bundled --with-jansson-bundled --with-opus | |
| make menuselect.makeopts | |
| menuselect/menuselect --enable format_mp3 menuselect.makeopts | |
| make | |
| make install | |
| make config | |
| ldconfig | |
| groupadd asterisk | |
| useradd -r -d /var/lib/asterisk -g asterisk asterisk | |
| usermod -aG audio,dialout,users asterisk | |
| chown -R asterisk:asterisk /etc/asterisk | |
| chown -R asterisk:asterisk /var/{lib,log,spool}/asterisk | |
| chown -R asterisk:asterisk /usr/lib64/asterisk | |
| sed -i 's|#AST_USER|AST_USER|' /etc/default/asterisk | |
| sed -i 's|#AST_GROUP|AST_GROUP|' /etc/default/asterisk | |
| echo "/usr/lib64" >> /etc/ld.so.conf.d/x86_64-linux-gnu.conf | |
| ldconfig | |
| sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php/8.2/apache2/php.ini | |
| sed -i 's/\(^memory_limit = \).*/\1256M/' /etc/php/8.2/apache2/php.ini | |
| sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/apache2/apache2.conf | |
| sed -i 's/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf | |
| a2enmod rewrite | |
| a2enmod ssl | |
| a2ensite default-ssl.conf | |
| systemctl restart apache2 | |
| rm /var/www/html/index.html | |
| cat <<EOF > /etc/odbcinst.ini | |
| [MySQL] | |
| Description = ODBC for MySQL (MariaDB) | |
| Driver = /usr/lib/x86_64-linux-gnu/odbc/libmaodbc.so | |
| FileUsage = 1 | |
| EOF | |
| cat <<EOF > /etc/odbc.ini | |
| [MySQL-asteriskcdrdb] | |
| Description = MySQL connection to 'asteriskcdrdb' database | |
| Driver = MySQL | |
| Server = localhost | |
| Database = asteriskcdrdb | |
| Port = 3306 | |
| Socket = /var/run/mysqld/mysqld.sock | |
| Option = 3 | |
| EOF | |
| cd /usr/src | |
| wget http://deb.freepbx.org/freepbx17-dev/pool/main/f/ffmpeg/ffmpeg_5.1.6-12.sng12_amd64.deb | |
| apt -y --allow-downgrades install /usr/src/ffmpeg_5.1.6-12.sng12_amd64.deb | |
| cd /usr/src | |
| wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-17.0-latest-EDGE.tgz | |
| tar zxvf freepbx-17.0-latest-EDGE.tgz | |
| cd /usr/src/freepbx/ | |
| touch /etc/asterisk/{modules,cdr}.conf | |
| ./start_asterisk start | |
| ./install -n | |
| sed -i 's|;runuser|runuser|' /etc/asterisk/asterisk.conf | |
| sed -i 's|;rungroup|rungroup|' /etc/asterisk/asterisk.conf | |
| fwconsole ma disablerepo commercial | |
| fwconsole ma install callrecording core dashboard customappsreg infoservices logfiles pm2 soundlang sipsettings voicemail | |
| fwconsole ma downloadinstall soundlang timeconditions queues ivr ringgroups iaxsettings api printextensions cdr music bulkhandler | |
| fwconsole reload | |
| asterisk -rx "core restart now" | |
| cat <<EOF > /etc/systemd/system/freepbx.service | |
| [Unit] | |
| Description=FreePBX VoIP Server | |
| After=mariadb.service | |
| [Service] | |
| Type=oneshot | |
| RemainAfterExit=yes | |
| ExecStart=/usr/sbin/fwconsole start -q | |
| ExecStop=/usr/sbin/fwconsole stop -q | |
| [Install] | |
| WantedBy=multi-user.target | |
| EOF | |
| systemctl daemon-reload | |
| systemctl enable freepbx | |
| cd /usr/src | |
| git clone https://github.com/BelledonneCommunications/bcg729 | |
| cd bcg729 | |
| cmake . -DCMAKE_INSTALL_PREFIX=/usr | |
| make | |
| make install | |
| cd /usrc/src | |
| git clone https://github.com/arkadijs/asterisk-g72x.git | |
| cd asterisk-g72x | |
| ./autogen.sh | |
| ./configure --with-asterisk160 --with-bcg729 --with-asterisk-includes=/usr/src/asterisk-22.2.0/include/ --prefix=/usr --libdir=/usr/lib64 | |
| make | |
| make install | |
| asterisk -rx "module load codec_g729.so" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment