torsdag 12. februar 2004, 12:37, skrev Stipe Tolj:
> Hi list,
>
> since the discussion of the binfo field brings this up again. We
> here at Wapme have been thinking of providing some internal layer
> in bearerbox to make MT billing possible.
>
> Now, I know that the group has actually refused to handle billing
> aspects within Kannel itself. Most of use had the intention to let
> Kannel be the "message transporter" and nothing else.
>
> As demands come up here in Germany too, it may be usefull _at
> least_ to provide an abstraction layer with hooks that _can_ be
> implemented on an individual basis for the billing data purposes.
>
> This may imply actually something like the authentication step
> within an HTTP server. Hence when an MO is tranmitted by the SMSC,
> we may assume that the SMSC is not aware of the prepaid balance of
> the user, and our abstraction layer is in "charge" of checking if
> the MO SMS is about to be processed/transported. Same for MT (and
> for premium services).
>
> Any comments on this please!
Some operators handle billing outside of the transport with stuff like
SOAP. These cases should probably not concern Kannel.
These are my experiences with Kannel and MT billing;
We connect to two operator that use CIMD2, and that protocol
specification has a field (64 - Tariff Class) for billing info. I
have a patch that adds support for that.
CIMD2 also have a field (62 - Status Error Code) that can be used to
provide detailed information on why a message failed. One operator
(NetCom in Norway) use this field to send stuff like no balance,
wrong operator, barred etc. This is of course very useful to us. The
other operator (Vodafone Sweden) does not use it at all.
I do have a patch that retrieve this info (62), but it need some more
work to be integrated into Kannel.
For both operators we set the tariff class only on the first part of a
multipart message. I have found nothing in the specifications that
mandate this, but it is what both operators want. I have a patch to
shared.c that take care of this. It work very well with my CIMD2
patch, but I don't know how it will work for other protocols.
This is the essence of what it does;
+ /* Likewise, only use the billing info for the first
part of a concatenated message */
+ if ((msgno > 1) && part->sms.binfo) {
+ octstr_destroy(part->sms.binfo);
+ part->sms.binfo = NULL;
+ }
Perhaps it can be enable with some config parameter like
binfofirst=true
If there is interest for these pathces I will tidy them up a bit and
submit them.
--
Med vennlig hilsen,
Eurobate ASA
Arne K. Haaje
Senior Network Engineer
--------------------------------------------------------------------
Eurobate ASA - Postboks 4589 Nydalen - 0404 Oslo - Norway
Phone: +47 23 22 73 73 - Fax: +47 23 22 73 74 - Mob: +47 92 88 44 66
http://www.eurobate.no/