基础数据:
中国联通: 联通130、131、132、155、156、186号段。
吉祥如意卡、商务卡、联通校园卡、青春物语校园卡、联通1818卡、
任我行卡、情侣卡、城市卡、都市卡、乡村卡、单向收费卡、如意风行卡、
长途卡、长话卡、智能卡、金盾卡、公安卡、内部卡、预付卡、大户卡、包月卡、
大客户集团卡、本省通卡、魔指王卡、来话包月卡、UP新势力卡......
中国电信: CDMA133、153(2008年10月起中国电信已全面接管中国联通CDMA业务)、电信天翼189号段。
中国移动 :134、135、136、137、138、139、150、151、152、157、158、159、188号段,
全球通2000卡、神州行、神州行2000卡、金卡神州行卡、本地通卡、动感地带卡、时尚包月卡、
大众卡、一卡双号、副号卡、预付费卡、全球通预
江苏电信 http://www.js.chinamobile.com/
南京移动 http://www.js.chinamobile.com/city/nanjing/index.html
CMPP 和 SMPP 协议比较
http://wangping2008.iteye.com/blog/310885
SMPP 协议 SMPP协议理解
http://www.docin.com/p-23370326.html
Short Message Peer to Peer(SMPP ) 因为 这 几 天 在做 通过 SMPP 连接 SMSC 的工作 ,花了一两个小时看了一下SMPP 协议的定义,有一些粗 浅的理解,不成体系的罗列于此:
1、与CMPP/SGIP 协议的差异 1)感觉协议定义比CMPP 和SGIP 严谨和规范,虽然CMPP 和SGIP 都是从SMPP 派生出来的。 2)CMPP 和SGIP 中有大量的关于计费的定义,SMPP 没有考虑这 部分内容。这 完全反映了通过 短信 实现的移动增值业务模式在国内的成熟和流行。 3)SMPP 的网络承载层可以是TCP/IP 和X.25。
2、SMPP 协议解决的是移动网络之外的短消息实体与短消息中心的交互问题。即允许移动网络之外的短消 息实体(External Short Message Entities,ESMEs)连接 短消息中心(SMSC )来提交和接受短消息。
3、SMPP 协议定义的是1)ESME 和SMSC 之间交互的一组操作和2)ESMS 与SMSC 交互操作中的数据 格式。
4、任何SMPP 操作都包含请求PDU(Request Protocol Data Unit)和与之对应的回应PDU(Response Protocol Data Unit)。
5、SMPP 把ESMEs 分类为Transmitter/Receiver/Transceiver 三种交互方式,分别对应仅提交短消息/仅接收 短消息/提交和接收短消息三种形态。
6、SMPP 会话有5 种状态:OPEN / BOUND_TX / BOUND_RX / BOUND_TRX / CLOSED
7、SMPP 定义的PDUs 包括: SMPP PDU Name Required SMPP Session State Issued by ESME Issued by SMSC bind_transmitter OPEN Yes No bind_transmitter_resp OPEN No Yes bind_receiver OPEN Yes No bind_receiver_resp OPEN No Yes bind_transceiver OPEN Yes No bind_transceiver_resp OPEN No Yes outbind OPEN No Yes unbind BOUND_TX BOUND_RX BOUND_TRX Yes Yes Yes Yes Yes Yes unbind_resp BOUND_TX BOUND_RX BOUND_TRX Yes Yes Yes Yes Yes Yes submit_sm BOUND_TX BOUND_TRX Yes Yes No No submit_sm_resp BOUND_TX BOUND_TRX No No Yes Yes submit_sm_multi BOUND_TX BOUND_TRX Yes Yes No No submit_sm_multi_resp BOUND_TX BOUND_TRX No No Yes Yes data_sm BOUND_TX BOUND_RX BOUND_TRX Yes Yes Yes Yes Yes Yes data_sm_resp BOUND_TX BOUND_RX BOUND_TRX Yes Yes Yes Yes Yes Yes deliver_sm BOUND_RX BOUND_TRX No No Yes Yes deliver_sm_resp BOUND_RX BOUND_TRX Yes Yes No No query_sm BOUND_TX BOUND_TRX Yes Yes No No query_sm_resp BOUND_TX BOUND_TRX No No Yes Yes cancel_sm BOUND_TX BOUND_TRX Yes Yes No No cancel_sm_resp BOUND_TX BOUND_TRX No No Yes Yes replace_sm BOUND_TX Yes No replace_sm_resp BOUND_TX No Yes enquire_link BOUND_TX BOUND_RX BOUND_TRX Yes Yes Yes Yes Yes Yes enquire_link_resp BOUND_TX BOUND_RX BOUND_TRX Yes Yes Yes Yes Yes Yes alert_notification BOUND_RX BOUND_TRX No No Yes Yes generic_nack BOUND_TX BOUND_RX BOUND_TRX Yes Yes Yes Yes Yes Yes
8、SMPP 针对以上列举的PDUs 作了详细的描述,在此不赘述。 SMPP SMSC 最近公司的一个业务,因为 每日有百万条以上的短信,出现了严重的短信延迟问题。与运营商沟通之后, 允许我们直接连SMSC 下行业务短信,不用再通过 SMG 了。 所以需要通过 SMPP 来发送。以前做 过湖南移动梦网项目,也通过 SMPP 连过SMSC ,依稀记得有现成的 SMPP 实现API 可用,于是google 了一把,果然发现开源项目:Java SMPP [email protected] 把API Download 下来一看,呵呵,实现了SMPP 协议,还提供了example 程序,好用得很。 于是把各项配置弄好,直接在Example 上修改了一下,发送了一条短信到自己的手机,英文短信OK! 再试一下中文,问题来了:不论我把中文如何转码,手机收到的都是乱码,晕死!咨询局方技术人员,也 说不出一个子丑寅卯,只是告诉我,SMSC 是中兴的,中文字符需按照Unicode 编码,消息的DCS(Data Coding Schema)设为8 即可。 无数次尝试之后,终于发现,把整个Java Project 的Text Encoding 设为UTF8,然后直接将中文字符串以 UTF16 格式获取Byte[],即通过 语句 byte[] msgBytes = "中文字符串".getBytes("UTF16"); 获得byte[]直接丢给SMPP API 实现的Submit 包即可显示中文,但是还有一个小小的问题,手机显示的字 符串前总有一个非常规的字符,这个字符在三星手机上显示为一个方框,LG 手机上显示为一个空格, Moto 手机上显示为一个反黑的空格,非常烦人。比较了一下获取的byte[]的长度,发现确实比文字长度长 了两个字节,于是试着把该byte[]的前两个byte 去掉再试,果然一切OK 了。 运行环境是Redhat Linux AS 3,字符集设置为GB18030。因为 找到了上述的workaround 来解决中文问题, 我没有时间去尝试运行环境字符集设定对中文的影响了。
http://smsforum.net/
SMPP V3.4 Protocol Interface Conformance Statement (PICS)
SMPP GSM/UMTSImplementation Guide
SMPP Inter-carrier SMS Gateway Implementation Guide
编程实现收发短信
http://www.iteye.com/topic/85736?page=1
1 网关方式:SP提供的服务http://www.shoujika.cn/ http://www.emay.cn/
2 终端方式:买一个GSM 短信设备,再买张手机卡,然后下载jsmsengine,就可以简单搞定
3 利用一些网站来实现 http://www.shoujika.com
java版cmpp短信网关开讲解发计划
http://www.iteye.com/topic/408055
移动 & 电信
boss & oss
短信平台API
http://sms.api.bz/
http://voole.iteye.com/blog/444335
飞信 是由中国移动通信集团公司推出的一款集商务应用和娱乐功能为一体的,基于手机应用以及与Internet深度互通的即时通讯产品,可免费给好友发送短信。
1、下载中国移动飞信PC客户端软件(http://www.fetion.com.cn/downloads/pc.aspx ),并注册开通飞信。注册成为飞信用户,下载飞信PC客户端、使用PC客户端基本功能,不收取费用。
2、通过PC客户端,邀请并添加免费短信接收方的手机号码(仅限中国移动)到您的飞信好友,该手机号需要通过通过PC客户端、或回复短信接受您的邀请;
3、通过 http://sms.api.bz/ 提供的 API 接口,即可免费给飞信好友发短信。利用本API接口可进行日程提醒、服务器监控、报警、故障通知或短信自动控制等功能。
飞信免费发短信API接口在线演示: http://sms.api.bz/
飞信免费发短信API接口调用方式(通过HTTP访问以下网址、支持GET和POST):
注:短信内容最大长度为180个汉字,超过180个汉字不发送。返回的信息为UTF-8编码的中文文本信息。
例1:在Linux命令行下通过curl命令给自己的手机号(假设为13800138000)发送短信
飞信提供了短信接口,利用这个接口可以发短信,首页你得有一个飞信号,接口在http://sms.api.bz/可以看到。
实现:http://sms.api.bz/fetion.php?username=飞信号&password=飞信密码&sendto=收信人&message=信息内容
- protected void btnSend_Click( object sender, EventArgs e)
- {
- string url = "http://sms.api.bz/fetion.php?username=13656600000&password=123456&sendto=" +txtD.Text.Trim()+ "&message=" + txtMsg.Text.Trim();
- HttpWebRequest hwr = (HttpWebRequest)HttpWebRequest.Create(url);
- hwr.Method = "GET" ;
- try
- {
- HttpWebResponse wr =(HttpWebResponse)hwr.GetResponse();
- if (wr.StatusCode == HttpStatusCode.OK)
- {
- Response.Write("发送成功" );
- }
- else
- {
- Response.Write("发送失败" );
- }
- }
- catch
- {
- Response.Write("发送失败" );
- }
- }
protected void btnSend_Click(object sender, EventArgs e) { string url = "http://sms.api.bz/fetion.php?username=13656600000&password=123456&sendto="+txtD.Text.Trim()+"&message=" + txtMsg.Text.Trim(); HttpWebRequest hwr = (HttpWebRequest)HttpWebRequest.Create(url); hwr.Method = "GET"; try { HttpWebResponse wr =(HttpWebResponse)hwr.GetResponse(); if (wr.StatusCode == HttpStatusCode.OK) { Response.Write("发送成功"); } else { Response.Write("发送失败"); } } catch { Response.Write("发送失败"); } }
这个给用自己的账号给自己发送短信的时候是可以的,但是给朋友发送好像是有点问题,朋友的收不到
MAS短信平台
http://192.168.116.114/login.jsp
http://192.168.116.115/login.jsp
SMS Monitor
http://java-monitor.com/
http://www.iteye.com/news/8430
http://java-monitor.com/forum/livedemo.php
http://java-monitor.com/forum/showthread.php?t=494
Java-monitor 是一个自由的中央式监控工具, 可以用来在线监控诸如Tomcat, JBoss, Jetty, SpringSource DM Server等J2EE服务器, 它通过在应用服务器的JVM上安装Probe 来获取统计信息,而用户可在web browser甚至iPhone上浏览这些信息. 现在, 它又将Openfire的XMPP服务器纳入服务对象.
Jive Software的Openfire 是一个GPL的实时通讯软件, 使用唯一被广泛采纳的开放即时消息协议--XMPP (又称Jabber).使用Java-monitor,你可以看到客户线程池和数据库连接池的负荷,以及消息包的数量, 当然, 如果服务器瘫痪了, 你会收到一份邮件.
更多: Java-monitor live demo .
http://www.sh.chinamobile.com/brand/group/solution/products/userobject1ai2853.html
MAS 定义
MAS: (Mobile Agent Server) 移动代理服务器是指为满足信息化程度高的集团客户通过移动终端实现移动办公、生产控制、营销服务等信息化需求,在集团客户 Intranet 内部署与其 OA 、 ERP 、 CRM 等应用系统进行应用耦合的网关。
MAS 网络结构
MAS 系统的组网结构主要由三部分组成,包括移动代理服务器、行业网关和移动终端
MAS 服务器网络设置
MAS 服务器可以通过固定的公网 IP 与行业应用网关和 MAS 统一服务平台通信。企业可以通过以下几种方式设置 MAS 服务器:
– 企业可以直接给 MAS 服务器分配公网 IP 地址。
– 或企业出于自身网络安全考虑,企业能够在企业自己的 Internet 出口上,提供公网 IP 地址与 MAS 服务器私网 IP 地址的转换。
– 或将公网 IP 地址端口映射到 MAS 服务器私网 IP 地址上
防火墙的配置上容许开放 UDP 端口: 161 (入)、 162 (出)
防火墙的配置上容许 TCP/IP 端口: 7890 ( CMPP2.0 出)、 7891 ( CMPP3.0 出)
MAS 产品卖点
▪ 快速可靠的网络通信能力
– 专属的行业网关具备强大的业务实时处理能力,具有可靠的 QoS 保障。
– 优先级支持:支持不同等级的优先级控制,实现业务的优质优价
– 行业网关具备短信、彩信、 WAP 、 USSD 等多种通信能力
▪ 端到端的业务安全能力
– 行业网关、 MAS 服务器、移动终端具备 SSL 等多种加密措施,保障企业系统道最终用户的端到端信息安全
▪ 简单方便的业务集成
– 通过 MAS 与应用系统的适配可迅速实现移动客服、移动办公等企业应用的移动化
– 统一的数据库接口、 Web Service 接口,降低客户的开发成本
▪ 中国移动提供端到端的服务保障
– MAS 统一服务平台实现移动公司对 MAS 的业务管理、故障监控、远程维护等管理功能。
– 为集团客户提供自服务管理功能,实现业务统计分析,业务数据配置,机器性能监控等功能。
– 7X24 小时的客户服务热线,随时受理客户的服务要求;
MAS 业务特征
– 1 、 MAS 终端用户可以使用短信、彩信、 WAP 、语音以及手机应用程序等方式,通过 MAS 服务器访问集团客户 IT 系统的各种应用。
– 2 、 MAS 服务器部署在企业内部,通过应用适配模块与企业现有业务系统耦合,实现企业应用移动化。
– 3 、 MAS 服务器提供灵活的自服务门户,集团管理员和集团个人用户可根据相应权限进行管理。
– 4 、 MAS 服务器在管理平台注册成功后,才能开始服务。
– 5 、 MAS 服务器定期到管理平台进行认证,不能认证或认证失败, MAS 服务器应停止其相关业务模块的运行。
– 6 、中国移动通过 MAS 管理平台对企业侧的 MAS 服务器进行统一的管理和维护。
– 7 、 MAS 服务器与 MAS 管理平台之间的注册、认证与管理信息加密传输。
http://61.132.74.56/cps/site/lilydev/80/80.htm
mas platform (mobile agent system )
移动代理服务器 Mobile Agent Server
200000条短信 8000元/月
200001条短信 0.05元/月
协议开发 中移动CMPP2.0协议API
http://blog.sina.com.cn/s/blog_4b1d6c23010008d0.html
http://blog.sina.com.cn/s/blog_4b1d6c23010008d1.html
ref
--客服消费记录 rem==remark REM START BOSS SO_MONTHCHARGE_DETAIL CREATE TABLE "BOSS"."SO_MONTHCHARGE_DETAIL" ( "LOGIN_ID" VARCHAR2(20 BYTE) NOT NULL ENABLE, "ACCOUNT_ID" VARCHAR2(20 BYTE) NOT NULL ENABLE, "DATETIME" VARCHAR2(14 BYTE) DEFAULT TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS'), "BILL_AMT" NUMBER(9,2) DEFAULT 20, "INFO" VARCHAR2(200 BYTE) DEFAULT (null), "SESSION_ID" VARCHAR2(10 BYTE), CONSTRAINT "SO_MONTHCHARGE_DETAIL_SM__FK1" FOREIGN KEY ("LOGIN_ID") REFERENCES "BOSS"."SM_USER" ("LOGIN_ID") ENABLE, CONSTRAINT "SO_MONTHCHARGE_DETAIL_SO__FK1" FOREIGN KEY ("ACCOUNT_ID") REFERENCES "BOSS"."SO_ACCOUNT" ("ACCOUNT_ID") ENABLE ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "BOSSSYS01" ; REM END BOSS SO_MONTHCHARGE_DETAIL --客服包月 REM START BOSS SO_MONTHCHARGE CREATE TABLE "BOSS"."SO_MONTHCHARGE" ( "LOGIN_ID" VARCHAR2(20 BYTE) NOT NULL ENABLE, "ACCOUNT_ID" VARCHAR2(20 BYTE) NOT NULL ENABLE, "CHARGE" NUMBER(1,0) DEFAULT 0, "STATE" NUMBER(1,0) DEFAULT 0, CONSTRAINT "MONTHCHARGE_PK" PRIMARY KEY ("LOGIN_ID", "ACCOUNT_ID") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "BOSSSYS01" ENABLE, CONSTRAINT "MONTHCHARGE_SM_USER_FK1" FOREIGN KEY ("LOGIN_ID") REFERENCES "BOSS"."SM_USER" ("LOGIN_ID") ENABLE, CONSTRAINT "MONTHCHARGE_SO_ACCOUNT_FK1" FOREIGN KEY ("ACCOUNT_ID") REFERENCES "BOSS"."SO_ACCOUNT" ("ACCOUNT_ID") ENABLE ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "BOSSSYS01" ; REM END BOSS SO_MONTHCHARGE --客服包月扣费的存储过程 create or replace PROCEDURE boss_monthcharge_pro AS money NUMBER; BEGIN FOR monthcharge IN (SELECT * FROM boss.so_monthcharge) LOOP SELECT balance INTO money FROM bill.t_user WHERE login_account_id = monthcharge.account_id; IF monthcharge.state = 1 AND money >= 20 THEN UPDATE boss.so_monthcharge SET charge = 1 WHERE account_id = monthcharge.account_id; update bill.t_user set balance = balance-20 WHERE login_account_id = monthcharge.account_id; INSERT INTO boss.so_monthcharge_detail (LOGIN_ID,ACCOUNT_ID,BILL_AMT,INFO) values (monthcharge.login_id,monthcharge.account_id,20,'客服托管包月'); ELSE UPDATE boss.so_monthcharge SET charge = 0 WHERE account_id = monthcharge.account_id; END IF; END LOOP; COMMIT; END boss_monthcharge_pro; --提交作业的存储过程,执行会作一次收费 create or replace Procedure BOSS_MONTHCHARGE_JOB Is li_jobno Number; Begin DBMS_JOB.SUBMIT(li_jobno,'BOSS_MONTHCHARGE_PRO;',SYSDATE,'TRUNC(LAST_DAY(SYSDATE ) + 1)'); commit; End BOSS_MONTHCHARGE_JOB;
adsffasdfdsfa
project:sms
ip:192.168.121.54 clientTools:remote id:liuhui pwd:123456 port:7129
database
db2:192.168.100.38 id:Administrator pwd:soa port:5001?
asdfasfsadfdasf
http://61.132.74.56/cps/site/lilydev/80/80.htm#top
|
|
|
大汉三通SP短信平台CTC-SMS产品简介
http://www.chinatricom.com/cpsms.asp
大汉三通 SP 短信平台 CTC-SMS(即3T-ISMG) 为上海大汉三通网络通信有限公司的软件产品(下面简称为 CTC-SMS短信平台),系统模块结构如下:
3T-ISMG 产品说明书
http://www.docin.com/p-7708044.html
http://mail.ctiforum.com/bz/space.php?uid=41912
http://www.ctiforum.com/factory/f05_08/www.3tong.com.cn/3T-ISMG-1.pdf
http://dl.iteye.com/topics/download/41fb8d02-23c4-35a9-94f7-f39273a8c254
五、性能部分指标
1.系统瞬间峰值:
不操作数据库,仅写日志,稳定工作在800条/秒/一个TCP/IP连接;
写数据库,稳定工作在200条/秒/一个TCP/IP连接;
2.占用系统资源:大约在30%~40%CPU(PIII 2.4G,RAM 1G)。
3.短信流量理论设计值:500万条/天;
4.发送速率:600条/秒(不写数据库),200条/秒(写数据库)
5.接受速率:800条/秒(不写数据库),300条/秒(写数据库)
6.进程处理:多个业务同时可挂接;
以上数据哟采用模拟器测试所得和实际检测综合所得;
而实际的网关来说,移动、联通实际分配给SP的流量一般只会开到大约80条/秒。
一个影子很孤单,两朵玫瑰才新鲜;一颗心情常期盼,两处天空多浩瀚;正看短信的小笨蛋,为何让我总怀念,祝你春节快乐!
asdfasfdsafdsafdsaf