92
NowSMS MMSC Training: MMS Protocol Overview NOVEMBER 2015 ©2015 NOW WIRELESS LIMITED NOWSMS MMSC TRAINING: MMS PROTOCOL OVERVIEW – © 2015 NOW WIRELESS 1

MMS Protocol Overview - NowSMS

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

NowSMSMMSCTraining:MMSProtocolOverviewNOVEMBER2015©2015 NOW WIRE L ES S L IM I T ED

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 1

MMSOverviewMMSArchitectureOverviewMMSDeliveryProcessIntegrationWithOtherNetworkComponents◦ SMS- SMPP◦UserAuthentication- WAPGW/RADIUS/ICAP◦ Accounting&Charging- HTTP/DIAMETER◦MNP&MessageRouting

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 2

MMSC(MMSCentre)Providesstore-and-forwardMMSMessagingServiceformobilephonesubscribers

TemporarilystoresMMSmessagesawaitingsubscriberretrieval

MayinterconnectwithMMSCsforothernetworkoperators,eitherwithdirectconnections,orviaanaggregator

MayconvertMMSmessagestootherformats(e.g.,SMSwithweblink)fornon-subscribersorexternalrecipients

MayallowMMSsubmissionsfromValueAddedServiceProviders

Mayapplycontentadaptationonmessagecontentbaseduponcapabilitiesofthereceivingdevice

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 3

MultimediaMessagingService(MMS)DesignedtocomplimentSMSbyprovidingsupportformultimediacontent◦ Text◦ Images◦ Video◦ Audio◦ ContactObjects◦ CalendarObjects◦ SMILPresentation(legacysupport)

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 4

MMSandGroupMessagingSupportsmultiplerecipientsandgroupconversationsThebiggestdriverofMMSmessagetrafficgrowthhasbeenitsuseinmodernsmartphonesforgroupmessagingEvenwhenthecontentistextonly,MMSispreferredforgroupmessagingbecauserecipientscanreplyall,allowingallgroupmemberstoseeallmessages.

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 5

MMSMessageStructureAnMMSMessagehasasimilarstructuretoanSMTPE-MailMessageStructurebaseduponSMTPandMultipartInternetMailExtensions(MIME)◦ Envelope– Recipientsforin-transitmessageinstance.◦ Headers– Sender,DisplayedRecipients,Subject,otherattributes◦ Content– MIMEencodedmultipartcontent.Oneormoremultimediaobjects(text,image,video,etc.)

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 6

MMSEnvelopeRoutingAttributes(senderandrecipient)foraninstanceofanin-transitmessage.

Example:Amessageissenttomultiplerecipients,someofwhicharesubscribersofadifferentmobilenetwork.ThemessagemaybesplitbytheMMSCfordeliverytoanotherMMSC.TheMMSenvelopeforthemessageinstancesenttotheotherMMSCwillbeonlytheremoterecipients.TheenvelopelistofrecipientstellstheotherMMSCwhichrecipientstodeliverthemessageto.

TheMMSHeaderwillstillcontainalistofallrecipientstoprovidefullgroupmessagingsupport.

InMM4/SMTPthesearerepresentedbyMAILFROM:/RCPTTO:commands.

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 7

MMSHeadersSenderRecipients(To/CC/BCC)SubjectPriorityMessageClass(Personal,Advertisement)MessageType(canbedeliveryreportorreadreport)

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 8

MMSContentMultipart(MIME)objectcontainingoneormoreofthefollowing:◦ Text◦ Images◦ Video◦ Audio◦ ContactObjects◦ CalendarObjects◦ SMILPresentation(legacysupport)

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 9

MMSProtocolsOverallArchitecture:3GPPTS23.140http://www.3gpp.orgOver-the-AirPhonetoMMSC:OpenMobileAlliance(OMA)– MMSEncapsulationProtocolhttp://www.openmobilealliance.orgExternalConnectivityProtocols:3GPPTS23.140◦MM4– Interoperator◦MM7– ValueAddedServiceProvider

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 10

MMSProtocols• MM1thruMM11

• Someprotocolsarefullydefined(MM1,MM4,MM7)

• Otherprotocolsarelooselydefined,conceptual,andimplementationdependent

• Definedby3GPPTS23.140

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 11

/MM9

MM1• Interfacebetweenmobile

stationandMMSC

• BasedonHTTP,WAPPushandMIME

• MMScontentencodedasMIMEpayloadusingWAP/WSPbinaryencoding

• DefinedbyOpenMobileAlliance(OMA)– MMSEncapsulationProtocol

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 12

/MM9

MM2• Conceptualinterface

betweentwointernalelementsofanMMSC

• NoactualAPIorprotocoldefined

• MMSRelayprovidesclientinterfaces

• MMSServerprovidesstorageservices

• CommercialMMSCimplementationscombinefunctions

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 13

/MM9

MM3• Conceptualinterface

betweenMMSCandexternalserverssuchasE-Mail,FAXandVoiceMail

• NoactualAPIorprotocoldefined– useofSMTPsuggested

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 14

/MM9

MM4• Interfacebetween

multipleMMSCs

• SMTPbasedprotocoldefinedby3GPPTS23.040

• AdditionalX-MMSSMTPheadersdefined

• DifferentPDUsmappedtoSMTPheaders

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 15

/MM9

MM5• Conceptualinterface

betweenMMSCandHLRformessageroutinglookup

• NoactualAPIorprotocoldefined

