服务优势

记录团队成长点滴以及对技术、理念的探索,同时我们乐于分享!

CMPP协议短信接口

中国移动通信互联网短信网关接口协议

(China Mobile Peer to Peer, CMPP)

(V2.0)

目  录

前   言 4

1. 范围 5

2. 缩略语 5

3.网络结构 6

4.CMPP功能概述 6

5. 协议栈 8

6. 通信方式 8

6.1 长连接 9

6.2 短连接 11

6.3 本协议中涉及的端口号 12

6.4  交互过程中的应答方式 12

7.消息定义 12

7.1基本数据类型 12

7.2消息结构 13

7.3 消息头格式(Message Header) 13

7.4信息资源站实体(SP)与互联网短信网关(ISMG)间的消息定义 13

7.4.1 SP请求连接到ISMG(CMPP_CONNECT)操作 13

7.4.1.1 CMPP_CONNECT消息定义(SPàISMG) 13

7.4.1.2 CMPP_CONNECT_RESP消息定义(ISMG à SP) 14

7.4.2  SP或ISMG请求拆除连接(CMPP_TERMINATE)操作 14

7.4.2.1 CMPP_TERMINATE消息定义(SPàISMG或ISMG à SP) 14

7.4.2.2 CMPP_TERMINATE_RESP消息定义(SPàISMG或ISMG à SP) 14

7.4.3  SP向ISMG提交短信(CMPP_SUBMIT)操作 15

7.4.3.1 CMPP_SUBMIT消息定义(SPàISMG) 15

7.4.3.2 CMPP_SUBMIT_RESP消息定义(ISMG à SP) 16

7.4.4  SP向ISMG查询发送短信状态(CMPP_QUERY)操作 17

7.4.4.1 CMPP_QUERY消息的定义(SPàISMG) 17

7.4.4.2 CMPP_QUERY_RESP消息的定义(ISMG àSP) 17

7.4.5  ISMG向SP送交短信(CMPP_DELIVER)操作 18

7.4.5.1 CMPP_DELIVER消息定义(ISMGàSP) 18

7.4.5.2 CMPP_DELIVER_RESP消息定义(SP à ISMG) 20

7.4.6 SP向ISMG发起删除短信(CMPP_CANCEL)操作 20

7.4.6.1 CMPP_CANCEL消息定义(SP à ISMG) 20

7.4.6.2 CMPP_CANCEL_RESP消息定义(ISMG à SP) 20

7.4.7 链路检测(CMPP_ACTIVE_TEST)操作 21

7.4.7.1 CMPP_ACTIVE_TEST定义(SP à ISMG或ISMGàSP) 21

7.4.7.2 CMPP_ACTIVE_TEST_RESP定义(SP à ISMG或ISMGàSP) 21

7.5互联网短信网关(ISMG)之间的消息定义 21

7.5.1 源ISMG请求连接到目的ISMG(CMPP_CONNECT)操作 21

7.5.2 源ISMG请求拆除到目的ISMG的连接(CMPP_TERMINATE)操作 21

7.5.3链路检测(CMPP_ACTIVE_TEST)操作 21

7.5.4 源ISMG向目的ISMG转发短信(CMPP_FWD)操作 21

7.5.4.1 CMPP_FWD定义(ISMGà ISMG) 21

7.5.4.2 CMPP_FWD_RESP定义(ISMGà ISMG) 25

7.6互联网短信网关(ISMG)与汇接网关(GNS)之间的消息定义 25

7.6.1 ISMG请求连接到GNS或GNS请求连接到ISMG(CMPP_CONNECT)操作 25

7.6.2 ISMG请求拆除到GNS的连接或GNS请求拆除到ISMG的连接(CMPP_TERMINATE)操作 26

7.6.3 ISMG向汇接网关查询MT路由(CMPP_MT_ROUTE)操作 26

7.6.3.1 CMPP_MT_ROUTE消息定义(ISMGàGNS) 26

7.6.3.2 CMPP_MT_ROUTE_RESP消息定义(GNS à ISMG) 26

7.6.4 ISMG向汇接网关查询MO路由(CMPP_MO_ROUTE)操作 26

7.6.4.1 CMPP_MO_ROUTE消息定义(ISMGàGNS) 26

7.6.4.2 CMPP_MO_ROUTE_RESP消息定义(GNS à ISMG) 27

