Re: SMSC Modules (Was: Kannel Swisscom)

2003-02-26 Thread Stipe Tolj
Hi list,

this thread leads us to a discussion I had yesterday with Alexander
from Centrium (and also Harrie Hazewinkel, who is hopefully still
subscribed to the list :)

We need to design a clean module API interface (which is already there
in some extended sense) and allows to plug them in via dynamical
loading of shared objects.

In that way you would only load the SMSC module types you need and we
may offer template, bare-bone source for new ones to follow.

Has anyone checked the approach Harrie did for it? It's available on
the web site at 

  http://www.kannel.org/module_api/

Please do have a look and let's get started with 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: SMSC Modules (Was: Kannel Swisscom)

2003-02-26 Thread Angel Fradejas
Nicholas Rahn wrote:
 iServer is a proprietary Swisscom SMSC.  It abstracts multiple EMI/UCP
 connections with a proprietary HTTP/socket interface in order to provide
 billing, throughput, etc.  There is currently no way to use kannel to
 connect to it.

 You could, however, write a new kannel smsc module to do it.  :-)

 Nick

Is there anyone willing to share his Swisscom iServer smsc module? If not,
I'll have to write one soon.

Angel Fradejas
Mediafusión España, S.A.
[EMAIL PROTECTED]
www.mediafusion.es
Tel. +34 91 252 32 00
Fax +34 91 572 27 08




SMSC Modules (Was: Kannel Swisscom)

2003-02-25 Thread Rene Kluwen
Talking about SMSC modules. Where would one start, writing a new one?
Which source files have to be altered... And what are the requirements that
a module should have?
Is there any documentation?

-- Rene

- Original Message -
From: Nicholas Rahn [EMAIL PROTECTED]
To: Illimar Reinbusch [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
Sent: Tuesday, February 25, 2003 3:10 PM
Subject: RE: Kannel  Swisscom


 iServer is a proprietary Swisscom SMSC.  It abstracts multiple EMI/UCP
 connections with a proprietary HTTP/socket interface in order to provide
 billing, throughput, etc.  There is currently no way to use kannel to
 connect to it.

 You could, however, write a new kannel smsc module to do it.  :-)

 Nick



 On Tue, 2003-02-25 at 14:13, Illimar Reinbusch wrote:
  Hi
 
  They have their own iServer, and it uses socket interface.
  I belive its developed by them or specially for them.
 
  Example connection:
 
  Data in:
  {originator 0792358735}\nVIEW\n
  Data out:
  {exitCode 0}{charge 0}{billtext 9123 eInfo VIEW}\nANSWER TEXT\n
 
  Is it EMI/UCP interface or specially designed interface?
 
  Illimar
 
 
   Swisscom has a standard interface which is called EMI/UCP and
   kannel works perfectly with it. The only special thing they do
   is that you have several parallel connections to get higher
   throughput. Just define multiple EMI/UCP smsc connections in
   Kannel and make sure they share the same name (to let DLR's work
properly)
  and you're done.
   If you refer to the premium rate SMS interface, then this is
   their own HTTP based crap which for sure is
   not supported. It also lacks some SMS features like UDH.
  
  
   Andreas Fink
   Global Networks Switzerland AG
 
 







Re: SMSC Modules (Was: Kannel Swisscom)

2003-02-25 Thread Nisan Bloch
At 04:20 PM 2/25/03 +0100, Rene Kluwen wrote:
Talking about SMSC modules. Where would one start, writing a new one?
Which source files have to be altered...
gw/smscconn.c: to add an entry for your new smsc module
gwlib/cfg.def: if u need special config params for that connection
then u need to write your module. Start, mmm look at the smpp module or the 
emi2 module.

 And what are the requirements that
a module should have?
Well, it should meet the requirements of your upstream provider, it should 
meet the requirements as in smscconn_p.h and it should be nice and well 
behaved ;-)

Is there any documentation?


Start with smscconn_p.h

nisan




Re: [PATCH] smsc modules directory

2002-08-11 Thread Oded Arbel

Hi Harrie and everyone