• HLRlookupdoesnotprovideroutinginfoforsubscriberMMSC

• NowSMSMMSCusesHTTP-basedroutingcallbacks

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 16

/MM9

MM6• Conceptualinterface

MMSCandsubscriberdatabase

• NoactualAPIorprotocoldefined

• NowSMSMMSCusesHTTP-basedaccountingcallbacks

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 17

/MM9

MM7• InterfacebetweenMMSC

andValueAddedServiceProvider(VASP)applications.

• SOAP/XML/HTTPbasedprotocoldefinedby3GPPTS23.040

• MMScontentencodedasMIMEpayload

• Bi-directionalHTTPPOST– MMSCandVASPcanbothinitiateconnections

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 18

/MM9

MM8&MM9• InterfacebetweenMMSC

andbilling/chargingsystems

• Billinggenerallyreferstopost-paidCDRgeneration

• Charginggenerallyreferstorealtimechargingrequiredbypre-paid

• NowSMSMMSCsupportsHTTPbasedaccountingcallbackswhichsomecustomersusetogenerateCDRs

• NowSMSMMSCsupportsDIAMETERCreditControlorBaseAccounting

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 19

/MM9

MM10• Interfaceformessage

servicecontrolandfiltering

• Relativelynew,noknowncommercialimplementations

• DIAMETERbasedprotocol

• NotimplementedbyNowSMSMMSC

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 20

/MM9

MM11• Conceptualinterface

betweenMMSCandexternaltranscoder

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 21

/MM9

KeyProtocols• MM1– Phone<->MMSC

• HTTPPOST• BinaryWSPMIME• WAPPush

• MM4– MMSC<->MMSC• SMTP/MIME

• MM7– VASP<->MMSC• HTTPPOST• SOAP/XMLRequest• MIMEMMSContent

• MM9– Accounting/Billing/Charging• HTTPCallbacks• DIAMETER

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 22

/MM9

MM1OverviewMM1istheover-the-airprotocolforMMSmessagetransmissionbetweenaphoneandthenetwork.DefinedbyOpenMobileAlliance(OMA)– MMSEncapsulationProtocolhttp://www.openmobilealliance.orgBasedonHTTP,WAPPushandMIMEtechnologies

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 23

MM1ProtocolDataUnits(PDUs)PDUsarethedataelementsthatareexchangedbetweenamobilephoneandtheMMSCPDUsareencodedusingtheMIMEtypeapplication/vnd.wap.mms-messagePDUsaretransferredasthepayloadofHTTPrequests,HTTPresponses,orWAPpushmessagesExample(HTTPPOST):POST / HTTP/1.1Content-Type: application/vnd.wap.mms-messageContent-Length: 99999

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 24

MM1PDUKindsTherearethreekindsofMM1PDUs:1. Request:Denotedastype-name.req2. Confirmation (Response):Denotedastype-name.conf3. Indication (notification):Denotedastype-name.ind (not

confirmed)

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 25

MM1PDUTransmissionWhentheclientneedstosendaPDU(RequestorIndication)totheMMSC,italwaysusesHTTPPOST.◦ IftheMMSCreceivesaRequestPDUviaHTTP,itgeneratesanappropriateConfirmationPDUintheHTTPresponse.

◦ IftheMMSCreceivesanIndicationPDUviaHTTP,itgeneratesanemptyHTTPOKresponse(statuscode200or204).

WhentheMMSCneedstosendaPDU(Indicationonly)toaclient,itonlyusesWAPPush.

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 26

WAP1.xClientConsiderationsOlderMMSclientsbasedupontheWAP1.xprotocolusetheWirelessSessionProtocol(WSP)insteadofHTTP.TheseclientsmustuseaWAPGatewaywhichconvertsbetweenWSPandHTTP.TheMM1interfaceattheMMSCisalwaysHTTPbased.

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 27

MM1PDUsTransaction PDUTypeName Originated By Transport

SendMessage m-send.req (.conf) Client HTTP POST

NewMessage ReceivedNotification m-notification.ind MMSC WAPPUSH

Acknowledge NewMessageReceivedNotification(optional)

m-notifyresp.ind Client HTTPPOST

RetrieveMessage HTTPGET/m-retrieve.conf Client HTTPGET

Acknowledge RetrieveMessageComplete(optional)

m-acknowledge.ind Client HTTPPOST

DeliveryReport m-delivery.ind MMSC WAPPUSH

Read ReportfromClient m-read-rec.ind Client HTTP POST

ReadReporttoClient m-read-orig.ind MMSC WAPPUSH

ForwardMessage m-forward.req (.conf) Client HTTPPOST

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 28

MMSMessageStructureAnMMSMessagehasasimilarstructuretoanSMTPE-MailMessageStructurebaseduponSMTPandMultipartInternetMailExtensions(MIME)◦ Envelope– Recipientsforin-transitmessageinstance.◦ Headers– Sender,DisplayedRecipients,Subject,otherattributes◦ Content– MIMEencodedmultipartcontent.Oneormoremultimediaobjects(text,image,video,etc.)

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 29

REVIEW

MMSEnvelopeRoutingAttributes(senderandrecipient)foraninstanceofanin-transitmessage.

Example:Amessageissenttomultiplerecipients,someofwhicharesubscribersofadifferentmobilenetwork.ThemessagemaybesplitbytheMMSCfordeliverytoanotherMMSC.TheMMSenvelopeforthemessageinstancesenttotheotherMMSCwillbeonlytheremoterecipients.TheenvelopelistofrecipientstellstheotherMMSCwhichrecipientstodeliverthemessageto.

