Can we please ensure we add the SMPP ability to force source_addr_ton etc. to the release or at least the cvs before it is released. I know it is not as per the specifications however myself, Stefan Cars, Benjamin Lee and various others on the list have to re-add these modifications each new build we get, and one of the biggest carriers in the UK, namely BT, are forcing the use of non-standard values.
Also - I'd like to review and then cvs add the throttling modifications to SMPP so that we can do it correctly by protocol using 0x00000058 I/F Throttled Error to slow down the speed we are sending messages until a suitable level is reached Is this suitable for everyone? Alex On Mon, 1 Apr 2002, Benjamin Lee wrote: > > Yes, I'll be reposting it again against the current CVS (the repository > changed a bit under my feet since the last diff...) > > > On Thursday, 2002-03-28 at 11:03:49 PM, Kita Ndara scribbled: > > I don't seem to be able to apply this patch to the cvs > > set, could you provide one that is based on a diff > > with the current set? > > > > Thanks. > > > > > > --- Benjamin Lee <[EMAIL PROTECTED]> wrote: > > > Find attached my patch for SMPP bits and pieces. > > > It is a combined patch (sorry) including: > > > > > > 1. configurable TON and NPI (modified from Alex > > > Judd> > > > > > > 2. unbind when shutting down > > > > > > 3. configurable default priority for SMS messages > > > > > > 4. configurable throughput to limit (throttle) > > > sending SMS rate to SMPP SMSC > > > > > > 5. Makefile.in changes, added install -d > > > $(DESTDIR)$(... etc... > > > facilitating consistent builds using RPM > > > non-root) > > > > > > > > > (I apologise for some of the spacing differences...) > > > > > > > > > On Thursday, 2002-03-21 at 08:43:56 AM, Benjamin Lee > > > scribbled: > > > > Well, actually nothing smart... we were sleeping > > > when we received a > > > > THROTTLE off packet from the SMSC but this > > > behaviour isn't actually > > > > specified in the protocol as far as I know; and > > > such a sleep may or may not > > > > help with the connection to the SMSC. > > > > > > > > The throughtput is set in the .conf file with: > > > > > > > > throughput = 20 > > > > > > > > 20 being 20 messages per second. > > > > > > > > On Wednesday, 2002-03-20 at 11:26:05 PM, Kita > > > Ndara scribbled: > > > > > What's the principle? Do you detect certain > > > types of > > > > > errors and re-queue? I can do some testing on my > > > end > > > > > too, see if it helps more generally. > > > > > > > > > > Let's see it! > > > > > > > > > > Thanks. > > > > > > > > > > --- Benjamin Lee <[EMAIL PROTECTED]> > > > wrote: > I > > > > > finally got around to doing a throughput patch > > > for > > > > > > SMPP... I'll post it > > > > > > shortly. > > > > > > > > > > > > On Wednesday, 2002-03-20 at 10:29:26 PM, Kita > > > Ndara > > > > > > scribbled: > > > > > > > Hi > > > > > > > I have another issue. When I use kannel to > > > > > > originate > > > > > > > messages to many phone numbers, sometimes > > > the SMSC > > > > > > > (Comverse) returns errors and rejects some > > > of the > > > > > > > messages. If I slow down the rate at which > > > I'm > > > > > > > submitting the messages to the SMSC, then it > > > works > > > > > > > fine. Is there a way for kannel to kind of > > > > > > > automatically back off from sending too fast > > > in > > > > > > such > > > > > > > cases? > > > > > > > > > > > > > > Thanks. > > > > > > > > > > > > > > ===== > > > > > > > Bruce Ndara > > > > > > > York Messaging > > > > > > > > > > > > > > > > > __________________________________________________ > > > > > > > Do You Yahoo!? > > > > > > > Everything you'll ever need on one web page > > > > > > > from News and Sport to Email and Music > > > Charts > > > > > > > http://uk.my.yahoo.com > > > > > > > > > > > > -- > > > > > > Benjamin Lee > > > > > > > > > > > > 71-75 City Rd, South Melbourne, VIC 3006 > > > Australia > > > > > > http://www.dotwap.com/ > > > > > > Phone +61 3 9698 1840 Mobile +61 414 717 573 > > > Fax > > > > > > +61 3 9698 1841 > > > > > > > > > > > > > __________________________________________________ > > > > > Do You Yahoo!? > > > > > Everything you'll ever need on one web page > > > > > from News and Sport to Email and Music Charts > > > > > http://uk.my.yahoo.com > > > > > > > > -- > > > > Benjamin Lee > > > > > > > > 71-75 City Rd, South Melbourne, VIC 3006 Australia > > > http://www.dotwap.com/ > > > > Phone +61 3 9698 1840 Mobile +61 414 717 573 Fax > > > +61 3 9698 1841 > > > > > > -- > > > Benjamin Lee > > > > > > 71-75 City Rd, South Melbourne, VIC 3006 Australia > > > http://www.dotwap.com/ > > > Phone +61 3 9698 1840 Mobile +61 414 717 573 Fax > > > +61 3 9698 1841 > > > > Index: Makefile.in > > > > > =================================================================== > > > RCS file: /home/cvs/gateway/Makefile.in,v > > > retrieving revision 1.56 > > > diff -u -r1.56 Makefile.in > > > --- Makefile.in 23 Jan 2002 18:33:00 -0000 1.56 > > > +++ Makefile.in 22 Mar 2002 04:12:46 -0000 > > > @@ -228,12 +228,12 @@ > > > dummy: > > > > > > install: all > > > - $(INSTALL) -d $(bindir) > > > + $(INSTALL) -d $(DESTDIR)$(bindir) > > > for prog in $(binprogs); do \ > > > $(INSTALL) $$prog \ > > > $(DESTDIR)$(bindir)/`basename > > > $$prog`$(suffix); \ > > > done > > > - $(INSTALL) -d $(sbindir) > > > + $(INSTALL) -d $(DESTDIR)$(sbindir) > > > for prog in $(sbinprogs); do \ > > > $(INSTALL) $$prog \ > > > $(DESTDIR)$(sbindir)/`basename > > > $$prog`$(suffix); \ > > > Index: gw/smpp_pdu.def > > > > > =================================================================== > > > RCS file: /home/cvs/gateway/gw/smpp_pdu.def,v > > > retrieving revision 1.3 > > > diff -u -r1.3 smpp_pdu.def > > > --- gw/smpp_pdu.def 8 Nov 2001 08:41:23 -0000 1.3 > > > +++ gw/smpp_pdu.def 22 Mar 2002 04:12:48 -0000 > > > @@ -162,6 +162,10 @@ > > > HEADER > > > ) > > > > > > +PDU(generic_nack_resp, > > > + 0x80000000, > > > + HEADER > > > +) > > > > > > #undef PDU > > > #undef INTEGER > > > Index: gw/smsc_smpp.c > > > > > =================================================================== > > > RCS file: /home/cvs/gateway/gw/smsc_smpp.c,v > > > retrieving revision 1.51 > > > diff -u -r1.51 smsc_smpp.c > > > --- gw/smsc_smpp.c 29 Jan 2002 21:38:36 -0000 1.51 > > > +++ gw/smsc_smpp.c 22 Mar 2002 04:12:48 -0000 > > > @@ -70,6 +70,12 @@ > > > Octstr *username; > > > Octstr *password; > > > Octstr *address_range; > > > + int source_addr_ton; > > > + int source_addr_npi; > > > + int dest_addr_ton; > > > + int dest_addr_npi; > > > + int throughput; /* limit sending rate */ > > > + int priority; /* set default priority for > > > messages */ > > > int transmit_port; > > > int receive_port; > > > int quitting; > > > @@ -80,7 +86,10 @@ > > > static SMPP *smpp_create(SMSCConn *conn, Octstr > > > *host, int transmit_port, > > > int receive_port, Octstr > > > *system_type, > > > Octstr *username, Octstr *password, > > > - Octstr *address_range) > > > + Octstr *address_range, int > > > source_addr_ton, > > > + int source_addr_npi, int > > > dest_addr_ton, > > > + int dest_addr_npi, > > > + int throughput, int > > > priority) > > > { > > > SMPP *smpp; > > > > > > @@ -97,6 +106,14 @@ > > > smpp->username = octstr_duplicate(username); > > > smpp->password = octstr_duplicate(password); > > > smpp->address_range = > > > octstr_duplicate(address_range); > > > + smpp->source_addr_ton = source_addr_ton; > > > + smpp->source_addr_npi = source_addr_npi; > > > + smpp->dest_addr_ton = dest_addr_ton; > > > + smpp->dest_addr_npi = dest_addr_npi; > > > + > > > + smpp->throughput = throughput; > > > + smpp->priority = priority; > > > + > > > smpp->transmit_port = transmit_port; > > > smpp->receive_port = receive_port; > > > smpp->quitting = 0; > > > @@ -207,33 +224,45 @@ > > > pdu = smpp_pdu_create(submit_sm, > > > > > > counter_increase(smpp->message_id_counter)); > > > > > > - pdu->u.submit_sm.dest_addr_ton = > > > GSM_ADDR_TON_NATIONAL; /* national */ > > > - pdu->u.submit_sm.source_addr_ton = > > > GSM_ADDR_TON_NATIONAL; /* national */ > > > - pdu->u.submit_sm.source_addr_npi = > > > GSM_ADDR_NPI_E164; /* ISDN number plan */ > > > - pdu->u.submit_sm.dest_addr_npi = > > > GSM_ADDR_NPI_E164; /* ISDN number plan */ > > > - > > > pdu->u.submit_sm.source_addr = > > > octstr_duplicate(msg->sms.sender); > > > pdu->u.submit_sm.destination_addr = > > > octstr_duplicate(msg->sms.receiver); > > > + > > > + /* Check for manual override of source ton and > > > npi values */ > > > + if(smpp->source_addr_ton > -1 && > > > smpp->source_addr_npi > -1) { > > > + pdu->u.submit_sm.source_addr_ton = > > > smpp->source_addr_ton; > > > + pdu->u.submit_sm.source_addr_npi = > > > smpp->source_addr_npi; > > > + } else { > > > + pdu->u.submit_sm.source_addr_ton = > > > GSM_ADDR_TON_NATIONAL; /* national */ > > > + pdu->u.submit_sm.source_addr_npi = > > > GSM_ADDR_NPI_E164; /* ISDN number plan */ > > > > > > - /* lets see if its international or > > > alphanumeric sender */ > > > - if( > > > octstr_get_char(pdu->u.submit_sm.source_addr,0) == > > > '+') { > > > - if > > > (!octstr_check_range(pdu->u.submit_sm.source_addr, > > > 1, 256, gw_isdigit)) { > > > - pdu->u.submit_sm.source_addr_ton = > > > GSM_ADDR_TON_ALPHANUMERIC; /* alphanum */ > > > - pdu->u.submit_sm.source_addr_npi = > > > GSM_ADDR_NPI_UNKNOWN; > > > - } > > > - else { > > > - /* numeric sender address with + in front -> > > > international*/ > > > - > > > octstr_delete(pdu->u.submit_sm.source_addr,0,1); > > > - pdu->u.submit_sm.source_addr_ton = > > > GSM_ADDR_TON_INTERNATIONAL; > > > - } > > > - } > > > - else { > > > - if > > > (!octstr_check_range(pdu->u.submit_sm.source_addr,0, > > > 256, gw_isdigit)) { > > > - pdu->u.submit_sm.source_addr_ton = > > > GSM_ADDR_TON_ALPHANUMERIC; > > > - pdu->u.submit_sm.source_addr_npi = > > > GSM_ADDR_NPI_UNKNOWN; > > > - } > > > + /* lets see if its international or > > > alphanumeric sender */ > > > + if( > > > octstr_get_char(pdu->u.submit_sm.source_addr,0) == > > > '+') { > > > + if > > > (!octstr_check_range(pdu->u.submit_sm.source_addr, > > > 1, 256, gw_isdigit)) { > > > + pdu->u.submit_sm.source_addr_ton = > > > GSM_ADDR_TON_ALPHANUMERIC; /* alphanum */ > > > + pdu->u.submit_sm.source_addr_npi = > > > GSM_ADDR_NPI_UNKNOWN; > > > + } > > > + else { > > > + /* numeric sender address with + in front > > > -> international*/ > > > + > > > octstr_delete(pdu->u.submit_sm.source_addr,0,1); > > > + pdu->u.submit_sm.source_addr_ton = > > > GSM_ADDR_TON_INTERNATIONAL; > > > + } > > > + } > > > + else { > > > + if > > > (!octstr_check_range(pdu->u.submit_sm.source_addr,0, > > > 256, gw_isdigit)) { > > > + pdu->u.submit_sm.source_addr_ton = > > > GSM_ADDR_TON_ALPHANUMERIC; > > > + pdu->u.submit_sm.source_addr_npi = > > > GSM_ADDR_NPI_UNKNOWN; > > > + } > > > + } > > > + } > > > + > > > + /* Check for manual override of destination ton > > > and npi values */ > > > + if(smpp->dest_addr_ton > -1 && > > > smpp->dest_addr_npi > -1) { > > > + pdu->u.submit_sm.dest_addr_ton = > > > smpp->dest_addr_ton; > > > + pdu->u.submit_sm.dest_addr_npi = > > > smpp->dest_addr_npi; > > > > > === message truncated === > > > > __________________________________________________ > > Do You Yahoo!? > > Everything you'll ever need on one web page > > from News and Sport to Email and Music Charts > > http://uk.my.yahoo.com > > -- Alex Judd http://www.skywire.co.uk
