MMS协议解析.docx
MMS合同解析MMS(MUItimediMessagingService)就是我们俗称的彩信,它能提供比SMS(短信)更加丰富的信息,能提供涉及图片、视频、声音、多种格式的文字等内容。目前的应用重要有如下几种方面: 便利性实用性娱乐性互动性个人化 端到端通信自拍照片自编贺卡/图片带有图片照片和语音片断等体现感情内容的增强型聊天电子邮件附件在移动终端上的增强型应用 娱乐手机铃声/屏保下载节日贺卡明星贺卡多媒体交友运用手机察看自己心仪的对象并通过信息向她体现心意原创基地:运用多媒体短信传播自己的原创动漫和音乐 新闻/金融服务体育比赛集锦和得分镜头视频剪辑通过移动终端获取多媒体新闻和金融信息分析等其他定位业务移动广告一、数据流程MMS系统大体网络拓扑图如下:先简介一下网络中的节点设备:MMSC1ient:MMS客户端,就是平常用的手机等移动设备;MMSProxyReIay:MMS代理中继,用于转发MMS;MMSServenMMS服务器,用于存储MMS5一般与MMS代理集成在一台设备上;1egacyWire1essMessgingSystems:老式的无线消息系统,例如SMS系统;Emai1Server:邮件服务器,Ineternet上的邮件服务器,例如139邮件服务器;OtherMMSSystems:其他地方或其他运营商的MMS系统;MMS承载于WAP之上,在WAP1.X系统里采用WSP合同,在WAP2.0系统里采用HTTP合同,如下图所示:WAP1.2:WAP2.0:Pay1oadWSPPay1oadHTTPMMSUserAgentPay1oadHnTP-GHTTPPROXY1ntrnt./IP-networkMMSRe1ay/ServerPay1Qad1HTTPI1具体网络图如下:MMS时发送接受实体涉及如下几种方式:1、终端V>同一系统内终端2、终端V>不同系统内终端3、终端V>Emai1server4、终端V>SP我们以第一种状况进行MMS收发流程阐明,大体有如下几步:1、发送终端发送MMS到MMS代理;2、MMS代理发送告知到接受终端;3、接受终端发送提取MMS命令到MMS代理;4、MMS代理返回MMS到接受终端;5、MMS代理发送回执给发送终端,表达对方已收到MMS;其中第2步时告知是通过WAPPUSH实现时,目前中国移动实现的方式是通过SMS(短信)告知对方。二、消息解析前面提到MMS可以通过WSP和http两种方式传播,无论哪种方式,其Content-Type都必须为(0x3E)。MMS可以分为4类:发送、告知、提取、回执。每一类消息都涉及消息头,有时还涉及正文。如下:发送是指发送者发送MMS到MMS中心,涉及两条消息:MMS发送祈求、MMS发送确认。1.1.1 MMS发送祈求MMS发送祈求消息由发送者到MMS中心,涉及消息头和正文,正文紧跟消息头。消息头涉及内容如下:NameContentCommentsX-Mms-Message-TypeMessage-type-va1ue=m-<end-rMandatory.Specifiesthetransactiontype.X-Mms-Transaction-IDTransaction-id-va1ueMandatory.Auniqueidentifierforthemessage.ThistransactionIDidentifiestheMSend.reqandthecorrespondingrep1yX-Mms-MMS-VersionMMS-version-va1ueMandatory.TheMMSversionnumber.Accordingtothisspecification,theversionDateDate-va1ueOptiona1.Arriva1timeof(hemessageatMMSProxy-Re1ay.MMSProxyRe1aywi11generatethisfie1dwhennotsupp1iedbytermina1.FromFrom-va1ueMandatory.Addressofthemessagesender.Thisfie1dMUSTbepresentinamessagedeIiveredtoarecipient.Thesendingc1ientMUSTToTo-va1ueOptiona11.AddreSSoftherecipient.CcCc-va1ueOptiona11.BccBcc-va1ueOptiona11.SubjectSubject-vaIueOptiona1.X-MmsMessage-c1assOptiona1.X-Mms-ExpiryExpiry-va1ueOptiona1,defau1t:maximum.X-Mms-De1iveryDe1ivery-timeOptiona1:defau1t:immediate.X-Mms-PriorityPriority-va1ueOptiona1.Defau1t:Norma1.X-Mms-Sender-Sendervisibi1ity-vaOptiona1.Defau1t:showaddress/phoncVisibi1ityIuenumberofthesendertotherecipientun1es5thesenderhasasecretnumber/address.Hide=d0n'tshowanyaddress.Sh0w=showevensecretaddress.X-Mms-De1iVery-ReportDe1-repiveryort-va1ue0ptiona1.Defau1tdeterminedWhenservice1ordered.Specifieswhethertheuserwantsde1iveryreportfromMessage-C1assisAutoeachrecipient.,thefie1dWhenSHA11X-MmSRead-rep1yOptiona1.-Read-Rep1y-va1ueSpecifieswhethertheuserwantsreportfromeachrecipientasamessage.WhenMessage-C1assthefie1dSHA11a1waysbepresen(andvaIueSHA11beNo.areacnewisAutotheContent-TypeContent-1ype-va1ueMandatory.Thecontenttypeofthemessage.以上字段除了开头的Messge-Type、TrQnsactio-ID、MMS-Version和末尾的COntent-TyPe之外,其他字段没有顺序规定,如下消息也是同样。1.1.2 MMS发送确认MMS发送确认由MMS中心到发送者,只涉及消息头,没有正文。消息头格式如下:NameContentCoinmentsX-MmS-Message-TypeMessage-type-va1ue=msendconfMandatory.Identifiesthemessagetype.X-Mms-Transaction-IDTransaction-id-va1ueMandatory.ThistransactionIDidentifiestheM-SendxonfandthecorrespondingrequestX-Mms-MMS-VersionMMS-version-va1ueMandatory.TheMMSversionnumber.Accordingtothisspecification,theX-Mms-Response-StatUSResponse-statuS-va1ueMandatory.MMSspecificstatus.X-Mms-Response-TextResponse-textva1ueOptiona1.Descriptionwhichqua1ifiestheresponsestatUAva1ue.MesSage-IDMessage-1D-va1ueOptiona).Thisisauniquereferenceassignedtomessage.ThisIDSHA11a1waysbepresentWhentheMMSProxy-Re1ayacceptedthe2.2 告知告知是指MMS中心发送告知到接受者,涉及两条消息:祈求和响应。目前是通过SMS进行告知,Gb接口上不存在该类数据包,因此在这里不做分析。2.3 提取提取是指MMS接受者从MMS中心提取MMS的过程,涉及三个环节:提取祈求、提取响应、响应确认。2.3.1 MMS提取祈求MMS提取祈求消息是由接受者到MMS中心,没有真正的消息头和正文,完全由WSP或HTTP的祈求头实现,也就是WSP或HTTP一种一般的GET祈求,其uri是告知消息里指定的地址。2.3.2 MMS提取响应MMS提取响应消息是由MMS中心到接受者,涉及消息头和正文,消息头涉及内容如下:NameContentCommentsX-Mms-Message-TypeMessage-type-va1ue=m-retrieve-confMandatory.Specifiesthemessagetype.X-MmsTransaction-IDTransaction-id-vaIueOptiona1.Identifieseither(hetransactionthathasbeenstartedbyM-NotificationwithoutM-NotifResornewtransactionwhendeferredde1iverywasrequested.ThenewX-Mms-MMS-VersionMMS-version-vaIueManda(ory.TheMMSversionnumber.AccordingtothisMesSage-IDMessage-ID-va1ueOptiona1.Thisisanuniquereferenceassignedtomessage.ThisIDSHA11a1waysbePresentWhentheoriginatorc1ientrequeStedareadrep1y.TheIDenabIesac1ienttomatchreads-de,:UDateDate-va1ueMandatory.Sendingdateandtime.FromFrom-va1ueOptiona1.Addressofthesender.Ifhiding(hcaddressof(hesenderfromtherecipienti*supPOrted,theMMSProxy