- 浏览: 436009 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
weiwu83:
为什么我在手机内访问127.0.0.1访问不了呀
NanoHttpd 构建android 手机端的HttpServer -
jiae:
为啥我的插入语句乱码? 但是可以插入数据库 然后复制你 ...
SQLite3 在应用启动时初始化数据 -
lichenxiao77:
...
android 连接远程数据库 -
林源滔:
为什么我make clobber之后第一次执行make 可以。 ...
No rule to make target `out/target/common/obj/JAVA_LIBRARIES/bouncycastle_in -
cn23snyga:
new String(str.getBytes("I ...
android 平台上SQLite3中文乱码 --我的小bug
从OMA MMS封装协议中对MMS Notification的定义可以知道,MMS Notification实际上是通过WAP PUSH来实现的。WAP PUSH是可以通过两种方法来实现的,一种是通过GPRS的方式,另一种就是通过SMS的方式。但前一种方式由于开发时间长,调测复杂等原因在中国并没有被推广,而被中国移动所采纳的是第二种方式。同样在我们实验室里面的MMSC也是采用的第二种方式。
下面是MMS Notification的传输流程
1.当MMS被发送出去后,彩信中心会向接收方发送M-Notification.ind消息,M-Notification.ind消息实际上是一个二进制编码,并且在发送时直接被封装在一个包的实体中。内容实体的头部信息指明终端处理该消息所对应的应用程序(由于手机终端可以接收到各种PUSH消息,每一类的PUSH消息对应有相应的应用程序来处理,每个应用程序都对应有一个标识,即X-Wap-Application-Id,PUSH消息应指明处理自己的应用程序的标识),MMS业务对应的应用程序标识(application/vnd.wap.mms-message)。
信息元素名称 |
存在性说明 |
说明 |
X-Mms-Message-Type |
必选 |
说明消息的类型,本例为M-Notification.ind |
X-Mms-Transaction-ID |
必选 |
交易标识,用以识别一对M-Notification.ind及后续的M-NotifyResp.ind消息 |
X-Mms-MMS-Version |
必选 |
MMS版本号,目前为1.0 |
From |
可选 |
发送方地址。如果支持隐藏发送方地址,多媒体消息中心将不会将此域加入消息头部 |
Subject |
可选 |
消息标题 |
X-Mms-Message-Class |
可选 |
消息类别 |
X-Mms-Message-Size |
必选 |
以字节表示的消息大小;该域的值是一个近似的估算值,所以不应该作为拒绝多媒体消息的原因 |
X-Mms-Expiry |
必选 |
消息的有效期,该域只有一个格式,即相对时间格式 |
X-Mms-Content-Location |
必选 |
终端取消息时应使用的URI地址 |
2. Notification在MMSC中被压缩为二进制代码,由于MMSC与SMSC之间没有相对应的接口协议,所以Notification如果想到达SMSC的话中间是通过WAP PPG来实现。
3. 然后通过支持“推送”业务的SMPPV3.4协议与WAP PPG网关相连,同时还通过7号信令与移动通信网相连,以实现向移动终端用户发送由多媒体信息中心“推送”的多媒体信息的通知提示。当然,它也可以实现多媒体信息用户与非多媒体信息用户之间的信息传送。
4.在Notification到达接收手机时,接收手机首先将对Notification进行判断和解析,就像一个WAP PUSH一样,会判断是否手机支持WAP功能一样。如果手机无法解析Notification,那么手机也是接不到MMS的。
综上所述,我们可以把MMS Notification理解成一个特殊SMS,虽然它的压缩方式与传输方法与SMS有着区别,但是最终都是通过SMPP协议将其发出。对于我们的实验室环境NowSMS来说,MMS Notification是在Gateway时产生的log文件,即SMSOUT.log。然后由于Notification和SMS的单条大小的问题,一般情况下,Notification是被分成2个或更多的SMS,其相关的信息如端口号,URI地址均被encode在短信的UDH(user data header)里,然后通过SMS将其发出。所以我个人认为当我们查询SMSOUT.log判断是否Notification已经发出时,由于在随后传送中还有一系列的Process,都有丢失的可能性,log文件进只能作为一个参考,并不完全像我们所想象的那样,有了log,Notification就一定被发出。
MMS notification实例分析:
0891683108200105F 06409A109200209F20004709070714062238B0605040B8423F0C506246170706C69636174696F6E2F766E642E7761702E6D6D732D6D65737361676500B487AF848C8298485247314A545365592B5343008D9083687474703A2F2F3231312E3133362E3131322E38342F485247314A545365592B534300880481020DFB891A802B383631353830303438333434372F545950453D504C4D4E008A808E01DB
这是一条短信息。所有的8位都是16进制编码,除了服务中心号码,发送号码和时间戳(它们都是十进制的半8位编码)
0891683108200105F0
Octet(s) |
Description |
08 |
Length of the SMSC,是指跟在后面的短消息服务中心地址占用的字节数 |
91 |
SMSC Num Format (international format),是TON/NPI1。TON/NPI遵守International/E.164标准,指在号码前需加'+'号;此外还可有其他数值(如A1),但91 最常用到 |
683108200105F0 |
SMSC Num (+8613800210500) |
6409A109200209F20004709070714062238B
Octet(s) |
Description |
64 |
First octet of SMS-DELIVER message |
09 |
Length Of the Sender Num,发送方地址的长度。以半字节为单位,且不包括其后的地址格式 |
A1 |
Sender Num Format (National format) |
09200209F2 |
Sender number (900220902) |
00 |
TP-PID |
04 |
TP-DCS ( 8 bit data) |
70907071406223 |
Time Stamp: Fri Sep 7 17:04:26 CST 2007 |
8B |
TP-UDL |
下面是TP-UD部分:
0605040B8423F0
Octet(s) |
Description |
06 |
UDHL (user data header length) |
05 |
Information Element identifier: Application port addressing 16 bit. |
04 |
Information element length |
0B84 |
Destination port |
23F0 |
Originating port |
C506246170706C69636174696F6E2F766E642E7761702E6D6D732D6D65737361676500B487AF84
Octet(s) |
Description |
C5 |
Transaction ID |
06 |
PDU Type: Push |
24 |
Length of Content type + Header(36) |
6170706C69636174696F6E2F766 |
Content type: (8 bit encoding of) |
B4 87 |
Push Flag: 87 |
AF84 |
X-Wap-Application-Id: 84 |
8C8298485247314A545365592B5343008D9083687474703A 2F2F3231312E3133362E3131322E38342F485247314A545365592B534300880481020DFB891A802B383631353830303438333434372F545950453D504C4D4E008A808E01DB
Octet(s) |
Description |
8C 82 |
X-Mms-Message-Type: m-notification-ind |
8D 90 |
MMS-Version: 1.0 |
83687474703A2F2F3231312E3133362E3131322E38342F485247314A545365592B534300 |
Content-Location:http://211.136.112.84/HRG1JTSeY+SC |
88 04 81 020DFB |
Expiry + Length + Relative-token + Delta-secs |
89 1A 80 2B38363135383030343833 |
From + Length + Address-Present-token: +8615800483447/TYPE=PLMN |
8A 80 |
Msg-Class: Personal (此处有误,待查) |
8E01DB |
Msg-Size: 475 |
发表评论
-
Android.mk文件解析
2016-01-27 14:01 937以 tools/tradefederation/Androi ... -
NanoHttpd 构建android 手机端的HttpServer
2015-10-20 16:24 2947NanoHttpd是Github上的一个开源项目, 通过下载 ... -
permission denial : android.permission.INTERACT_ACROSS_USERS_FULL
2015-08-05 16:50 5046在android5.0上运行 Runtime.getRun ... -
android getprop() 和 java System.getPropety()
2015-06-04 14:39 63581 System.getPropety()是java中的方 ... -
android cts测试相关
2015-05-27 17:38 0example: -
android uiautomator 相关
2015-05-15 16:53 16951 Runtime.getRuntime().exec 启 ... -
android UI test Espresso
2015-04-10 18:31 1202google android UI测试工具 espresso ... -
android 安全(转)
2014-12-26 12:37 721一 如何不被反编译解析1防止反编译工具的反编译 查看 ... -
nexus related
2014-12-17 15:29 7411 nexus drivers https://deve ... -
git related
2014-12-17 15:24 9671 see all detailed git info ... -
ubuntu android studio 配置和使用
2014-12-10 17:34 3627Ubuntu 64位,Android studio 的安装, ... -
eclipse+ADT+android配置相关
2014-12-05 16:40 14531 eclipse 过旧时,ant 运行不了,会报sdk. ... -
anroid 开发小知识点
2014-10-09 09:52 8231 1)代码 获取APK安装路径和包名 L ... -
androird 内存泄露 浅析
2013-06-19 17:52 1449主要是记录工作中出 ... -
mms 相关链接
2013-03-15 13:53 1394http://blog.chinaunix.net/uid ... -
java层堆栈调用的打印
2012-12-26 15:14 44711. 在指定的函数内打印相关java调用 Log.d ... -
mms 数据包相关
2012-11-26 14:51 22721 抓包 adb shell tcpdump -i any ... -
sms AT指令返回错误代码: CMS errors & CME errors 的区别!
2012-10-26 18:35 12026CMS的是短信中心的返回错误。 CME 是设备返 ... -
sms 发送 radio log
2012-10-26 17:25 4073发送短信:radio.log 关键字 :SEND_SMS ... -
SQLite --函数
2012-09-03 18:22 1986一、日期和时间函数:原文地址SQLite主要支持以下 ...
相关推荐
### MMS Notification PDU 解析 #### 彩信通知PDU简介 彩信通知PDU是一种特殊的指示消息,由彩信中心向手机发起的通知指示消息(m-notification-ind),通常通过短信下发的方式进行传递(即WAP over SMS方式)。这...
- **接收MMS**:当代理有MMS消息需要投递给接收端时,使用M2Notification.ind原语并通过WAP的PUSH操作完成。此原语存放在PUSH的消息体中,并携带MMS消息所在位置的URI,以便用户通过该URI获取MMS消息。 #### 三、...
当MMS中继代理有消息要发送给接收端时,使用M2Notification.ind原语并通过WAP的PUSH操作完成。该原语携带MMS消息位置的URI,允许接收端通过URI获取MMS消息。整个过程确保了消息的准确投递和高效处理。 #### 三、MMS...
3. **MMS通知协议(MMS Notification Protocol,MN)**:用于在MMS系统内部传递消息状态的通知,例如消息已接收、正在处理等状态更新。 4. **PAP(PAP:Push Access Protocol)**:用于实现推送功能,即当有新消息...
MMS(Multimedia Messaging Service,多媒体信息服务)是一种用于在移动设备之间发送和接收多媒体内容(如图片、视频、音频和文本)的服务。MMS系统流程图详细描述了MMS终端到MMS终端的业务处理过程,包括两种情况:...
MMS(Multimedia Messaging Service,多媒体信息服务)是一种用于在移动设备之间发送和接收包含文本、图像、音频和视频等多媒体内容的消息服务。MMS系统流程图详细描述了MMS消息从一个终端到另一个终端的传递过程,...
- `Disposition-Notification-To`:如果接收方确认已读,则返回确认消息的地址。 - `Content-Disposition`:描述消息体的处理方式。 #### 四、MMS压缩编码技术 为了降低传输过程中的数据量,MMS使用了一系列压缩...
当收到新短信或MMS时,系统会通过`Notification`进行提醒。源码中的`com.android.mms.util.NotificationUtil`类处理这些通知的创建和显示。 10. **异步任务** 对于耗时的操作,如网络通信,源码通常使用`...
IOS应用源码之【应用】-StatusNotifier-iPhone Email, SMS, MMS, IM, Call, Voicemail notification in status bar.rar
接着,`TransactionService`启动并处理`NOTIFICATION_TRANSACTION`,同时接收`NotificationInd`的URI。`TransactionService`会进一步处理彩信的下载和显示,通常涉及HTTP请求来获取彩信内容。 总的来说,Android ...
ZXME-MMSC( Multimedia Messaging Service Center,多媒体消息服务中心)是移动通信网络中处理MMS(多媒体消息服务)的核心组件。该系统主要负责存储、转发和分发多媒体消息,使得用户能够通过移动设备发送和接收...
2. `parlayx_mm_notification_manager_interface_4_0.wsdl`:此接口涉及MMS通知管理,它定义了如何订阅和处理MMS发送状态的通知,例如,当消息已送达或失败时的反馈。 3. `parlayx_mm_receive_interface_4_0.wsdl`...
2. **远程通知(Remote Notifications)**:对于与服务器通信的应用,StatusNotifier可能也利用了远程通知,也就是APNs(Apple Push Notification service)。通过APNs,服务器可以实时推送消息到设备,确保用户即使...
- **m-notification-ind**:彩信中心通过PUSH协议向终端(接收方)发送的彩信通知,包含URL。 - **m-notifyresp-ind**:终端(接收方)向彩信中心的PUSH响应。 - **m-retrieve-conf**:彩信中心向终端(接收方)发送...
发送时延是从手机发出彩信请求(M-send.req)到收到确认(M-send.conf)的时间,接收时延则是从MMSC通知手机有新彩信(M-notification.ind)到手机确认收到(M-notifyResp.ind)的时间。这些指标对于衡量用户体验至...
8. **Notification和Alarm Manager**:系统使用`NotificationManager`来创建并显示短信通知,而`AlarmManager`则用于定时任务,如检查新消息或提醒用户未读短信。 9. **Intent服务**:Android使用Intent服务处理...
【彩信收发Demo】是基于Android 5.0系统分离出来的一个专门处理彩信(MMS)收发功能的源代码示例。这个Demo旨在帮助开发者理解和实现Android设备上的多媒体消息服务,使得应用程序能够发送和接收包含文本、图片、...
- 彩信通知(m-notification-ind) - 通知回应(m-notifyresp-ind) - 获取彩信回应(m-retrieve-conf) - 接收确认(m-acknowledge-ind) - 彩信回执(m-delivery-ind) 每个PDU都包含一些公共和专用的消息域,...
4. `NotificationHandler`:处理短信接收后的通知显示,如弹出通知或更新通知栏。 通过分析和学习这些源码,开发者不仅可以了解Android系统短信服务的基本工作流程,还能掌握如何在应用程序中集成短信功能,包括...