Cisco SPA504gおよびアスタリスクの自動プロビジョニング。 パート1. Asterisk + MySQLのビルドと構成

ソースデータ



そのため、アスタリスクにオフィステレフォニーを導入したいと考えています。

素晴らしい願望、素晴らしいオープンソースソリューション。



OS: Centos 6.5 64ビット

PBXバージョン: SVNからの最新の安定リリース(現在はアスタリスクSVN-branch-12-r409131)

電話:ここでは、Cisco SPA504G(市場のSMBセグメント)が選択されました。





OSの準備




ソースから収集するため、コンパイルに必要なソフトウェアのセットをダウンロードしてOSを準備します。



[root@asterisk ~]# yum update -y [root@asterisk ~]# yum groupinstall -y "Development Tools"
      
      







今、コンパイルに必要なアスタリスクとDAHDI、LibPRIとlibjanssonのソースをダウンロードします



 [root@asterisk ~]# cd /usr/local/src/ [root@asterisk src]# svn checkout http://svn.asterisk.org/svn/asterisk/branches/12 asterisk [root@asterisk src]# git clone git://git.asterisk.org/dahdi/linux dahdi-linux [root@asterisk src]# git clone git://git.asterisk.org/dahdi/tools dahdi-tools [root@asterisk src]# svn checkout http://svn.asterisk.org/svn/libpri/branches/1.4 libpri [root@asterisk src]# wget http://www.digip.org/jansson/releases/jansson-2.5.tar.gz
      
      







DAHDI、LibPRI、およびアスタリスク自体のビルドに必要なパッケージをインストールします

 [root@asterisk ~]# yum install -y wget ncurses-devel openssl-devel newt-devel libxml2-devel sqlite-devel libuuid-devel unixODBC-devel libcurl-devel libogg-devel libvorbis-devel speex-devel spandsp-devel freetds-devel net-snmp-devel iksemel-devel corosynclib-devel popt-devel libtool-ltdl-devel lua-devel libsqlite3x-devel radiusclient-ng-devel portaudio-devel postgresql-devel libresample-devel neon-devel libical-devel openldap-devel gmime22-devel sqlite2-devel mysql-devel bluez-libs-devel jack-audio-connection-kit-devel gsm-devel libedit-devel jansson-devel libsrtp-devel pjproject-devel libxslt-devel
      
      







これらのパッケージのリストは、Asteriskのソースコードのcontrib / scriptsディレクトリでスクリプトを実行することにより取得できます。

 [root@asterisk ~]# /usr/local/src/asterisk/contrib/scripts/install_prereq test
      
      







DAHDIとLibPRIを構築する




 [root@asterisk src]# cd dahdi-linux [root@asterisk dahdi-linux]# make && make install
      
      







makeコマンドへの応答でエラーが発生した場合:

 You do not appear to have the sources for the 2.X.XX-XXX.el6.x86_64 kernel installed.
      
      





そのため、OSはヘッダーファイルを含む新しいカーネルをプルし、ブートしたいと考えています。

サーバーを再起動します。



組み立てと設置を続けます

 [root@asterisk dahdi-linux]# cd ../dahdi-tools/ [root@asterisk dahdi-tools]# ./configure [root@asterisk dahdi-tools]# make && make install && make config
      
      







DAHDIが終了しました。 LibPRIへ行く

 [root@asterisk dahdi-tools]# cd ../libpri/ [root@asterisk libpri]# make && make install
      
      







これで、CentOSリポジトリにないlibjanssonキュー

 [root@asterisk src]# tar -zxf jansson-2.5.tar.gz [root@asterisk src]# cd jansson-2.5 [root@asterisk jansson-2.5]# ./configure --prefix=/usr/ && make clean && make && make install && ldconfig
      
      







アスタリスクアセンブリ



 [root@asterisk jansson-2.5]# cd ../asterisk [root@asterisk asterisk]# ./configure --libdir=/usr/lib64 [root@asterisk asterisk]# make menuselect
      
      







Asterisk Realtime Configurationが機能するには、アドオン-> res_config_mysqlを有効にする必要があります

次-保存して終了

 [root@asterisk asterisk]# make && make install
      
      





