Hi list,

I'm using gSOAP for some time for various SOAP/web service related bindings,
including MM7 for the Kannel MMSC. It is robust, extremely fast and its SOAP C
pre-processor code mangling makes it easy to implement the SOAP operation 
routines.

Since there are a vast group of SMS service providers out there that use SOAP as
their main API, I have integrated a gSOAP service build framework into Kannel.

What it does is to allow you as developer to implement SOAP APIs into Kannel
with a minimum effort, since all the hard parts will be done by gSOAP's soapcpp2
and wsdl2h converters, along with the template that I have included. ;)

Now, the first set of SOAP APIs we're about to support are:

  - Ericsson SDP (service delivery platform)
  - GSMA OneAPI 1.x

both are based on the Parlay/3GPP spec of Parlay X 2.1, which we implement for
the SMS traffic parts. We handle both in the same 'smsc = parlayx' module, but
select the variant via 'system-type = [ercisson-sdp|gsma-oneapi]', which is
pretty much known to most for the SMSC HTTP module too.

The patch includes a build framework for the SOAP modules, but doesn't touch the
existing code too heavily. There is only a simple @SOAP_INCLUDE@ in the main
Makefile.in, and all the rest is handled in the sub-folder soap/Makefile.in.

The gSOAP support is activated by using --with-gsoap as configure switch.

Like always, the patch is non intrusive, which means, if you don't need SOAP
support, nothing changes. It's the same build as usual.

The SOAP services are supposed to be encapsulated in the soap/service/<name>
directory, with the soapcpp2 input header file as main reference point. Most of
the SOAP API services provide a WSDL file, so gSOAP's wsdl2h converted can be
used to build up the header file out-of-the-box.

The actual SMSC SOAP module then for a specific SOAP API is then implemented in
a gw/smsc/smsc_soap_<name>.c module, which can use heavily the parlayx code that
is already included in the patch.

In a fork()ed branch of my head, we also have a add-ons/soapbox sub-project that
can implement the SOAP server sides of the SOAP APIs here. In fact the ParlayX
code already contains some of the server side methods in order to be able to
"loopback" the MT to MO mesasges and inject DLRs as if they come from the server
side itself.

Due to the size the patch is available via URL:

  http://www.kannel.org/~tolj/patchsets/gSOAP/gateway-gsoap.diff

Requirements are:

  gsoap-2.7.x or higher

Any interested parties should test and comment.

Stipe

-- 
-------------------------------------------------------------------
Kölner Landstrasse 419
40589 Düsseldorf, NRW, Germany

tolj.org system architecture      Kannel Software Foundation (KSF)
http://www.tolj.org/              http://www.kannel.org/

mailto:st_{at}_tolj.org           mailto:stolj_{at}_kannel.org
-------------------------------------------------------------------

Reply via email to