Fwd: Tariff class implementation in Kannel
tarmo <[email protected]>
| Newsgroups | gmane.comp.mobile.kannel.devel |
|---|---|
| Organization | Eesti Kaugotsing |
| Message-ID | <[email protected]> |
---------- Edasi saadetud kiri ---------- Subject: Tariff class implementation in Kannel Date: Fri, 12 Jul 2002 10:51:37 +0300 From: tarmo <[email protected]> To: [email protected] Is there any plan to implement tariff class usage in CIMD2 and Kannel? My (working) patch for version 1.2.0 is attached (also include usage of CIMD2 timestamp) -- Best wishes, Tarmo Fimberg Eesti Kaugotsing =========================================================== e-mail: [email protected]
tf.diff
(text/x-diff, 6.7 KB)
diff -r --exclude=*.o gateway-1.2.0.mod/gw/msg-decl.h gateway-1.2.0/gw/msg-decl.h
46,48d45
< //<T.F
< INTEGER(tariff);
< //T.F>
diff -r --exclude=*.o gateway-1.2.0.mod/gw/smsbox.c gateway-1.2.0/gw/smsbox.c
294,296c294
< //<T.F
< Octstr **account, int *pid, int *alt_dcs, int *tariff)
< //T.F> added tariff
---
> Octstr **account, int *pid, int *alt_dcs)
304,306c302
< //<T.F
< *deferred = *pid = *alt_dcs = *tariff = 0;
< //T.F> added tariff
---
> *deferred = *pid = *alt_dcs = 0;
371,375d366
< //<T.F
< else if (octstr_case_compare(name, octstr_imm("X-Kannel-Tariff")) == 0) {
< sscanf(octstr_get_cstr(val),"%d", tariff);
< }
< //T.F>
443c434
< List **tolist, int *tariff)
---
> List **tolist)
445c436
< //<T.F> added tariff
---
>
485,488c476,478
< *mclass = *mwi = *coding = *compress = *validity =
< //<T.F
< *deferred = *pid = *alt_dcs = *tariff = 0;
< //T.F>
---
> *mclass = *mwi = *coding = *compress = *validity =
> *deferred = *pid = *alt_dcs = 0;
>
557,565c547
< //<T.F
< /*Tariff class (tariff) */
< get_tag(tmp, octstr_imm("tariff"), &tmp, 0, 0);
< if(tmp) {
< if(octstr_parse_long(&tmplong, tmp, 0, 10) != -1)
< *tariff = tmplong;
< O_DESTROY(tmp);
< }
< //T.F>
---
>
667c649
< Octstr *smsc, int tariff)
---
> Octstr *smsc)
729,735d710
< if (tariff) {
< if (urltrans_accept_x_kannel_headers(trans))
< msg->sms.tariff = tariff;
< else
< warning(0, "Tried to set Tariff field, denied.");
< }
<
818,821c793,794
< //<T.F
< int mclass, mwi, coding, compress, pid, alt_dcs, tariff;
< //T.F>
< int validity, deferred;
---
> int mclass, mwi, coding, compress, pid, alt_dcs;
> int validity, deferred;
857,859c830
< //<T.F
< &account, &pid, &alt_dcs, &tariff);
< //T.F> tariff
---
> &account, &pid, &alt_dcs);
868,871c839,840
< &deferred, &dlr_mask, &dlr_url,
< //<T.F
< &account, &pid, &alt_dcs, &tariff);
< //T.F>
---
> &deferred, &dlr_mask, &dlr_url,
> &account, &pid, &alt_dcs);
879,882c848,849
< //<T.F
< &dlr_mask, &dlr_url, &account, &pid, &alt_dcs, NULL, &tariff);
< //T.F>
< } else if (octstr_case_compare(type, octet_stream) == 0) {
---
> &dlr_mask, &dlr_url, &account, &pid, &alt_dcs, NULL);
> } else if (octstr_case_compare(type, octet_stream) == 0) {
891,894c858,859
< //<T.F
< &account, &pid, &alt_dcs, &tariff);
< //T.F>
< } else {
---
> &account, &pid, &alt_dcs);
> } else {
907,910c872,874
< mwi, coding, compress, validity, deferred, dlr_url,
< //<T.F
< dlr_mask, pid, alt_dcs, smsc, tariff);
< //T.F>
---
> mwi, coding, compress, validity, deferred, dlr_url,
> dlr_mask, pid, alt_dcs, smsc);
>
1092,1100d1055
< //<T.F
< if(msg->sms.tariff) {
< Octstr *os;
< os = octstr_format("%d",msg->sms.tariff);
< http_header_add(request_headers, "X-Kannel-Tariff",
< octstr_get_cstr(os));
< octstr_destroy(os);
< }
< //T.F>
1589c1544
< List *receiver, int tariff)
---
> List *receiver)
1741,1747c1696
< //<T.F
< if ( tariff < 0 || alt_dcs > 99 ) {
< returnerror = octstr_create("Tariff field misformed, rejected");
< goto fielderror;
< }
< msg->sms.tariff = tariff;
< //T.F>
---
>
1996,1998c1945,1946
< //<T.F
< int mclass, mwi, coding, compress, validity, deferred, pid, alt_dcs, tariff;
< //T.F>
---
> int mclass, mwi, coding, compress, validity, deferred, pid, alt_dcs;
>
2022,2024c1970,1971
< //<T.F
< deferred = pid = alt_dcs = tariff = 0;
< //T.F>
---
> deferred = pid = alt_dcs = 0;
>
2046,2051c1993
< //<T.F
< tmp_string = NULL;
< tmp_string = http_cgi_variable(args, "tariff");
< if(tmp_string != NULL)
< sscanf(octstr_get_cstr(tmp_string),"%d", &tariff);
< //T.F>
---
>
2097,2099c2039,2040
< //<T.F
< pid, alt_dcs, NULL, tariff);
< //T.F>
---
> pid, alt_dcs, NULL);
>
2118,2120c2059,2060
< //<T.F
< int mclass, mwi, coding, compress, validity, deferred, pid, alt_dcs, tariff;
< //T.F>
---
> int mclass, mwi, coding, compress, validity, deferred, pid, alt_dcs;
>
2132,2136c2072,2074
< &compress, &validity, &deferred, &dlr_mask, &dlr_url,
< //<T.F
< &account, &pid, &alt_dcs, &tolist, &tariff);
< //T.F>
< } else {
---
> &compress, &validity, &deferred, &dlr_mask, &dlr_url,
> &account, &pid, &alt_dcs, &tolist);
> } else {
2140,2143c2078,2079
< //<T.F
< &dlr_mask, &dlr_url, &account, &pid, &alt_dcs, &tariff);
< //T.F>
< }
---
> &dlr_mask, &dlr_url, &account, &pid, &alt_dcs);
> }
2182c2118
< dlr_url, account, pid, alt_dcs, tolist, tariff);
---
> dlr_url, account, pid, alt_dcs, tolist);
diff -r --exclude=*.o gateway-1.2.0.mod/gw/smsc_cimd2.c gateway-1.2.0/gw/smsc_cimd2.c
167,172d166
< //<T.F
< static const int chval2(char one, char two) {
< return (one & 0x0f) * 10 + (two & 0x0f);
< }
< //>T.F
<
590,597d583
< // It is essential reference - <T.F>
< // We use local timezone and century!
<
< static Octstr *packet_get_time_parm(struct packet *packet, int parmno) {
< /* Our code should never even try a bad parameter access. */
< gw_assert(parm_type(parmno) == P_TIME);
< return packet_get_parm(packet, parmno);
< }
818,821d803
< //T.F<
< info(0, "CIMD2 received: <%s>", octstr_get_cstr(packet->data));
< //>T.F
<
1255,1259d1236
< if ( octstr_len(msg->sms.sender) > 0 )
< packet_add_address_parm(packet,
< P_ORIGINATING_ADDRESS, msg->sms.sender);
< //T.F if we give orig. addr, let SMSC prepend service nr
<
1295,1298c1272
< //<T.F
< if ( msg->sms.tariff > 0 )
< packet_add_int_parm(packet, P_TARIFF_CLASS, msg->sms.tariff);
< //T.F>
---
>
1430,1432c1404
< Octstr *cimdt = NULL;
< struct tm tm;
< int DCS;
---
> int DCS;
1451,1466d1422
<
< cimdt = packet_get_time_parm(request, P_MC_TIMESTAMP);
<
< // Initialize tm with current time
< tm = gw_gmtime(time(NULL));
< // extract century
< tm.tm_year = (tm.tm_year / 100) * 100;
< tm.tm_year+= chval2(octstr_get_char(cimdt, 0), octstr_get_char(cimdt, 1));
< tm.tm_mon = chval2(octstr_get_char(cimdt, 2), octstr_get_char(cimdt, 3)) - 1;
< tm.tm_mday = chval2(octstr_get_char(cimdt, 4), octstr_get_char(cimdt, 5));
< tm.tm_hour = chval2(octstr_get_char(cimdt, 6), octstr_get_char(cimdt, 7));
< tm.tm_min = chval2(octstr_get_char(cimdt, 8), octstr_get_char(cimdt, 9));
< tm.tm_sec = chval2(octstr_get_char(cimdt,10), octstr_get_char(cimdt,11));
< // some problems if timedrift
< //T.F>
<
1516,1517d1471
< message->sms.time = (int)mktime(&tm);
<
1584,1586d1537
< //T.F<
< info(0, "CIMD2 sending: <%s>", octstr_get_cstr(request->data));
< //>T.F