求助,关于短信网关!!!
各位大侠,如何做一个短信网关平台来实现SP向终端发送下行指令以及接收终端回传的GPS信息。我现在下载了一个中国移动通信(联通)短消息网关开发接口库,如何在此基础之上开发我自己的短信平台啊。
哪位大侠做过相关的工作,给点思路。非常着急,非常感谢!
问题点数:0、回复次数:28Top
1 楼benyatou(丫头)回复于 2003-11-05 22:19:43 得分 0
没人回复,自己up一下。Top
2 楼qingw2000()回复于 2003-11-05 23:46:25 得分 0
这种短信平台自己开发也不是很难,一个socket通讯部分,一个是协议解析部分Top
3 楼qingw2000()回复于 2003-11-06 00:11:44 得分 0
俺说的不难是指实现不难,效率嘛,呵呵....Top
4 楼zubasha(小狼)回复于 2003-11-06 11:48:09 得分 0
你都已经有接口库了,还不简单?
一般接口库就帮你封装了通信和解析协议的功能。
你只要调用接口库,得到你想要的东西,根据这些东西实现你自己的思路不就可以了?
比如你先定义一个struct,然后传到sendmt,得到类似msgid之类的东西,然后不就可以做你自己的东西咯Top
5 楼mzqali1(梦网无限)回复于 2003-11-06 14:34:13 得分 0
你们公司申请了特服号了吗?
有了接口就很容易了,你把这些接口封装到你的业务中就可以了,例如建立连接CMPP_CONNECT,CMPP_SUBMIT,CMPP_DELIVERY等等,只要你按照协议定义好参数表直接调用就可以了。如果没有接口函数,那你就要根据相关协议自己从底层做起了,那样麻烦一些了。Top
6 楼benyatou(丫头)回复于 2003-11-06 21:30:47 得分 0
谢谢各位大侠的关注,我们公司正在申请网关。
在申请到之前,我想先用虚拟网关来做。
我下载了移动的CMPP2.0协议,和一个短信开发库,里面有一个虚拟网关程序和一个客户端程序,但是没有什么说明,我本身不是学计算机的,也不是学通讯的,许多都是刚接触,谁能给我一些相关的资料或文档说明?
感激不尽。Top
7 楼icesg()回复于 2003-11-08 21:59:16 得分 0
我这边有详细的短信接口程序,协议是cmpp2.0,可以减少你们开发的时间,直接可以使用.
icesg@163.comTop
8 楼benyatou(丫头)回复于 2003-11-11 08:44:00 得分 0
楼上的icesg,谢谢你,我主要想找些资料和例程了解一下,因为申请到网关后,会提供接口库的吧。你的程序可以以什么方式提供呢?另外你可以提供给我一些文档资料么?thanks.Top
9 楼daymouse()回复于 2003-11-11 10:35:52 得分 0
icesg ,你好,我已经发邮件到你邮箱了,请查阅,也希望你能提供一下,呵呵Top
10 楼eldwolf()回复于 2003-11-12 11:50:25 得分 0
可以把资料也发一份给我吗?
eldwolfm@sina.com,谢谢!Top
11 楼nicolefm(nicolefm)回复于 2003-11-12 13:09:21 得分 0
可以把资料也发一份给我吗?
fmcat@vip.sina.com,谢谢!
Top
12 楼sicainiao(死菜鸟乐乐)回复于 2003-11-12 13:59:26 得分 0
dlgzaa@163.com
能发给我一份吗?小弟先谢过了。。Top
13 楼crackatom(原子)回复于 2003-11-12 16:41:20 得分 0
我也刚开始做这方面的东西,可以也给我一份吗?谢谢!
sky_gao@sohu.comTop
14 楼lxxldd(菜鸟一个)回复于 2003-11-12 17:14:18 得分 0
现在sp竞争激烈,不容易呢!呵呵Top
15 楼lins(Anders*小明)回复于 2003-11-13 09:46:34 得分 0
markTop
16 楼benyatou(丫头)回复于 2003-11-13 21:58:04 得分 0
真着急啊,大家都是来问问题的,回答问题的人少啊。
up一下。Top
17 楼feixuehenshui(飞雪恨水)回复于 2003-11-20 10:58:56 得分 0
icesg() 能发给我一个吗?我急需
谢谢Top
18 楼Tiger0920(Tigerbeer)回复于 2003-11-21 14:55:20 得分 0
我也刚开始做这方面的东西,可以也给我一份吗?谢谢!
fog011@163.comTop
19 楼seacj(定时炸弹)回复于 2003-11-24 09:15:08 得分 0
gzingTop
20 楼mzqali1(梦网无限)回复于 2003-12-05 20:34:54 得分 0
如何使用CMPPAPI接入短信网关,开展短信业务
SP可以使用MISC(移动信息服务中心)系统提供的CMPPAPI方便地接入 MISC 短信网关(MTBS)开展短信业务,在进行短信业务的开发时不但要仔细阅读API的使用手册,还要注意在接入MTBS时对一些业务相关参数的处理。
一、参数说明
1、 建立连接
对于MTBS V1.3,连接包字段Source_Addr需要填写填特服号,对于MTBSV1.5,该字段填以9开头的6位企业代码(Sp_Id)
SP可以使用CMPPAPI(v1.5)提供的接口函数nCMPP_Connect建立同MTBS(v1.5)的连接(包括链路层连接和应用层连接),同时需要在配置文件的[SP]段正确设置了SP的企业代码即Sp_Id字段的值。
2、 发送Sumit包
使用CMPPAPI(v1.5)发送Submit包到MTBS时,SP需要定义一个RecCSumit类型的结构变量,并使用接口函数nCMPP_PrepSubmit对该变量进行赋值(也可以直接对该结构进行赋值),最后使用接口函数nCMPP_SendSubmit发送Submit消息包到MTBS。在使用nCMPP_ PrepSubmit对结构变量进行赋值(或直接对该结构进行赋值)时需要注意下列字段的取值。
l 对于FeeType字段,MTBS V1.3和V1.5都对计费类型FeeType字段进行了扩展,当FeeType字段的值为08时,表示该Submit包为服务定制,即通知MTBS建立目的手机和该服务的定购关系,当FeeType字段的值为09,表示该Submit包为服务取消,即通知MTBS取消目的手机和该服务的定购关系。
在CMPPAPI中则需要调用函数nCMPP_PrepSubmit时对sFeeType字段进行赋值。
l 对于Service_id字段, MTBS V1.3建议使用三位数字, MTBS V1.5 可以为六位以内的数字和字母组合
如果使用CMPPAPI时,则在调用nCMPP_PrepSubmit接口函数时对sServiceId输入参数进行赋值。
l 对于Fee_terminal_id字段,MTBS V1.3 配合Fee_UserType放第三方计费用户(具体请参见CMPP协议),MTBS V1.5 则要求必须正确填写计费用户,包括本机号码
l 对于Msg_Id字段,一般情况下发送Submit包时该字段由SP侧网关产生,但是如果是对应点播服务的MT则要求必须将MO的Msg_Id返回。
在PUSH服务SP必须将Msg_Id值为 “0x00”,如果使用CMPPAPI则在调用nCMPP_PrepSubmit接口函数时把ucMsgId输入参数直接赋值为NULL就可以了。
l 对于Pk_total和Pk_number字段,MTBS V1.5 要求Pk_total和Pk_number必须设置有值.MTBS V1.3无要求
在使用CMPPAPI(v1.5)时,如果将要发送的消息内容由CMPPAPI进行处理则在调用nCMPP_PrepSubmit函数(或直接对结构赋值)时把ucPkTotal和ucPkNumber字段都赋值为0,如果不为0则表示由SP自己赋值。
l FeeCode 字段无效,请设置为 “0x30”。
使用CMPPAPI,在调用nCMPP_PrepSubmit接口函数把sFeeCode输入参数赋值为
l 对于Msg_Src字段,MTBS V1.5 需要填以9开头的6位企业代码.
使用CMPPAPI时需要在调用nCMPP_PrepSubmit接口函数把ucMsgSrc输入参数赋值为Sp_Id
l 在MTBS 中SP无需发送SMC包,包月用户的话单由MISC(移动信息服务中心)系统在计帐周期开始时自动产生。
l 群发:
MTBS V1.3 不支持群发功能,MTBS V1.5 虽然支持群发功能,但SP会收到对应多个按顺序的相同响应包,建议尽量不使用该功能,同时按照CMPP2.0协议,只有在不需要状态回执报告时才能进行群发。
使用CMPPAPI进行群发,在调用nCMPP_SendSubmit进行发送时直接填写sDestTerminalId输入参数项即可,中间需要使用逗号进行分割,例如:“13912345678,13812345678”
3、 接受包
l 对于所有响应包,如果出现流量控制错误,需要暂时停止发送1秒,重新发送原包。
l 同时按照CMPP2.0协议,短信网关和SP之间消息发送等待确认时间暂定为60秒,超过则认为超时需要重新发送两次。
l 对于MTBS1.3短信网关会主动发起Active测试包,对于MTBS1.5短信网关不再主动发起Active测试包,MTBS1.5短信网关要求SP发送Active测试包的时间为30秒没有任何信息交互,如果超过90秒没有信息交互则断开对SP的连接
l 在使用CMPPAPI时SP需要自己判断超时以及响应包的返回值的意义,并进行相应的超时重发或者当出现流量控制错误时进行延时重发。
l 用户发给SP的MO消息在短信网关中保存的时间为半小时,半小时之内会重发三次,之后会把该包删除。
注意:如果使用CMPPAPI(1.5)的接口函数nCMPP_RecvPacket接收到的包命令码为0x01000005,表示该消息包为一个状态回执报告,该命令码是由CMPPAPI(1.5)定义的,这时消息体的结构为RecCDeliverRcpt而不是RecCDeliver。(具体结构定义请参考CMPPAPI使用手册)
4、Msg_Id 的产生
Msg_Id是由SP侧的短信网关生成的(SP根据请求和应答消息的Sequence_Id一致性就可得到Submit消息的Msg_Id)
一般来说,SP可以不关心Msg_Id的生成机制或算法,直接使用生成的Msg_Id即可。
下面是短信网关Msg_Id 的生成方法:
l MTBS V1.3中Msg_Id的产生
MMDDYYYY + (10位)Sequence
MM 月DD日,YYYY对应手机区号,Sequence 循环
l MTBS V1.5中的Msg_Id产生按照CMPP2.0协议标准
生成算法如下:
采用64位(8字节)的整数:
(1)时间(格式为MMDDHHMMSS,即月日时分秒):bit64-bit39,其中
bit64-bit61:月份的二进制表示;
bit60-bit56:日的二进制表示;
bit55-bit51:小时的二进制表示;
bit50-bit45:分的二进制表示;
bit44-bit39:秒的二进制表示;
(2)网关代码:bit38-bit17,把短信网关的代码转换为整数填写到该字段中。
(3)序列号:bit16-bit1,顺序增加,步长为1,循环使用。
各部分如不能填满,左补零,右对齐。
Top
21 楼benyatou(丫头)回复于 2003-12-09 09:16:22 得分 0
谢谢冰糖葫芦,我先看看,不明白的地方还请不吝赐教!Top
22 楼ercnet(莫木)回复于 2003-12-11 16:14:33 得分 0
ercnet@tom.comTop
23 楼mzqali1(梦网无限)回复于 2003-12-12 14:29:31 得分 0
呵呵,现在移动的特服号真是难申请,
我们也只是申请了一个只支持上行的服务号,可惜我做了一套短信接口只用了很简单的一点点功能,真是没有感觉!不过偶的这套接口可是严格按照CMPP协议写的,而且支持多线程监控,就是没有时间了,又要做别的项目去了,可惜可惜!等有时间完善了一定拿出来和大家共享!Top
24 楼zhanvi(流浪代码)回复于 2003-12-15 15:56:23 得分 0
哎,网上到处都是,去下啊,在这里要什么呀Top
25 楼crackatom(原子)回复于 2003-12-16 17:47:03 得分 0
哪儿有啊?Top
26 楼padfan(胖有)回复于 2003-12-16 23:37:52 得分 0
呵呵!也好!我就是在SP工作的,但是没有接触过短信平台的开发,所以也希望多学习学习!
另外问问:delphi可否直接根据CMPP等协议开发短信平台?
或者说调用那些接口!Top
27 楼zhanvi(流浪代码)回复于 2003-12-21 19:39:03 得分 0
delphi当然可以根据CMPP等协议开发短信平台
这个网站有:www.sp-from.comTop
28 楼zubasha(小狼)回复于 2004-02-25 15:38:55 得分 0
to mzqali1(冰糖葫芦)
==================================
你说你的接口有多线程监控?能否给一份代码俺瞧瞧?
winglgp@21cn.com
TO others
==================================
要接口库,容易,去移动主页下
http://www.gmcc.net/others/spjr.html
Top




