Linux Server

AsteriskNowをアップグレードする(11→13)

  

ご注意下さい

この記事は3年以上前に書かれた記事ですので、内容が古い可能性があります。

0
(0)

さて、本日はAsteriskNow(CentOS+FreePBX)のAsteriskをAsterisk11からAsterisk13にアップグレードしてみます。
まずはバックアップを取得しましょう。
私の環境はHyper-V上にAsteriskNowをインストールしているのでチェックポイントを作成するだけです。

Asteriskのバージョンアップ

さて、バックアップが完了したところで、FreePBXの管理画面を開き「アドミン」→「12 to 13 Upgrade Tool」を選択します。

続いて「Check the requirement!」をクリックして進みます。

有料版への移行を進められますが(Activate)、ここはSkipでOKです。

すると、Asterisk REST Interface Users、iSymphonyV3、Digium Addons、FreePBX ARI Frameworkが古いと言われてしまいました。

「アドミン」→「モジュール管理」を選択します。

「更新確認」をし、

上記4つのモジュールをUpgradeします。

ところが依存関係のチェックでまずはAsteriskを12以上に上げなさい、と怒られてしまいました。

そこでsshでAsteriskBoxへログインし、asterisk-version-switchコマンドを入力します。Asterisk 13にアップグレードしたいので、「3」を入力します。

# asterisk-version-switch
Each time you run this script we create a new log file at
/var/log/pbx/asterisk-switch-version which will include the date and time
and what version of Asterisk you had and what version you switched to

Pick the Asterisk Version you would like to change to.
Press 1 and the Enter key for Asterisk 1.8
Press 2 and the Enter key for Asterisk 11
Press 3 and the Enter key for Asterisk 13 EXPERIMENTAL
Press 9 and the Enter key to exit and not change your Asterisk Version
3 ←Asterisk 13にアップグレードしたいので、「3」を入力します

3を押すとAsterisk13へのアップグレードが始まります。

しばらく待っていると、「asterisk13 has now been verified to be installed」となり完了します。

FreePBXのアップグレード

Aseriskのバージョンアップが完了したので再度「アドミン」→「モジュール管理」からアップグレードを実施します。

今度はうまくいきました。

「設定適用」を押下して設定を反映しましょう。

前提となるモジュールのアップグレードが完了しましたので、いよいよ12 to 13 Upgrade Toolを再実行します。

今度は依存関係が解消されていますので先に進めます。「Proceed the upgrade process」を押下して先に進みましょう。

ディストリビューションはデフォルトの「FreePBX Distro」OKです。

こちらもスキップ。

Step3でアップグレードプロセスが動きますが、

Installing 13 Framework...ERROR: Try running this manually on the CLI to finish: 'amportal && fwconsole ma upgradeall' となり失敗してしまいました。

トラブル対応

そこでまたsshでログインし、コマンドを叩きます。こちらは30分程度時間がかかりました。

# /var/lib/asterisk/bin/amportal ma upgradeall

Please wait...

new amportal script detected, copying it to /usr/local/sbin and attempting to backup up old
Creating symlink for fwconsole
Removing broken fwconsole link
!!!!amportal is depreciated. Please use fwconsole!!!!
forwarding all commands to 'fwconsole'
No repos specified, using: [standard,commercial,extended] from last GUI settings

一応fwconsoleも使ったのですが、どちらもよかったようです。

# /var/lib/asterisk/bin/fwconsole ma upgradeall
No repos specified, using: [standard,commercial,extended] from last GUI settings

Upgrading: sms
Upgrading sms..
Starting sms download..
Processing sms
Verifying local module download...Verified
Extracting...Done
Module sms successfully downloaded
Creating SMS Message Table
Creating SMS Routing Table
Creating SMS Media Table
Generating CSS...Done
Module sms successfully installed
Updating Hooks...Done
All upgrades done!
Updating Hooks...Done
#

ここまで完了したところで念のためAsteriskBoxをリブートして、管理コンソールにアクセスしてみたところFreePBX13にアップグレードができました。

ただし、致命的なエラーが2件出ています。こちらも修正が必要そうです。設定の反映の為「Apply Config」をすると以下のエラーが表示されてしまいます。