TheMMSHeaderwillstillcontainalistofallrecipientstoprovidefullgroupmessagingsupport.

InMM4/SMTPthesearerepresentedbyMAILFROM:/RCPTTO:commands.

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 30

REVIEW

MMSHeadersSenderRecipients(To/CC/BCC)SubjectPriorityMessageClass(Personal,Advertisement)MessageType(canbedeliveryreportorreadreport)MessageID

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 31

REVIEW

MMSContentMultipart(MIME)objectcontainingoneormoreofthefollowing:◦ Text◦ Images◦ Video◦ Audio◦ ContactObjects◦ CalendarObjects◦ SMILPresentation(legacysupport)

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 32

REVIEW

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 33

REVIEW

MM1MessageEncodingNoMMSEnvelope:AllrecipientsareinMMSHeadersTheMMSEncapsulationProtocoldefinestheMIMEtypeapplication/vnd.wap.mms-message,whichconsistsofheadersandanoptionalcontentbody.MMSHeadersareencodedinabinaryformat,followingtheWAPSessionProtocol(WSP)◦ WSPdefinesasinglebytecodeforcommonheadernamesandvaluestoreducemessagesize

◦ X-MMS-Message-Type:m-retrieve.conf reducesfroma36characterstringtotwobytes:8C84

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 34

MM1MessageEncodingMMSContent isencodedasmultipartMIMEobject.Themultipartobjectis areencodedinabinaryformat,followingtheWAPSessionProtocol(WSP)◦ application/vnd.wap.multipart.related isusedinplaceofmultipart/related

◦ application/vnd.wap.multipart.mixed isusedinplaceofmultipart/mixed

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 35

MM1Transaction:Step1SenderactivatesdataconnectiontoMMSAPN

(APNsettingconfiguredinthephone)

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 36

MobileNetwork

WAPGWorHTTPProxy

MMSC

ICAP

SMSC

PushProxyGateway

Sender

Receiver

1

MM1Transaction:Step2GGSNsendsRADIUSaccountingmessagetonotifythenetworkaboutthedeviceIPassignment.

WAPGatewayorICAPservermaintainstableofactivedeviceIPaddresses.

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 37

MobileNetwork

WAPGWorHTTPProxy

MMSC

ICAP

SMSC

PushProxyGateway

Receiver

RADIUS

1

2

Sender

MM1Transaction:Step3SendingphonesubmitsanMM1m-send.req totheMMSC.(MMSCServerURLconfiguredinphone.)MMSCreceivesm-send.req inHTTPPOST

Phonemaysubmit:• WAP1/WSPPOSTvia

WAPGW• WAP2/HTTPPOSTvia

Proxy• HTTPPOSTdirectto

MMSC

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 38

MobileNetwork

WAPGWorHTTPProxy

MMSC

ICAP

SMSC

PushProxyGateway

Receiver

RADIUS

m-send.req

HTTPPOST

1

2

3

Sender

MM1Transaction:Step4MMSCmustidentifyandauthenticatesender

MM1doesnotdefinehowthisisdone

Twooptions:

• WAPGWorHTTPProxyinsertsX-MSISDNHTTPheader

• MMSCrequestsMSISDNusingICAP

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 39

MobileNetwork

WAPGWorHTTPProxy

MMSC

ICAP

SMSC

PushProxyGateway

Receiver

RADIUS

m-send.req

HTTPPOST

ICAP

1

2

3

4b

Sender

MM1Transaction:Step5TheMMSCacceptsandprocessesthecontentoftheMMSmessage.Iftoalocalrecipient,theMMSCstoresandmakesitavailableasadynamicallygeneratedURLlink.TheMMSCgeneratesanMMSnotificationmessage(m-notification.ind),whichissentviaWAPPushoverSMStotherecipient(s).ThisMMSnotificationmessagecontainsaURLpointertothedynamicallygeneratedMMScontent.

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 40

MobileNetwork

WAPGWorHTTPProxy

MMSC

ICAP

SMSC

PushProxyGateway

Receiver

RADIUS

m-send.req

HTTPPOST

ICAP

1

2

3

4b

Sender

MM1Transaction:Step5(continued)m-notification.ind WAPpushmaybesubmittedtoaPushProxyGatewayusingthePushAccessProtocol(PAP)

OritmaybeencodeddirectlytoSMSformatandsubmittedusingSMPP

SMSmessagegeneratedisusuallya2partlongmessage

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 41

MobileNetwork

WAPGWorHTTPProxy

MMSC

ICAP

SMSC

PushProxyGateway

Receiver

RADIUS

m-send.req

HTTPPOST

ICAP

1

2

3

4b

PAP

SMPP5

SMS

m-notification.ind

Sender

MM1Transaction:Step6TherecipientphoneactivatesdataconnectiontoMMSAPN.(APNsettingconfiguredinthephone)

TherecipientphoneperformsanHTTP(orWSP)GETtoretrievetheMMSmessagecontentURLfromtheMMSC.

TheHTTPresponseistheMMSmessageinanm-retrieve.conf PDU.

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 42

MobileNetwork

WAPGWorHTTPProxy

MMSC

ICAP

SMSC

PushProxyGateway

Receiver

HTTPGET

m-retrieve.conf

6

Sender