7.6.5ISMG向汇接网关获取路由(CMPP_GET_ROUTE)操作 27

7.6.5.1 CMPP_GET_ ROUTE消息定义(ISMGàGNS) 27

7.6.5.2 CMPP_GET_ ROUTE_RESP消息定义(GNS à ISMG) 27

7.6.6 ISMG向汇接网关更新MT路由(CMPP_MT_ROUTE_UPDATE)操作 28

7.6.6.1 CMPP_MT_ROUTE_UPDATE消息定义(ISMGàGNS) 28

7.6.6.2 CMPP_MT_ROUTE_UPDATE_RESP消息定义(GNS à ISMG) 28

7.6.7 ISMG向汇接网关更新MO路由(CMPP_MO_ROUTE_UPDATE)操作 29

7.6.7.1 CMPP_MO_ROUTE_UPDATE消息定义(ISMGàGNS) 29

7.6.7.2CMPP_MO_ROUTE_UPDATE_RESP消息定义(GNS à ISMG) 29

7.6.8汇接网关向ISMG更新MT路由(CMPP_PUSH_MT_ROUTE_UPDATE)操作 29

7.6.8.1  CMPP_PUSH_MT_ROUTE_UPDATE消息定义(GNSàISMG) 30

7.6.8.2  CMPP_PUSH_MT_ROUTE_UPDATE_RESP消息定义(ISMG à GNS) 30

7.6.9汇接网关向ISMG更新MO路由(CMPP_PUSH_MO_ROUTE_UPDATE)操作 30

7.6.9.1  CMPP_PUSH_MO_ROUTE_UPDATE消息定义(GNSàISMG) 30

7.6.9.2  CMPP_PUSH_MO_ROUTE_UPDATE_RESP消息定义(ISMG à GNS) 31

7.7系统定义 31

7.7.1 Command_Id定义 31

附录1  MO状态报告的产生 32

修订历史 34

前   言

本规范为中国移动通信集团公司企业规范,简称CMPP,现阶段版本是对1.2.1版修订后形成的,为2.0版。本规范描述了中国移动短信业务中各网元(包括ISMG、GNS和SP)之间的相关消息的类型和定义。根据业务的发展,规范中的信令操作和参数将会做进一步的调整和增加。

本规范解释权属于中国移动通信集团公司。

本规范起草单位:中国移动通信集团公司研发中心。

1. 范围

本规范规定了以下三方面的内容:

(1) 信息资源站实体与互联网短信网关之间的接口协议;

(2) 互联网短信网关之间的接口协议;

(3) 互联网短信网关与汇接网关之间的接口协议。

本规范适用于各SP和ISMG的开发厂商。

2. 缩略语

英文缩写

英文全称

说明

ISMG           

Internet Short Message Gateway

互联网短信网关

SMPP             

Short Message Peer to Peer

短消息点对点协议

CMPP             

China Mobile Peer to Peer

中国移动点对点协议

SMC

Short Message Center

短消息中心

GNS              

Gateway Name Server

网关名称服务器(汇接网关)

SP                

Service Provider

业务提供者,即信息资源站实体

SMC

Short Message Control

SP为收取包月业务费用而向网关发送的消息,网关收到后不送给用户仅产生相应的话单;

ISMG_Id


网关代码:0XYZ01~0XYZ99,其中XYZ为省会区号,位数不足时左补零,如北京编号为1的网关代码为001001,江西编号为1的网关代码为079101,依此类推。

SP_Id


SP的企业代码:网络中SP地址和身                                               份的标识、地址翻译、计费、结算等                                               均以企业代码为依据。企业代码以数                                               字表示,共6位,从“9XY000”至                                              “9XY999”,其中“XY”为各移动公                                               司代码。

SP_Code


SP的服务代码:服务代码是在使用                                            短信方式的点播类业务中,提供给                                            用户点播的内容/应用服务提供商代                                             码。服务代码以数字表示,全国业                                             务服务代码长度统一为 4 位,即                                            “1000”-“9999”;本地业务服务                                              代码长度统一为5 位,即                                              “01000”-“09999”。

Service_Id


SP的业务类型,数字、字母和符号的                                              组合,由SP自定,如图片传情可定                                             为TPCQ,股票查询可定义为11。

 

