mm4 mmsc interconnection protocol - nowsms · mm4 –mmsc interconnect mm4 connections can exist...
TRANSCRIPT
NowSMSMMSCTraining:MMSCInterconnectionProtocol(MM4)NOVEMBER2015©2015 NOW W IRE L ES S L IM I T ED
NOWSMSMMSCTRAINING:MMSCINTERCONNECTION(MM4)– ©2015BYNOWWIRELESS 1
MM4– MMSCInterconnectTheMM4protocolisusedtointerconnectMMSCs.• SMTPbasedprotocoldefinedby3GPPTS23.040• AdditionalX-MMSSMTPheadersaredefined• DifferentPDUsaremappedtoSMTPheadersWhenasubscribersendsanMMSmessagetoasubscriberonadifferentnetwork,theMM4protocolisusedtotransferthemessagebetweenMMSCs
NOWSMSMMSCTRAINING:MMSCINTERCONNECTION(MM4)– ©2015BYNOWWIRELESS 2
MM4– MMSCInterconnectMM4connectionscanexistdirectlybetweenmobileoperators.FrequentlyasingleMM4connectiontoaninterconnectproviderisused.MM4isnotusedforroaming,onlyforinterconnect.
NOWSMSMMSCTRAINING:MMSCINTERCONNECTION(MM4)– ©2015BYNOWWIRELESS 3
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:MMSCINTERCONNECTION(MM4)– ©2015BYNOWWIRELESS 4
SampleMM4TransactionSMTPAUTHisoptionalandrarelyused
NOWSMSMMSCTRAINING:MMSCINTERCONNECTION(MM4)– ©2015BYNOWWIRELESS 5
MM4inNowSMSMMSCInNowSMS,todefineanMM4interconnection,itisnecessarytodefinetwocomponents.Theoutbound connectiontotheotherMMSCisdefinedunder“MMSCRouting”.Theinbound connectionfromtheotherMMSCisdefinedunder“MMSCVASP”.
NOWSMSMMSCTRAINING:MMSCINTERCONNECTION(MM4)– ©2015BYNOWWIRELESS 7
Outbound– MMSCRoutingAccountName isanamethatisusedtoidentifytheconnectionwithinNowSMS only.
AccountDescription isadescriptionthatisusedtoidentifytheconnectionwithinNowSMS only.
DefaultSenderAddress shouldbeleftblank.
AllowSenderAddressOverride shouldbechecked.
NOWSMSMMSCTRAINING:MMSCINTERCONNECTION(MM4)– ©2015BYNOWWIRELESS 8
Outbound– MMSCRouting“RouteMessagestothisaccountforrecipientphonenumbers” shouldhavealistofphonenumberpatternstoberoutedtothisotherMMSC…e.g.,+234*,+44*Alternatively,insteadofdefiningnumberpatterns,itispossibletodefinethisroutingasthe“DefaultRoute”onthe“MMSCRouting”page.Thismeansthattheroutewillbeusedasadefault,unlessabettermatchisfoundinanother“MMSCRouting”definition.(Forexample,ifanother“MMSCRouting”wasdefinedasthe“DefaultRoute”,butthisroutehadthenumberpatterns+234*,+44*…amessageto+447777777777wouldgothisrouteinsteadofthe“DefaultRoute”.)Orleaveblankanduseroutingcallbackstocontrolrouting.
NOWSMSMMSCTRAINING:MMSCINTERCONNECTION(MM4)– ©2015BYNOWWIRELESS 9
Outbound– MMSCRouting“RoutemessagestoVASPvia” shouldbesetto“MM4”.“ServerAddress” istheDNShostnameorIPaddressfortheexternalMM4connection.Itcanhavethefollowingformat:host.name,ip.address,host.name:####orip.address:####….the####isaportnumber,ifaportnumberisnotspecified,25(thestandardSMTPport)isassumed.“LoginName” and“Password”specifyausernameandpasswordtobeusedforSMTPbasicauthentication.MostMMSCsdonotuseanytypeofusernameauthentication,andtheyauthenticatebaseduponIPaddressesonly.Inthatcase,thesefieldsshouldbeleftblank.
NOWSMSMMSCTRAINING:MMSCINTERCONNECTION(MM4)– ©2015BYNOWWIRELESS 10
Outbound– MMSCRouting“RoutemessagestoVASPvia” shouldbesetto“MM4”.“ServerAddress” istheDNShostnameorIPaddressfortheexternalMM4connection.Itcanhavethefollowingformat:host.name,ip.address,host.name:####orip.address:####….the####isaportnumber,ifaportnumberisnotspecified,25(thestandardSMTPport)isassumed.“LoginName” and“Password”specifyausernameandpasswordtobeusedforSMTPbasicauthentication.MostMMSCsdonotuseanytypeofusernameauthentication,andtheyauthenticatebaseduponIPaddressesonly.Inthatcase,thesefieldsshouldbeleftblank.
NOWSMSMMSCTRAINING:MMSCINTERCONNECTION(MM4)– ©2015BYNOWWIRELESS 11
Outbound– MMSCRouting“E-MailDomain” referstothee-maildomainnameforMMSmessagesthatisusedbytheothersystem(e.g.,[email protected]).
“MessageFormat” isnormallysettoMM4,whichmeansthatstandardMM4headersareusedinthemessages.Forspecialcircumstances,theSMTPsettingwillavoidtheuseofMM4specificheaders.
NOWSMSMMSCTRAINING:MMSCINTERCONNECTION(MM4)– ©2015BYNOWWIRELESS 12
Outbound– MMSCRouting“RequestMM4Ack” canbesetto“Yes”or“No”,dependingontherequirementsofthepartner.Itisusuallybesttostartwith“Yes”,butsomepartnersmayrejectmessagesunlessthisparameterissetto“No”.
“3GPPMMSVersion” shouldonlybechangedifaspecificversionisrequiredbythepartner..
NOWSMSMMSCTRAINING:MMSCINTERCONNECTION(MM4)– ©2015BYNOWWIRELESS 13
Outbound– MMSCRouting“MaxConnections” canbesettoallowmultipleconcurrentconnectionstothepartnerforhigherthroughput.Inmostsituations,thisfieldcanbeleftblank,whereitdefaultsto1.
Oncethis“MMSCRouting”definitionisinplace,anyMMSmessagesthatareaddressedtoaphonenumberthatmatchesoneofthepatternsdefinedin“RouteMessagestothisaccountforrecipientphonenumbers”willberoutedviathisconnection.
NOWSMSMMSCTRAINING:MMSCINTERCONNECTION(MM4)– ©2015BYNOWWIRELESS 14
Inbound– MMSCVASPThenextstepistodefineaninboundconnectiontoallowyourMMSCtoacceptmessagesfromtheotherMMSC.Thisisdonebydefiningan“MMSCVASP”account.
NOWSMSMMSCTRAINING:MMSCINTERCONNECTION(MM4)– ©2015BYNOWWIRELESS 15
Inbound– MMSCVASPThe“AccountName” and“Password” fieldsareusedtodefineauthenticationparametersthatallowthepartnertosubmitmessagestoyourMMSC.MostMMSCsdonotsupportuser-basedauthentication.Inthiscase,youneedtodefinetheexternalIPaddressoftheotherMMSCasthe“AccountName”andleavethe“Password”fieldblank.IftheMMSChasmultipleIPaddressesfromwhichitwillconnecttoyou,thenmultiple“MMSCVASP”definitionsmustbedefined.
“AccountDescription” isadescriptionthatisusedonlywithinNowSMS itself.
NOWSMSMMSCTRAINING:MMSCINTERCONNECTION(MM4)– ©2015BYNOWWIRELESS 16
Inbound– MMSCVASP“IPAddressRestrictions” isacommadelimitedlistofIPaddressesfromwhichthepartnerisallowedtoconnect.(Thissettingissomewhatredundantifthe“AccountName”isanIPaddress.)
“AcceptConnectionsvia” shouldbesettoMM4foranMM4connection.
NOWSMSMMSCTRAINING:MMSCINTERCONNECTION(MM4)– ©2015BYNOWWIRELESS 17
Inbound– MMSCVASP“VASPSenderAddress” shouldbeleftblank.
“AllowSenderAddressOverride” shouldbechecked.
“MM4Ack Routing” shouldbesettothenameoftheoutbound“MMSCRouting”definitionthatyoudefinedforroutingmessagestotheotherMMSC.(Thisensuresthatacknowledgmentsaresentbacktothecorrectserver.)
NOWSMSMMSCTRAINING:MMSCINTERCONNECTION(MM4)– ©2015BYNOWWIRELESS 18
Inbound– MMSCVASP“3GPPMMSVersion” shouldbechangedonlyifaspecificversionisrequiredbyyourpartner.
“MM7Schema” isnotusedforMM4connections.
“RemoveWhiteSpacefromXML” isnotusedforMM4connections.
NOWSMSMMSCTRAINING:MMSCINTERCONNECTION(MM4)– ©2015BYNOWWIRELESS 19
Inbound– MMSCVASP“MMSCRoutingforReceivedMessages” shouldbesetto“StandardMMSDelivery”.
CreditbalancesandmessagesendinglimitsarenormallynotusedforMM4interconnectionpartners.
NOWSMSMMSCTRAINING:MMSCINTERCONNECTION(MM4)– ©2015BYNOWWIRELESS 20
MM4PDUKindsTherearetwokindsofMM4PDUs:1. Request:DenotedasMM4_type-name.REQ2. Response:DenotedasMM4_type-name.RES
(OftenreferredtoasACKsoracknowledgments)
NOWSMSMMSCTRAINING:MMSCINTERCONNECTION(MM4)– ©2015BYNOWWIRELESS 21
MMSAccountingCallbacksWhenexternalMMSCRoutesexist,suchastheseMM4connections,thereareadditionalparametersintheMMSAccountingCallbacks,beyondtheparametersdefinedinhttp://www.nowsms.com/support/bulletins/tb-nowsms-001.htm.ThefollowingadditionalparametersmaybepresentinboththeMMSSend PreAuth CallbackandtheMMSSend AccountingCallback:VASPIN=xxxxxxx – Thisparameterispresentifthemessagewasreceivedviaaninboundconnectiondefinedinthe“MMSCVASP”list.VASP=xxxxxxx – ThisparameterispresentiftheNowSMS MMSCisroutingthemessagetoanoutboundconnectiondefinedinthe“MMSCRouting”list.
NOWSMSMMSCTRAINING:MMSCINTERCONNECTION(MM4)– ©2015BYNOWWIRELESS 22
MMSRoutingCallbacksSometimesthe“RouteMessagestothisaccountforrecipientphonenumbers”parametersettinginan“MMSCRouting”definitionisnotflexibleenoughforrealworldenvironmentswithMobileNumberPortability(MNP).TheNowSMS MMSCimplementsadynamicMMSroutingcallbackfacilityforenvironmentswheremoreadvancedMMSroutingcapabilitiesarerequired.ThestandardNowSMS MMSCconfigurationallowsforMMSroutingbaseduponphonenumberprefixes.However,inMNPenvironments,itmaybenecessarytoqueryadatabasetodeterminehowtoproperlyrouteanMMSmessage.DynamicMMSroutingcallbacksalsoallowforMMSroutingcontrolbaseduponwhosubmittedtheMMSmessage.Forexample,itmaybedesirabletoblockMMSsendingtointernationaldestinationsforsomeorallMMSVASPaccounts.Moreinformationontheseroutingcallbackscanbefoundatthefollowinglink:http://www.nowsms.com/tag/mnp
NOWSMSMMSCTRAINING:MMSCINTERCONNECTION(MM4)– ©2015BYNOWWIRELESS 23
MMSRoutingCallbacksTheNowSMS MMSCimplementsadynamicMMSroutingcallbackfacilityforenvironmentswheremoreadvancedMMSroutingcapabilitiesarerequired.
ThestandardNowSMS MMSCconfigurationallowsforMMSroutingbaseduponphonenumberprefixes.However,inMNPenvironments,itmaybenecessarytoqueryHLRoradatabasetodeterminehowtoproperlyrouteanMMSmessage.
WhentheMMSRoutingcallbackisenabledinNowSMS,eachtimetheMMSCreceivesamessage,itwillconnecttoaconfigurablecustomer-providedroutingcallbackURL,passingthemessagerecipienttotheURL.ThecustomerprovidedURLcanreturnaresponsetoindicatethatthemessageshouldberoutedviaaspecificroutedefinedinthe“MMSCRouting”pageoftheNowSMS configurationdialog,ortheresponsecanindicatethatthemessageshouldberejected.
NOWSMSMMSCTRAINING:MMSCINTERCONNECTION(MM4)– ©2015BYNOWWIRELESS 24
MMSRoutingCallbacks(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:MMSCINTERCONNECTION(MM4)– ©2015BYNOWWIRELESS 25
MMSRoutingCallbacks(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:MMSCINTERCONNECTION(MM4)– ©2015BYNOWWIRELESS 26
MM4PDUTransmissionMM4PDUsaresentusingSMTP.BecausetheSMTPprotocolisuni-directionalandcontainslimitedstatusreportcapability,requestsandtheirassociatedresponsecanneverbetransmittedoverthesameconnection,WhenanMMSChasarequesttotransmittoanotherMMSCoverMM4,itinitiatesanSMTPconnectiontothatMMSCtotransfertherequestPDU.ThereceivingMMSCmusttheninitiateanSMTPconnectionbacktotherequestingMMSCtotransfertheresponsePDU.
NOWSMSMMSCTRAINING:MMSCINTERCONNECTION(MM4)– ©2015BYNOWWIRELESS 27
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:MMSCINTERCONNECTION(MM4)– ©2015BYNOWWIRELESS 28
MM4Transaction:SimplifiedStep1
StandardMM1MMSMOLogicFlow
MM1m-send.req fromsendingclienttotheiroperatorMMSC
Accountingcallbackcheckswhethermessageshouldbeaccepted.
Routingcallbackchecksrecipientrouting.
MM1m-send.conf confirmsMMSCacceptanceofmessage
NOWSMSMMSCTRAINING:MMSCINTERCONNECTION(MM4)– ©2015BYNOWWIRELESS
MobileNetworkA
MMSCNetworkA
Receiver
Sender
MobileNetworkB
MMSCNetworkB
MM1:m-send.req /m-send.conf1
29
MM4Transaction:SimplifiedStep2
MMSCinitiatesMM4connectiontootheroperatorMMSCandusesMM4_forward.REQtransactiontotransfermessage.
OtherMMSCinitiatesMM4connectionbacktooriginatorMMSCandusesMM4_forward.REStransactiontoconfirmMMSCacceptanceofmessage
NOWSMSMMSCTRAINING:MMSCINTERCONNECTION(MM4)– ©2015BYNOWWIRELESS
MobileNetworkA
MMSCNetworkA
Receiver
Sender
MobileNetworkB
MMSCNetworkB
MM1:m-send.req /m-send.conf
MM4:MM4_forward.REQMM4_forward.RES
1
2
30
MM4Transaction:SimplifiedStep3
StandardMM1MMSMTLogicFlow
ReceiverMMSCpostsMM1m-notification.ind toreceivingdeviceoverWAPPush
NOWSMSMMSCTRAINING:MMSCINTERCONNECTION(MM4)– ©2015BYNOWWIRELESS
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
31
MM4Transaction:SimplifiedTherecipientphoneperformsanHTTP(orWSP)GETtoretrievetheMMSmessagecontentURLfromtheMMSC.
TheHTTPresponseistheMMSmessageinanm-retrieve.conf PDU.
NOWSMSMMSCTRAINING:MMSCINTERCONNECTION(MM4)– ©2015BYNOWWIRELESS
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
32
MM4Transaction:SimplifiedAfterMMSdelivery,ifadeliveryreportwasrequested:
ReceiverMMSCinitiatesMM4connectiontooriginatorMMSCandissuesMM4_delivery_report.REQ.
OriginatorMMSCinitiatesMM4connectionbacktoreceiverMMSCandusesMM4_delivery_report.REStransactiontoconfirmMMSCacceptanceofdeliveryreport.
MM1deliveryreportispushedtosender.
NOWSMSMMSCTRAINING:MMSCINTERCONNECTION(MM4)– ©2015BYNOWWIRELESS
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
33
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:MMSCINTERCONNECTION(MM4)– ©2015BYNOWWIRELESS
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
34