RE: SMPP data_sm implementation for MT messages

"Rene Kluwen" <[email protected]>
Newsgroups gmane.comp.mobile.kannel.devel
Message-ID <[email protected]>
I did the same thing, a long time back already.
Would be nice to add something like this to Kannel, because I keep getting
requests for it.

Some comments after just a quick glance:

1. If you add tlv's, first check if client version > 0x33.
2. My previous patch added the following v3.4 fields, based on the UDH of
the message:
   - sar_msg_ref_num
   - sar_total_segments
   - sar_segment_seqnum
   - payload_type

   I am not really sure what is in msg->sms.meta_data. Would be nice if this
also would automatically contain those fields, based on msg->udh. I can
share the code for that.

== Rene


-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf
Of Michael Zervakis
Sent: donderdag 22 juli 2010 18:02
To: [email protected]
Subject: RE: SMPP data_sm implementation for MT messages

Hi ,


This is a proposed implementation for sending data_sm PDUs that also
enforces SMPP requirement for having sm_length=0 when using message_payload
TLV. To send a data_sm PDU the sendsms request should be like
meta-data?smsc-type=smpp_data_sm?.
*msg_to_pdu() was replaced by two functions *msg_to_sm_pdu() and
*msg_to_datasm_pdu() for submit_sm and data_sm() PDUs respectively and
handle_pdu() got a new case for incoming data_sm_resp PDU.

 
BR,

Michael Zervakis

 

-----Original Message-----
From: Alexander Malysh [mailto:[email protected]] On Behalf Of
Alexander Malysh
Sent: Friday, November 27, 2009 5:04 PM
To: Michael Zervakis
Cc: Kannel Devel; Alejandro Guerrieri
Subject: Re: SMPP data_sm implementation for MT messages

 

where do you have message_payload extracted to user?

 

that is simple:

 

MT(data_sm) -> sendsms?text=ABC&metadata=?smpp?pdu_type=data_sm... ->
data_sm.message_payload=ABC

MT(submit_sm) -> sendsms?text=ABC... -> submit_sm.short_message=ABC

 

MO(data_sm) -> data_sm.message_payload=ABC ->
receivesms?text=ABC&metadata=?smpp?pdu_type=data_sm

MO(submit_sm) -> submit_sm.short_message=ABC -> receivesms?text=ABC

 

If user set for MT
text=ABC&metadata=?smpp?pdu_type=data_sm&message_payload=XXX then it's
undefined and

we are free to choose which one to use and I would prefer to use text as
message_payload...

 

Hope that's clear.

 

Thanks,

Alexander Malysh

 

Am 27.11.2009 um 15:21 schrieb Michael Zervakis:

 

 >

 > Let's assume that we follow Alex's recommendation
"meta-data=?smpp?operation=data_sm&..." and if operation is omitted we use
submit_sm as default.

 >

 >

 > We should clarify what should happen to "text=xxxx" if set and this
should affect both submit_sm and data_sm operations as SMPP specs state that
short_message and message_payload cannot coexist in a PDU (sm_length should
be zero if message_payload is used). I can think of three cases here:

 >

 > 1) When "text" has a value and "message_payload" is not set. For
submit_sm no need to change anything. For data_sm we append meta-data with
message_payload and set the value of "text" to it (example: 
"text=XXXX&meta-data=?smpp?operation=data_sm").

 > 2) When both "text" and "message_payload" have values. For submit_sm
operation "text" value is set to null (so "sm_length" is set to 0 and we
don't break specs) and we use the provided "message_payload" value. For
data_sm operation we simply ignore "text" value.

 >

 > 3) When "message_payload" has a value and "text" is not set. Normal 
case doesn't break specs.

 >

 >

 >

 >

 >

 >> -----Original Message-----

 >> From: Alexander Malysh [mailto:[email protected]] On Behalf Of

 > Alexander Malysh

 >> Sent: Friday, November 27, 2009 3:32 PM

 >> To: Michael Zervakis

 >> Cc: [email protected]; [email protected]

 >> Subject: Re: SMPP data_sm implementation for MT messages

 >

 >

 >> Hi,

 >

 >

 >> why not just use metadata=?smpp?operation=data_sm&... ?

 >

 >> then you can check in smsc_smpp whether submit_sm or data_sm should 
