グランドストリームの自動プロビジョニング、またはGXP1165に魂を注ぎ込んで

画像

最近まで、Vanvil製品をVoIPデバイスとして使用していました。 そして一般的に、誰もが幸せでした。 単一のポイントからの制御があり、通信品質は満足のいくものですが、何らかの不完全さや控えめな感覚さえありました(あなたが望む方法を理解してください:)))一般的に、バックグラウンドでの「理想の電話」の検索は常に行われました。 そして、Grandstream GXP1165が私の手に落ちました。 より著名なメーカーを持っているこのモデルは、中国ファンビルと同じ価格カテゴリーにあります。 必要なすべての機能があり、ボタンと接続ポートの直感的な指定があります。 また、しばらくの間、私のためにIP電話を選択する際の決定的な要因の1つは、自動プロビジョニング機能です。 このグランドストリームモデルは彼を約束しました。 これについてはさらに説明します。



自動プロビジョニングの私の経験は、すでに述べた中国製品に基づいていました。 そして、私はGrandstreamではすべてがこのようになると単純に信じていました。 一般的に、それは起こりました。 しかし、私は大体すべてがどうなるか想像もしていませんでした。 根拠がないように、一方のデバイスと他方のデバイスから2つの設定を取得します。 設定は、ファイルをエクスポートすることにより取得されます。

ファンビル:

Static IP :192.168.1.179 Static NetMask :255.255.255.0 Static GateWay :192.168.1.1 Default Protocol :2 Primary DNS :202.96.134.133 Alter DNS :202.96.128.68 DHCP Mode :1 DHCP Dns :1 Domain Name : Host Name :VOIP Pppoe Mode :0 HTL Start Port :10000 HTL Port Number :200 SNTP Server :209.81.9.7
      
      





ちょっと待って。 グランドストリーム構成の設定の一部

 P335=2 P90=0 P91=0 P212=1 P92=0 P93=0 P338=0 P1339=0 P94=0 P2340=0 P95=0 P2341=0 P2342=0 P96=97 P2343=0 P97=1 P99=0 P10=168 P11=0 P2346=0 P2347=0 P12=160 P13=255 P2348=0 P14=255
      
      





あ! どうですか?! 感動しましたか? 実際、私はあなたを少しだましました。 電話の動作設定は異なって見えます。 しかし、その後、デバイスからダウンロードした構成を見たとき、私の混乱を想像できます。

兄弟の長所と短所がすぐにわかります。 中国人は設定を人間の理解により近づけました。 しかし、アメリカ人は大量の文書を手伝ってくれます。 結局、それは私を助けてくれました。

グランドストリームの構成ファイルを作成するには、2つの方法があります。 製造元のWebサイトでユーティリティを使用し(WindowsおよびLinux用のツールがあります)、手動でXMLファイルを使用します。 最初の方法はうまくいきませんでした。 したがって、2番目について説明します。

既に理解したように、構成フィールドの名前は暗号化されており、その説明を見つけることはそれほど難しくありませんが、インターネットを掘る必要がありました。 ここに何か ここに何かを取って、全体としてそのようなファイルを手に入れました。

 <?xml version="1.0" encoding="UTF-8" ?> <gs_provision version="1"> <mac>000a91547c9c</mac> <config version="1"> <!-- Admin Password --> <P2>PasswordQWER</P2> <P3>Grandstream</P3> <!-- SIP Registration. 0-no,1-yes --> <P31>1</P31> <!-- Register Expiration (in minutes. default 1 hour, max 45 days) --> <P32>60</P32> <!-- Authenticate password --> <P34>SIPassword</P34> <!-- SIP User ID --> <P35>111</P35> <!-- Authenticate ID --> <P36>111</P36> <P40>5561</P40> <!-- SIP Server --> <P47>sip.address.ru:5561</P47> <!-- DNS Mode. 0-A Record, 1-SRV, 2-NAPTR/SRV, 3-Use Configured IP --> <P103>0</P103> <!-- Time Format 0-12, 1-24 --> <P122>1</P122> <P148>Grandstream Provisioning</P148> <P237>config.address.ru</P237> <!-- Account Name. Cannot be empty. --> <P270>TestConfig</P270> <!-- Account 1 --> <!-- Account Active (In Use). 0-no, 1-yes --> <P271>1</P271> <!-- Enable Phonebook. 0(Disabled)/1(HTTP)/2(TFTP)/3(HTTPS) --> <P330>1</P330> <!-- Phone Book XML Server Path --> <P331>config.address.ru</P331> <!-- Phone Book Download Interval (in minutes) --> <P332>5</P332> <!-- Remove Manually-edited entries on Download. Possible values: 0(No)/1(Yes) --> <P333>1</P333> <!-- XML FILE ENCRYPTION --> <P1349>password123</P1349> <P1362>ru</P1362> <!-- Degree Unit. auto - Automatic, f - Fahrenheit, c - Celsius. Default is auto --> <P1379>c</P1379> </config> </gs_provision>
      
      





