Ethereal-dev: RE: [Ethereal-dev] Common code in SMPP and GSM SMS dissectors (an d - RE: [Ether
| 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