3.网络结构

图片.png

如图1所示,互联网短信网关(ISMG)是外部信息资源站实体(SP)与移动网内短信中心之间的中介实体,互联网短信网关一方面负责接收SP发送给移动用户的信息和提交给短信中心。另一方面,移动用户点播SP业务的信息将由短信中心通过互联网短信网关发给SP。另外,为了减轻短信中心的信令负荷,互联网短信网关还应根据路由原则将SP提交的信息转发到相应的互联网短信网关。互联网短信网关通过向汇接网关(GNS)查询的方式获得网关间的转发路由信息。


4.CMPP功能概述

CMPP协议主要提供以下两类业务操作:

(1) 短信发送(Short Message Mobile Originate,SM MO)

典型的业务操作举例如图2所示:

图片.png  

1) 手机发出数据请求(可能是订阅信息或图片点播等),被源ISMG接收;

2) 源ISMG对接收到的信息返回响应;

3) 源ISMG在本地查询不到要连接的SP,向GNS(汇接网关)发路由请求信息;

4) GNS将路由信息返回;

5) 源ISMG根据路由信息将请求前转给目的ISMG;

6) 目的ISMG对接收到的信息返回响应;

7) 目的ISMG将请求信息送SP

8) SP返回响应;

在以上操作中,步骤3到步骤8均使用CMPP协议;

在随后的操作中,目的ISMG在接收到SP的响应后将产生MO状态报告发给源ISMG。

(2) 短信接收(Short Message Mobile Terminated,SM MT)

典型的业务操作举例如图3所示:

 图片.png

1) SP发出数据请求(可能是短信通知或手机铃声等),被源ISMG接收;

2) 源ISMG对接收到的信息返回响应;

3) 源ISMG在本地数据库中找不到要目的手机号段所对应网关代码,向GNS(汇接网关)发路由请求信息;

4) 汇接网关将路由信息返回;

5) 源ISMG根据路由信息将请求前转给目的ISMG;

6) 目的ISMG对接收到的信息返回响应;

7) 目的ISMG将请求信息发送至SMC;

8) SMC向目的ISMG返回响应;

在上述操作中,步骤1到步骤6均使用CMPP协议;

在随后的操作中,SMC将通过NO.7信令网向移动用户发送信息,移动用户收到后将返回状态报告(Delivery-Receipt)给短信中心,短信中心将按照MO操作的流程将状态报告返回给SP(如果SP要求返回状态报告)。

5. 协议栈

CMPP协议以TCP/IP作为底层通信承载,具体结构由图4所示:

 图片.png

6. 通信方式

SP与ISMG之间、ISMG之间进行信息交互时,可以采用长连接方式,也可以采用短连接方式。所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发链路检测包以维持此连接。短连接是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接,即每次TCP连接只完成一对CMPP消息的发送。

  

000016.1 长连接

通信双方以客户-服务器方式建立TCP连接,用于双方信息的相互提交。当信道上没有数据传输时,通信双方应每隔时间C发送链路检测包以维持此连接,当链路检测包发出超过时间T后未收到响应,应立即再发送链路检测包,再连续发送N-1次后仍未得到响应则断开此连接。

    参数C、T、N原则上应可配置,现阶段建议取值为:C=3分钟,T=60秒,N=3。

    网关与SP之间、网关之间的消息发送后等待T秒后未收到响应,应立即重发,再连续发送N-1次后仍未得到响应则停发。现阶段建议取值为:T=60秒,N=3。

  消息采用并发方式发送,加以滑动窗口流量控制,窗口大小参数W可配置,现阶段建

议为16,即接收方在应答前一次收到的消息最多不超过16条。

    长连接的操作流程举例如图5所示:

 

图5 长连接一次操作流程

 

000016.2 短连接

通信双方以客户-服务器方式建立TCP连接,应答与请求在同一个连接中完成。系统采用客户/服务器模式,操作以客户端驱动方式发起连接请求,完成一次操作后关闭此连接。

    网关与SP之间、网关之间的消息发送后等待T秒后未收到响应,应立即重发,再连续发送N-1次后仍未得到响应则停发。现阶段建议取值为:T=60秒,N=3。

短连接的操作流程举例如图6所示:

图片.png

6.3 本协议中涉及的端口号

端口号

应用

7890               