I saw that smsc.c was moved to the smsc module directory (which I don't think is write 
- as this is just the API implementation, not a module in itself), but the smsc.h file 
was left in the gw directory. you have to decide were to put these two files, but they 
should be together (oh, I'm a hopeless romantic ;-)

--
Oded Arbel
m-Wise mobile solutions
[EMAIL PROTECTED]

+972-9-9581711 (116)
+972-67-340014

::..
Today is the tomorrow you worried about yesterday.







Re: [PATCH] smsc modules directory

2002-08-11 Thread Harrie Hazewinkel



--On Sunday, August 11, 2002 12:20 PM +0300 Oded Arbel [EMAIL PROTECTED] 
wrote:

 Hi Harrie and everyone

 I saw that smsc.c was moved to the smsc module directory (which I don't
 think is write - as this is just the API implementation, not a module in
 itself), but the smsc.h file was left in the gw directory. you have to
 decide were to put these two files, but they should be together

Maybe you are correct. I was in doubt to move the smsc.c file
and smsc.h. I did move the smsc.c, since it was used under
the smscconn API.
Then smsc_wrapper is also moved and I consider that one
as an API and a module. It is an API for the old smsc module,
but it is a module since it is used from within the smscconn API.
I believe this is also due to some legacy and if wanted the
wrapper could be complete vapourized if the old smsc module would
be ported to the smscconn API.

One can argue many ways, but that is also due to the many ways
various layes and APIs are made.


The include file I left up there, actually incorrect.
This counts even so for the smsc_p.h include file.
I move them under the smsc directory.


Harrie

Internet Management Consulting
mailto:[EMAIL PROTECTED]http ://www.mod-snmp.com/
---
Author of MOD-SNMP, enabling SNMP management to the Apache server.
  




RE: additional modules

2002-05-22 Thread Oded Arbel


 -Original Message-
 From: Harrie Hazewinkel [mailto:[EMAIL PROTECTED]]
 Sent: Tuesday, May 21, 2002 7:21 PM
 To: Oded Arbel; dev-kannel
 Subject: RE: additional modules
 
 
 HI Oded,
 
 --On Sunday, May 19, 2002 8:45 AM +0200 Oded Arbel 
 [EMAIL PROTECTED] wrote:
 
  It's easy to add a new SMSC module using the current API. 
 all you need
  to do is write a new C file for your module, supply the necessary
  callbacks and register it in smscconn_p.h and smscconn.c.
 
  see the recently submitted smsc_cgw.c for a good example.
 
 I see what you mean. I was actually thinking of a more modular
 approach for the main functionality via which no other part/C-code
 needs to be changed in order to add this extra module. Correct me
 if I am wrong but with the smsc.c file one still needs to adapt
 this file in order to have an extra module.

No - that is not correct, changing the smsc.c file is the _old_ API,
which is not used for newer modules. new modules should be written for
the SMSCConn API and need fewer changes in the Kannel source codes.

 Perhaps, I did not explain my thoughts so well, but I want
 to start additional threads without patching the core code.
 Just wondering who on this list provides additional products
 around Kannel by patching the core?? I would for SNMP.

I agree that a run time linking API for modules would be nice, and allow
companies to distribure binary modules that were developed to support
proprietry standards, among other things. and while this is not high
priority in the to do list of any current Kannel developer, in the
spirit of open source you are more then welcome to contribute the code
to do that to the Kannel development effort :-)

AFAIK no one around supplies additional modules for Kannel that are not
part of the Kannel distrebution. My company at least have several
modules developed in house that are not part of the distrebution, and
were developed by adding entries to the relevant source files.

 Currently, the 'bearerbox' process spawns of 6 threads
 and I (as part of a prototype) have to spawn an extra thread
 for the SNMP agent in order to provide near-realtime statistics
 of the complete WAP gateway.
 
 As for an API, I see only a need for start_thread and stop_thread so
 far, but m aybe there would be more, like a data parameter.
 Followed by that maybe additional configuration APIs, since each
 module has potentially an additional private configuration part.
 
 I hope this explain it better.

You are not speaking of SMSC modules (which I though you were talking
about at first). as such, deaper patching of the code is required. What
you need is a much more general API for run-time linking of shared
objects, and is much harder to do then previously discussed options,
such as an API for SMSC modules or an API for sms-service modules. maybe
designing one is in order.

 Now more a point of implementation. I believe there are 2 things
 important. The end-goal and a smooth transition in which all the
 time the gateway can work. The transition can be done quick and
 rigurous or step by step (just slower).
 
 I think the step by step approach is preferred, since every 
 one can check
 and keep doing there own parts of development as well test it all.
 Therefore, I also believe we should agree on some way forward in which
 we first make all calls to various module are threads equal (The
 smsc.c call are already that way). That also is more 
 internals and thus
 less influencial for external module development.
 
If you are planning on a redesign of the entire infrastructure of
Kannel, please supply detailed design ideas if you want meaningful
responses.

--
Oded Arbel
m-Wise Inc.
[EMAIL PROTECTED]
(972)-67-340014
(972)-9-9581711 (ext: 116)

::..
Businesses may come and go, but religion will last forever, for in no
other 
endeavor does the consumer blame himself for product failure. 




RE: additional modules

2002-05-19 Thread Oded Arbel

It's easy to add a new SMSC module using the current API. all you need
to do is write a new C file for your module, supply the necessary
callbacks and register it in smscconn_p.h and smscconn.c.

see the recently submitted smsc_cgw.c for a good example.

--
Oded Arbel
m-Wise Inc.
[EMAIL PROTECTED]
(972)-67-340014
(972)-9-9581711 (ext: 116)

::..
An eye for an eye and a tooth for a tooth leaves us blind and toothless.


 -Original Message-
 From: Harrie Hazewinkel [mailto:[EMAIL PROTECTED]]
 Sent: Wednesday, May 15, 2002 1:58 PM
 To: dev-kannel
 Subject: additional modules
 
 
 HI all,
 
 I have a question regarding adding extra (new) modules to Kannel.
 Is there a way to do this without changing the core code??
 Am I correct that I cannot make use of some API, but need to
 change/add lines of code in the existing code before I can make
 for instance an additional thread with new functionality??
 
 
 regards,
 
 Harrie
 
 Internet Management Consulting
 tel: +39-3474932300 / +31-625357135
 mailto:[EMAIL PROTECTED]http ://www.mod-snmp.com/
 
 
 




