PC

🔄 FreePBX16から17へアップデートしてみた話|トラブル&改善ポイントまとめ!

FreePBX16から17へアップデートしてみました

長年FreePBX16で運用していましたが、CDRレポートの文字化けがどうにも気になっていて、原因は「ODBCの接続ドライバがMySQL用だったから」という非常に単純なものでした。

MariaDBを使っているのにMySQL用のODBCコネクタを入れてたのが原因で、バグって文字化けするという罠。対策はもちろんMariaDB用のODBCに差し替えるだけ。

…なんですが、原因が分かった瞬間に満足して放置

じゃあなぜ17にアップデートしたのか?

そんな中で「FreePBX17が出たよ」という情報をキャッチ。
「おっ、ODBC周りも改善されてるかも?」という淡い期待から、移行プロジェクトが始まりました。

つまずきポイント①:Debianデビュー

今回、FreePBX17ではDebianを採用。これがまた初体験でして…。

  • 何も考えずインストールしたらSSH入ってない
  • Ubuntuとコマンドが微妙に違う

最初は戸惑いましたが、慣れれば問題ないレベルです。

つまずきポイント②:CallerID Superfecta の iAddressbook

一番の壁はこれ。CallerID Superfectaでiaddressbook(iaddressbook.orgを使ってたのですが、

そのままDebian12にインストールしたら、PHPエラーの嵐!
対応が面倒だったので、iAddressbookだけ旧FreePBX16上に残して運用してます。

つまずきポイント③:Macroが廃止に

FreePBX17ではmacroが廃止されてて、発信時の番号選択(発番切り替え)ができなくなって1週間ハマりました。

従来のマクロはこんな感じでした:

[macro-dialout-trunk-predial-hook]

exten => s,1,Set(HASH(_SIPHEADERS,P-Preferred-Identity)=<sip:${CALLERID(num)}@ntt-west.ne.jp>) exten => s,n,MacroExit()

これをFreePBX17では:

[macro-dialout-trunk-predial-hook]

exten => s,1,Set(HASH(_SIPHEADERS,P-Preferred-Identity)=<sip:${CALLERID(num)}@ntt-west.ne.jp>) exten => s,n,return()

「MacroExit()」→「return()」に変えるだけでした。

その他のポイント

  • バックアップ&リストアで環境移行はほぼOK
  • 当社ではFAX送信モジュールも使ってますが、これは仮想マシンのMACアドレスを旧環境と同じにすればそのまま認証通りました

まとめ:移行はちょっと面倒。でもやる価値あり

今回のアップデート、最初は戸惑いながらも、終わってみれば「やってよかった」案件でした。
やっぱり最新バージョンは安定感があります。

CDR文字化けもようやくサヨナラできたし、今後のメンテも楽になるかなと。

同じような構成で悩んでる方がいたら、この記事が少しでも参考になれば嬉しいです!