詳細を見てみると、

以下の通りのエラーとなっています。

exit: 255
Unable to continue. Invalid argument supplied for foreach() in /var/www/html/admin/modules/sng_mcu/functions.inc/dialplan.php on line 57
#0 /var/www/html/admin/modules/sng_mcu/functions.inc/dialplan.php(57): WhoopsRun->handleError(2, 'Invalid argumen...', '/var/www/html/a...', 57, Array)
#1 /var/www/html/admin/libraries/BMO/DialplanHooks.class.php(95): sng_mcu_get_config('asterisk')
#2 /var/lib/asterisk/bin/retrieve_conf(864): FreePBXDialplanHooks->processHooks('asterisk', Array)
#3 {main}

こちらはどうやら「Sangoma MCU」を止めれば解消するようです。「アドミン」→「モジュール管理」から「Sangoma MCU」を選択し「無効」にしてしまいましょう。

無効にできました。

しかし、また違うエラーがでてきてしまいます。

exit: 255
Unable to continue. SQLSTATE[42S02]: Base table or view not found: 1146 Table 'asterisk.freepbx_users' doesn't exist in /var/www/html/admin/modules/bria/Bria.class.php on line 209
#0 /var/www/html/admin/modules/bria/Bria.class.php(209): PDOStatement->execute()
#1 /var/www/html/admin/modules/bria/functions.inc/geters_seters.php(31): FreePBXmodulesBria->getAllUsers()
#2 /var/www/html/admin/modules/sysadmin/functions.inc/general.php(187): bria_get_users_enabled()
#3 /var/www/html/admin/modules/sysadmin/functions.inc/general.php(161): sysadmin_extensions_limit('remaining')
#4 /var/www/html/admin/libraries/BMO/DialplanHooks.class.php(95): sysadmin_get_config('asterisk')
#5 /var/lib/asterisk/bin/retrieve_conf(864): FreePBXDialplanHooks->processHooks('asterisk', Array)
#6 {main}

freebpx_usersテーブルが無いよ、と怒られているようなので調べてみます。

# mysql
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 520
Server version: 5.1.73 Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| asterisk |
| asteriskcdrdb |
| mysql |
| test |
+--------------------+
5 rows in set (0.08 sec)

