1、i i短消息短消息APIAPI开发培训开发培训2003-01-14华为技术有限公司第1页,共40页。HUAWEIHUAWEI第2页,共40页。HUAWEIHUAWEI 第3页,共40页。HUAWEIHUAWEI第4页,共40页。HUAWEIHUAWEIinfoX-ISMGSP 1SMSC mInternetISMGGNSSMSC 1SP nSCP计费中心计费中心第5页,共40页。HUAWEIHUAWEI互联网关网络组网示意图第6页,共40页。HUAWEIHUAWEI短消息信息平台支持协议和遵循规范n短消息网关设备规范V1.2n中国移动通信短消息网关测试规范V1.2n中国移动通信资源站实体与互联
2、网短消息网关接口协议V1.2n神州行梦网业务SCP与ISMG之间通讯协议1.0n点对点短消息网间互通协议V2.0n点对点短消息网间测试规范V1.2第7页,共40页。HUAWEIHUAWEI 第8页,共40页。HUAWEIHUAWEI 第9页,共40页。HUAWEIHUAWEI第10页,共40页。HUAWEIHUAWEI第11页,共40页。HUAWEIHUAWEI第12页,共40页。HUAWEIHUAWEI 第13页,共40页。HUAWEIHUAWEI第14页,共40页。HUAWEIHUAWEI 第15页,共40页。HUAWEIHUAWEIinfoXI2000MT SERVER上级综合网管上级综
3、合网管统一网管统一网管集中监控集中监控配置管理配置管理实时告警实时告警统计管理统计管理第16页,共40页。HUAWEIHUAWEI第17页,共40页。HUAWEIHUAWEI SP ISMGCMPP_CONNECTCMPP_CONNECTt_RESPCMPP_SUBMITCMPP_SUBMIT_RESPCMPP_QUERYcCMPP_QUERY_RESPCMPP_CANCLECMPP_CANCLE_RESPCMPP_DELIVERCMPP_DELIVER_RESP第18页,共40页。HUAWEIHUAWEI第19页,共40页。HUAWEIHUAWEI第20页,共40页。HUAWEIHUAWEI
4、第21页,共40页。HUAWEIHUAWEIAPI函数应用说明第22页,共40页。HUAWEIHUAWEI第23页,共40页。HUAWEIHUAWEI第24页,共40页。HUAWEIHUAWEI初始化接口:初始化接口:/事件:点击主界面的事件:点击主界面的“初始化初始化”按钮按钮void CDemoDlg:OnInit()/TODO:Add your control notification handler code here/初始化接口:编码协议、通讯协议、通讯协议参数初始化接口:编码协议、通讯协议、通讯协议参数int iRet;iRet=IFInitInterface(3,1,10.108
5、.22.88 5016 5000);if(iRet!=0)MessageBox(初始化套接字成功初始化套接字成功!,MB_OK,0);elseMessageBox(初始化套接字失败初始化套接字失败!,MB_OK,0);第25页,共40页。HUAWEIHUAWEI登陆:登陆:/事件:点击主界面的事件:点击主界面的“初始化初始化”按钮按钮void CDemoDlg:OnLogin()/TODO:Add your control notification handler code here/登录短讯中心:接口名、接口密码登录短讯中心:接口名、接口密码int iRet;iRet=Login_R(vp,
6、);if(iRet!=0)MessageBox(登录成功登录成功!,MB_OK,0);elseMessageBox(登录失败登录失败!,MB_OK,0);第26页,共40页。HUAWEIHUAWEI发送消息:发送消息:/事件:点击主界面的事件:点击主界面的“发送短讯发送短讯”按钮按钮void CDemoDlg:OnSendSM()/TODO:Add your control notification handler code here/向短讯中心提交短消息,返回失败原因向短讯中心提交短消息,返回失败原因int iRet;unsigned long*SM_ID;/返回:短消息返回:短消息unsi
7、gned char*FCS;unsigned long UDLen;LPCTSTR UserData;UserData=dfdgf;UDLen=strlen(UserData);iRet=SubmitAExEx(2,1,13902700001,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);第27页,共40页。HUAWEIHUAWEI获取消息:获取消息:/事件:点击主界
8、面的事件:点击主界面的“获取消息获取消息”按钮按钮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
9、 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*
10、UserData=new char;第28页,共40页。HUAWEIHUAWEI 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(接收
11、失败!接收失败!,MB_OK,0);第29页,共40页。HUAWEIHUAWEI第30页,共40页。HUAWEIHUAWEI在公共模块中,全局声明对动态链接库(DLL)中外部过程的引用。利用public declare function来声明,示例(IFInitInterface 是dll中的一个函数):Public Declare Function IFInitInterface Lib smeidll.dll(ByVal dwCodeProtocol As Long,ByVal dwDriverProtocol As Long,ByVal pDriverParam As String)As
12、 Long第31页,共40页。HUAWEIHUAWEI登录SMSC用户修改配置参数初始化套接字,准备连接获取新短讯启动定时器发送新短讯定时器控件第32页,共40页。HUAWEIHUAWEIIFInitInterface调用方法:调用方法:事件:点击主界面的事件:点击主界面的“初始化初始化”按钮按钮功能功能:初始化套接字初始化套接字,准备连接准备连接Private Sub cmdInitSocket_Click()Dim bRet As BooleanDim ulRet As LongDim iCount As IntegerStatusBar1.Panels(1).Text=ulRet=IFI
13、nitInterface(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 Sub第33页,共40页。HUAWEIHUAWEILogin_
14、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)
15、.Text=登录失败登录失败End IfEnd Sub第34页,共40页。HUAWEIHUAWEISubmitAExEx调用方法:调用方法:事件:点击主界面的事件:点击主界面的“发送短讯发送短讯”按钮按钮功能功能:向服务器提交短讯信息向服务器提交短讯信息Private Sub cmdSubmit_Click()Dim result As IntegerDim UDLen As LongStatusBar1.Panels(1).Text=Dim UserData As StringUserData=test infoUDLen=Len(UserData)result=SubmitAExEx(Or
16、gTON,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 Sub第35页,共40页。HUAW
17、EIHUAWEI取取Deliver消息的调用方法:消息的调用方法:事件:点击主界面的事件:点击主界面的“获取消息获取消息”按钮按钮功能功能:判断是否有新短讯发来判断是否有新短讯发来,如果有如果有,则获取该短讯的信息则获取该短讯的信息Private Sub cmdGetMsg_Click()StatusBar1.Panels(1).Text=GetMsgEnd Sub功能功能:公共函数。判断是否有新短讯发来;如果有公共函数。判断是否有新短讯发来;如果有,则获取该短讯的信息则获取该短讯的信息Sub GetMsg()Dim result As IntegerHDM_TimeOut=2000resul
18、t=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,UDLe
19、n_R,UserData_R)第36页,共40页。HUAWEIHUAWEI 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
20、 目标地址:+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.Ad
21、dItem 编码方案:+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 Sub第37页,共40页。HUAWEIHUAWEI如何定时获取消息:如何定时获取消息:事件:点击主界面的事件:点击主界面的“定
22、时获取消息定时获取消息”按钮按钮功能:启动定时获取短讯的服务功能:启动定时获取短讯的服务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 Sub第38页,共40页。HUAWEIHUAWEI谢谢大家!第39页,共40页。HUAWEIHUAWEI演讲完毕,谢谢观看!第40页,共40页。