最近使用fishcorecpe和openacs做了一次對接測試,用以學習了解TR069,在此期間感謝fishcorecpe作者木魚的幫助,在此表示感謝,以下分享一下小弟的測試過程,給後來者一點學習資料.
1. openacs使用的是vmware的版本,進行過更新,直接啟動虛拟機,openacs就已經運作. 使用sh taillog就可以觀看log
2. fishcorecpe使用的是fishcorecpe-v1.0.1-build20120531-01.tar.gz這個版本,解壓,修改 fishcore.conf以符合自己的openacs的配置,如果openacs是預設沒有做修改的話隻要修改fishcorecpe中的 fishcore.conf中的acsurl就可以了以下是我的fishcore.conf檔案,隻有一條語句
http://10.0.10.130:8080/openacs/acs
3.實際測試的結果如下:
GetRPCMethods OK
Download OK
Reboot OK
SetParameterValues OK
GetParameterValues OK
GetParameterNames OK
SetParameterAttributes OK
GetParameterAttributes OK
AddObject OK
DeleteObject OK
SetVouchers
GetOptions
Upload OK
FactoryReset OK
4. 使用的測試腳本如下:
SetParameterValues
var parameters = new Array ();
parameters[0] = {name: 'InternetGatewayDevice.ManagementServer.PeriodicInformInterval', value: '160', type: 'xsd:unsignedInt'};
cpe.SetParameterValues (parameters, "MyCommandKey");
GetParameterValues
var parameters = new Array ();
parameters[0] = 'InternetGatewayDevice.ManagementServer.PeriodicInformInterval';
var response = cpe.GetParameterValues (parameters);
logger (response[0].name+'='+response[0].value);
Reboot
cpe.Reboot("commandKey");
FactoryReset
cpe.FactoryReset ();
//GetRPCMethods
// this will output supported methods to server console
var methods = cpe.GetRPCMethods ();
for (i = 0; i < methods.length; i++) {
logger ('Method: '+methods );
}
GetParameterNames
var names = cpe.GetParameterNames ('.', true);
for (i = 0; i < names.length; i++) {
cpe.log (names.name + ' -> '+names.writable);
}
Upload
var response = cpe.Upload("daCommand", "2 Vendor Log File","http://10.0.10.130:8080/openacs/", "", "",000,"upload.log");
logger ("st="+response.StartTime+" status="+response.Status);
SetParameterAttributes
var parameters = new Array();
parameters[0]=new Object;
parameters[0].Name='InternetGatewayDevice.ManagementServer.ConnectionRequestURL';
here: 0-->notification off; 1-->Passive notification; 2-->active notification
parameters[0].Notification=2;
parameters[0].NotificationChange=true;
parameters[0].AccessListChange=true;
parameters[0].AccessList= new Array ();
parameters[0].AccessList[0]='subscriber';
cpe.SetParameterAttributes (parameters);
GetParameterAttributes
var parameters = new Array ();
parameters[0] = 'InternetGatewayDevice.ManagementServer.ConnectionRequestURL';
var response = cpe.GetParameterAttributes(parameters);
logger ('mars test for GetParameterAttributes' +response[0].name+'='+response[0].value);
AddObject
cpe.AddObject ('InternetGatewayDevice.DeviceInfo.X_CT-COM_DHCPOPTION60.', 'heiheihei');
DeleteObject
cpe.DeleteObject('InternetGatewayDevice.DeviceInfo.X_CT-COM_DHCPOPTION60.1', 'heiheihei');
Download
logger ("FIRWARE UPGRADE STARTING");
var response = cpe.Download ("daCommand", "1 Firmware Upgrade Image","http://10.0.10.130:8080/openacs/firmware/2.bin", "", "", 6,"2.bin");
logger ("FIRWARE UPGRADE st="+response.StartTime+" ct="+CompleteTime+" status="+response.Status);
logger ("FIRWARE UPGRADE st="+response.StartTime+" status="+response.Status);
logger ("FIRWARE UPGRADE DONE");
5. 測試過程中需要注意的地方,1.addobject方法,需要注意不是所有節點都支援add和delete方法, 隻有協定規定的才可以,是以測試報錯的時候請換其他節點試試,上述提到的js是可以行的.2, delete需要指定删除的節點要帶上object編号.3. download時如果是firmware需要指定檔案的字尾名為bin才可以正确運作(BIN和bin是必須的擴充名).