
親愛なるハブロビテスとアスタリスクに基づくソリューションのアマチュア。 この記事では、 興味深い問題を解決した経験を共有したいと思います。 あるモバイル/都市番号から別のモバイルに通話をリダイレクトするときに、都市番号ではなく発信者の番号が表示されることを確認する必要がありました。 しかし、実際には、通信事業者は、ネットワークを介して電話をかける際に、単純に番号を置き換えることを許可していません(そして、実際には混乱になります)。 ただし、GSMモデムを介してSMSメッセージで送信することにより、問題を解決できます。
私たちは何を持っています:
FreePBX Distro FreePBX 2.11.0.0beta2.5(アスタリスク1.8)、Huawei E171モデム、接続された複数の都市回線、リダイレクト付きのダイヤルプランを備えたサーバー。
まず、モデムをインストールし、目的のモードに転送します。 モデムをモデム専用モードにすることが重要です。
HUAWEII http://huawei.mobzon.ru/instruktsii/25-instruktsiya-po-nastrojke-modem
ZTE http://www.yccy.ru/category/raznoe/346.html
SMSを送信するためのプログラム-Gnokiiをセットアップします。 以下では、CentOSのアクションについて説明します。
1.依存関係を必ず配置してください:
yum install usbutils libusb1-devel tcl
2.モデムを挿入し、どのように決定されたかを確認します。
そのため、最初は行が見えます。lsusb Bus 002 Device 007: ID 12d1:14fe Huawei Technologies Co., Ltd.
3.配布キットには、ソースからプログラムをビルドするためのパッケージがありませんでした。 開発ツールを配置します。
yum groupinstall "Development Tools"
4.プログラムをダウンロードして、モデムモードを切り替えます。 usb-modeswitch usb-modeswitch-dataパッケージは、ここから取得します 。
5.両方のアーカイブを解凍し、順番にインストールします。
tar xvjf ... make install
6.モデムを歪ませて確認します。
lsusb Bus 002 Device 008: ID 12d1:1506 Huawei Technologies Co., Ltd. E398 LTE/UMTS/GSM Modem/Networkcard
したがって、すべてが正常であり、モデムは必要に応じて毎回決定されます。 行が先頭と同じ場合は、 ここに進みます 。
dmesgコマンドは次を表示します。
option 2-1.4:1.0: GSM modem (1-port) converter detected usb 2-1.4: GSM modem (1-port) converter now attached to ttyUSB0 option 2-1.4:1.1: GSM modem (1-port) converter detected usb 2-1.4: GSM modem (1-port) converter now attached to ttyUSB1 option 2-1.4:1.2: GSM modem (1-port) converter detected usb 2-1.4: GSM modem (1-port) converter now attached to ttyUSB2
7. このようにEPEL CentOSのリポジトリをインストールします。
8. gnokiiをインストールする
yum --enablerepo=epel install gnokii gnokii-smsd
パッケージをダウンロードできます: http : //rpm.pbone.net/index.php3/stat/4/idpl/27788385/dir/redhat_el_6/com/gnokii-0.6.30-2.el6.i686.rpm.html
および依存関係http://rpm.pbone.net/index.php3/stat/4/idpl/16859934/dir/redhat_el_6/com/libpcsclite1-1.4.0-9.el6.i686.rpm.html
9. config / etc / gnokiircを修正します
[global] port = /dev/ttyUSB0 model = AT initlength = default connection = serial use_locking = no serial_baudrate = 115200
モデムごとに異なるポートが存在する可能性があるため、ブルートフォースで検出する必要があります
10. SMSの送信を確認します。
echo 'Bingo!' | gnokii --sendsms +79060000000
ここで、アスタリスクユーザーがダイヤルプランからgnokiiを実行できるようにする必要があります。 gnokiiはrootアカウントでインストールされているため、アスタリスクユーザーは起動できません。 visudoコマンドを使用して/ etc / sudoersファイルを編集します(sudoersファイルの編集にはvisudoのみを使用することを強くお勧めします)。
アスタリスクユーザーの行を追加します。
asterisk ALL=NOPASSWD:/usr/bin/gnokii
ファイルを保存して終了します。
次に、ダイヤルプランにSystem()コマンドを実装して、CIDをSMSに送信する必要があります。 もちろん、FreePBXでは、extensions.confおよびextensions_additional.confを編集することはできません。彼自身が常にそれらを上書きするからです。 ただし、extensions_override_freepbx.confファイルを使用して、編集内容を計画に挿入できます。 extensions_additional.confファイルで目的のコンテキストを見つけ、そのフラグメントをextensions_override_freepbx.confにコピーして変更を加えるだけです。 SIP / trunk / phone_numberによってモバイル番号に転送される内部番号203があります。 ダイヤルプランのこの部分を支配します。
[ext-local] exten => 203,1,Set(__RINGTIMER=${IF($[${DB(AMPUSER/203/ringtimer)} > 0]?${DB(AMPUSER/203/ringtimer)}:${RINGTIMER_DEFAULT})}) exten => 203,n,System(echo '8${CALLERID(num)}' | sudo gnokii --sendsms +79061234567) ; exten => 203,n,Macro(exten-vm,novm,203,0,0,0) exten => 203,n(dest),Set(__PICKUPMARK=) exten => 203,n,Goto(${IVR_CONTEXT},return,1) exten => 203,hint,SIP/10000/778899 exten => Narva778899,1,Goto(from-internal,203,1)
これで、電話をかけるか203に転送するときに、発信者の番号を含むSMSが、CALLERID(num)変数から取得されて直接携帯電話に送信されます。
次の記事では、アスタリスクとSugarCRMの束をセットアップして、CRMオペレーターのモニター画面に発信者の番号を表示し、その後顧客データベースに入力することについて説明します。 ( 完了 )
誰かが便利な記事で来たなら、カルマを投げてください。