Re: loadable modules ?

2002-02-25 Thread Bruno David Rodrigues

Or have a simple just-text smsbox and aditional smsbox modules to
OTA, NSM, EMS, etc

;)

- Original Message -
From: Bernino Lind [EMAIL PROTECTED]
To: Stipe Tolj [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
Sent: Friday, February 22, 2002 7:53 AM
Subject: RE: loadable modules ?


Dear developers,

Hope you enjoy your friday!

If a such plan is underway, please have in mind to make the freeze of the
CVS to have a stable branch.

Im very thrilled to see this project moving into the module direction. This
way I think we should consider to generalize the concept of modules and have
well defined description of how to add/write a module to bearerbox with a
generalist touch that modules should be capable of instanciating eachother
in various ways.

In this way a very fantastic complicated loadbalancing or routing would be
possible, or some crazy horse might add an on the fly python interpreter as
a module or...whatever. Looking at the increasing number of apache modules
it seems like human creativity does not stop just because C programmers
always make programs that leak memory ;-)

I really appreciate this direction,

--
med venlig hilsen / Best Regards
Bernino Lind +45 7021 0050
catpipe Systems ApS - www.catpipe.net
Best done *BSD solutions




-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]On Behalf Of Stipe Tolj
Sent: 21. februar 2002 20:10
Cc: [EMAIL PROTECTED]
Subject: Re: loadable modules ?


Oded Arbel wrote:

 I think that would be very nice feature, and I see several things I can
 do with it.
 another revolutionary idea - wouldn't it be nice to load the smsc
 modules as dynamic libraries ? that way we don't need to build smsc
 modules that we're not going to use...

yep, that brings us to 2 API architectures we should think about:

1) module API to load-on-the-fly smsc modules (smpp, emi2, at2, etc.)
2) module API to load-on-the-fly sms-services (so that there is no
need to SIGHUP smsbox for processing)

Stipe

[EMAIL PROTECTED]
---
Wapme Systems AG

Münsterstr. 248
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: AT* Modules (Was: Re: Oded's AT2 patch)

2002-02-24 Thread Matthew Flax

On 23 February 2002, Bruno David Rodrigues wrote:
 Now that at2 is stable, could we remove the old at module and
 then include Matt's patch to at2 ?

That was Oded's patch AT2 ... it was derived from my original patch to 
the AT module.

 
 Do old AT module have something that at2 doesn't have ?
 
 IMHO we should have a good at module, not several different ones...
 
 - Original Message -
 From: Matthew Flax [EMAIL PROTECTED]
 To: gatewayZgalore [EMAIL PROTECTED]
 Sent: Thursday, February 21, 2002 9:04 AM
 Subject: Oded's AT2 patch
 
 
  Here are my thoughts 
 
  This patch uses similar workings to my original work. The better thing
  about AT2 vs. AT is that it has private memory which allows no
  modifications outside this file, as well as the other advanages of this
  phase2 thing !
 
  Before the patch is applied, we need a clean patch. The one submitted
  fails to patch  after doing it by hand  I have found the following
  :
 
  Currently this works quite well. I have only been able to replicate tests
  for SMSs which already reside in SIM memory b4 bearerbox startup. It
  manages to read and delete from memory A OK.
  From its operation I can see that it would work for SMSs which land in
  memory during operation. I am quite confident that this patch will improve
  AT2. I can also suggest leaving AT2 intact and creating AT3. I just wonder
  wether people would patch AT3 with the same changes they make to AT2 ?
  If we do choose to create AT3, then I must encourage maintainers of the
  AT* modules to port patches to AT3 as well as AT2 and vice versa.
 
  --
  Matt
 
  For electronic musicians ...
  Vector Bass  : http://mffmvectorbass.sourceforge.net/
  For developers ...
  TimeScale Audio Mod  : http://mffmtimescale.sourceforge.net/
  Multimedia Time Code : http://mffmtimecode.sourceforge.net/
  3D Audio Library : http://mffm3daudiolib.sourceforge.net/
 
 
 

-- 
Matt

For electronic musicians ...
Vector Bass  : http://mffmvectorbass.sourceforge.net/
For developers ...
TimeScale Audio Mod  : http://mffmtimescale.sourceforge.net/
Multimedia Time Code : http://mffmtimecode.sourceforge.net/
3D Audio Library : http://mffm3daudiolib.sourceforge.net/




Re: loadable modules ?

2002-02-22 Thread Aarno Syvänen

Stipe Tolj wrote:
 
 Alexei Pashkovsky wrote:
 
  I think idea of having the listening http interface inside bearerbox instead
  of running two executables could be usefull too.
  Obviously this should be configurable ..
 
 that's not how Lars designed it.
 
 SO I guess this leeds up here to a religious battle, I wouldn't like
 to get to.

I do not think that this battle is religious. Bearerbox is a bottleneck,
so
it should be as simple as possible (it is rather complex rigth now).
Allthough
one smsbox is enough in most cases, sometimes you need more.

Aarno




Re: loadable modules ?

2002-02-22 Thread dennis . malmstrom

Seems like there is some interest in sms service types as loadable modules
so I'm submitting my implementation.

Also included are two sample modules. They are very simple and lack proper
logging and error handling.

As has been mentioned, the loadable module interface has to be carefully
designed with generallity in mind.
The current one feels a bit crude and might need some further refinement.
One way of deriving a good interface could be taking a look at what is
needed to make all current sms service types into loadable libraries.

Note: loading libraries into smsbox requires smsbox to be linked with
-rdynamic.




 /Dennis

  Dennis Malmström
  Erda Technology AB
  S:t Larsgatan 12, 582 24 Linköping, Sweden
  http://www.erda.se
  mail: [EMAIL PROTECTED]
  phone: +46 (0)13 377218
  gsm: +46 (0)706483090







Index: gw/smsbox.c
===
RCS file: /home/cvs/gateway/gw/smsbox.c,v
retrieving revision 1.170
diff -u -r1.170 smsbox.c
--- gw/smsbox.c 2002/02/07 22:16:35 1.170
+++ gw/smsbox.c 2002/02/22 12:18:57
@@ -6,6 +6,7 @@
 #include unistd.h
 #include signal.h
 #include string.h
+#include dlfcn.h
 
 #include gwlib/gwlib.h
 
@@ -58,9 +59,21 @@
 static Numhash *black_list;
 
 static List *smsbox_requests = NULL;
+static List *loaded_modules = NULL;
 
 int charset_processing (Octstr *charset, Octstr *text, int coding);
 
+
+
+typedef Octstr* loadable_doit( Msg* msg, Octstr* pattern );
+
+typedef struct {
+Octstr* name;
+void* handle;
+loadable_doit* doit;
+} Module;
+
+
 /***
  * Communication with the bearerbox.
  */
@@ -655,6 +668,87 @@
 }
 break;
 
