通信是可以了,但是现在是单向的呼叫,即AP呼叫ACS,那么ACS怎么呼叫AP呢?
在TR-069协议3.2中规定了如何向AP发送连接请求,让AP创建连接。注意协议中规定是ACS向AP发送连接请求,AP鉴权通过后才会创建连接到ACS,所以ACS是不会连接到AP的,只是会发送连接请求,请求AP链接到ACS。
下面是一种实现方式,使用了HTTPClient模拟发送GET请求到AP,其中AP的请求URL包含在Inform中了,也就是InternetGatewayDevice.ManagementServer.Connection
RequestURL对应的Value,用户名和密码就是上篇文章提到的 cwmp cep username XXX
password xxxx对应的value了。
具体不多说,先看协议再看代码了。
package com.seahigh;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.UsernamePasswordCredentials;
import org.apache.commons.httpclient.auth.AuthPolicy;
import org.apache.commons.httpclient.auth.AuthScope;p
import org.apache.commons.httpclient.methods.GetMethod;
/**
*
* @author 汪心利
* @Create Time 2009-1-6上午10:15:20
* @CopyRight (C) seahigh 2009
*/
public class ConnectionRequest {
public static void main(String[] arg) throws HttpException, IOException {
callCPE("http://192.168.1.200:7547/cpe", "admin", "admin");
}
/**
* ACS CALL CPE
*
* @param connectionRequestURL
* 访问CPE的URL 如:http://192.168.1.200:7547/cpe
* @param cepAccount
* 连接CPE用户名
* @param cpePWD
* 访问CPE的密码
*/
public static void callCPE(String connectionRequestURL, String cpeAccount,
String cpePWD) {
GetMethod get = new GetMethod(connectionRequestURL);
int result = 0;
try {
HttpClient httpclient = new HttpClient();
List authPrefs = new ArrayList(1);
// Digest Auth
authPrefs.add(AuthPolicy.DIGEST);
httpclient.getParams().setParameter(
AuthPolicy.AUTH_SCHEME_PRIORITY, authPrefs);
// add CPE access param
httpclient.getState().setCredentials(AuthScope.ANY,
new UsernamePasswordCredentials(cpeAccount, cpePWD));
result = httpclient.executeMethod(get);
} catch (HttpException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
// relaseConnection
get.releaseConnection();
}
System.out.println("Response status code: " + result);
System.out.println("Response body: ");
}
}
执行下程序,就可以看到AP向ACS发送Inform了,仔细查看inform的消息,就会发现
enent-code 6 Connection Request了,这就是说是ACS请求建立会话而创建的连接了.
结果如下:
<soap:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:cwmp="urn:dslforum-org:cwmp-1-0"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<soap:Header>
<cwmp:ID soap:mustUnderstand="1">2</cwmp:ID>
</soap:Header>
<soap:Body>
<cwmp:Inform>
<DeviceId>
<Manufacturer>H3C</Manufacturer>
<OUI>000FE2</OUI>
<ProductClass>Gateway</ProductClass>
<SerialNumber>210235A32MC085003208</SerialNumber>
</DeviceId>
<Event soapenc:arrayType="cwmp:EventStruct[1]">
<EventStruct>
<EventCode>6 CONNECTION REQUEST</EventCode>
<CommandKey></CommandKey>
</EventStruct>
</Event>
<MaxEnvelopes>1</MaxEnvelopes>
<CurrentTime>2000-04-28T06:11:26</CurrentTime>
<RetryCount>0</RetryCount>
<ParameterList soapenc:arrayType="cwmp:ParameterValueStruct[8]">
<ParameterValueStruct>
<Name>InternetGatewayDevice.DeviceSummary</Name>
<Value soap:type="soap:string">
InternetGatewayDevice:1.0[](Baseline:1)
</Value>
</ParameterValueStruct>
<ParameterValueStruct>
<Name>InternetGatewayDevice.DeviceInfo.SpecVersion</Name>
<Value soap:type="soap:string">1.0</Value>
</ParameterValueStruct>
<ParameterValueStruct>
<Name>InternetGatewayDevice.DeviceInfo.HardwareVersion</Name>
<Value soap:type="soap:string">Ver.A</Value>
</ParameterValueStruct>
<ParameterValueStruct>
<Name>InternetGatewayDevice.DeviceInfo.SoftwareVersion</Name>
<Value soap:type="soap:string">V100R001B47D011SP01</Value>
</ParameterValueStruct>
<ParameterValueStruct>
<Name>InternetGatewayDevice.DeviceInfo.ProvisioningCode</Name>
<Value soap:type="soap:string">ProvisioningCode</Value>
</ParameterValueStruct>
<ParameterValueStruct>
<Name>
InternetGatewayDevice.ManagementServer.ConnectionRequestURL
</Name>
<Value soap:type="soap:string">
http://192.168.1.200:7547/cpe
</Value>
</ParameterValueStruct>
<ParameterValueStruct>
<Name>InternetGatewayDevice.ManagementServer.ParameterKey</Name>
<Value soap:type="soap:string"></Value>
</ParameterValueStruct>
<ParameterValueStruct>
<Name>
InternetGatewayDevice.WANDevice.1.WANConnectionDevice.1.WANPPPConnection.1.ExternalIPAddress
</Name>
<Value soap:type="soap:string">192.168.1.200</Value>
</ParameterValueStruct>
</ParameterList>
</cwmp:Inform>
</soap:Body>
</soap:Envelope>
分享到:
相关推荐
包含TR-069相关的全套协议规范,TR-069,TR-098,TR-111,TR-143,TR-106,TR-181 包含中国电信 规范需求,以及很具有参考价值的博客 包含ACS测试服务器
该压缩包中包含文件 1。TR-069中文版.rar 2。TR-069英文版.rar ...TR-069之SOAP协议规范.rar 6。TR-069之Web Services Description Language (WSDL) Version 2.0 Part 0Primer.rar 7。openacs-bin-0.3.zip
适用于CPE与自动配置服务器(ACS: Auto-Configuration Server)之间的通信协议,包括安全地自动配置及其它在公用框架下的CPE管理功能
tr069 协议 java 开发 包括acs与ape的基础知识的研究 1.基于TR069协议的运营商终端管理.pdf 2.TR069协议实现研究.pdf 3.TR-069Amendment2.pdf 4.ACSDemo+for+TR069.rar
tr-069介绍资料 来自h3c CWMP (TR-069)技术介绍 本期话题:技术点详解---新型网管理念TR-069
TR069协议详解 TR069, 全称“Technical Report 069”是由DSL Forum(一个非盈利性的全球行业联盟, 致力于发展宽带网络范, 本文档为英文版本,CWMP Version: 1.4。
TR069协议编程基础知识-RPC详细解析.pdf,TR069 协议包数据,为了能够正确的处理设备的请求响应,就必须对 TR069 协议包数据内容有所了解。我们所关心的层主要是 RPC Methods 层、 SOAP层以及 HTTP层。下面具体介绍 ...
最新的TR069 This document describes the CPE WAN ...which can be applied to any TR-069 CPE. Other documents specify the managed objects, or data models, for specific types of devices or services.
GenieACS是用于对启用TR-069的设备进行远程管理的高性能自动配置服务器(ACS)。 它利用声明性和容错配置引擎来大规模自动化复杂的配置方案。 经过实践检验,它可以处理数十万甚至数十万个并发设备。 快速开始 安装...
TR069测试、cpe与ACS交互、openacs服务器搭建; 包含了jdk、jboss、mysql、openacs等搭建openacs所需的所有依赖包。
TR-069 适用于CPE与自动配置服务器(ACS)之间的通信协议,包括安全地自动配置及其它在公用框架下的CPE管理功能。
acs模拟器软件 用于测试tr069协议,基本对这个协议的远程调用方法有个遍历。
general device model for TR-069 ACS
TR069 Openacs服务器搭建 目录 一、安装JDK 3 二、安装MySQL数据库及驱动 5 三、JBOSS服务器 13 四、在ANT下编译ACS源码 16 五、在JBOSS中部署编译后的openacs项目 19 六、OPENACS操作简要手册 22 1 、CPE的设置 22 ...
TR-069所定义的框架中,主要包括两类逻辑设备:受管理的用户设备和管理服务器(ACS)。在家庭网络环境下,需要从网络侧进行配置和管理的设备,一般都是与运营商业务直接相关的设备,比如家庭网关、机顶盒、IP电话...
Openacs是一个用Java编写的开源的ACS服务器,已经拥有了非常完善的功能,不仅仅可以作为CPE开发的辅助测试工具,而且完全可以胜任对一定数量的CPE进行远程管理
一、TR069简介 5 二、测试实例演示 7 1.建立TR069与CPE之间的连接 7 2.通过TR069新建一条DHCP的WAN连接 15 3.查询设备信息 21 三、各个测试功能点详细操作图示 23 1.监控信息上报测试 23 2.PING诊断测试...
(1) TR-069定义了2部分内容,LAN和WAN的。而SNMP内容定义上对此不区分。 (2) SNMP范围上更宽一些,没有针对各种不同的网络专门定义,只是根据各个网络的小元素去定义MIB,而TR-069针对LAN和WAN做了比较详细的...
openacs 编译版,亲测好用,下载得到的Openacs-0.4-bin中包含了acs.ear,需要部署到JBOSS中才可以运行,首先将openacs解压到/opt中,将acs.ear拷贝到jboss/server/default/deploy/下面
本文档描述 CPE WAN 管理协议,适用于 CPE 与自动配置服务器(ACS)间的 通信。