infoX-API接口培训材料.ppt
i i短消息短消息APIAPI开发培训开发培训2003-01-14华为技术有限公司H HU UA AW WE EI I 培训大纲bb基础知识培训(基础知识培训(2525分钟)分钟)infoXinfoX信息平台介绍(信息平台介绍(1010分钟)分钟)CMPP2.0 CMPP2.0 介绍(介绍(1515分钟)分钟)bbAPI API 函数讲解函数讲解(45(45分钟分钟)smeidll smeidll 函数接口介绍(函数接口介绍(2525分钟)分钟)Unix Unix 函数接口介绍(函数接口介绍(1010分钟)分钟)Java Java 函数接口介绍(函数接口介绍(1010分钟)分钟)bb开发应用举例开发应用举例(30)(30)VCDemo VCDemo VBDemoVBDemobb答疑讨论答疑讨论(20(20分钟分钟)H HU UA AW WE EI IinfoX短消息信息平台 短消息信息平台系统概述短消息信息平台系统概述 短消息信息平台功能短消息信息平台功能 信息平台维测和管理信息平台维测和管理 网管与信息平台网管与信息平台H HU UA AW WE EI IinfoX 信息平台主要用途bb移动梦网网关(广东、江苏、浙江)移动梦网网关(广东、江苏、浙江)bb短消息互联网关(移动,联通,固网)短消息互联网关(移动,联通,固网)bb固网网关固网网关bb联通在线联通在线bb企业短消息网关等企业短消息网关等H HU UA AW WE EI I移动梦网网关拓扑图SP 1SMSC mInternetSMSC 1SP nSCP计费中心计费中心H HU UA AW WE EI I互联网关网络组网示意图H HU UA AW WE EI I短消息信息平台支持协议和遵循规范SMPP SMPP 协议,协议,CMPPCMPP协议协议 ,SGIP,SGIP 协议协议,SMGP,SMGP协议协议遵循规范遵循规范n短消息网关设备规范V1.2n中国移动通信短消息网关测试规范V1.2n中国移动通信资源站实体与互联网短消息网关接口协议V1.2n神州行梦网业务SCP与ISMG之间通讯协议1.0n点对点短消息网间互通协议V2.0n点对点短消息网间测试规范V1.2H HU UA AW WE EI IinfoX网关综合性能指标 infoX平台平台性能指标性能指标:最大消息处理能力最大消息处理能力最大消息处理能力最大消息处理能力12001200条条条条/秒秒秒秒最大缓存消息数最大缓存消息数最大缓存消息数最大缓存消息数500500万条万条万条万条最大最大最大最大CMPP/SMPPCMPP/SMPP端口数端口数端口数端口数 10001000个个个个最大短消息中心接入数最大短消息中心接入数最大短消息中心接入数最大短消息中心接入数6464个个个个最大缓存路由信息最大缓存路由信息最大缓存路由信息最大缓存路由信息50005000个个个个H HU UA AW WE EI IinfoX短消息信息平台 短消息信息平台系统概述短消息信息平台系统概述 短消息信息平台功能短消息信息平台功能 信息平台维测和管理信息平台维测和管理 网管与信息平台网管与信息平台H HU UA AW WE EI I信息平台功能(一)bb路由管理bb接口管理,帐号管理bb消息实时跟踪bb鉴权管理bb记忆路由功能H HU UA AW WE EI I信息平台功能(二)bb鉴权管理bb记忆路由功能bb告警功能bb业务外包特性bb管理权限分级功能H HU UA AW WE EI I信息平台功能(三)bb主叫路由功能bb接口限制功能bb计费流水话单bb用户过滤bb主备接口功能bb业务优先级管理H HU UA AW WE EI IinfoX短消息信息平台 短消息信息平台系统概述短消息信息平台系统概述 短消息信息平台功能短消息信息平台功能 信息平台维测和管理信息平台维测和管理 网管与信息平台网管与信息平台H HU UA AW WE EI I主要功能主要功能系统参数设置系统参数设置帐号管理帐号管理协议跟踪协议跟踪网关短信管理网关短信管理数数据据日日常常维维护护。综合网关维测台H HU UA AW WE EI IinfoX短消息信息平台 短消息信息平台系统概述短消息信息平台系统概述 短消息信息平台功能短消息信息平台功能 信息平台维测和管理信息平台维测和管理 网管与信息平台网管与信息平台H HU UA AW WE EI I网管维护管理infoXI2000MT SERVER上级综合网管上级综合网管统一网管统一网管集中监控集中监控配置管理配置管理实时告警实时告警统计管理统计管理H HU UA AW WE EI I培训大纲bb基础知识培训(基础知识培训(2525分钟)分钟)infoXinfoX信息平台介绍(信息平台介绍(1010分钟)分钟)CMPP2.0 CMPP2.0 介绍(介绍(1515分钟)分钟)bbAPI API 函数讲解函数讲解(45(45分钟分钟)smeidll smeidll 函数接口介绍(函数接口介绍(2525分钟)分钟)Unix Unix 函数接口介绍(函数接口介绍(1010分钟)分钟)Java Java 函数接口介绍(函数接口介绍(1010分钟)分钟)bb开发应用举例开发应用举例(30)(30)VCDemo VCDemo VBDemoVBDemobb答疑讨论答疑讨论(20(20分钟分钟)H HU UA AW WE EI ISP 和网关之间消息流建议通讯方式:长连接 SP ISMGCMPP_CONNECTCMPP_CONNECTt_RESPCMPP_SUBMITCMPP_SUBMIT_RESPCMPP_QUERYcCMPP_QUERY_RESPCMPP_CANCLECMPP_CANCLE_RESPCMPP_DELIVERCMPP_DELIVER_RESPH HU UA AW WE EI I 培训大纲bb基础知识培训(基础知识培训(2525分钟)分钟)infoXinfoX信息平台介绍(信息平台介绍(1010分钟)分钟)CMPP2.0 CMPP2.0 介绍(介绍(1515分钟)分钟)bbAPI API 函数讲解函数讲解(45(45分钟分钟)smeidll smeidll 函数接口介绍(函数接口介绍(2525分钟)分钟)Unix Unix 函数接口介绍(函数接口介绍(1010分钟)分钟)Java Java 函数接口介绍(函数接口介绍(1010分钟)分钟)bb开发应用举例开发应用举例(30)(30)VCDemo VCDemo VBDemoVBDemobb答疑讨论答疑讨论(20(20分钟分钟)H HU UA AW WE EI I短消息平台系统结构短消息平台系统结构bbSPSP:业务提供商程序业务提供商程序bbSMEIDLLSMEIDLL:动态库接口动态库接口bbISMGISMG:infoX infoX短消息网关短消息网关H HU UA AW WE EI ISMEIDLL接口的优点:接口的优点:bbSp,CP,ICP,Sp,CP,ICP,人工台、自动台、维测台等(统称为人工台、自动台、维测台等(统称为ESMEESME扩扩展短消息实体)可以直接和展短消息实体)可以直接和ISMGISMG按照按照CMPPCMPP或或SMPP,SGIP,SMGPSMPP,SGIP,SMGP协议通讯,实现规范规定的有关服务。协议通讯,实现规范规定的有关服务。ESMEESME和和ISMGISMG之间的通讯直接通过之间的通讯直接通过CMPPCMPP,SMPPSMPP等等协议,协议,是十分烦琐的,而且有许多工作是公共的,所以在是十分烦琐的,而且有许多工作是公共的,所以在M900 M900 INtess-SMAX IIINtess-SMAX II系统中提供了一些系统中提供了一些APIAPI函数,供函数,供ESME(SP,CP)ESME(SP,CP)直接使用,而不用直接使用,而不用ESMEESME处理低层的处理低层的TCPIPTCPIP通信,及通信,及ISMGISMG的握手等工作。通过这些的握手等工作。通过这些APIAPI函数,将函数,将CMPP,SMPPCMPP,SMPP等等协议以协议以APIAPI函数的形式提供给函数的形式提供给ESMEESME使用。使用。H HU UA AW WE EI ISMEIDLL基本功能基本功能bb1.低层链路出现故障时,重连链路,提示上层。bb2.和ISMG的定时握手。bb3.提供实现CMPP和SMPP协议的API函数。API函数应用说明H HU UA AW WE EI I 培训大纲bb基础知识培训(基础知识培训(2525分钟)分钟)infoXinfoX信息平台介绍(信息平台介绍(1010分钟)分钟)CMPP2.0 CMPP2.0 介绍(介绍(1515分钟)分钟)bbAPI API 函数讲解函数讲解(45(45分钟分钟)smeidll smeidll 函数接口介绍(函数接口介绍(2525分钟)分钟)Unix Unix 函数接口介绍(函数接口介绍(1010分钟)分钟)Java Java 函数接口介绍(函数接口介绍(1010分钟)分钟)bb开发应用举例开发应用举例(30)(30)VCDemo VCDemo VBDemoVBDemobb答疑讨论答疑讨论(20(20分钟分钟)H HU UA AW WE EI IVC中如何调用动态链接库中如何调用动态链接库ImplictImplict方式:方式:方式:方式:必须包含三要素必须包含三要素:1.1.在一个在一个.h.h文件中,声明要调用的文件中,声明要调用的dlldll函数。示例为函数。示例为export.h(export.h(该该.h.h文件是生成文件是生成dlldll时创建的时创建的)。2.2.连接一个连接一个.lib.lib文件文件(SMEIDLL.lib)(SMEIDLL.lib),该文件包含,该文件包含dlldll的入的入口地址,用于程序运行时,操作系统来访问该口地址,用于程序运行时,操作系统来访问该dlldll。示。示例为例为SMEIDLL.lib(SMEIDLL.lib(该该.lib.lib文件是生成文件是生成dlldll时创建的时创建的)。3.3.在系统目录下安装在系统目录下安装.dll.dll文件文件(SMEIDLL.dll)(SMEIDLL.dll)。H HU UA AW WE EI I初始化接口:初始化接口:/事件:点击主界面的事件:点击主界面的“初始化初始化”按钮按钮void CDemoDlg:OnInit()/TODO:Add your control notification handler code here/初始化接口:编码协议、通讯协议、通讯协议参数初始化接口:编码协议、通讯协议、通讯协议参数int iRet;iRet=IFInitInterface(3,1,10.108.22.88 5016 5000);if(iRet!=0)MessageBox(初始化套接字成功初始化套接字成功!,MB_OK,0);elseMessageBox(初始化套接字失败初始化套接字失败!,MB_OK,0);H HU UA AW WE EI I登陆:登陆:/事件:点击主界面的事件:点击主界面的“初始化初始化”按钮按钮void CDemoDlg:OnLogin()/TODO:Add your control notification handler code here/登录短讯中心:接口名、接口密码登录短讯中心:接口名、接口密码int iRet;iRet=Login_R(vp,);if(iRet!=0)MessageBox(登录成功登录成功!,MB_OK,0);elseMessageBox(登录失败登录失败!,MB_OK,0);H HU UA AW WE EI I发送消息:发送消息:/事件:点击主界面的事件:点击主界面的“发送短讯发送短讯”按钮按钮void CDemoDlg:OnSendSM()/TODO:Add your control notification handler code here/向短讯中心提交短消息,返回失败原因向短讯中心提交短消息,返回失败原因int iRet;unsigned long*SM_ID;/返回:短消息返回:短消息unsigned char*FCS;unsigned long UDLen;LPCTSTR UserData;UserData=dfdgf;UDLen=strlen(UserData);iRet=SubmitAExEx 2,1,968,0,0,0,0,0,0,0,5000,5000,100,0,UDLen,UserData,SM_ID,FCS);if(iRet=0)MessageBox(发送成功发送成功!,MB_OK,0);elseMessageBox(发送失败发送失败!,MB_OK,0);H HU UA AW WE EI I获取消息:获取消息:/事件:点击主界面的事件:点击主界面的“获取消息获取消息”按钮按钮void CDemoDlg:OnGetSM()/TODO:Add your control notification handler code here/获取短消息的内容获取短消息的内容 int iRet;ULONG*sm_ID=new ULONG;unsigned char*DestTON=new unsigned char;unsigned char*DestNPI=new unsigned char;char*DestAddr=new char;unsigned char*OrgTON=new unsigned char;unsigned char*OrgNPI=new unsigned char;char*OrgAddr=new char;unsigned char*PRI=new unsigned char;unsigned char*RP=new unsigned char;unsigned char*UDHI=new unsigned char;unsigned char*PID=new unsigned char;unsigned char*DCS=new unsigned char;char*TimeStamp=new char;unsigned long*UDLen=new unsigned long;char*UserData=new char;H HU UA AW WE EI I iRet=GetDeliverSMExEx(sm_ID,DestTON,DestNPI,DestAddr,OrgTON,OrgNPI,OrgAddr,PRI,RP,UDHI,PID,DCS,TimeStamp,UDLen,UserData);if(iRet=0)MessageBox(接收成功!接收成功!,MB_OK,0);CGetSMDlg dlg;/在此添加代码,在在此添加代码,在listbox框中显示该新短讯的各种状态。框中显示该新短讯的各种状态。dlg.DoModal();elseMessageBox(接收失败!接收失败!,MB_OK,0);H HU UA AW WE EI I演示一个DEMO程序。H HU UA AW WE EI IVB中如何调用动态链接库中如何调用动态链接库H HU UA AW WE EI I利用事件驱动,设计一个主界面:利用事件驱动,设计一个主界面:H HU UA AW WE EI IIFInitInterface调用方法:调用方法:事件:点击主界面的事件:点击主界面的“初始化初始化”按钮按钮功能功能:初始化套接字初始化套接字,准备连接准备连接Private Sub cmdInitSocket_Click()Dim bRet As BooleanDim ulRet As LongDim iCount As IntegerStatusBar1.Panels(1).Text=ulRet=IFInitInterface(CodeProtocol+1,DriverProtocol+1,_ Trim(DriverParam)fStatusform.ProgressBar1.Value=100Unload fStatusformIf ulRet 0 Then MsgBox 初始化套接字成功初始化套接字成功!StatusBar1.Panels(1).Text=初始化连接成功初始化连接成功Else MsgBox 初始化失败初始化失败!StatusBar1.Panels(1).Text=初始化连接失败初始化连接失败End IfEnd SubH HU UA AW WE EI ILogin_R调用方法:调用方法:事件:点击主界面的事件:点击主界面的“登录服务器登录服务器”按钮按钮功能功能:登录服务器登录服务器Private Sub cmdLogin_Click()Dim bRet As BooleanDim ulRet As LongStatusBar1.Panels(1).Text=ulRet=Login_R(Trim(SystemID),Trim(Password)If ulRet 0 Then MsgBox 登录成功登录成功!StatusBar1.Panels(1).Text=登录成功登录成功Else MsgBox 登录失败登录失败!StatusBar1.Panels(1).Text=登录失败登录失败End IfEnd SubH HU UA AW WE EI ISubmitAExEx调用方法:调用方法:事件:点击主界面的事件:点击主界面的“发送短讯发送短讯”按钮按钮功能功能:向服务器提交短讯信息向服务器提交短讯信息Private Sub cmdSubmit_Click()Dim result As IntegerDim UDLen As LongStatusBar1.Panels(1).Text=Dim UserData As StringUserData=test infoUDLen=Len(UserData)result=SubmitAExEx(OrgTON,OrgNPI,Trim(OrgAddr),DestTON,DestNPI,_ DestAddr,PRI,RD,RP,SRR,MR,DCS*4,PID,_ Trim(Schedule),Trim(Expire),Default_ID,UDHI,UDLen,UserData,SM_ID,FCS)If result=0 Then MsgBox 发送成功发送成功!StatusBar1.Panels(1).Text=发送成功发送成功Else MsgBox 发送失败发送失败!StatusBar1.Panels(1).Text=发送失败发送失败End IfEnd SubH HU UA AW WE EI I取取Deliver消息的调用方法:消息的调用方法:事件:点击主界面的事件:点击主界面的“获取消息获取消息”按钮按钮功能功能:判断是否有新短讯发来判断是否有新短讯发来,如果有如果有,则获取该短讯的信息则获取该短讯的信息Private Sub cmdGetMsg_Click()StatusBar1.Panels(1).Text=GetMsgEnd Sub功能功能:公共函数。判断是否有新短讯发来;如果有公共函数。判断是否有新短讯发来;如果有,则获取该短讯的信息则获取该短讯的信息Sub GetMsg()Dim result As IntegerHDM_TimeOut=2000result=HasDeliverMessage(HDM_TimeOut)If result=0 Then MsgBox 你有新短讯你有新短讯!StatusBar1.Panels(1).Text=有新短讯有新短讯Else StatusBar1.Panels(1).Text=无新短讯无新短讯End IfIf result=0 Then result=GetDeliverSMExEx(SM_ID_R,DestTON_R,DestNPI_R,DestAddr_R,OrgTON_R,OrgNPI_R,OrgAddr_R,PRI_R,RP_R,UDHI_R,PID_R,DCS_R,TimeStamp_R,UDLen_R,UserData_R)H HU UA AW WE EI I If result=0 Then MsgBox 接收短讯成功!StatusBar1.Panels(1).Text=接受短讯成功 Set fNewSMForm=New frmNewSM fNewSMForm.List1.AddItem 短消息的ID:+CStr(SM_ID_R)fNewSMForm.List1.AddItem 目标地址号码类型:+CStr(DestTON_R)fNewSMForm.List1.AddItem 目标地址编码方案:+CStr(DestNPI_R)fNewSMForm.List1.AddItem 目标地址:+DestAddr_R fNewSMForm.List1.AddItem 源地址号码类型:+CStr(OrgTON_R)fNewSMForm.List1.AddItem 源地址编码方案:+CStr(OrgNPI_R)fNewSMForm.List1.AddItem 源地址:+OrgAddr_R fNewSMForm.List1.AddItem 回应路径:+CStr(RP_R)fNewSMForm.List1.AddItem 头结构指示:+CStr(UDHI_R)fNewSMForm.List1.AddItem 协议标志:+CStr(PID_R)fNewSMForm.List1.AddItem 编码方案:+CStr(DCS_R)fNewSMForm.List1.AddItem 提交时间:+TimeStamp_R fNewSMForm.List1.AddItem 短消息的UDL:+CStr(UDLen_R)fNewSMForm.List1.AddItem 正文:+UserData_R fNewSMForm.Show Else MsgBox 接收短讯失败!StatusBar1.Panels(1).Text=接收短讯失败 End IfEnd IfEnd SubH HU UA AW WE EI I如何定时获取消息:如何定时获取消息:事件:点击主界面的事件:点击主界面的“定时获取消息定时获取消息”按钮按钮功能:启动定时获取短讯的服务功能:启动定时获取短讯的服务Private Sub cmdTimerGetMsg_Click()StatusBar1.Panels(1).Text=If Timer1.Enabled=False Then Timer1.Enabled=True StatusBar1.Panels(1).Text=启动定时获取短讯服务启动定时获取短讯服务Else Timer1.Enabled=False StatusBar1.Panels(1).Text=关闭定时获取短讯服务关闭定时获取短讯服务End IfEnd Sub事件:点击主界面的事件:点击主界面的“退出系统退出系统”按钮按钮功能:退出安装短讯中心的服务器功能:退出安装短讯中心的服务器Private Sub cmdLogout_Click()Call IFExitInterfaceCall LogoutUnload fMainFormEnd SubH HU UA AW WE EI I谢谢大家!