长连接(SP与网关间)

7900

短连接(SP与网关间或网关之间)

7930       

长连接(网关之间)

9168

短连接(短信网关与汇接网关之间)

 

6.4  交互过程中的应答方式

在SP与ISMG之间、SMC与ISMG之间及ISMG之间的交互过程中均采用异步方式,即任一个网元在收到请求消息后应立即回送响应消息。举例如图7所示:

图片.png

7.消息定义

 7.1基本数据类型

Unsigned Integer  

无符号整数

Integer

整数,可为正整数、负整数或零

Octet String

定长字符串,位数不足时,如果左补0则补ASCII表示的零,如果右补0则补二进制的零

7.2消息结构

项目

说明

Message Header

消息头(所有消息公共包头)

Message Body

消息体

 

7.3 消息头格式(Message Header)

字段名

字节数

类型

描述

Total_Length

4

Unsigned  Integer

消息总长度(含消息头及消息体)

Command_Id

4

Unsigned Integer

命令或响应类型

Sequence_Id

4

Unsigned Integer

消息流水号,顺序累加,步长为1,循环使用(一对请求和应答消息的流水号必须相同)

 

7.4信息资源站实体(SP)与互联网短信网关(ISMG)间的消息定义

SP与ISMG之间互为客户/服务器,但要求SP首先以客户的身份请求连接到ISMG,之后SP与ISMG之间方可进行数据传输。

7.4.1 SP请求连接到ISMG(CMPP_CONNECT)操作

 

CMPP_CONNECT操作的目的是SP向ISMG注册作为一个合法SP身份,若注册成功后即建立了应用层的连接,此后SP可以通过此ISMG接收和发送短信。

ISMG以CMPP_CONNECT_RESP消息响应SP的请求。

7.4.1.1 CMPP_CONNECT消息定义(SPàISMG)

字段名

字节数

属性

描述

Source_Addr

6

Octet String

源地址,此处为SP_Id,即SP的企业代码。

AuthenticatorSource

16

Octet String

用于鉴别源地址。其值通过单向MD5 hash计算得出,表示如下:

AuthenticatorSource =

MD5(Source_Addr+9 字节的0 +shared secret+timestamp)

Shared secret 由中国移动与源地址实体事先商定,timestamp格式为:MMDDHHMMSS,即月日时分秒,10位。

Version

1

Unsigned Integer

双方协商的版本号(高位4bit表示主版本号,低位4bit表示次版本号)

Timestamp

4

Unsigned Integer

时间戳的明文,由客户端产生,格式为MMDDHHMMSS,即月日时分秒,10位数字的整型,右对齐 。

7.4.1.2 CMPP_CONNECT_RESP消息定义(ISMG à SP)

字段名

字节数

属性

描述

Status

1

Unsigned Integer

状态

0:正确

1:消息结构错

 2:非法源地址

 3:认证错

 4:版本太高

  5~ :其他错误

AuthenticatorISMG

16

Octet String

ISMG认证码,用于鉴别ISMG。

其值通过单向MD5 hash计算得出,表示如下:

AuthenticatorISMG =MD5(Status+AuthenticatorSource+shared secret),Shared secret 由中国移动与源地址实体事先商定,AuthenticatorSource为源地址实体发送给ISMG的对应消息CMPP_Connect中的值。

 认证出错时,此项为空。

Version

1

Unsigned Integer

服务器支持的最高版本号

 

7.4.2  SP或ISMG请求拆除连接(CMPP_TERMINATE)操作

CMPP_TERMINATE操作的目的是SP或ISMG基于某些原因决定拆除当前的应用层连接而发起的操作。此操作完成后SP与ISMG之间的应用层连接被释放,此后SP若再要与ISMG通信时应发起CMPP_CONNECT操作。

ISMG或SP以CMPP_TERMINATE_RESP消息响应请求。

7.4.2.1 CMPP_TERMINATE消息定义(SPàISMG或ISMG à SP)

无消息体。

7.4.2.2 CMPP_TERMINATE_RESP消息定义(SPàISMG或ISMG à SP)

无消息体。

 

7.4.3  SP向ISMG提交短信(CMPP_SUBMIT)操作

 

CMPP_SUBMIT操作的目的是SP在与ISMG建立应用层连接后向ISMG提交短信。

