On Wednesday 29 October 2003 16:08, Arne K. Haaje wrote: > tirsdag 28. oktober 2003, 14:20, skrev Alexander Malysh: > > Hi, > > > > I'm -1 for change of shared.c... sorry but it will not work for at least > > smpp module... > > Why?
because for smpp module service_type should be sent for every sms not not only for the first part, I believe for emi is it equal ... > > Now that Kannel has support for billing, there should be a policy of how to > handle this problem of billing mulitpart messages. As implementations may > vary across operator, could perhaps a configuration parameter solve it? > Something like bill-first=yes|now. If bill-first=yes then my patch or > something similar could be used. heh, yet another config option :( but indeed we should handle it... what other developers think about this? > > > CIMD2 patch look good, but see below ... Unfortunately we don't have any > > cimd connections there so can't test it :( > > > > @@ -2034,11 +2046,14 @@ > > default: > > code = 0; > > } > > + if (st_ecode > 0) > > + code = st_ecode; > > > > I believe that this will not work?! here code is a kannel's dlr-mask, see > > sms.h or are kannel's dlr-mask and st_ecode equal? > > It does work for us. We now receive the errorcode when it greater than > zero, otherwise we receive Kannels usual status code. I'm sure it works for you. But maybe dlr_find function awaits another value?! that doesn't match this st_ecode. This is due to actions defined for dlr core. e.g. when code == DLR_BUFFERED then messages will not be removed from storage just status flag update will be done, when code == DLR_SUCCESS or code == DLR_FAIL then message will be removed from storage and so on. Please check it... > > > if(code) > > msg = dlr_find(conn->name, timestamp, destination, code); > > else > > msg = NULL; > > > > > > On Tuesday 28 October 2003 13:40, Arne K. Haaje wrote: > > > > [snip] > > > > > Attached is a patch for smsc_cimd2.c that set field 64 Tariff Class to > > > the value of binfo if binfo is set. > > > > > > I have also updated smsc_cimd2.c to set field 55 Reply Path to enabled > > > if rpi is set. > > > > > > These two changes should make the CIMD2 module more up to date, but my > > > final change to smsc_cimd2.c may be more controversial. > > > > > > There is an integer field in the CIMD2 protocol called 62 Status Error > > > Code that can provide more detail about why a message was not > > > delivered. When doing MT billing it is necessesary to know if a message > > > failed because it belonged to an other operator (ported), or if a > > > prepaid card had no balance. > > > > > > I have altered smsc_cimd2.c to send this error code instead of the > > > usual if it is set. If you feel this is not the way to do it then feel > > > free to rip it out if you apply the rest of the patch. > > > > > > I have also made a change to shared.c that may be a bit controversial. > > > For multipart messages like picturemessages, I have altered shared.c to > > > only set binfo for the first part. This is to avoid double of triple > > > charging the customer! The CIMD2 protocol says nothing about this > > > issue, but the two operators we use CIMD2 with, want it that way. > > > However, it may perhaps not work with other modules. > > > > > > We run this patched code against two operator, and have had no problem > > > with it. > > > > > > Please discuss and vote. -- Best regards / Mit besten Grüßen aus Düsseldorf Dipl.-Ing. Alexander Malysh ___________________________________________ Centrium GmbH Vogelsanger Weg 80 40470 Düsseldorf Fon: +49 (0211) 74 84 51 80 Fax: +49 (0211) 277 49 109 email: [EMAIL PROTECTED] web: www.centrium.de msn: [EMAIL PROTECTED] icq: 98063111 ___________________________________________ Please avoid sending me Word, Excel or PowerPoint attachments. See http://www.fsf.org/philosophy/no-word-attachments.html