MM1Transaction:Step7Ifthesenderrequestedadeliveryreport,theMMSCgeneratesanMMSdeliveryreport(m-delivery.ind),whichissentviaWAPPushoverSMStotheoriginalsender.

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 43

MobileNetwork

WAPGWorHTTPProxy

MMSC

ICAP

SMSC

PushProxyGateway

Receiver

HTTPGET

m-retrieve.conf

PAP

SMPP7

m-delivery.ind

6SMS

Sender

MM1Transaction:Step8Ifthesenderrequestedareadreport,thereceivermaygenerateareport(m-read-rec.ind)whenthesubscriberreadsthemessage.(Thisisdependentonclientconfiguration.)

TheMMSCtranslatestheformatofthereadreport(m-read-orig.ind),whichissentviaWAPPushoverSMStotheoriginalsender.

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 44

MobileNetwork

WAPGWorHTTPProxy

MMSC

ICAP

SMSC

PushProxyGateway

Receiver

HTTPPOST

m-read-rec.ind

PAP

SMPP9

m-read-orig.ind

8SMS

Sender

MMSMO(Mobile-Originated)Flow1. SenderactivatesdataconnectiontoMMSAPN.(APNsettingconfiguredinthephone)

2. GGSNsendsRADIUSaccountingmessagetonotifythenetworkaboutthedeviceIPassignment.

3. SendingphonesubmitsanMM1m-send.req totheMMSC.(MMSCServerURLconfiguredinphone.)

4. MMSCmustidentifyandauthenticatesender(X-MSISDNheaderinsertedbyWAPGWorICAP)

5. TheMMSCacceptsandprocessesthecontentoftheMMSmessage.Iftoalocalrecipient,theMMSCstoresandmakesitavailableasadynamicallygeneratedURLlink.

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 45

MMSMT(Mobile-Terminated)Flow1. TheMMSCgeneratesanMMSnotificationmessage(m-notification.ind),whichissentvia

WAPPushtotherecipient(s).ThisMMSnotificationmessagecontainsaURLpointertothedynamicallygeneratedMMScontent.

2. TherecipientphoneactivatesdataconnectiontoMMSAPN.(APNsettingconfiguredinthephone)

3. TherecipientphoneperformsanHTTP(orWSP)GETtoretrievetheMMSmessagecontentURLfromtheMMSC.

4. Deliveryreportand/orreadreportactivitymayoccur

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 46

WhatisWAPPush?SMSsupportsaconceptofportnumberstoallowapplicationstoregistertoreceivemessagesthataresenttoaspecificportnumber.(WAPPushusesSMSportnumber2948)WAPPushmessagesarebinarymessagesthatcancontaindifferentbinarycontenttypes,oneofwhichisanMMSnotificationtype.WhenthisMMSnotificationmessageisreceived,thephoneroutesittotheMMSclientforprocessing.

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 47

AboutWAPPushWAPPushplaysakeyroleintheMMSdeliveryprocess.Bydefault,theNowSMSMMSCexpectstobeabletosendMMSNotificationviaitsbuilt-inWAPPushProxyGateway(PPG),whichdeliversMMSNotificationsusingWAPPushoverSMS.ForGSM/UMTS/WCDMAenvironments,NowSMSautomaticallygeneratesUDH(userdataheader)intheSMSmessages.ForCDMA/CDMA2000environments,theNowSMSSMPPimplementationsupportsWDPAdaptationsothatMMSnotificationmessagescanbedeliveredviaSMSusingtheWAPteleservice.Forotherenvironments,NowSMScanusethePushAccessProtocol(PAP)tosendMMSnotificationmessagesviaaseparateWAPPushProxyGateway(PPG).

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 48

MM1UserAuthenticationIssuesTheMM1ProtocoldoesnotdefinehowtheMMSCidentifiesandauthenticatesthesubscriberwhentheMMSclientonamobiledevicesendsorreceivesamessage.TheMMSCisexpectedtointerfacewithotheroperatornetworkcomponentstoidentifyandauthenticatethesubscriber.

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 49

HTTPHeaderEnrichmentMMSclientssendHTTPPOSTrequeststotheMMSCoverTCP/IP.AcceptedindustrypracticeistouseHTTPHeaderEnrichmentservicestoinsertadditionalHTTPheadersintotheserequeststoprovideuseridentificationandauthentication.Forexample,thesubscriberMSISDN,isfrequentlyinsertedintooneofthefollowingheaders:◦ X-MSISDN:

◦ msisdn:◦ X-MDN:◦ X-Device-MIN:

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 50

WhoperformsHTTPHeaderEnrichment?ThefirstIP-basedmobileoperatorserviceswerebasedonWAPtechnologies,whereaWAPGatewayactedasaproxyforallIP-basedservices.TheseWAPgatewaysoftenperformedHTTPHeaderEnrichmenttoallowIP-basedservicestoidentifysubscribers.TheusualprocessistoconfiguretheGGSNtosendRADIUSAccountingmessagestotheWAPGWeverytimeasubscriberconnectstoordisconnectsfromtheGGSN.TheWAPGWmaintainsatableofactiveconnectionsthatallowittomapIPaddressestodevicephonenumberforHTTPHeaderEnrichment.

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 51

