mm4 mmsc interconnection protocol - nowsms · mm4 –mmsc interconnect mm4 connections can exist...

34
NowSMS MMSC Training: MMSC Interconnection Protocol (MM4) NOVEMBER 2015 ©2015 NOW WIRELESS LIMITED NOWSMS MMSC TRAINING: MMSC INTERCONNECTION (MM4) – © 2015 BY NOW WIRELESS 1

Upload: truongliem

Post on 15-May-2018

235 views

Category:

Documents


1 download

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

SampleMM4Message

NOWSMSMMSCTRAINING:MMSCINTERCONNECTION(MM4)– ©2015BYNOWWIRELESS 6

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