Инсталирање, конфигурирање и тестирање на Kannel SMS Gateway

Годинава земав учество во ЕдноЛето – македонска верзија од Google Summer of Code, организирано од Слободен Софтвер Македонија. Се пријавив и бев примен на проектот насловен како: Систем за известување и управување преку СМС пораки. Како главна алатка што ќе се користи во проектот, ви го претставувам Kannel. Kannel претставува компактен и моќен open source, WAP и SMS gateway развиен за GNU/Linux оперативните системи, широко употребуван насекаде во светот.

За да го инсталирате, најпрвин побарајте го во репозиториумите на вашиот оперативен систем, или пак директно симнете го од нивниот официјален сајт како стабилна верзија, или како дневен snapshot од нивтниот SVN репозиториум. Бидејќи моментално користам Fedora 15, може да ја инсталирам алатката на два начина. Првиот и полесен начин е алатката да ја инсталирам директно од главниот репозиториум на Fedora, со едноставно повикување на командата:

$ sudo yum install kannel.i686

со ова, алатката е инсталирана и готова за користење, со конфигурацискиот фајл поставен на локација /etc/kannel.conf кој што подоцна може да го едитираме за тест примерот. Од друга страна, доколку ја немате во репозиториум, алатката може и да ја искомпајлирате од код, кој што може да го симнете од следната локација: http://kannel.org/download/kannel-snapshot.tar.gz. Значи отворете го омилениот конзолен емулатор, дојдете до посакуваната патека кај што сакате да ја спуштите архивата и пишете:

$ wget http://kannel.org/download/kannel-snapshot.tar.gz
$ tar xvfz kannel-snapshot.tar.gz

за да ја симнете и отпакувате алатката во kannel-snapshot фолдер. Влезете во фолдерот и претпоставувајќи дека ги имате инсталирано развојните алатки и библиотеки, пишете:

$ ./configure
$ make

за да ја искомпајлирате алатката. Доколку во процесот ви се јави грешка, најверојатно немате некоја од потребните алатки и библиотеки и препорачувам да ја прочитате документацијата на Kannel за специфични побарувања – http://kannel.org/overview.shtml#req.

Во Yum пакет менаџерот на Fedora постои опција за групна инсталација на алатки според име на група, така да, за да ги инсталирате најчесто бараните алатки за компајлирање, односно развојни алатки (make, gcc и слично), пишете во конзола:

$ sudo yum groupinstall “Development Tools”

Откако ќе ги инсталирате развојните алатки, потребно е додатно да ја инсталирате и libxml2 библиотеката:

$ sudo yum install libxml2.i686 libxml2-devel.i686

Со ова би требало да ги одбегнете грешките и успешно да може да ја искомпајлирате алатката. Доколку сеуште компајлирањето ви јавува грешка, пишете коментар и испратете ми го текстот со грешката, за подетално да го разгледаме проблемот.

Откако успешно ја имаме инсталирано алатката, на ред е нејзино конфигурирање и тестирање. Default конфигурацијата може да ја најдете во /etc/kannel.conf, но ние ќе се послужиме со подетална конфигурација за SMS gateway. Ако ја инсталиравте алатката од репозиториум, побарајте го тест конфигурацискиот фајл во /usr/doc/kannel-VERSION/examples или /usr/share/doc/kannel-VERSION/examples насловен како smskannel.conf, или пак доколку го компајлиравте рачно, побарајте во ../kannel-snapshot/gw/smskannel.conf. Тука може да ги видиме дефинирано основните потребни групи за тестирање на SMS gateway. Дефиниран е fake sms centar на порта 20000 (или 10000) како симулатор за испраќање на смс пораки, како и корисник (group = sendsms-user) кој што може да испраќа смс пораки, со тест корисничко име и лозинка. Дефиниран е и default смс сервис кој што се справува со добиените смс пораки доколку нема дефинирано друг соодветен смс сервис.

Ние за тестирање ќе напишеме наједноставен смс сервис кој што ќе ни испраќа известување за секоја примена порака. На крај на конфигурацискиот фајл додадете ги следниве три линии:

group = sms-service
keyword = test
exec = notify-send “A message is received – %a”

Првата линија покажува дека тука почнува дефиниција на нов смс сервис, втората линија дефинира според кој филтер ќе биде препознаена пораката, односно keyword претставува првиот збор од пораката, а во третиот ред е дефинирана акција што треба да се изврши, при што %a претставува алиас за целата содржина на пораката url кодирана.