この構成では、非標準ポート5561で実行されているSIPサーバーにデバイスを登録できます。また、天気を摂氏で表示したり、アドレス帳へのパスを設定したりするマイナー機能も含まれています。 指定されていないパラメーターはデフォルトで設定されます。

完成したファイルは暗号化する必要があります。

 openssl enc -e -aes-256-cbc -k password123 -in basefile.xml -out cfg000d91447b9b.xml
      
      





ファイル名はcfg [macaddress] .xmlである必要があります。 HTTP経由でファイルを配布するため、/ var / www /にアップロードするだけです(apt-get install apache2としてapacheをインストールする、申し訳ありませんが、説明しません:))

さらに、Fanvilsとの類推により、このプロセスを自動化します。

次の内容のユーザーファイルを作成します。

 000a91547c9c 111 SIPassword User Grand
      
      



MACアドレスは小文字で書く必要があります。



...およびユーザーから設定を取得するbashファイル

 #!/bin/bash uspath=/opt/neoflex/gxp1165 usfile=(`cat $uspath/users`) macdir=/var/www/ a=0 #macaddrr b=1 #number c=2 #pass d=3 #2name e=4 #1name while [ ${usfile[$a]} ] do dfile=$macdir'cfg'${usfile[$a]} cat <<EOF >>$dfile <?xml version="1.0" encoding="UTF-8" ?> <gs_provision version="1"> <mac>${usfile[$a]}</mac> <config version="1"> <!-- Admin Password --> <P2>PasswordQWER</P2> <P3>DisplayTest</P3> <!-- SIP Registration. 0 - no, 1 - yes --> <P31>1</P31> <!-- Register Expiration (in minutes. default 1 hour, max 45 days) --> <P32>60</P32> <!-- Authenticate password --> <P34>${usfile[$c]}</P34> <!-- SIP User ID --> <P35>${usfile[$b]}</P35> <!-- Authenticate ID --> <P36>${usfile[$b]}</P36> <P40>5561</P40> <!-- SIP Server --> <P47>sip.server.ru:5561</P47> <!-- DNS Mode. 0 - A Record, 1 - SRV, 2 - NAPTR/SRV, 3 - Use Configured IP. Default is 0 --> <P103>0</P103> <!-- Time Format --> <P122>1</P122> <P148>Grandstream Provisioning</P148> <!-- HTTP Firmware Update Server --> <P192>config.server.ru</P192> <P237>config.server.ru</P237> <!-- Account Name. Cannot be empty. --> <P270>${usfile[$d]} ${usfile[$e]}</P270> <!-- Account 1 --> <!-- Account Active (In Use). 0 - no, 1 - yes --> <P271>1</P271> <!-- Enable Phonebook0(Disabled)/1(HTTP)/2(TFTP)/3(HTTPS) --> <P330>1</P330> <!-- Phone Book XML Server Path --> <P331>sip.server.ru</P331> <!-- Phone Book Download Interval (in minutes) --> <P332>60</P332> <!-- Remove Manually-edited entries on Download. Possible values: 0 (No) / 1 (Yes) --> <P333>1</P333> <!-- XML FILE ENCRYPTION --> <P1349>password</P1349> <P1362>ru</P1362> <!-- Update Interval.Default is 15 --> <P1378>60</P1378> <!-- Degree Unit. auto - Automatic, f - Fahrenheit, c - Celsius. Default is auto --> <P1379>c</P1379> </config> </gs_provision> EOF openssl enc -e -aes-256-cbc -k password -in $dfile -out $dfile.xml rm $dfile a=`expr $a + 5` b=`expr $b + 5` c=`expr $c + 5` d=`expr $d + 5` e=`expr $e + 5` done
      
      





それだけです / var / www /の出力で、暗号化されたXMLニックネームcfg000a91547c9c.xmlを取得します

デバイス自体の設定で、構成ファイルへのパスを設定サーバーとパスワードを復号化するために登録するだけで十分です。



画像

下部にある[保存して適用]ボタンをクリックし、画面の右上隅にある[再起動]ボタンを使用して再起動するように送信します。



しかし、これで落ち着きませんでした。 ドキュメントを掘り下げる過程で、電話のアドレス帳設定の説明に出会いました。 そして、ためらうことなく、sip configsから収集するphonebook.xmlを生成するスクリプトを忘れていました。

