> 
> please make the patches as readable as possible, which means keep the
> diff files semantically together, so that every patch does change one
> semantical issue.

The main problem here is the entirely updated inner structure. This means 
that we talk hundreds of lines of code here, which cannot be separated 
that easily - for example, we cannot use improved store-file without 
changing message queue system.

Earlier when we talked about this bearerbox/smsbox issue, one reason to 
have separate smsbox was to keep unstable special message things (OTA 
etc.) out of bearerbox, so that if they fail, bearerbox is not affected.
This arises again the very question 'what should Kannel (gateway) do?'
In my opinion, the gateway should:
 - be as reliable as possible (no memory leak, no crashing, no panics,
    no lost messages)
 - act as fast tunnel between user agents and applications
 - provide minimal features (API) to make it usable

In this sense, gateway could have following things:
 - SMSC connection handling (this is the main thing wanted from it)
 - simple message routing to SMSCes
 - virtual SMSC handling (for HTTP based content gateways, external SMSC 
   connection systems etc.)
 - simple message routing to external HTTP servers
 - simple message concatenation (or support to force used SMSC)
 - OPTIONAL: fixed answers for time-critical things

Following things should not be there:
 - complicated message handling (logos, icons, ringtones, OTA,..)
    -> these messages should be created by other process which then uses 
       the simple interface of the gateway
 - message modifications (headers, footers, etc.)
 - unstable drivers etc.
 - wap stack (seperate wapbox is good)

Thus, I would move basic SMS handling to bearerbox and then leave more 
complicated (push etc.) things to smsbox. Like make smsbox completely 
stand-alone, so that it is not needed but can be used if additional 
features are needed. In practise, to make things work 'like they were',
bearerbox would be configured to send all SMS'es to this new smsbox
(maybe over HTTP?) which would then do routing/modifications, and push any 
replies (or return as reply to bearerbox HTTP) to bearerbox as any 
external application. Bearerbox would not see difference between that 
stand-alone smsbox and any other application, making it simpler. But this 
stand-alone smsbox could be provided with Kannel, to make easier to 
develop applications.


-- 
&kalle marjola
product concept manager
NETikos finland (http://www.netikos.fi)


Reply via email to