そして、サーバーの電源に応じて3〜5〜10分間コーヒーを吸って飲みます。その後、自動起動をオンにします。

 [root@asterisk asterisk]# chkconfig asterisk on [root@asterisk asterisk]# service asterisk start
      
      







MySQLのインストールとデータベースの準備





 [root@asterisk asterisk]# yum install -y mysql-server [root@asterisk asterisk]# chkconfig mysqld on [root@asterisk asterisk]# service mysqld start [root@asterisk asterisk]# /usr/bin/mysql_secure_installation [root@asterisk asterisk]# mysql -u root -p Enter password:
      
      





MySQLをインストールし、起動時に自動起動を追加し、ルートパスワードを設定し、テストデータベースを削除し、ルートとしてサーバーに接続します。

 mysql> CREATE DATABASE `asterisk_db` CHARACTER SET = 'utf8' COLLATE = 'utf8_general_ci'; Query OK, 1 row affected (0.00 sec) mysql> GRANT ALL PRIVILEGES ON asteriskdb.* TO 'asterisk'@'localhost' IDENTIFIED BY 'mypass' WITH GRANT OPTION; mysql> FLUSH PRIVILEGES;
      
      





SIPピアを保存するためのテーブルを作成します

 CREATE TABLE `tbl_sip_conf` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(80) NOT NULL DEFAULT '', `host` varchar(31) NOT NULL DEFAULT 'dynamic', `nat` varchar(5) NOT NULL DEFAULT 'no', `type` enum('user','peer','friend') NOT NULL DEFAULT 'friend', `accountcode` varchar(20) DEFAULT NULL, `amaflags` varchar(13) DEFAULT NULL, `call-limit` smallint(5) unsigned DEFAULT NULL, `callgroup` varchar(10) DEFAULT NULL, `callerid` varchar(80) DEFAULT NULL, `cancallforward` char(3) DEFAULT 'yes', `canreinvite` char(3) DEFAULT 'yes', `context` varchar(80) DEFAULT 'default', `defaultip` varchar(15) DEFAULT '0.0.0.0', `defaultuser` varchar(80) NOT NULL DEFAULT '', `dtmfmode` varchar(7) DEFAULT NULL, `fromuser` varchar(80) DEFAULT NULL, `fromdomain` varchar(80) DEFAULT NULL, `insecure` varchar(4) DEFAULT NULL, `language` char(2) DEFAULT 'ru', `macaddress` varchar(20) DEFAULT NULL, `mailbox` varchar(50) DEFAULT NULL, `md5secret` varchar(80) DEFAULT NULL, `deny` varchar(95) DEFAULT NULL, `permit` varchar(95) DEFAULT NULL, `mask` varchar(95) DEFAULT NULL, `musiconhold` varchar(100) DEFAULT NULL, `pickupgroup` varchar(10) DEFAULT NULL, `qualify` char(3) DEFAULT NULL, `regexten` varchar(80) DEFAULT NULL, `restrictcid` char(3) DEFAULT NULL, `rtptimeout` char(3) DEFAULT NULL, `rtpholdtimeout` char(3) DEFAULT NULL, `secret` varchar(80) DEFAULT NULL, `serial` varchar(20) DEFAULT NULL, `setvar` varchar(100) DEFAULT NULL, `disallow` varchar(100) DEFAULT 'all', `allow` varchar(100) DEFAULT 'ulaw;alaw;gsm', `fullcontact` varchar(80) NOT NULL DEFAULT '', `ipaddr` varchar(45) DEFAULT NULL, `port` smallint(5) unsigned NOT NULL DEFAULT '0', `regserver` varchar(100) DEFAULT NULL, `regseconds` int(11) NOT NULL DEFAULT '0', `lastms` int(11) NOT NULL DEFAULT '0', `defaultuser` varchar(80) NOT NULL DEFAULT '', `subscribecontext` varchar(80) DEFAULT NULL, `callbackextension` varchar(50) DEFAULT NULL, `useragent` varchar(20) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`), KEY `name_2` (`name`) ) DEFAULT CHARSET=utf8;
      
      







作成されたデータベースでアスタリスクが機能するように、 ここから最小限の構成セットを使用します



マニュアルの次の部分では、 Apache + PHPのインストール、電話のプロビジョニング用のスクリプトの準備、DHCPの構成などを行います。




All Articles