Skip to content

MSS Roaming

In Mobile Signature Service (MSS), messages are routed between Mobile Signature Service Providers (MSSPs). Interconnected MSSPs are called a Mesh and routing messages between MSSPs in the Mesh is called MSS roaming.

Roaming_1

The benefit of interconnecting MSSPs is that Application Providers (APs) can reach any Mobile User that’s connected to any of the MSSPs.

ETSI has standardized a protocol for MSSP messaging in ETSI TS 102 207Methics wrote a white paper to explain MSS Roaming and to help in implementing it. Roaming is a pillar which all MSS vendors should implement properly for MSS to work well in large.

Roaming Features

MSS Roaming, when properly implemented, has the following properties:

  1. All messages in a single transaction go through the same route.
  2. Message’s path is recorded.
    • Allows following requests to use the same route.
    • Allows humans to easily monitor the route.
  3. Sender can control message route.
    • Allows reaching services that are available in specific MSSPs.

RoamingHeader

Roaming messages have a SOAP Header named RoaminHeader. The RoamingHeader is a part of both request and response messages.

RoamingHeader contains two element types:

  1. RoamingHeaderEntry: Each MSSP writes a log entry (History).
  2. CommonHeader: Defines which MSSPs the message is routed to (Plan).

The following figure shows how the RoamingHeader is used:

Roaming_3
RoamingHeader usage

Roaming Header Example

<?xml version="1.0" encoding="UTF-8"?>
 <env:Envelope 
 xmlns:env="http://www.w3.org/2003/05/soap-envelope"
 xmlns:msrs="http://uri.etsi.org/TS102207/v1.1.2#"
 xmlns:mss="http://uri.etsi.org/TS102204/v1.1.2#"
 xmlns:fi="http://mss.ficom.fi/TS102204/v1.0.0#">
 <env:Header>
 <msrs:RoamingHeader env:mustUnderstand="true"
                     env:role="http://www.w3.org/2003/05/soap-envelope/role/next">
   <msrs:RoamingHeaderEntry> … </msrs:RoamingHeaderEntry>
   <msrs:RoamingHeaderEntry> … </msrs:RoamingHeaderEntry>
   <msrs:CommonHeader> … </msrs:CommonHeader> 
 </msrs:RoamingHeader>
 </env:Header>
 <env:Body>
 <mss:MSS_Signature xmlns=""> … </mss:MSS_Signature>
 </env:Body>
 </env:Envelope>

RoamingHeaderEntry Example

<msrs:RoamingHeaderEntry MajorVersion="1" MinorVersion="1">
 <msrs:RE_SenderInfo Instant="2015-09-24T09:12:59.625+03:00" RE_TransactionID="AEd2u5" TimeOut="59">
 <msrs:RE_Sender Mesh_Role="http://uri.etsi.org/TS102207/v1.1.2#role_AcquiringEntity">
   <msrs:MeshMember>
   <mss:URI>http://mssp.a.com</mss:URI>
   </msrs:MeshMember>
 </msrs:RE_Sender>
 </msrs:RE_SenderInfo>
 <msrs:RE_Receiver Mesh_Role="http://uri.etsi.org/TS102207/v1.1.2#role_RoutingEntity">
   <msrs:MeshMember>
     <mss:URI>http://mssp.b.com</mss:URI>
   </msrs:MeshMember>
 </msrs:RE_Receiver>
 </msrs:RoamingHeaderEntry>

CommonHeader Example

<msrs:CommonHeader AE_TransactionID="_11629">
<msrs:MeshStartPoint Mesh_Role="http://uri.etsi.org/TS102207/v1.1.2#role_AcquiringEntity">
  <msrs:MeshMember>
    <mss:URI>http://mssp.a.com</mss:URI>
  </msrs:MeshMember>
</msrs:MeshStartPoint>
<msrs:MeshEndPoint Mesh_Role="http://uri.etsi.org/TS102207/v1.1.2#role_HomeMSSP">
  <msrs:MeshMember>
    <mss:URI>http://mssp.c.com</mss:URI>
  </msrs:MeshMember>
</msrs:MeshEndPoint>
<msrs:MeshIntermediaryNode Mesh_Role="http://uri.etsi.org/TS102207/v1.1.2#role_RoutingEntity">
  <msrs:MeshMember>
    <mss:URI>http://mssp.b.com</mss:URI>
  </msrs:MeshMember>
</msrs:MeshIntermediaryNode>
<msrs:CurrentMeshTarget Mesh_Role="http://uri.etsi.org/TS102207/v1.1.2#role_RoutingEntity">
  <msrs:MeshMember>
    <mss:URI>http://mssp.b.com</mss:URI>
  </msrs:MeshMember>
</msrs:CurrentMeshTarget>
</msrs:CommonHeader>

For further reading, check out Methics’ white paper.