Re: [REQ] UAProf suppport

2003-06-19 Thread Stipe Tolj
Hi Paul,

Paul Keogh schrieb:
 
   our REFPOOL tests are doing well. Handset manufacturers
  claim the lack
   of UAProf support within Kannel.
 
 Is there any more details about these claims - ie. what exactly are
 they claiming is missing ?

now basically they complain that Kannel does not check the UAProf
profile of a device and hence does not recognize that certain
mime-types can or can't be accepted by the device.

   Can someone please check if UAProf is a mandatory feature for WAP
   1.2.1 (jun)?
   Is there anyone interested to pick this issue up and work on it?
 
 
 The Profile, Profile-Diff and Profile-Warning HTTP headers are all defined,
 as is the uaprof content type in WSP 1.2.1.
 
 Is the question what the gateway should do with this information, other than
 pass it on to the HTTP server ?

yes, I guess UAProf is not only about passing the information. It is
also about dealing with it in terms of allowing to modify mime-types
to fit the needs of the device. Or am I wrong here?

Stipe

[EMAIL PROTECTED]
---
Wapme Systems AG

Vogelsanger Weg 80
40470 Düsseldorf

Tel: +49-211-74845-0
Fax: +49-211-74845-299

E-Mail: [EMAIL PROTECTED]
Internet: http://www.wapme-systems.de
---
wapme.net - wherever you are



Re: Kannel SMPP interface !

2003-06-19 Thread Stipe Tolj
Aarno Syvänen wrote:
 
 You mean making cvs modules located in different machines ?

no, I'd like to have the current gateway cvs module as the base
component and add-ons (ie. smppbox, emibox, mmsbox) to be extendable
to the gateway source.

Basically something similiar as the Apache guys did with their APR
(apache portable runtime).

Stipe

[EMAIL PROTECTED]
---
Wapme Systems AG

Vogelsanger Weg 80
40470 Düsseldorf

Tel: +49-211-74845-0
Fax: +49-211-74845-299

E-Mail: [EMAIL PROTECTED]
Internet: http://www.wapme-systems.de
---
wapme.net - wherever you are



Re: Kannel SMPP interface !

2003-06-19 Thread Stipe Tolj
Alex Judd wrote:
 
 No, I think Stipe's on about the discussions to build a more module based
 build with bearerbox forming the core - ie.
 
- smsbox
- wapbox
 bearerbox  - smppbox
- etc.
 
 if we split the modules out a little cleaner like this, then you can
 checkout just the base and the module you want.
 
 It shouldn't be a big job, just need to freeze a cvs branch while someone
 starts it would be my thoughts. It would be a good incentive to get Wapme to
 let loose the smppbox they've got chained there :)

yep, it's waiting to be freed! ;)) same with mmsbox (our MMSC
implementation).

Stipe

[EMAIL PROTECTED]
---
Wapme Systems AG

Vogelsanger Weg 80
40470 Düsseldorf

Tel: +49-211-74845-0
Fax: +49-211-74845-299

E-Mail: [EMAIL PROTECTED]
Internet: http://www.wapme-systems.de
---
wapme.net - wherever you are



Problem about wavecom configuration

2003-06-19 Thread kookkai kookkai
Hi all,

I can not send sms by using wavecom with kannel.  Now I use cygwin + 
window2000 and run bearerbox from kannel with this configuration :

group = core
admin-port = 13000
smsbox-port = 13001
admin-password = bar
status-password = foo
admin-deny-ip = *.*.*.*
admin-allow-ip = 127.0.0.1
log-file = /tmp/kannel.log
log-level = 0
box-deny-ip = *.*.*.*
box-allow-ip = 127.0.0.1
unified-prefix = 00358,0
access-log = access.log
store-file = kannel.store
#ssl-certkey-file = mycertandprivkeyfile.pem


# SMSBOX SETUP

group = smsbox
bearerbox-host = localhost
sendsms-port = 13013
global-sender = 13013
sendsms-chars = 0123456789 +-
log-file = /tmp/smsbox.log
log-level = 0
access-log = access.log
# SEND-SMS USERS

group = sendsms-user
username = jap
password = smskiller
#user-deny-ip = 
user-allow-ip = 127.0.0.1
max-messages = 2
concatenation = true
# this sender is for Kannel relay testing (http_smsc)

group = sendsms-user
username = kannel
password = rL4y
user-deny-ip = *.*.*.*
user-allow-ip = 127.0.0.1
# SERVICES

group = sms-service
keyword = www
text = You asked nothing and I did it!
catch-all = true
# this service is for Kannel relay testing, when this Kannel
# works as relay gateway
group = sms-service
keyword = relay
get-url = 
http://localhost:13013/sms?user=kannelpass=rL4yfrom=%pto=%Ptext=%r;
max-messages = 2
concatenation = true

# there should be default always

group = sms-service
keyword = default
get-url=http://localhost:13013/sms?user=jappass=smskillerfrom=%pto=%Ptext=%r;
max-messages = 2
concatenation = true
text = No service specified
group = smsc
smsc = at2
modemtype = wavecom
device = /dev/ttyS1
speed = 9600
## modems.conf ##
group = modems
id = wavecom
name = Wavecom
detect-string = WAVECOM
The bearerbox stop with the message look like this

...
2003-06-19 18:31:40 [6] DEBUG: AT2[/dev/ttyS1]: device opened
2003-06-19 18:31:40 [6] INFO: AT2[/dev/ttyS1]: init device
2003-06-19 18:31:40 [6] INFO: AT2[/dev/ttyS1]: speed set to 9600
2003-06-19 18:31:40 [6] DEBUG: AT2[/dev/ttyS1]: -- AT^M
I think it occure some problem about my configuration, Does anybody can help 
me ?

kannel log look like this

