通信是可以了,但是现在是单向的呼叫,即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协议是一种通信协议,用于CPE(Customer Premises Equipment,用户终端设备)与自动配置服务器(ACS:Auto-Configuration Server)之间的通信。该协议主要应用于DSL(Digital Subscriber Line,数字用户线路)...
1. **TR-069协议基础**:TR-069协议由两部分组成,即CPE(Customer Premises Equipment)侧的ACS(Auto-Configuration Server)和管理服务器侧的CWMP(CPE WAN Management Protocol)。这个协议允许远程服务器对CPE...
TR-069 是一种用于 CPE(Customer Premises Equipment,用户设备)和自动配置服务器(ACS:Auto-Configuration Server)之间的通信协议,旨在实现安全的自动配置和其他 CPE 管理功能。该协议于 2004 年 5 月由 DSL ...
TR-069是一种用于CPE(Customer Premises Equipment)与自动配置服务器(ACS:Auto-Configuration Server)之间的通信协议,包括安全地自动配置及其它在公用框架下的CPE管理功能。本协议定义了CPE与ACS之间的交互...
TR-069协议的核心是CWMP(CPE WAN Management Protocol),它定义了服务提供商的管理服务器(ACS,Auto-Configuration Server)与客户终端设备(CPE,Customer Premises Equipment)之间的通信协议。协议使用SOAP...
《TR-069协议详解:CPE与ACS之间的安全自动配置及管理功能》 一、TR-069协议概述 TR-069,全称Customer Premises Equipment WAN Management Protocol(客户驻地设备广域网管理协议),是DSL论坛(Digital ...
TR-069协议的管理模型包括三个部分:CPE、ACS和参数树。CPE是客户端设备,ACS是自动配置服务器,参数树是管理信息库。 三、SNMP和TR-069的比较 SNMP和TR-069都是网络管理协议,但它们有所不同。SNMP是一种通用的...
TR-069协议,全称为CPE WAN Management Protocol,是一种用于远程管理和自动配置客户边缘设备(Customer Premises Equipment, CPE)的通信协议。该协议由DSL论坛(DSL Forum)制定,旨在简化并标准化互联网服务提供...
TR-069协议的主要组件是CPE(Customer Premises Equipment)和ACS(Auto Configuration Server),它们之间的交互构成了CWMP(CPE WAN Management Protocol)。 CPE通常是用户端设备,如宽带路由器、IPTV机顶盒、...
这些文档对于理解TR-069协议的实施、开发支持TR-069的设备或服务、以及进行兼容性测试都是至关重要的资源。中国电信的规范需求部分可能包含中国地区特定的要求和指导,这对于在中国市场部署TR-069相关产品和服务尤其...
TR-069是宽带论坛(Broadband Forum)发布的CPE WAN管理协议的第5次修订版,是一种用于宽带网络系统的开发和部署的指导性标准协议。TR-069协议最初发布于2004年,随后历经多次修订,以适应不断变化的技术需求和行业...
TR-069,全称为Technical Report 069,是由宽带论坛(Broadband Forum)制定的一套标准,主要用于远程管理家庭和企业网络设备,如路由器...学习和理解TR-069有助于在网络设备开发、运维或技术支持等领域提升专业能力。
2. **CPE**: 家庭或企业中的网络设备,通常支持TR-069协议,能与ACS进行通信,接收配置指令并反馈状态信息。 TR-069协议基于SOAP(Simple Object Access Protocol)和HTTP/HTTPS,保证了安全性和可靠性。它还提供了...
TR-069 Amendment-3是该标准的第三个修订版,通常会包含对前一版本的改进和新增功能。 TR-069协议基于SOAP(Simple Object Access Protocol)和HTTP/HTTPS,利用这些开放的互联网协议,服务提供商可以从中央管理...
TR-069协议全称为CPE WAN管理协议,是一种用于CPE(客户前置设备)与自动配置服务器(ACS)之间通信的技术标准。CPE通常指的是位于用户家里或办公室中的终端设备,如路由器、调制解调器等。而自动配置服务器(ACS)...
TR069(Technical Recommendation TR-069)是一种由DSL论坛(现为Broadband Forum)制定的管理协议,主要用于远程配置和管理家庭或小型办公室的CPE(Customer Premises Equipment),如调制解调器、路由器等设备。...
在实际应用中,服务提供商的ACS通过TR-069协议与CPE设备交互,使用TR-181定义的数据模型来获取设备状态、修改配置、推送软件更新等。这种远程管理能力大大简化了网络维护工作,减少了现场技术人员的干预需求。 总的...
TR-069,全称为"CPE广域网管理协议",是由DSL论坛开发的一种技术规范,旨在解决大规模家庭网络设备的远程集中管理和配置问题。该协议为运营商提供了一个通用框架,使得他们能够从网络侧对诸如网关、路由器、机顶盒等...