SMSC example - Mobile to Mobile, retry delivery

The mobile user using SIP want to send a message to another mobile, the message is successfully accepted by the SMSC. A delivery attempted towards a mobile. First SS7 is attempted the HLR (SS7 domain) thinks is in its domain. Then a delivery attempt is tried to the mobile over SS7. This however rejected. Later the SMSC retries the message no the HHS is queried and the message is delivered the mobile (over SIP). Currently no status reports are implemented in the Simple-SMSC model, but you will see that there are already many (millions) permutations. Use the choices on the right to make different diagrams or even different starting points (e.g. App, UCP, CIMD2, SMPP, UE, SIP, SS7 or CORE).

The generated MSG-Flow

UE-MO MOB-IW CORE STORE HLR UE-MT HSS
| | | | | | |
+-UE-uses-SIP
Info for UE-uses-SIP
No link information between act and comp for UE-uses-SIP
| | | | | |
+-send-MO
Info for send-MO
No link information between act and comp for send-MO
| | | | | |
|-MESSAGE+RP-DATA
Info for MESSAGE+RP-DATA
No link information between msg and prot for MESSAGE+RP-DATA
src_protsip
->| | | | | |
| |----submit-sm
Info for submit-sm
No link information between msg and prot for submit-sm
src_protsip
---->| | | | |
| | |-----store-sm
Info for store-sm
No link information between msg and prot for store-sm
src_protsip
----->| | | |
| | | +-msg-stored
Info for msg-stored
No link information between act and comp for msg-stored
| | |
| | |<---store-sm-resp
Info for store-sm-resp
No link information between msg and prot for store-sm-resp
resultok
src_protsip
--| | | |
| |<--submit-sm-resp
Info for submit-sm-resp
No link information between msg and prot for submit-sm-resp
resultok
src_protsip
-| | | | |
|<--202(Accepted)
Info for 202(Accepted)
No link information between msg and prot for 202(Accepted)
resultok
src_protsip
--| | | | | |
+-MO-accepted
Info for MO-accepted
No link information between act and comp for MO-accepted
| | | | | |
| |<----deliver-sm
Info for deliver-sm
No link information between msg and prot for deliver-sm
resultok
src_protsip
dst_prot*
---| | | | |
| |------------------------SRI-SM
Info for SRI-SM
No link information between msg and prot for SRI-SM
resultok
src_protsip
dst_protss7
------------------------>| | |
| |<----------------------SRI-SM(ACK)
Info for SRI-SM(ACK)
No link information between msg and prot for SRI-SM(ACK)
resultok
src_protsip
dst_protss7
---------------------| | |
| |---------------------------MT-FSM
Info for MT-FSM
No link information between msg and prot for MT-FSM
resultok
src_protsip
dst_protss7
-------------------------->| |
| | | | | +-MT-rejected
Info for MT-rejected
No link information between act and comp for MT-rejected
|
| |<------------------------MT-FSM(NACK)
Info for MT-FSM(NACK)
No link information between msg and prot for MT-FSM(NACK)
resultok
src_protsip
dst_protss7
-----------------------| |
| |-deliver-sm-resp
Info for deliver-sm-resp
No link information between msg and prot for deliver-sm-resp
resulttemp_err
src_protsip
dst_protss7
->| | | | |
| | +-msg-failed-retry
Info for msg-failed-retry
No link information between act and comp for msg-failed-retry
| | | |
| | +-msg-(re)try
Info for msg-(re)try
No link information between act and comp for msg-(re)try
| | | |
| | |----retrieve-sm
Info for retrieve-sm
No link information between msg and prot for retrieve-sm
resulttemp_err
src_protsip
dst_protss7
--->| | | |
| | | +-msg-retrieved
Info for msg-retrieved
No link information between act and comp for msg-retrieved
| | |
| | |<-retrieve-sm-resp
Info for retrieve-sm-resp
No link information between msg and prot for retrieve-sm-resp
resultok
src_protsip
dst_protss7
-| | | |
| |<----deliver-sm
Info for deliver-sm
No link information between msg and prot for deliver-sm
resultok
src_protsip
dst_prot*
---| | | | |
| |------------------------------------UDR
Info for UDR
No link information between msg and prot for UDR
resultok
src_protsip
dst_protsip
----------------------------------->|
| |<---------------------------------UDA(ACK)
Info for UDA(ACK)
No link information between msg and prot for UDA(ACK)
resultok
src_protsip
dst_protsip
---------------------------------|
| |----------------------MESSAGE+RP-DATA
Info for MESSAGE+RP-DATA
No link information between msg and prot for MESSAGE+RP-DATA
resultok
src_protsip
dst_protsip
---------------------->| |
| | | | | +-MT-received
Info for MT-received
No link information between act and comp for MT-received
|
| |<--------------------------200(OK)
Info for 200(OK)
No link information between msg and prot for 200(OK)
resultok
src_protsip
dst_protsip
--------------------------| |
| |-deliver-sm-resp
Info for deliver-sm-resp
No link information between msg and prot for deliver-sm-resp
resultok
src_protsip
dst_protsip
->| | | | |
| | +-msg-delivered
Info for msg-delivered
No link information between act and comp for msg-delivered
| | | |
| | |-----delete-sm
Info for delete-sm
No link information between msg and prot for delete-sm
resultok
src_protsip
dst_protsip
---->| | | |
| | | +-msg-deleted
Info for msg-deleted
No link information between act and comp for msg-deleted
| | |
| | +-msg-stop-(re)try
Info for msg-stop-(re)try
action msg-stop-(re)tryIndication to stop retrying.
section Visible actions
component CORERepresents the core of the SMSC.
| | | |

You can and paste the above flow representation in a text file or in your favourite text editor using a monospace font. Ofcourse you will loose the context sensitive output and the links towards additional information.

Decission table

The decission table shows which decissions have been made so far and which to make. The header contains the choice number and the entity making the choice. The choices are shown from left (latest) to right (earlier) which make it handier to follow or adapts. All choices you could have choisen on a specific level are displayed. You can click on the description to make a different choice.

UE-flows : The mobile iniates a messages.

Additional Generated Information

Below is the graphical representaion rendered using PlantUML Try it yourself online

Cannot render UML

You can the following url to refer to the graph. Or copy as to have it embeded in usable HTML code.

Be aware that changes/improvements will not be reflected in the graph.
The plain text, which can be used by some editors, is given below. Use it if you want to make edit in you favorite editor. It does not contain links as they are not supported by some editors. You can copy the text and paste it e.g. into WebSequenceDiagrams, SequenceDiagram or SwimLanes. You can also copy it for and paste it into PlantUML.