2003-06-19 18:31:40 [0] INFO: Added logfile `/tmp/kannel.log' with level 
`0'.
2003-06-19 18:31:40 [0] INFO: Started access logfile `access.log'.
2003-06-19 18:31:40 [0] DEBUG: Started thread 1 
(gw/bb_store.c:store_cleanup)
2003-06-19 18:31:40 [0] DEBUG: HTTP: Opening server at port 13000.
2003-06-19 18:31:40 [0] DEBUG: Started thread 2 (gwlib/fdset.c:poller)
2003-06-19 18:31:40 [0] DEBUG: Started thread 3 (gwlib/http.c:server_thread)
2003-06-19 18:31:40 [0] DEBUG: Started thread 4 (gw/bb_http.c:httpadmin_run)
2003-06-19 18:31:40 [0] DEBUG: starting smsbox connection module
2003-06-19 18:31:40 [0] DEBUG: Started thread 5 (gw/bb_boxc.c:smsboxc_run)
2003-06-19 18:31:40 [0] INFO: AT2[/dev/ttyS1]: configuration shows modemtype 
wavecom
2003-06-19 18:31:40 [0] DEBUG: AT2[/dev/ttyS1]: Reading modem definitions 
from gsmmodem.conf
2003-06-19 18:31:40 [0] DEBUG: AT2[/dev/ttyS1]: Found 1 modems in config
2003-06-19 18:31:40 [0] INFO: AT2[/dev/ttyS1]: read modem definition for 
Wavecom
2003-06-19 18:31:40 [0] DEBUG: Started thread 6 
(gw/smsc/smsc_at2.c:at2_device_thread)
2003-06-19 18:31:40 [0] DEBUG: Started thread 7 
(gw/bb_smscconn.c:sms_router)
2003-06-19 18:31:40 [0] INFO: 
2003-06-19 18:31:40 [0] INFO: Kannel bearerbox II version 1.2.1 starting
2003-06-19 18:31:40 [6] INFO: AT2[/dev/ttyS1]: opening device
2003-06-19 18:31:40 [6] DEBUG: AT2[/dev/ttyS1]: device opened
2003-06-19 18:31:40 [7] DEBUG: sms_router: time to sleep
2003-06-19 18:31:40 [0] INFO: Loading store file kannel.store
2003-06-19 18:31:40 [0] INFO: Store-file size 0, starting to unpack
2003-06-19 18:31:40 [0] INFO: Retrieved 0 messages, non-acknowledged 
messages: 0
2003-06-19 18:31:40 [0] INFO: MAIN: Start-up done, entering mainloop
2003-06-19 18:31:40 [0] DEBUG: AT2[/dev/ttyS1]: start called
2003-06-19 18:31:40 [7] DEBUG: sms_router: list_len = 0
2003-06-19 18:31:40 [6] DEBUG: AT2[/dev/ttyS1]: device opened
2003-06-19 18:31:40 [6] INFO: AT2[/dev/ttyS1]: init device
2003-06-19 18:31:40 [6] INFO: AT2[/dev/ttyS1]: speed set to 9600
2003-06-19 18:31:40 [6] DEBUG: AT2[/dev/ttyS1]: -- AT^M



Thanks so much

Jap

_
Add photos to your e-mail with MSN 8. Get 2 months FREE*. 
http://join.msn.com/?page=features/featuredemail




[RFC] changing defaults of SMPP TON and NPI for MT?

2003-06-19 Thread Stipe Tolj
Hi list,

I'd like to have a quick voting for chaning the current defaults
settings for the SMPP module for the TON and NPI values.

Currently we have:

/* setup default values */ 
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_ton = GSM_ADDR_TON_NATIONAL; /*
national */ 
pdu-u.submit_sm.dest_addr_npi = GSM_ADDR_NPI_E164; /* ISDN
number plan */ 

I'd like to change to:

pdu-u.submit_sm.source_addr_ton = GSM_ADDR_TON_INTERNATIONAL; 
pdu-u.submit_sm.dest_addr_ton = GSM_ADDR_TON_INTERNATIONAL; 

please votes and comments.

Stipe

[EMAIL PROTECTED]
---
Wapme Systems AG

Vogelsanger Weg 80
40470 Düsseldorf

Tel: +49-211-74845-0
Fax: +49-211-74845-299

E-Mail: [EMAIL PROTECTED]
Internet: http://www.wapme-systems.de
---
wapme.net - wherever you are



Re: Fw: Incorrect Validity Time

2003-06-19 Thread Stipe Tolj
Hi Patrick,

  my GSM provider has requested to to put the Validity flag to 8 hours.
  we did it but aftter about 10 hours the SMSC started to have these errors
 
  PROVIDER ERROR MESSAGE 
  06/06 18:52:32 AMP:uac_amppdu001 trace  AMP PDU Trace, SMPP: Incorrect
  Validity Time: 030607030006076+
  06/06 18:52:32 AMP:uac_amppdu001 trace  AMP PDU Trace, SMPP: Incorrect
  Validity Time: 030607030006076+
  06/06 18:52:32 AMP:uac_amppdu001 trace  AMP PDU Trace, SMPP: Incorrect
  Validity Time: 030607030006076+
  06/06 18:52:32 AMP:uac_amppdu001 trace  AMP PDU Trace, SMPP: Incorrect
  Validity Time: 030607030006076+
  06/06 18:52:32 AMP:uac_amppdu001 trace  AMP PDU Trace, SMPP: Incorrect
  Validity Time: 030607030006076+
  06/06 18:52:32 AMP:uac_amppdu001 trace  AMP PDU Trace, SMPP: Incorrect
  Validity Time: 030607030006076+
  
 
  in the sms box log file we get a  error response_sm 0X012  which i
  belive is a reserved message..
  what could it be? why do the times on bith servers need to be in sync?

the error you quote can't be inside smsbox log. You may meen
bearerbox's log?

Can you provide us a log extract of it?!

Stipe

[EMAIL PROTECTED]
---
Wapme Systems AG

Vogelsanger Weg 80
40470 Düsseldorf

Tel: +49-211-74845-0
Fax: +49-211-74845-299

E-Mail: [EMAIL PROTECTED]
Internet: http://www.wapme-systems.de
---
wapme.net - wherever you are



Re: Strange smsbox/bearerbox problem : SMS messages not being sent

2003-06-19 Thread Stipe Tolj
Rory Campbell-Lange schrieb:
 
 Thanks very much for your message, Stipe.
 
 Upon enquirey it appears that the target SMPP host only allows 6
 messages a second to pass through on our service. I was trying to send
 150 messages in less than a second!

yeah, Kannel performs very well ;))

 I've slowed down the sending system. However, is there a way of
 throttling the number of messages sent in a second or automatically
 retrying requeued messages when sending clients try to send too many
 messages in a few moments?

not directly in the SMPP module. There is an implementation inside the
EMI/UCP module. This is definetly a issue for the SMSCConn abstraction
layer. 

Bruno and Angel, are you guys agree'ing?

Stipe

[EMAIL PROTECTED]
---
Wapme Systems AG

Vogelsanger Weg 80
40470 Düsseldorf

Tel: +49-211-74845-0
Fax: +49-211-74845-299

E-Mail: [EMAIL PROTECTED]
Internet: http://www.wapme-systems.de
---
wapme.net - wherever you are



Re: FW: Updated Charset.c with greek Alphabet 7-bit encoding

2003-06-19 Thread Stipe Tolj
Andreas Fink wrote:
 
 will probably mean it works in greece but breaks compatibility in other countries.
 I vote -1 for this patch as is. Proper implementation of greek has to be made 
 different. ISO-8859-1 is also not appropriate so there's more to this.

ok, these are serious concerns from Andreas.

Is there a chance that we can use iconv for the mapping?!

Stipe

[EMAIL PROTECTED]
---
Wapme Systems AG

Vogelsanger Weg 80
40470 Düsseldorf

Tel: +49-211-74845-0
Fax: +49-211-74845-299

E-Mail: [EMAIL PROTECTED]
Internet: http://www.wapme-systems.de
---
wapme.net - wherever you are



Re: [RFC] changing defaults of SMPP TON and NPI for MT?

2003-06-19 Thread Stipe Tolj
Alexander Malysh schrieb:
 
 Hi Stipe,
 
 -1 from me.
 
 How do you want recognize national numbers? International numbers can be
 simple detected. They have '+' in front and then we set ton to international
 and remove the plus.

hmm, so you *require* users to send to=%2b49xxx at sendsms HTTP
interface. If someone sends to=49xxx then it will be send with
national TON.

Stipe

[EMAIL PROTECTED]
---
Wapme Systems AG

Vogelsanger Weg 80
40470 Düsseldorf

Tel: +49-211-74845-0
Fax: +49-211-74845-299

E-Mail: [EMAIL PROTECTED]
Internet: http://www.wapme-systems.de
---
wapme.net - wherever you are



Re: Strange smsbox/bearerbox problem : SMS messages not being sent

2003-06-19 Thread Stipe Tolj
Alexander Malysh wrote:
 
 hmm, sleep is very bad (imho). In this sleep time you can maybe handle 100
 delivery receipts instead just sleeping. It would be great to add abstracted
 bandwidth calculation code to kannel and then send only if bandwidth allow
 this.

so sleeping makes only sense if the MT sending thread can be send to
sleep and the MO thread yields for the CPU and the connection.

If the modules use *one* thread for MT and MO, then sleeping is sort
of a problem, that's right.

Stipe

[EMAIL PROTECTED]
---
Wapme Systems AG

Vogelsanger Weg 80
40470 Düsseldorf

Tel: +49-211-74845-0
Fax: +49-211-74845-299

E-Mail: [EMAIL PROTECTED]
Internet: http://www.wapme-systems.de
---
wapme.net - wherever you are



[FYI] recent CIMD2 patch commited, please check

2003-06-19 Thread Stipe Tolj
Hi list,

I have commited now:

2003-06-19  Stipe Tolj  [EMAIL PROTECTED]
* gw/smsc/smsc_cimd2.c: fixed a bug inside CIMD2 module.
  Thanks to Per Skaglund [EMAIL PROTECTED] for the patch.
  [Msg-ID:
[EMAIL PROTECTED]]

if you run CIMD2 connections, please update your local CVS tree and
try this. If there are problems please shout.

Angel, any chance you can give this a quick try?

Stipe

[EMAIL PROTECTED]
---
Wapme Systems AG

Vogelsanger Weg 80
40470 Düsseldorf

Tel: +49-211-74845-0
Fax: +49-211-74845-299

E-Mail: [EMAIL PROTECTED]
Internet: http://www.wapme-systems.de
---
wapme.net - wherever you are



Re: Strange smsbox/bearerbox problem : SMS messages not being sent

2003-06-19 Thread Bruno Rodrigues
Alexander Malysh [EMAIL PROTECTED] wrote:
 Hi Bruno,
 
 Am Donnerstag, 19. Juni 2003 16:03 schrieb Bruno Rodrigues:
 Stipe Tolj [EMAIL PROTECTED] wrote:
  Bruno Rodrigues wrote:
  You need to sleep right after sending the message for it to work.
  We can have configuration code in smsccon abstraction and only that
  usleep inside smsc_* modules.
 
  why not having the whole throttling mechanism inside the abstracted
  layer?
 
  This would also help in AT2 module, because most GSM modems don't like
  be hit by 100 msg/sec. ;)

 If I'm not mistaken, EMI has a list feed by SMSConn or something and
 smsc_emi reads it and feeds it into smsc, so you can't sleep before
 filling that list, you have to sleep right after sending the message (in
 emi case, sleep AFTER receives ack) to take in consideration received
 messages and  other particularities.

 As I told, sleep is one line, just copy/paste it into every module in
 the right place and move microsecond calculation and config file
 processing to smscconn.
 
 hmm, sleep is very bad (imho). In this sleep time you can maybe handle 100 
 delivery receipts instead just sleeping. It would be great to add abstracted 
 bandwidth calculation code to kannel and then send only if bandwidth allow 
 this.

EMI uses one thread for sending and another for receiving. This latter
sends itself ACKs by managing locking with send thread. 
In this case, its ok to sleep in sending thread because it won't affect
receiving one.

I even once needed something to limit incoming messages because I was
receiving more messages than the other java service could handle, and
store.lock was growing madly with mt-reply messages. If we have some
kind of throthling in input, we can let them stay in smsc queue instead
of kannel queue. Maybe a automatic throtling in smsc if queue-out larger
than something. I don'tknow...

 




Re: Bug in log.c

2003-06-19 Thread Stipe Tolj
 a) change gwthread code to use the freed slot ID number instead of
 incrementing. So we will never have a thread id above 1024 (which is
 the hard thread limit).
 b) thing how we can map the thread to the exlusive log file

to be honest I'd like to pick a), because b) should be pretty fast
because the logging functions are called a lot on high-load systems,
so this has to be very fast and array lookups are pretty fast.

Stipe

[EMAIL PROTECTED]
---
Wapme Systems AG

Vogelsanger Weg 80
40470 Düsseldorf

Tel: +49-211-74845-0
Fax: +49-211-74845-299

E-Mail: [EMAIL PROTECTED]
Internet: http://www.wapme-systems.de
---
wapme.net - wherever you are



Re: Strange smsbox/bearerbox problem : SMS messages not being sent

2003-06-19 Thread Stipe Tolj
Rory Campbell-Lange wrote:
 
 The only error codes I'm getting are:
 2003-06-06 20:42:53 [8] ERROR: SMPP[orangelong]: SMSC returned error
 code 0x0045 in response to submit_sm.

according to SMPP specs this is considered to be a *general* error for
a submit_sm PDU. (seee SMPP v3.4, p. 113).

Stipe

[EMAIL PROTECTED]
---
Wapme Systems AG

Vogelsanger Weg 80
40470 Düsseldorf

Tel: +49-211-74845-0
Fax: +49-211-74845-299

E-Mail: [EMAIL PROTECTED]
Internet: http://www.wapme-systems.de
---
wapme.net - wherever you are



Re: Bug in log.c

2003-06-19 Thread Konstantin Vayner
imho there is no point logging each _thread_ into separate file...
maybe instead logging thread _types_ into separate files?
then , mapping can be made on thread name instead of id...
Stipe Tolj wrote:

ok,

so we have 2 alternative here:

a) change gwthread code to use the freed slot ID number instead of
incrementing. So we will never have a thread id above 1024 (which is
the hard thread limit).
b) thing how we can map the thread to the exlusive log file
any ideas?!

Stipe

[EMAIL PROTECTED]
---
Wapme Systems AG
Vogelsanger Weg 80
40470 Düsseldorf
Tel: +49-211-74845-0
Fax: +49-211-74845-299
E-Mail: [EMAIL PROTECTED]
Internet: http://www.wapme-systems.de
---
wapme.net - wherever you are
 






Re: Kannel SMPP interface !

2003-06-19 Thread Nisan Bloch
Hi
At 01:53 PM 6/8/03 +0200, Stipe Tolj wrote:
yes there is. We at Wapme have those beasts arround here still in
cages ;)
yeah.. ditto...


So could some people *please* think of how to handle configure/make of
external cvs modules with the gateway cvs module as base core.
Here is a very rough idea..
How about keeping it simple.
for the SMSC/bearerbox end - a config file that specifies a smsc_type, and 
the entry function names and a .so that we can use dlopen to load.
eg for smpp it could look like this

group=smsc_module
smsc_type=smpp
so_file=smsc_smpp.so
smsc_create=smsc_smpp_create
Then for the smsbox end. These are essentially standalone apps that 
connect to Kannel via bearerbox and send messages.

So I think we should split the gw directory again, much like we split of 
gw/smsc

kannel/gwlib
kannel/gw
kannel/smsc
kannel/boxes/smsbox : split out the smsbox
kannel/boxes/wapbox : split out the smsbox
...
Then the
add on boxes can fit into there own kannel/boxes/foobar directory, or even 
in a totally separate tree. One could even supply binaries (though 
hopefully not) of boxes, or build Kannel support into commercial apps using 
libs other than gwlib.

The configure/make can work just like smsbox, wapbox etc do now.  When and 
as new front end modules get added we can add --with-smpp --with-emi 
--with-apachemod.

Nisan
Stipe

[EMAIL PROTECTED]
---
Wapme Systems AG
Vogelsanger Weg 80
40470 Düsseldorf
Tel: +49-211-74845-0
Fax: +49-211-74845-299
E-Mail: [EMAIL PROTECTED]
Internet: http://www.wapme-systems.de
---
wapme.net - wherever you are




Re: Bug in log.c

2003-06-19 Thread Konstantin Vayner
a hard limit to reach in normal life - but can still become an issue if 
someone is trying to crash the machine...
for example, opening 2000 concurrent connections to the machine from the 
outside will pass the 1024 barrier without any problem...

Stipe Tolj wrote:

a) change gwthread code to use the freed slot ID number instead of
incrementing. So we will never have a thread id above 1024 (which is
the hard thread limit).
b) thing how we can map the thread to the exlusive log file
   

to be honest I'd like to pick a), because b) should be pretty fast
because the logging functions are called a lot on high-load systems,
so this has to be very fast and array lookups are pretty fast.
Stipe

[EMAIL PROTECTED]
---
Wapme Systems AG
Vogelsanger Weg 80
40470 Düsseldorf
Tel: +49-211-74845-0
Fax: +49-211-74845-299
E-Mail: [EMAIL PROTECTED]
Internet: http://www.wapme-systems.de
---
wapme.net - wherever you are
 






RE: Bug in log.c

2003-06-19 Thread Michael Mulcahy
Hi All,

Found a solution that I think should be ok.

In the gwthread-module the table is size 1024.
While the thread number may increase byond it the
id is a modulo of 1024 and so the modulo can be
used in the log.c to prevent the prior mentioned
problem.


suggested fix would be to use following:

if ((e = thread_to[(gwthread_self()%1024)])) {

Have tested this and appears to work.

Sorry for not spotting this earlier.

Kindest Regards,
Michael.


 -Original Message-
 From: [EMAIL PROTECTED]
 [mailto:[EMAIL PROTECTED] Behalf Of
 Stipe Tolj
 Sent: 19 June 2003 17:04
 To: Nisan Bloch
 Cc: [EMAIL PROTECTED]; [EMAIL PROTECTED]
 Subject: Re: Bug in log.c


 Nisan Bloch schrieb:
 
  Hi
 
  We run into this all the time with out SMPP server. Threads
 are spawned for
  new ESME connections and terminated on disconnect. Some of our users
  connect and disconnect very regularily and the thread-id
 often goes over
  1024. This however means quite a few changes to the way the
 log stuff
  currently works. We may have to use a list instead of an array.

 hmmm, list are *slow* compared to a fixed array.

 You have to keep in mind that the logging functions are caller
 *really* a lot of times anywhere in the code, so the mapping has to be
 as fast as possible.

 Is there any concern in changing gwthread-pthread.c code in cycling
 between 1-1024 for the thread_ids instead of incrementing?!

 Stipe

 [EMAIL PROTECTED]
 ---
 Wapme Systems AG

 Vogelsanger Weg 80
 40470 Düsseldorf

 Tel: +49-211-74845-0
 Fax: +49-211-74845-299

 E-Mail: [EMAIL PROTECTED]
 Internet: http://www.wapme-systems.de
 ---
 wapme.net - wherever you are





Re: Bug in log.c

2003-06-19 Thread Alexander Malysh
Hi,

Am Donnerstag, 19. Juni 2003 18:36 schrieb Stipe Tolj:
 Michael Mulcahy schrieb:
  Hi All,
 
  Found a solution that I think should be ok.
 
  In the gwthread-module the table is size 1024.
  While the thread number may increase byond it the
  id is a modulo of 1024 and so the modulo can be
  used in the log.c to prevent the prior mentioned
  problem.
 
  suggested fix would be to use following:
 
  if ((e = thread_to[(gwthread_self()%1024)])) {
 
  Have tested this and appears to work.

 how about having this inside gwthread-pthread.c as function:

 /* Return the threadtable sloot this thread is using. */
 long gwthread_table_slot(void)
 {
 return (gwthread_self() % THREADTABLE_SIZE);
 }

 and use this call instead of gwthread_self() for the logging
 functions?!

how about just reusing of freed thread number for next tread ?

static void delete_threadinfo(void)
{
struct threadinfo *threadinfo;

threadinfo = getthreadinfo();
list_destroy(threadinfo-joiners, NULL);
close(threadinfo-wakefd_recv);
close(threadinfo-wakefd_send);
THREAD(threadinfo-number) = NULL;
active_threads--;
next_threadnumber = threadinfo-number; /* reuse tread numer */
gw_assert(threadinfo != mainthread);
gw_free(threadinfo);
}



 Stipe

 [EMAIL PROTECTED]
 ---
 Wapme Systems AG

 Vogelsanger Weg 80
 40470 Düsseldorf

 Tel: +49-211-74845-0
 Fax: +49-211-74845-299

 E-Mail: [EMAIL PROTECTED]
 Internet: http://www.wapme-systems.de
 ---
 wapme.net - wherever you are

-- 
Best regards / Mit besten Grüßen aus Köln

Dipl.-Ing.
Alexander Malysh
___

Centrium GmbH
Ehrenstrasse 2
50672 Köln

Fon: +49 (0221) 277 49 240
Fax: +49 (0221) 277 49 109

email: a.malysh at centrium.de
web: http://www.centrium.de
msn: olek2002 at hotmail.com
___

Please avoid sending me Word or PowerPoint attachments.
See http://www.fsf.org/philosophy/no-word-attachments.html




Re: Bug in log.c

2003-06-19 Thread Alexander Malysh
oops, that was wrong :(

here is the possible solution:
static void delete_threadinfo(void)
{
struct threadinfo *threadinfo;

threadinfo = getthreadinfo();
list_destroy(threadinfo-joiners, NULL);
close(threadinfo-wakefd_recv);
close(threadinfo-wakefd_send);
THREAD(threadinfo-number) = NULL;
active_threads--;
if (threadinfo-number  next_threadnumber)
next_threadnumber = threadinfo-number;
gw_assert(threadinfo != mainthread);
gw_free(threadinfo);
}

next_threadnumber is always the min. free slot number.
worst case while creating new thread: 
next_threadnumber is used then max MAX_THREATABLE_SIZE-next_threadnumber 
loop.

Am Donnerstag, 19. Juni 2003 18:52 schrieb Alexander Malysh:
 Hi,

 Am Donnerstag, 19. Juni 2003 18:36 schrieb Stipe Tolj:
  Michael Mulcahy schrieb:
   Hi All,
  
   Found a solution that I think should be ok.
  
   In the gwthread-module the table is size 1024.
   While the thread number may increase byond it the
   id is a modulo of 1024 and so the modulo can be
   used in the log.c to prevent the prior mentioned
   problem.
  
   suggested fix would be to use following:
  
   if ((e = thread_to[(gwthread_self()%1024)])) {
  
   Have tested this and appears to work.
 
  how about having this inside gwthread-pthread.c as function:
 
  /* Return the threadtable sloot this thread is using. */
  long gwthread_table_slot(void)
  {
  return (gwthread_self() % THREADTABLE_SIZE);
  }
 
  and use this call instead of gwthread_self() for the logging
  functions?!

 how about just reusing of freed thread number for next tread ?

 static void delete_threadinfo(void)
 {
 struct threadinfo *threadinfo;

 threadinfo = getthreadinfo();
 list_destroy(threadinfo-joiners, NULL);
 close(threadinfo-wakefd_recv);
 close(threadinfo-wakefd_send);
 THREAD(threadinfo-number) = NULL;
 active_threads--;
 next_threadnumber = threadinfo-number; /* reuse tread numer */
 gw_assert(threadinfo != mainthread);
 gw_free(threadinfo);
 }

  Stipe
 
  [EMAIL PROTECTED]
  ---
  Wapme Systems AG
 
  Vogelsanger Weg 80
  40470 Düsseldorf
 
  Tel: +49-211-74845-0
  Fax: +49-211-74845-299
 
  E-Mail: [EMAIL PROTECTED]
  Internet: http://www.wapme-systems.de
  ---
  wapme.net - wherever you are

-- 
Best regards / Mit besten Grüßen aus Köln

Dipl.-Ing.
Alexander Malysh
___

Centrium GmbH
Ehrenstrasse 2
50672 Köln

Fon: +49 (0221) 277 49 240
Fax: +49 (0221) 277 49 109

email: a.malysh at centrium.de
web: http://www.centrium.de
msn: olek2002 at hotmail.com
___

Please avoid sending me Word or PowerPoint attachments.
See http://www.fsf.org/philosophy/no-word-attachments.html




Re: Need some input for a development job

2003-06-19 Thread Rory Campbell-Lange
Do the stuck messages show up as queued. If so I have the same problem
after trying to send too many messages a second to the target SMSC.

On 19/06/03, Jarrod Hermer ([EMAIL PROTECTED]) wrote:
 First off I want to say what a fantastic product Kannel is and that it
 has been working for us very well over the past few months. Except for
 one niggling issue, which I think is also a problem for some other
 people using SMPP to deliver messages - messages getting stuck in
 the store file and not being delivered until Kannel gets restarted.
-- 
Rory Campbell-Lange 
[EMAIL PROTECTED]
www.campbell-lange.net



Re: Bug in log.c

2003-06-19 Thread Stipe Tolj
ok, I just commited this:

2003-06-19  Stipe Tolj  [EMAIL PROTECTED]
* gwlib/gwthread.h, gwlib/gwthread-pthread.c: added function 
  gwthread_table_slot() to provide the slot integer of threadtable
  the thread is using.
* gwlib/log.c: fixed Michael's reported bug for the logging
functions.

please update your trees and check.

It implements the module access to the thread[] mapping table inside
the logging module to ensure we don't access over the array limit.

Because gwthread_self() is unique and assigned to a free slot when the
thread is registered, also (gwthread_self() % THREADTABLE_SIZE) is
unique and provides us with the correct slot the thread belongs to.

Stipe

[EMAIL PROTECTED]
---
Wapme Systems AG

Vogelsanger Weg 80
40470 Düsseldorf

Tel: +49-211-74845-0
Fax: +49-211-74845-299

E-Mail: [EMAIL PROTECTED]
Internet: http://www.wapme-systems.de
---
wapme.net - wherever you are



Re: [PATCH] rewrite/cleanup of dlr handling (new)

2003-06-19 Thread Nisan Bloch
Hi

what happened to this?

Nisan
At 12:17 AM 5/27/03 +0200, Alexander Malysh wrote:
Hi all,

sorry first mail has wrong diff :(

attached big patch does following:
1) adds more abstraction to dlr handling
2) makes it easier to add new dlr storage types to kannel without
touching a dlr-core code
3) makes dlr-core ready for coming (hopefully soon) modules API
4) makes handling/creating of dlr messages uniformly over all storage
types
Please look in it.

Comments are very welcome...

--
Best regards / Mit besten Grüßen aus Köln
Dipl.-Ing.
Alexander Malysh
___
Centrium GmbH
Ehrenstrasse 2
50672 Köln
Fon: +49 (0221) 277 49 240
Fax: +49 (0221) 277 49 109
email: a.malysh at centrium.de
web: http://www.centrium.de
msn: olek2002 at hotmail.com
___
Please avoid sending me Word or PowerPoint attachments.
See http://www.fsf.org/philosophy/no-word-attachments.html




Re: [PATCH] rewrite/cleanup of dlr handling (new)

2003-06-19 Thread Stipe Tolj
Nisan Bloch wrote:
 
 Hi
 
 what happened to this?

I'm just reading it. Unfortunatly it's huge and even in unified diff
almost unreadable to understand what happens.

Maybe you Nisan can explain a bit?!

Have you tested Alexander's code again SMSCs?

Stipe

[EMAIL PROTECTED]
---
Wapme Systems AG

Vogelsanger Weg 80
40470 Düsseldorf

Tel: +49-211-74845-0
Fax: +49-211-74845-299

E-Mail: [EMAIL PROTECTED]
Internet: http://www.wapme-systems.de
---
wapme.net - wherever you are



Re: [RFC] changing defaults of SMPP TON and NPI for MT?

2003-06-19 Thread Andreas Fink

On Jeudi, juin 19, 2003, at 04:00  Uhr, Stipe Tolj wrote:

Alexander Malysh schrieb:
Hi Stipe,

-1 from me.

How do you want recognize national numbers? International numbers can be
simple detected. They have '+' in front and then we set ton to international
and remove the plus.

hmm, so you *require* users to send to=%2b49xxx at sendsms HTTP
interface. If someone sends to=49xxx then it will be send with
national TON.

sure. that makes SENSE.
and if you disagree, you can force it with setting ton=international in the config file.
default should be autodetect. + clearly indicates international, anything else is a guess which would be 00... international, 0{1...9} or {1...9} would be national or subscriber or unknown.

my recommendation would be for autodetect (default case)

+ -> international
anything else -> unknown

unless you force it in config file to something specific in which case autodetect would be off.

Andreas Fink
Global Networks Switzerland AG

--
Tel: +41-61-333  Fax: +41-61-334   Mobile: +41-79-2457333
Global Networks, Inc. Clarastrasse 3, 4058 Basel, Switzerland
Web: http://www.global-networks.ch/  [EMAIL PROTECTED]
--



Re: Strange smsbox/bearerbox problem : SMS messages not being sent

2003-06-19 Thread Stipe Tolj
Andreas Fink wrote:
 
 AT2 module sleeps anyway and waits for ACK from modem before proceeding.
 So adding sleeps there is not making any sense unless you wana limit it to have only 
 1 message every minute or such.

ok, I wasn't aware of it right now. That's fine with me then.

Stipe

[EMAIL PROTECTED]
---
Wapme Systems AG

Vogelsanger Weg 80
40470 Düsseldorf

Tel: +49-211-74845-0
Fax: +49-211-74845-299

E-Mail: [EMAIL PROTECTED]
Internet: http://www.wapme-systems.de
---
wapme.net - wherever you are



Re: [PATCH] rewrite/cleanup of dlr handling (new)

2003-06-19 Thread Stipe Tolj
Alexander Malysh wrote:
 
 sorry first mail has wrong diff :(
 
 attached big patch does following:
 1) adds more abstraction to dlr handling
 2) makes it easier to add new dlr storage types to kannel without
 touching a dlr-core code
 3) makes dlr-core ready for coming (hopefully soon) modules API
 4) makes handling/creating of dlr messages uniformly over all storage
 types
 
 Please look in it.
 
 Comments are very welcome...

ok, looks good to me. +1. will commit this.

Stipe

[EMAIL PROTECTED]
---
Wapme Systems AG

Vogelsanger Weg 80
40470 Düsseldorf

Tel: +49-211-74845-0
Fax: +49-211-74845-299

E-Mail: [EMAIL PROTECTED]
Internet: http://www.wapme-systems.de
---
wapme.net - wherever you are



Re: [PATCH] rewrite/cleanup of dlr handling (new)

2003-06-19 Thread Alexander Malysh
Hi,

i found a small memleak after it ...
Attached you can find corrected version of this patch.
I can say, mysql and internal where tested and works on our production systems 
without any problems. libsdb is not tested yet, but should work, because i 
have not changed any calls to the library itself. So please people, who use 
libsdb, test it!

What happens is pretty simple ;)

1. if dlr_init calls then here storage will be initilialized return pointer to 
operations struct. pls consult dlr_p.h for possible operations on the 
storage.
2. If dlr_find calls then core dlr do following:
call storage get function
create new dlr message
check if this end status of message (e.g. delivered or undelivered) and then 
delete the message by calling of remove storage funct. if end state not 
reached then call storage update status entry funct. (its optional, that 
means, if storage define this funct. it will be called otherwise not)
3. dlr_status just call storage status funct. 

and so on ...

So if any questions about this code should be here, then ask!


Am Donnerstag, 19. Juni 2003 20:02 schrieb Stipe Tolj:
 Nisan Bloch wrote:
  Hi
 
  what happened to this?

 I'm just reading it. Unfortunatly it's huge and even in unified diff
 almost unreadable to understand what happens.

 Maybe you Nisan can explain a bit?!

 Have you tested Alexander's code again SMSCs?

 Stipe

 [EMAIL PROTECTED]
 ---
 Wapme Systems AG

 Vogelsanger Weg 80
 40470 Düsseldorf

 Tel: +49-211-74845-0
 Fax: +49-211-74845-299

 E-Mail: [EMAIL PROTECTED]
 Internet: http://www.wapme-systems.de
 ---
 wapme.net - wherever you are

-- 
Best regards / Mit besten Grüßen aus Köln

Dipl.-Ing.
Alexander Malysh
___

Centrium GmbH
Ehrenstrasse 2
50672 Köln

Fon: +49 (0221) 277 49 240
Fax: +49 (0221) 277 49 109

email: a.malysh at centrium.de
web: http://www.centrium.de
msn: olek2002 at hotmail.com
___

Please avoid sending me Word or PowerPoint attachments.
See http://www.fsf.org/philosophy/no-word-attachments.html
? doc/alligata/alligata.tex
? test/test_dbpool
? test/test_md5
? test/test_octstr_dump
? utils/mtbatch
Index: gw/bearerbox.c
===
RCS file: /home/cvs/gateway/gw/bearerbox.c,v
retrieving revision 1.139
diff -a -u -b -r1.139 bearerbox.c
--- gw/bearerbox.c	26 May 2003 18:37:11 -	1.139
+++ gw/bearerbox.c	17 Jun 2003 20:06:20 -
@@ -735,7 +735,7 @@
 (float)counter_value(incoming_sms_counter)/t,
 (float)counter_value(outgoing_sms_counter)/t,
 dlr_messages(),
-octstr_get_cstr(dlr_type));
+dlr_type());
 
 octstr_destroy(version);
 ret = octstr_create(buf);
Index: gw/dlr.c
===
RCS file: /home/cvs/gateway/gw/dlr.c,v
retrieving revision 1.33
diff -a -u -b -r1.33 dlr.c
--- gw/dlr.c	27 Feb 2003 09:48:59 -	1.33
+++ gw/dlr.c	17 Jun 2003 20:06:21 -
@@ -5,6 +5,7 @@
  *
  * Andreas Fink [EMAIL PROTECTED], 18.08.2001
  * Stipe Tolj [EMAIL PROTECTED], 22.03.2002
+ * Alexander Malysh [EMAIL PROTECTED] 2003
  *
  * Changes:
  * 2001-12-17: [EMAIL PROTECTED]:
@@ -31,229 +32,147 @@
 #include gwlib/gwlib.h
 #include sms.h
 #include dlr.h
+#include dlr_p.h
+
+/* Our callback functions */
+static struct dlr_storage *handles = NULL;
+
 
 /*
-#define DLR_TRACE 1 
-*/
-/* 
- * We use memory based DLR
- * the structure of a delivery report waiting list entry 
+ * Function to allocate a new struct dlr_entry entry
+ * and intialize it to zero
  */
+struct dlr_entry *dlr_entry_create()
+{
+struct dlr_entry *dlr;
 
-typedef struct dlr_wle {
-   Octstr *smsc;
-   Octstr *timestamp;	
-   Octstr *source;
-   Octstr *destination;
-   Octstr *service;
-   Octstr *url;	
-   int mask;
-   Octstr *boxc_id;
-} dlr_wle;
-
-/* 
- * This is the global list where all messages being sent out are being kept track 
- * of his list is looked up once a delivery report comes in 
- */
-static List *dlr_waiting_list;
-static void dlr_destroy(dlr_wle *dlr);
-static void dlr_init_mem(void);
-#ifdef DLR_MYSQL
-static void dlr_init_mysql(Cfg* cfg);
-#endif
-#ifdef DLR_SDB
-static void dlr_init_sdb(Cfg* cfg);
-#endif
-static void dlr_shutdown_mem(void);
-static void dlr_shutdown_mysql(void);
-static dlr_wle *dlr_new(void);
+dlr = gw_malloc(sizeof(*dlr));
+gw_assert(dlr != NULL);
+
+/* set all values to NULL */
+memset(dlr, 0, sizeof(*dlr));
+
+return dlr;
+}
 
 /* 
- * At startup initialize the list, use abstraction to
- * allow to add additional dlr_init_foobar() routines here.
- * 
- * Check 'dlr-storage' directive in core group to see how DLRs are
- * processed.
+ * Duplicate dlr entry
  */
-
-static void dlr_init_mem()
+struct dlr_entry *dlr_entry_duplicate(const struct 

Re: [PATCH] rewrite/cleanup of dlr handling (new)

2003-06-19 Thread Stipe Tolj
Alexander Malysh wrote:
 
 i found a small memleak after it ...
 Attached you can find corrected version of this patch.
 I can say, mysql and internal where tested and works on our production systems
 without any problems. libsdb is not tested yet, but should work, because i
 have not changed any calls to the library itself. So please people, who use
 libsdb, test it!
 
 What happens is pretty simple ;)
 
 1. if dlr_init calls then here storage will be initilialized return pointer to
 operations struct. pls consult dlr_p.h for possible operations on the
 storage.
 2. If dlr_find calls then core dlr do following:
 call storage get function
 create new dlr message
 check if this end status of message (e.g. delivered or undelivered) and then
 delete the message by calling of remove storage funct. if end state not
 reached then call storage update status entry funct. (its optional, that
 means, if storage define this funct. it will be called otherwise not)
 3. dlr_status just call storage status funct.
 
 and so on ...

+1, commited to cvs.

Stipe

[EMAIL PROTECTED]
---
Wapme Systems AG

Vogelsanger Weg 80
40470 Düsseldorf

Tel: +49-211-74845-0
Fax: +49-211-74845-299

E-Mail: [EMAIL PROTECTED]
Internet: http://www.wapme-systems.de
---
wapme.net - wherever you are



Re: [PATCH] rewrite/cleanup of dlr handling (new)

2003-06-19 Thread Alexander Malysh
Hi Andreas,

Am Donnerstag, 19. Juni 2003 21:08 schrieb Andreas Fink:
 On Jeudi, juin 19, 2003, at 08:33  Uhr, Alexander Malysh wrote:
  Hi,
 
  i found a small memleak after it ...
  Attached you can find corrected version of this patch.
  I can say, mysql and internal where tested and works on our production
  systems
  without any problems. libsdb is not tested yet, but should work,
  because i
  have not changed any calls to the library itself. So please people,
  who use
  libsdb, test it!
 
  What happens is pretty simple ;)
 
  1. if dlr_init calls then here storage will be initilialized return
  pointer to
  operations struct. pls consult dlr_p.h for possible operations on the
  storage.
  2. If dlr_find calls then core dlr do following:
  call storage get function
  create new dlr message
  check if this end status of message (e.g. delivered or undelivered)
  and then
  delete the message by calling of remove storage funct. if end state not
  reached then call storage update status entry funct. (its optional,
  that
  means, if storage define this funct. it will be called otherwise not)
  3. dlr_status just call storage status funct.

 I looked at the patch but I don't understand what the cleanup purpose
 was..
 can you explain?

sure...
1) make easier to add new dlr storage types to kannel without   
touching a dlr-core code. With old dlr handling you must to go over all 
storage types in order to add your's. Now u must simple implement clear 
defined operations for your storage type without touching any line in dlr 
core handling. Yet not fully true, due to lack of modules API, now you must 
add your new storage type (equal to SMSCConn) to dlr_init function.

2) not equal creating of dlrs for different storage types. In old dlr code we 
have for example in internal storage reversed source and destination addr in 
dlr msg but not in mysql. 

3) that had grown with the time and looks bad ;) 

this is the same as for SMSCConn... why it was rewriten? a: in order to get 
things clearer and easier to handle...



 Andreas Fink
 Global Networks Switzerland AG

 --
 Tel: +41-61-333  Fax: +41-61-334   Mobile: +41-79-2457333
 Global Networks, Inc. Clarastrasse 3, 4058 Basel, Switzerland
 Web: http://www.global-networks.ch/  [EMAIL PROTECTED]
 --

-- 
Best regards / Mit besten Grüßen aus Köln

Dipl.-Ing.
Alexander Malysh
___

Centrium GmbH
Ehrenstrasse 2
50672 Köln

Fon: +49 (0221) 277 49 240
Fax: +49 (0221) 277 49 109

email: a.malysh at centrium.de
web: http://www.centrium.de
msn: olek2002 at hotmail.com
___

Please avoid sending me Word or PowerPoint attachments.
See http://www.fsf.org/philosophy/no-word-attachments.html




RE: Bug in log.c

2003-06-19 Thread Michael Mulcahy
 so what if I have a thread 10 which is a EMI/UCP process and
 suddendly a new process gets added with 1034? we have a new conflict...

No, that what I thought as well, but the gwthread-pthread.c takes
care of that problem.

see gwthread-pthread.c

/* Find a free table entry and claim it. */
first_try = next_threadnumber;
do {
ti-number = next_threadnumber++;
/* Check if we looped all the way around the thread table. */
if (ti-number == first_try + THREADTABLE_SIZE) {
panic(0, Cannot have more than %d active threads,
  THREADTABLE_SIZE);
}
} while (THREAD(ti-number) != NULL);
THREAD(ti-number) = ti;

active_threads++;

where THREAD(t) is:
#define THREAD(t) (threadtable[(t) % THREADTABLE_SIZE])


The thread number is incremented and the mod 1024 position in
array is checked to see if an entry exists. If an entry exists then
the thread number is incremented again.

Just to clarify this in my own mind I wrote a program
essentially the following:

/* create 100 threads that sleep indefinitely */
for (i; i  100; i++)
gwthread_create(sleepy_thread, val);

/* create 100 threads that sleep for small bit */
for (i = 0; i  2000; i++)
{
gwthread_create(sleepy_thread, val2);
gwthread_sleep(0.1);
}


the output shows how the thread number works:
2003-06-19 18:17:18 [0] DEBUG: Started thread 1021
(C:\dev\wirelesswindow\test\test_threads.c:sleepy_thread)
2003-06-19 18:17:18 [0] DEBUG: Started thread 1022
(C:\dev\wirelesswindow\test\test_threads.c:sleepy_thread)
2003-06-19 18:17:19 [0] DEBUG: Started thread 1023
(C:\dev\wirelesswindow\test\test_threads.c:sleepy_thread)
2003-06-19 18:17:19 [0] DEBUG: Started thread 1125
(C:\dev\wirelesswindow\test\test_threads.c:sleepy_thread)
2003-06-19 18:17:19 [0] DEBUG: Started thread 1126
(C:\dev\wirelesswindow\test\test_threads.c:sleepy_thread)
2003-06-19 18:17:19 [0] DEBUG: Started thread 1127
(C:\dev\wirelesswindow\test\test_threads.c:sleepy_thread)
2003-06-19 18:17:19 [0] DEBUG: Started thread 1128
(C:\dev\wirelesswindow\test\test_threads.c:sleepy_thread)
2003-06-19 18:17:19 [0] DEBUG: Started thread 1129
(C:\dev\wirelesswindow\test\test_threads.c:sleepy_thread)
2003-06-19 18:17:19 [0] DEBUG: Started thread 1130
(C:\dev\wirelesswindow\test\test_threads.c:sleepy_thread)
2003-06-19 18:17:19 [0] DEBUG: Started thread 1131
(C:\dev\wirelesswindow\test\test_threads.c:sleepy_thread)


-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of
Andreas Fink
Sent: 19 June 2003 17:55
To: [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
Subject: Re: Bug in log.c



On Jeudi, juin 19, 2003, at 06:26 Uhr, Michael Mulcahy wrote:


Hi All,

Found a solution that I think should be ok.

In the gwthread-module the table is size 1024.
While the thread number may increase byond it the
id is a modulo of 1024 and so the modulo can be
used in the log.c to prevent the prior mentioned
problem.


suggested fix would be to use following:

if ((e = thread_to[(gwthread_self()%1024)])) {

Have tested this and appears to work.

Sorry for not spotting this earlier.

Kindest Regards,
Michael.


so what if I have a thread 10 which is a EMI/UCP process and suddendly a new
process gets added with 1034?
we have a new conflict...



Andreas Fink
Global Networks Switzerland AG

--
Tel: +41-61-333 Fax: +41-61-334 Mobile: +41-79-2457333
Global Networks, Inc. Clarastrasse 3, 4058 Basel, Switzerland
Web: http://www.global-networks.ch/  [EMAIL PROTECTED]
--




[RFC] cookie support per detault in wapbox?!

2003-06-19 Thread Stipe Tolj
Hi list,

I'd like to throw the --enable-cookie directive from configure and
make cookie support for wapbox now a permanent default feature.

Any objections for doing this?

Stipe

[EMAIL PROTECTED]
---
Wapme Systems AG

Vogelsanger Weg 80
40470 Düsseldorf

Tel: +49-211-74845-0
Fax: +49-211-74845-299

E-Mail: [EMAIL PROTECTED]
Internet: http://www.wapme-systems.de
---
wapme.net - wherever you are



Re: Bug in log.c

2003-06-19 Thread Stipe Tolj
Andreas Fink schrieb:
 
 
 so what if I have a thread 10 which is a EMI/UCP process and suddendly a new process 
 gets added with 1034?
 we have a new conflict...

ahhh, Andreas *is* right here.

We don't take into account that the threadtable handling does a linear
scan in the threadtable to find a free slot. So the gwthread_self() id
can't be used to determine a unique thread id with the module
operator, right?!

Stipe

[EMAIL PROTECTED]
---
Wapme Systems AG

Vogelsanger Weg 80
40470 Düsseldorf

Tel: +49-211-74845-0
Fax: +49-211-74845-299

E-Mail: [EMAIL PROTECTED]
Internet: http://www.wapme-systems.de
---
wapme.net - wherever you are



Re: Bug in log.c

2003-06-19 Thread Stipe Tolj
Michael Mulcahy schrieb:
 
  so what if I have a thread 10 which is a EMI/UCP process and
  suddendly a new process gets added with 1034? we have a new conflict...
 
 No, that what I thought as well, but the gwthread-pthread.c takes
 care of that problem.
 
 see gwthread-pthread.c
 
 /* Find a free table entry and claim it. */
 first_try = next_threadnumber;
 do {
 ti-number = next_threadnumber++;
 /* Check if we looped all the way around the thread table. */
 if (ti-number == first_try + THREADTABLE_SIZE) {
 panic(0, Cannot have more than %d active threads,
   THREADTABLE_SIZE);
 }
 } while (THREAD(ti-number) != NULL);
 THREAD(ti-number) = ti;
 
 active_threads++;
 
 where THREAD(t) is:
 #define THREAD(t) (threadtable[(t) % THREADTABLE_SIZE])
 
 The thread number is incremented and the mod 1024 position in
 array is checked to see if an entry exists. If an entry exists then
 the thread number is incremented again.

ok, once again I'll chance my opinion ;))

Andreas, do you agree that a (gwthread_self() % THREADTABLE_SIZE)
gives us a runtime unque ID of the thread?

Stipe

[EMAIL PROTECTED]
---
Wapme Systems AG

Vogelsanger Weg 80
40470 Düsseldorf

Tel: +49-211-74845-0
Fax: +49-211-74845-299

E-Mail: [EMAIL PROTECTED]
Internet: http://www.wapme-systems.de
---
wapme.net - wherever you are



GNU autoconf experts arround?!

2003-06-19 Thread Stipe Tolj
Hi list,

I'm fidling arround with a modified configure/make process to allow
adding new add-on boxes (ie. smppbox) to the build.

I come up with --with-box[=NAME] inside configure.in and this works,
even while this is really an un-nice hack ;)

Unfortunatly I can't give more then one --with-box statement to
configure. Can anyone give me a good hint or example code on how to
implement --with-foobar=1 --with-foobar=2 ... inside M4 macro code for
confifure.in???

Any help is appritiated, since release date for smppbox and mmsbox
depends on it ;)

Stipe

[EMAIL PROTECTED]
---
Wapme Systems AG

Vogelsanger Weg 80
40470 Düsseldorf

Tel: +49-211-74845-0
Fax: +49-211-74845-299

E-Mail: [EMAIL PROTECTED]
Internet: http://www.wapme-systems.de
---
wapme.net - wherever you are



[FYI] RADIOUS accounting proxy commited

2003-06-19 Thread Stipe Tolj
Hi list,

I just commited this to cvs:

2003-06-20  Stipe Tolj  [EMAIL PROTECTED]
* Makefile.in: added compilation of RADIUS related files inside
radius/.
* doc/userguide/userguide.xml: new MSISDN provisioning section
describing
  the use of the RADIUS accounting proxy thread.
* gwlib/cfg.def: removed properietary groups that are *not* used
inside
  Kannel's tree and added 'radius-acct' group configuration
directives.
* gw/wap-appl.c, gw/wapbox.c: added RADIUS accounting proxy
related calls.
* radius/*: added RADIUS accounting proxy implemenation.
* test/test_radius_*.c: added some testing applications for the
RADIUS
  routines.

which means we have now a real MSISDN provisioning boarded inside
Kannel using a RADIUS accounting proxy thread inside wapbox.

See user's guide for guidance.

It works here at Wapme for some time inside our MMSC implementation,
because we pick the 'From' MMS header using the MSISDN provsioning
value provided by the WAP gateway (wapbox) directly.

The only thing that needs work on is the MD5 shared secret
re-computation to ensure NAS and we are having the same shared secret.
Usually I'm aware on how this is done, but it seems I can get this
right with our Ascend MAX2000 we have here arround.

BTW, we used GNU-radius as the RADIUS server back-end for
authentication and account packet forwarding.

Any help in getting the damn shared secret re-computation done right
is highly welcome.

Stipe

[EMAIL PROTECTED]
---
Wapme Systems AG

Vogelsanger Weg 80
40470 Düsseldorf

Tel: +49-211-74845-0
Fax: +49-211-74845-299

E-Mail: [EMAIL PROTECTED]
Internet: http://www.wapme-systems.de
---
wapme.net - wherever you are