`
itwangxinli
  • 浏览: 143767 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
阅读更多

通信是可以了,但是现在是单向的呼叫,即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>

 

4
0
分享到:
评论
1 楼 无双Rama 2012-03-23  
我用HttpClient实现,怎么让AP主动连ACS呢?

相关推荐

    TR-069.zip

    包含TR-069相关的全套协议规范,TR-069,TR-098,TR-111,TR-143,TR-106,TR-181 包含中国电信 规范需求,以及很具有参考价值的博客 包含ACS测试服务器

    TR-069资料压缩包

    该压缩包中包含文件 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

    tr-069协议(中文)

    适用于CPE与自动配置服务器(ACS: Auto-Configuration Server)之间的通信协议,包括安全地自动配置及其它在公用框架下的CPE管理功能

    tr069 协议 java 开发

    tr069 协议 java 开发 包括acs与ape的基础知识的研究 1.基于TR069协议的运营商终端管理.pdf 2.TR069协议实现研究.pdf 3.TR-069Amendment2.pdf 4.ACSDemo+for+TR069.rar

    tr-069资料

    tr-069介绍资料 来自h3c CWMP (TR-069)技术介绍 本期话题:技术点详解---新型网管理念TR-069

    TR-069协议英文版

    TR069协议详解 TR069, 全称“Technical Report 069”是由DSL Forum(一个非盈利性的全球行业联盟, 致力于发展宽带网络范, 本文档为英文版本,CWMP Version: 1.4。

    TR069协议编程基础知识-RPC详细解析.pdf

    TR069协议编程基础知识-RPC详细解析.pdf,TR069 协议包数据,为了能够正确的处理设备的请求响应,就必须对 TR069 协议包数据内容有所了解。我们所关心的层主要是 RPC Methods 层、 SOAP层以及 HTTP层。下面具体介绍 ...

    TR-069 Amendment 3

    最新的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)

    GenieACS是用于对启用TR-069的设备进行远程管理的高性能自动配置服务器(ACS)。 它利用声明性和容错配置引擎来大规模自动化复杂的配置方案。 经过实践检验,它可以处理数十万甚至数十万个并发设备。 快速开始 安装...

    TR069测试openacs环境搭建依赖

    TR069测试、cpe与ACS交互、openacs服务器搭建; 包含了jdk、jboss、mysql、openacs等搭建openacs所需的所有依赖包。

    TR-069 技术报告 中文版

    TR-069 适用于CPE与自动配置服务器(ACS)之间的通信协议,包括安全地自动配置及其它在公用框架下的CPE管理功能。

    acs模拟器软件 用于测试tr069协议

    acs模拟器软件 用于测试tr069协议,基本对这个协议的远程调用方法有个遍历。

    TR-181_Issue-2_Amendment-2.zip_specification_tr_tr-181

    general device model for TR-069 ACS

    TR069-OPENACS服务器搭建.doc

    TR069 Openacs服务器搭建 目录 一、安装JDK 3 二、安装MySQL数据库及驱动 5 三、JBOSS服务器 13 四、在ANT下编译ACS源码 16 五、在JBOSS中部署编译后的openacs项目 19 六、OPENACS操作简要手册 22 1 、CPE的设置 22 ...

    TR-069浅析(完整流程).docx

    TR-069所定义的框架中,主要包括两类逻辑设备:受管理的用户设备和管理服务器(ACS)。在家庭网络环境下,需要从网络侧进行配置和管理的设备,一般都是与运营商业务直接相关的设备,比如家庭网关、机顶盒、IP电话...

    OpenACS(tr-069)

    Openacs是一个用Java编写的开源的ACS服务器,已经拥有了非常完善的功能,不仅仅可以作为CPE开发的辅助测试工具,而且完全可以胜任对一定数量的CPE进行远程管理

    中国电信TR069测试指导.doc

    一、TR069简介 5 二、测试实例演示 7 1.建立TR069与CPE之间的连接 7 2.通过TR069新建一条DHCP的WAN连接 15 3.查询设备信息 21 三、各个测试功能点详细操作图示 23 1.监控信息上报测试 23 2.PING诊断测试...

    TR069参数介绍

    (1) TR-069定义了2部分内容,LAN和WAN的。而SNMP内容定义上对此不区分。 (2) SNMP范围上更宽一些,没有针对各种不同的网络专门定义,只是根据各个网络的小元素去定义MIB,而TR-069针对LAN和WAN做了比较详细的...

    openacs-bin-0.4 bin版本,acs.ear直接用

    openacs 编译版,亲测好用,下载得到的Openacs-0.4-bin中包含了acs.ear,需要部署到JBOSS中才可以运行,首先将openacs解压到/opt中,将acs.ear拷贝到jboss/server/default/deploy/下面

    TR-069技术文档

    本文档描述 CPE WAN 管理协议,适用于 CPE 与自动配置服务器(ACS)间的 通信。

Global site tag (gtag.js) - Google Analytics