Ethereal-dev: RE: [Ethereal-dev] Common code in SMPP and GSM SMS dissectors (an d - RE: [Ether

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Biot Olivier <Olivier.Biot@xxxxxxxxxxx>
Date: Mon, 15 Dec 2003 10:54:28 +0100
| From: Tom Uijldert
| 
| > I just realized that there is some duplicate code in the SMPP 
| > and GSM SMS
| > dissectors. I'm however not familiar with GSM specs. Are there major
| > differences between GSM SMS as defined in GSM forum and in 
| > 3GPP? If not,
| > maybe we can split off the common code into a new source file.
| 
| AFAIK, 3GPP is the successor of the GSM-forum, so they have 
| "inherited" the GSM-SMS specs.
| I'm not sure but I think, therefore, that differences between 
| GSM/3GPP on this are highly unlikely.

Great!

| > Currently the SMPP dissector already parses some interesting 
| > IEs in the UDH
| > if present, and performs the reassembly of short message fragments.
| > Aditionally the Short Message body can be handed to a 
| > subdissector (e.g.,
| > the WSP dissector).
| 
| SMPP shouldn't be parsing the UDH, that should be GSM SMS (I 
| never realised we had a dissector for that already).

The dissection is a consequence of a need :)

| The UCP dissector carries identical traffic so that could benefit from
| common code here.
| Which also answers the question Taras had on IRA encoded 
| strings in UCP (see: "UCP protocols descissor (sms)").
| There was no need for decoding the short message content until
| the arrival of EMS and WAP.

My scope was mainly WAP. There is no EMS dissector yet.

| So if Taras could contribute code to handle IRA decoding for 
| the actual short messages that UCP is carrying, both SMPP and
| UCP could hand that data off to subdissectors.
| 
| And then it gets interesting:
| GSM SMS specs allow for segmentation and reassembly of data 
| by means of the
| UDH (afaik, mostly for EMS/ringtone type of messages).
| But short messages can also be used as bearer for WAP-traffic 
| (mainly MMS push data I think), which uses WTP for segmentation
| and reassembly!

AFAIK WAP-over-SMS is only used in the push context. This means
that the Ports IE will be used to try dissection of the SM body
as CL-WSP or CO-WSP. I currently did not provide WTLS registration
as I did not have a WTLS-over-SMS trace at hand, but it is trivial
to add (I can do this).

| I'm not sure whether WAP-stacks take advantage of the 
| UDH-capabilities that SMS offers but I think not.
| So if you'd want to reassemble WAP-traffic, you'd have to 
| take the recipient telephone number (MSISDN) into account.

I've been thinking about it and posted a message with such an
implementation (but mainly with issues I then had):
http://www.ethereal.com/lists/ethereal-dev/200307/msg00131.html
However the current implementation works, even if the SMS
messages are sent over distinct SMPP connections.

| So it should be:
| - SMPP/UCP put the short message content in a tvbuff and pass 
| it on to a subdissector.
| - Subdissector GSM SMS registers itself for this and possibly 
| reassembles any UDH-stuff. This, again, is passed to any
| subdissector.

Depending on the IEs contained in the UDH, we may decide to:
a. reassemble short messages
b. handoff the short message data to a subdissector

Both are already implemented in the SMPP dissector.

| - Subdissector WAP (wtp, wsb or whatever...) registers itself
| for this and does its bit (this might possibly be the UDH
| DATA-thing that you mentioned).

Exactly.

| I'm not too familiar with Ethereal internals but I think that
| SMPP/UCP dissectors should thereby supply the originator and
| recipient telephone number in one of the packet-info fields
| to allow subdissectors to properly reassemble.

Maybe we could define a generic AT_STRING address type
for this purpose.

Regards,

Olivier