<p>Harald Welte <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/9659">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  Harald Welte: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">common/gsup.adoc: document Supplementary Services extension<br><br>A while ago, we have introduced some new message types and IEs,<br>related to TCAP-like transaction management and Supplementary<br>Services. Let's document this extension.<br><br>Change-Id: Ib1331246097db736d98baf1a162574cadca9ee36<br>---<br>M common/chapters/gsup.adoc<br>1 file changed, 95 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/common/chapters/gsup.adoc b/common/chapters/gsup.adoc</span><br><span>index a231f7a..e87d979 100644</span><br><span>--- a/common/chapters/gsup.adoc</span><br><span>+++ b/common/chapters/gsup.adoc</span><br><span>@@ -454,6 +454,56 @@</span><br><span> |01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10</span><br><span> |===</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+==== Process Supplementary Service Request</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Direction: bidirectional</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[options="header",cols="5%,20%,45%,10%,10%,10%"]</span><br><span style="color: hsl(120, 100%, 40%);">+|===</span><br><span style="color: hsl(120, 100%, 40%);">+|IEI|IE|Type|Presence|Format|Length</span><br><span style="color: hsl(120, 100%, 40%);">+|  |Message Type|<<gsup-ie-msgtype>>|M|V|1</span><br><span style="color: hsl(120, 100%, 40%);">+|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10</span><br><span style="color: hsl(120, 100%, 40%);">+|30|Session ID|<<gsup-ie-session-id>>|M|TLV|6</span><br><span style="color: hsl(120, 100%, 40%);">+|31|Session State|<<gsup-ie-session-state>>|M|TLV|3</span><br><span style="color: hsl(120, 100%, 40%);">+|35|Supplementary Service Info|<<gsup-ie-ss-info>>|O|TLV|2-...</span><br><span style="color: hsl(120, 100%, 40%);">+|===</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+This message is used in both directions in case of USSD, because</span><br><span style="color: hsl(120, 100%, 40%);">+it is not known is it request or response without parsing</span><br><span style="color: hsl(120, 100%, 40%);">+the GSM 04.80 payload.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== Process Supplementary Service Error</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Direction: HLR => SGSN / VLR</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[options="header",cols="5%,20%,45%,10%,10%,10%"]</span><br><span style="color: hsl(120, 100%, 40%);">+|===</span><br><span style="color: hsl(120, 100%, 40%);">+|IEI|IE|Type|Presence|Format|Length</span><br><span style="color: hsl(120, 100%, 40%);">+|  |Message Type|<<gsup-ie-msgtype>>|M|V|1</span><br><span style="color: hsl(120, 100%, 40%);">+|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10</span><br><span style="color: hsl(120, 100%, 40%);">+|30|Session ID|<<gsup-ie-session-id>>|M|TLV|6</span><br><span style="color: hsl(120, 100%, 40%);">+|31|Session State|<<gsup-ie-session-state>>|M|TLV|3</span><br><span style="color: hsl(120, 100%, 40%);">+|02|Cause|<<gsup-ie-cause>>|M|TLV|3</span><br><span style="color: hsl(120, 100%, 40%);">+|===</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== Process Supplementary Service Response</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Direction: HLR => SGSN / VLR</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[options="header",cols="5%,20%,45%,10%,10%,10%"]</span><br><span style="color: hsl(120, 100%, 40%);">+|===</span><br><span style="color: hsl(120, 100%, 40%);">+|IEI|IE|Type|Presence|Format|Length</span><br><span style="color: hsl(120, 100%, 40%);">+|  |Message Type|<<gsup-ie-msgtype>>|M|V|1</span><br><span style="color: hsl(120, 100%, 40%);">+|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10</span><br><span style="color: hsl(120, 100%, 40%);">+|30|Session ID|<<gsup-ie-session-id>>|M|TLV|6</span><br><span style="color: hsl(120, 100%, 40%);">+|31|Session State|<<gsup-ie-session-state>>|M|TLV|3</span><br><span style="color: hsl(120, 100%, 40%);">+|35|Supplementary Service Info|<<gsup-ie-ss-info>>|O|TLV|2-...</span><br><span style="color: hsl(120, 100%, 40%);">+|===</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The purpose of this message is not clear yet. Probably, it</span><br><span style="color: hsl(120, 100%, 40%);">+can be used to notify the MSC that a structured supplementary</span><br><span style="color: hsl(120, 100%, 40%);">+service is successfully activated or deactivated, etc.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> === Information Elements</span><br><span> </span><br><span> [[gsup-ie-msgtype]]</span><br><span>@@ -481,6 +531,9 @@</span><br><span> |0x1c|Location Cancellation Request</span><br><span> |0x1d|Location Cancellation Error</span><br><span> |0x1e|Location Cancellation Result</span><br><span style="color: hsl(120, 100%, 40%);">+|0x20|Supplementary Service Request</span><br><span style="color: hsl(120, 100%, 40%);">+|0x21|Supplementary Service Error</span><br><span style="color: hsl(120, 100%, 40%);">+|0x22|Supplementary Service Result</span><br><span> |===</span><br><span> </span><br><span> [[gsup-ie-ipaddr]]</span><br><span>@@ -704,6 +757,9 @@</span><br><span> |0x26|AUTS|<<gsup-ie-auts>></span><br><span> |0x27|RES|<<gsup-ie-res>></span><br><span> |0x28|CN Domain|<<gsup-ie-cndomain>></span><br><span style="color: hsl(120, 100%, 40%);">+|0x30|Session ID|<<gsup-ie-session-id>></span><br><span style="color: hsl(120, 100%, 40%);">+|0x31|Session State|<<gsup-ie-session-state>></span><br><span style="color: hsl(120, 100%, 40%);">+|0x35|Supplementary Service Info|<<gsup-ie-ss-info>></span><br><span> |===</span><br><span> </span><br><span> [[gsup-ie-empty]]</span><br><span>@@ -857,3 +913,42 @@</span><br><span> </span><br><span> This IE shall be encoded according to the 'GMM Cause' as described in</span><br><span> Chapter 10.5.5.14 of 3GPP TS 04.08.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[[gsup-ie-ss-info]]</span><br><span style="color: hsl(120, 100%, 40%);">+==== Supplementary Service Info</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+This IE shall be used together with both <<gsup-ie-session-state>></span><br><span style="color: hsl(120, 100%, 40%);">+and <<gsup-ie-session-id>> IEs. It is used to carry the payload</span><br><span style="color: hsl(120, 100%, 40%);">+of Supplementary Services encoded according to GSM TS 04.80.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+=== Session (transaction) management</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Unlike TCAP/MAP, GSUP is just a transport layer without the</span><br><span style="color: hsl(120, 100%, 40%);">+dialogue/context. All communication is usually happening over</span><br><span style="color: hsl(120, 100%, 40%);">+a single connection. In order to fill this gap, there is a few</span><br><span style="color: hsl(120, 100%, 40%);">+optional IEs, which allow both communication sides to establish</span><br><span style="color: hsl(120, 100%, 40%);">+and terminate TCAP-like transactions over GSUP.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[[gsup-ie-session-id]]</span><br><span style="color: hsl(120, 100%, 40%);">+==== Session ID</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+This auxiliary IE shall be used together with <<gsup-ie-session-state>>.</span><br><span style="color: hsl(120, 100%, 40%);">+The purpose of this IE is to identify a particular transaction using</span><br><span style="color: hsl(120, 100%, 40%);">+the 4-byte unique identifier.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[[gsup-ie-session-state]]</span><br><span style="color: hsl(120, 100%, 40%);">+==== Session State</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+This auxiliary IE shall be used together with <<gsup-ie-session-id>>.</span><br><span style="color: hsl(120, 100%, 40%);">+The purpose of this IE is to indicate a state of a particular</span><br><span style="color: hsl(120, 100%, 40%);">+transacrion, i.e. initiate, continue or terminate it.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+.Session state</span><br><span style="color: hsl(120, 100%, 40%);">+[options="header",cols="15%,35%,50%"]</span><br><span style="color: hsl(120, 100%, 40%);">+|===</span><br><span style="color: hsl(120, 100%, 40%);">+|State|TCAP alternative|Description</span><br><span style="color: hsl(120, 100%, 40%);">+|0x00|Undefined|Used when session management is not required</span><br><span style="color: hsl(120, 100%, 40%);">+|0x01|BEGIN|Used to initiate a new session</span><br><span style="color: hsl(120, 100%, 40%);">+|0x02|CONTINUE|Used to continue an existing session</span><br><span style="color: hsl(120, 100%, 40%);">+|0x03|END|Used to terminate an existing session</span><br><span style="color: hsl(120, 100%, 40%);">+|===</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/9659">change 9659</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/9659"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-gsm-manuals </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: Ib1331246097db736d98baf1a162574cadca9ee36 </div>
<div style="display:none"> Gerrit-Change-Number: 9659 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Vadim Yanitskiy <axilirator@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: Harald Welte <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>