+case TRANSTYPE_CALL_LOADABLE_MODULE:
+{
+Module* module = NULL;
+Octstr* moduleName = urltrans_name(trans); /* What is the purpose of 
+name? Is this use appropriate? */
+
+debug(sms.module, 0, calling module '%s', octstr_get_cstr( moduleName 
+) );
+
+  /* is module already loaded? */
+if ( loaded_modules == NULL ) {
+loaded_modules = list_create();
+} else {
+int I = list_len( loaded_modules );
+int i = 0;
+
+for ( i = 0; i  I; i++ ) {
+Module* x = (Module*) list_get( loaded_modules, i );
+
+if ( ! octstr_compare( x-name, moduleName ) ) {
+module = x;
+break;
+}
+}
+}
+
+  /* If not, load it */
+if ( module == NULL ) {
+void *moduleHandle = NULL;
+loadable_doit* doit;
+
+debug(sms.module, 0, loading module '%s', octstr_get_cstr( 
+moduleName ) );
+
+  /* load module */
+{
+Octstr* fileName = octstr_duplicate( moduleName );
+octstr_append_cstr( fileName, .so );
+moduleHandle = dlopen( octstr_get_cstr( fileName ), RTLD_NOW );
+octstr_destroy( fileName );
+
+   if ( ! moduleHandle ) {
+error(0, dlopen failed: %s, dlerror() );
+*result = NULL;
+octstr_destroy(pattern);
+goto error;
+}
+}
+
+  /* look up symbol */
+{
+const char* errmsg = NULL;
+doit = dlsym( moduleHandle, octstr_get_cstr( moduleName ) );
+errmsg = dlerror();
+
+if ( errmsg ) {
+error(0, dlsym failed: %s, errmsg );
+*result = NULL;
+octstr_destroy(pattern);
+goto error;
+}
+
+if ( ! doit ) { /* we cant't call NULL */
+error(0, dlsym returned NULL );
+*result = NULL;
+octstr_destroy(pattern);
+goto error;
+}
+}
+
+  /* keep track of this module */
+module = (Module*) gw_malloc( sizeof( Module ) );
+module-name = octstr_duplicate( moduleName );
+module-handle = moduleHandle;
+module-doit = doit;
+list_insert( loaded_modules, 0, module );
+}
+
+  /* call module */
+*result = (*module-doit)( msg, pattern );
+octstr_destroy(pattern);
+}
+break;
+
 case TRANSTYPE_GET_URL:
request_headers = http_create_empty_headers();
http_header_add(request_headers, User-Agent, Kannel  VERSION);
@@ -2105,8 +2199,30 @@
 octstr_destroy(reply_couldnotrepresent

Re: loadable modules ?

2002-02-22 Thread Kalle Marjola

On Fri, 22 Feb 2002, Stipe Tolj wrote:

 Alexei Pashkovsky wrote:
 
  I think idea of having the listening http interface inside bearerbox instead
  of running two executables could be usefull too.
  Obviously this should be configurable ..

 that's not how Lars designed it.

No, but he has also said that the entire architecture should be re-thinked
now when more the exact 'goal' is better known (ref: a conversation
with him a few minutes ago)  - similar reason why I did merge smsbox
and bearerbox last summer, but which was a bit too drastic modification
to the main project.

As a sidenote, old Kannel had an option of having thread smsbox, i.e.
instead of sending messages to seperate executable they were handled
inside bearerbox. When the message queue/flow system was redesigned, I was
too lazy to re-write that thread version... (althought actually it was so
simple that instead of callin some write_to_box function the message was
just put directly to receive queue...)

So, it should be quite simple to re-implement 'thread' smsbox even if a
separate smsbox is kept... (but I still feel that the advantages gained
 from that is far  less than the extra problems caused, especially with
 DLR's etc... Kannel is anyway faster than normal HTTP servers or SMS
 center connections.. and that protocol between bearerbox and smsbox is
 not that faster than HTTP protocol...)

PS: Loadable modules: a great idea

-- 
  kalle marjola





loadable modules ?

2002-02-21 Thread dennis . malmstrom

Hi

I've implemented a sms service type that loads and calls a library
dynamically (using dlopen).

The configuration would look something like:

group = sms-service
keyword = default
name =
mod
# name of function called, append .so to get filename(Is it ok to
use the name property this way? What is the intended purpose of name?)
load = this string is passed to the library function %p %P %a
# passed to function mod
omit-empty = 1

The library call protocol is:

Octstr* func( Msg* msg, Octstr* pattern );  /* return reply
text, msg == NULL - library is about to be unloaded. */
where func is the name specified in the sms-service group.


The purpose is to offer a way of extending kannel functionallity without
changing kannel source code.
It can be considered a plugin architecture for sms service types.
It is usefull for sms service types that benefit from reusing resources
having the same lifetime as the process that use it (in my example, a
mySQL connection).

Currently the implementation is a bit hacky and needs cleaning and
packaging before I can submit it.

My question is: should I bother? Is there a need/want for this kind of
thing?



 /Dennis

  Dennis Malmström
  Erda Technology AB
  S:t Larsgatan 12, 582 24 Linköping, Sweden
  http://www.erda.se
  mail: [EMAIL PROTECTED]
  phone: +46 (0)13 377218
  gsm: +46 (0)706483090








RE: loadable modules ?

2002-02-21 Thread Oded Arbel

I think that would be very nice feature, and I see several things I can
do with it.
another revolutionary idea - wouldn't it be nice to load the smsc
modules as dynamic libraries ? that way we don't need to build smsc
modules that we're not going to use...

Oded Arbel
m-Wise Inc.
[EMAIL PROTECTED]

--
If they wrote error messages in Haiku ?
  Yesterday it worked
  Today it is not working
  Windows is like that


 -Original Message-
 From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
 Sent: Thursday, February 21, 2002 3:07 PM
 To: [EMAIL PROTECTED]
 Subject: loadable modules ?
 
 
 Hi
 
 I've implemented a sms service type that loads and calls a library
 dynamically (using dlopen).
 
 The configuration would look something like:
 
 group = sms-service
 keyword = default
 name =
 mod
 # name of function called, append .so to get filename
 (Is it ok to
 use the name property this way? What is the intended purpose of name?)
 load = this string is passed to the library function %p %P %a
 # passed to function mod
 omit-empty = 1
 
 The library call protocol is:
 
 Octstr* func( Msg* msg, Octstr* pattern );  /* return reply
 text, msg == NULL - library is about to be unloaded. */
 where func is the name specified in the sms-service group.
 
 
 The purpose is to offer a way of extending kannel 
 functionallity without
 changing kannel source code.
 It can be considered a plugin architecture for sms service types.
 It is usefull for sms service types that benefit from reusing 
 resources
 having the same lifetime as the process that use it (in my example, a
 mySQL connection).
 
 Currently the implementation is a bit hacky and needs cleaning and
 packaging before I can submit it.
 
 My question is: should I bother? Is there a need/want for this kind of
 thing?
 
 
 
  /Dennis
 
   Dennis Malmström
   Erda Technology AB
   S:t Larsgatan 12, 582 24 Linköping, Sweden
   http://www.erda.se
   mail: [EMAIL PROTECTED]
   phone: +46 (0)13 377218
   gsm: +46 (0)706483090
 
 
 
 
 
 




Re: loadable modules ?

2002-02-21 Thread Stipe Tolj

[EMAIL PROTECTED] wrote:
 
 My question is: should I bother? Is there a need/want for this kind of
 thing?

I'm definitly interested in seen this.

Stipe

[EMAIL PROTECTED]
---
Wapme Systems AG

Münsterstr. 248
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: loadable modules ?

2002-02-21 Thread Stipe Tolj