be used.

 >

 >

 >> Whether you have to use message_payload or short_message is

 > implementation details that

 >

 >> should not be exported to user interface.

 >

 >

 >> Thanks,

 >

 >> Alexander Malysh

 >

 >

 >> Am 27.11.2009 um 13:00 schrieb Michael Zervakis:

 >

 >

 >> > Data_sm PDU cannot contain a short_message field. Actually data_sm

 > contains only TLVs and instead of "short_message" field we should use 
TLV "message_payload" to send text. As a result text=xxxx is obsolete 
when sending data_sm PDU. If we use data=xxxx what would be the value of 
data since all necessary data will be included in "meta-data=?smpp?"  ?

 >

 >> >

 >

 >> >

 >

 >> >> -----Original Message-----

 >

 >> >> From: Alejandro Guerrieri [mailto:[email protected]]

 >

 >> >> Sent: Friday, November 27, 2009 12:04 PM

 >

 >> >> To: Michael Zervakis

 >

 >> >> Cc: [email protected]

 >

 >> >> Subject: Re: SMPP data_sm implementation for MT messages

 >

 >> >

 >

 >> >

 >

 >> > >What about using "data=xxxx" instead of "text=xxxx" ?

 >

 >> >

 >

 >> > >--

 >

 >> >

 >

 >> > >Alejandro Guerrieri

 >

 >> >

 >

 >> > >[email protected]

 >

 >> >

 >

 >> > >

 >

 >> > >

 >

 >> > >

 >

 >> > >On 27/11/2009, at 10:00, Michael Zervakis wrote:

 >

 >> >

 >

 >> > >

 >

 >> > >> Data_sm can be used as an alternate of submit_sm when transmitting

 >

 >> > >> optional parameters (meta-data) and some carriers require the 
use of

 >

 >> > >> data_sm for MT charging applications.

 >

 >> >

 >

 >> > >> Since Kannel is not implementing this feature it's a good idea to

 >

 >> > >> start a discussion on how this could be implemented.

 >

 >> >

 >

 >> > >>

 >

 >> > >> First of all it's obvious that "static int send_messages()" at gw

 >

 >> >

 >

 >> > >> \smsc\smsc_smpp.c must be able to differentiate msgs that need 
to be

 >

 >> > >> sent as data_sm.

 >

 >> >

 >

 >> > >> I can think of two ways to achieve this:

 >

 >> >

 >

 >> > >> 1) Alter MSG definition to inlcude a new parameter that defines 
type

 >

 >> > >> of message Data or normal SMS

 >

 >> >

 >

 >> > >> Possible ways to use the new parameter could be the following

 >

 >> >

 >

 >> > >> /cgi-bin/sendsms?from=1111&to=2222&<new parameter>=data&meta-data=?

 >

 >> >

 >

 >> > >> smpp?key=value

 >

 >> >

 >

 >> > >> /cgi-bin/senddata?from=1111&to=2222&meta-data=?smpp?key=value

 >

 >> >

 >

 >> > >> 2) Leave MSG definition untouched and use meta-data to mark msg as

 >

 >> > >> data

 >

 >> >

 >

 >> > >> /cgi-bin/sendsms?from=1111&to=2222&meta-data=?smpp?<new

 >

 >> > >> parameter>=data&key=value

 >

 >> >

 >

 >> > >>

 >

 >> > >> Finally a new function has to be defined at gw\smsc\smsc_smpp.c to

 >

 >> > >> build data_sm pdu from msg for example "static SMPP_PDU

 >

 >> > >> *dmsg_to_pdu(SMPP *smpp, Msg *msg)"

 >

 >> >

 >

 >> > >> and function "static int handle_pdu()" at gw\smsc\smsc_smpp.c 
has to

 >

 >> > >> be modified to include a case for data_sm_resp PDU.

 >

 >> >

 >

 >> > >>

 >

 >> > >> Any comments?

 >

 >> >

 >

 >> > >>

 >

 >> > >>

 >

 >> >

 >

 >
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.