Dear developers of Kannel, Hope you are all well!
In the last 3 weeks or so, I have been playing with Kannel - a great software. Well written, well documented, well designed and well propageted to a lot of active users and developers using sane tools to cooperate such as cvs. I have some feedback, which I hope could be become a discussion - and its closely related to usability. First of all: The web site: deep links to the various standards, such as the ETSI standard, with a brief note: "You need this standard in order to do a ringtone and other binary SMS". Documentation: more complex examples with source code to sample applications would be extremely nice. There is already the contrib/ but not especially well documented - and some of it broken. I see a lot of questions on the mail lists: "how to do this and that" where it is all related to the udh header. Maybe a better explanation about that in the Kannel documentation with deep links to the etsi standard. Finally - document maybe howto make SIM Tool stuff. That could be a nice eyebrow lifter... Second of all: Usability in Kannel issues. There are some things which could be done automatically with some extra programming inside Kannel. For example, if a programmer wishes to send a text consisting of more than 160 charecters, then thats only possible if this programmer knows how to construct the udh, chop the text up and create the messages. Why not do that directly in Kannel ? It shouldnt be too hard. The thing is, this kind of extra functionality is a political decision in a software project: where to draw the line between end programmer applications and in-core functionality. Linux for example did not make such a decision, and suddenly there was a kernel land http server!!! With all the flaws and exploits that leads to. I very much urge that as much SMS/Wap specific code goes into kannel, to make it really really easy to create even complex applications very fast. An example that Kannel is already like that, is ofcourse the mwi and mclass parameters. These namely construct the udh and possible other data for the user - without the user knowing it. And thats extremely nice, since it saves a lot of time and saves a lot of options in making bugs in ones software. The funny thing is, that it seems in the Kannel team there is a definition of where to draw the line, quote the documentation: "...This service grabs any SMS with two words and 'www' as the first word, and then does an HTTP request to an URL which is taken from the rest of the message. Any result is sent back to the phone (or requester), but is truncated to the 160 characters that will fit into an SMS message, naturally. ..." Well, what natural about it is there? Isnt it just as natural to do the opposite: Bernino's edited documentation: "...This service grabs any SMS with two words and 'www' as the first word, and then does an HTTP request to an URL which is taken from the rest of the message. Any result is sent back to the phone (or requester). Naturally if the page requested has more than 160 charecters, it is chopped into several messages, approximately 160 charecters long individually (it will try to use whole words). ..." This reminds me of the routine do_split_send ()...Namely that it would be really nice if all functions and routines were listed and documented in Kannel. Other usability issues could for example be to have a method for encoding vcards: just give a firstname, lastname, phonenumber, ..., to=... and then Kannel would generate the correct SMS message. I think the picture is cleat to make it possible for all users to write down one long list to be implemented. Please let me know what you think of these thoughts, also to indicate where Kannel is going. Kind Regards, Bernino Lind