1. What is SILK?
SILK - is PHP-application to work with Kannel (http://www.kannel.org) SMS-gate. It's based on Kohana3 PHP-framework.
2. How it work?
SILK's 'route' controller get SMS data from 'get-url' request of Kannel, and look for associated service and modules.
Than generate internal SILK request to binded module, get module request, and send it to Kannel.
Easy and simple.
3. Why I need to use SILK?
SILK just my project to get easy way to creation of SMS-services, and route them in one, but not separately develop and bind to kannel.
You may make it all independently. It's your choice.
I just hope that SILK would facilitate the work of someone.
And SILK have SMS-Emulator mode, to testing uploaded modules, and services without using kannel and real connections to SMSC.
It just testing modules and services in SILK.
4. Whats problems in SILK?
Now it's just start. It's have some troubles, would resolves in future.
1. User authorization use Ko3 'A1', 'A2', 'ORM' modules. But controllers and classes use just MyDB class to work with Database.
I don't understand ORM library so good to use it.
But in future seems need to get it equally.
2. Statistic module just planning.
3. Configurator may have some functional problem due access rights in *nix system. This part need to be refine or remove from SILK.
Cause we need just one service in Kannel to route SMS to SILK - remove looks like preferred.
5. What params SILK access?
Look for Kannel manual for more information about get-url params.
Now SILK may access following params:
keyword - first word of message
message - full text of message (keyword included)
abonent - abonent phone (sender of short message)
receiver - short message receiver phone (short number of SMS-Service)
service - name of service (optional)
smscID - ID of SMS Center that received SMS (use for send response to abonent)
coding - message coding (looks for kannel manual)
charset - message charset (looks for kannel manual)
Example of service in kannel.conf file:
group = sms-service
name = route
keyword = default
get-url = "http://localhost/silk/router/?keyword=%k&abonent=%p&receiver=%P&message=%a&service=%n&smscID=%i&coding=%c&charset=%C"
accepted-smsc = ""
omit-empty = true
max-messages = 3
concatenation = true
* http://localhost/silk/ - it's URL of SILK installed.
6. Add new module in SILK:
1. upload new module in /modules folder of SILK. Module structure determine by Kohana3 modules rules.
_Every_ sms-service module need to have init.php file with route description for SILK internal request.
2. include new module in bootstrap.php
3. go in SILK web-control (as admin), SILK Admin -> Modules -> Add New Module. That need to service binding.
OK. In this moment we have new module in list.
How it work:
we get SMS data from $_REQUEST in route controller. Get assotiation of services and modules from database.
Get module name and start internal request to it. Than module response sending to kannel.
* Each module must parse SMS data (if need) from $_REQUEST.
7. Add new service:
In adding service need to set:
- name (ad lib)
- binded module (from list)
- service short number
- keyword (if need)
You may add services for different modules by keywords, and services for one module but with different short numbers. It's at your discretion.
id service name module number keyword
1 service 1 test 0220
2 service 2(test) someNew 0220 #
3 service 3 openModule 0220 open
All services in example will work on short number 0220, but different keywords will request different modules.