HTTPHeaderEnrichmentwithoutaGWAsmobileusagehasgrown,gatewaysandproxieshavebecomenetworkbottlenecks.TheICAPprotocolallowsanHTTPbasedservicetorequestHTTPHeaderEnrichmentondemand,withoutforcingclientstointerfacethroughagatewayorproxy.TheNowSMSMMSCcanbeconfiguredtorequestHTTPHHEviaICAP,andNowWAP canbeconfiguredtoprovidethisICAPbasedservice.

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 52

MM4– MMSCInterconnectTheMM4protocolisusedtointerconnectMMSCs.• SMTPbasedprotocoldefinedby3GPPTS23.040• AdditionalX-MMSSMTPheadersaredefined• DifferentPDUsaremappedtoSMTPheadersWhenasubscribersendsanMMSmessagetoasubscriberonadifferentnetwork,theMM4protocolisusedtotransferthemessagebetweenMMSCs

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 53

MM4– MMSCInterconnectMM4connectionscanexistdirectlybetweenmobileoperators.FrequentlyasingleMM4connectiontoaninterconnectproviderisused.MM4isnotusedforroaming,onlyforinterconnect.

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 54

MM4MessageEncodingTheMMSEnvelopecontainsRoutingAttributes(senderandrecipient)foraninstanceofanin-transitmessage.InMM4,thisenvelopeisrepresentedbythestandardSMTPMAILFROM:andRCPTTO:commands.

TheMMSHeadersarerepresentedasSMTPHeaders,withMMSspecificheadersprefixedbyX-MMS- (e.g.,X-MMS-Message-Type:).Theseheadersaredefinedin3GPPTS23.140.

TheMMSContent isencodedasastandardSMTPMIMEmultipartobject.Notethatevenifthereisonlyasinglecontentobject(e.g.,imageonly),manyimplementationsstillexpectaMIMEmultipartwithonly1part.

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 55

SampleMM4TransactionSMTPAUTHisoptionalandrarelyused

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 56

SampleMM4Message

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 57

MM4PDUKindsTherearetwokindsofMM4PDUs:1. Request:DenotedasMM4_type-name.REQ2. Response:DenotedasMM4_type-name.RES

(OftenreferredtoasACKsoracknowledgments)

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 58

MM4PDUTransmissionMM4PDUsaresentusingSMTP.BecausetheSMTPprotocolisuni-directionalandcontainslimitedstatusreportcapability,requestsandtheirassociatedresponsecanneverbetransmittedoverthesameconnection,WhenanMMSChasarequesttotransmittoanotherMMSCoverMM4,itinitiatesanSMTPconnectiontothatMMSCtotransfertherequestPDU.ThereceivingMMSCmusttheninitiateanSMTPconnectionbacktotherequestingMMSCtotransfertheresponsePDU.

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 59

MM4PDUsTransaction PDUTypeName

SendMessage MM4_forward.REQ

MM4_forward.RES

DeliveryReport MM4_delivery_report.REQ

MM4_delivery_report.RES

ReadReport MM4_read_reply_report.REQ

MM4_read_reply_report.RES

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 60

MM4Transaction:SimplifiedStep1

StandardMM1MMSMOLogicFlow

MM1m-send.req fromsendingclienttotheiroperatorMMSC

MM1m-send.conf confirmsMMSCacceptanceofmessage

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 61

MobileNetworkA

MMSCNetworkA

Receiver

Sender

MobileNetworkB

MMSCNetworkB

MM1:m-send.req /m-send.conf1

MM4Transaction:SimplifiedStep2

MMSCinitiatesMM4connectiontootheroperatorMMSCandusesMM4_forward.REQtransactiontotransfermessage.

OtherMMSCinitiatesMM4connectionbacktooriginatorMMSCandusesMM4_forward.REStransactiontoconfirmMMSCacceptanceofmessage

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 62

MobileNetworkA

MMSCNetworkA

Receiver

Sender

MobileNetworkB

MMSCNetworkB

MM1:m-send.req /m-send.conf

MM4:MM4_forward.REQMM4_forward.RES

1

2

MM4Transaction:SimplifiedStep3

StandardMM1MMSMTLogicFlow

ReceiverMMSCpostsMM1m-notification.ind toreceivingdeviceoverWAPPush

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 63

MobileNetworkA

MMSCNetworkA

Receiver

Sender

MobileNetworkB

MMSCNetworkB

MM1:m-send.req /m-send.conf

MM4:MM4_forward.REQMM4_forward.RES

MM1:m-notification.ind

1

23

MM4Transaction:SimplifiedTherecipientphoneperformsanHTTP(orWSP)GETtoretrievetheMMSmessagecontentURLfromtheMMSC.

TheHTTPresponseistheMMSmessageinanm-retrieve.conf PDU.

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 64

MobileNetworkA

MMSCNetworkA

Receiver

Sender

MobileNetworkB

MMSCNetworkB

MM1:m-send.req /m-send.conf

MM4:MM4_forward.REQMM4_forward.RES

MM1:m-notification.ind

1

23

HTTPGET/MM1:m-retrieve.conf 4

MM4Transaction:SimplifiedAfterMMSdelivery,ifadeliveryreportwasrequested:

ReceiverMMSCinitiatesMM4connectiontooriginatorMMSCandissuesMM4_delivery_report.REQ.

OriginatorMMSCinitiatesMM4connectionbacktoreceiverMMSCandusesMM4_delivery_report.REStransactiontoconfirmMMSCacceptanceofdeliveryreport.

MM1deliveryreportispushedtosender.

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 65

MobileNetworkA

MMSCNetworkA

Receiver

Sender

MobileNetworkB