Oded Arbel wrote:
 
 I think that would be very nice feature, and I see several things I can
 do with it.
 another revolutionary idea - wouldn't it be nice to load the smsc
 modules as dynamic libraries ? that way we don't need to build smsc
 modules that we're not going to use...

yep, that brings us to 2 API architectures we should think about:

1) module API to load-on-the-fly smsc modules (smpp, emi2, at2, etc.)
2) module API to load-on-the-fly sms-services (so that there is no
need to SIGHUP smsbox for processing)

Stipe

[EMAIL PROTECTED]
---
Wapme Systems AG

Münsterstr. 248
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: loadable modules ?

2002-02-21 Thread Alexei Pashkovsky

I think idea of having the listening http interface inside bearerbox instead
of running two executables could be usefull too.
Obviously this should be configurable ..


- Original Message -
From: Nisan Bloch [EMAIL PROTECTED]
To: Stipe Tolj [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
Sent: Thursday, February 21, 2002 1:08 PM
Subject: Re: loadable modules ?


 At 08:09 PM 2/21/02 +0100, Stipe Tolj wrote:
 Oded Arbel wrote:
 
 yep, that brings us to 2 API architectures we should think about:
 
 1) module API to load-on-the-fly smsc modules (smpp, emi2, at2, etc.)
 2) module API to load-on-the-fly sms-services (so that there is no
 need to SIGHUP smsbox for processing)


 it might also be worth looking at splitting smsbox:
 1. interface - at moment HTTP
 2. processing  bearerbox connections.

 this way we would have an smsbox api and could bolt other frontends onto
 it. eg our applications or even something like SMPP.

 nisan


 Stipe
 
 [EMAIL PROTECTED]
 ---
 Wapme Systems AG
 
 Münsterstr. 248
 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: About AT modules and buffering through SIM memory again

2002-02-12 Thread Oded Arbel



 -Original Message-
 From: Stipe Tolj [mailto:[EMAIL PROTECTED]]
 Subject: Re: About AT modules and buffering through SIM memory again
 
 From my side, as long as basic functionality is not harmed and
 stability is improved, please submit and we will review it.

Ok, here's the m-Wise version of Matthew Flex's SIM buffering - it's a
patch against smsc_at2.c and I tried to stay away from touching anything
not inside an #ifdef. there are a few places where I couldn't help
myself ( ;- ), but most is pretty self explanatory, except in one case
: I had to change at2_wait_modem_command to return the number of
messages received and processed during the call, and I found no other
easy way to do it, w/o rewriting major functionality or submitting to
ugly non-procedural programming style.

Oh, also the timestamp patches are applied with a bit of a change - I
used a swap_nibbles helper function as suggested by Richard Braakman.

Cheers

Oded Arbel
m-Wise Inc.
[EMAIL PROTECTED]

--
A low level language is one whose programs require attention to the
irrelevant.




RE: About AT modules and buffering through SIM memory again

2002-02-12 Thread Oded Arbel

Did I just forgot to attach the patch ? yes I did :-)

Sorry

Oded Arbel
m-Wise Inc.
[EMAIL PROTECTED]

--
Boris: In addition to our summer and winter estate, he owned a
valuable piece of land. True, it was a small piece, but he
carried it with him wherever he went.
-- from 'Love and Death'

  -Original Message-
  From: Stipe Tolj [mailto:[EMAIL PROTECTED]]
  Subject: Re: About AT modules and buffering through SIM memory again
  
  From my side, as long as basic functionality is not harmed and
  stability is improved, please submit and we will review it.
 
 Ok, here's the m-Wise version of Matthew Flex's SIM buffering 
 - it's a patch against smsc_at2.c and I tried to stay away 
 from touching anything not inside an #ifdef. there are a few 
 places where I couldn't help myself ( ;- ), but most is 
 pretty self explanatory, except in one case : I had to change 
 at2_wait_modem_command to return the number of messages 
 received and processed during the call, and I found no other 
 easy way to do it, w/o rewriting major functionality or 
 submitting to ugly non-procedural programming style.
 
 Oh, also the timestamp patches are applied with a bit of a 
 change - I used a swap_nibbles helper function as suggested 
 by Richard Braakman.
 
 Cheers
 
 Oded Arbel
 m-Wise Inc.
 [EMAIL PROTECTED]
 
 --
 A low level language is one whose programs require attention 
 to the irrelevant.
 



smsc_at2.patch
Description: smsc_at2.patch


About AT modules and buffering through SIM memory again

2002-02-11 Thread Oded Arbel

Hi list.

Sorry to raise an old issue again, but I think I have some new
information which may (or may not) be interesting about Mathew Flex's
patch for buffering through SIM memory. 

I have ported Mathew Flex's patch to the AT2 module, but also changed
the way that buffering happens - in my current implementation, the TA
isn't set to store messages in SIM memory, but instead setup everything
normally, and just polls the SIM memory once in a while to see if any
messages have landed there (and then harvest them).  the benefits of not
abusing SIM memory are obvious (I hope) and also very little of the
normal functionality is overridden.
I've tested this for the last month, and it seems to be working great on
our wavecom modems. the reason I refrained from submitting a patch to
the list is that some modems (namely the Siemens M20) don't really like
what I'm doing - i.e., after the first call to check on memory status,
the behavior of the modem automatically changes to store any incoming
message in the SIM memory. I've tried what ever I can do to fix or
circumvent this problem (for example, by re-setting CNMI after each
memory check), but to no avail.

