家庭に2台以上のコンピューターがある場合、1つの場所からコンピューターを構成できるようにしたいという要望が非常に頻繁にあります。 Windowsでは、このタスクはActive Directory、Linuxではcfengine、puppet、およびその他の構成システムを使用して実行されます。 番号、ダイヤラプラン、画面上の碑文など、常に何かを変更しなければならないVoIPデバイスがたくさんありました。
この目的のために、自動構成システムも存在しますが、さまざまな理由から、それらは私には適していません。 はい、私は自分の手で何かを書く
ために自分の自転車を
発明したかったのです。
その後、あなたはそれから来たものを読むことができます...
だから私たちが持っているもの:
- 入り口には、アスタリスクPBX(または別のIP PBX)と多数のVoIPデバイスがあります。
- その結果、すべてのVoIPデバイスを一元的に構成できるようになりたいです。
幸運なことに、私たちが1つのラインを順守し、所有していたほとんどすべてのデバイスが同じメーカーのものであり、異なる少数のコピーがずっと前にスクラップ用に準備されていました。 すべてのデバイスはLinksysからのものでした:PAP2T、SPA3102、SPA901、SPA921、SPA941、SPA942。 より新しいCisco SPA502が追加されました(CiscoがLinksysを購入した後)
これらすべてのデバイスには、自動的に構成する機能があります。 主なことは、構成ファイルを正しく作成およびスリップする方法を知ることです。
各デバイスには、構成ファイルを生成するメーカーのユーティリティがあります。また、デバイスからそれを引き出すこともできます(このリンクにあります)
device_ip/admin/spacfg.xml
device_ip/admin/spacfg.xml
ただし、これはすべてのデバイスで機能するわけではありません)、またはインターネットの広大な場所のどこかにあります。
構成ファイルは、オプションの説明を含む単なるxmlファイルです。 tftpまたはhttpプロトコルをデバイス構成ファイルにアップロードできます。 すべてのデバイスで、基本設定はほぼ同じように説明されていたため、すべてのデバイスに共通する設定の主要部分と、デバイスごとに異なる追加オプションを簡単に強調できました。 その結果、次の自動構成システム操作スキームが形成されました。
1つのスクリプト(
generator.sh
)は、devices.listファイルに記述されているデバイス情報から構成ファイルを収集し、
templates {modelName, common/start, common/network, common/end}
ディレクトリから構成の断片を収集します。
別のスクリプト(
pusher.sh
)-すでに生成されたデバイス構成ファイルをhttp経由でアクセス可能なディレクトリにコピーします
http:// server_ip / configs
次に、設定を取得して適用する場所に関する情報を含む特別なリンクを使用してデバイスにアクセスします。
curl --digest -uユーザー名:パスワードhttp:// device_IP / admin / resync? http://server_ip/configs/CONFIGFILE.xml
主な用途は次のとおりです。
デバイスの追加:1. DNSにデバイスレコードを追加します
2.デバイスをネットワークに接続します-IPアドレスを登録します(VoIPデバイスにはDHCPを使用しません)および管理者パスワード
3.デバイスの構成を記述する行を
devices.list
ファイルに追加します。行は次の形式である必要があります。
DEVICE_MODEL|NETWORK_NAME|LINE1_DESCR|LINE1_NUMBER|LINE1_PASS|LINE2_DESCR|LINE2_NUMBER|LINE2_PASS|STATION_NAME|USER_PASSWORD
不要なフィールドは単純に空になりますが、パラメーターの位置は維持されます。
4.
generator.sh
実行します
5.
pusher.sh single NETWORK_NAME_IN_DNS
を実行し、ターミナルでログを監視します
デバイスの番号を変更します。1.デバイスの構成を説明する
devices.list
ファイルの行を変更します。
2.
generator.sh
実行します
3.
pusher.sh single NETWORK_NAME_IN_DNS
実行します
すべてのVoIPデバイスのダイヤルプランを変更します。1.
generator.sh
編集します-ダイヤルプランを担当する変数があります。
2.
generator.sh
実行します
3.
pusher.sh all
を実行し、ターミナルまたはsyslogサーバーでログを確認します(持っていますか?)。 たとえば、次のようになり
tail -f /var/log/messages | egrep -i "(pap2t|spa-)"
tail -f /var/log/messages | egrep -i "(pap2t|spa-)"
この自動構成システムは絶対にリソースを必要とせず、どのLinuxディストリビューションにもインストールできます。
その操作には、bash、sed、cutなどのユーティリティ、およびデバイスにファイルをアップロードするためのWebサーバーが必要です。
構成システムをわずかに保護するため(結局、構成ファイルにはデバイスへのアクセスパスワードが含まれており、ネットワークを介してクリアな形式で送信されます)、すべてのVoIPデバイスを別のVLANに転送することをお勧めします。
現時点では、私の自動構成システムは数年間正常に機能しています。
私の記事が誰かの人生を簡素化することを願っています 同様の原則により、非常に多くのメーカーのデバイスの構成を構築できます。
がんばって。
スクリプトと構成ファイルのリスト:
devices.list ######################################################### ######################################################### #############################################
#LINE FORMAT:DEVICE_MODEL | NETWORK_NAME | LINE1_DESCR | LINE1_NUMBER | LINE1_PASS | LINE2_DESCR | LINE2_NUMBER | LINE2_PASS | STATION_NAME | USER_PASSWORD#
######################################################### ######################################################### #############################################
##################
#voipゲートウェイ#
##################
#PAP2T
PAP2T | voip1.f3r1 | Reception1 | 3000 | 3000pass | Reception2 | 3001 | 3001pass
PAP2T | voip2.f3r1 |ファイナンス| 3030 | 3030pass |||
#SPA3102
SPA3102 | voip0.f3r1 |会議室| 3131 | 3131pass
################
#VoIP電話#
################
#SPA901
SPA901 | vph0.f3lr2 | Zavhoz | 3040 | 3040pass |||
#SPA921
SPA921 | vph0.f3r3 |ボス| 3050 | 3050pass |||| Shef | 1234
#SPA941
SPA941 | vph0.f3r4 |管理| 3060 | 3060pass ||||管理| 3060
#SPA942
SPA941 | vph0.f4r1 | Manager1 | 3080 | 3080pass |||| Manager1
#Cisco SPA502G
SPA502G | vph1.f4r1 | Manager2 | 3090 | 3090pass |||| Manager2
generator.sh #!/ bin / bash
############################################## configセクション###### ############################################
adminPass = 'qwerty123'
userPass = 'qwerty123'
dialPlan = '(* 8S0 | * xx | 1 [0-9] [0-9] S0 | [95] [0-9] xxS0 | 2xxxxxxS0 | 0 [3-7] xxxxxxxxS0 | 0 [89] x [1 -9] xxxxxxS0 | 0 [89] 00xxxxxxxS0 | 02xxxxxxxS0 | xxxxxxxxxxxx。) '
sipProxy = 'sip.yourdomain.com'
#SPA3102デバイスのPSTN回線の構成はこちら
dialPlanSPA3102 = '(xx。)'
sipProxySPA3102 = $ sipProxy
###############################################この下を編集しない## ##########################################
curPath = `dirname $ {0}`
devicesList = $ {curPath} /devices.list
cat $ {devicesList} | sed '/ *#/ d; / ^ * $ / d '| 行を読みながら;
する
model = `echo $ {line} | カット-f1 -d '|' | tr '[:lower:]' '[:upper:]' '
networkName = `echo $ {line} | カット-f2 -d '|' `
ipStr = `host -t any $ {networkName}`
if [`echo $ {ipStr} | grep '見つかりません:' | wc -l` -gt 0]
それから
echo "エラー:$ {networkName}がDNSに見つかりません。これを修正してください。"
1番出口
他に
ip = `echo $ {ipStr} | cut -f4 -d '' ``
fi
echo -n「デバイスIP-$ {ip}」。
line1Descr = `echo $ {line} | カット-f3 -d '|' `
line1Phone = `echo $ {line} | カット-f4 -d '|' `
line1Pass = `echo $ {line} | カット-f5 -d '|' `
line2Descr = `echo $ {line} | カット-f6 -d '|' `
line2Phone = `echo $ {line} | カット-f7 -d '|' `
line2Pass = `echo $ {line} | カット-f8 -d '|' `
stationName = `echo $ {line} | カット-f9 -d '|' `
userPassFromConfig = `echo $ {line} | カット-f10 -d '|' `
if ["$ {userPassFromConfig}"!= ""]
それから
userPass = $ {userPassFromConfig}
echo -n「デフォルトではないユーザーパスを設定します。」
fi
ケース「$ {model}」
PAP2T)
echo "$ {model}-$ {networkName}のプロファイルを作成しています..."
outputFile = $ {curPath} / configs / $ {model}-$ {ip} .xml
cat $ {curPath} /テンプレート/ common / start> $ {outputFile}
cat $ {curPath} /テンプレート/共通/ネットワーク>> $ {outputFile}
cat $ {curPath} /テンプレート/ pap2t >> $ {outputFile}
#ここで個々の設定を構成します
echo '<Static_IP ua = "rw">' $ {ip} '</ Static_IP>' >> $ {outputFile}
echo '<HostName ua = "rw">' $ {networkName} '</ HostName>' >> $ {outputFile}
echo '<Admin_Passwd ua = "na">' $ {adminPass} '</ Admin_Passwd>' >> $ {outputFile}
echo '<User_Password ua = "rw">' $ {userPass} '</ User_Password>' >> $ {outputFile}
echo '<Display_Name_1_ ua = "na">' $ {line1Descr} '</ Display_Name_1_>' >> $ {outputFile}
echo '<User_ID_1_ ua = "na">' $ {line1Phone} '</ User_ID_1_>' >> $ {outputFile}
echo '<Password_1_ ua = "na">' $ {line1Pass} '</ Password_1_>' >> $ {outputFile}
echo '<Display_Name_2_ ua = "na">' $ {line2Descr} '</ Display_Name_2_>' >> $ {outputFile}
echo '<User_ID_2_ ua = "na">' $ {line2Phone} '</ User_ID_2_>' >> $ {outputFile}
echo '<Password_2_ ua = "na">' $ {line2Pass} '</ Password_2_>' >> $ {outputFile}
echo '<Dial_Plan_1_ ua = "na">' $ {dialPlan} '</ Dial_Plan_1_>' >> $ {outputFile}
echo '<Proxy_1_ ua = "na">' $ {sipProxy} '</ Proxy_1_>' >> $ {outputFile}
echo '<Dial_Plan_2_ ua = "na">' $ {dialPlan} '</ Dial_Plan_2_>' >> $ {outputFile}
echo '<Proxy_2_ ua = "na">' $ {sipProxy} '</ Proxy_2_>' >> $ {outputFile}
cat $ {curPath} /テンプレート/ common / end >> $ {outputFile}
;;
SPA3102)
echo "$ {model}-$ {networkName}のプロファイルを作成しています..."
outputFile = $ {curPath} / configs / $ {model}-$ {ip} .xml
cat $ {curPath} /テンプレート/ common / start> $ {outputFile}
cat $ {curPath} /テンプレート/共通/ネットワーク>> $ {outputFile}
cat $ {curPath} /テンプレート/ spa3102 >> $ {outputFile}
#ここで個々の設定を構成します
echo '<Static_IP ua = "rw">' $ {ip} '</ Static_IP>' >> $ {outputFile}
echo '<HostName ua = "rw">' $ {networkName} '</ HostName>' >> $ {outputFile}
echo '<Admin_Passwd ua = "na">' $ {adminPass} '</ Admin_Passwd>' >> $ {outputFile}
echo '<User_Password ua = "rw">' $ {userPass} '</ User_Password>' >> $ {outputFile}
echo '<Display_Name_1_ ua = "na">' $ {line1Descr} '</ Display_Name_1_>' >> $ {outputFile}
echo '<User_ID_1_ ua = "na">' $ {line1Phone} '</ User_ID_1_>' >> $ {outputFile}
echo '<Password_1_ ua = "na">' $ {line1Pass} '</ Password_1_>' >> $ {outputFile}
echo '<Display_Name_2_ ua = "na">' $ {line2Descr} '</ Display_Name_2_>' >> $ {outputFile}
echo '<User_ID_2_ ua = "na">' $ {line2Phone} '</ User_ID_2_>' >> $ {outputFile}
echo '<Password_2_ ua = "na">' $ {line2Pass} '</ Password_2_>' >> $ {outputFile}
echo '<Dial_Plan_1_ ua = "na">' $ {dialPlan} '</ Dial_Plan_1_>' >> $ {outputFile}
echo '<Proxy_1_ ua = "na">' $ {sipProxy} '</ Proxy_1_>' >> $ {outputFile}
echo '<Dial_Plan_1_2_ ua = "na">' $ {dialPlanSPA3102} '</ Dial_Plan_1_2_>' >> $ {outputFile}
echo '<Proxy_2_ ua = "na">' $ {sipProxySPA3102} '</ Proxy_2_>' >> $ {outputFile}
cat $ {curPath} /テンプレート/ common / end >> $ {outputFile}
;;
SPA901)
echo "$ {model}-$ {networkName}のプロファイルを作成しています..."
outputFile = $ {curPath} / configs / $ {model}-$ {ip} .xml
cat $ {curPath} /テンプレート/ common / start> $ {outputFile}
cat $ {curPath} /テンプレート/共通/ネットワーク>> $ {outputFile}
cat $ {curPath} /テンプレート/ spa901 >> $ {outputFile}
#ここで個々の設定を構成します
echo '<Static_IP ua = "rw">' $ {ip} '</ Static_IP>' >> $ {outputFile}
echo '<HostName ua = "rw">' $ {networkName} '</ HostName>' >> $ {outputFile}
echo '<Admin_Passwd ua = "na">' $ {adminPass} '</ Admin_Passwd>' >> $ {outputFile}
echo '<User_Password ua = "rw">' $ {userPass} '</ User_Password>' >> $ {outputFile}
echo '<Display_Name_1_ ua = "na">' $ {line1Descr} '</ Display_Name_1_>' >> $ {outputFile}
echo '<User_ID_1_ ua = "na">' $ {line1Phone} '</ User_ID_1_>' >> $ {outputFile}
echo '<Password_1_ ua = "na">' $ {line1Pass} '</ Password_1_>' >> $ {outputFile}
echo '<Dial_Plan_1_ ua = "na">' $ {dialPlan} '</ Dial_Plan_1_>' >> $ {outputFile}
echo '<Proxy_1_ ua = "na">' $ {sipProxy} '</ Proxy_1_>' >> $ {outputFile}
cat $ {curPath} /テンプレート/ common / end >> $ {outputFile}
;;
SPA921)
echo "$ {model}-$ {networkName}のプロファイルを作成しています..."
outputFile = $ {curPath} / configs / $ {model}-$ {ip} .xml
cat $ {curPath} /テンプレート/ common / start> $ {outputFile}
cat $ {curPath} /テンプレート/共通/ネットワーク>> $ {outputFile}
#cat $ {curPath} / templates / spa921 >> $ {outputFile}
#ここで個々の設定を構成します
echo '<Static_IP ua = "rw">' $ {ip} '</ Static_IP>' >> $ {outputFile}
echo '<HostName ua = "rw">' $ {networkName} '</ HostName>' >> $ {outputFile}
echo '<Admin_Passwd ua = "na">' $ {adminPass} '</ Admin_Passwd>' >> $ {outputFile}
echo '<User_Password ua = "rw">' $ {userPass} '</ User_Password>' >> $ {outputFile}
echo '<Station_Name ua = "na">' $ {stationName} '</ Station_Name>' >> $ {outputFile}
echo '<Display_Name_1_ ua = "na">' $ {line1Descr} '</ Display_Name_1_>' >> $ {outputFile}
echo '<User_ID_1_ ua = "na">' $ {line1Phone} '</ User_ID_1_>' >> $ {outputFile}
echo '<Password_1_ ua = "na">' $ {line1Pass} '</ Password_1_>' >> $ {outputFile}
echo '<Dial_Plan_1_ ua = "na">' $ {dialPlan} '</ Dial_Plan_1_>' >> $ {outputFile}
echo '<Proxy_1_ ua = "na">' $ {sipProxy} '</ Proxy_1_>' >> $ {outputFile}
cat $ {curPath} /テンプレート/ common / end >> $ {outputFile}
;;
SPA941)
echo "$ {model}-$ {networkName}のプロファイルを作成しています..."
outputFile = $ {curPath} / configs / $ {model}-$ {ip} .xml
cat $ {curPath} /テンプレート/ common / start> $ {outputFile}
cat $ {curPath} /テンプレート/共通/ネットワーク>> $ {outputFile}
#cat $ {curPath} / templates / spa941 >> $ {outputFile}
#ここで個々の設定を構成します
echo '<Static_IP ua = "rw">' $ {ip} '</ Static_IP>' >> $ {outputFile}
echo '<HostName ua = "rw">' $ {networkName} '</ HostName>' >> $ {outputFile}
echo '<Admin_Passwd ua = "na">' $ {adminPass} '</ Admin_Passwd>' >> $ {outputFile}
echo '<User_Password ua = "rw">' $ {userPass} '</ User_Password>' >> $ {outputFile}
echo '<Station_Name ua = "na">' $ {stationName} '</ Station_Name>' >> $ {outputFile}
echo '<Display_Name_1_ ua = "na">' $ {line1Descr} '</ Display_Name_1_>' >> $ {outputFile}
echo '<User_ID_1_ ua = "na">' $ {line1Phone} '</ User_ID_1_>' >> $ {outputFile}
echo '<Password_1_ ua = "na">' $ {line1Pass} '</ Password_1_>' >> $ {outputFile}
echo '<Display_Name_2_ ua = "na">' $ {line2Descr} '</ Display_Name_2_>' >> $ {outputFile}
echo '<User_ID_2_ ua = "na">' $ {line2Phone} '</ User_ID_2_>' >> $ {outputFile}
echo '<Password_2_ ua = "na">' $ {line2Pass} '</ Password_2_>' >> $ {outputFile}
echo '<Dial_Plan_1_ ua = "na">' $ {dialPlan} '</ Dial_Plan_1_>' >> $ {outputFile}
echo '<Proxy_1_ ua = "na">' $ {sipProxy} '</ Proxy_1_>' >> $ {outputFile}
echo '<Dial_Plan_2_ ua = "na">' $ {dialPlan} '</ Dial_Plan_2_>' >> $ {outputFile}
echo '<Proxy_2_ ua = "na">' $ {sipProxy} '</ Proxy_2_>' >> $ {outputFile}
cat $ {curPath} /テンプレート/ common / end >> $ {outputFile}
;;
SPA502G)
echo "$ {model}-$ {networkName}のプロファイルを作成しています..."
outputFile = $ {curPath} / configs / $ {model}-$ {ip} .xml
cat $ {curPath} /テンプレート/ common / start> $ {outputFile}
cat $ {curPath} /テンプレート/共通/ネットワーク>> $ {outputFile}
cat $ {curPath} /テンプレート/ spa502g >> $ {outputFile}
#ここで個々の設定を構成します
echo '<Static_IP ua = "rw">' $ {ip} '</ Static_IP>' >> $ {outputFile}
echo '<HostName ua = "rw">' $ {networkName} '</ HostName>' >> $ {outputFile}
echo '<Admin_Passwd ua = "na">' $ {adminPass} '</ Admin_Passwd>' >> $ {outputFile}
echo '<User_Password ua = "rw">' $ {userPass} '</ User_Password>' >> $ {outputFile}
echo '<Station_Name ua = "na">' $ {stationName} '</ Station_Name>' >> $ {outputFile}
#<Station_Display_Name ua = "na"> </ Station_Display_Name>
echo '<Display_Name_1_ ua = "na">' $ {line1Descr} '</ Display_Name_1_>' >> $ {outputFile}
echo '<User_ID_1_ ua = "na">' $ {line1Phone} '</ User_ID_1_>' >> $ {outputFile}
echo '<Password_1_ ua = "na">' $ {line1Pass} '</ Password_1_>' >> $ {outputFile}
echo '<Dial_Plan_1_ ua = "na">' $ {dialPlan} '</ Dial_Plan_1_>' >> $ {outputFile}
echo '<Proxy_1_ ua = "na">' $ {sipProxy} '</ Proxy_1_>' >> $ {outputFile}
cat $ {curPath} /テンプレート/ common / end >> $ {outputFile}
;;
エサック
やった
pusher.sh #!/ bin / bash
ユーザー=管理者
pass = qwerty123
sourceLink = "http://192.168.50.10/configs"
configsPath = "` dirname $ {0} `/ configs"
cp $ {configsPath} / *。xml / var / www / html / configs
ケース$ 1 in
すべて)
ls -1 $ {configsPath} | 行を読みながら;
する
deviceIP = `echo $ {line} | カット-f2 -d- | カット-f1-4 -d.`
echo "$ {deviceIP} _______________________________________________________________________"
curl --digest -u $ {user}:$ {pass} http:// $ {deviceIP} / admin / resync?$ {sourceLink} / $ {line}
やった
;;
シングル)
networkName = 2ドル
ipStr = `host -t any $ {networkName}`
if [`echo $ {ipStr} | grep '見つかりません:' | wc -l` -gt 0]
それから
echo "エラー:$ {networkName}がDNSに見つかりません。これを修正してください。"
1番出口
他に
ip = `echo $ {ipStr} | cut -f4 -d '' ``
fi
ls -1 $ {configsPath} | grep $ {ip} | 行を読みながら;
する
deviceIP = `echo $ {line} | カット-f2 -d- | カット-f1-4 -d.`
echo "$ {deviceIP} _______________________________________________________________________"
curl --digest -u $ {user}:$ {pass} http:// $ {deviceIP} / admin / resync?$ {sourceLink} / $ {line}
やった
;;
*)
echo "このスクリプトをパラメーターとともに使用します。例を示します:"
echo "* $ {0} all *-すべてのデバイスのプロビジョニング用"
echo "* $ {0}単一NETWORK_NAME_IN_DNS *-単一デバイスでのプロビジョニング用"
;;
エサック
テンプレート/ pap2t <Ring_Waveform ua = "na">台形</ Ring_Waveform>
テンプレート/ spa3102 <Ring_Waveform ua = "na">台形</ Ring_Waveform>
<FAX_Line_Toggle_Code ua = "na"> </ FAX_Line_Toggle_Code>
テンプレート/ spa502g <Paging_Code ua = "na"> </ Paging_Code>
<Call_Park_Code ua = "na"> </ Call_Park_Code>
<Call_UnPark_Code ua = "na"> </ Call_UnPark_Code>
<Call_Pickup_Code ua = "na"> </ Call_Pickup_Code>
<Group_Call_Pickup_Code ua = "na"> </ Group_Call_Pickup_Code>
<Enable_CDP ua = "na">いいえ</ Enable_CDP>
テンプレート/ spa901<Paging_Code ua="na"></Paging_Code>
<Call_Park_Code ua="na"></Call_Park_Code>
<Call_UnPark_Code ua="na"></Call_UnPark_Code>
<Call_Pickup_Code ua="na"></Call_Pickup_Code>
テンプレート/共通/開始 <?xml version = "1.0" encoding = "UTF-8" standalone = "yes"?>
<フラットプロファイル>
テンプレート/共通/ネットワーク <Restricted_Access_Domains ua = "na"> </ Restricted_Access_Domains>
<Enable_Web_Server ua = "na">はい</ Enable_Web_Server>
<Web_Server_Port ua = "na"> 80 </ Web_Server_Port>
<Enable_Web_Admin_Access ua = "na">はい</ Enable_Web_Admin_Access>
<DHCP ua = "rw">いいえ</ DHCP>
<NetMask ua = "rw"> 255.255.255.0 </ NetMask>
<ゲートウェイua = "rw"> 192.168.50.254 </ゲートウェイ>
<Domain ua = "rw"> yourdomain.com </ Domain>
<Primary_DNS ua = "rw"> 192.168.71.3 </ Primary_DNS>
<Secondary_DNS ua = "rw"> 192.168.71.6 </ Secondary_DNS>
<Primary_NTP_Server ua = "na"> ntp.yourdomain.com </ Primary_NTP_Server>
<Secondary_NTP_Server ua = "na"> ntp2.yourdomain.com </ Secondary_NTP_Server>
<Syslog_Server ua = "na"> syslog.yourdomain.com </ Syslog_Server>
<DNS_Server_Order ua = "na">手動</ DNS_Server_Order>
<DNS_Query_Mode ua = "na">パラレル</ DNS_Query_Mode>
<Debug_Server ua = "na"> </ Debug_Server>
<Debug_Level ua = "na"> 0 </ Debug_Level>
<Provision_Enable ua = "na">はい</ Provision_Enable>
<Resync_On_Reset ua = "na">いいえ</ Resync_On_Reset>
<Resync_Periodic ua = "na"> 3600 </ Resync_Periodic>
<Profile_Rule ua = "na"> / init.cfg </ Profile_Rule>
<Profile_Rule_B ua = "na"> </ Profile_Rule_B>
<Profile_Rule_C ua = "na"> </ Profile_Rule_C>
<Profile_Rule_D ua = "na"> </ Profile_Rule_D>
<Upgrade_Enable ua = "na">はい</ Upgrade_Enable>
<Upgrade_Error_Retry_Delay ua = "na"> 3600 </ Upgrade_Error_Retry_Delay>
<Log_Upgrade_Request_Msg ua = "na"> $ PN $ MAC-アップグレードの要求$ SCHEME:// $ SERVIP:$ PORT $ PATH </ Log_Upgrade_Request_Msg>
<Log_Upgrade_Success_Msg ua = "na"> $ PN $ MAC-成功したアップグレード$ SCHEME:// $ SERVIP:$ PORT $ PATH-$ ERR </ Log_Upgrade_Success_Msg>
<Log_Upgrade_Failure_Msg ua = "na"> $ PN $ MAC-アップグレード失敗:$ ERR </ Log_Upgrade_Failure_Msg>
<Call_Return_Code ua = "na"> </ Call_Return_Code>
<Blind_Transfer_Code ua = "na"> </ Blind_Transfer_Code>
<Call_Back_Act_Code ua = "na"> </ Call_Back_Act_Code>
<Call_Back_Deact_Code ua = "na"> </ Call_Back_Deact_Code>
<Cfwd_All_Act_Code ua = "na"> </ Cfwd_All_Act_Code>
<Cfwd_All_Deact_Code ua = "na"> </ Cfwd_All_Deact_Code>
<Cfwd_Busy_Act_Code ua = "na"> </ Cfwd_Busy_Act_Code>
<Cfwd_Busy_Deact_Code ua = "na"> </ Cfwd_Busy_Deact_Code>
<Cfwd_No_Ans_Act_Code ua = "na"> </ Cfwd_No_Ans_Act_Code>
<Cfwd_No_Ans_Deact_Code ua = "na"> </ Cfwd_No_Ans_Deact_Code>
<Cfwd_Last_Act_Code ua = "na"> </ Cfwd_Last_Act_Code>
<Cfwd_Last_Deact_Code ua = "na"> </ Cfwd_Last_Deact_Code>
<Block_Last_Act_Code ua = "na"> </ Block_Last_Act_Code>
<Block_Last_Deact_Code ua = "na"> </ Block_Last_Deact_Code>
<Accept_Last_Act_Code ua = "na"> </ Accept_Last_Act_Code>
<Accept_Last_Deact_Code ua = "na"> </ Accept_Last_Deact_Code>
<CW_Act_Code ua = "na"> </ CW_Act_Code>
<CW_Deact_Code ua = "na"> </ CW_Deact_Code>
<CW_Per_Call_Act_Code ua = "na"> </ CW_Per_Call_Act_Code>
<CW_Per_Call_Deact_Code ua = "na"> </ CW_Per_Call_Deact_Code>
<Block_CID_Act_Code ua = "na"> </ Block_CID_Act_Code>
<Block_CID_Deact_Code ua = "na"> </ Block_CID_Deact_Code>
<Block_CID_Per_Call_Act_Code ua = "na"> </ Block_CID_Per_Call_Act_Code>
<Block_CID_Per_Call_Deact_Code ua = "na"> </ Block_CID_Per_Call_Deact_Code>
<Block_ANC_Act_Code ua = "na"> </ Block_ANC_Act_Code>
<Block_ANC_Deact_Code ua = "na"> </ Block_ANC_Deact_Code>
<DND_Act_Code ua = "na"> </ DND_Act_Code>
<DND_Deact_Code ua = "na"> </ DND_Deact_Code>
<CID_Act_Code ua = "na"> </ CID_Act_Code>
<CID_Deact_Code ua = "na"> </ CID_Deact_Code>
<CWCID_Act_Code ua = "na"> </ CWCID_Act_Code>
<CWCID_Deact_Code ua = "na"> </ CWCID_Deact_Code>
<Dist_Ring_Act_Code ua = "na"> </ Dist_Ring_Act_Code>
<Dist_Ring_Deact_Code ua = "na"> </ Dist_Ring_Deact_Code>
<Speed_Dial_Act_Code ua = "na"> </ Speed_Dial_Act_Code>
<Secure_All_Call_Act_Code ua = "na"> </ Secure_All_Call_Act_Code>
<Secure_No_Call_Act_Code ua = "na"> </ Secure_No_Call_Act_Code>
<Secure_One_Call_Act_Code ua = "na"> </ Secure_One_Call_Act_Code>
<Secure_One_Call_Deact_Code ua = "na"> </ Secure_One_Call_Deact_Code>
<Conference_Act_Code ua = "na"> </ Conference_Act_Code>
<Attn-Xfer_Act_Code ua = "na"> </ Attn-Xfer_Act_Code>
<Modem_Line_Toggle_Code ua = "na"> </ Modem_Line_Toggle_Code>
<Media_Loopback_Code ua = "na"> </ Media_Loopback_Code>
<Time_Zone ua = "na"> GMT + 02:00 </ Time_Zone>
<Daylight_Saving_Time_Rule ua = "na"> start = 3 / -1 / 7/3; end = 10 / -1 / 7/4; save = 1 </ Daylight_Saving_Time_Rule>
テンプレート/共通/終了 </ flat-profile>