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

Reply via email to