So why am I posting this to the list ? since I gave up on getting broken
modems to work, I still think that this patch may interest Kannel
developers because 
a) its enabled by a compile time define - a simple switch to the
configure script can enable or disable this behavior, so people who
don't want that can simply not set the compile option.
b) even with the polling behavior enabled, and with a broken modem, no
messages will be lost - SMs will simply be stored in the SIM memory
until pulled out by Kannel. it will be slower though (unless you want to
poll faster, which I tried to avoid, but can be set by a compile time
option too, if you like.
c) it does do wonders to the reliability of the at2 module.

But, before submitting the changes, I would like to know how the people
of the list view this issue. do you think it's worth the effort or the
approach all wrong, or what ?

Cheers

Oded Arbel
m-Wise Inc.
[EMAIL PROTECTED]

--
Politicians should read science fiction, not westerns and detective
stories.
-- Arthur C Clarke





Re: About AT modules and buffering through SIM memory again

2002-02-11 Thread Matthew Flax

Yes - this is most definatly the way to go.
Originaly this concept was exactly what AT3 was going to be.

On 11 February 2002, Stipe Tolj wrote:
 Oded Arbel wrote:
  
  So why am I posting this to the list ? since I gave up on getting broken
  modems to work, I still think that this patch may interest Kannel
  developers because
  a) its enabled by a compile time define - a simple switch to the
  configure script can enable or disable this behavior, so people who
  don't want that can simply not set the compile option.
 
 that's the way to go in this case, IMO.
 
  b) even with the polling behavior enabled, and with a broken modem, no
  messages will be lost - SMs will simply be stored in the SIM memory
  until pulled out by Kannel. it will be slower though (unless you want to
  poll faster, which I tried to avoid, but can be set by a compile time
  option too, if you like.
 
 we *may* include a case switching for this depending on the device.
 Since we know in at2 which device we have (like the uname for GSM
 modems :)) and we may gather information about which versions are
 broken towards this behaviour, this may be if then'ed or at least
 issuing a warning towards the user.
 
  c) it does do wonders to the reliability of the at2 module.
  
  But, before submitting the changes, I would like to know how the people
  of the list view this issue. do you think it's worth the effort or the
  approach all wrong, or what ?
 
 From my side, as long as basic functionality is not harmed and
 stability is improved, please submit and we will review it.
 
 Stipe
 
 [EMAIL PROTECTED]
 ---
 Wapme Systems AG
 
 Münsterstr. 248
 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

-- 
Matt

For electronic musicians ...
Vector Bass  : http://mffmvectorbass.sourceforge.net/
For developers ...
TimeScale Audio Mod  : http://mffmtimescale.sourceforge.net/
Multimedia Time Code : http://mffmtimecode.sourceforge.net/
3D Audio Library : http://mffm3daudiolib.sourceforge.net/




At modules in sourceforge

2001-12-07 Thread Aarno Syvänen


Hi Matthew,

Downloaded sourceforge version. It has two at modules. Does
at2 contain your fixes enabling two simultaneous MO messages ?

Is there a newer version somewhere?

Aarno




Re: At modules

2001-11-14 Thread Alexei Pashkovsky



All of our devices are Siemens M20T firmware 
5.4
Regarding the speed : the measurement was altered 
since kannel counted same message many times while it could not delete it from 
sim.


  
  
don't hurry with the update, I already found 
some minor bugs.
There's one strange thing when new AT cannot 
delete a mesage from SIM, it reads it again and again.
The position cursor is mismatched.
Log :
2001-11-13 
19:14:57 [21] DEBUG: AT: Command: AT+CMGD=12001-11-13 19:14:57 [21] 
DEBUG: Read from modem: '+CMS ERROR: 321'2001-11-13 19:14:57 [21] DEBUG: 
deleteing index at mem index : 1

Ah 
- are you using a Siemens M20T with firmware revision 4.2 or earlier 
?

If 
so, then I think this is a geniune bug in the firmware. I have a note from 
Siemens
saying that error 321 when attempting to delete a 
message from the SIM is
a 
confirmed defect in the firmware. 

Also, why do you think AT3 is so much faster than 
AT and AT2 ? I had thought that
the radio link capacity limited the throughput to 1 
message every 5 - 7 seconds ?




At modules

2001-11-13 Thread Alexei Pashkovsky



Hi all,
since we still had some troubles with recent AT2 
module, 
I have tried the new AT module made by 
Matthew.
The kannel I got from his page was installed in 
production machine.
I was amazed by performance, it was really nice to 
discover that siemens could actually be this fast!
The speed is greatly improved, and I didn't speak 
about stability yet.
I think the new AT is way better than the previous 
one and if you compare stability+productivity, than better than AT2 too, though 
I really like the changes Andreas made to AT2.
Look at this line to understand :
6 AT: /dev/usb/ttyUSB6 (online 
218s, rcvd 155, sent 0, failed 0, queued 0 msgs)
This is fantastic.
The previous At module's best result was 1 sms per 
5 sec.
I think we should change the AT in CVS with this 
one.
Extremely recommended.