ISMG以CMPP_SUBMIT_RESP消息响应。

 

 

7.4.3.1 CMPP_SUBMIT消息定义(SPàISMG)

字段名

字节数

属性

描述

Msg_Id

8

Unsigned Integer

信息标识,由SP侧短信网关本身产生,本处填空。

Pk_total

1

Unsigned Integer

相同Msg_Id的信息总条数,从1开始

Pk_number

1

Unsigned Integer

相同Msg_Id的信息序号,从1开始

Registered_Delivery

1

Unsigned Integer

是否要求返回状态确认报告:

0:不需要

1:需要

2:产生SMC话单

 (该类型短信仅供网关计费使用,不发送给目的终端)

Msg_level

1

Unsigned Integer

信息级别

Service_Id

10

Octet String

业务类型,是数字、字母和符号的组合。

Fee_UserType

1

Unsigned Integer

计费用户类型字段

0:对目的终端MSISDN计费;

1:对源终端MSISDN计费;

2:对SP计费;

3:表示本字段无效,对谁计费参见Fee_terminal_Id字段。

Fee_terminal_Id

21

Unsigned Integer

被计费用户的号码(如本字节填空,则表示本字段无效,对谁计费参见Fee_UserType字段,本字段与Fee_UserType字段互斥)

TP_pId

1

Unsigned Integer

GSM协议类型。详细是解释请参考GSM03.40中的9.2.3.9

TP_udhi

1

Unsigned Integer

GSM协议类型。详细是解释请参考GSM03.40中的9.2.3.23,仅使用1位,右对齐

Msg_Fmt

1

Unsigned Integer

信息格式

  0:ASCII串

  3:短信写卡操作

  4:二进制信息

  8:UCS2编码

15:含GB汉字  。。。。。。

Msg_src

6

Octet String

信息内容来源(SP_Id)

FeeType

2

Octet String

资费类别

01:对“计费用户号码”免费

02:对“计费用户号码”按条计信息费

03:对“计费用户号码”按包月收取信息费

04:对“计费用户号码”的信息费封顶

05:对“计费用户号码”的收费是由SP实现

FeeCode

6

Octet String

资费代码(以分为单位)

ValId_Time

17

Octet String

存活有效期,格式遵循SMPP3.3协议

At_Time

17

Octet String

定时发送时间,格式遵循SMPP3.3协议

Src_Id

21

Octet String

源号码

SP的服务代码或前缀为服务代码的长号码, 网关将该号码完整的填到SMPP协议Submit_SM消息相应的source_addr字段,该号码最终在用户手机上显示为短消息的主叫号码

DestUsr_tl

1

Unsigned Integer

接收信息的用户数量(小于100个用户)

Dest_terminal_Id

21*DestUsr_tl

Octet String

接收短信的MSISDN号码

Msg_Length

1

Unsigned Integer

信息长度(Msg_Fmt值为0时:<160个字节;其它<=140个字节)

Msg_Content

Msg_length

Octet String

信息内容

Reserve

8

Octet String

保留

 

注意:关于短信群发的问题,若SP对于群发消息不要求状态报告的回送时,才可以考虑群发,否则必须逐条发送。

 

7.4.3.2 CMPP_SUBMIT_RESP消息定义(ISMG à SP)

 

字段名

字节数

属性

描述

Msg_Id

8

Unsigned Integer

信息标识,生成算法如下:

采用64位(8字节)的整数:

(1) 时间(格式为MMDDHHMMSS,即月日时分秒):bit64~bit39,其中

bit64~bit61:月份的二进制表示;

bit60~bit56:日的二进制表示;

bit55~bit51:小时的二进制表示;

bit50~bit45:分的二进制表示;

bit44~bit39:秒的二进制表示;

(2) 短信网关代码:bit38~bit17,把短信网关的代码转换为整数填写到该字段中。

(3) 序列号:bit16~bit1,顺序增加,步长为1,循环使用。

各部分如不能填满,左补零,右对齐。

 

(SP根据请求和应答消息的Sequence_Id一致性就可得到CMPP_Submit消息的Msg_Id)

Result

1

Unsigned Integer

结果

0:正确

1:消息结构错

 2:命令字错

 3:消息序号重复

4:消息长度错

5:资费代码错

6:超过最大信息长

7:业务代码错