mysql> use asterisk;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+---------------------------------------------+
| Tables_in_asterisk |
+---------------------------------------------+
| admin |
| ampusers |
| announcement |
| arimanager |
| bria_settings |
| callback |
| callrecording |
| callrecording_module |
| certman_cas |
| certman_certs |
| certman_csrs |
| certman_mapping |
| cidlookup |
| cidlookup_incoming |
| contactmanager_entry_emails |
| contactmanager_entry_images |
| contactmanager_entry_numbers |
| contactmanager_entry_speeddials |
| contactmanager_entry_userman_images |
| contactmanager_entry_websites |
| contactmanager_entry_xmpps |
| contactmanager_group_entries |
| contactmanager_groups |
| cronmanager |
| custom_extensions |
| cxpanel_conference_rooms |
| cxpanel_email |
| cxpanel_managed_items |
| cxpanel_phone_number |
| cxpanel_queues |
| cxpanel_recording_agent |
| cxpanel_server |
| cxpanel_users |
| cxpanel_voicemail_agent |
| dahdi |
| dahdi_advanced |
| dahdi_advanced_modules |
| dahdi_analog |
| dahdi_configured_locations |
| dahdi_modules |
| dahdi_spans |
| dahdichandids |
| daynight |
| devices |
| digium_phones_alerts |
| digium_phones_customapp_settings |
| digium_phones_customapps |
| digium_phones_device_alerts |
| digium_phones_device_customapps |
| digium_phones_device_externallines |
| digium_phones_device_logos |
| digium_phones_device_mcpages |
| digium_phones_device_networks |
| digium_phones_device_parkapps |
| digium_phones_device_phonebooks |
| digium_phones_device_ringtones |
| digium_phones_device_settings |
| digium_phones_device_statuses |
| digium_phones_devices |
| digium_phones_extension_settings |
| digium_phones_externalline_settings |
| digium_phones_externallines |
| digium_phones_firmware |
| digium_phones_firmware_packages |
| digium_phones_general |
| digium_phones_lines |
| digium_phones_logos |
| digium_phones_mcpage_settings |
| digium_phones_mcpages |
| digium_phones_network_settings |
| digium_phones_networks |
| digium_phones_phonebook_entries |
| digium_phones_phonebook_entry_settings |
| digium_phones_phonebooks |
| digium_phones_pnac_settings |
| digium_phones_pnacs |
| digium_phones_queues |
| digium_phones_ringtones |
| digium_phones_status_entries |
| digium_phones_status_settings |
| digium_phones_statuses |
| digium_phones_voicemail_translations |
| digiumaddoninstaller_addons |
| digiumaddoninstaller_addons_downloads |
| digiumaddoninstaller_downloads |
| digiumaddoninstaller_downloads_ast_versions |
| digiumaddoninstaller_downloads_bits |
| digiumaddoninstaller_registers |
| digiumaddoninstaller_system |
| directory_details |
| directory_entries |
| disa |
| extensions |
| fax_details |
| fax_incoming |
| fax_users |
| featurecodes |
| findmefollow |
| freepbx_log |
| freepbx_settings |
| globals |
| hotelwakeup |
| hotelwakeup_calls |
| iax |
| iaxsettings |
| incoming |
| indications_zonelist |
| ivr_details |
| ivr_entries |
| kvstore |
| language_incoming |
| languages |
| logfile_logfiles |
| logfile_settings |
| manager |
| meetme |
| miscapps |
| miscdests |
| module_xml |
| modules |
| music |
| notifications |
| outbound_route_patterns |
| outbound_route_sequence |
| outbound_route_trunks |
| outbound_routes |
| outroutemsg |
| paging_autoanswer |
| paging_config |
| paging_groups |
| parkplus |
| pinset_usage |
| pinsets |
| pjsip |
| presencestate_list |
| presencestate_prefs |
| queueprio |
| queues_config |
| queues_details |
| recordings |
| ringgroups |
| setcid |
| sip |
| sipsettings |
| sms_media |
| sms_messages |
| sms_routing |
| sng_mcu_details |
| sng_mcu_entries |
| soundlang_customlangs |
| soundlang_packages |
| soundlang_prompts |
| soundlang_settings |
| superfecta_mf |
| superfecta_mf_child |
| superfecta_to_incoming |
| superfectacache |
| superfectaconfig |
| sysadmin_options |
| sysadmin_update_log |
| timeconditions |
| timegroups_details |
| timegroups_groups |
| trunk_dialpatterns |
| trunks |
| tts |
| ttsengines |
| ucp_sessions |
| userman_groups |
| userman_groups_settings |
| userman_users |
| userman_users_settings |
| users |
| vmblast |
| vmblast_groups |
| voicemail_admin |
| webrtc_clients |
+---------------------------------------------+
177 rows in set (0.01 sec)

mysql>

確かにありません。ただ、似たようなテーブル「userman_users」「userman_users_settings」があります。そこで、/var/www/html/admin/modules/bria/Bria.class.phpを編集してしまいましょう。


        function getAllUsers() {
                $sql = "SELECT u.id, u.username, u.default_extension, u.fname, u.lname
                //FROM freepbx_users u
                //JOIN freepbx_users_settings s ON s.uid = u.id
                FROM userman_users u
                JOIN userman_users_settings s ON s.uid = u.id
                WHERE s.module = 'bria'
                AND s.key = 'enabled'
                AND s.val = 1";

これで完了です。ダッシュボードを見てみるとエラーがまだ2件ありますが、セキュリティエラーは上記の通りファイルを修正したために発生したもので、FAXのは消してしまいましょう(エラーが起きていても問題ありません)。

非通知発信設定

非通知発信設定が消えてしまいましたので以前記事にしたように、/etc/asterisk/extensions_additional.confを書き換えましょう。

記事は以上。

この記事は役に立ちましたか? | Is this article useful for you?

評価をお願いします | Please leave your rating.

平均 | Av.: 0 / 5. 投票数 | Votes: 0

最初の評価を下さい | Please vote for the first rating.

-Linux Server
-, , ,

© 1999 - 2021 蒲田ネット