MMSCNetworkB

MM4:MM4_delivery_report.REQMM4_delivery_report.RES

5

HTTPGET/MM1:m-retrieve.conf 4

MM1:m-delivery.ind6

MM4Transaction:SimplifiedAfterMMSisread,ifareadreportwasrequestedandreceiverallowsreadreports:ReceiverpostsanMM1m-read-rec.ind totheirMMSCReceiverMMSCinitiatesMM4connectiontooriginatorMMSCandissuesMM4_read_reply_report.REQ.OriginatorMMSCinitiatesMM4connectionbacktoreceiverMMSCandusesMM4_read_reply_report.REStransactiontoconfirmMMSCacceptanceofdeliveryreport.MM1readreport(m-read-orig.ind)ƒs ispushedtosender.

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 66

MobileNetworkA

MMSCNetworkA

Receiver

Sender

MobileNetworkB

MMSCNetworkB

MM4:MM4_read_reply_report.REQMM4_read_reply_report.RES

8

MM1:m-read-rec.ind 7

MM1:m-read-orig.ind9

MM7– ValueAddedServiceProviders• InterfacebetweenValueAddedServiceProvider(VASP)applicationsandMMSC.

• SOAP/XML/HTTPPOSTbasedprotocoldefinedby3GPPTS23.040• MMSheadersencodedasXMLdocument• MMScontentencodedasMIMEmultipartobject• Bi-directionalHTTPPOST– MMSCandVASPcanbothinitiateconnections

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 67

MM7VariationsandInteroperabilityEarlyversionsofthe3GPPTS23.140specificationdefinedMM7onlyasaconceptualprotocol.ThisleadseveralvendorstodefinetheirownMM7protocols(Ericsson,LogicaCMGandNokia).DifferentversionsoftheMM7specificationhavedefinedmorethan10differentXMLschemaswithsomesignificantdifferencesandincompatibilities.Themostsignificantproblemsarerelatedtointernationalnumberencodingandsenderaddressformats.

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 68

SOAP=SimpleObjectAccessProtocolSOAPisalightweightprotocolfortheexchangeofinformationindistributedenvironments.SOAPtransactionsarerepresentedusingXML.ASOAPtransactioncontainsaSOAPheader,SOAPbodyandanoptionalSOAPattachment.MMSheadersareencodedintheSOAPheaderandSOAPbody.MMScontentisplacedintheSOAPattachmentasaMIMEmultipart.

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 69

SOAPMIMETypesWhenaSOAPtransactioncontainsonlyaSOAPheaderandbody(noMMScontentobjects),suchasadeliveryorreadreport,theMIMEtypetext/xmlisused.WhenaSOAPtransactioncontainsaSOAPattachment(oneormoreMMScontentobjects),theMIMEtypemultipart/relatedisused.Thismultipartwillalwaysconsistofexactlytwoparts,eveniftheMMSmessagecontainsmorethanonecontentobject.Onepartisthetext/xmlSOAPheaderandbody.TheotherpartisamultipartobjectcontainingtheMMScontentobjects.Thiscanbeconfusingasonemultipartobjectisnestedinsideanother.

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 70

SampleMM7MessageThefirstobjectintheoutermultipartobjectistheSOAPheaderandbody,whichisanXMLdocumentcontainingMMSheaders

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 71

SampleMM7Message(continued)ThesecondobjectintheoutermultipartobjectistheSOAPattachment,whichcontainstheMMScontentobjects.Thisisamultipartobjectencodedinsideanothermultipartobject.

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 72

MM7PDUKindsTherearetwokindsofMM7PDUs:1. Request:DenotedasMM7_type-name.REQ2. Response:DenotedasMM7_type-name.RES

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 73

MM7PDUTransmissionMM7PDUsaresentusingHTTPPOST.ThepayloadoftheHTTPrequestcontainstheMM7Request.ThepayloadoftheHTTPresponsecontainstheMM7Response.

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 74

MM7PDUsTransaction Flow ofTransaction PDUTypeName

SubmitMessage POST:VASPtoMMSC MM7_submit.REQ

ResponsefromMMSC MM7_submit.RES

DeliverMessage POST:MMSCtoVASP MM7_deliver.REQ

ResponsefromVASP MM7_deliver.RES

DeliveryReport POST:MMSCtoVASP MM7_delivery_report.REQ

ResponsefromVASP MM7_delivery_report.RES

ReadReport POST:MMSCtoVASP MM7_read_reply_report.REQ

ResponsefromVASP MM7_read_reply_report.RES

MMSCError ResponsefromMMSC MM7_RS_error.RES

VASPError ResponsefromVASP MM7_VASP_error.RES

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 75

MM9– Billing&ChargingInterface• Billinggenerallyreferstopost-paidCDRgeneration• Charginggenerallyreferstorealtimechargingrequiredbypre-paid• NowSMS MMSCsupportsHTTPbasedaccountingcallbackswhichsomecustomersusetogenerateCDRs(orcanbeusedforrealtimecharging)

• NowSMS MMSCsupportsDIAMETERCreditControlorBaseAccountingforrealtimecharging.

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 76

DIAMETER/MM9NowSMS MMSCimplementsDiameterCreditControlforchargingbaseduponthefollowingspecifications:◦ [DIAMBASE]– RFC3588– DiameterBaseProtocol◦ [DIAMCCA]– RFC4006– DiameterCreditControlApplication◦ [3GPPDIAM]– 3GPPTS32.299– 3GPPDiameterChargingApplications◦ [SCAPv2]– EricssonCCNSCAPv2

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 77