Re: At modules

2001-11-13 Thread Nick Clarey

Howdy,

 The previous At module's best result was 1 sms per 5 sec.
 I think we should change the AT in CVS with this one.
 Extremely recommended.

Great, I'd love to. Now if someone could just submit a properly formatted
patch for review...it might get applied. Feeling keen, Alexei?

See ya,

Nick





Re: At modules

2001-11-13 Thread Alexei Pashkovsky



Hi all,
don't hurry with the update, I already found some 
minor bugs.
There's one strange thing when new AT cannot delete 
a mesage from SIM, it reads it again and again.
The position cursor is mismatched.
Log :

2001-11-13 19:14:56 [15] DEBUG: Read from modem: 
'OK'2001-11-13 19:14:56 [15] DEBUG: AT: Command: 
AT+CMGR=62001-11-13 19:14:57 [9] DEBUG: AT: Command: 
AT+CPMS="SM"2001-11-13 19:14:57 [7] DEBUG: AT: Command: 
AT+CPMS="SM"2001-11-13 19:14:57 [11] DEBUG: AT: Command: 
AT+CPMS="SM"2001-11-13 19:14:57 [21] DEBUG: Read from modem: '+CMGR: 
1,,240791449737019037200C9144876171453110'2001-11-13 19:14:57 [21] 
DEBUG: Read from modem: '+CMGR: 
1,,240791449737019037200C91448761714531104100840005CCFCF83D07

OK'2001-11-13 19:14:57 [21] DEBUG: AT: 
Command: AT+CMGD=12001-11-13 19:14:57 [21] DEBUG: Read from modem: '+CMS 
ERROR: 321'2001-11-13 19:14:57 [21] DEBUG: deleteing index at mem index : 
1

2001-11-13 19:14:57 [21] DEBUG: smscconn (AT: 
/dev/usb/ttyUSB7): new message received2001-11-13 19:14:57 [21] DEBUG: AT: 
Command: AT+CPMS="SM"2001-11-13 19:14:57 [6] DEBUG: boxc_sender: sent 
message to 127.0.0.12001-11-13 19:14:57 [5] DEBUG: boxc_receiver: 
got ack2001-11-13 19:14:57 [15] DEBUG: Read from modem: 
'OK'2001-11-13 19:14:57 [15] DEBUG: AT: Command: 
AT+CMGR=72001-11-13 19:14:57 [19] DEBUG: AT: Command: 
AT+CPMS="SM"2001-11-13 19:14:57 [21] DEBUG: AT: Command: 
AT+CMGR=12001-11-13 19:14:58 [13] DEBUG: AT: Command: 
AT+CPMS="SM"2001-11-13 19:14:58 [15] DEBUG: Read from modem: 
'OK'2001-11-13 19:14:58 [15] DEBUG: AT: Command: 
AT+CMGR=82001-11-13 19:14:58 [21] DEBUG: Read from modem: '+CMGR: 
1,,240791449737019037200C9144876171453110'2001-11-13 19:14:58 [21] 
DEBUG: Read from modem: '+CMGR: 
1,,240791449737019037200C91448761714531104100840005CCFCF83D07

OK'2001-11-13 19:14:58 [21] DEBUG: AT: 
Command: AT+CMGD=12001-11-13 19:14:58 [17] DEBUG: AT: Command: 
AT+CPMS="SM"2001-11-13 19:14:58 [21] DEBUG: Read from modem: '+CMS ERROR: 
321'2001-11-13 19:14:58 [21] DEBUG: deleteing index at mem index : 
1

2001-11-13 19:14:58 [21] DEBUG: smscconn (AT: 
/dev/usb/ttyUSB7): new message received2001-11-13 19:14:58 [21] DEBUG: AT: 
Command: AT+CPMS="SM"2001-11-13 19:14:58 [6] DEBUG: boxc_sender: sent 
message to 127.0.0.12001-11-13 19:14:58 [5] DEBUG: boxc_receiver: 
got ack2001-11-13 19:14:59 [21] DEBUG: AT: Command: AT+CMGR=12001-11-13 
19:14:59 [15] DEBUG: Read from modem: 'OK'2001-11-13 19:14:59 [15] 
DEBUG: AT: Command: AT+CMGR=9

- Original Message - 
From: "Nick Clarey" [EMAIL PROTECTED]
To: "Alexei Pashkovsky" [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
Sent: Tuesday, November 13, 2001 8:17 
PM
Subject: Re: At modules
 Howdy,   The previous At module's best result 
was 1 sms per 5 sec.  I think we should change the AT in CVS with 
this one.  Extremely recommended.  Great, I'd love 
to. Now if someone could just submit a properly formatted patch for 
review...it might get applied. Feeling keen, Alexei?  See 
ya,  Nick