重要! calleridパラメーターは、SecondName FirsName <111>のように見えます。 つまり、すべての拡張機能にはcalleridフィールドがあり、正確に3つの値が必要です。

 #!/bin/bash a=0 b=1 c=2 book=phonebook.xml echo | sed -n '/callerid\=/p' /etc/asterisk/sip*.conf| sed s'/callerid\=//'g | sed s'/</ /'g | sed s'/>//'g | sed s'/;//'g >> tmp.file spisok=(`cat tmp.file`) echo '<?xml version="1.0" encoding="UTF-8"?>' >> $book echo "<AddressBook>" >> $book while [ ${spisok[a]} ];do cat <<EOF >>$book <Contact> <LastName>${spisok[a]}</LastName> <FirstName>${spisok[b]}</FirstName> <Phone> <phonenumber>${spisok[c]}</phonenumber> <accountindex>1</accountindex> <downloaded>0</downloaded> </Phone> <Groups> <groupid>2</groupid> </Groups> </Contact> EOF a=`expr $a + 3` b=`expr $b + 3` c=`expr $c + 3` done echo "</AddressBook>" >>$book cp phonebook.xml /var/www/ rm tmp.file
      
      





アドレス帳へのパスのスペルが正しい場合、再起動後にディレクトリがデバイスにプルされます。 これを確認するには、電話の電話帳またはWebインターフェイスを介した設定でボタンを押します。



画像



しかし、これは私にとって十分ではありませんでした。 だから。 最後のコード。

おそらく、このデバイスの唯一の欠点は、着信音の選択が少ないことです。 たった3つ、そしてsomeいものもあります。 しかし! 自分でアップロードできる着メロ!

Linuxの方法について説明します。 Windowsユーティリティはこちらです。

ユーティリティをダウンロードして解凍する

 wget http://www.grandstream.com/sites/default/files/Resources/linux_music_ring_tone_gen.zip unzip linux_music_ring_tone_gen.zip
      
      





sox.linuxの名前をsoxに変更し、権限を割り当てます

 mv sox.linux sox chmod 755 sox
      
      





READMEを読みます。

./sox sound.wav ring1.ring

すべてがシンプルです。 出力ring1.ringの入力wavファイル。 ファイルは3つ以下にすることができます-それぞれring1.ring、ring2.ring、ring3.ring。 サイズは100 KB以下で、著者自身が各ファイルに70 KB以下を推奨しています。 結果のリングは、拡張子を.binに変更し、たとえば、構成ファイルがある場所に入力する必要があります。

構成ファイルに着信音を入力するには、フィールドを使用します. .



. .





それだけです リブートで電話機を起動し、tail -f /var/log/apache/access.logコマンドを使用して何が起こるかを確認します。 これは次のようになります。

 192.168.0.16 -- [05/Nov/2013:17:15:52 +0400] "GET /language.txt HTTP/1.1" 404 480 "-" "Grandstream Model HW GXP1165 SW 1.0.5.26 DevId 000a91547c9c" 192.168.0.16 -- [05/Nov/2013:17:16:10 +0400] "GET /cfg000a91547c9c HTTP/1.0" 200 1787 "-" "Grandstream Model HW GXP1165 SW 1.0.5.26 DevId 000a91547c9c" 192.168.0.16 -- [05/Nov/2013:17:16:14 +0400] "GET /cfg000a91547c9c.xml HTTP/1.0" 200 1849 "-" "Grandstream Model HW GXP1165 SW 1.0.5.26 DevId 000a91547c9c" 192.168.0.16 -- [05/Nov/2013:17:16:32 +0400] "GET /gxp1160fw.bin HTTP/1.0" 404 537 "-" "Grandstream Model HW GXP1165 SW 1.0.5.26 DevId 000a91547c9c" 192.168.0.16 -- [05/Nov/2013:17:16:36 +0400] "GET /gxp1160fw.bin HTTP/1.0" 404 537 "-" "Grandstream Model HW GXP1165 SW 1.0.5.26 DevId 000a91547c9c" 192.168.0.16 -- [05/Nov/2013:17:16:38 +0400] "GET /ring1.bin HTTP/1.0" 200 65847 "-" "Grandstream Model HW GXP1165 SW 1.0.5.26 DevId 000a91547c9c" 192.168.0.16 -- [05/Nov/2013:17:16:39 +0400] "GET /ring2.bin HTTP/1.0" 200 39388 "-" "Grandstream Model HW GXP1165 SW 1.0.5.26 DevId 000a91547c9c" 192.168.0.16 -- [05/Nov/2013:17:16:42 +0400] "GET /ring3.bin HTTP/1.0" 404 533 "-" "Grandstream Model HW GXP1165 SW 1.0.5.26 DevId 000a91547c9c"
      
      






All Articles