You will find that if the application sends a message longer than 160chars it will automatically split the message,
in fact the response will tell you the number of splits.
Note that Not all phones are capable of reassembling segmented messages - mainly older ones I guess.
But conversely on kannel receiving segmented messages, it does not reassemble the segments into one coherent
message for your application - which it should because this segmenting is an artifact of the protocols used - and isn't the
idea of having kannel is so your application doesn't need to deal with diverse low level interface with the SMSC ??
 
AFAIK, the application shouldn't care how many packets were received for a message because you don't pay for messages
received,  but for sending you do care, so in fact for us, we have the application split the message for MT (mobile terminating).
 
I am familiar with SMPP, there are two ways of receiving segmented messages, which also depends on the type of SMSC
you are connected with.....
The segements can be purely sent as concatenated messages using udh + message
OR the SMSC may take advantage of the fields in the SMPP protocol to set the segment information,
 
It is possible to have kannel queue up the segment parts internally, and only send to application when all parts received.
In fact have enhanced Kannel to do so, but can't make any promises of releasing the code, mainly because making
sensible diff -u patches to send in is very difficult and moderators insist on patches - I tend to reformat code into something more readable wherever.....
and we are not bothering to keep up with cvs head of the source code.........
 
 
----- Original Message -----
Sent: Friday, November 25, 2005 1:18 PM
Subject: Concatenating received message segments?

Hi,

You'll have to forgive me for sounding a mite clueless, but I'm new to using kannel.??I'm attempting to find out if it's possible to use kannel (specifically, version 1.4.0 running on Linux 2.6.8-1.521) to concatenate multiple received message segments, or at least to pass the relevant UDH parameters for each segment to the application which processes received messages.? We're trying to deal with messages longer than 160 ASCII characters ? problem is that kannel interprets these segments as separate messages, and not only doesn't attempt to combine them, but also sends back two message receipts to the sender.? I've noticed significant segment parameters being set in the PDU dump, namely sar_total_segments and sar_segment_seqnum, but I've no idea how to pass them on to the python script that parses the messages.

I've checked through the mailing list archives, the kannel user guide and FAQ, and haven't managed to find any conclusive answers to either problem, or even an indication that what I'm attempting clearly isn't possible.? Is there anything I'm missing?? Sorry in advance if this question's already been answered without my noticing.? If you need more information to help solve this problem, I'll see what I can provide.

Regards,
Geoffrey Roberts





Hi,

You'll have to forgive me for sounding a mite clueless, but I'm new 
to using kannel.  I'm attempting to find out if it's possible to use 
kannel (specifically, version 1.4.0 running on Linux 2.6.8-1.521) to 
concatenate multiple received message segments, or at least to pass 
the relevant UDH parameters for each segment to the application which 
processes received messages.  We're trying to deal with messages 
longer than 160 ASCII characters — problem is that kannel interprets 
these segments as separate messages, and not only doesn't attempt to 
combine them, but also sends back two message receipts to the 
sender.  I've noticed significant segment parameters being set in the 
PDU dump, namely sar_total_segments and sar_segment_seqnum, but I've 
no idea how to pass them on to the python script that parses the 
messages.

I've checked through the mailing list archives, the kannel user guide 
and FAQ, and haven't managed to find any conclusive answers to either 
problem, or even an indication that what I'm attempting clearly isn't 
possible.  Is there anything I'm missing?  Sorry in advance if this 
question's already been answered without my noticing.  If you need 
more information to help solve this problem, I'll see what I can 
provide.

Regards,
Geoffrey Roberts



Reply via email to