彩信系统消息发送状态码细化方案华为彩信系统彩信业务报表
- 格式:doc
- 大小:307.00 KB
- 文档页数:16
中国电信彩信互通网关状态码转换方案实现
李洪;渠凯;孙珂;李卓航
【期刊名称】《电信技术》
【年(卷),期】2012(000)012
【摘要】为满足中国电信的特有彩信状态码,分析了彩信互通网关平台的业务特点,提出了彩信互通网关实现彩信状态码的转换方案,并成功实施。
【总页数】4页(P47-50)
【作者】李洪;渠凯;孙珂;李卓航
【作者单位】中国电信集团公司;中国电信集团公司;华为技术有限公司;华为技术有限公司
【正文语种】中文
【中图分类】TN948.63
【相关文献】
1.彩信网关的建设及其对彩信业务的改善 [J], 贾凡
2.中国电信3G短信和固网短信互通方案研究 [J], 董斌;杨涛
3.新互联互通方案与中国电信业格局 [J], 祝小林
4.基于IP寻址的彩信网关备份方案研究 [J], 张慧勇;刘年超;翁啸华
5.彩信(MMS)网关原理和实现仿真 [J], 詹咏松
因版权原因,仅展示原文概要,查看原文内容请购买。
彩信(MMS)系统维护管理规定(2008版)二○○八年五月目录第一章概述 (3)第二章维护组织 (4)第一节维护组织结构及职责 (4)第二节彩信系统与其他网络的界面划分 (6)第三节彩信系统与SP的界面划分 (7)第三章系统的日常维护和管理 (8)第四章故障管理 (10)第五章质量管理 (13)附录一:区域性彩信系统故障处理流程 (14)附录二:省内彩信系统故障处理流程 (15)第一章概述第一条彩信(MMS)系统(以下简称彩信系统)是基于GSM网、GPRS网、CMNet网和WAP系统等基础网络使用MMS技术提供多媒体消息通信业务、并与网管系统、计费系统等支撑网相连的业务系统。
第二条彩信系统根据服务的覆盖范围分为区域性彩信系统和省内彩信系统。
区域性彩信系统承担全网或多于一个省的彩信系统相关业务,包括彩信网关、彩信互通网关、国际彩信网关、ENUM DNS、内容适配平台等系统,省内彩信系统包括彩信中心和只承担本省彩信业务的彩信网关。
第三条为了规范彩信系统的维护管理,合理、可靠、安全、高效地组织、管理彩信系统,提高彩信系统的通信服务质量,提高维护队伍整体素质和水平,特制定本管理规定,作为组织、管理彩信系统的依据。
第四条本管理规定适用于彩信系统,包括彩信中心(MMSC)、ENUM DNS、内容适配平台、彩信网关(MMSG)、彩信互通网关(MMSIG)、国际彩信网关及相关配套设备。
第五条本管理规定按照《网络运行维护规程》框架编制,未详尽描述部分参照《网络运行维护规程》执行。
第六条各级维护管理部门应认真执行本规定。
各省公司在本规定的基础上,结合本省实际情况,编制实施细则,以确保彩信系统安全、可靠、高效地运行。
第七条本管理规定的解释权和修改权属于网络部。
第二章维护组织第一节维护组织结构及职责第八条彩信系统的维护管理按照统一领导、分级管理、分级负责的原则,在总部统一领导下,总部及各省公司负责各自管辖范围内彩信系统的维护管理工作。
【Android 】Android 彩信发送的两种⽅式+源代码Android 彩信发送的两种⽅式第⼀种:直接调⽤彩信发送接⼝ 实现代码如下, 看到彩信发送的代码,跟短信发送的代码有很⼤的不同,彩信发送不同于短信发送,调⽤系统的彩信发送会出现发送界⾯。
有朋友就要问了,这样不适合我的需求,我需要实现⾃定义彩信发送,并且不调⽤系统彩信。
第⼆种⽅法将满⾜我们的需求第⼆种:⾃定义彩信发送 ⾃定义彩信发送,⽆需进⼊彩信发送界⾯,需要调⽤系统源码 PDU 实现。
⾸先给出发送代码APNManager.getSimMNC ⽤来设置 彩信Url 和代理端⼝MMSSender.sendMMS 实现彩信的发送APNManager 类源代码Intent intent = new Intent(Intent.ACTION_SEND);intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);intent.putExtra(Intent.EXTRA_STREAM, Uri.parse(url));// uri 为你的附件的uriintent.putExtra("subject", "it's subject"); //彩信的主题intent.putExtra("address", "10086"); //彩信发送⽬的号码intent.putExtra("sms_body", "it's content"); //彩信中⽂字内容intent.putExtra(Intent.EXTRA_TEXT, "it's EXTRA_TEXT");intent.setType("image/*");// 彩信附件类型intent.setClassName("com.android.mms","poseMessageActivity");startActivity(intent);//彩信发送函数public static void sendMMS(final Context context, String number,String subject, String text, String imagePath, String audioPath) {final MMSInfo mmsInfo = new MMSInfo(context, number, subject, text,imagePath, audioPath);final List<String> list = APNManager.getSimMNC (context);new Thread() {@Overridepublic void run() {try {byte [] res = MMSSender.sendMMS (context, list,mmsInfo.getMMSBytes());} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}};}.start();}View Codepackage com.rayray.util;import java.util.ArrayList;import java.util.List;import android.content.ContentResolver;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import .Uri;import android.telephony.TelephonyManager;import android.text.TextUtils;import android.util.Log;public class APNManager {// 电信彩信中⼼url ,代理,端⼝public static String mmscUrl_ct = "http://mmsc.vnet.mobi";public static String mmsProxy_ct = "10.0.0.200";// 移动彩信中⼼url ,代理,端⼝public static String mmscUrl_cm = "";public static String mmsProxy_cm = "10.0.0.172";// 联通彩信中⼼url ,代理,端⼝public static String mmscUrl_uni = "http://mmsc.vnet.mobi";public static String mmsProxy_uni = "10.0.0.172";private static String TAG = "APNManager";private static final Uri APN_TABLE_URI = Uri.parse("content://telephony/carriers");// 所有的APN 配配置信息位置private static final Uri PREFERRED_APN_URI = Uri.parse("content://telephony/carriers/preferapn");// 当前的APNprivate static String[] projection = { "_id", "apn", "type", "current","proxy", "port" };private static String APN_NET_ID = null ;private static String APN_WAP_ID = null ;public static List<String> getSimMNC(Context context) {TelephonyManager telManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);String imsi = telManager.getSubscriberId();if (imsi != null) {ArrayList<String> list = new ArrayList<String>();if (imsi.startsWith("46000") || imsi.startsWith("46002")) {// 因为移动⽹络编号46000下的IMSI已经⽤完,所以虚拟了⼀个46002编号,134/159号段使⽤了此编号 // 中国移动list.add(mmscUrl_cm);list.add(mmsProxy_cm);} else if (imsi.startsWith("46001")) {// 中国联通list.add(mmscUrl_uni);list.add(mmsProxy_uni);} else if (imsi.startsWith("46003")) {// 中国电信list.add(mmscUrl_ct);list.add(mmsProxy_ct);}shouldChangeApn(context);return list;}return null;}private static boolean shouldChangeApn(final Context context) {final String wapId = getWapApnId(context);String apnId = getCurApnId(context);// 若当前apn不是wap,则切换⾄wapif (!wapId.equals(apnId)) {APN_NET_ID = apnId;setApn(context, wapId);// 切换apn需要⼀定时间,先让等待2秒try {Thread.sleep(2000);} catch (InterruptedException e) {e.printStackTrace();}return true;}return false;}public static boolean shouldChangeApnBack(final Context context) {// 彩信发送完毕后检查是否需要把接⼊点切换回来if (null != APN_NET_ID) {setApn(context, APN_NET_ID);return true;}return false;}// 切换成NETAPNpublic static boolean ChangeNetApn(final Context context) {final String wapId = getWapApnId(context);String apnId = getCurApnId(context);// 若当前apn是wap,则切换⾄netif (wapId.equals(apnId)) {APN_NET_ID = getNetApnId(context);setApn(context, APN_NET_ID);// 切换apn需要⼀定时间,先让等待⼏秒,与机⼦性能有关try {Thread.sleep(3000);} catch (InterruptedException e) {e.printStackTrace();}Log.d("xml", "setApn");return true;}return true;}// 切换成WAPAPNpublic static boolean ChangeWapApn(final Context context) {final String netId = getWapApnId(context);String apnId = getCurApnId(context);// 若当前apn是net,则切换⾄wapif (netId.equals(apnId)) {APN_WAP_ID = getNetApnId(context);setApn(context, APN_WAP_ID);// 切换apn需要⼀定时间,先让等待⼏秒,与机⼦性能有关try {Thread.sleep(3000);} catch (InterruptedException e) {e.printStackTrace();}Log.d("xml", "setApn");return true;}return true;}// 获取当前APNpublic static String getCurApnId(Context context) {ContentResolver resoler = context.getContentResolver();// String[] projection = new String[] { "_id" };Cursor cur = resoler.query(PREFERRED_APN_URI, projection, null, null, null);String apnId = null;if (cur != null && cur.moveToFirst()) {apnId = cur.getString(cur.getColumnIndex("_id"));}Log.i("xml", "getCurApnId:" + apnId);return apnId;}public static APN getCurApnInfo(final Context context) {ContentResolver resoler = context.getContentResolver();// String[] projection = new String[] { "_id" };Cursor cur = resoler.query(PREFERRED_APN_URI, projection, null, null, null);APN apn = new APN();if (cur != null && cur.moveToFirst()) {apn.id = cur.getString(cur.getColumnIndex("_id"));apn.apn = cur.getString(cur.getColumnIndex("apn"));apn.type = cur.getString(cur.getColumnIndex("type"));}return apn;}public static void setApn(Context context, String id) {ContentResolver resolver = context.getContentResolver();ContentValues values = new ContentValues();values.put("apn_id", id);resolver.update(PREFERRED_APN_URI, values, null, null);Log.d("xml", "setApn");}// 获取WAP APNpublic static String getWapApnId(Context context) {ContentResolver contentResolver = context.getContentResolver();// 查询cmwapAPNCursor cur = contentResolver.query(APN_TABLE_URI, projection,"apn = \'cmwap\' and current = 1", null, null);// wap APN 端⼝不为空if (cur != null && cur.moveToFirst()) {do {String id = cur.getString(cur.getColumnIndex("_id"));String proxy = cur.getString(cur.getColumnIndex("proxy"));if (!TextUtils.isEmpty(proxy)) {Log.i("xml", "getWapApnId" + id);return id;}} while (cur.moveToNext());}return null;}public static String getNetApnId(Context context) {ContentResolver contentResolver = context.getContentResolver();Cursor cur = contentResolver.query(APN_TABLE_URI, projection,"apn = \'cmnet\' and current = 1", null, null);if (cur != null && cur.moveToFirst()) {return cur.getString(cur.getColumnIndex("_id"));}return null;}// 获取所有APNpublic static ArrayList<APN> getAPNList(final Context context) {ContentResolver contentResolver = context.getContentResolver();Cursor cr = contentResolver.query(APN_TABLE_URI, projection, null, null, null);ArrayList<APN> apnList = new ArrayList<APN>();if (cr != null && cr.moveToFirst()) {do {Log.d(TAG,cr.getString(cr.getColumnIndex("_id")) + ";"+ cr.getString(cr.getColumnIndex("apn")) + ";"+ cr.getString(cr.getColumnIndex("type")) + ";"+ cr.getString(cr.getColumnIndex("current"))+ ";"+ cr.getString(cr.getColumnIndex("proxy")));APN apn = new APN();apn.id = cr.getString(cr.getColumnIndex("_id"));apn.apn = cr.getString(cr.getColumnIndex("apn"));apn.type = cr.getString(cr.getColumnIndex("type"));apnList.add(apn);} while (cr.moveToNext());cr.close();}return apnList;}// 获取可⽤的APNpublic static ArrayList<APN> getAvailableAPNList(final Context context) { // current不为空表⽰可以使⽤的APNContentResolver contentResolver = context.getContentResolver();Cursor cr = contentResolver.query(APN_TABLE_URI, projection,"current is not null", null, null);ArrayList<APN> apnList = new ArrayList<APN>();if (cr != null && cr.moveToFirst()) {do {Log.d(TAG,cr.getString(cr.getColumnIndex("_id")) + ";"+ cr.getString(cr.getColumnIndex("apn")) + ";"+ cr.getString(cr.getColumnIndex("type")) + ";"+ cr.getString(cr.getColumnIndex("current"))+ ";"+ cr.getString(cr.getColumnIndex("proxy")));APN apn = new APN();apn.id = cr.getString(cr.getColumnIndex("_id"));apn.apn = cr.getString(cr.getColumnIndex("apn"));apn.type = cr.getString(cr.getColumnIndex("type"));apnList.add(apn);} while (cr.moveToNext());cr.close();}return apnList;}// ⾃定义APN包装类static class APN {String id;String apn;String type;@Overridepublic String toString() {return "id=" + id + ",apn=" + apn + ";type=" + type;}}}MMSSender类源代码View Code//发送类package com.rayray.util;import java.io.DataInputStream;import java.io.IOException;import .SocketException;import java.util.List;import org.apache.http.HttpEntity;import org.apache.http.HttpHost;import org.apache.http.HttpResponse;import org.apache.http.StatusLine;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpPost;import org.apache.http.conn.params.ConnRoutePNames;import org.apache.http.entity.ByteArrayEntity;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.params.BasicHttpParams;import org.apache.http.params.HttpConnectionParams;import org.apache.http.params.HttpParams;import org.apache.http.params.HttpProtocolParams;import org.apache.http.protocol.HTTP;import android.content.Context;import android.util.Log;/*** @author* @version创建时间:2012-2-1 上午09:32:54*/public class MMSSender {private static final String TAG = "MMSSender";// public static String mmscUrl = "";// public static String mmscProxy = "10.0.0.172";public static int mmsProt = 80;private static String HDR_VALUE_ACCEPT_LANGUAGE = "";private static final String HDR_KEY_ACCEPT = "Accept";private static final String HDR_KEY_ACCEPT_LANGUAGE = "Accept-Language";private static final String HDR_VALUE_ACCEPT = "*/*, application/vnd.wap.mms-message, application/vnd.wap.sic";public static byte[] sendMMS(Context context, List<String> list, byte[] pdu)throws IOException {System.out.println("进⼊sendMMS⽅法");// HDR_VALUE_ACCEPT_LANGUAGE = getHttpAcceptLanguage();HDR_VALUE_ACCEPT_LANGUAGE = HTTP.UTF_8;String mmsUrl = (String) list.get(0);String mmsProxy = (String) list.get(1);if (mmsUrl == null) {throw new IllegalArgumentException("URL must not be null.");}HttpClient client = null;try {// Make sure to use a proxy which supports CONNECT.// client = HttpConnector.buileClient(context);HttpHost httpHost = new HttpHost(mmsProxy, mmsProt);HttpParams httpParams = new BasicHttpParams();httpParams.setParameter(ConnRoutePNames.DEFAULT_PROXY, httpHost);HttpConnectionParams.setConnectionTimeout(httpParams, 10000);client = new DefaultHttpClient(httpParams);HttpPost post = new HttpPost(mmsUrl);// mms PUD STARTByteArrayEntity entity = new ByteArrayEntity(pdu);entity.setContentType("application/vnd.wap.mms-message");post.setEntity(entity);post.addHeader(HDR_KEY_ACCEPT, HDR_VALUE_ACCEPT);post.addHeader(HDR_KEY_ACCEPT_LANGUAGE, HDR_VALUE_ACCEPT_LANGUAGE);post.addHeader("user-agent","Mozilla/5.0(Linux;U;Android 2.1-update1;zh-cn;ZTE-C_N600/ZTE-C_N600V1.0.0B02;240*320;CTC/2.0)AppleWebkit/530.17(KHTML,like Gecko) Version/4.0 Mobile Safari/530.17");// mms PUD ENDHttpParams params = client.getParams();HttpProtocolParams.setContentCharset(params, "UTF-8");System.out.println("准备执⾏发送");// PlainSocketFactory localPlainSocketFactory =// PlainSocketFactory.getSocketFactory();HttpResponse response = client.execute(post);System.out.println("执⾏发送结束,等回执。
彩信业务(MMS)SP接口应用认证测试规范修订记录目录1测试目的 (4)2测试说明 (5)2.1测试用例类型 (5)2.2测试使用的终端 (5)3测试内容 (5)3.1下行业务测试 (5)3.1.1必测项 (5)1.主送地址的填写 (6)2.中文标题字符集测试 (7)3.英文标题字符集测试 (8)4.中英文混合标题字符集测试 (9)5.中文消息内容字符集测试 (10)6.英文消息内容字符集测试 (11)7.中英文混合消息内容字符集测试 (12)8.GIF87a图片内容测试 (13)9.GIF89a图片内容测试 (14)10.JPG图片内容测试 (15)11.AMR声音内容测试 (16)12.IME声音内容测试 (17)13.各种媒体混合测试 (18)14.BASIC鉴权信息的填充 (19)15.接收方号码的长度合法性判断 (20)16.接收方号码的字符合法性判断 (21)17.接收方号码的归属判断 (22)3.1.2选测项 (23)1.多个主送地址的填写 (23)2.主送、抄送地址同时填写 (24)3.主送、密送地址的填写 (25)4.抄送地址的填写 (26)5.密送地址的填写 (27)6.多个主送、抄送地址的填写 (28)7.多个主送、密送地址的填写 (29)8.多个主送、抄送地址、密送地址的填写 (30)9.WBMP图片内容测试 (31)3.2上行业务测试 (32)3.2.1必测项 (32)1.接收消息处理功能测试(标题) (32)2.接收消息处理功能测试(文本内容) (33)3.接收消息处理功能测试(图片内容) (34)4.接收消息处理功能测试(声音内容) (35)5.接收消息处理功能测试(各种格式混合内容) (36)6.接收递送请求处理测试 (37)7.接收递送报告请求处理测试 (38)3.3计费测试 (39)3.3.1必测项 (39)1.计费号码的填充 (39)3.4性能测试 (40)3.4.1选测项 (40)1.接收消息性能 (40)彩信业务(MMS)SP接口应用认证测试规范关键词:多媒体消息业务中心、MMSC、彩信业务、SP、业务认证、测试规范摘要:本测试规范根据多媒体消息中心设备相关规范编制,作为业务认证测试的依据。
1引言 (2)1.1编写目的 (2)1.2背景 (2)1.3定义 (2)1.4参考资料 (3)2总体设计 (3)2.1需求规定 (3)2.1.1业务需求 (3)2.1.2功能需求 (3)2.1.3技术需求 (4)2.2运行环境 (4)2.3基本设计概念和处理流程 (4)2.3.1系统构成 (4)2.3.2彩信发送流程 (4)2.4各模块设计说明 (5)2.4.1发送网关 (5)2.4.1.1 源代码说明 (5)2.4.1.2 任务的读取 (6)2.4.1.3 任务的发送 (6)2.4.1.4 状态的合并 (6)2.4.1.5 处理长时间等待 (6)2.4.1.6 处理状态报告任务 (7)2.4.1.7 处理历史资源的转移 (7)2.4.1.8 连接的检测 (7)2.4.1.9 处理上行,状态报告和阅读报告 (7)2.4.1.10 发送返回状态定义 (7)《彩信》详细设计说明书1引言1.1编写目的该文档是移动彩信MM7协议开发的彩信发送网关程序的相关详细设计说明,供开发人员和使用维护人员阅览。
1.2背景MM7是移动针对彩信发送制定的一套标准,采用socket连接。
1.3定义1.4参考资料2总体设计2.1需求规定2.1.1业务需求1.提供气象部门发送彩信之用。
2.1.2功能需求1.彩信发送2.历史保存3.状态报告接收2.1.3技术需求1.采用C/S模式开发2.针对移动MM7协议开发3.java多线程发送2.2运行环境2.3基本设计概念和处理流程2.3.1系统构成1.彩信发送网关,负责发送彩信,接收状态报告。
2.双顺达彩信数据库,服务存储数据,生成每天发送任务,保存发送历史,发送状态报告。
2.3.2彩信发送流程1.我方彩信系统每日定时生成发送任务。
2.彩信网关定时提取任务发送到移动彩信网关。
3.移动彩信网关鉴权后发送到用户手机。
4.用户成功接收。
5.移动彩信网关返回状态报告至我方。
2.4各模块设计说明2.4.1发送网关2.4.1.1 源代码说明.ssd.ui.MainWindow.java中心控制类,也是界面的类.ssd.mms.SendMms.java业务逻辑类.ssd.mms.SendMms.java发送彩信的类Config目录ConnConfig.xmlMm7自带的数据库连接配置Log4j.propertiesLog4j的配置文件,默认每天一个日志,存放在log目录下,具体位置在系统配置文件中配置Mm7Config.xmlMm7协议的核心配置Mmstitle.xml彩信产品发送时的不同地区标题的配置文件SystemConfig.properties系统配置文件Dist目录是程序的发布目录2.4.1.2 任务的读取1.从彩信库cmpp_submit表读入指定网关名,发送状态(ih_process)为insert_cmpp_submit的指定数量的发送任务,存入内存队列中,并指定当前任务状态为待发送(-1)。
短信彩信推送方案引言在现代社会中,短信和彩信已经成为人们日常生活中重要的沟通工具之一。
随着移动互联网的普及和技术的发展,短信和彩信推送服务也变得越来越重要和普及。
本文将详细介绍短信和彩信推送方案的相关内容。
1. 短信推送方案1.1 短信推送的作用短信推送是一种通过短信渠道将信息快速地发送给用户的服务。
它可以用于各种场景,如验证码发送、通知提醒、营销推广等。
短信推送的作用在于快速、准确地将信息传递给用户,提高用户的使用体验。
1.2 短信推送的实现原理短信推送的实现原理主要分为两个步骤:信息生成和信息发送。
信息生成是指在推送前,系统需要根据业务需求生成相应的内容,如短信内容、接收号码等。
信息发送是指将生成的信息通过短信渠道发送给用户手机。
1.3 短信推送的技术选择短信推送的技术选择主要包括以下几个方面:•短信网关:选择稳定可靠的短信网关提供商,保证短信的及时送达和发送成功率。
•短信API:选择易用、功能完善的短信API接口,提供短信发送、状态查询等功能。
•短信模板:设计简洁明了的短信模板,提高用户阅读体验和信息传达效果。
2. 彩信推送方案2.1 彩信推送的作用彩信推送是一种通过彩信渠道发送图像、音频、视频等多媒体信息给用户的服务。
相比短信推送,彩信推送可以提供更丰富多样的信息形式,增强用户的视觉和听觉体验,使信息内容更加生动和直观。
2.2 彩信推送的实现原理彩信推送的实现原理与短信推送类似,也是通过信息生成和信息发送两个步骤来完成。
不同之处在于彩信推送需要生成和发送多媒体信息,包括图像、音频、视频等。
2.3 彩信推送的技术选择彩信推送的技术选择需要考虑以下几个因素:•彩信网关:选择支持彩信推送的彩信网关,确保彩信能够准确、稳定地送达用户手机。
•彩信API:选择功能齐全、接口清晰的彩信API接口,提供彩信内容编辑、发送、状态查询等功能。
•彩信模板:设计符合彩信规范的彩信模板,保证彩信内容能够正常显示和播放。
彩信方案简介彩信是一种多媒体消息服务,使用彩色图像、音频、视频等多种媒体元素来增强短信的交流效果。
彩信可以在移动通信网络上发送和接收,为用户提供更多样化丰富的通信方式。
本文档将介绍彩信的基本原理和实施方案。
彩信的基本原理彩信是通过移动通信网络传输的多媒体消息。
彩信消息由两个主要组成部分组成:消息内容和消息头部。
消息内容可以包含文本、静态或动态图片、音频和视频等多种媒体格式。
消息头部包含一些必备信息,如发送者和接收者的号码、消息优先级和类型等。
彩信可以在不同的协议下进行传输,常用的协议包括多媒体消息服务中心(MMSC)协议和终端环境(TE)协议。
MMSC协议用于在移动网络之间传输彩信消息,而TE协议用于在终端设备之间进行彩信交互。
彩信的实施方案彩信服务提供商要实现彩信功能,通常需要借助彩信服务提供商的支持。
彩信服务提供商是提供彩信服务的专业公司,他们提供基础设施和平台,帮助用户发送和接收彩信消息。
用户可以根据自身需求选择合适的彩信服务提供商,并与其合作开展彩信业务。
彩信网关彩信网关是实现彩信传输的关键组件,它负责将彩信消息从发送者发送到接收者。
彩信网关有两种类型:发送网关和接收网关。
发送网关负责将彩信消息发送到目标终端设备或MMSC,接收网关负责将彩信消息从MMSC接收并发送到目标终端设备。
业务支撑系统在实施彩信方案时,通常还需要一些业务支撑系统来辅助实现特定的业务需求。
例如,彩信的订阅和付费管理、彩信群发功能、彩信模板管理等。
业务支撑系统可以根据具体情况进行定制开发或集成现有的解决方案。
彩信的应用场景彩信具有丰富多样的应用场景,以下是几个常见的彩信应用场景:营销推广彩信可以作为一种营销推广手段,通过发送包含商品促销信息或宣传活动的彩信消息,吸引用户的注意力和兴趣。
彩信消息的多媒体特性可以使推广信息更加生动和吸引人。
社交互动彩信可以用于社交互动,例如发送彩信贺卡、活动邀请等。
彩信的多媒体特性可以增强互动体验,让用户更好地参与到社交活动中。
(业务管理)彩信系统消息发送状态码细化方案华为彩信系统彩信业务报表ChinaMobileCommunicationsCorporation彩信系统消息发送状态码细化方案V1.5.1中国移动集团公司网络部2004年10月前言本要求制定了中国移动MMS业务系统消息发送状态码细化方案。
本要求由中国移动通信集团公司网管中心提出且归口。
本要求起草单位:中国移动通信集团公司网络部网管中心本要求主要起草人:本要求解释单位:中国移动通信集团公司网络部网管中心一、彩信系统原有的MM发送状态码1:接收方接收成功2:用户拒绝接收(由用户主动发起拒绝接收MM和用户黑名单)3:MM成功转移到梦网相册系统4:MM过期5:MMSC转发失败(二个MMSC时,MM4_forward.RES中的STATUSCODE值为错误)6:系统拒绝或删除(如黑名单限制、不合法消息监控转移等)7:未收到状态方案8:未知错误二、MM发送状态码细化说明为进壹步明确彩信系统进行消息发送处理时所产生的具体的错误原因,特对系统报表MM 发送状态码进行如下细化处理:新的MM发送状态码采用“XXXX”四位数的编码规则。
编码的第壹位代表MMSC系统产生的错误的大类(跟未细化前的系统原有的报表MM 发送状态保持壹致),具体意义如下:0:发送方发送成功1:接收方接收成功2:用户拒绝接收(由用户主动发起拒绝接收MM和用户黑名单)3:MM成功转移到梦网相册系统4:MM过期5:MMSC转发失败(二个MMSC时,MM4_forward.RES中的STATUSCODE值为错误)6:系统拒绝或删除(如黑名单限制、不合法消息监控转移等)7:未收到状态方案8:未知错误9:待扩展。
编码的第二位代表MMSC系统针对不同终端类型产生的MM发送状态码的分类(基本上跟MMSC系统对外的接口保持壹致),具体意义如下:0:涉及接收方MMS终端MM发送处理流程时产生的错误(等价于MM1接口)1:涉及接收方SP应用MM发送处理流程时产生的错误(等价于MM7接口)2:涉及接收方为外部服务器(中国移动为梦网邮箱)MM发送处理流程时产生的错误(等价于MM3接口)3:涉及MM前转发送处理流程时产生的错误(等价于MM4接口)4:涉及非MMS支撑系统时产生的错误5:涉及到预付费系统时产生的错误6~9:待扩展。
彩信发送报告
报告主题:报告对象:XXX公司管理层
报告时间:2021年6月1日
报告人:XXX
一、报告内容
1. 彩信发送情况
通过本次彩信发送活动,共计发送彩信500条,其中成功送达的彩信占比为85%。
2. 彩信发送对象
本次彩信发送对象为已订阅XXX公司官方通讯的用户,共计300人。
3. 彩信内容
本次彩信内容为产品推广信息,包括产品介绍、优惠政策等方面的内容。
4. 彩信反馈情况
经过对本次彩信发送活动的反馈情况进行统计,收到反馈的用户占比为20%,其中正面反馈占比为60%。
5. 彩信问题解决
在本次活动中,有少部分用户反映收到的彩信内容不太符合其需求,我们已经对这部分用户提出的建议进行了整理,并将会在之后的产品推广中持续改进和调整,以逐渐提高用户满意度。
二、结语
经过本次彩信发送活动的统计和反馈情况,我们发现,彩信发送的效果是非常明显的。
在之后的宣传推广中,我们将会对彩信
发送的方式、内容等方面进行进一步的改进和调整,以逐渐提升推广效果和用户满意度。
彩信系统消息发送状态码细化方案华为彩信系统彩信业
务报表
1
2
China Mobile Communications Corporation
彩信系统消息发送状态码细化方案
V1.5.1
中国移动集团公司网络部
10月
前言
本要求制定了中国移动MMS业务系统消息发送状态码细化方案。
本要求由中国移动通信集团公司网管中心提出并归口。
本要求起草单位:中国移动通信集团公司网络部网管中心
本要求主要起草人:
本要求解释单位:中国移动通信集团公司网络部网管中心
4
一、彩信系统原有的MM发送状态码
1:接收方接收成功
2:用户拒绝接收(由用户主动发起拒绝接收MM和用户黑名单) 3:MM成功转移到梦网相册系统
4:MM过期
5:MMSC转发失败(二个MMSC时,MM4_forward.RES中的STATUS CODE值为错误)
6:系统拒绝或删除(如黑名单限制、不合法消息监控转移等)
7:未收到状态报告
8:未知错误
二、MM发送状态码细化说明
为进一步明确彩信系统进行消息发送处理时所产生的具体的错误原因,特对系统报表MM发送状态码进行如下细化处理:新的MM发送状态码采用”XXXX”四位数的编码规则。
编码的第一位代表MMSC系统产生的错误的大类(跟未细化前的系统原有的报表MM发送状态保持一致),具体意义如下:
0:发送方发送成功
1:接收方接收成功
2:用户拒绝接收(由用户主动发起拒绝接收MM和用户黑名单) 3:MM成功转移到梦网相册系统
5
4:MM过期
5:MMSC转发失败(二个MMSC时,MM4_forward.RES中的STATUS CODE值为错误)
6:系统拒绝或删除(如黑名单限制、不合法消息监控转移等)
7:未收到状态报告
8:未知错误
9:待扩展。
编码的第二位代表MMSC系统针对不同终端类型产生的MM发送状态码的分类(基本上跟MMSC系统对外的接口保持一致),具体意义如下:
0:涉及接收方MMS终端MM发送处理流程时产生的错误(等价于MM1接口)
1:涉及接收方SP应用MM发送处理流程时产生的错误(等价于MM7接口)
2:涉及接收方为外部服务器(中国移动为梦网邮箱)MM发送处理流程时产生的错误(等价于MM3接口)
3:涉及MM前转发送处理流程时产生的错误(等价于MM4接口) 4:涉及非MMS支撑系统时产生的错误
5:涉及到预付费系统时产生的错误
6~9:待扩展。
编码的第三位与第四位代表MMSC系统MM发送状态码序号,在
6
第一与第二位的基础上序列编号。
●本规范和报表规范中的报表均依据统计话单产生,计费话单
的生成机制依然按设备规范执行:即在业务全流程结束时生
成O和T计费话单,而且同一消息的O和T计费话单中的状
态码保持一致
●状态代码细分要求在统计话单中体现,统计话单独立于计费
话单,统计话单与计费话单不同,统计话单要求O话单和T话
单分别反映O过程和T过程的状态,因此状态可能不同。
●与计费话单不同,统计话单中O话单在提交流程结束、T流
程启动前生成;T话单在T流程结束后生成。
O话单不等待
T过程完成后与T话单同时产生。
●与计费话单不同,统计话单中不要求O话单与T话单一一对
应,失败(包括网络失败和用户失败)的O话单不需要生成对
应的T话单,而成功的O话单必须生成对应T话单(成功、
网络失败或用户失败)
●状态码可划分为四类:成功,准成功,网络失败,用户失败。
成功:多媒体消息被成功提交,并被接受方成功接收
准成功:成功转梦网相册(转梦网相册可能是用户原因,也
可能是网络原因造成)
用户失败:因用户原因造成的失败
网络失败:因网络设备原因造成的失败
7。