本产品定位于为传统软件企业、无线增值业务服务公司和其他任何需要彩信/短信服务的实体提供二次开发接口服务。
对于使用彩信/短信的公司而言,传统的方式是通过专线或Internet等有线接入方式实现,而彩信产品则可通过gsm/gprs等移动通信网络直接将彩信/短信以无线的方式传输,无需通过移动运营商的接入平台就可以开展无线业务应用。
本系统提供基于数据库表的接口连接模式,这种方式可以跨越windows和Unix平台,同时可兼顾B/S和C/S应用,是一套全能的接口策略。
本产品可实现:
n 多种形式彩信发送
n 彩信接收
n 普通短信发送、快闪短信(免提短信)发送
n Wap push信息发送
n 普通短信接收
网站短信接口 短信二次接口 http短信接口 短信平台自助API对接
本产品支持的数据库包括:Access、SQL Server、Oracle、MYSQL和Sybase
本产品支持的彩信文件种类包括:
n 单一资源文件:
² 文字:.txt .doc .ppt .pdf 和 .xls 文件
² 图片:.jpg .jpeg .gif .bmp 和.png文件
² 声音:.mid .amr .wav 和.mp3文件
² 影像:.3gp .mp4 .mpg4 .avi 和. asf文件
² 其他:.jar .jad 和 .sis 文件
n 自定义的ini简单彩信格式:后面数据表说明处有详细介绍
n Smil标准彩信格式:具体需查阅相关彩信资料
2. 概念说明
名称 |
描述 |
快闪短信 |
也叫免提短信,当此类短信到达手机后,不需要用户点击就可自行显示 |
Wap push |
Wap标准之一,将一个wap 链接地址发送到手机上 |
smil |
Synchronized Multimedia Integration Language |
彩信通知 |
类似于wap push,用户接收彩信的时候,首先接收一条彩信通知( MMS Notifycation),系统再根据彩信通知提供的地址去下载彩信 |
彩信 |
Multimedia Messaging Service,多媒体消息服务,中国移动规定彩信内容一般不要大于50k |
|
|
3. 工作流程
本产品作为应用系统与彩信/ 短信服务的中介,利用数据库表来交换数据,系统支持Access、SQL Server、Oracle、MYSQL和Sybase数据库,初次安装彩信系统,默认数据库为Access,数据库文件为安装目录下的 MMSServer.mdb,内有4张表,简单说明如下:
表名 |
中文名 |
用途 |
MSG_Outbox |
信息发送表 |
用户要发送的彩信/短信存储于该表 |
MSG_Sentbox |
信息发送成功表 |
存储发送成功的信息 |
MSG_Failedbox |
信息发送失败表 |
存储发送失败的信息 |
MSG_Inbox |
信息接收表 |
存储接收到的彩信/短信 |
下图为应用系统和彩信系统之间的连接图:
n 发送彩信/短信过程
1. 应用系统向数据库中的MSG_Outbox表填写要发送的手机号码和彩信数据
2. 彩信系统系统定时扫描MSG_Outbox表,一旦发现有符合条件的数据,则读出并控制GPRS彩信设备连接GPRS网络将信息发出
3. 彩信系统删除MSG_Outbox中的相应数据
4. 如发送成功,彩信系统将数据保存到MSG_Sentbox表中
5. 如发送失败,彩信系统将数据保存到MSG_Failedbox表中
6. 应用系统可通过读取MSG_Sentbox和MSG_Failedbox表中的信息来判断彩信/短信发送是否成功
n 接收彩信过程
1. 手机用户向GPRS彩信设备发送了一条彩信
2. 彩信系统将收到的“彩信通知“保存到MSG_Inbox中,并控制GPRS彩信设备连接GPRS网络,接收彩信
3. 如成功接收彩信,彩信系统将接收的彩信以文件的形式保存到指定目录,并把文件名称更新到数据库中的MSG_Inbox表
4. 如接收彩信失败,彩信系统将更新MSG_Inbox表中对应的下载状态字段,以后不再下载
5. 应用系统可读取MSG_Inbox表中的内容来操作成功接收的彩信
n 接收短信过程
1. 手机用户向GPRS彩信设备发送了一条短信
2. 彩信系统将收到的短信保存到MSG_Inbox中
3. 应用系统可读取MSG_Inbox表中的内容来操作成功接收的短信
4. 产品安装配置
速易彩信(数据库接口版)是一单一可执行文件提供的,用户拿到该软件后,可按照下面的顺序来操作。
1. 安装硬件GPRS 彩信发送设备,并确保插入了SIM 卡,且该卡开通了彩信服务
2. 运行本软件的安装程序,完成产品的安装
3. 第一次运行本系统,配置通道连接、安装USB加密狗
4. 配置数据库连接:
a) 系统默认的数据库是Access,用户如需使用其他数据库系统,则需使用本软件提供的SQL建表语句,利用相应数据库的管理程序,建立数据库和表。
b) 对于Access数据库,在系统数据库配置界面直接选择就可以,无需其他配置。
c) 对于SQL Server、MySQL和Sybase数据库,需利用windows控制面板中的ODBC管理程序建立相应的数据库连接的数据源,将ODBC数据源名称填写到本系统的配置数据库界面的“数据库连接串“项目,并测试连接是否正常
d) 对于Oracle数据库,需安装Oracle的客户端程序,并将Oracle客户端设置的服务名填写到本系统配置数据库界面的在“数据库连接串“项目,并测试连接是否正常。
5. 配置其他参数
6. 启动服务、正式使用
n MMS-Examples:彩信例子目录,包含3种彩信,可用于测试发送
n MMS-IN:系统安装完成后,默认的彩信接收保存目录(众依网站短信接口 短信二次接口 http短信接口)
数据库表说明
信息发送表(MSG_Outbox)
序号 |
字段名 |
类型 |
长度 |
默认值 |
允许空 |
说明 |
1 |
MsgID |
数字 |
|
|
|
自动编号字段,可作为要发送信息的ID标识,用户程序无需处理 |
2 |
ExpressLevel |
数字 |
|
2 |
|
发送级别,系统分为3个级别: |
3 |
Sender |
文本 |
100 |
|
√ |
发送者名称,也可以是发送者的手机号码,为用户程序保留的字段,用户可根据自己的需要来填写,也可不填写。 |
4 |
Receiver |
文本 |
200 |
|
|
接收者手机号码,此字段为必填字段。 |
5 |
MsgType |
数字 |
|
1 |
|
0= 普通短信 |
6 |
MsgTitle |
文本 |
500 |
|
√ |
该字段包含3个作用,其含义取决于MsgType字段: |
7 |
MMSContentLocation |
文本 |
500 |
|
√ |
彩信内容的全路径文件名,如发短信和wap push,则本字段不用填写,彩信内容文件以下3种方式提供: |
8 |
SendTime |
日期时间 |
|
|
|
计划发送时间,必填字段,一般填写当前时间 |
9 |
CommPort |
数字 |
|
0 |
|
指定串口号 |
注:MMSContentLocation 字段需要的彩信文件说明
该字段填写的文件名称一定要使用全路径文件名:
比如:c:\众依彩信平台.jpg,而不能只是:众依彩信平台.jpg
n 单一资源文件
最简单的彩信,适用于只发送单个图片、声音或文字彩信的情况,系统支持如下格式:
² 文字: txt文件
² 图片: jpg .gif .bmp 和.png文件
² 声音: mid .amr .wav 和.mp3文件
n Ini简单彩信
这种为我公司自行定义的彩信文件格式,文件扩展名为 ini ,利用该文件可实现多帧彩信,并且每帧可包含多个内容:
Ini文件以“[新帧开始]“作为文件的开始,帧与帧之间都以”[新帧开始]“加换行回车作为分隔,每帧内各个彩信文件间用换行回车来分隔,每帧开始的时候可选择是否定义播放时间,用“播放时间=x”来定义,x是播放时间,单位是秒,默认时间为5秒。
下面是一个两帧彩信的例子:
第一帧的播放时间为10秒,包含的三个文件分别是:
“C:\MMS\众依短平台.mid”
“C:\MMS\平台.jpg”
“C:\MMS\平台介绍.txt”;
第二帧没有设定播放时间,按照默认值为5秒,包含的三个文件是:
“C:\MMS\ZYICTSMS.mid”
“C:\MMS\ZYICTSMS.jpg”
“C:\MMS\ZYICTSMS.txt”
n Smil格式彩信
Smil 的全称为Synchronized Multimedia Integration Language,即“同步多媒体集成语言”是W3C的标准之一,具体介绍可参见:http://www.w3.org/AudioVideo/
Smil格式的彩信举例如下,同样是一个包含两帧的彩信:
第一帧的播放时间为5秒,包含“music.mid”、“single.jpg”和“single.txt”三个资源文件;
第二帧的播放时间为10秒,包含包含“music.mid”、“group.jpg”和“group.txt”三个资源文件;
需要说明的是,smil文件中的资源文件名称必须用英文或数字,不能使用中文,另外,各个资源文件一定要与smil文件在同一个目录下。
信息发送成功表(MSG_Sentbox)
序号 |
字段名 |
数据类型 |
长度 |
默认值 |
允许空 |
说明 |
1 |
ID |
数字 |
|
|
|
自动编号字段,用户程序无需处理 |
2 |
OriginMsgID |
数字 |
|
|
|
对应MSG_Outbox表中的MsgID字段,目的是为了能与MSG_Outbox表建立关联 |
3 |
ExpressLevel |
数字 |
|
|
|
详见MSG_Outbox表对应字段说明 |
4 |
Sender |
文本 |
100 |
|
√ |
详见MSG_Outbox表对应字段说明 |
5 |
Receiver |
文本 |
200 |
|
|
详见MSG_Outbox表对应字段说明 |
6 |
MsgType |
数字 |
|
|
|
详见MSG_Outbox表对应字段说明 |
7 |
MsgTitle |
文本 |
500 |
|
√ |
详见MSG_Outbox表对应字段说明 |
8 |
MMSContentLocation |
文本 |
500 |
|
√ |
详见MSG_Outbox表对应字段说明 |
9 |
SendTime |
日期时间 |
|
|
|
详见MSG_Outbox表对应字段说明 |
10 |
CommPort |
数字 |
|
|
|
该信息发送使用的串口号 |
11 |
ActualSendTime |
日期时间 |
|
|
|
信息实际发送完成时间 |
12 |
ReceiveMMSTime |
日期时间 |
|
|
√ |
对方接收到彩信的时间: |
13 |
MMSMessageID |
文本 |
200 |
|
√ |
彩信编号,为发送彩信完成后彩信中心返回的一个编号,该编号作为系统内部使用,用户不用干预。 |
信息发送失败表(MSG_Failedbox)
序号 |
字段名 |
数据类型 |
长度 |
默认值 |
允许空 |
说明 |
1 |
ID |
数字 |
|
|
|
自动编号字段,用户程序无需处理 |
2 |
OriginMsgID |
数字 |
|
|
|
对应MSG_Outbox表中的MsgID字段,目的是为了能与MSG_Outbox表建立关联 |
3 |
ExpressLevel |
数字 |
|
|
|
详见MSG_Outbox表对应字段说明 |
4 |
Sender |
文本 |
100 |
|
√ |
详见MSG_Outbox表对应字段说明 |
5 |
Receiver |
文本 |
200 |
|
|
详见MSG_Outbox表对应字段说明 |
6 |
MsgType |
数字 |
|
|
|
详见MSG_Outbox表对应字段说明 |
7 |
MsgTitle |
文本 |
500 |
|
√ |
详见MSG_Outbox表对应字段说明 |
8 |
MMSContentLocation |
文本 |
500 |
|
√ |
详见MSG_Outbox表对应字段说明 |
9 |
SendTime |
日期时间 |
|
|
|
详见MSG_Outbox表对应字段说明 |
10 |
CommPort |
数字 |
|
|
|
该信息发送使用的串口号 |
11 |
ActualSendTime |
日期时间 |
|
|
|
信息实际发送失败的时间 |
12 |
FailedReason |
文本 |
500 |
|
√ |
发送信息失败的原因 |
信息接收表(MSG_Inbox)
序号 |
字段名 |
数据类型 |
长度 |
默认值 |
允许空 |
说明 |
1 |
ID |
数字 |
|
|
|
自动编号字段,用户程序无需处理 |
2 |
Sender |
文本 |
100 |
|
|
发送者手机号码或特服号码 |
3 |
MsgType |
数字 |
|
|
|
信息类别 |
4 |
MsgTitle |
文本 |
500 |
|
√ |
该字段有2个作用,取决于MsgType中的值: |
5 |
MMSUrl |
文本 |
200 |
|
√ |
彩信下载地址,对于普通短信而言,此字段为空 |
6 |
MMSContentLocation |
文本 |
5000 |
|
√ |
接收到的彩信资源文件全路径文件名,如果彩信包含多个文件,则两个文件名之间用半角的逗号分隔,大部分彩信都会包含一个以smi结尾的文件,这个文件是描述彩信格式的,具体可参见彩信协议,其他文件都是具体的图片、铃声和文字等。 |
7 |
MsgArrivedTime |
日期时间 |
|
|
|
信息到达的日期时间,是指普通短信或彩信通知的到达时间,也就是信息接收时间 |
8 |
MMSDownloadedTime |
日期时间 |
|
|
√ |
彩信实际下载完成或下载失败时间,如还未开始下载彩信,则该字段为空 |
9 |
MMSDownloadedState |
数字 |
|
|
|
彩信是否已经成功下载: |
10 |
CommPort |
数字 |
|
|
|
接收信息使用的串口号 |
发送功能实现
所有发送功能的实现都是应用程序向MSG-Outbox表中填写数据,下面各个功能的实现中,我们都模拟了一条SQL语句,以便于应用开发人员将来能模仿该语句建立自己的插入语句。
发送短信
n 普通短信
SQL示例:
INSERT INTO MSG_Outbox (Receiver,MsgType,MsgTitle,MMSContentLocation,SendTime) VALUES ('13330118832 ',0,'普通短信','','2012-09-29 15:40:21')
n 快闪短信
SQL示例:
INSERT INTO MSG_Outbox (Receiver,MsgType,MsgTitle,MMSContentLocation,SendTime) VALUES('13330118832 ',3,'快闪短信','','2012-09-29 15:41:40')
发送wap push
SQL示例:
INSERT INTO MSG_Outbox (Receiver,MsgType,MsgTitle,MMSContentLocation,SendTime) VALUES('13330118832 ',2,'wap push测试####wap.baidu.com','','2012-09-29 15:42:03')
发送彩信
n 单个图片彩信
SQL示例:
INSERT INTO MSG_Outbox (Receiver,MsgType,MsgTitle,MMSContentLocation,SendTime) VALUES ('13330118832 ',1,'单个图片彩信','C:\MMS\单一资源彩信\美女头像.gif','2012-09-29 15:42:41')
n 单个声音彩信
SQL示例:
INSERT INTO MSG_Outbox (Receiver,MsgType,MsgTitle,MMSContentLocation,SendTime) VALUES ('13330118832 ',1,'单个铃声彩信','c:\MMS\单一资源彩信\情非得意.mid','2012-09-29 15:43:43')
n 单个文字彩信
SQL示例:
INSERT INTO MSG_Outbox (Receiver,MsgType,MsgTitle,MMSContentLocation,SendTime) VALUES('13330118832 ',1,'单个文本彩信','c:\MMS\单一资源彩信\念奴娇赤壁怀古.txt','2012-09-29 15:44:27')
n 单个简单结构彩信
SQL示例:
INSERT INTO MSG_Outbox (Receiver,MsgType,MsgTitle,MMSContentLocation,SendTime) VALUES ('13330118832 ',1,'简单结构彩信','c:\MMS\ini简单结构彩信\测试彩信.ini','2012-09-29 15:45:07')
n 单个smil结构彩信
SQL示例:
INSERT INTO MSG_Outbox (Receiver,MsgType,MsgTitle,MMSContentLocation,SendTime) VALUES ('13330118832 ',1,'smil标准结构彩信','c:\MMS\smil结构彩信\测试彩信.smil','2012-09-29 15:46:18')
、应用环境
n 服务器:
硬件配置:PC Server ,P4以上,50M以上空闲硬盘空间,内存512M以上
运行环境:windows XP
n GPRS Modem:
采用Wavecom GRPS Modem,连接速率为115200.