Re: Making SMPP esm_class configurable?
Alejandro Guerrieri <[email protected]>
| Newsgroups | gmane.comp.mobile.kannel.devel |
|---|---|
| Message-ID | <[email protected]> |
Ops, missed the point, sorry. IMHO restricted to 0 and 3 should cover most cases. You could take it further and allowing 0 _to_ 3 to make it slightly more flexible as well. Default should be 3 to keep it backwards-compatible. Regards, -- Alejandro Guerrieri [email protected] On Sep 8, 2011, at 2:17 PM, Alexander Malysh wrote: > Hi Alex, > > this is not the question whether commit or not. The question is, how patch should looks like? > a) commit as boolean > b) commit as integer with restrictions -> need recompile when not supported values (0 or 3) should be used > c) commit as integer without restrictions > > Thanks, > Alexander Malysh > > Am 08.09.2011 um 13:37 schrieb Alejandro Guerrieri: > >> Having to patch and recompile Kannel a few times in the past to change that parameters to make it work in South America, I can only say +1 to it :) >> >> Regards, >> -- >> Alejandro Guerrieri >> [email protected] >> >> >> >> On Sep 8, 2011, at 12:29 PM, Alexander Malysh wrote: >> >>> Hi Alan, >>> >>> thanks for the patch but I'm waiting for more comments in this topic. >>> If no comments coming, I will commit your patch next week. >>> >>> Thanks, >>> Alexander Malysh >>> >>> Am 07.09.2011 um 02:14 schrieb Alan McNatty: >>> >>>> Hi Alex, >>>> >>>> Based on option a) please find the attached patch. I understand reasons >>>> for locking it down but it is clear to me that users want more control >>>> over this setting (beyond what we may think is sensible). Userguide >>>> patch hopefully spells out a sufficient warning. >>>> >>>> Cheers, >>>> Alan >>>> >>>> On Thu, 2011-08-18 at 18:57 +0200, Alexander Malysh wrote: >>>>> Hi, >>>>> >>>>> >>>>> I don't see this as issue. The user ether let it default or try to >>>>> change in agreement with SMSC operator. If user will try some random >>>>> values >>>>> then operator will just shutdown his account. If you ask me, I don't >>>>> see any need to allow changing default esm-class. But if we see buggy >>>>> SMSCs >>>>> that don't accept STORE & FORWARD mode then I don't know what to >>>>> expect here. Maybe some drunk developer implement SMS as datagram >>>>> mode, >>>>> who knows :-) >>>>> >>>>> >>>>> We have 2 options: >>>>> a) allow user to set any values and write in the docs that this may be >>>>> dangerous >>>>> b) we restrict user to only have two options 0 (default mode) and 3 >>>>> (store & forward), then boolean value should be enough >>>>> >>>>> >>>>> Alex >>>>> >>>>> >>>>> Am 18.08.2011 um 12:33 schrieb Nikos Balkanas: >>>>> >>>>>> Hi Alex, >>>>>> >>>>>> >>>>>> >>>>>> I don't agree that this should be left open to the user. A few may >>>>>> know what to do with the spec. However, a lot will play around with >>>>>> the values until they get them working. Consider that a user sets >>>>>> this to DATAGRAM, and kannel generates a store and forward pdu with >>>>>> DATAGRAM esm_class. It doesn't hurt kannel, but what about the SMSc >>>>>> that receives it? It could possibly generate a core dump if the >>>>>> implementation is widely different, resulting in loss of service. Do >>>>>> you really want to leave that open? >>>>>> >>>>>> >>>>>> BR, >>>>>> Nikos >>>>>> >>>>>> On Thu, Aug 18, 2011 at 11:31 AM, Alexander Malysh >>>>>> <[email protected]> wrote: >>>>>> Hi Alan, >>>>>> >>>>>> sorry to write my response late (I was on vacation), but I >>>>>> don't think we need some restriction on configured >>>>>> esm-class. >>>>>> If we allow to change esm-class in the config, IMHO there is >>>>>> no need to restrict it's value, because >>>>>> the user know what he does. >>>>>> >>>>>> For cannel it's equal, which value to set as esm-class >>>>>> because kannel doesn't interpreting it. >>>>>> >>>>>> Thanks, >>>>>> Alex >>>>>> >>>>>> Am 15.08.2011 um 09:35 schrieb Alan McNatty: >>>>>> >>>>>>> Thanks Nikos, >>>>>>> >>>>>>> That's good news since, thanks to Edgard for pointing out, >>>>>> I forgot to >>>>>>> include gwlib/cfg.def in the patch. Updated patch >>>>>> attached. >>>>>>> >>>>>>> Cheers, >>>>>>> Alan >>>>>>> >>>>>>> On Mon, 2011-08-15 at 04:29 +0300, Nikos Balkanas wrote: >>>>>>>> I guess Alex M is busy. There are a few patches prior to >>>>>> yours that >>>>>>>> wait for commission. Don't worry, he never misses a >>>>>> patch. He is the >>>>>>>> gateway maintainer. >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> BR, >>>>>>>> Nikos >>>>>>>> >>>>>>>> On Mon, Aug 15, 2011 at 3:22 AM, Alan McNatty >>>>>> <[email protected]> >>>>>>>> wrote: >>>>>>>> Thanks Rene, >>>>>>>> >>>>>>>> Can anyone with commit access give a final nod of >>>>>> acceptance? >>>>>>>> >>>>>>>> On Tue, 2011-08-09 at 21:08 +0200, Rene Kluwen >>>>>> wrote: >>>>>>>>> +1 for me as well. >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> From: [email protected] >>>>>>>> [mailto:[email protected]] On >>>>>>>>> Behalf Of Nikos Balkanas >>>>>>>>> Sent: Tuesday, 09 August, 2011 02:11 >>>>>>>>> To: Alan McNatty >>>>>>>>> Cc: [email protected] >>>>>>>>> Subject: Re: Making SMPP esm_class configurable? >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> Looks great! +1. >>>>>>>>> >>>>>>>>> >>>>>>>>> Nikos >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On Tue, Aug 9, 2011 at 2:59 AM, Alan McNatty >>>>>>>> <[email protected]> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>> Thanks again Nikos, >>>>>>>>> >>>>>>>>> Yeah 0 and 3 are all I'm interested in - wasn't sure if >>>>>>>> others wanted >>>>>>>>> support for non-compliant things. >>>>>>>>> >>>>>>>>> Made changes as you suggested - please check out the >>>>>>>> attached patch. >>>>>>>>> >>>>>>>>> Cheers, >>>>>>>>> Alan >>>>>>>>> >>>>>>>>> On Mon, 2011-08-08 at 05:39 +0300, Nikos Balkanas wrote: >>>>>>>>>> Hi Alan, >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Currently kannel doesn't support more modes. Therefore >>>>>>>> test should >>>>>>>>>> more specific: >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> else if (esm_class != SMPP_STORE... && esm_class != >>>>>>>> DEFAULT...)) // >>>>>>>>>> use constants >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Also I see no need for panicking over a single smsc: >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> error(0, "SMPP: Invalid esm_class mode \"5\" in >>>>>>>> configuration. >>>>>>>>>> Switching to \"Store and Forward\"); >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> There are still many hexadecimal references to the >>>>>>>> userguide, and it >>>>>>>>>> doesn't restrict choices. Therefore, I suggest the >>>>>>>> following text: >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Value for esm_class according to the SMPP spec. >>>>>> Accepted >>>>>>>> values are >>>>>>>>> 0 >>>>>>>>>> (Default smsc mode) and 3 (Store and Forward). Defaults >>>>>> to >>>>>>>> 3. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> HTH, >>>>>>>>>> Nikos >>>>>>>>>> >>>>>>>>>> On Mon, Aug 8, 2011 at 5:01 AM, Alan McNatty >>>>>>>> <[email protected]> >>>>>>>>>> wrote: >>>>>>>>>> Thanks Nikos, >>>>>>>>>> >>>>>>>>>> See attached. >>>>>>>>>> >>>>>>>>>> Also just wanted to check thoughts the range >>>>>> check >>>>>>>> (possibly >>>>>>>>>> remove and >>>>>>>>>> leave it open?). >>>>>>>>>> >>>>>>>>>> i.e. >>>>>>>>>> + else if (esm_class > 0x03 || esm_class < 0) >>>>>>>>>> + panic(0, "SMPP: Invalid esm_class >>>>>>>> directive in >>>>>>>>>> configuration."); >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Mon, 2011-08-08 at 04:44 +0300, Nikos >>>>>> Balkanas >>>>>>>> wrote: >>>>>>>>>>> Hi Alan, >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Patch looks good. userguide needs some changes: >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> 1) Capitalize after periods (For example, For >>>>>>>> default >>>>>>>>> mode) >>>>>>>>>>> 2) In configuration the value should be integer, >>>>>>>> not hex >>>>>>>>> (3 >>>>>>>>>> not 03). >>>>>>>>>>> cfg_get_integer doesn't understand hex (0xA5). >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> +1 >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Nikos >>>>>>>>>>> >>>>>>>>>>> On Mon, Aug 8, 2011 at 4:02 AM, Alan McNatty >>>>>>>>>> <[email protected]> >>>>>>>>>>> wrote: >>>>>>>>>>> patch attached. >>>>>>>>>>> >>>>>>>>>>> Votes / comments, etc? >>>>>>>>>>> >>>>>>>>>>> On Wed, 2011-08-03 at 09:39 +1200, Alan >>>>>>>> McNatty >>>>>>>>>> wrote: >>>>>>>>>>>> Thanks Nikos/Alex for the feedback - I >>>>>>>> will work >>>>>>>>>> on config >>>>>>>>>>> patch. >>>>>>>>>>>> >>>>>>>>>>>> On Tue, 2011-08-02 at 23:10 +0300, >>>>>>>> Nikos >>>>>>>>> Balkanas >>>>>>>>>> wrote: >>>>>>>>>>>>> Hi Alan, >>>>>>>>>>>>> >>>>>>>>>>>>> Just to clarify on what Alex says. >>>>>>>> Some other >>>>>>>>>> modes that >>>>>>>>>>> the SMSc may >>>>>>>>>>>>> support in default mode, are: >>>>>>>>>>>>> >>>>>>>>>>>>> Datagram: UDP based, immediate best >>>>>>>> effort >>>>>>>>> high >>>>>>>>>> throughput >>>>>>>>>>> transmition with >>>>>>>>>>>>> no retried, validity period or >>>>>>>> storage. >>>>>>>>> Similar >>>>>>>>>> to UDP. >>>>>>>>>>>>> Forward: Single transaction based, >>>>>>>> for >>>>>>>>> real-time >>>>>>>>>>> applications, i.e. parking >>>>>>>>>>>>> tickets, without storage, where >>>>>>>> result is >>>>>>>>>> returned in >>>>>>>>>>> response. >>>>>>>>>>>>> >>>>>>>>>>>>> Kannel doesn't support those, only >>>>>>>> reliable >>>>>>>>>> store and >>>>>>>>>>> forward. Therefore the >>>>>>>>>>>>> default mode wouldn't be >>>>>>>> appropriate. >>>>>>>>>>>>> Configuration would be fine for >>>>>>>> those buggy >>>>>>>>>> SMScs, that do >>>>>>>>>>> store and >>>>>>>>>>>>> forward, but do not accept it as an >>>>>>>> option. >>>>>>>>>>>>> >>>>>>>>>>>>> BR, >>>>>>>>>>>>> Nikos >>>>>>>>>>>>> >>>>>>>>>>>>> ----- Original Message ----- >>>>>>>>>>>>> From: "Alexander Malysh" >>>>>>>> <[email protected]> >>>>>>>>>>>>> To: "Alan McNatty" >>>>>>>> <[email protected]> >>>>>>>>>>>>> Cc: "Nikos Balkanas" >>>>>>>> <[email protected]>; >>>>>>>>>>> <[email protected]> >>>>>>>>>>>>> Sent: Tuesday, August 02, 2011 12:29 >>>>>>>> PM >>>>>>>>>>>>> Subject: Re: Making SMPP esm_class >>>>>>>>> configurable? >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Hi, >>>>>>>>>>>>> >>>>>>>>>>>>> please don't change default because >>>>>>>> we want >>>>>>>>> that >>>>>>>>>> SMSC >>>>>>>>>>> _store_ and _forward_ >>>>>>>>>>>>> our message that >>>>>>>>>>>>> is what we also tell SMSC. This >>>>>>>> works in 99% >>>>>>>>>> cases but >>>>>>>>>>> sometimes buggy SMSCs >>>>>>>>>>>>> don't accept this >>>>>>>>>>>>> and rejects messages. >>>>>>>>>>>>> >>>>>>>>>>>>> Please keep default as is and make >>>>>>>> config >>>>>>>>> option >>>>>>>>>> for buggy >>>>>>>>>>> SMSCs. >>>>>>>>>>>>> >>>>>>>>>>>>> Thanks, >>>>>>>>>>>>> Alex >>>>>>>>>>>>> >>>>>>>>>>>>> Am 02.08.2011 um 06:11 schrieb Alan >>>>>>>> McNatty: >>>>>>>>>>>>> >>>>>>>>>>>>>> Sorry that should be >>>>>>>>>> ESM_CLASS_SUBMIT_DEFAULT_SMSC_MODE. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Index: gw/smsc/smsc_smpp.c >>>>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>> =================================================================== >>>>>>>>>>>>>> --- gw/smsc/smsc_smpp.c (revision >>>>>>>> 4913) >>>>>>>>>>>>>> +++ gw/smsc/smsc_smpp.c (working >>>>>>>> copy) >>>>>>>>>>>>>> @@ -876,7 +876,7 @@ >>>>>>>>>>>>>> * set the esm_class field >>>>>>>>>>>>>> * default is store and >>>>>>>> forward, plus >>>>>>>>> udh >>>>>>>>>> and rpi if >>>>>>>>>>> requested >>>>>>>>>>>>>> */ >>>>>>>>>>>>>> - pdu->u.submit_sm.esm_class = >>>>>>>>>>>>>> >>>>>>>> ESM_CLASS_SUBMIT_STORE_AND_FORWARD_MODE; >>>>>>>>>>>>>> + pdu->u.submit_sm.esm_class = >>>>>>>>>>> ESM_CLASS_SUBMIT_DEFAULT_SMSC_MODE; >>>>>>>>>>>>>> if >>>>>>>> (octstr_len(msg->sms.udhdata)) >>>>>>>>>>>>>> pdu->u.submit_sm.esm_class >>>>>>>> = >>>>>>>>>>> pdu->u.submit_sm.esm_class | >>>>>>>>>>>>>> >>>>>>>> ESM_CLASS_SUBMIT_UDH_INDICATOR; >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Tue, 2011-08-02 at 15:59 +1200, >>>>>>>> Alan >>>>>>>>>> McNatty wrote: >>>>>>>>>>>>>>> Hi Nikos, >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> You mean simply change the >>>>>>>> default: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Index: gw/smsc/smsc_smpp.c >>>>>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>> =================================================================== >>>>>>>>>>>>>>> --- gw/smsc/smsc_smpp.c (revision >>>>>>>> 4913) >>>>>>>>>>>>>>> +++ gw/smsc/smsc_smpp.c (working >>>>>>>> copy) >>>>>>>>>>>>>>> @@ -876,7 +876,7 @@ >>>>>>>>>>>>>>> * set the esm_class field >>>>>>>>>>>>>>> * default is store and >>>>>>>> forward, plus >>>>>>>>> udh >>>>>>>>>> and rpi >>>>>>>>>>> if requested >>>>>>>>>>>>>>> */ >>>>>>>>>>>>>>> - pdu->u.submit_sm.esm_class = >>>>>>>>>>>>>>> >>>>>>>> ESM_CLASS_SUBMIT_STORE_AND_FORWARD_MODE; >>>>>>>>>>>>>>> + pdu->u.submit_sm.esm_class = >>>>>>>>>>> ESM_CLASS_DEFAULT_SMSC_MODE; >>>>>>>>>>>>>>> if >>>>>>>> (octstr_len(msg->sms.udhdata)) >>>>>>>>>>>>>>> >>>>>>>> pdu->u.submit_sm.esm_class = >>>>>>>>>>> pdu->u.submit_sm.esm_class | >>>>>>>>>>>>>>> >>>>>>>> ESM_CLASS_SUBMIT_UDH_INDICATOR; >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Anyone think we should have a >>>>>>>> config >>>>>>>>> option? >>>>>>>>>> Or just >>>>>>>>>>> happy to run with >>>>>>>>>>>>>>> he above. I need to test myself >>>>>>>> but is this >>>>>>>>>> likely to >>>>>>>>>>> be a compatibility >>>>>>>>>>>>>>> breaker for anyone? >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Cheers, >>>>>>>>>>>>>>> Alan >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On Mon, 2011-08-01 at 07:13 >>>>>>>> +0300, Nikos >>>>>>>>>> Balkanas >>>>>>>>>>> wrote: >>>>>>>>>>>>>>>> Hi Alan, >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> According to the spec SMPP 5.0, >>>>>>>> p 125, >>>>>>>>>>>>>>>> >>>>>>>> ESM_CLASS_SUBMIT_DEFAULT_SMSC_MODE is >>>>>>>>>>>>>>>> the default esm class. That part >>>>>>>> should be >>>>>>>>>> patched in. >>>>>>>>>>> As far as making >>>>>>>>>>>>>>>> it >>>>>>>>>>>>>>>> configurable, I have no >>>>>>>> objections to it. >>>>>>>>> A >>>>>>>>>> few people >>>>>>>>>>> over the years >>>>>>>>>>>>>>>> have >>>>>>>>>>>>>>>> had to manually patch it in. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> BR, >>>>>>>>>>>>>>>> Nikos >>>>>>>>>>>>>>>> ----- Original Message ----- >>>>>>>>>>>>>>>> From: "Alan McNatty" >>>>>>>>> <[email protected]> >>>>>>>>>>>>>>>> To: <[email protected]> >>>>>>>>>>>>>>>> Sent: Monday, August 01, 2011 >>>>>>>> 6:21 AM >>>>>>>>>>>>>>>> Subject: Making SMPP esm_class >>>>>>>>> configurable? >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Hi All, >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> I found a thread on this from >>>>>>>> back in Feb >>>>>>>>>> 2005 >>>>>>>>>>> (having received a query >>>>>>>>>>>>>>>>> from provided now myself) .. >>>>>>>> last word by >>>>>>>>>> Alejandro >>>>>>>>>>> and a lukewarm >>>>>>>>>>>>>>>>> (+0 - >>>>>>>>>>>>>>>>> +1) comment from Stipe about >>>>>>>> committing >>>>>>>>> if >>>>>>>>>> patch >>>>>>>>>>> provided. I would >>>>>>>>>>>>>>>>> provide a config patch if >>>>>>>> anyone would >>>>>>>>> vote >>>>>>>>>> in it's >>>>>>>>>>> favour? >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Consider: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> gw/smsc/smsc_smpp.c >>>>>>>>>>>>>>>>> 875 /* >>>>>>>>>>>>>>>>> 876 * set the esm_class >>>>>>>> field >>>>>>>>>>>>>>>>> 877 * default is store and >>>>>>>> forward, >>>>>>>>>> plus udh and >>>>>>>>>>> rpi if requested >>>>>>>>>>>>>>>>> 878 */ >>>>>>>>>>>>>>>>> 879 >>>>>>>> pdu->u.submit_sm.esm_class = >>>>>>>>>>>>>>>>> >>>>>>>> ESM_CLASS_SUBMIT_STORE_AND_FORWARD_MODE; >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> But the 'default' is surely >>>>>>>>>>> ESM_CLASS_SUBMIT_DEFAULT_SMSC_MODE, no? >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Cheers, >>>>>>>>>>>>>>>>> Alan >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> <esm_class.patch> >>>>>> >>>>>> >>>>> >>>>> >>>> >>>> <esm_class.patch2> >>> >>> >> >