> 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.
> 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 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.
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! 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.
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.
- 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).
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.
That's it..., I think...
Hope this helps,
Tom Uijldert Email: Tom.Uijldert [at] logicacmg.com
This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you.