DIAMETER/MM9(continued)[3GPPDIAM]definesastandardformatforimplementingMMSchargingoverDiameter,knownasMM9intheMMSprotocolspecifications.WhiletheMMSCpreferenceistouseMM9,itisalsopossibletoconfiguretheMMSCtousegenericchargingprimitivesdefinedin[DIAMCCA]inordertofacilitateinteroperabilitywithawiderbaseofchargingsystems.Optionally,DiameterextensionsdefinedinEricsson’s[SCAPv2]protocolcanbeenabled.

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 78

DIAMETER/MM9(continued)TheMMSCDiameterMM9implementationishighlyconfigurable,withconfigurationsettingsthatallowtheDiameterrequeststobetunedtomeettherequirementsofdifferentchargingsystems.ThecoreDiameterchargingrequestsuseCredit-Control-Requestasdefinedin[DIAMCCA].SeveralextensionsetsaredefinedthatprovideadditionalDiameterparameterstobeincludeinthechargingrequest.Formaximumflexibility,XMLtemplatefilesareusedtodefinetheunderlyingDiameterrequests,allowingforcustomparameterstobeaddedordeletedasrequired.Asanexampleofthisflexibility,templateshavebeencreatedtosupportEricssonSCAPv1,whichusesDiameterBaseAccountinginsteadofDiameterCreditControl.

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 79

DIAMETER/MM9(continued)Moreonthewebsiteathttp://www.nowsms.com/mmsc-diameter-mm9-implementation

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 80

MMSCAccountingCallbacksMMSCaccountingcallbacksprovideaninterfacebetweentheNowSMSMMSCandexternalbillingandchargingsystems.TheseMMSCaccountingcallbacksareHTTP-based.Whenaccountingcallbacksareenabled,theMMSCwillissueHTTPrequeststoacustomersuppliedURLinordertointerfacewiththecustomerbillingandchargingsystems.ToenableMMSCaccountingcallbacks,itisnecessarytomanuallyedittheMMSC.INIconfigurationfile,anddefinethecallbackURLunderthe[MMSC]sectionheader,usingthefollowingconfigurationparameter:MMSAccountingURL=http://server/path

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 81

MMSCAccountingCallbacks(continued)WhenevertheMMSCprocessesanMMSmessage,itissuesanaccountingcallbackbyissuinganHTTPtransactiontothecallbackURL.VariablesdescribingtheMMStransactionareappendedtotheMMSAccoutingURL asHTTPGETCGI-stylevariables,withstandardURLescapingappliedforencodingreservedcharacters.Forexample:http://server/path?PreAuth=Yes&Type=MMSSend&From=%2B449999999999&To=%2B447777777777&MsgCount=1

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 82

MMSCAccountingCallbacks(continued)Mostoftheaccountingcallbacksareinformationalonly,andexisttorecordcharginginformationaftertheMMSChasprocessedatransaction.However,therearealsopre-authorisation callbackswhichoccurbeforetheMMSCprocessesatransaction.Thesepre-authorisationcallbacksexisttoallowthecustomerbillingsystemtodecidewhetherornotthetransactionshouldbeallowed.Inthisscenario,thecallbackcouldcheckavailablecreditandrejectanMMSmessagetransactionbeforeitisacceptedbytheMMSC.

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 83

MMSSend PreAuth CallbackThiscallbackisexecutedwhenanMMSsubscriber,ValueAddedServiceProvider(VASP)orMMSCinterconnectpartner,isrequestingtosendamessage.Thisisa“pre-authorisation”request,anddoesnotmeanthatthemessagewillactuallybeacceptedbyNowSMS fordelivery.IfNowSMS cannotsuccessfullyconnecttotheaccountingURL,ortheURLreturnsaresponseotherthanastandard“HTTP200OK”response,theuserrequesttosendamessagewillbeblocked.A“PreAuth”requesttosendamessagewillalsobeblockediftheHTTPresponsecontentincludesthetext“PreAuth=Deny”.

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 84

MMSSend PreAuth Callback (continued)ThefollowingparametervariablesmaybesetfortheMMSSend pre-authorisation request:

PreAuth=Yes

Thepresenceofthisparameterindicatesthatthiscallbackisapre-authorisation request.

Type=MMSSend

ThetransactiontypeisMMSSend,indicatingthatarequestisbeingmadetosendanMMSmessage.

From=SenderPhoneNumber

Thisparametercontainsthephonenumberofthesubscriberthatissendingthemessage.NotethatURLescapingrulesrequirethe“+”symboltobeencodedas“%2B”.

To=RecipientPhoneNumber (maybeacommadelimitedlistwithmultiplerecipients)

Thisparametercontainsoneormorerecipientphonenumbers.Ifmorethanonephonenumberispresent,thiswillbeacommadelimitedlistofrecipientphonenumbers.(NotethatURLescapingrulesrequirethe“,”symboltobeencodedas“%2C”.)

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 85

MMSSend PreAuth Callback(continued)VASPIN=MmscVaspName

ThisparameterispresentifthemessageisarrivingfromaValueAddedServiceProviderorMMSCinterconnectpartner.Thevalueofthisparameterreferstotheaccountnameasdefinedinthe“MMSCVASP”list.

NotethatsomeversionsofNowSMS mayprefacetheMmscVaspName withthetext“VASP:”.

