Alex,
Commenting inline below.
Regards,
--
Alejandro Guerrieri
[email protected]
On 09/06/2009, at 10:44, Alexander Malysh wrote:
Hi,
Seems you don't handle charset at all. Do you assume to receive
UTF-8 in any case? I don't think it's
applicable to generic interface. At least alt-charset should be
taken in account...
I'm not adding anything new here, the MO handling is built on the
original code for kannel_receive_sms (which was the default interface
for MO on the generic interface anyway). There's no charset handling
in there either. I agree it makes sense to have charset handling,
since an http interface should be as flexible as possible, but is it a
showstopper at this point?
some comments to patch below...
why is dlrurl required for DLR? We have dlrurl stored in DLR
storage...
+ }
+ else if (dlrurl != NULL && dlrmask != 0 && dlrmid != NULL) {
+ /* we got a DLR, and we don't require additional values */
+ Msg *dlrmsg;
Idem... why is it needed for the kannel interface then?
hmm this check is not complete. it should be udh_len + msgdata_len
but msgdata_len depends in coding...
+ else if (udh != NULL && octstr_len(udh) > MAX_SMS_OCTETS) {
+ error(0, "HTTP[%s]: UDH field is too long, rejected",
+ octstr_get_cstr(conn->id));
+ retmsg = octstr_create("UDH field is too long, rejected");
+ retstatus = fm->status_error;
+ }
Idem... this is from kannel_receive_sms as well. If it's wrong here,
then it's wrong on the "kannel" smsc as well.
why do you always load generic config options ?
static void generic_send_sms(SMSCConn *conn, Msg *sms)
{
@@ -1635,6 +1934,7 @@
cfg_get_bool(&conndata->no_sep, cfg, octstr_imm("no-sep"));
conndata->proxy = cfg_get(cfg, octstr_imm("system-id"));
conndata->alt_charset = cfg_get(cfg, octstr_imm("alt-charset"));
+ conndata->fieldmap = generic_get_field_map(cfg);
---> conndata->fieldmap = NULL:
if (conndata->send_url == NULL)
panic(0, "HTTP[%s]: Sending not allowed. No 'send-url'
specified.",
@@ -1693,7 +1993,7 @@
octstr_get_cstr(conn->id));
goto error;
}
---> conndata->fieldmap = generic_get_field_map(cfg);
- conndata->receive_sms = kannel_receive_sms; /* emulate
sendsms interface */
+ conndata->receive_sms = generic_receive_sms; /* emulate
sendsms interface */
conndata->send_sms = generic_send_sms;
conndata->parse_reply = generic_parse_reply;
True, it's a waste of CPU cycles if you're using other smsc-types
instead. Fixing it.
Thanks,
Alex
Am 09.06.2009 um 10:14 schrieb Alejandro Guerrieri:
Ok, here's a new version of my patch to add support for custom MO
parameters on the generic http-smsc.
New features:
1. Support for setting the numeric response code for successful and
failed requests (as it is now, it always returns 202 HTTP_ACCEPTED).
2. Support for setting the text response for successful requests
(right now it returns "Sent.").
3. Some code cleanups (extra lines, parameter expansion after
authorization).
4. Documentation.
http://www.blogalex.com/archives/192
I can commit if no objections.
Regards,
--
Alejandro Guerrieri
[email protected]
On 01/06/2009, at 22:50, Alexander Malysh wrote:
Hi,
here some comments...
in generic_receive_sms you first receive all values than converts
it and only
after this done check authorization. Make no sense... first check
auth then convert anything.
+ else if (from == NULL || to == NULL || text == NULL) {
+
+ error(0, "HTTP[%s]: Insufficient args",
why extra line?
I think retmsg should also be configurable. Because not all
gateways will accept 'Sent' as response.
I think even HTTP error code for not accepted MOs/DLRs should be
configurable.
Thanks,
Alex
P.S. And userguide part would be nice ;)
Am 28.05.2009 um 23:00 schrieb Alejandro Guerrieri:
HI,
I've finished my patch to configure the parameter names for MO on
the generic http-smsc.
To use it you just add a few entries on the smsc definition, only
with the parameters you want to rename.
e.g:
generic-param-from = "phoneNumber"
generic-param-to = "shortCode"
generic-param-text = "message"
More details and the patch here:
http://www.blogalex.com/archives/171
Of course I'm writing the userguide part if this goes forward :)
Regards,
--
Alejandro Guerrieri
[email protected]