8:流量控制错

9~ :其他错误

 

7.4.4  SP向ISMG查询发送短信状态(CMPP_QUERY)操作

CMPP_QUERY操作的目的是SP向ISMG查询某时间的业务统计情况,可以按总数或按业务代码查询。 ISMG以CMPP_QUERY_RESP应答。

7.4.4.1 CMPP_QUERY消息的定义(SPàISMG)

字段名

字节数

属性

描述

Time

8

Octet String

时间YYYYMMDD(精确至日)

Query_Type

1

Unsigned Integer

查询类别

0:总数查询

1:按业务类型查询

Query_Code

10

Octet String

查询码

当Query_Type为0时,此项无效;当Query_Type为1时,此项填写业务类型Service_Id. 

Reserve

8

Octet String

保留

 

7.4.4.2 CMPP_QUERY_RESP消息的定义(ISMG àSP)

字段名

字节数

属性

描述

Time

8

Octet String

时间(精确至日)

Query_Type

1

Unsigned Integer

查询类别

0:总数查询

1:按业务类型查询

Query_Code

10

Octet String

查询码

MT_TLMsg

4

Unsigned Integer

从SP接收信息总数

MT_Tlusr

4

Unsigned Integer

从SP接收用户总数

MT_Scs

4

Unsigned Integer

成功转发数量

MT_WT

4

Unsigned Integer

待转发数量

MT_FL

4

Unsigned Integer

转发失败数量

MO_Scs

4

Unsigned Integer

向SP成功送达数量

MO_WT

4

Unsigned Integer

向SP待送达数量

MO_FL

4

Unsigned Integer

向SP送达失败数量

 

7.4.5  ISMG向SP送交短信(CMPP_DELIVER)操作

CMPP_DELIVER操作的目的是ISMG把从短信中心或其它ISMG转发来的短信送交SP,SP以CMPP_DELIVER_RESP消息回应。

7.4.5.1 CMPP_DELIVER消息定义(ISMGàSP)

字段名

字节数

属性

描述

Msg_Id

8

Unsigned Integer

信息标识

生成算法如下:

采用64位(8字节)的整数:

(1) 时间(格式为MMDDHHMMSS,即月日时分秒):bit64~bit39,其中

bit64~bit61:月份的二进制表示;

bit60~bit56:日的二进制表示;

bit55~bit51:小时的二进制表示;

bit50~bit45:分的二进制表示;

bit44~bit39:秒的二进制表示;

(2) 短信网关代码:bit38~bit17,把短信网关的代码转换为整数填写到该字段中。

(3) 序列号:bit16~bit1,顺序增加,步长为1,循环使用。

各部分如不能填满,左补零,右对齐。

Dest_Id

21

Octet String

目的号码 

SP的服务代码,一般4--6位,或者是前缀为服务代码的长号码;该号码是手机用户短消息的被叫号码。

Service_Id

10

Octet String

业务类型,是数字、字母和符号的组合。

TP_pid

1

Unsigned Integer

GSM协议类型。详细解释请参考GSM03.40中的9.2.3.9

TP_udhi

1

Unsigned Integer

GSM协议类型。详细解释请参考GSM03.40中的9.2.3.23,仅使用1位,右对齐

Msg_Fmt

1

Unsigned Integer

信息格式

  0:ASCII串

  3:短信写卡操作

  4:二进制信息

  8:UCS2编码

15:含GB汉字   

Src_terminal_Id

21

Octet String

源终端MSISDN号码(状态报告时填为CMPP_SUBMIT消息的目的终端号码)

Registered_Delivery

1

Unsigned Integer

是否为状态报告

0:非状态报告

1:状态报告

Msg_Length

1

Unsigned Integer

消息长度

Msg_Content

Msg_length

Octet String

消息内容

Reserved

8

Octet String

保留项

 

当ISMG向SP送交状态报告时,信息内容字段(Msg_Content)格式定义如下:

 


我猜您现在可能存在如下疑问:
  • 你们能做什么?
  • 需要多少钱?
  • 需要多久?
  • 我需要做什么?
  • 需要提供什么资料?
  • 售后服务怎么样?
提交您的需求 点击在线咨询

同样的问题每个人侧重点不同,很难有标准的答案;
请认真填写表单信息或直接在线联系,我们会给您最合适的答案!