За подетално да се запознаете со синтаксата и начинот на конфигурирање, како и можностите за филтрирање – одбивање на барање од одредени хостови, привилегирани корисници и слично, прочитајте ја документацијата на kannel која што се наоѓа на http://kannel.org/download/kannel-userguide-snapshot/userguide.html. Таму на пример во табела 6-9 се дадени сите параметри, односно алиаси како што се %a – целата содржина на смс поракта и %k – првиот збор од пораката, а во табела 6-8 се дадени сите применливи и ограничувања што може да се додадат во еден смс сервис. Треба да се напомене дека штом ќе се добие една смс порака, со неа се справува само првиот сервис кој што ќе ги исполнува сите параметри (испраќач, клучен збор и слично). Сервисите се проверуваат линеарно почнувајќи од првиот дефиниран.

Откако го дефиниравме сервисот, сега ни преостанува само да го тестираме. Првин треба да стартуваме bearerbox, за да би можеле да стартуваме smsbox. Ако го инсталиравте пакетот рачно, стартувајте ги сервисите (по овој редослед):

$ ./kannel-snapshot/gw/bearerbox -v 1 kannel-snapshot/gw/smskannel.conf
$ ./kannel-snapshot/gw/smsbox -v 1 kannel-snapshot/gw/smskannel.conf

притоа со -v дефинираме ниво на verbosity, кај што 0 прикажува debug информации, а 1 ги прикажува грешките (конфигурацискиот фајл и алатките се повикуваат според патека).

Ако го инсталиравте пакетот од репозиториум, постапката е иста, со што алатките се повикуваат од било која локација, а конфигурацискиот фајл се повикува според патека.

Со smsbox-от стартуван, останува само да испратиме лажна тест порака за нашиот дефиниран сервис, со помош на fakesmsc алатката. И пак, доколку го инсталиравте пакетот рачно, алатката ја повикувате според локација, инаку, од било каде.

$ ./kannel-snapshot/test/fakesmsc -m 1 -H localhost -r 20000 “123 456 text test message”

Во повикот на fakesmsc дефинираме број на пораки што треба да се испратат со -m, дефинираме хост на кој што сакаме да ја пратиме пораката со -H и дефинираме порта на која што работи сервисот со -r, потоа во наводници е пораката што ја испраќаме во облик “испраќач примач text тело на пораката”. Испраќачот и примачот во нашиот случај не се битни, text е филтерот според кој се испраќа текстот на пораката (може, на пример, да биде и url кодирана пораката и наместо text треба да стои udh, исто така објаснето во документацијата) и во телото на пораката го пишуваме првиот збор да се совпаѓа со keyword-от, а останатиот дел од пораката, моментално не ни е важен. Откако ќе ја испратиме пораката, во прозорецот добиваме повратна информација:

[8303] [0] INFO: Got message 1: <13013 123 text <Empty reply from service provider>>

а во прозорецот кај што е стартуван smsbox-от добиваме информација:

[5202] [4] INFO: Starting to service <test message> from <123> to <456>

и во едно се појавува нотификација, односно известување со содржина: “A message is received – test+message” каде што примената порака ја добиваме како url кодирана, со што добиваме потврда за успешно испратена/примена порака.

Толку за инсталација, конфигурирање и почетно тестирање на Kannel SMS gateway-от. Во иднина, повеќе за можностите на сервисот и идеи за сервиси и начини на управување на системи преку обични смс пораки.

Advertisements

3 responses to “Инсталирање, конфигурирање и тестирање на Kannel SMS Gateway

  1. Као прво “Ај честито блог”, голем да ти порасне (у смислу много садржај да натепаш) 🙂

    Е сега… Све овој фино лепо што си објаснија, ама мене нешто не ми штима.

    Не може да направиш SMS гејтвеј само сас софтвер. Мора да имаш некој хардвер, кој не си га опфатија…

    Ај појасни малце кт имаш време.

    • Како прво, фала много за прв коментар уопште, тамн си помисли дека никој не га е ни видеја пост 😀 Иначе да, уствари ке продужу на не кумановски да разберев сви…

      Значи, да! Ненамерно имам испуштено многу важен детал во целиот пост, а тоа е да споменам дека, за да работи системот во реални услови, односно да прима и праќа СМС пораки, потребен е и додатен хардвер, најверојатно може да се изведе со мобилен телефон прикачен на компјутерот, бидејќи е потребен хардвер кој што ќе ги прима и праќа пораките. Сега за сега, во постот е покажан само пример со fake sms centar, односно симулатор за испраќање на СМС пораки кој што служи само за тестирање, но функционира и во услови кога од разни мрежни локации (доколку е дозволено во конфигурацијата) се испраќаат “лажни СМС” пораки. А за реална имплементација, уште немам стигнато до таа лекција 😀

      Поздрав

  2. Pingback: Систем за известување преку СМС пораки – прв дел | Just another tech blog…

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s