VASP=MmscOutboundRoute (maybeacommadelimitedlistifmultiplerecipients)

ThisparameterispresentiftheMMSChasdeterminedthatthemessagemustberoutedviaanexternalroutefordelivery.Thevalueofthisparameterreferstotheaccountnameasdefinedinthe“MMSCRouting”list.

Ifthemessageisbeingsenttomultiplerecipients,thisfieldmaycontainacommadelimitedlistofrouteswitharoutelistedforeachrecipient.Ifthereisamixoflocalandremoterecipients,localrecipientswillhaveablankentrywithinthecommadelimitedlistofroutes.

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 86

MMSSend PreAuth Callback(continued)VASPIN=MmscVaspName

ThisparameterispresentifthemessageisarrivingfromaValueAddedServiceProviderorMMSCinterconnectpartner.Thevalueofthisparameterreferstotheaccountnameasdefinedinthe“MMSCVASP”list.

NotethatsomeversionsofNowSMS mayprefacetheMmscVaspName withthetext“VASP:”.

VASP=MmscOutboundRoute (maybeacommadelimitedlistifmultiplerecipients)

ThisparameterispresentiftheMMSChasdeterminedthatthemessagemustberoutedviaanexternalroutefordelivery.Thevalueofthisparameterreferstotheaccountnameasdefinedinthe“MMSCRouting”list.

Ifthemessageisbeingsenttomultiplerecipients,thisfieldmaycontainacommadelimitedlistofrouteswitharoutelistedforeachrecipient.Ifthereisamixoflocalandremoterecipients,localrecipientswillhaveablankentrywithinthecommadelimitedlistofroutes.

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 87

MMSSend PreAuth Callback(continued)MsgCount=####

ThisparameterspecifiesthenumberofrecipientsforthisMMSmessagetransaction.

(NotethattheMMSSend PreAuth callbackisissuedonlyonceifanMMSmessageisbeingsenttomultiplerecipients.TheMMSSend Chargingcallback,whichrecordsbillingandcharginginformationaftertheMMSChasacceptedthemessage,issuesaseparatecallbackforeachrecipient.)

Size=####

ThisparameterspecifiesthesizeoftheMMSmessageinbytes.

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 88

MMSSend PreAuth Callback(continued)Dependingonsystemconfiguration,additionalparameterssuchasSGSNAddress,SGSNMCCMNC(usedtodetectroamingsubscribers)andIMSImayalsobeavailabletothecallback. Forinformationontheseparameters,see DetectingRoamingSubscribers athttp://www.nowsms.com/operator-mmsc-accounting-detecting-roaming-subscribers

Additionalcallbackdocumentationcanbefoundathttp://www.nowsms.com/doc/advanced-configuration-settings/mms-accounting-callbacks

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 89

MM5/MNP/MMSRoutingTheNowSMS MMSCimplementsadynamicMMSroutingcallbackfacilityforenvironmentswheremoreadvancedMMSroutingcapabilitiesarerequired.

ThestandardNowSMS MMSCconfigurationallowsforMMSroutingbaseduponphonenumberprefixes.However,inMNPenvironments,itmaybenecessarytoqueryHLRoradatabasetodeterminehowtoproperlyrouteanMMSmessage.

WhentheMMSRoutingcallbackisenabledinNowSMS,eachtimetheMMSCreceivesamessage,itwillconnecttoaconfigurablecustomer-providedroutingcallbackURL,passingthemessagerecipienttotheURL.ThecustomerprovidedURLcanreturnaresponsetoindicatethatthemessageshouldberoutedviaaspecificroutedefinedinthe“MMSCRouting”pageoftheNowSMS configurationdialog,ortheresponsecanindicatethatthemessageshouldberejected.

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 90

MM5/MNP/MMSRouting(continued)TheMMSroutingcallbackURLisdefinedintheMMSC.INIfile,underthe[MMSC]sectionheader:

MMSRoutingURL=http://server.name/path

ThevariableslistedbelowwillbeaddedtotheMMSRoutingURL whentheURLisexecutedbythegatewayasHTTPGET(CGI-style)parameters.

Type=MMSRouteCheck (Note:Future“Type”valuesmaybeaddedinthefuture.)

From=SenderPhoneNumber ore-mailaddressVASPIN=VASPname (presentifthemessagewasreceivedviaaspecificaccountdefinedinthe“MMSCVASP”list)

To=RecipientPhoneNumber

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 91

MM5/MNP/MMSRouting(continued)Example:

http://server.name/path?Type=MMSRouteCheck&From=%2B1234567&VASPIN=test&To=%2B9999999999

(Note:The“%2B”intheaboveexamplesisstandardURLescapingforthe“+”character.)

Tospecifywhichoftheroutesdefinedinthe“MMSCRouting”listshouldbeusedtoroutethismessage,theURLmustreturnastandardHTTP200OKresponse,andincludethefollowingtextsomewhereintheresponse:

Route=xxxxxxx

“xxxxxxx”shouldmatchan“AccountName”definedinthe“MMSCRouting”list,oritcanusethepredefinedvaluesof“Direct”(signifyingMMSCDirectDelivery),“WAPPush”(signifying“ConverttoMultimediaWAPPush”),or“BlockMessage”(signifyingtheMMSCshouldrejectthemessage).

NOWSMSMMSCTRAINING:MMSPROTOCOLOVERVIEW– ©2015NOWWIRELESS 92