├── AUTHORS ├── COPYING ├── ChangeLog ├── INSTALL ├── LICENSE ├── Makefile.in ├── NEWS ├── README ├── STATUS ├── VERSION ├── acinclude.m4 ├── aclocal.m4 ├── benchmarks ├── bench_http.sh ├── bench_http.txt ├── bench_sms.conf ├── bench_sms.sh ├── bench_sms.txt ├── functions.inc ├── report-begin.txt ├── report-end.txt └── run-benchmarks ├── bootstrap.sh ├── checks ├── check_compiler.sh ├── check_counter.c ├── check_date.c ├── check_fakesmsc.sh ├── check_fakewap.sh ├── check_headers.sh ├── check_http.sh ├── check_httpsmsc_kannel.sh ├── check_ipcheck.c ├── check_list.c ├── check_octstr.c ├── check_ppg.sh ├── check_sendsms.sh ├── check_smpp.sh └── test_dates ├── config.guess ├── config.rpath ├── config.sub ├── configure ├── configure.in ├── contrib ├── fortune.cgi ├── html2wml.pl ├── kannel-monitor │ ├── config.php │ ├── index.php │ ├── kannel.css │ ├── kannel.js │ ├── xmlfunc.php │ └── xmltoarray.php ├── mon │ ├── README │ └── kannel.monitor ├── php-admin │ ├── README │ ├── admin.php │ ├── config.inc │ ├── functions.inc │ ├── index.html │ ├── sendota.php │ ├── sendsms.php │ └── sendvcard.php ├── ping.cgi ├── sendsms ├── smstomail.cgi ├── web │ ├── form.php │ ├── index.html │ ├── menu.html │ └── sendsms.php └── webalizer │ ├── ReadMe │ ├── converte.pl │ ├── multi-line.pl │ ├── split.pl │ ├── stats.sh │ └── webalizer.conf ├── debian ├── changelog ├── changelog.devel ├── changelog.stable ├── compat ├── control ├── control.devel ├── control.stable ├── copyright ├── kannel-cvs-docs.docs ├── kannel-cvs-extras.install ├── kannel-cvs.default ├── kannel-cvs.dirs ├── kannel-cvs.docs ├── kannel-cvs.examples ├── kannel-cvs.init ├── kannel-cvs.install ├── kannel-cvs.links ├── kannel-cvs.logrotate ├── kannel-cvs.postinst ├── kannel-cvs.postrm ├── kannel-devel-docs.docs ├── kannel-devel-extras.install ├── kannel-devel.default ├── kannel-devel.dirs ├── kannel-devel.docs ├── kannel-devel.examples ├── kannel-devel.init ├── kannel-devel.install ├── kannel-devel.links ├── kannel-devel.logrotate ├── kannel-devel.postinst ├── kannel-devel.postrm ├── kannel-docs.docs ├── kannel-extras.install ├── kannel.conf ├── kannel.default ├── kannel.dirs ├── kannel.docs ├── kannel.examples ├── kannel.init ├── kannel.install ├── kannel.links ├── kannel.logrotate ├── kannel.postinst ├── kannel.postrm └── rules ├── doc ├── ChangeLog-0.13.1 ├── ChangeLog-1.1 ├── ChangeLog-1.1.1 ├── ChangeLog-1.1.2 ├── ChangeLog-1.1.3 ├── ChangeLog-1.1.4 ├── ChangeLog-1.1.5 ├── ChangeLog-1.1.6 ├── ChangeLog-1.2.0 ├── ChangeLog-1.2.1 ├── ChangeLog-1.3.0 ├── ChangeLog-1.3.1 ├── ChangeLog-1.3.2 ├── ChangeLog-1.4.0 ├── ChangeLog-1.4.1 ├── ChangeLog-1.4.2 ├── ChangeLog-1.5.0 ├── CodingStyle ├── alligata │ ├── 11-1.png │ ├── 11-3.png │ ├── 11-4.png │ ├── 11-5.png │ ├── 12-10.png │ ├── 12-11.png │ ├── 12-12.png │ ├── 12-13.png │ ├── 12-2.png │ ├── 12-3.png │ ├── 12-4.png │ ├── 12-5.png │ ├── 12-6.png │ ├── 12-7.png │ ├── 12-8.png │ ├── 12-9.png │ ├── 13-5.png │ ├── alligata.xml │ ├── done.png │ ├── licences.png │ ├── maininst.png │ ├── nearlydone.png │ ├── nopro.png │ ├── progress.png │ └── wapdiagsmall.png ├── arch │ ├── arch.xml │ ├── bearerbox-arch.fig │ ├── conf-push-session.fig │ ├── external-interfaces.fig │ ├── kannel-boxes.fig │ ├── kannel-push-boxes.fig │ ├── pushbox-threads.fig │ ├── wap-arch.fig │ ├── wap-session.fig │ └── wapbox-threads.fig ├── dialup.txt ├── doxygen │ └── kannel.conf ├── examples │ ├── dlr-mysql.conf │ ├── dlr-oracle.conf │ ├── dlr-redis.conf │ ├── dlr-sdb.conf │ ├── dlr-sqlite3.conf │ ├── kannel.conf │ └── modems.conf ├── fakewap-packets.txt ├── release.txt ├── userguide │ ├── sms-gateway.fig │ ├── userguide.xml │ └── wap-gateway.fig └── wtls │ ├── fig10o.png │ ├── fig1o.png │ ├── fig2o.png │ ├── fig3o.png │ ├── fig4o.png │ ├── fig4out.png │ ├── fig5o.png │ ├── fig5out.png │ ├── fig6o.png │ ├── fig6out.png │ ├── fig6out1.png │ ├── fig7o.png │ ├── fig8o.png │ ├── fig9o.png │ └── wtls.xml ├── gw-config.h.in ├── gw ├── alt_charsets.h ├── bb.h ├── bb_alog.c ├── bb_boxc.c ├── bb_http.c ├── bb_smscconn.c ├── bb_smscconn_cb.h ├── bb_store.c ├── bb_store.h ├── bb_store_file.c ├── bb_store_spool.c ├── bb_udp.c ├── bearerbox.c ├── bearerbox.h ├── cert.pem ├── control.html ├── dlr.c ├── dlr.h ├── dlr_mem.c ├── dlr_mssql.c ├── dlr_mysql.c ├── dlr_oracle.c ├── dlr_p.h ├── dlr_pgsql.c ├── dlr_redis.c ├── dlr_sdb.c ├── dlr_spool.c ├── dlr_sqlite3.c ├── heartbeat.c ├── heartbeat.h ├── html.c ├── html.h ├── kannel.8 ├── key.pem ├── load.c ├── load.h ├── meta_data.c ├── meta_data.h ├── mime_decompiler.c ├── mime_decompiler.h ├── msg-decl.h ├── msg.c ├── msg.h ├── numhash.c ├── numhash.h ├── ota_compiler.c ├── ota_compiler.h ├── ota_prov.c ├── ota_prov.h ├── ota_prov_attr.h ├── other_smskannel.conf ├── pushkannel.conf ├── settings.dtd ├── shared.c ├── shared.h ├── sms.c ├── sms.h ├── smsbox.c ├── smsc │ ├── emimsg.c │ ├── emimsg.h │ ├── http │ │ ├── brunet.c │ │ ├── clickatell.c │ │ ├── generic.c │ │ ├── wapme.c │ │ └── xidris.c │ ├── smasi_pdu.c │ ├── smasi_pdu.def │ ├── smasi_pdu.h │ ├── smpp_pdu.c │ ├── smpp_pdu.def │ ├── smpp_pdu.h │ ├── smpp_pdu_opt.def │ ├── smsc.c │ ├── smsc.h │ ├── smsc_at.c │ ├── smsc_at.h │ ├── smsc_cgw.c │ ├── smsc_cimd.c │ ├── smsc_cimd2.c │ ├── smsc_emi.c │ ├── smsc_emi_x25.c │ ├── smsc_fake.c │ ├── smsc_http.c │ ├── smsc_loopback.c │ ├── smsc_ois.c │ ├── smsc_oisd.c │ ├── smsc_p.h │ ├── smsc_sema.c │ ├── smsc_sema.h │ ├── smsc_smasi.c │ ├── smsc_smpp.c │ ├── smsc_soap.c │ ├── smsc_soap_parlayx.c │ └── smsc_wrapper.c ├── smscconn.c ├── smscconn.h ├── smscconn_p.h ├── smskannel-ssl.conf ├── smskannel.conf ├── urltrans.c ├── urltrans.h ├── wap-appl.c ├── wap-appl.h ├── wap-error.c ├── wap-error.h ├── wap-maps.c ├── wap-maps.h ├── wap_ppg_push_machine.def ├── wap_ppg_session_machine.def ├── wap_push_ota.c ├── wap_push_ota.h ├── wap_push_pap_compiler.c ├── wap_push_pap_compiler.h ├── wap_push_pap_mime.c ├── wap_push_pap_mime.h ├── wap_push_ppg.c ├── wap_push_ppg.h ├── wap_push_ppg_pushuser.c ├── wap_push_ppg_pushuser.h ├── wap_push_si_compiler.c ├── wap_push_si_compiler.h ├── wap_push_sl_compiler.c ├── wap_push_sl_compiler.h ├── wapbox.c ├── wapkannel.conf ├── wbxml_tokens.def ├── wml_compiler.c ├── wml_compiler.h ├── wml_definitions.h ├── xml_definitions.h ├── xml_shared.c └── xml_shared.h ├── gwlib ├── accesslog.c ├── accesslog.h ├── cfg.c ├── cfg.def ├── cfg.h ├── charset.c ├── charset.h ├── conn.c ├── conn.h ├── counter.c ├── counter.h ├── date.c ├── date.h ├── dbpool.c ├── dbpool.h ├── dbpool_mssql.c ├── dbpool_mysql.c ├── dbpool_oracle.c ├── dbpool_p.h ├── dbpool_pgsql.c ├── dbpool_redis.c ├── dbpool_sdb.c ├── dbpool_sqlite.c ├── dbpool_sqlite3.c ├── dict.c ├── dict.h ├── fdset.c ├── fdset.h ├── gw-getopt.h ├── gw-prioqueue.c ├── gw-prioqueue.h ├── gw-rwlock.c ├── gw-rwlock.h ├── gw-timer.c ├── gw-timer.h ├── gw_uuid.c ├── gw_uuid.h ├── gw_uuid_types.h.in ├── gwassert.h ├── gwlib.c ├── gwlib.h ├── gwmem-check.c ├── gwmem-native.c ├── gwmem.h ├── gwpoll.c ├── gwpoll.h ├── gwthread-pthread.c ├── gwthread.h ├── html-entities.def ├── http.c ├── http.h ├── latin1_to_gsm.h ├── list.c ├── list.h ├── log.c ├── log.h ├── md5.c ├── md5.h ├── mime.c ├── mime.h ├── octstr.c ├── octstr.c.debug ├── octstr.h ├── octstr.h.debug ├── parse.c ├── parse.h ├── pcre.c ├── pcre.h ├── pki.c ├── pki.h ├── protected.c ├── protected.h ├── regex.c ├── regex.h ├── semaphore.c ├── semaphore.h ├── socket.c ├── socket.h ├── ssl.c ├── ssl.h ├── thread.c ├── thread.h ├── utils.c ├── utils.h ├── xmlrpc.c └── xmlrpc.h ├── install-sh ├── missing ├── mkinstalldirs ├── radius ├── radius_acct.c ├── radius_acct.h ├── radius_attributes.def ├── radius_pdu.c ├── radius_pdu.def └── radius_pdu.h ├── soap ├── Makefile.in ├── env.c ├── env.h ├── env_fault.h ├── env_header.h └── service │ └── parlayx │ ├── typemap.dat │ └── wsdl │ ├── parlayx_common_faults_2_0.wsdl │ ├── parlayx_common_types_2_1.xsd │ ├── parlayx_sms_notification_interface_2_1.wsdl │ ├── parlayx_sms_notification_service_2_1.wsdl │ ├── parlayx_sms_receive_interface_2_1.wsdl │ ├── parlayx_sms_receive_service_2_1.wsdl │ ├── parlayx_sms_send_interface_2_1.wsdl │ ├── parlayx_sms_send_service_2_1.wsdl │ └── parlayx_sms_types_2_1.xsd ├── solaris ├── copyright ├── etc │ └── kannel.conf ├── mk-solaris-package.sh ├── pkginfo.tmpl ├── prototype.tmpl └── readme.txt ├── test ├── blacklist.txt ├── bookmark.txt ├── chartest.html ├── decompile.c ├── decompile.h ├── dlr-receiver.py ├── drive_smpp.c ├── drive_smpp.conf ├── drive_wapbox.c ├── fakesmsc.c ├── fakewap.c ├── header_test ├── hello.wml ├── html-test-1 ├── http2-test-urls ├── iptestppg.txt ├── mime-multipart.txt ├── run-http2-tests.sh ├── settings4.txt ├── si.txt ├── sl.txt ├── smstestppg.txt ├── test_boxc.c ├── test_cfg.c ├── test_charset.c ├── test_cimd2.c ├── test_conn.c ├── test_date.c ├── test_dbpool.c ├── test_dict.c ├── test_file_traversal.c ├── test_hash.c ├── test_headers.c ├── test_hmac.c ├── test_http.c ├── test_http_server.c ├── test_list.c ├── test_mem.c ├── test_mime.c ├── test_mime_multipart.c ├── test_msg.c ├── test_octstr_dump.c ├── test_octstr_format.c ├── test_octstr_immutables.c ├── test_ota.c ├── test_pap.c ├── test_pcre.c ├── test_pdu.c ├── test_ppg.c ├── test_prioqueue.c ├── test_radius_acct.c ├── test_radius_pdu.c ├── test_regex.c ├── test_si.c ├── test_sl.c ├── test_smsc.c ├── test_store_dump.c ├── test_udp.c ├── test_urltrans.c ├── test_uuid.c ├── test_wakeup.c ├── test_xmlrpc.c ├── testcase.wml ├── timestamp.c ├── udpfeed.c ├── wapproxy.c ├── whitelist.txt └── wml_tester.c ├── utils ├── OTAbitmap.c ├── OTAbitmap.h ├── accesslog_parser.pl ├── attgetopt.c ├── build-cygwin-package ├── changelog-report ├── chlog-stats ├── daily-patch ├── decode_emimsg.c ├── find-long-lines ├── foobar-config.sh ├── kannel-init.d ├── kannel-log-summary ├── kannel-nag ├── kannel-redhat.init.d ├── kannel-stable-rh6x.spec ├── kannel-stable-rh7.spec ├── makedist ├── mtbatch.1 ├── mtbatch.c ├── pixmapgen.pl ├── run-checks ├── run_kannel_box.8 ├── run_kannel_box.c ├── seewbmp.1 ├── seewbmp.c ├── source-stats ├── start-stop-daemon.8 ├── start-stop-daemon.c ├── update-license-text.sh ├── update-license.sh ├── utf8map.pl ├── vimrc ├── wbmp.c ├── wbmp.h └── win1257unicode.txt ├── wap ├── cookies.c ├── cookies.h ├── timers.c ├── timers.h ├── wap.c ├── wap.h ├── wap_addr.c ├── wap_addr.h ├── wap_events.c ├── wap_events.def ├── wap_events.h ├── wsp.c ├── wsp.h ├── wsp_caps.c ├── wsp_caps.h ├── wsp_headers.c ├── wsp_headers.h ├── wsp_pdu.c ├── wsp_pdu.def ├── wsp_pdu.h ├── wsp_push_client.c ├── wsp_push_client.h ├── wsp_push_client_machine.def ├── wsp_push_client_states.def ├── wsp_server_method_machine.def ├── wsp_server_method_states.def ├── wsp_server_push_machine.def ├── wsp_server_push_states.def ├── wsp_server_session_machine.def ├── wsp_server_session_states.def ├── wsp_session.c ├── wsp_strings.c ├── wsp_strings.def ├── wsp_strings.h ├── wsp_unit.c ├── wtls-secmgr.c ├── wtls.c ├── wtls.h ├── wtls_machine-decl.h ├── wtls_pdu.c ├── wtls_pdu.h ├── wtls_pdusupport.c ├── wtls_pdusupport.h ├── wtls_state-decl.h ├── wtls_statesupport.c ├── wtls_statesupport.h ├── wtp.c ├── wtp.h ├── wtp_init.c ├── wtp_init.h ├── wtp_init_machine.def ├── wtp_init_states.def ├── wtp_pack.c ├── wtp_pack.h ├── wtp_pdu.c ├── wtp_pdu.def ├── wtp_pdu.h ├── wtp_resp.c ├── wtp_resp.h ├── wtp_resp_machine.def ├── wtp_resp_states.def ├── wtp_tid.c └── wtp_tid.h └── wmlscript ├── lexer.txt ├── make-op-table.in ├── wmlsc.1 ├── wmlsc.c ├── wmlsdasm.1 ├── wmlsdasm.c ├── ws.c ├── ws.h ├── wsalloc.c ├── wsalloc.h ├── wsasm.c ├── wsasm.h ├── wsbc.c ├── wsbc.h ├── wsbuffer.c ├── wsbuffer.h ├── wsencode.c ├── wsencode.h ├── wserror.c ├── wserror.h ├── wsfalloc.c ├── wsfalloc.h ├── wsgram.c ├── wsgram.h ├── wsgram.y ├── wshash.c ├── wshash.h ├── wsieee754.c ├── wsieee754.h ├── wsint.h ├── wslexer.c ├── wsopcodes.h ├── wsopt.c ├── wsopt.h ├── wsstdlib.c ├── wsstdlib.h ├── wsstream.c ├── wsstream.h ├── wsstream_data.c ├── wsstream_file.c ├── wsstree.c ├── wsstree.h ├── wsutf8.c └── wsutf8.h /AUTHORS: -------------------------------------------------------------------------------- 1 | See http://www.kannel.org/authors.shtml for a list of the people behind 2 | Kannel. 3 | 4 | -------------------------------------------------------------------------------- /COPYING: -------------------------------------------------------------------------------- 1 | See file LICENSE for details about the license agreement for using, 2 | modifying, copying or deriving work from this software. 3 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | /* ==================================================================== 2 | * The Kannel Software License, Version 1.0 3 | * 4 | * Copyright (c) 2001-2013 Kannel Group 5 | * Copyright (c) 1998-2001 WapIT Ltd. 6 | * All rights reserved. 7 | * 8 | * Redistribution and use in source and binary forms, with or without 9 | * modification, are permitted provided that the following conditions 10 | * are met: 11 | * 12 | * 1. Redistributions of source code must retain the above copyright 13 | * notice, this list of conditions and the following disclaimer. 14 | * 15 | * 2. Redistributions in binary form must reproduce the above copyright 16 | * notice, this list of conditions and the following disclaimer in 17 | * the documentation and/or other materials provided with the 18 | * distribution. 19 | * 20 | * 3. The end-user documentation included with the redistribution, 21 | * if any, must include the following acknowledgment: 22 | * "This product includes software developed by the 23 | * Kannel Group (http://www.kannel.org/)." 24 | * Alternately, this acknowledgment may appear in the software itself, 25 | * if and wherever such third-party acknowledgments normally appear. 26 | * 27 | * 4. The names "Kannel" and "Kannel Group" must not be used to 28 | * endorse or promote products derived from this software without 29 | * prior written permission. For written permission, please 30 | * contact org@kannel.org. 31 | * 32 | * 5. Products derived from this software may not be called "Kannel", 33 | * nor may "Kannel" appear in their name, without prior written 34 | * permission of the Kannel Group. 35 | * 36 | * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 37 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 38 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 39 | * DISCLAIMED. IN NO EVENT SHALL THE KANNEL GROUP OR ITS CONTRIBUTORS 40 | * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, 41 | * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 42 | * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 43 | * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 44 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 45 | * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 46 | * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 47 | * ==================================================================== 48 | * 49 | * This software consists of voluntary contributions made by many 50 | * individuals on behalf of the Kannel Group. For more information on 51 | * the Kannel Group, please see . 52 | * 53 | * Portions of this software are based upon software originally written at 54 | * WapIT Ltd., Helsinki, Finland for the Kannel project. 55 | */ 56 | 57 | -------------------------------------------------------------------------------- /STATUS: -------------------------------------------------------------------------------- 1 | KANNEL 1.x STATUS: 2 | Last modified at [$Id: STATUS,v 1.34 2003-07-18 22:12:34 davi Exp $] 3 | 4 | Release: 5 | 6 | 1.3.1: development version, released Feb 17, 2003. 7 | 1.3.0: development version, released Jan 06, 2003. 8 | 1.2.1: update to stable, released Nov 02, 2002. 9 | 1.2.0: update to stable, released Jul 04, 2002. 10 | 1.1.6: development version, released Mar 28, 2002. 11 | 1.1.5: development version, released May 31, 2001. 12 | 1.1.4: development version, released May 07, 2001. 13 | 1.0.3: update to stable, released Mar 27, 2001. 14 | 1.1.3: development version, released Mar 20, 2001. 15 | 1.0.2: received WAP 1.1 certification, Mar 07, 2001. 16 | 1.1.2: development version, released Feb 28, 2001. 17 | 1.0.2: update to stable, released Feb 26, 2001. 18 | 1.0.1: update to stable, released Feb 13, 2001. 19 | 1.1.1: development version, released Feb 01, 2001. 20 | 1.1: development version, released Jan 22, 2001. 21 | 1.0: update to stable, released Jan 08, 2001. 22 | 0.12.4: update to stable, released Dec 21, 2000. 23 | 0.13.1: development version, released Dec 13, 2000. 24 | 0.12.3: update to stable, released Dec 08, 2000. 25 | 26 | (see ChangeLog for previous releases) 27 | 28 | Bugs: 29 | (see http://bugs.kannel.org) 30 | 31 | -------------------------------------------------------------------------------- /VERSION: -------------------------------------------------------------------------------- 1 | svn 2 | This file contains the version number of the gateway. 3 | It is stored on the first line. Nothing else should 4 | be there. 5 | 6 | Note that if you get this file from SVN, it will just 7 | say "svn-r" instead of a version number. 8 | This is intentional, it avoids confusion with real releases. 9 | 10 | Starting with version 0.8, version numbers that have an even 11 | second part are STABLE versions and those with odd ones are 12 | DEVELOPMENT versions. Thus, 1.0 is stable, 1.1 is development. 13 | Don't use development versions for production unless you 14 | really know what you do. 15 | -------------------------------------------------------------------------------- /benchmarks/bench_http.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Run a simple HTTP benchmark. 4 | # 5 | # Lars Wirzenius 6 | 7 | set -e 8 | 9 | case "$1" in 10 | --fast) times=1000; shift ;; 11 | *) times=100000 ;; 12 | esac 13 | 14 | port=8080 15 | 16 | . benchmarks/functions.inc 17 | 18 | rm -f bench_http.log 19 | test/test_http_server -v 4 -l bench_http.log -p $port & 20 | sleep 1 21 | test/test_http -q -v 2 -r $times http://localhost:$port/foo 22 | test/test_http -q -v 2 http://localhost:$port/quit 23 | wait 24 | 25 | awk '/DEBUG: Request for/ { print $1, $2 }' bench_http.log | 26 | test/timestamp | uniq -c | 27 | awk ' 28 | NR == 1 { first = $2 } 29 | { print $2 - first, $1 } 30 | ' > bench_http.dat 31 | 32 | plot benchmarks/bench_http "time (s)" "requests/s (Hz)" "bench_http.dat" "" 33 | sed "s/#TIMES#/$times/g" benchmarks/bench_http.txt 34 | 35 | rm -f bench_http.log 36 | rm -f bench_http.dat 37 | -------------------------------------------------------------------------------- /benchmarks/bench_http.txt: -------------------------------------------------------------------------------- 1 | 2 | HTTP client and server benchmark 3 | 4 | This benchmark makes #TIMES# HTTP requests using the Kannel HTTP 5 | client and server code, specifically, the test_http 6 | client and the test_http_server server. 7 | 8 |
9 | HTTP requests per second during benchmark 10 | 11 |
12 | 13 |
14 | -------------------------------------------------------------------------------- /benchmarks/bench_sms.conf: -------------------------------------------------------------------------------- 1 | # 2 | # THIS IS THE CONFIGURATION FOR bench_sms.sh 3 | # 4 | 5 | group = core 6 | admin-port = 13000 7 | smsbox-port = 13001 8 | admin-password = bar 9 | admin-deny-ip = "*.*.*.*" 10 | admin-allow-ip = "127.0.0.1" 11 | log-file = "bench_sms_bb.log" 12 | box-deny-ip = "*.*.*.*" 13 | box-allow-ip = "127.0.0.1" 14 | 15 | group = smsc 16 | smsc = smpp 17 | smsc-id = smpp 18 | host = 127.0.0.1 19 | port = 2345 20 | receive-port = 2345 21 | smsc-username = xyzzy 22 | smsc-password = xyzzy 23 | system-type = "VMA" 24 | address-range = "" 25 | 26 | group = smsbox 27 | bearerbox-host = localhost 28 | sendsms-port = 13013 29 | global-sender = 123 30 | log-file = "bench_sms_sb.log" 31 | 32 | group = sms-service 33 | keyword = nop 34 | text = "You asked nothing and I did it!" 35 | 36 | group = sms-service 37 | keyword = default 38 | url = "http://localhost:8080/foo?arg=%a" 39 | 40 | group = sendsms-user 41 | username = tester 42 | password = foobar 43 | user-deny-ip = "*.*.*.*" 44 | user-allow-ip = "127.0.0.1" 45 | -------------------------------------------------------------------------------- /benchmarks/bench_sms.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Use `test/test_smsc' to test SMS speed. 4 | 5 | set -e 6 | 7 | case "$1" in 8 | --fast) times=1000; shift ;; 9 | *) times=100000 ;; 10 | esac 11 | 12 | . benchmarks/functions.inc 13 | 14 | function gather_data { 15 | rm -f bench_sms_*.log 16 | 17 | test/test_smsc -m "$1" -r $times 2> bench_sms_smsc.log & 18 | sleep 1 19 | gw/bearerbox -v 4 benchmarks/bench_sms.conf & 20 | sleep 1 21 | gw/smsbox -v 4 benchmarks/bench_sms.conf & 22 | 23 | wait 24 | 25 | check_for_errors bench_sms_*.log 26 | } 27 | 28 | function analyze_logs { 29 | for type in submit # deliver deliver_ack http_request 30 | do 31 | awk "/INFO: Event .*, type $type,/ { print \$NF, \$(NF-2) }" \ 32 | bench_sms_smsc.log | 33 | uniq -c | 34 | awk ' 35 | NR == 1 { first = $2 } 36 | { print $2 - first, $1 } 37 | ' > bench_sms-$type.dat 38 | done 39 | 40 | awk '/DEBUG: RTT / { print ++n, $NF }' bench_sms_smsc.log \ 41 | > bench_sms-rtt.dat 42 | } 43 | 44 | function make_graphs { 45 | plot benchmarks/bench_sms_"$1" \ 46 | "time (s)" "requests/s (Hz)" \ 47 | "bench_sms-submit.dat" "submit" 48 | 49 | # "bench_sms-deliver.dat" "deliver" \ 50 | # "bench_sms-deliver_ack.dat" "deliver_ack" \ 51 | # "bench_sms-http_request.dat" "http_request" \ 52 | 53 | plot benchmarks/bench_sms_rtt_"$1" \ 54 | "received message number" "average round trip time (s)" \ 55 | "bench_sms-rtt.dat" "" 56 | } 57 | 58 | function run { 59 | gather_data "$1" 60 | analyze_logs 61 | make_graphs "$1" 62 | } 63 | 64 | run n_messages 65 | # run sustained_level 66 | sed "s/#TIMES#/$times/g" benchmarks/bench_sms.txt 67 | 68 | rm -f bench_sms*.log 69 | rm -f bench_sms*.dat 70 | -------------------------------------------------------------------------------- /benchmarks/bench_sms.txt: -------------------------------------------------------------------------------- 1 | 2 | SMS SMPP benchmark: #TIMES# messages 3 | 4 | This benchmark sends #TIMES# SMS requests using the SMPP protocol. 5 | Each SMS request results in one HTTP request, and one SMS response message. 6 | shows the number of completed 7 | requests during each second of the benchmark. 8 | shows the round trip time of each 9 | completed request, that is, the time from when the message was sent to 10 | the time the reply message was received. 11 | 12 | 13 |
14 | Requests per second during benchmark 15 | 16 |
17 | 18 |
19 | SMPP request average round trip time 20 | 21 |
22 | 23 |
24 | 25 | 26 | 27 | 49 | -------------------------------------------------------------------------------- /benchmarks/functions.inc: -------------------------------------------------------------------------------- 1 | function check_for_errors { 2 | if grep 'WARNING:|ERROR:|PANIC:' "$@" >/dev/null 3 | then 4 | echo "$0 failed" 1>&2 5 | echo "See bench_sms*.log for info" 1>&2 6 | exit 1 7 | fi 8 | } 9 | 10 | function plot_commands { 11 | echo "set terminal $1" 12 | echo "set xlabel \"$2\"" 13 | echo "set ylabel \"$3\"" 14 | if [ "$5" = "" ] 15 | then 16 | echo -n "plot \"$4\" notitle with lines" 17 | else 18 | echo -n "plot \"$4\" title \"$5\" with lines" 19 | fi 20 | shift 5 21 | while [ "$2" != "" ] 22 | do 23 | if [ "$2" == "" ] 24 | then 25 | echo -n ", \"$1\" notitle with lines" 26 | else 27 | echo -n ", \"$1\" title \"$2\" with lines" 28 | fi 29 | shift 2 30 | done 31 | echo "" 32 | } 33 | 34 | function plot { 35 | base="$1" 36 | shift 37 | plot_commands png "$@" | gnuplot > "$base.png" 38 | plot_commands "postscript eps" "$@" | gnuplot > "$base.ps" 39 | } 40 | -------------------------------------------------------------------------------- /benchmarks/report-begin.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | ]> 9 | 10 |
11 | 12 | 13 | Benchmark results for Kannel &version; 14 | Kannel Project 15 | 16 | 17 | 18 | Automated Kannel benchmarks 19 | 20 | The goal of the automated Kannel benchmarks (known as make 21 | bench) is to make it easy to regularly measure the speed at 22 | which Kannel performs. This is important so that the developers have a way 23 | to check that the changes they make don't make Kannel slower without the 24 | developers knowing it. Also, when optimizing Kannel (i.e., when trying 25 | to make it run faster), they can see that their changes really do have 26 | that effect. The benchmarks will also produce numbers that will make 27 | marketing people make funny sounds. 28 | 29 | 30 | 31 | 32 | System information 33 | 34 | This benchmark was run on ×tamp; a system identified as 35 | #UNAME#. 36 | 37 | 38 | -------------------------------------------------------------------------------- /benchmarks/report-end.txt: -------------------------------------------------------------------------------- 1 |
2 | -------------------------------------------------------------------------------- /benchmarks/run-benchmarks: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | BEGIN=benchmarks/report-begin.txt 4 | END=benchmarks/report-end.txt 5 | OUT=benchmarks/report.xml 6 | 7 | rm -f $OUT 8 | 9 | sed "s/#DATE#/`date +%Y-%m-%d`/g" < $BEGIN | 10 | sed "s/#UNAME#/`uname -a`/g" > $OUT 11 | 12 | case "$1" in 13 | --fast) fast="--fast"; shift ;; 14 | *) fast="" ;; 15 | esac 16 | 17 | for bench in "$@" 18 | do 19 | echo -n "Running benchmark $bench..." 20 | if $bench $fast >> $OUT 21 | then 22 | echo " OK." 23 | else 24 | echo " FAILURE!" 25 | exit 1 26 | fi 27 | done 28 | 29 | 30 | cat < $END >>$OUT 31 | -------------------------------------------------------------------------------- /bootstrap.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | aclocal 4 | autoconf 5 | -------------------------------------------------------------------------------- /checks/check_compiler.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Use `test/test_compiler' to test gw/wml_compiler.c 4 | 5 | set -e 6 | 7 | test/wml_tester -b test/testcase.wml | test/decompile | diff test/testcase.wml - > check_compiler.log 2>&1 8 | ret=$? 9 | 10 | if [ "$ret" != 0 ] 11 | then 12 | echo check_compiler failed 1>&2 13 | echo See check_compiler.log or run test/test_compiler for info 1>&2 14 | exit 1 15 | fi 16 | 17 | rm -f check_compiler.log 18 | -------------------------------------------------------------------------------- /checks/check_fakesmsc.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Use `test/fakesmsc' to test the bearerbox and the smsbox. 4 | 5 | set -e 6 | #set -x 7 | 8 | times=10 9 | interval=0 10 | loglevel=0 11 | host=127.0.0.1 12 | 13 | gw/bearerbox -v $loglevel gw/smskannel.conf > check_fakesmsc_bb.log 2>&1 & 14 | bbpid=$! 15 | sleep 2 16 | 17 | test/fakesmsc -H $host -r 20000 -i $interval -m $times '123 234 text nop' \ 18 | > check_fakesmsc.log 2>&1 & 19 | sleep 1 20 | 21 | gw/smsbox -v $loglevel gw/smskannel.conf > check_fakesmsc_sms.log 2>&1 & 22 | 23 | running="yes" 24 | while [ $running = "yes" ] 25 | do 26 | sleep 2 27 | if grep "Got message $times" check_fakesmsc.log >/dev/null 28 | then 29 | running="no" 30 | fi 31 | done 32 | 33 | kill -INT $bbpid 34 | wait 35 | 36 | if grep 'WARNING:|ERROR:|PANIC:' check_fakesmsc*.log >/dev/null 37 | then 38 | echo check_fakesmsc.sh failed 1>&2 39 | echo See check_fakesmsc*.log for info 1>&2 40 | exit 1 41 | fi 42 | 43 | rm -f check_fakesmsc*.log 44 | 45 | exit 0 46 | -------------------------------------------------------------------------------- /checks/check_fakewap.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Use `test/fakewap' to test the bearerbox and the wapbox. 4 | 5 | set -e 6 | #set -x 7 | 8 | host=127.0.0.1 9 | times=2 10 | port=8040 11 | url="http://$host:$port/hello.wml" 12 | loglevel=0 13 | 14 | test/test_http_server -f test/hello.wml -p $port > check_http.log 2>&1 & 15 | httppid=$! 16 | 17 | gw/bearerbox -v $loglevel gw/wapkannel.conf > check_bb.log 2>&1 & 18 | bbpid=$! 19 | 20 | sleep 2 21 | 22 | gw/wapbox -v $loglevel gw/wapkannel.conf > check_wap.log 2>&1 & 23 | wappid=$! 24 | 25 | sleep 2 26 | 27 | test/fakewap -g $host -m $times $url > check_fake.log 2>&1 28 | ret=$? 29 | 30 | test/test_http -qv 4 http://$host:$port/quit 31 | 32 | kill -INT $bbpid 33 | kill -INT $wappid 34 | wait 35 | 36 | if [ "$ret" != 0 ] 37 | then 38 | echo check_fakewap failed 1>&2 39 | echo See check_bb.log, check_wap.log, check_fake.log, 1>&2 40 | echo check_http.log for info 1>&2 41 | exit 1 42 | fi 43 | 44 | rm -f check_bb.log check_wap.log check_fake.log check_http.log 45 | 46 | exit 0 47 | -------------------------------------------------------------------------------- /checks/check_headers.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Use `test/test_headers' to test gw/wsp_headers.c 4 | 5 | set -e 6 | #set -x 7 | 8 | loglevel=1 9 | 10 | test/test_headers -v $loglevel test/header_test > check_headers.log 2>&1 11 | ret=$? 12 | 13 | if [ "$ret" != 0 ] || \ 14 | grep ERROR: check_headers.log > /dev/null 15 | then 16 | echo check_headers failed 1>&2 17 | echo See check_headers.log or run test/test_headers for info 1>&2 18 | exit 1 19 | fi 20 | 21 | rm -f check_headers.log 22 | -------------------------------------------------------------------------------- /checks/check_http.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Use `test/test_http{,_server}' to test gwlib/http.c. 4 | # Incuding the SSL client and server componentes, if, of course, SSL has been 5 | # enabled. 6 | 7 | set -e 8 | #set -x 9 | 10 | times=2 11 | host=127.0.0.1 12 | port="8040" 13 | port_ssl="8041" 14 | url="http://$host:$port/foo.txt" 15 | url_ssl="https://$host:$port_ssl/foo.txt" 16 | quiturl="http://$host:$port/quit" 17 | quiturl_ssl="https://$host:$port_ssl/quit" 18 | ssl_cert="gw/cert.pem" 19 | ssl_key="gw/key.pem" 20 | ssl_clientcert="/tmp/clientcert.pem" 21 | loglevel=0 22 | ssl_enabled="yes" 23 | 24 | cat $ssl_cert $ssl_key > $ssl_clientcert 25 | 26 | test/test_http_server -p $port -v $loglevel > check_http_server.log 2>&1 & 27 | serverpid=$! 28 | sleep 1 29 | 30 | test/test_http_server -p $port_ssl -v $loglevel -s -c $ssl_cert -k $ssl_key > check_https_server.log 2>&1 & 31 | serverpid_ssl=$! 32 | sleep 1 33 | 34 | test/test_http -r $times $url > check_http.log 2>&1 35 | ret=$? 36 | 37 | test/test_http -r 1 -s -c $ssl_clientcert $url_ssl > check_https.log 2>&1 38 | ret=$? 39 | 40 | if grep 'SSL not compiled in' check_https.log > /dev/null 41 | then 42 | echo 'do not check SSL, SSL not compiled in' 43 | ssl_enabled="no" 44 | fi 45 | 46 | if test "$ssl_enabled" = "yes" 47 | then 48 | echo -n ' checking SSL connections, too...' 49 | test/test_http -r $times -s -c $ssl_clientcert $url_ssl > check_https.log 2>&1 50 | ret=$? 51 | else 52 | test/test_http -r 1 -s -c $ssl_clientcert $quiturl_ssl >> check_https.log 2>&1 53 | rm -f check_https.log 54 | sleep 1 55 | fi 56 | 57 | test/test_http -r 1 $quiturl >> check_http.log 2>&1 58 | if test "$ssl_enabled" = "yes" 59 | then 60 | test/test_http -r 1 -s -c $ssl_clientcert $quiturl_ssl >> check_https.log 2>&1 61 | sleep 1 62 | fi 63 | 64 | sleep 1 65 | if grep 'ERROR:|PANIC:' check_http.log check_http_server.log > /dev/null 66 | then 67 | echo check_http failed 1>&2 68 | echo See check_http.log and check_http_server.log for info 1>&2 69 | exit 1 70 | fi 71 | 72 | if test "$ssl_enabled" = "yes" 73 | then 74 | if grep 'ERROR:|PANIC' check_https.log check_https_server.log > /dev/null 75 | then 76 | echo check_https failed 1>&2 77 | echo see check_https_log and check_http_server.log for info 1>&2 78 | exit 1 79 | fi 80 | fi 81 | 82 | rm -f check_http*.log 83 | rm -f $ssl_clientcert 84 | exit 0 85 | 86 | 87 | 88 | -------------------------------------------------------------------------------- /checks/check_httpsmsc_kannel.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Use `test/fakesmsc' to test the bearerbox and the smsbox. 4 | 5 | set -e 6 | #set -x 7 | 8 | times=10 9 | interval=0 10 | loglevel=0 11 | host=127.0.0.1 12 | 13 | gw/bearerbox -v $loglevel gw/smskannel.conf > check_httpsmsc_kannel_sbb.log 2>&1 & 14 | sbbpid=$! 15 | sleep 1 16 | 17 | gw/bearerbox -v $loglevel gw/other_smskannel.conf > check_httpsmsc_kannel_cbb.log 2>&1 & 18 | cbbpid=$! 19 | sleep 2 20 | 21 | test/fakesmsc -H $host -i $interval -m $times '123 234 text relay nop' \ 22 | > check_httpsmsc_kannel_fake.log 2>&1 & 23 | sleep 1 24 | 25 | gw/smsbox -v $loglevel gw/smskannel.conf > check_httpsmsc_kannel_ssb.log 2>&1 & 26 | gw/smsbox -v $loglevel gw/other_smskannel.conf > check_httpsmsc_kannel_csb.log 2>&1 & 27 | 28 | running="yes" 29 | while [ $running = "yes" ] 30 | do 31 | sleep 1 32 | if grep -v "fakesmsc: terminating" check_httpsmsc_kannel_fake.log >/dev/null 33 | then 34 | running="no" 35 | fi 36 | done 37 | 38 | kill -INT $sbbpid 39 | kill -INT $cbbpid 40 | wait 41 | 42 | if grep 'WARNING:|ERROR:|PANIC:' check_httpsmsc_kannel_*.log >/dev/null 43 | then 44 | echo check_httpsmsc_kannel.sh failed 1>&2 45 | echo See check_httpsmsc_kannel_*.log for info 1>&2 46 | exit 1 47 | fi 48 | 49 | rm -f check_httpsmsc_kannel_*.log 50 | -------------------------------------------------------------------------------- /checks/check_octstr.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/checks/check_octstr.c -------------------------------------------------------------------------------- /checks/check_smpp.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Use `test/drive_smpp' to test SMPP driver. 4 | 5 | set -e 6 | #set -x 7 | 8 | times=10 9 | 10 | test/drive_smpp -v 0 -m $times 2> check_smpp_drive.log 1>&2 & 11 | sleep 1 12 | 13 | gw/bearerbox -v 0 test/drive_smpp.conf 2> check_smpp_bb.log 1>&2 & 14 | bbpid=$! 15 | 16 | running=yes 17 | while [ $running = yes ] 18 | do 19 | sleep 1 20 | if grep "All messages sent to ESME." check_smpp_drive.log > /dev/null 21 | then 22 | running=no 23 | fi 24 | done 25 | sleep 5 26 | 27 | kill -INT $bbpid 28 | 29 | if grep 'WARNING:|ERROR:|PANIC:' check_smpp*.log >/dev/null 30 | then 31 | echo check_smpp.sh failed 1>&2 32 | echo See check_smpp*.log for info 1>&2 33 | exit 1 34 | fi 35 | 36 | rm -f check_smpp*.log 37 | 38 | exit 0 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /config.rpath: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/config.rpath -------------------------------------------------------------------------------- /contrib/fortune.cgi: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | FORTUNE_MAX_TRIES = 10 4 | SMS_MAX = 160 5 | 6 | import os, string, sys 7 | 8 | def fortune(): 9 | for i in range(FORTUNE_MAX_TRIES): 10 | f = os.popen("/usr/games/fortune", "r") 11 | data = f.read() 12 | f.close() 13 | data = string.join(string.split(data)) 14 | if len(data) <= SMS_MAX: 15 | break 16 | sys.stdout.write("Content-Type: text/plain\r\n\r\n") 17 | sys.stdout.write(data[:SMS_MAX]) 18 | 19 | if __name__ == "__main__": 20 | fortune() 21 | -------------------------------------------------------------------------------- /contrib/kannel-monitor/config.php: -------------------------------------------------------------------------------- 1 | "http://kannel.yourdomain.com:23000", 7 | "status_passwd" => "foobar", 8 | "admin_passwd" => "", 9 | "name" => "Kannel 1" 10 | ), 11 | array( "base_url" => "http://kannel.yourdomain.com:33000", 12 | "status_passwd" => "foobar", 13 | "admin_passwd" => "", 14 | "name" => "Kannel 2" 15 | ) 16 | ); 17 | 18 | /* some constants */ 19 | define('MAX_QUEUE', 100); /* Maximum size of queues before displaying it in red */ 20 | define('DEFAULT_REFRESH', 60); /* Default refresh time for the web interface */ 21 | ?> 22 | -------------------------------------------------------------------------------- /contrib/kannel-monitor/kannel.js: -------------------------------------------------------------------------------- 1 | 2 | function admin_url(command, url, passwd) { 3 | if (passwd == "") { 4 | passwd = prompt("Please enter admin password for this Kannel instance:", "(enter admin password here)"); 5 | } 6 | check = confirm("Are you sure you want to '"+command+"' bearerbox from this Kannel instance?"); 7 | if (check == true) { 8 | admin_window = window.open("","newWin","width=350,height=150,left=0,top=0"); 9 | admin_window.location.href = url + "?password=" + passwd; 10 | } 11 | location.reload(); 12 | self.focus(); 13 | } 14 | 15 | function admin_smsc_url(command, url, smsc, passwd) { 16 | if (passwd == "") { 17 | passwd = prompt("Please enter admin password for this Kannel instance:", "(enter admin password here)"); 18 | } 19 | check = confirm("Are you sure you want to '"+command+"' the smsc-id '"+smsc+"' on the Kannel instance?"); 20 | if (check == true) { 21 | admin_window = window.open("","newWin","width=350,height=150,left=0,top=0"); 22 | admin_window.location.href = url + "&password=" + passwd; 23 | } 24 | location.reload(); 25 | self.focus(); 26 | } 27 | 28 | function do_alert(text) { 29 | alert(text); 30 | } 31 | -------------------------------------------------------------------------------- /contrib/mon/README: -------------------------------------------------------------------------------- 1 | Kannel monitoring module for 'mon' 2 | ================================== 3 | 4 | This Perl script is a custom monitoring module for mon, the system monitoring 5 | tool, see http://www.kernel.org/pub/software/admin/mon/. The module watchs for 6 | availibility of the Kannel SMS gateway, basicaly it checks the state of the 7 | connected SMSC links. In case of an error it will returns the affected SMSC IDs 8 | of the links. 9 | 10 | 2002-07-31 Ingo Brombach, 11 | 12 | 13 | USAGE: $program [options] hosts... 14 | 15 | where options can be any of: 16 | 17 | -h this help message 18 | -n "smsc-ids..." a list of smsc-ids that should be ignored by the test 19 | -s URI the URI on the hosts containing the status-document (default: status.xml) 20 | -p port the port to connect to (default: 13000) 21 | -S use https:// scheme to access the URI (via SSLv3) (default: http://) 22 | -P password the status-password (default: ) 23 | -f file local XML file to read (mainly for testing) 24 | -v verbose output 25 | -i info mode, displays the whole information to stdout 26 | 27 | Examples: 28 | 29 | ./kannel.monitor -i -v -n "smpp_foo smpp_bar" kannel.foobar.com 30 | 31 | Checks out the status page status.xml (default) on kannel.foobar.com, 32 | port 13000 (default) without password. It lookes for the general 33 | status as well as for the status of the smsc-connections but ignores 34 | error on the smsc-ids smpp_foo and smpp_bar. The whole status is displayed. 35 | The failure messages are verbose. 36 | 37 | ./kannel.monitor -i -v -f status.xml -n "smpp_foo smpp_bar" 38 | 39 | The same as above, but reading from a local status.xml file 40 | 41 | ./kannel.monitor -p 13001 -P secret kannel.foobar.com 42 | 43 | Looking for status on port 13001 with password "secret". Only failing 44 | smsc-ids are displayed. 45 | 46 | 47 | Installation 48 | ============ 49 | 50 | You need the following Perl modules installed in order to run kannel.monitor 51 | on your system: 52 | 53 | URI.pm 54 | HTML/Tagset.pm 55 | HTML/Parser.pm 56 | LWP/UserAgent.pm 57 | XML/Parser 58 | 59 | They may be found on a CPAN mirror close to you, see http://www.cpan.org. 60 | 61 | 62 | Disclaimer 63 | ========== 64 | 65 | THIS SOFTWARE IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT WITHOUT ANY 66 | WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR A 67 | PARTICULAR PURPOSE. 68 | 69 | -------------------------------------------------------------------------------- /contrib/mon/kannel.monitor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/contrib/mon/kannel.monitor -------------------------------------------------------------------------------- /contrib/php-admin/README: -------------------------------------------------------------------------------- 1 | 2 | Edit the config.inc so it matches your kannel.conf 3 | 4 | 5 | Depending on your PHP setup you might have to set the: 6 | "allow_call_time_pass_reference = on" in your php.ini to get rid of the 7 | annoing warning. 8 | -------------------------------------------------------------------------------- /contrib/php-admin/admin.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | Kannel Administration 4 | 5 | 6 | 7 | \n"; 35 | } 36 | echo "

Reload page

\n"; 37 | ?> 38 | 39 |

40 |

41 |
42 | 43 | 44 | 45 | 46 | 47 |
Back to admin
Visit the Kannel homepage at www.kannel.org.
48 | 49 | 50 | -------------------------------------------------------------------------------- /contrib/php-admin/config.inc: -------------------------------------------------------------------------------- 1 | 15 | -------------------------------------------------------------------------------- /contrib/php-admin/functions.inc: -------------------------------------------------------------------------------- 1 | $error_description ($error_number)
\n"; 8 | echo "The SMS message was NOT sent!

\n"; 9 | } else { 10 | socket_set_blocking($connection, false); 11 | fputs($connection, "GET $URL HTTP/1.0\r\n\r\n"); 12 | while (!feof($connection)) { 13 | $myline = fgets($connection, 128); 14 | switch($myline) 15 | { 16 | case (strstr($myline, 'Content-')): break; 17 | case (strstr($myline, 'HTTP/1')): break; 18 | case "": break; 19 | case "\r\n": break; 20 | default: echo "

".$myline."

"; 21 | } 22 | } 23 | fclose ($connection); 24 | 25 | } 26 | } 27 | 28 | function octstr_append_cstr($mystring) 29 | { 30 | for($pos=0;$pos -------------------------------------------------------------------------------- /contrib/php-admin/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Administration 5 | 6 | 7 | 8 | 9 |
10 |

Administration

11 | 24 |

 

25 |

Usage

26 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /contrib/php-admin/sendsms.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | SMS Message Sender 4 | 5 | 6 | 7 | \"$text\" to the phone $to...
\n"; 14 | $URL = "/cgi-bin/sendsms?username=".USERNAME."&password=".PASSWORD."&from=".GLOBAL_SENDER."&to=$to&text=".urlencode($text); 15 | http_send($URL,SENDSMS_PORT); 16 | echo "
Back to Send SMS
\n"; 17 | } else { 18 | 19 | ?> 20 | 21 |

SMS Message Sender

22 |
"> 23 |

24 | Telephone number: 25 |
26 | 27 |

28 |

29 | Message: 30 |
31 | 32 |

33 | 34 | 35 |
36 |
37 | 38 | 41 | 42 |

43 |

44 |
45 | 46 | 47 | 48 | 49 | 50 |
Back to admin
Visit the Kannel homepage at www.kannel.org.
51 | 52 | 53 | -------------------------------------------------------------------------------- /contrib/php-admin/sendvcard.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | vCard SMS Sender 4 | 5 | 6 | 7 | \"$text\" to the phone $to...
\n"; 19 | $URL = "/cgi-bin/sendsms?username=".USERNAME."&password=".PASSWORD."&from=".GLOBAL_SENDER."&to=$to&udh=%06%05%04%23%F4%00%00&text=".urlencode($text); 20 | // echo "URL: $URL
\n"; 21 | http_send($URL,SENDSMS_PORT); 22 | echo "
Back to Send vCard SMS
\n"; 23 | } else { 24 | 25 | ?> 26 | 27 |

vCard SMS Sender

28 |
"> 29 |

30 | Telephone number to send the SMS to: 31 |
32 | 33 |

34 |

35 | vCard: 36 |
37 | 38 | 39 | 40 | 41 |
First name (ie. John)
Last name (ie. Doe)
Telephone (ie. 4512345678)
42 |

43 | 44 | 45 |
46 |
47 | 48 | 51 | 52 |

53 |

54 |
55 | 56 | 57 | 58 | 59 | 60 |
Back to admin
Visit the Kannel homepage at www.kannel.org.
61 | 62 | 63 | -------------------------------------------------------------------------------- /contrib/ping.cgi: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | """PING cgi. 4 | 5 | Gets the name or IP number of a host as CGI argument. Returns as 6 | plain text the output of the ping command for that host. 7 | 8 | Lars Wirzenius 9 | """ 10 | 11 | import os, cgi, string 12 | 13 | def ping(host): 14 | if len(string.split(host, "'")) != 1: 15 | return "Invalid host name." 16 | f = os.popen("ping -q -c 4 '%s'" % host) 17 | lines = f.readlines() 18 | f.close() 19 | lines = map(lambda line: line[:-1], lines) 20 | lines = filter(lambda line: line and line[:4] != "--- ", lines) 21 | return string.join(string.split(string.join(lines, " ")), " ") 22 | 23 | def do_cgi(): 24 | print "Content-type: text/plain" 25 | print "" 26 | 27 | form = cgi.FieldStorage() 28 | if not form.has_key("host"): 29 | print "CGI argument `host' missing." 30 | else: 31 | host = form["host"].value 32 | print ping(host) 33 | 34 | if __name__ == "__main__": 35 | do_cgi() 36 | -------------------------------------------------------------------------------- /contrib/sendsms: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | import os, string, sys, urllib 4 | 5 | HOST = "localhost" 6 | PORT = 13013 7 | USERNAME = "tester" 8 | PASSWORD = "foobar" 9 | 10 | NUMBERS = "~/.sendsms.dat" 11 | 12 | def is_a_phone_number(str): 13 | if not str: 14 | return 0 15 | for c in str: 16 | if not c in "0123456789+- ": 17 | return 0 18 | return 1 19 | 20 | def recipient(arg): 21 | if is_a_phone_number(arg): 22 | return arg 23 | f = open(os.path.expanduser(NUMBERS), "r") 24 | arg = string.lower(arg) 25 | number = None 26 | for line in f.readlines(): 27 | parts = string.split(line) 28 | if len(parts) == 2 and string.lower(parts[0]) == arg: 29 | number = parts[1] 30 | break 31 | f.close() 32 | if number: 33 | return number 34 | print "Unknown recipient", arg 35 | sys.exit(1) 36 | 37 | def sendsms(): 38 | to = urllib.quote_plus(recipient(sys.argv[1])) 39 | text = urllib.quote_plus(string.join(sys.argv[2:], " ")) 40 | url="http://%s:%d/cgi-bin/sendsms?username=%s&password=%s&to=%s&text=%s" \ 41 | % (HOST, PORT, USERNAME, PASSWORD, to, text) 42 | f = urllib.urlopen(url) 43 | print f.read() 44 | f.close() 45 | 46 | if __name__ == "__main__": 47 | sendsms() 48 | -------------------------------------------------------------------------------- /contrib/smstomail.cgi: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | MAIL_SENDER = "liw" 4 | MAIL_RECEIVER = "liw" 5 | 6 | import cgi, os, string 7 | 8 | class Vars: 9 | def __init__(self): 10 | self._dict = cgi.FieldStorage() 11 | 12 | def __getitem__(self, key): 13 | return self._dict[key].value 14 | 15 | def smstomail(): 16 | print "Content-Type: text/plain" 17 | print "" 18 | 19 | v = Vars() 20 | 21 | f = os.popen("/usr/sbin/sendmail -oi %s" % MAIL_RECEIVER, "w") 22 | f.write("From: %s\nTo: %s\nSubject: SMS message from %s\n\n%s:\n%s\n" % 23 | (MAIL_SENDER, MAIL_RECEIVER, v["from"], v["to"], v["text"])) 24 | f.close() 25 | 26 | print "Sent via mail to receiver." 27 | 28 | if __name__ == "__main__": 29 | smstomail() 30 | -------------------------------------------------------------------------------- /contrib/web/form.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/contrib/web/form.php -------------------------------------------------------------------------------- /contrib/web/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /contrib/web/menu.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |

Message Type

6 | Text

7 | Nokia Smart Messaging - Logo

8 | Nokia Smart Messaging - Group

9 | Nokia Smart Messaging - Picture

10 | Nokia Smart Messaging - Tune

11 | Nokia Smart Messaging - vCard

12 | Nokia Smart Messaging - vCal

13 | Nokia Smart Messaging - Profile

14 | Message Waiting Indicator

15 | Wap OTA - Wap Config

16 | Wap OTA - Wap Bookmark

17 | Wap OTA - Wap Push SI

18 | Wap OTA - Wap Push SL

19 | Siemens - MMC

20 | RAW

21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /contrib/webalizer/ReadMe: -------------------------------------------------------------------------------- 1 | Scripts to generate webalizer pages from kannel access.log format. 2 | 3 | * smsc-id name have only one slash in it 4 | example: KannelClient-P12345 5 | First field is client name and second field is short number, "P" 6 | for production SMSC 7 | 8 | * sendsms-user and service name have at least two slashes in it 9 | example: KannelClient-MT-Logos or KannelClient-MO-ReplyLogo 10 | First field is client name, second is MT for sendsms-users 11 | (web generated MT messages) and MO for services (even if it is 12 | a MT message, it's a reply to an MO). Could be something like 13 | USER and SERVICE. Third field is the service name. 14 | 15 | * scripts have some hard-coded directories and filenames. 16 | I have a user kannel, in directory /home/kannel, inside a 17 | bin, etc and var/log. Just check and adjust them. 18 | 19 | * stats.sh could be run in crontab when everything is working 20 | ok 21 | 22 | * scripts uses to create a directory and 23 | the rest for the webalizer directory. This way, we could have 24 | different directories for different clients connected to kannel 25 | 26 | 27 | 28 | (c) 2001,2002 Bruno Rodrigues 29 | Under GPL Licence 30 | 31 | -------------------------------------------------------------------------------- /contrib/webalizer/converte.pl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl 2 | 3 | $exchange = shift; 4 | 5 | $exchange = "" if $exchange =~ /-/; 6 | 7 | $|=1; 8 | @months = ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"); 9 | %results = ( "Sent" => "200", "Receive" => "200", "FAILED Send" => 403, "DISCARDED" => "404"); 10 | 11 | while ($line = ) { 12 | chop($line); 13 | 14 | # Lines to ignore 15 | # --------------- 16 | next if $line =~ /Log begins/; 17 | next if $line =~ /Log ends/; 18 | 19 | $line =~ /^([0-9]{4})-([0-9]{2})-([0-9]{2}) ([0-9]{2}):([0-9]{2}):([0-9]{2}) (.+?) SMS \[SMSC:(.*?)\] \[SVC:(.*?)\] \[from:(.*?)\] \[to:(.*?)\] \[flags:(.):(.):(.):(.):(.)\] \[msg:([0-9]+):(.*?)\] \[udh:([0-9]+):(.*?)\]$/i; 20 | ($year, $month, $day, $hour, $minute, $second, $result, $smsc, $svc, $from, $to, $f1, $f2, $f3, $f4, $f5, $msglen, $msg, $udhlen, $udh) = ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20); 21 | 22 | $msg =~ s/[^a-zA-Z0-9]//g; 23 | $msg = substr($msg, 0, 60); 24 | $msg =~ tr/a-z/A-Z/; 25 | 26 | if($exchange ne "") { 27 | $to = $from; 28 | } 29 | 30 | $to .= ".pt" if $to =~ /^91/; 31 | $to .= ".fr" if $to =~ /^93/; 32 | $to .= ".es" if $to =~ /^96/; 33 | $to .= ".uk" if $to =~ /^95/; 34 | 35 | $string = $to; 36 | $string .= " - - [". $day; 37 | $string .= "/". $months[$month-1]; 38 | $string .= "/". $year; 39 | $string .= ":". $hour; 40 | $string .= ":". $minute; 41 | $string .= ":". $second; 42 | $string .= " +0100] ". '"GET /'. $msg; 43 | $string .= ' HTTP/1.0" '. $results{$result}; 44 | $string .= " ". ($msglen+$udhlen); 45 | $string .= ' "'. $f1. ",". $f2. ",". $f3. ",". $f4. ",". $f5 . '" -'."\n"; 46 | 47 | print $string; 48 | } 49 | -------------------------------------------------------------------------------- /contrib/webalizer/multi-line.pl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl -w 2 | 3 | # This script joins multi-line entries from access.log 4 | # cat bearerbox_access.log | multi-line.pl 5 | 6 | $|=1; 7 | 8 | $linenum=0; 9 | $result=""; 10 | 11 | while($line = ) { 12 | $linenum++; 13 | chop($line); 14 | next if $line =~ /Log begins/; 15 | next if $line =~ /Log ends/; 16 | 17 | if ( $result ne "" && $line =~ /^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2} .+? .+? \[SMSC:.*?\] \[SVC:.*?\] \[from:.*?\] \[to:.*?\] \[flags:.:.:.:.:.+?\] \[msg:.+?:.*$/) { 18 | $result = ""; 19 | print STDERR "$linenum:$line\n"; 20 | } 21 | 22 | $result .= $line; 23 | 24 | if($result =~ /^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2} .+? .+? \[SMSC:.*?\] \[SVC:.*?\] \[from:.*?\] \[to:.*?\] \[flags:.:.:.:.:.+?\] \[msg:.+?:.*?\] \[udh:.+?:.*?\]$/i) { 25 | print $result."\n"; 26 | $result=""; 27 | } 28 | } 29 | 30 | -------------------------------------------------------------------------------- /contrib/webalizer/split.pl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl -w 2 | 3 | # This script reads access.log (pass it through multi-line first!) and 4 | # split them by SMSC or Service 5 | 6 | # Just define your service and smsc names as: 7 | # 8 | # SMSC: (smsc-id in smsc groups) 9 | # - 10 | # 11 | # Service: (name in sms-service and sendsms-user) 12 | # -- 13 | # SVC = for user, MT or USER 14 | # for service, MO or SERVICE 15 | 16 | 17 | 18 | $dir = shift || "/tmp"; 19 | 20 | foreach $line (<>) { 21 | 22 | $line =~ /^.{19} (.+) \[SMSC:(.*?)\] \[SVC:(.*?)\].*$/; 23 | 24 | $status= $1; $smsc= $2; $service= $3; 25 | 26 | if( $status =~ /Receive/) { 27 | open(X, ">>$dir/$smsc.log"); 28 | } else { 29 | open(X, ">>$dir/$service.log"); 30 | } 31 | 32 | print X $line; 33 | 34 | close(X); 35 | } 36 | -------------------------------------------------------------------------------- /contrib/webalizer/stats.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | logdir="var/tmp" 4 | http="public_html/web/stats" 5 | 6 | cd /home/kannel || exit 1 7 | 8 | old="" 9 | 10 | rm -f $logdir/*.log 11 | 12 | cat var/log/bearerbox_access.log$old | bin/multi-line.pl | bin/split.pl "$logdir/" 13 | 14 | # This block checks reads access.log from other machine 15 | #if [ "`/sbin/ifconfig | grep 100.204`" = "" ] ; then 16 | # other=204 17 | #else 18 | # other=205 19 | #fi 20 | #ssh .$other "cat var/log/bearerbox_access.log$old" | bin/multi-line.pl | bin/split.pl "$logdir/" 21 | 22 | for i in `(cd $logdir ; ls -1 *.log)` ; do 23 | dir=${i%%-*} 24 | file=${i#*-} ; file=${file%.log} 25 | 26 | echo "**$dir**$file**" 27 | if [ ! -d "$http/$dir" ] ; then 28 | mkdir -p "$http/$dir" 29 | fi 30 | if [ ! -d "$http/$dir/$file" ] ; then 31 | mkdir -p "$http/$dir/$file/" 32 | fi 33 | cat $logdir/$i | sort | bin/converte.pl $file | /usr/bin/webalizer -q -c etc/webalizer.conf -o $http/$dir/$file -t "$file" - 34 | done 35 | rm -f $logdir/*.log 36 | -------------------------------------------------------------------------------- /debian/changelog: -------------------------------------------------------------------------------- 1 | kannel-cvs (1.3.1-20030404-1) unstable; urgency=low 2 | 3 | * CVS Daily build 4 | 5 | -- Bruno Rodrigues Sun, 26 Jan 2003 17:05:13 +0100 6 | -------------------------------------------------------------------------------- /debian/changelog.devel: -------------------------------------------------------------------------------- 1 | kannel-devel (1.3.1-4) unstable; urgency=low 2 | 3 | * New package (Closes: #185381) 4 | * Fix bug in init script 5 | 6 | -- Bruno Rodrigues Sun, 4 May 2003 18:55:12 +0000 7 | 8 | kannel-devel (1.3.1-3) unstable; urgency=low 9 | 10 | * Updated Standards-Version to 3.5.9 and other cleaning up 11 | * Kannel-devel-docs is now architecture independent. Updated control and 12 | rule. 13 | 14 | -- Bruno Rodrigues Tue, 8 Apr 2003 20:08:50 +0000 15 | 16 | kannel-devel (1.3.1-2) unstable; urgency=low 17 | 18 | * Moved debian dir from orig.tar.gz to diff 19 | * Tidy up debian/ files 20 | 21 | -- Bruno Rodrigues Mon, 17 Mar 2003 21:20:19 +0000 22 | 23 | kannel-devel (1.3.1-1) unstable; urgency=low 24 | 25 | * New upstream version (development) 26 | 27 | -- Bruno Rodrigues Tue, 18 Feb 2003 05:52:44 +0000 28 | 29 | kannel-devel (1.3.0-2) unstable; urgency=low 30 | 31 | * Updated Standards-Version. 32 | 33 | -- Bruno Rodrigues Tue, 21 Jan 2003 01:34:48 +0000 34 | 35 | kannel-devel (1.3.0-1) unstable; urgency=low 36 | 37 | * New upstream version (development) 38 | 39 | -- Bruno Rodrigues Sat, 11 Jan 2003 16:23:39 +0100 40 | 41 | kannel-devel (1.1.6-1) unstable; urgency=low 42 | 43 | * New upstream version 44 | * Non-Official Package 45 | 46 | -- Bruno Rodrigues Thu, 28 Mar 2002 10:30:39 +0100 47 | -------------------------------------------------------------------------------- /debian/changelog.stable: -------------------------------------------------------------------------------- 1 | kannel (1.4.0-0) unstable; urgency=low 2 | 3 | * New upstream version. 4 | * Bumped standards version 5 | 6 | -- Bruno Rodrigues Sat, 7 Aug 2004 13:45:02 +0200 7 | 8 | kannel (1.2.1-5) unstable; urgency=low 9 | 10 | * New maintainer (Closes: #185224) 11 | * Fix bug in init script 12 | 13 | -- Bruno Rodrigues Sun, 4 May 2003 18:54:43 +0000 14 | 15 | kannel (1.2.1-4) unstable; urgency=low 16 | 17 | * Updated Standards-Version to 3.5.9 and other cleaning up 18 | * Kannel-docs is now architecture independent. Updated control and rules 19 | 20 | -- Bruno Rodrigues Tue, 8 Apr 2003 20:08:40 +0000 21 | 22 | kannel (1.2.1-3) unstable; urgency=low 23 | 24 | * Moved debian dir from orig to diff 25 | * Added debian/compat 26 | * Tidy up 27 | 28 | -- Bruno Rodrigues Mon, 17 Mar 2003 18:42:36 +0000 29 | 30 | kannel (1.2.1-2) unstable; urgency=low 31 | 32 | * Updated Standards-Version to 3.5.8 33 | 34 | -- Bruno Rodrigues Sun, 26 Jan 2003 17:05:13 +0100 35 | 36 | kkannel (1.2.1-1) unstable; urgency=low 37 | 38 | * New upstream version 39 | 40 | -- Bruno Rodrigues Sun, 26 Jan 2003 17:05:13 +0100 41 | 42 | kannel (1.2.0-1) unstable; urgency=low 43 | 44 | * New upstream version 45 | 46 | -- Bruno Rodrigues Thu, 18 Jul 2002 10:30:39 +0100 47 | 48 | kannel (0.11.3.cvs-1) unstable; urgency=low 49 | 50 | * New upstream version 0.11.3. This Debian package has a few additional 51 | changes made in upstream CVS since the release: 52 | * SMS timestamps are set by Kannel, if the SMS center did not set them. 53 | * Bugfixes in assertions. 54 | * Fixes to a couple of WMLScript compilation bugs. 55 | * WTP protocol fix in cases when load is heavy and Ack packets are delayed. 56 | * WTP state machine fix: if an event can't be handled, it is just ignored, 57 | instead of the state machine being killed. 58 | * Debian packaging: postinst creates user kannel, init.d/kannel runs 59 | the boxes as that user. 60 | 61 | -- Lars Wirzenius Tue, 10 Oct 2000 15:54:01 +0300 62 | 63 | kannel (0.11.2.cvs-1) unstable; urgency=low 64 | 65 | * Updated version of Debian packaging, for the CVS version. Also added 66 | a Debian revision number to the version number: even though the debian/ 67 | directory is part of upstream sources, there may be several Debian 68 | versions due to packaging etc per upstream release. 69 | 70 | -- Lars Wirzenius Tue, 3 Oct 2000 13:20:24 +0300 71 | 72 | kannel (0.7.9999) unstable; urgency=low 73 | 74 | * Initial version of Debian package. This is not an upstream release 75 | version. It is a CVS snapshot. 76 | 77 | -- Lars Wirzenius Wed, 29 Mar 2000 22:17:43 +0300 78 | 79 | 80 | -------------------------------------------------------------------------------- /debian/compat: -------------------------------------------------------------------------------- 1 | 4 2 | -------------------------------------------------------------------------------- /debian/control: -------------------------------------------------------------------------------- 1 | Source: kannel-cvs 2 | Section: net 3 | Priority: optional 4 | Maintainer: Bruno Rodrigues 5 | Build-Depends: debhelper (>> 4.0.0), libxml2-dev, libssl-dev, openssl, libmysqlclient10-dev, libpam0g-dev 6 | Build-Depends-Indep: debhelper (>> 4.0.0), docbook-dsssl, jadetex, transfig, imagemagick, gs 7 | Standards-Version: 3.5.9 8 | 9 | Package: kannel-cvs 10 | Architecture: any 11 | Section: net 12 | Priority: optional 13 | Depends: ${shlibs:Depends} 14 | Conflicts: kannel, kannel-devel 15 | Replaces: kannel, kannel-devel 16 | Description: WAP and SMS gateway (cvs) 17 | Kannel is a gateway for connecting WAP (Wireless Application Protocol) 18 | phones to the Internet. It also works as an SMS gateway, for providing 19 | SMS based services for GSM phones. 20 | . 21 | Compiled with ssl, mysql and native malloc. 22 | . 23 | Development and/or CVS versions are stable enough and encouraged to use 24 | to enable constant testing. CVS bugs are usually fixed in one or to days 25 | and a lot of developers use stable CVS versions in production. 26 | 27 | Package: kannel-cvs-extras 28 | Architecture: any 29 | Section: net 30 | Priority: optional 31 | Suggests: kannel-cvs, python 32 | Depends: ${shlibs:Depends} 33 | Description: WAP and SMS gateway extras (cvs) 34 | Kannel is a gateway for connecting WAP (Wireless Application Protocol) 35 | phones to the Internet. It also works as an SMS gateway, for providing 36 | SMS based services for GSM phones. 37 | . 38 | Test utilities and contrib data. 39 | . 40 | Development and/or CVS versions are stable enough and encouraged to use 41 | to enable constant testing. CVS bugs are usually fixed in one or to days 42 | and a lot of developers use stable CVS versions in production. 43 | 44 | Package: kannel-cvs-docs 45 | Architecture: all 46 | Section: net 47 | Suggests: kannel-cvs 48 | Priority: optional 49 | Description: WAP and SMS gateway documentation (cvs) 50 | Kannel is a gateway for connecting WAP (Wireless Application Protocol) 51 | phones to the Internet. It also works as an SMS gateway, for providing 52 | SMS based services for GSM phones. 53 | . 54 | Documentation in html, rtf and pdf format. 55 | . 56 | Development and/or CVS versions are stable enough and encouraged to use 57 | to enable constant testing. CVS bugs are usually fixed in one or to days 58 | and a lot of developers use stable CVS versions in production. 59 | -------------------------------------------------------------------------------- /debian/control.devel: -------------------------------------------------------------------------------- 1 | Source: kannel-devel 2 | Section: net 3 | Priority: optional 4 | Maintainer: Bruno Rodrigues 5 | Build-Depends: debhelper (>> 4.0.0), libxml2-dev, libssl-dev, openssl, libmysqlclient10-dev, libpam0g-dev 6 | Build-Depends-Indep: debhelper (>> 4.0.0), docbook-dsssl, jadetex, transfig, imagemagick, gs 7 | Standards-Version: 3.5.9 8 | 9 | Package: kannel-devel 10 | Architecture: any 11 | Section: net 12 | Priority: optional 13 | Depends: ${shlibs:Depends} 14 | Conflicts: kannel, kannel-cvs 15 | Replaces: kannel, kannel-cvs 16 | Description: WAP and SMS gateway (development) 17 | Kannel is a gateway for connecting WAP (Wireless Application Protocol) 18 | phones to the Internet. It also works as an SMS gateway, for providing 19 | SMS based services for GSM phones. 20 | . 21 | Compiled with ssl, mysql and native malloc. 22 | . 23 | Development and/or CVS versions are stable enough and encouraged to use 24 | to enable constant testing. CVS bugs are usually fixed in one or to days 25 | and a lot of developers use stable CVS versions in production. 26 | 27 | Package: kannel-devel-extras 28 | Architecture: any 29 | Section: net 30 | Priority: optional 31 | Suggests: kannel-devel, python 32 | Depends: ${shlibs:Depends} 33 | Description: WAP and SMS gateway extras (development) 34 | Kannel is a gateway for connecting WAP (Wireless Application Protocol) 35 | phones to the Internet. It also works as an SMS gateway, for providing 36 | SMS based services for GSM phones. 37 | . 38 | Test utilities and contrib data. 39 | . 40 | Development and/or CVS versions are stable enough and encouraged to use 41 | to enable constant testing. CVS bugs are usually fixed in one or to days 42 | and a lot of developers use stable CVS versions in production. 43 | 44 | Package: kannel-devel-docs 45 | Architecture: all 46 | Section: net 47 | Suggests: kannel-devel 48 | Priority: optional 49 | Description: WAP and SMS gateway documentation 50 | Kannel is a gateway for connecting WAP (Wireless Application Protocol) 51 | phones to the Internet. It also works as an SMS gateway, for providing 52 | SMS based services for GSM phones. 53 | . 54 | Documentation in html, rtf and pdf format. 55 | . 56 | Development and/or CVS versions are stable enough and encouraged to use 57 | to enable constant testing. CVS bugs are usually fixed in one or to days 58 | and a lot of developers use stable CVS versions in production. 59 | -------------------------------------------------------------------------------- /debian/control.stable: -------------------------------------------------------------------------------- 1 | Source: kannel 2 | Section: net 3 | Priority: optional 4 | Maintainer: Bruno Rodrigues 5 | Build-Depends: debhelper (>> 4.0.0), libxml2-dev, libssl-dev, openssl, libmysqlclient10-dev, libpam0g-dev 6 | Build-Depends-Indep: debhelper (>> 4.0.0), docbook-dsssl, jadetex, transfig, imagemagick, gs 7 | Standards-Version: 3.6.1 8 | 9 | Package: kannel 10 | Architecture: any 11 | Section: net 12 | Priority: optional 13 | Depends: ${shlibs:Depends} 14 | Suggests: kannel-extras, kannel-docs 15 | Description: WAP and SMS gateway 16 | Kannel is a gateway for connecting WAP (Wireless Application Protocol) 17 | phones to the Internet. It also works as an SMS gateway, for providing 18 | SMS based services for GSM phones. 19 | . 20 | Compiled with ssl, mysql and native malloc. 21 | 22 | Package: kannel-extras 23 | Architecture: any 24 | Section: net 25 | Priority: optional 26 | Suggests: kannel, python 27 | Depends: ${shlibs:Depends} 28 | Description: WAP and SMS gateway extras 29 | Kannel is a gateway for connecting WAP (Wireless Application Protocol) 30 | phones to the Internet. It also works as an SMS gateway, for providing 31 | SMS based services for GSM phones. 32 | . 33 | Test utilities and contrib data. 34 | 35 | Package: kannel-docs 36 | Architecture: all 37 | Section: net 38 | Suggests: kannel 39 | Priority: optional 40 | Description: WAP and SMS gateway documentation 41 | Kannel is a gateway for connecting WAP (Wireless Application Protocol) 42 | phones to the Internet. It also works as an SMS gateway, for providing 43 | SMS based services for GSM phones. 44 | . 45 | Documentation in HTML, RTF and PDF format. 46 | -------------------------------------------------------------------------------- /debian/copyright: -------------------------------------------------------------------------------- 1 | This is Kannel, originally packaged for Debian by Lars Wirzenius 2 | and now maintained by Bruno Rodrigues 3 | 4 | 5 | Original author is the Kannel project, see http://www.kannel.org, 6 | run by Wapit Ltd, see http://www.wapit.com. 7 | 8 | Copyright (c) 1998 WAPIT OY LTD. 9 | All rights reserved. 10 | 11 | Redistribution and use in source and binary forms, with or without 12 | modification, are permitted provided that the following conditions 13 | are met: 14 | 15 | 1. Redistributions of source code must retain the above copyright notice, 16 | this list of conditions and the following disclaimer. 17 | 18 | 2. Redistributions in binary form must reproduce the above copyright 19 | notice, this list of conditions and the following disclaimer in the 20 | documentation and/or other materials provided with the distribution. 21 | 22 | 3. All advertising materials mentioning features or use of this software 23 | must display the following acknowledgement: This product includes software 24 | developed by WAPIT OY LTD. 25 | 26 | 4. The name of the author may not be used to endorse or promote products 27 | derived from this software without specific prior written permission. 28 | 29 | 30 | THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 31 | IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 32 | OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 33 | IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 34 | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 35 | BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 36 | USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 37 | ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 38 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 39 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 40 | -------------------------------------------------------------------------------- /debian/kannel-cvs-docs.docs: -------------------------------------------------------------------------------- 1 | debian/tmp/usr/share/doc/kannel/alligata 2 | debian/tmp/usr/share/doc/kannel/userguide 3 | debian/tmp/usr/share/doc/kannel/wtls 4 | -------------------------------------------------------------------------------- /debian/kannel-cvs-extras.install: -------------------------------------------------------------------------------- 1 | debian/tmp/usr/lib/kannel/* usr/lib/kannel-cvs 2 | debian/tmp/usr/share/doc/kannel/contrib usr/share/kannel-cvs 3 | -------------------------------------------------------------------------------- /debian/kannel-cvs.default: -------------------------------------------------------------------------------- 1 | START_WAPBOX=1 2 | #START_SMSBOX=1 3 | -------------------------------------------------------------------------------- /debian/kannel-cvs.dirs: -------------------------------------------------------------------------------- 1 | var/log/kannel 2 | var/run/kannel 3 | -------------------------------------------------------------------------------- /debian/kannel-cvs.docs: -------------------------------------------------------------------------------- 1 | AUTHORS 2 | README 3 | NEWS 4 | VERSION 5 | -------------------------------------------------------------------------------- /debian/kannel-cvs.examples: -------------------------------------------------------------------------------- 1 | doc/examples/* 2 | -------------------------------------------------------------------------------- /debian/kannel-cvs.install: -------------------------------------------------------------------------------- 1 | debian/tmp/usr/bin usr 2 | debian/tmp/usr/sbin usr 3 | debian/tmp/usr/share/man usr/share 4 | debian/kannel.conf /etc/kannel/ 5 | -------------------------------------------------------------------------------- /debian/kannel-cvs.links: -------------------------------------------------------------------------------- 1 | /usr/share/man/man8/kannel.8.gz /usr/share/man/man8/bearerbox.8.gz 2 | /usr/share/man/man8/kannel.8.gz /usr/share/man/man8/wapbox.8.gz 3 | /usr/share/man/man8/kannel.8.gz /usr/share/man/man8/smsbox.8.gz 4 | -------------------------------------------------------------------------------- /debian/kannel-cvs.logrotate: -------------------------------------------------------------------------------- 1 | /var/log/kannel/*.log { 2 | daily 3 | missingok 4 | rotate 365 5 | compress 6 | delaycompress 7 | notifempty 8 | create 640 kannel adm 9 | sharedscripts 10 | postrotate 11 | killall -HUP bearerbox smsbox wapbox > /dev/null 2> /dev/null || true 12 | endscript 13 | } 14 | -------------------------------------------------------------------------------- /debian/kannel-cvs.postinst: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | # postinst script for kannel 3 | # 4 | # see: dh_installdeb(1) 5 | 6 | set -e 7 | 8 | # summary of how this script can be called: 9 | # * `configure' 10 | # * `abort-upgrade' 11 | # * `abort-remove' `in-favour' 12 | # 13 | # * `abort-deconfigure' `in-favour' 14 | # `removing' 15 | # 16 | # for details, see http://www.debian.org/doc/debian-policy/ or 17 | # the debian-policy package 18 | # 19 | # quoting from the policy: 20 | # Any necessary prompting should almost always be confined to the 21 | # post-installation script, and should be protected with a conditional 22 | # so that unnecessary prompting doesn't happen if a package's 23 | # installation fails and the `postinst' is called with `abort-upgrade', 24 | # `abort-remove' or `abort-deconfigure'. 25 | 26 | case "$1" in 27 | configure) 28 | 29 | # Create a "kannel" user. This has modeled after the code in the postfix.deb 30 | # postinst. We first try to set the ownership of /var/log/kannel. If that 31 | # fails, we create the user and re-try. If that still fails, we abort. 32 | if chown -c kannel.root /var/log/kannel /var/run/kannel 2>/dev/null 33 | then 34 | : 35 | #elif adduser --system --group kannel 36 | elif adduser --system --home /usr/lib/kannel --no-create-home --gecos "Kannel" kannel 37 | then 38 | sleep 1 # wait for user creation 39 | chown -c kannel.root /var/log/kannel 40 | chown -c kannel.root /var/run/kannel 41 | fi 42 | 43 | ;; 44 | 45 | abort-upgrade|abort-remove|abort-deconfigure) 46 | 47 | ;; 48 | 49 | *) 50 | echo "postinst called with unknown argument \`$1'" >&2 51 | exit 1 52 | ;; 53 | esac 54 | 55 | # dh_installdeb will replace this with shell code automatically 56 | # generated by other debhelper scripts. 57 | 58 | #DEBHELPER# 59 | 60 | exit 0 61 | 62 | 63 | -------------------------------------------------------------------------------- /debian/kannel-cvs.postrm: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | # postrm script for kannel 3 | # 4 | # see: dh_installdeb(1) 5 | 6 | set -e 7 | 8 | # summary of how this script can be called: 9 | # * `remove' 10 | # * `purge' 11 | # * `upgrade' 12 | # * `failed-upgrade' 13 | # * `abort-install' 14 | # * `abort-install' 15 | # * `abort-upgrade' 16 | # * `disappear' overwrit>r> 17 | # for details, see http://www.debian.org/doc/debian-policy/ or 18 | # the debian-policy package 19 | 20 | 21 | case "$1" in 22 | remove|upgrade|failed-upgrade|abort-upgrade|disappear|abort-install) 23 | ;; 24 | 25 | purge) 26 | test -d /var/log/kannel && rm -fr /var/log/kannel 27 | test -d /var/run/kannel && rm -fr /var/run/kannel 28 | test -d /etc/kannel && rmdir /etc/kannel 29 | deluser kannel 30 | ;; 31 | *) 32 | echo "postrm called with unknown argument \`$1'" >&2 33 | exit 1 34 | 35 | esac 36 | 37 | # dh_installdeb will replace this with shell code automatically 38 | # generated by other debhelper scripts. 39 | 40 | #DEBHELPER# 41 | 42 | exit 0 43 | -------------------------------------------------------------------------------- /debian/kannel-devel-docs.docs: -------------------------------------------------------------------------------- 1 | debian/tmp/usr/share/doc/kannel/alligata 2 | debian/tmp/usr/share/doc/kannel/userguide 3 | debian/tmp/usr/share/doc/kannel/wtls 4 | -------------------------------------------------------------------------------- /debian/kannel-devel-extras.install: -------------------------------------------------------------------------------- 1 | debian/tmp/usr/lib/kannel/* usr/lib/kannel-devel 2 | debian/tmp/usr/share/doc/kannel/contrib usr/share/kannel-devel 3 | -------------------------------------------------------------------------------- /debian/kannel-devel.default: -------------------------------------------------------------------------------- 1 | START_WAPBOX=1 2 | #START_SMSBOX=1 3 | -------------------------------------------------------------------------------- /debian/kannel-devel.dirs: -------------------------------------------------------------------------------- 1 | var/log/kannel 2 | var/run/kannel 3 | -------------------------------------------------------------------------------- /debian/kannel-devel.docs: -------------------------------------------------------------------------------- 1 | AUTHORS 2 | README 3 | NEWS 4 | TODO 5 | VERSION 6 | -------------------------------------------------------------------------------- /debian/kannel-devel.examples: -------------------------------------------------------------------------------- 1 | doc/examples/* 2 | -------------------------------------------------------------------------------- /debian/kannel-devel.install: -------------------------------------------------------------------------------- 1 | debian/tmp/usr/bin usr 2 | debian/tmp/usr/sbin usr 3 | debian/tmp/usr/share/man usr/share 4 | debian/kannel.conf /etc/kannel/ 5 | -------------------------------------------------------------------------------- /debian/kannel-devel.links: -------------------------------------------------------------------------------- 1 | /usr/share/man/man8/kannel.8.gz /usr/share/man/man8/bearerbox.8.gz 2 | /usr/share/man/man8/kannel.8.gz /usr/share/man/man8/wapbox.8.gz 3 | /usr/share/man/man8/kannel.8.gz /usr/share/man/man8/smsbox.8.gz 4 | -------------------------------------------------------------------------------- /debian/kannel-devel.logrotate: -------------------------------------------------------------------------------- 1 | /var/log/kannel/*.log { 2 | daily 3 | missingok 4 | rotate 365 5 | compress 6 | delaycompress 7 | notifempty 8 | create 640 kannel adm 9 | sharedscripts 10 | postrotate 11 | killall -HUP bearerbox smsbox wapbox > /dev/null 2> /dev/null || true 12 | endscript 13 | } 14 | -------------------------------------------------------------------------------- /debian/kannel-devel.postinst: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | # postinst script for kannel 3 | # 4 | # see: dh_installdeb(1) 5 | 6 | set -e 7 | 8 | # summary of how this script can be called: 9 | # * `configure' 10 | # * `abort-upgrade' 11 | # * `abort-remove' `in-favour' 12 | # 13 | # * `abort-deconfigure' `in-favour' 14 | # `removing' 15 | # 16 | # for details, see http://www.debian.org/doc/debian-policy/ or 17 | # the debian-policy package 18 | # 19 | # quoting from the policy: 20 | # Any necessary prompting should almost always be confined to the 21 | # post-installation script, and should be protected with a conditional 22 | # so that unnecessary prompting doesn't happen if a package's 23 | # installation fails and the `postinst' is called with `abort-upgrade', 24 | # `abort-remove' or `abort-deconfigure'. 25 | 26 | case "$1" in 27 | configure) 28 | 29 | # Create a "kannel" user. This has modeled after the code in the postfix.deb 30 | # postinst. We first try to set the ownership of /var/log/kannel. If that 31 | # fails, we create the user and re-try. If that still fails, we abort. 32 | if chown -c kannel.root /var/log/kannel /var/run/kannel 2>/dev/null 33 | then 34 | : 35 | #elif adduser --system --group kannel 36 | elif adduser --system --home /usr/lib/kannel --no-create-home --gecos "Kannel" kannel 37 | then 38 | sleep 1 # wait for user creation 39 | chown -c kannel.root /var/log/kannel 40 | chown -c kannel.root /var/run/kannel 41 | fi 42 | 43 | ;; 44 | 45 | abort-upgrade|abort-remove|abort-deconfigure) 46 | 47 | ;; 48 | 49 | *) 50 | echo "postinst called with unknown argument \`$1'" >&2 51 | exit 1 52 | ;; 53 | esac 54 | 55 | # dh_installdeb will replace this with shell code automatically 56 | # generated by other debhelper scripts. 57 | 58 | #DEBHELPER# 59 | 60 | exit 0 61 | 62 | 63 | -------------------------------------------------------------------------------- /debian/kannel-devel.postrm: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | # postrm script for kannel 3 | # 4 | # see: dh_installdeb(1) 5 | 6 | set -e 7 | 8 | # summary of how this script can be called: 9 | # * `remove' 10 | # * `purge' 11 | # * `upgrade' 12 | # * `failed-upgrade' 13 | # * `abort-install' 14 | # * `abort-install' 15 | # * `abort-upgrade' 16 | # * `disappear' overwrit>r> 17 | # for details, see http://www.debian.org/doc/debian-policy/ or 18 | # the debian-policy package 19 | 20 | 21 | case "$1" in 22 | remove|upgrade|failed-upgrade|abort-upgrade|disappear|abort-install) 23 | ;; 24 | 25 | purge) 26 | test -d /var/log/kannel && rm -fr /var/log/kannel 27 | test -d /var/run/kannel && rm -fr /var/run/kannel 28 | test -d /etc/kannel && rmdir /etc/kannel 29 | deluser kannel 30 | ;; 31 | *) 32 | echo "postrm called with unknown argument \`$1'" >&2 33 | exit 1 34 | 35 | esac 36 | 37 | # dh_installdeb will replace this with shell code automatically 38 | # generated by other debhelper scripts. 39 | 40 | #DEBHELPER# 41 | 42 | exit 0 43 | -------------------------------------------------------------------------------- /debian/kannel-docs.docs: -------------------------------------------------------------------------------- 1 | debian/tmp/usr/share/doc/kannel/alligata 2 | debian/tmp/usr/share/doc/kannel/userguide 3 | debian/tmp/usr/share/doc/kannel/wtls 4 | -------------------------------------------------------------------------------- /debian/kannel-extras.install: -------------------------------------------------------------------------------- 1 | debian/tmp/usr/lib/kannel/* usr/lib/kannel 2 | debian/tmp/usr/share/doc/kannel/contrib usr/share/kannel 3 | -------------------------------------------------------------------------------- /debian/kannel.conf: -------------------------------------------------------------------------------- 1 | # 2 | # Sample configuration file for Kannel bearerbox on Debian. 3 | # See the documentation for explanations of fields. 4 | # 5 | 6 | # HTTP administration is disabled by default. Make sure you set the 7 | # password if you enable it. 8 | 9 | group = core 10 | admin-port = 13000 11 | admin-password = bar 12 | admin-deny-ip = "*.*.*.*" 13 | admin-allow-ip = "" 14 | wapbox-port = 13002 15 | wdp-interface-name = "*" 16 | log-file = "/var/log/kannel/bearerbox.log" 17 | box-deny-ip = "*.*.*.*" 18 | box-allow-ip = "127.0.0.1" 19 | 20 | group = wapbox 21 | bearerbox-host = localhost 22 | log-file = "/var/log/kannel/wapbox.log" 23 | -------------------------------------------------------------------------------- /debian/kannel.default: -------------------------------------------------------------------------------- 1 | START_WAPBOX=1 2 | #START_SMSBOX=1 3 | -------------------------------------------------------------------------------- /debian/kannel.dirs: -------------------------------------------------------------------------------- 1 | var/log/kannel 2 | var/run/kannel 3 | -------------------------------------------------------------------------------- /debian/kannel.docs: -------------------------------------------------------------------------------- 1 | AUTHORS 2 | README 3 | NEWS 4 | TODO 5 | VERSION 6 | -------------------------------------------------------------------------------- /debian/kannel.examples: -------------------------------------------------------------------------------- 1 | doc/examples/* 2 | -------------------------------------------------------------------------------- /debian/kannel.install: -------------------------------------------------------------------------------- 1 | debian/tmp/usr/bin usr 2 | debian/tmp/usr/sbin usr 3 | debian/tmp/usr/share/man usr/share 4 | debian/kannel.conf /etc/kannel/ 5 | -------------------------------------------------------------------------------- /debian/kannel.links: -------------------------------------------------------------------------------- 1 | /usr/share/man/man8/kannel.8.gz /usr/share/man/man8/bearerbox.8.gz 2 | /usr/share/man/man8/kannel.8.gz /usr/share/man/man8/wapbox.8.gz 3 | /usr/share/man/man8/kannel.8.gz /usr/share/man/man8/smsbox.8.gz 4 | -------------------------------------------------------------------------------- /debian/kannel.logrotate: -------------------------------------------------------------------------------- 1 | /var/log/kannel/*.log { 2 | daily 3 | missingok 4 | rotate 365 5 | compress 6 | delaycompress 7 | notifempty 8 | create 640 kannel adm 9 | sharedscripts 10 | postrotate 11 | killall -HUP bearerbox smsbox wapbox > /dev/null 2> /dev/null || true 12 | endscript 13 | } 14 | -------------------------------------------------------------------------------- /debian/kannel.postinst: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | # postinst script for kannel 3 | # 4 | # see: dh_installdeb(1) 5 | 6 | set -e 7 | 8 | # summary of how this script can be called: 9 | # * `configure' 10 | # * `abort-upgrade' 11 | # * `abort-remove' `in-favour' 12 | # 13 | # * `abort-deconfigure' `in-favour' 14 | # `removing' 15 | # 16 | # for details, see http://www.debian.org/doc/debian-policy/ or 17 | # the debian-policy package 18 | # 19 | # quoting from the policy: 20 | # Any necessary prompting should almost always be confined to the 21 | # post-installation script, and should be protected with a conditional 22 | # so that unnecessary prompting doesn't happen if a package's 23 | # installation fails and the `postinst' is called with `abort-upgrade', 24 | # `abort-remove' or `abort-deconfigure'. 25 | 26 | case "$1" in 27 | configure) 28 | 29 | # Create a "kannel" user. This has modeled after the code in the postfix.deb 30 | # postinst. We first try to set the ownership of /var/log/kannel. If that 31 | # fails, we create the user and re-try. If that still fails, we abort. 32 | if chown -c kannel.root /var/log/kannel /var/run/kannel 2>/dev/null 33 | then 34 | : 35 | #elif adduser --system --group kannel 36 | elif adduser --system --home /usr/lib/kannel --no-create-home --gecos "Kannel" kannel 37 | then 38 | sleep 1 # wait for user creation 39 | chown -c kannel.root /var/log/kannel 40 | chown -c kannel.root /var/run/kannel 41 | fi 42 | 43 | ;; 44 | 45 | abort-upgrade|abort-remove|abort-deconfigure) 46 | 47 | ;; 48 | 49 | *) 50 | echo "postinst called with unknown argument \`$1'" >&2 51 | exit 1 52 | ;; 53 | esac 54 | 55 | # dh_installdeb will replace this with shell code automatically 56 | # generated by other debhelper scripts. 57 | 58 | #DEBHELPER# 59 | 60 | exit 0 61 | 62 | 63 | -------------------------------------------------------------------------------- /debian/kannel.postrm: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | # postrm script for kannel 3 | # 4 | # see: dh_installdeb(1) 5 | 6 | set -e 7 | 8 | # summary of how this script can be called: 9 | # * `remove' 10 | # * `purge' 11 | # * `upgrade' 12 | # * `failed-upgrade' 13 | # * `abort-install' 14 | # * `abort-install' 15 | # * `abort-upgrade' 16 | # * `disappear' overwrit>r> 17 | # for details, see http://www.debian.org/doc/debian-policy/ or 18 | # the debian-policy package 19 | 20 | 21 | case "$1" in 22 | remove|upgrade|failed-upgrade|abort-upgrade|disappear|abort-install) 23 | ;; 24 | 25 | purge) 26 | test -d /var/log/kannel && rm -fr /var/log/kannel 27 | test -d /var/run/kannel && rm -fr /var/run/kannel 28 | test -d /etc/kannel && rmdir /etc/kannel 29 | deluser kannel 30 | ;; 31 | *) 32 | echo "postrm called with unknown argument \`$1'" >&2 33 | exit 1 34 | 35 | esac 36 | 37 | # dh_installdeb will replace this with shell code automatically 38 | # generated by other debhelper scripts. 39 | 40 | #DEBHELPER# 41 | 42 | exit 0 43 | -------------------------------------------------------------------------------- /doc/ChangeLog-0.13.1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/ChangeLog-0.13.1 -------------------------------------------------------------------------------- /doc/ChangeLog-1.1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/ChangeLog-1.1 -------------------------------------------------------------------------------- /doc/ChangeLog-1.1.1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/ChangeLog-1.1.1 -------------------------------------------------------------------------------- /doc/ChangeLog-1.1.2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/ChangeLog-1.1.2 -------------------------------------------------------------------------------- /doc/ChangeLog-1.1.4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/ChangeLog-1.1.4 -------------------------------------------------------------------------------- /doc/ChangeLog-1.1.6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/ChangeLog-1.1.6 -------------------------------------------------------------------------------- /doc/ChangeLog-1.2.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/ChangeLog-1.2.0 -------------------------------------------------------------------------------- /doc/ChangeLog-1.2.1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/ChangeLog-1.2.1 -------------------------------------------------------------------------------- /doc/ChangeLog-1.3.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/ChangeLog-1.3.0 -------------------------------------------------------------------------------- /doc/ChangeLog-1.3.1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/ChangeLog-1.3.1 -------------------------------------------------------------------------------- /doc/ChangeLog-1.3.2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/ChangeLog-1.3.2 -------------------------------------------------------------------------------- /doc/ChangeLog-1.4.1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/ChangeLog-1.4.1 -------------------------------------------------------------------------------- /doc/alligata/11-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/alligata/11-1.png -------------------------------------------------------------------------------- /doc/alligata/11-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/alligata/11-3.png -------------------------------------------------------------------------------- /doc/alligata/11-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/alligata/11-4.png -------------------------------------------------------------------------------- /doc/alligata/11-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/alligata/11-5.png -------------------------------------------------------------------------------- /doc/alligata/12-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/alligata/12-10.png -------------------------------------------------------------------------------- /doc/alligata/12-11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/alligata/12-11.png -------------------------------------------------------------------------------- /doc/alligata/12-12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/alligata/12-12.png -------------------------------------------------------------------------------- /doc/alligata/12-13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/alligata/12-13.png -------------------------------------------------------------------------------- /doc/alligata/12-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/alligata/12-2.png -------------------------------------------------------------------------------- /doc/alligata/12-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/alligata/12-3.png -------------------------------------------------------------------------------- /doc/alligata/12-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/alligata/12-4.png -------------------------------------------------------------------------------- /doc/alligata/12-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/alligata/12-5.png -------------------------------------------------------------------------------- /doc/alligata/12-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/alligata/12-6.png -------------------------------------------------------------------------------- /doc/alligata/12-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/alligata/12-7.png -------------------------------------------------------------------------------- /doc/alligata/12-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/alligata/12-8.png -------------------------------------------------------------------------------- /doc/alligata/12-9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/alligata/12-9.png -------------------------------------------------------------------------------- /doc/alligata/13-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/alligata/13-5.png -------------------------------------------------------------------------------- /doc/alligata/alligata.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/alligata/alligata.xml -------------------------------------------------------------------------------- /doc/alligata/done.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/alligata/done.png -------------------------------------------------------------------------------- /doc/alligata/licences.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/alligata/licences.png -------------------------------------------------------------------------------- /doc/alligata/maininst.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/alligata/maininst.png -------------------------------------------------------------------------------- /doc/alligata/nearlydone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/alligata/nearlydone.png -------------------------------------------------------------------------------- /doc/alligata/nopro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/alligata/nopro.png -------------------------------------------------------------------------------- /doc/alligata/progress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/alligata/progress.png -------------------------------------------------------------------------------- /doc/alligata/wapdiagsmall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/alligata/wapdiagsmall.png -------------------------------------------------------------------------------- /doc/arch/conf-push-session.fig: -------------------------------------------------------------------------------- 1 | #FIG 3.2 2 | Portrait 3 | Center 4 | Metric 5 | A4 6 | 100.00 7 | Single 8 | -2 9 | 1200 2 10 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 11 | 270 585 855 585 855 2025 270 2025 270 585 12 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 13 | 720 225 810 225 810 585 720 585 720 225 14 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 15 | 360 765 765 765 765 1170 360 1170 360 765 16 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 17 | 4545 45 5625 45 5625 2385 4545 2385 4545 45 18 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 19 | 4680 1980 5535 1980 5535 2160 4680 2160 4680 1980 20 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 21 | 4680 1710 5535 1710 5535 1890 4680 1890 4680 1710 22 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 23 | 4680 1395 5535 1395 5535 1575 4680 1575 4680 1395 24 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 25 | 4680 1080 5535 1080 5535 1260 4680 1260 4680 1080 26 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 27 | 4680 720 5535 720 5535 900 4680 900 4680 720 28 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 29 | 2250 315 2925 315 2925 2070 2250 2070 2250 315 30 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 31 | 2340 990 2835 990 2835 1125 2340 1125 2340 990 32 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 33 | 2340 1395 2610 1395 2610 1485 2340 1485 2340 1395 34 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 35 | 0 0 1.00 60.00 120.00 36 | 4410 585 3015 585 37 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 38 | 0 0 1.00 60.00 120.00 39 | 2115 630 900 630 40 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 41 | 0 0 1.00 60.00 120.00 42 | 945 1125 2160 1125 43 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 44 | 0 0 1.00 60.00 120.00 45 | 2160 1620 945 1620 46 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 47 | 0 0 1.00 60.00 120.00 48 | 3060 1530 4410 1530 49 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 50 | 0 0 1.00 60.00 120.00 51 | 990 1890 2160 1890 52 | 4 0 0 50 0 0 10 0.0000 4 135 765 3240 450 push request\001 53 | 4 0 0 50 0 0 10 0.0000 4 135 915 1080 495 session request\001 54 | 4 0 0 50 0 0 10 0.0000 4 105 1335 945 945 session establishment\001 55 | 4 0 0 50 0 0 10 0.0000 4 135 825 990 1485 push delivery\001 56 | 4 0 0 50 0 0 10 0.0000 4 105 810 990 1800 confirmation\001 57 | 4 0 0 50 0 0 10 0.0000 4 105 1140 3060 1350 result notification\001 58 | -------------------------------------------------------------------------------- /doc/arch/external-interfaces.fig: -------------------------------------------------------------------------------- 1 | #FIG 3.2 2 | Landscape 3 | Center 4 | Metric 5 | A4 6 | 100.00 7 | Single 8 | -2 9 | 1200 2 10 | 6 360 810 1305 1620 11 | 2 4 0 1 0 7 50 0 -1 0.000 0 0 7 0 0 5 12 | 1305 1620 1305 810 360 810 360 1620 1305 1620 13 | 4 0 0 50 0 0 12 0.0000 4 135 375 585 1170 SMS\001 14 | 4 0 0 50 0 0 12 0.0000 4 105 480 585 1395 center\001 15 | -6 16 | 6 405 1755 1305 2520 17 | 2 4 0 1 0 7 50 0 -1 0.000 0 0 7 0 0 5 18 | 1305 2520 1305 1755 405 1755 405 2520 1305 2520 19 | 4 0 0 50 0 0 12 0.0000 4 135 420 585 2070 WAP\001 20 | 4 0 0 50 0 0 12 0.0000 4 180 450 585 2295 phone\001 21 | -6 22 | 6 5130 1035 6165 2115 23 | 2 4 0 1 0 7 50 0 -1 0.000 0 0 7 0 0 5 24 | 6165 2115 6165 1035 5130 1035 5130 2115 6165 2115 25 | 4 0 0 50 0 0 12 0.0000 4 135 450 5355 1440 HTTP\001 26 | 4 0 0 50 0 0 12 0.0000 4 90 480 5355 1665 server\001 27 | -6 28 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 29 | 2475 1260 3870 1260 3870 1935 2475 1935 2475 1260 30 | 3 2 0 1 0 7 50 0 -1 0.000 0 1 1 3 31 | 1 1 1.00 60.00 120.00 32 | 1 1 1.00 60.00 120.00 33 | 1395 1125 2115 1080 2430 1395 34 | 0.000 -1.000 0.000 35 | 3 2 0 1 0 7 50 0 -1 0.000 0 1 1 3 36 | 1 1 1.00 60.00 120.00 37 | 1 1 1.00 60.00 120.00 38 | 1350 2115 2160 2115 2430 1665 39 | 0.000 -1.000 0.000 40 | 3 2 0 1 0 7 50 0 -1 0.000 0 1 1 3 41 | 1 1 1.00 60.00 120.00 42 | 1 1 1.00 60.00 120.00 43 | 3915 1575 4545 1530 5085 1485 44 | 0.000 -1.000 0.000 45 | 4 0 0 50 0 0 12 0.0000 4 180 1035 2070 990 SMS protocol\001 46 | 4 0 0 50 0 0 12 0.0000 4 135 930 2025 2385 WAP stack\001 47 | 4 0 0 50 0 0 12 0.0000 4 135 540 2745 1620 Kannel\001 48 | 4 0 0 50 0 0 12 0.0000 4 135 450 4320 1395 HTTP\001 49 | 4 0 0 50 0 0 12 0.0000 4 135 345 4275 1755 PAP\001 50 | -------------------------------------------------------------------------------- /doc/arch/kannel-boxes.fig: -------------------------------------------------------------------------------- 1 | #FIG 3.2 2 | Landscape 3 | Center 4 | Metric 5 | A4 6 | 100.00 7 | Single 8 | -2 9 | 1200 2 10 | 6 45 810 990 1620 11 | 2 4 0 1 0 7 50 0 -1 0.000 0 0 7 0 0 5 12 | 990 1620 990 810 45 810 45 1620 990 1620 13 | 4 0 0 50 0 0 12 0.0000 4 135 375 270 1170 SMS\001 14 | 4 0 0 50 0 0 12 0.0000 4 105 480 270 1395 center\001 15 | -6 16 | 6 90 1755 990 2520 17 | 2 4 0 1 0 7 50 0 -1 0.000 0 0 7 0 0 5 18 | 990 2520 990 1755 90 1755 90 2520 990 2520 19 | 4 0 0 50 0 0 12 0.0000 4 135 420 270 2070 WAP\001 20 | 4 0 0 50 0 0 12 0.0000 4 180 450 270 2295 phone\001 21 | -6 22 | 6 5760 1125 6795 2205 23 | 2 4 0 1 0 7 50 0 -1 0.000 0 0 7 0 0 5 24 | 6795 2205 6795 1125 5760 1125 5760 2205 6795 2205 25 | 4 0 0 50 0 0 12 0.0000 4 135 450 5985 1530 HTTP\001 26 | 4 0 0 50 0 0 12 0.0000 4 90 480 5985 1755 server\001 27 | -6 28 | 6 1665 1260 3060 1935 29 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 30 | 1665 1260 3060 1260 3060 1935 1665 1935 1665 1260 31 | 4 0 0 50 0 0 12 0.0000 4 135 780 1935 1620 Bearerbox\001 32 | -6 33 | 6 3780 720 4860 1305 34 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 35 | 3780 720 4860 720 4860 1305 3780 1305 3780 720 36 | 4 0 0 50 0 0 12 0.0000 4 135 600 3915 1035 Smsbox\001 37 | -6 38 | 6 3870 2070 4905 2700 39 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 40 | 3870 2070 4905 2070 4905 2700 3870 2700 3870 2070 41 | 4 0 0 50 0 0 12 0.0000 4 180 630 4050 2385 Wapbox\001 42 | -6 43 | 2 4 0 1 0 7 50 0 -1 0.000 0 0 7 0 0 5 44 | 5265 3285 5265 180 1395 180 1395 3285 5265 3285 45 | 3 2 0 1 0 7 50 0 -1 0.000 0 1 1 3 46 | 1 1 1.00 60.00 120.00 47 | 1 1 1.00 60.00 120.00 48 | 1080 1125 1575 990 1800 1215 49 | 0.000 -1.000 0.000 50 | 3 2 0 1 0 7 50 0 -1 0.000 0 1 1 3 51 | 1 1 1.00 60.00 120.00 52 | 1 1 1.00 60.00 120.00 53 | 3060 1485 3330 1125 3735 1035 54 | 0.000 -1.000 0.000 55 | 3 2 0 1 0 7 50 0 -1 0.000 0 1 1 3 56 | 1 1 1.00 60.00 120.00 57 | 1 1 1.00 60.00 120.00 58 | 3060 1710 3420 2160 3780 2205 59 | 0.000 -1.000 0.000 60 | 3 2 0 1 0 7 50 0 -1 0.000 0 1 1 3 61 | 1 1 1.00 60.00 120.00 62 | 1 1 1.00 60.00 120.00 63 | 4905 2430 5400 2430 5670 1980 64 | 0.000 -1.000 0.000 65 | 3 2 0 1 0 7 50 0 -1 0.000 0 1 1 3 66 | 1 1 1.00 60.00 120.00 67 | 1 1 1.00 60.00 120.00 68 | 4905 990 5400 900 5715 1395 69 | 0.000 -1.000 0.000 70 | 3 2 0 1 0 7 50 0 -1 0.000 0 1 1 3 71 | 1 1 1.00 60.00 120.00 72 | 1 1 1.00 60.00 120.00 73 | 1035 2115 1530 2340 1800 2025 74 | 0.000 -1.000 0.000 75 | 4 0 0 50 0 0 12 0.0000 4 135 540 1710 3240 Kannel\001 76 | 4 0 0 50 0 0 12 0.0000 4 180 1035 1755 990 SMS protocol\001 77 | 4 0 0 50 0 0 12 0.0000 4 135 930 1710 2385 WAP stack\001 78 | 4 0 0 50 0 0 12 0.0000 4 135 450 5400 855 HTTP\001 79 | 4 0 0 50 0 0 12 0.0000 4 135 450 5400 2655 HTTP\001 80 | -------------------------------------------------------------------------------- /doc/arch/kannel-push-boxes.fig: -------------------------------------------------------------------------------- 1 | #FIG 3.2 2 | Landscape 3 | Center 4 | Metric 5 | A4 6 | 100.00 7 | Single 8 | -2 9 | 1200 2 10 | 6 5760 1125 6795 2205 11 | 2 4 0 1 0 7 50 0 -1 0.000 0 0 7 0 0 5 12 | 6795 2205 6795 1125 5760 1125 5760 2205 6795 2205 13 | 4 0 0 50 0 0 12 0.0000 4 135 450 5985 1530 HTTP\001 14 | 4 0 0 50 0 0 12 0.0000 4 90 480 5985 1755 server\001 15 | -6 16 | 6 1665 1260 3060 1935 17 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 18 | 1665 1260 3060 1260 3060 1935 1665 1935 1665 1260 19 | 4 0 0 50 0 0 12 0.0000 4 135 780 1935 1620 Bearerbox\001 20 | -6 21 | 6 3825 1260 4860 1890 22 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 23 | 3825 1260 4860 1260 4860 1890 3825 1890 3825 1260 24 | 4 0 0 50 0 0 12 0.0000 4 180 630 4005 1575 Wapbox\001 25 | -6 26 | 2 4 0 1 0 7 50 0 -1 0.000 0 0 7 0 0 5 27 | 5265 3285 5265 180 1395 180 1395 3285 5265 3285 28 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 29 | 135 810 720 810 720 2790 135 2790 135 810 30 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 1 2 31 | 0 0 1.00 60.00 120.00 32 | 0 0 1.00 60.00 120.00 33 | 1350 1485 720 1485 34 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 1 2 35 | 0 0 1.00 60.00 120.00 36 | 0 0 1.00 60.00 120.00 37 | 3780 1530 3060 1530 38 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 1 2 39 | 0 0 1.00 60.00 120.00 40 | 0 0 1.00 60.00 120.00 41 | 5715 1530 4905 1530 42 | 4 0 0 50 0 0 12 0.0000 4 135 540 1710 3240 Kannel\001 43 | 4 0 0 50 0 0 12 0.0000 4 135 930 1710 2385 WAP stack\001 44 | 4 0 0 50 0 0 10 0.0000 4 105 360 225 1305 WAP\001 45 | 4 0 0 50 0 0 10 0.0000 4 135 360 225 1755 phone\001 46 | -------------------------------------------------------------------------------- /doc/arch/wap-arch.fig: -------------------------------------------------------------------------------- 1 | #FIG 3.2 2 | Portrait 3 | Center 4 | Metric 5 | A4 6 | 100.00 7 | Single 8 | -2 9 | 1200 2 10 | 6 225 900 765 2205 11 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 12 | 225 1080 765 1080 765 1890 225 1890 225 1080 13 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 14 | 315 1170 675 1170 675 1395 315 1395 315 1170 15 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 16 | 675 1080 585 1080 585 900 675 900 675 1080 17 | 4 0 0 50 0 0 10 0.0000 4 105 375 315 2205 Phone\001 18 | -6 19 | 6 1755 315 3690 2880 20 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 21 | 1755 1215 2745 1215 2745 2835 1755 2835 1755 1215 22 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 23 | 1755 1215 2700 315 24 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 25 | 2732 1215 3677 315 26 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 27 | 2732 2853 3677 1953 28 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 3 29 | 2700 315 3690 315 3690 1980 30 | -6 31 | 6 5400 225 7335 2790 32 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 33 | 5400 1125 6390 1125 6390 2745 5400 2745 5400 1125 34 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 35 | 5400 1125 6345 225 36 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 37 | 6377 1125 7322 225 38 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 39 | 6377 2763 7322 1863 40 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 3 41 | 6345 225 7335 225 7335 1890 42 | -6 43 | 6 1890 1620 2565 2385 44 | 4 0 0 50 0 0 10 0.0000 4 105 390 1890 1755 WML\001 45 | 4 0 0 50 0 0 10 0.0000 4 105 660 1890 1950 conversion\001 46 | 4 0 0 50 0 0 10 0.0000 4 105 615 1890 2145 from text\001 47 | 4 0 0 50 0 0 10 0.0000 4 135 555 1890 2340 to binary\001 48 | -6 49 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 1 2 50 | 1 1 1.00 60.00 120.00 51 | 1 1 1.00 60.00 120.00 52 | 3825 990 5265 990 53 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 1 2 54 | 1 1 1.00 60.00 120.00 55 | 1 1 1.00 60.00 120.00 56 | 810 1395 1665 1395 57 | 4 0 0 50 0 0 10 0.0000 4 105 915 5490 3105 Content server\001 58 | 4 0 0 50 0 0 10 0.0000 4 135 930 2025 3150 WAP Gateway\001 59 | 4 0 0 50 0 0 10 0.0000 4 105 390 5715 1890 WML\001 60 | 4 0 0 50 0 0 10 0.0000 4 105 330 5715 2085 pages\001 61 | 4 0 0 50 0 0 10 0.0000 4 135 390 5715 2280 (text)\001 62 | 4 0 0 50 0 0 10 0.0000 4 105 705 945 1215 WAP stack\001 63 | 4 0 0 50 0 0 10 0.0000 4 105 1140 4140 855 HTTP and TCP/IP\001 64 | -------------------------------------------------------------------------------- /doc/arch/wap-session.fig: -------------------------------------------------------------------------------- 1 | #FIG 3.2 2 | Portrait 3 | Center 4 | Metric 5 | A4 6 | 100.00 7 | Single 8 | -2 9 | 1200 2 10 | 6 135 495 810 1755 11 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 12 | 135 720 810 720 810 1755 135 1755 135 720 13 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 14 | 225 810 720 810 720 1170 225 1170 225 810 15 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 16 | 720 720 585 720 585 495 720 495 720 720 17 | -6 18 | 6 5040 495 6300 2025 19 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 20 | 5040 990 5625 990 5625 2025 5040 2025 5040 990 21 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 22 | 5040 990 5670 495 23 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 24 | 5633 990 6263 495 25 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 26 | 5659 1995 6289 1500 27 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 28 | 5670 495 6300 495 29 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 30 | 6300 495 6300 1485 31 | -6 32 | 6 2655 495 3915 2025 33 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 34 | 2655 990 3240 990 3240 2025 2655 2025 2655 990 35 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 36 | 2655 990 3285 495 37 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 38 | 3248 990 3878 495 39 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 40 | 3274 1995 3904 1500 41 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 42 | 3285 495 3915 495 43 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 44 | 3915 495 3915 1485 45 | -6 46 | 3 2 0 1 0 7 50 0 -1 0.000 0 1 0 3 47 | 1 1 1.00 60.00 120.00 48 | 810 810 1980 495 2835 810 49 | 0.000 -1.000 0.000 50 | 3 2 0 1 0 7 50 0 -1 0.000 0 1 0 3 51 | 1 1 1.00 60.00 120.00 52 | 810 990 2025 1035 2565 1080 53 | 0.000 -1.000 0.000 54 | 3 2 0 1 0 7 50 0 -1 0.000 0 1 0 5 55 | 1 1 1.00 60.00 120.00 56 | 3960 1035 4590 1035 5040 1215 4635 1395 3915 1260 57 | 0.000 -1.000 -1.000 -1.000 0.000 58 | 3 2 0 1 0 7 50 0 -1 0.000 0 1 0 3 59 | 1 1 1.00 60.00 120.00 60 | 2565 1575 2025 1665 855 1485 61 | 0.000 -1.000 0.000 62 | 3 2 0 1 0 7 50 0 -1 0.000 0 1 0 3 63 | 1 1 1.00 60.00 120.00 64 | 855 1620 1890 1980 2610 1845 65 | 0.000 -1.000 0.000 66 | 4 0 0 50 0 0 10 0.0000 4 135 870 990 1440 page to phone.\001 67 | 4 0 0 50 0 0 10 0.0000 4 105 1830 900 2205 5. Phone closes WAP session.\001 68 | 4 0 0 50 0 0 10 0.0000 4 135 1755 1035 900 2. Phone sends URL request.\001 69 | 4 0 0 50 0 0 10 0.0000 4 135 1800 1080 405 1. Phone opens WAP session.\001 70 | 4 0 0 50 0 0 10 0.0000 4 135 690 4050 720 3. Gateway\001 71 | 4 0 0 50 0 0 10 0.0000 4 105 825 4050 900 fetches URL.\001 72 | 4 0 0 50 0 0 10 0.0000 4 135 1560 990 1260 4. Gateway sends encoded\001 73 | -------------------------------------------------------------------------------- /doc/examples/dlr-mysql.conf: -------------------------------------------------------------------------------- 1 | # 2 | # DLR with MySQL support configuration 3 | # 4 | # Example defining a MySQL database connection resource and 5 | # the required table and field values. 6 | # 7 | 8 | group = mysql-connection 9 | id = mydlr 10 | host = localhost 11 | username = foo 12 | password = bar 13 | database = dlr 14 | # max count of connections that will be opened for dbpool 15 | # default is 1 16 | max-connections = 1 17 | 18 | # 19 | # Create the required table for the DLR support in the database 20 | # with something similar like this: 21 | # 22 | # CREATE TABLE dlr ( 23 | # smsc varchar(40), 24 | # ts varchar(40), 25 | # destination varchar(40), 26 | # source varchar(40), 27 | # service varchar(40), 28 | # url varchar(255), 29 | # mask int(10), 30 | # status int(10), 31 | # boxc varchar(40) 32 | # ) 33 | # 34 | 35 | group = dlr-db 36 | id = mydlr 37 | table = dlr 38 | field-smsc = smsc 39 | field-timestamp = ts 40 | field-destination = destination 41 | field-source = source 42 | field-service = service 43 | field-url = url 44 | field-mask = mask 45 | field-status = status 46 | field-boxc-id = boxc 47 | 48 | -------------------------------------------------------------------------------- /doc/examples/dlr-oracle.conf: -------------------------------------------------------------------------------- 1 | # 2 | # DLR with Oracle support configuration 3 | # 4 | # Example defining a Oracle database connection resource and 5 | # the required table and field values. 6 | # 7 | 8 | group = oracle-connection 9 | id = mydlr 10 | username = foo 11 | password = bar 12 | tnsname = bla 13 | # max count of connections that will be opened for dbpool 14 | # default is 1 15 | max-connections = 1 16 | 17 | # 18 | # Create the required table for the DLR support in the database 19 | # with something similar like this: 20 | # 21 | # CREATE TABLE dlr ( 22 | # smsc varchar(40), 23 | # ts varchar(40), 24 | # destination varchar(40), 25 | # source varchar(40), 26 | # service varchar(40), 27 | # url varchar(255), 28 | # mask int(10), 29 | # status int(10), 30 | # boxc varchar(40) 31 | # ) 32 | # 33 | 34 | group = dlr-db 35 | id = mydlr 36 | table = dlr 37 | field-smsc = smsc 38 | field-timestamp = ts 39 | field-destination = destination 40 | field-source = source 41 | field-service = service 42 | field-url = url 43 | field-mask = mask 44 | field-status = status 45 | field-boxc-id = boxc 46 | 47 | -------------------------------------------------------------------------------- /doc/examples/dlr-redis.conf: -------------------------------------------------------------------------------- 1 | # 2 | # DLR with Redis support configuration 3 | # 4 | # Example defining a Redis database connection resource and 5 | # the required table and field values. 6 | # 7 | 8 | group = redis-connection 9 | id = redisdlr 10 | host = localhost 11 | port = 6379 12 | #password = foo 13 | database = 0 14 | # max count of connections that will be opened for dbpool 15 | # default is 1 16 | max-connections = 1 17 | 18 | group = dlr-db 19 | id = redisdlr 20 | # For Redis storage "table" is used as a key prefix for DLRs in the 21 | # format ::: (dst is not used on all smsc types). 22 | # It is also used as a key prefix storage of the number of pending DLRs 23 | # in the format
:Count. 24 | # If 'ttl' is set in seconds, then this is the time to live (TTL) for 25 | # a specific DLR entry in the keystore. (i.e. 7d = 60480s) 26 | table = dlr 27 | ttl = 604800 28 | field-smsc = smsc 29 | field-timestamp = ts 30 | field-destination = destination 31 | field-source = source 32 | field-service = service 33 | field-url = url 34 | field-mask = mask 35 | field-status = status 36 | field-boxc-id = boxc 37 | -------------------------------------------------------------------------------- /doc/examples/dlr-sdb.conf: -------------------------------------------------------------------------------- 1 | # 2 | # DLR with LibSDB support configuration 3 | # 4 | # Example defining a LibSDB resource (as an abstraction of a real database) 5 | # and the required table and field values. 6 | # 7 | # As of LibSDB 0.5.0 the following database types are supported with 8 | # the associated URL resource scheme: 9 | # 10 | # mysql:host=XXX:db=XXX:uid=XXX:pwd=XXX 11 | # postgres:host=XXX:db=XXX:port=XXX 12 | # oracle:uid=XXX:pwd=XXX OR oracle:uid=username/password@instance 13 | # sqlite:db=/full/path/to/db 14 | # lago:host=XXX:port=XXX:db=XXX:uid=XXX:pwd=XXX 15 | # mimer:db=XXX:uid=XXX:pwd=XXX 16 | # odbc:dsn=postgresql 17 | # sdbd:host:port:url=XXX 18 | # text:/path/to/db/ (note trailing slash) 19 | # 20 | # Beware that you have the DB support build in your LibSDB installation 21 | # when trying to use a specific DB type within the URL. 22 | # 23 | # LibSDB is available at http://siag.nu/libsdb/ 24 | # 25 | 26 | group = sdb-connection 27 | id = pgdlr 28 | url = "postgres:host=localhost:db=myapp:port=1234" 29 | max-connections = 1 30 | 31 | # 32 | # Create the required table for the DLR support in the database 33 | # with something similar like this, i.e. for MySQL: 34 | # 35 | # CREATE TABLE dlr ( 36 | # smsc varchar(40), 37 | # ts varchar(40), 38 | # destination varchar(40), 39 | # source varchar(40), 40 | # service varchar(40), 41 | # url varchar(255), 42 | # mask int(10), 43 | # status int(10), 44 | # boxc varchar(40) 45 | # ) 46 | # 47 | # For Postgres: 48 | # 49 | # CREATE TABLE dlr ( 50 | # smsc VARCHAR(48), 51 | # ts VARCHAR(48), 52 | # destination VARCHAR(48), 53 | # source VARCHAR(48), 54 | # service VARCHAR(48), 55 | # url VARCHAR(255), 56 | # mask INTEGER, 57 | # status INTEGER, 58 | # boxc VARCHAR(48)); 59 | # 60 | # Other DB types may vary. Consult your DB admin for help in creating 61 | # the appropriate table space and connection details for the real DB. 62 | # 63 | 64 | group = dlr-db 65 | id = pgdlr 66 | table = dlr 67 | field-smsc = smsc 68 | field-timestamp = ts 69 | field-destination = destination 70 | field-source = source 71 | field-service = service 72 | field-url = url 73 | field-mask = mask 74 | field-status = status 75 | field-boxc-id = boxc 76 | 77 | -------------------------------------------------------------------------------- /doc/examples/dlr-sqlite3.conf: -------------------------------------------------------------------------------- 1 | # 2 | # DLR with SQLite3 support configuration 3 | # 4 | # Example defining a SQLite3 database connection resource and 5 | # the required table and field values. 6 | # 7 | 8 | group = sqlite3-connection 9 | id = mydlr 10 | database = /path/to/file 11 | # max count of connections that will be opened for dbpool 12 | # default is 1 13 | max-connections = 1 14 | 15 | # 16 | # Create the required table for the DLR support in the database 17 | # with something similar like this: 18 | # 19 | # CREATE TABLE dlr ( 20 | # smsc varchar(40), 21 | # ts varchar(40), 22 | # destination varchar(40), 23 | # source varchar(40), 24 | # service varchar(40), 25 | # url varchar(255), 26 | # mask int(10), 27 | # status int(10), 28 | # boxc varchar(40) 29 | # ) 30 | # 31 | 32 | group = dlr-db 33 | id = mydlr 34 | table = dlr 35 | field-smsc = smsc 36 | field-timestamp = ts 37 | field-destination = destination 38 | field-source = source 39 | field-service = service 40 | field-url = url 41 | field-mask = mask 42 | field-status = status 43 | field-boxc-id = boxc 44 | -------------------------------------------------------------------------------- /doc/release.txt: -------------------------------------------------------------------------------- 1 | Steps to follow when making a release of the gateway; if there is a 2 | problem, fix it, and re-start from beginning: 3 | 4 | * Decide on the version number. 5 | 6 | * Prepare the software for release. 7 | 8 | * Make sure everything is committed to CVS. 9 | 10 | * Make sure everything is working. 11 | 12 | * Run "make -s check" 13 | 14 | * Test with a real phone. 15 | 16 | * Make sure documentation is up to date. 17 | 18 | * Make sure NEWS is up to date. 19 | 20 | * Add an entry to ChangeLog that says you're making release 21 | such and such. 22 | 23 | * Update file VERSION to have the version number you want. 24 | 25 | * Commit the changes to ChangeLog and VERSION. 26 | 27 | * Mark the version to be released with a tag and branch. If the 28 | version number would be X.Y, then the tag would be "version_X_Y_Z". 29 | If it's a stable release, tag would be "stable_X_Y_Z" 30 | 31 | * "cvs tag -b version_X_Y_Z" the first time. 32 | 33 | * "cvs tag -F version_X_Y_Z" when iterating after fixing 34 | problems in a release candidate. 35 | 36 | * Make VERSION say "cvs" as version number so that people using 37 | the CVS version won't report some specific number as their 38 | version. 39 | 40 | * Make distribution files. 41 | 42 | * Use "makedist" script, with the version number as 43 | argument. Run it in an empty directory, not directly 44 | from the CVS work directory. CVSROOT is set as when 45 | setting up CVS for download. 46 | 47 | * Run release candidate on demo.kannel.org. 48 | 49 | * Check configuration. 50 | 51 | * Possibly add new services. 52 | 53 | * Put new files on www.kannel.org, and otherwise update the 54 | site to reflect the new release. 55 | 56 | * makedist output goes in ~kannel/public_html/download/$V, 57 | where $V is the new version number. 58 | 59 | * Use the www.kannel.org CVS module to change the html 60 | files, and use ~kannel/bin/publish-www.kannel.org-from-cvs 61 | after committing. 62 | 63 | * Announce new version on index.shtml, and describe it 64 | on news.html. Include an extract from the NEWS file. 65 | 66 | * Change the links in download.shtml, and update the 67 | "Old versions" section. 68 | 69 | * Check changes locally before committing. Note, this 70 | will not work for the links on the download page. 71 | 72 | * Send out the announce to appropriate places. Remember to 73 | set Reply-To to the devel list. Include an extract from the 74 | NEWS file. 75 | 76 | * announce@kannel.org 77 | 78 | * linux-announce@news.ornl.gov (not for all versions) 79 | 80 | * Freshmeat (not for all versions) 81 | -------------------------------------------------------------------------------- /doc/userguide/sms-gateway.fig: -------------------------------------------------------------------------------- 1 | #FIG 3.2 2 | Portrait 3 | Center 4 | Metric 5 | A4 6 | 100.00 7 | Single 8 | -2 9 | 1200 2 10 | 6 90 90 6525 2835 11 | 6 135 1350 585 2475 12 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 13 | 135 1620 585 1620 585 2475 135 2475 135 1620 14 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 15 | 450 1620 540 1620 540 1350 450 1350 450 1620 16 | 2 4 0 1 0 7 50 0 -1 0.000 0 0 7 0 0 5 17 | 540 1980 540 1665 180 1665 180 1980 540 1980 18 | -6 19 | 6 3240 1170 4320 2250 20 | 1 3 0 1 0 7 50 0 -1 0.000 1 0.0000 3780 1710 497 497 3780 1710 3825 2205 21 | 4 0 0 50 0 0 12 0.0000 4 135 540 3510 1755 Kannel\001 22 | -6 23 | 6 2475 900 3105 1305 24 | 4 0 0 50 0 0 12 0.0000 4 135 495 2475 1035 SMSC\001 25 | 4 0 0 50 0 0 12 0.0000 4 180 615 2475 1260 protocol\001 26 | -6 27 | 2 2 0 1 0 0 56 0 -1 0.000 0 0 -1 0 0 5 28 | 1350 1125 2025 1125 2025 2475 1350 2475 1350 1125 29 | 2 1 0 1 0 0 56 0 -1 0.000 0 0 -1 0 0 5 30 | 1350 1125 1575 945 2250 945 2250 2250 2025 2475 31 | 2 1 0 1 0 0 56 0 -1 0.000 0 0 -1 0 0 2 32 | 2025 1125 2250 945 33 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 34 | 5220 540 5850 540 5850 2070 5220 2070 5220 540 35 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 36 | 5850 540 6525 90 37 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 38 | 5220 540 5895 90 39 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 40 | 5850 2056 6525 1606 41 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 3 42 | 5895 90 6525 90 6525 1620 43 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 44 | 5310 1395 5760 1395 5760 1980 5310 1980 5310 1395 45 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 46 | 5400 1395 5400 1980 47 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 48 | 5490 1395 5490 1980 49 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 50 | 5580 1395 5580 1980 51 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 52 | 5670 1395 5670 1980 53 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 54 | 5310 675 5760 675 5760 810 5310 810 5310 675 55 | 3 2 0 1 0 7 50 0 -1 0.000 0 1 1 4 56 | 0 0 1.00 60.00 120.00 57 | 0 0 1.00 60.00 120.00 58 | 4230 1395 4860 1215 4590 1710 5175 1530 59 | 0.000 -1.000 -1.000 0.000 60 | 3 2 0 1 0 7 50 0 -1 0.000 0 1 1 4 61 | 0 0 1.00 60.00 120.00 62 | 0 0 1.00 60.00 120.00 63 | 2250 1575 2880 1485 2700 1980 3240 1890 64 | 0.000 -1.000 -1.000 0.000 65 | 3 2 0 1 0 7 50 0 -1 0.000 0 1 1 4 66 | 0 0 1.00 60.00 120.00 67 | 0 0 1.00 60.00 120.00 68 | 675 1800 1126 1716 946 2211 1260 2115 69 | 0.000 -1.000 -1.000 0.000 70 | 4 0 0 50 0 0 12 0.0000 4 135 465 90 1080 Phone\001 71 | 4 0 0 50 0 0 12 0.0000 4 135 450 4500 1035 HTTP\001 72 | 4 0 0 50 0 0 12 0.0000 4 135 930 1395 2835 SMS Center\001 73 | 4 0 0 50 0 0 12 0.0000 4 180 1260 5265 2520 Content provider\001 74 | -6 75 | -------------------------------------------------------------------------------- /doc/userguide/wap-gateway.fig: -------------------------------------------------------------------------------- 1 | #FIG 3.2 2 | Portrait 3 | Center 4 | Metric 5 | A4 6 | 100.00 7 | Single 8 | -2 9 | 1200 2 10 | 6 90 90 6525 2565 11 | 6 585 1440 1035 2565 12 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 13 | 585 1710 1035 1710 1035 2565 585 2565 585 1710 14 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 15 | 900 1710 990 1710 990 1440 900 1440 900 1710 16 | 2 4 0 1 0 7 50 0 -1 0.000 0 0 7 0 0 5 17 | 990 2070 990 1755 630 1755 630 2070 990 2070 18 | -6 19 | 6 5220 90 6525 2520 20 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 21 | 5220 540 5850 540 5850 2070 5220 2070 5220 540 22 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 23 | 5850 540 6525 90 24 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 25 | 5220 540 5895 90 26 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 27 | 5850 2056 6525 1606 28 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 3 29 | 5895 90 6525 90 6525 1620 30 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 31 | 5310 1395 5760 1395 5760 1980 5310 1980 5310 1395 32 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 33 | 5400 1395 5400 1980 34 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 35 | 5490 1395 5490 1980 36 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 37 | 5580 1395 5580 1980 38 | 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 39 | 5670 1395 5670 1980 40 | 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 41 | 5310 675 5760 675 5760 810 5310 810 5310 675 42 | 4 0 0 50 0 0 12 0.0000 4 135 1125 5265 2520 Content server\001 43 | -6 44 | 6 2295 990 3735 2430 45 | 1 3 0 1 0 7 50 0 -1 0.000 1 0.0000 3015 1710 720 720 3015 1710 3015 2430 46 | 4 0 0 50 0 0 12 0.0000 4 180 1110 2505 1777 WAP gateway\001 47 | -6 48 | 6 1440 1215 1890 1575 49 | 4 0 0 50 0 0 12 0.0000 4 135 420 1440 1350 WAP\001 50 | 4 0 0 50 0 0 12 0.0000 4 135 420 1440 1575 stack\001 51 | -6 52 | 3 2 0 1 0 7 50 0 -1 0.000 0 1 1 4 53 | 0 0 1.00 60.00 120.00 54 | 0 0 1.00 60.00 120.00 55 | 1170 1845 1845 1755 1755 2430 2340 2160 56 | 0.000 -1.000 -1.000 0.000 57 | 3 2 0 1 0 7 50 0 -1 0.000 0 1 1 4 58 | 0 0 1.00 60.00 120.00 59 | 0 0 1.00 60.00 120.00 60 | 3735 1395 4590 1170 4365 1890 5175 1530 61 | 0.000 -1.000 -1.000 0.000 62 | 4 0 0 50 0 0 12 0.0000 4 135 465 90 1080 Phone\001 63 | 4 0 0 50 0 0 12 0.0000 4 135 450 4185 990 HTTP\001 64 | -6 65 | -------------------------------------------------------------------------------- /doc/wtls/fig10o.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/wtls/fig10o.png -------------------------------------------------------------------------------- /doc/wtls/fig1o.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/wtls/fig1o.png -------------------------------------------------------------------------------- /doc/wtls/fig2o.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/wtls/fig2o.png -------------------------------------------------------------------------------- /doc/wtls/fig3o.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/wtls/fig3o.png -------------------------------------------------------------------------------- /doc/wtls/fig4o.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/wtls/fig4o.png -------------------------------------------------------------------------------- /doc/wtls/fig4out.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/wtls/fig4out.png -------------------------------------------------------------------------------- /doc/wtls/fig5o.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/wtls/fig5o.png -------------------------------------------------------------------------------- /doc/wtls/fig5out.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/wtls/fig5out.png -------------------------------------------------------------------------------- /doc/wtls/fig6o.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/wtls/fig6o.png -------------------------------------------------------------------------------- /doc/wtls/fig6out.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/wtls/fig6out.png -------------------------------------------------------------------------------- /doc/wtls/fig6out1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/wtls/fig6out1.png -------------------------------------------------------------------------------- /doc/wtls/fig7o.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/wtls/fig7o.png -------------------------------------------------------------------------------- /doc/wtls/fig8o.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/wtls/fig8o.png -------------------------------------------------------------------------------- /doc/wtls/fig9o.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/doc/wtls/fig9o.png -------------------------------------------------------------------------------- /gw/alt_charsets.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/gw/alt_charsets.h -------------------------------------------------------------------------------- /gw/cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDRDCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQQFADCBqTELMAkGA1UEBhMCWFkx 3 | FTATBgNVBAgTDFNuYWtlIERlc2VydDETMBEGA1UEBxMKU25ha2UgVG93bjEXMBUG 4 | A1UEChMOU25ha2UgT2lsLCBMdGQxHjAcBgNVBAsTFUNlcnRpZmljYXRlIEF1dGhv 5 | cml0eTEVMBMGA1UEAxMMU25ha2UgT2lsIENBMR4wHAYJKoZIhvcNAQkBFg9jYUBz 6 | bmFrZW9pbC5kb20wHhcNOTkxMDIxMTgyMTQ2WhcNMDExMDIwMTgyMTQ2WjCBqTEL 7 | MAkGA1UEBhMCWFkxFTATBgNVBAgTDFNuYWtlIERlc2VydDETMBEGA1UEBxMKU25h 8 | a2UgVG93bjEXMBUGA1UEChMOU25ha2UgT2lsLCBMdGQxHjAcBgNVBAsTFUNlcnRp 9 | ZmljYXRlIEF1dGhvcml0eTEVMBMGA1UEAxMMU25ha2UgT2lsIENBMR4wHAYJKoZI 10 | hvcNAQkBFg9jYUBzbmFrZW9pbC5kb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ 11 | AoGBANiTGAmWoiB2Qx3SbwFXwjbqU9ZwnfBE5Er1h1kNh487D782I8mcT/CzxmsH 12 | evK3heBKTEno+jB0y5p4+QShxryaMUUbRoOGfrlrVwc/dbwJQz7UNyqDlWnvnW4p 13 | TfdVd+8JlCpYFB23Z7bmpUV1Xy6VFKBahzIhzITaux1vvEPLAgMBAAGjejB4MBoG 14 | A1UdEQQTMBGBD2NhQHNuYWtlb2lsLmRvbTAPBgNVHRMECDAGAQH/AgEAMDYGCWCG 15 | SAGG+EIBDQQpFidtb2Rfc3NsIGdlbmVyYXRlZCBjdXN0b20gQ0EgY2VydGlmaWNh 16 | dGUwEQYJYIZIAYb4QgEBBAQDAgIEMA0GCSqGSIb3DQEBBAUAA4GBAImhzPY4PBRt 17 | PQbAQBAmHIBRcb69iTbFC+dghnVJQ3F549rZapY420kQDKQ6aCybPFmxJ/Rf27gY 18 | FuAuo+B8EEVX0lU8VUSEhYQedODnQ3skwcT02g4b33GkzH7ED2N9kaa6U65UUrcE 19 | KXJgz7tmAQHnTc9K1g2qIApIjnr3FrrJ 20 | -----END CERTIFICATE----- 21 | -------------------------------------------------------------------------------- /gw/dlr_mssql.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/gw/dlr_mssql.c -------------------------------------------------------------------------------- /gw/dlr_oracle.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/gw/dlr_oracle.c -------------------------------------------------------------------------------- /gw/kannel.8: -------------------------------------------------------------------------------- 1 | .\" Hey, Emacs! This is an -*- nroff -*- source file. 2 | .TH KANNEL 8 "3rd October 2000" "Kannel Project" "Kannel Project" 3 | .SH NAME 4 | bearerbox, 5 | wapbox, 6 | smsbox \- Parts of Kannel, the WAP and SMS gateway 7 | .SH SYNOPSIS 8 | .B bearerbox 9 | .IR "" [ options ... "] [" conffile ] 10 | .PP 11 | .B wapbox 12 | .IR "" [ options ... "] [" conffile ] 13 | .PP 14 | .B smsbox 15 | .IR "" [ options ... "] [" conffile ] 16 | .SH DESCRIPTION 17 | .I Kannel 18 | is an WAP and SMS gateway. 19 | WAP is short for Wireless Application Protocol, 20 | and is used to implement hypertext based services on mobile phones. 21 | SMS is short for Short Message Service, 22 | and is used to send and recive short (up to 160 characters) text messages 23 | with mobile phones. 24 | SMS can also be used to implement simple text based services on mobile 25 | phones. 26 | .PP 27 | Kannel consists of three programs, usually run as daemons: 28 | .BR bearerbox , 29 | .BR wapbox , 30 | and 31 | .BR smsbox . 32 | They implement the connection to the phone (SMS or UDP), 33 | the WAP protocol stack, 34 | and the SMS based services, respectively. 35 | .PP 36 | For more information, 37 | see 38 | .B http://www.kannel.org 39 | or 40 | .BR file://usr/doc/kannel/ . 41 | .SH "SEE ALSO" 42 | .BR run_kannel_box (8), 43 | .BR seewbmp (1). 44 | -------------------------------------------------------------------------------- /gw/key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICXQIBAAKBgQDYkxgJlqIgdkMd0m8BV8I26lPWcJ3wRORK9YdZDYePOw+/NiPJ 3 | nE/ws8ZrB3ryt4XgSkxJ6PowdMuaePkEoca8mjFFG0aDhn65a1cHP3W8CUM+1Dcq 4 | g5Vp751uKU33VXfvCZQqWBQdt2e25qVFdV8ulRSgWocyIcyE2rsdb7xDywIDAQAB 5 | AoGAEIvUZ08h3dcLM6kTIAgjZ2ypsRVzi5rH0k5F4/DbrX62qkYpn8qYdOxXOXAd 6 | 3ZNV4BftEiyBiNgzgf7CD6+IblZUqkc1dUc96AJH16CUXM/favAHhIoSdyhrnAH8 7 | O9UN1KxlzUpvLDOelbOdL4/4sQ0XXqd9DJcZkeKc4zCi35kCQQD43SlsTDBeO7ae 8 | Ig5qnJ/g2V2V4bPh1xTH7LjxthsksOqPUEt3DgRmRVq+qeDyyxN49V9uFYf8oXDl 9 | 1FchPranAkEA3sjny2sxBNIBGtPVLGFl+aukBRkNOdmssVcBudsnigOEL0lbd4Wu 10 | 07ok0zeCuAu+yHRYJKY4eqWVGQJ/DtUSPQJBAIqxVuCQJXSe+stuV3J7D28UNN/P 11 | BZ0bbO1utDOhNcdhAZgVO7mCClmk1UnlCwTEwHls5l5HiZ31qyGrEVPpy4kCQDfR 12 | VmIdBTcT9rrmAC8SaB5Z5spwMGQiKaZ1CjWqtwlZQDEozAXyNI9PwBI7gkDikHZg 13 | 0AS+sL/p5KVTfsoUkHECQQDWCSgpZ8k7EajS1RWIGH/GcFT/GaKX8yiMIP2S3Atc 14 | nl7yMj8yw+1N503FF0aRwimryXQt/VHVYjtYsSAgNU/i 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /gw/ota_compiler.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/gw/ota_compiler.c -------------------------------------------------------------------------------- /gw/ota_compiler.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/gw/ota_compiler.h -------------------------------------------------------------------------------- /gw/ota_prov.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/gw/ota_prov.c -------------------------------------------------------------------------------- /gw/ota_prov.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/gw/ota_prov.h -------------------------------------------------------------------------------- /gw/other_smskannel.conf: -------------------------------------------------------------------------------- 1 | # 2 | # THIS IS A SAMPLE CONFIGURATION FOR SMS KANNEL 3 | # 4 | # This second/other SMS Kannel configuration is meant to be used 5 | # together with original gw/smskannel.conf, to test out Kannel as 6 | # HTTP SMSC. 7 | # 8 | # The entire system is run like this 9 | # 10 | # 1% gw/bearerbox gw/smskannel.conf 11 | # 2% gw/smsbox gw/smskannel.conf 12 | # 1% gw/bearerbox gw/other_smskannel.conf 13 | # 2% gw/smsbox gw/other_smskannel.conf 14 | # 3% test/fakesmsc -r 10000 -H localhost -i 1 -m 100 "100 300 text relay nop" 15 | # 16 | # ..all 3 commands in separate shells (or screen sessions) 17 | # 18 | # For any modifications to this file, see Kannel User Guide 19 | # If that does not help, send email to users@kannel.org 20 | # 21 | # Kalle Marjola Mar 2001 22 | # 23 | 24 | group = core 25 | admin-port = 15000 26 | smsbox-port = 15001 27 | admin-password = bar 28 | #status-password = foo 29 | #admin-deny-ip = "" 30 | #admin-allow-ip = "" 31 | #log-file = "/tmp/bearerbox2.log" 32 | #log-level = 0 33 | box-deny-ip = "*.*.*.*" 34 | box-allow-ip = "127.0.0.1" 35 | #unified-prefix = "+358,00358,0;+,00" 36 | #access-log = "/tmp/access2.log" 37 | #store-file = "/tmp/kannel2.store" 38 | #ssl-server-cert-file = "cert.pem" 39 | #ssl-server-key-file = "key.pem" 40 | #ssl-certkey-file = "mycertandprivkeyfile.pem" 41 | 42 | # SMSC CONNECTIONS 43 | 44 | group = smsc 45 | smsc = http 46 | system-type = kannel 47 | port = 15130 48 | #connect-allow-ip = "127.0.0.1" 49 | smsc-username = tester 50 | smsc-password = foobar 51 | send-url = "http://localhost:13013/cgi-bin/sendsms" 52 | 53 | # SMSBOX SETUP 54 | 55 | group = smsbox 56 | bearerbox-host = 127.0.0.1 57 | sendsms-port = 15015 58 | global-sender = 15015 59 | #sendsms-chars = "0123456789 +-" 60 | #log-file = "/tmp/smsbox2.log" 61 | #log-level = 0 62 | #access-log = "/tmp/access2.log" 63 | 64 | # SEND-SMS USERS 65 | 66 | group = sendsms-user 67 | username = tester 68 | password = foobar 69 | #user-deny-ip = "" 70 | #user-allow-ip = "" 71 | 72 | # SERVICES 73 | 74 | group = sms-service 75 | keyword = nop 76 | text = "You asked nothing and I did it!" 77 | 78 | # there should be default always 79 | 80 | group = sms-service 81 | keyword = default 82 | text = "No service specified" 83 | 84 | -------------------------------------------------------------------------------- /gw/pushkannel.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/gw/pushkannel.conf -------------------------------------------------------------------------------- /gw/settings.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /gw/smsc/smsc_cimd.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/gw/smsc/smsc_cimd.c -------------------------------------------------------------------------------- /gw/smsc/smsc_emi_x25.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/gw/smsc/smsc_emi_x25.c -------------------------------------------------------------------------------- /gw/smsc/smsc_sema.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/gw/smsc/smsc_sema.c -------------------------------------------------------------------------------- /gw/smskannel-ssl.conf: -------------------------------------------------------------------------------- 1 | # 2 | # THIS IS A SAMPLE CONFIGURATION FOR SMS KANNEL 3 | # (using SSL enabled HTTP servers) 4 | # 5 | # It is run like this: 6 | # 7 | # 1% gw/bearerbox gw/smskannel.conf 8 | # 2% gw/smsbox gw/smskannel.conf 9 | # 3% test/fakesmsc -p 10000 -H localhost -i 1 -m 100 "123 345 text nop" 10 | # 11 | # ..all 3 commands in separate shells (or screen sessions) 12 | # 13 | # For any modifications to this file, see Kannel User Guide 14 | # If that does not help, send email to users@kannel.org 15 | # 16 | # Kalle Marjola May 2000 17 | # Changed for new fakesmsc version by Uoti Urpala Jan 2001 18 | # Added service and sendsms for HTTP SMSC by Kalle Marjola Mar 2001 19 | # Adopted for SSL enabled traffic by Stipe Tolj 2002 20 | # 21 | 22 | group = core 23 | admin-port = 13000 24 | admin-port-ssl = yes 25 | smsbox-port = 13001 26 | admin-password = bar 27 | #status-password = foo 28 | #admin-deny-ip = "" 29 | #admin-allow-ip = "" 30 | #log-file = "/tmp/kannel.log" 31 | #log-level = 0 32 | box-deny-ip = "*.*.*.*" 33 | box-allow-ip = "127.0.0.1" 34 | #unified-prefix = "+358,00358,0;+,00" 35 | #access-log = "/tmp/access.log" 36 | #store-file = "/tmp/kannel.store" 37 | #ssl-server-cert-file = "cert.pem" 38 | #ssl-server-key-file = "key.pem" 39 | #ssl-certkey-file = "mycertandprivkeyfile.pem" 40 | 41 | # SMSC CONNECTIONS 42 | 43 | group = smsc 44 | smsc = fake 45 | smsc-id = FAKE 46 | port = 10000 47 | connect-allow-ip = 127.0.0.1 48 | 49 | # SMSBOX SETUP 50 | 51 | group = smsbox 52 | bearerbox-host = localhost 53 | sendsms-port = 13013 54 | sendsms-port-ssl = yes 55 | global-sender = 13013 56 | #sendsms-chars = "0123456789 +-" 57 | #log-file = "/tmp/smsbox.log" 58 | #log-level = 0 59 | #access-log = "/tmp/access.log" 60 | 61 | # SEND-SMS USERS 62 | 63 | group = sendsms-user 64 | username = tester 65 | password = foobar 66 | #user-deny-ip = "" 67 | #user-allow-ip = "" 68 | 69 | # SERVICES 70 | 71 | group = sms-service 72 | keyword = nop 73 | text = "You asked nothing and I did it!" 74 | 75 | # there should be default always 76 | 77 | group = sms-service 78 | keyword = default 79 | text = "No service specified" 80 | 81 | -------------------------------------------------------------------------------- /gw/wap_ppg_push_machine.def: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/gw/wap_ppg_push_machine.def -------------------------------------------------------------------------------- /gw/wap_ppg_session_machine.def: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/gw/wap_ppg_session_machine.def -------------------------------------------------------------------------------- /gw/wap_push_ota.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/gw/wap_push_ota.c -------------------------------------------------------------------------------- /gw/wap_push_ota.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/gw/wap_push_ota.h -------------------------------------------------------------------------------- /gw/wap_push_pap_compiler.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/gw/wap_push_pap_compiler.c -------------------------------------------------------------------------------- /gw/wap_push_pap_compiler.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/gw/wap_push_pap_compiler.h -------------------------------------------------------------------------------- /gw/wap_push_pap_mime.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/gw/wap_push_pap_mime.c -------------------------------------------------------------------------------- /gw/wap_push_pap_mime.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/gw/wap_push_pap_mime.h -------------------------------------------------------------------------------- /gw/wap_push_ppg.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/gw/wap_push_ppg.c -------------------------------------------------------------------------------- /gw/wap_push_ppg.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/gw/wap_push_ppg.h -------------------------------------------------------------------------------- /gw/wap_push_ppg_pushuser.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/gw/wap_push_ppg_pushuser.c -------------------------------------------------------------------------------- /gw/wap_push_ppg_pushuser.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/gw/wap_push_ppg_pushuser.h -------------------------------------------------------------------------------- /gw/wap_push_si_compiler.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/gw/wap_push_si_compiler.c -------------------------------------------------------------------------------- /gw/wap_push_si_compiler.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/gw/wap_push_si_compiler.h -------------------------------------------------------------------------------- /gw/wap_push_sl_compiler.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/gw/wap_push_sl_compiler.c -------------------------------------------------------------------------------- /gw/wap_push_sl_compiler.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/gw/wap_push_sl_compiler.h -------------------------------------------------------------------------------- /gw/wapkannel.conf: -------------------------------------------------------------------------------- 1 | # 2 | # THIS IS A SAMPLE CONFIGURATION FOR WAP KANNEL 3 | # 4 | # It is run like this: 5 | # 6 | # 1% gw/bearerbox gw/wapkannel.conf 7 | # 2% gw/wapbox gw/wapkannel.conf 8 | # 9 | # ..as both commands in separate shells (or screen sessions) 10 | # 11 | # After that you can use your 7110 to test this out. Or use 12 | # fakewap from test directory, or some SDK. 13 | # 14 | # For any guidelines to set up your SDK or 7110, see Kannel FAQ 15 | # on Kannel WWW pages at http://www.kannel.org/ 16 | # 17 | # For any modifications to this file, see Kannel User Guide 18 | # If that does not help, send email to users@kannel.org 19 | # 20 | # Kalle Marjola May 2000 21 | # 22 | 23 | group = core 24 | admin-port = 13000 25 | wapbox-port = 13002 26 | admin-password = bar 27 | #status-password = foo 28 | #admin-deny-ip = "" 29 | #admin-allow-ip = "" 30 | wdp-interface-name = "127.0.0.1" 31 | #log-file = "/tmp/bearerbox.log" 32 | #log-level = 0 33 | box-deny-ip = "*.*.*.*" 34 | box-allow-ip = "127.0.0.1" 35 | #access-log = "/tmp/access.log" 36 | #store-file = "/tmp/kannel.store" 37 | #ssl-server-cert-file = "cert.pem" 38 | #ssl-server-key-file = "key.pem" 39 | #ssl-certkey-file = "mycertandprivkeyfile.pem" 40 | 41 | group = wapbox 42 | bearerbox-host = 127.0.0.1 43 | #log-file = "/tmp/wapbox.log" 44 | #log-level = 0 45 | syslog-level = none 46 | #access-log = "/tmp/wapaccess.log" 47 | 48 | -------------------------------------------------------------------------------- /gw/xml_shared.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/gw/xml_shared.c -------------------------------------------------------------------------------- /gw/xml_shared.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/gw/xml_shared.h -------------------------------------------------------------------------------- /gwlib/charset.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/gwlib/charset.c -------------------------------------------------------------------------------- /gwlib/dbpool.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/gwlib/dbpool.c -------------------------------------------------------------------------------- /gwlib/dbpool_oracle.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/gwlib/dbpool_oracle.c -------------------------------------------------------------------------------- /gwlib/gw_uuid.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Public include file for the UUID library 3 | * 4 | * Copyright (C) 1996, 1997, 1998 Theodore Ts'o. 5 | * 6 | * %Begin-Header% 7 | * This file may be redistributed under the terms of the GNU 8 | * Library General Public License. 9 | * %End-Header% 10 | */ 11 | 12 | #ifndef _UUID_UUID_H 13 | #define _UUID_UUID_H 14 | 15 | #include 16 | #include 17 | #include 18 | 19 | #define UUID_STR_LEN 36 20 | 21 | #ifdef DARWIN 22 | 23 | #ifndef _POSIX_C_SOURCE 24 | #ifndef _UUID_T 25 | #define _UUID_T 26 | typedef __darwin_uuid_t uuid_t; 27 | #endif /* _UUID_T */ 28 | #endif /* _POSIX_C_SOURCE */ 29 | 30 | #else 31 | 32 | typedef unsigned char uuid_t[16]; 33 | 34 | #endif 35 | 36 | /* UUID Variant definitions */ 37 | #define UUID_VARIANT_NCS 0 38 | #define UUID_VARIANT_DCE 1 39 | #define UUID_VARIANT_MICROSOFT 2 40 | #define UUID_VARIANT_OTHER 3 41 | 42 | #ifdef __cplusplus 43 | extern "C" { 44 | #endif 45 | 46 | /* initialize uuid library */ 47 | void uuid_init(void); 48 | 49 | /* shutdown uuid library */ 50 | void uuid_shutdown(void); 51 | 52 | /* clear.c */ 53 | void uuid_clear(uuid_t uu); 54 | 55 | /* compare.c */ 56 | int uuid_compare(const uuid_t uu1, const uuid_t uu2); 57 | 58 | /* copy.c */ 59 | void uuid_copy(uuid_t dst, const uuid_t src); 60 | 61 | /* gen_uuid.c */ 62 | void uuid_generate(uuid_t out); 63 | void uuid_generate_random(uuid_t out); 64 | void uuid_generate_time(uuid_t out); 65 | 66 | /* isnull.c */ 67 | int uuid_is_null(const uuid_t uu); 68 | 69 | /* parse.c */ 70 | int uuid_parse(const char *in, uuid_t uu); 71 | 72 | /* unparse.c */ 73 | void uuid_unparse(const uuid_t uu, char *out); 74 | 75 | /* uuid_time.c */ 76 | time_t uuid_time(const uuid_t uu, struct timeval *ret_tv); 77 | int uuid_type(const uuid_t uu); 78 | int uuid_variant(const uuid_t uu); 79 | 80 | #ifdef __cplusplus 81 | } 82 | #endif 83 | 84 | #endif /* _UUID_UUID_H */ 85 | -------------------------------------------------------------------------------- /gwlib/gw_uuid_types.h.in: -------------------------------------------------------------------------------- 1 | /* 2 | * If linux/types.h is already been included, assume it has defined 3 | * everything we need. (cross fingers) Other header files may have 4 | * also defined the types that we need. 5 | */ 6 | #if (!defined(_LINUX_TYPES_H) && !defined(_BLKID_TYPES_H) && \ 7 | !defined(_UUID_TYPES) && !defined(_EXT2_TYPES_H)) 8 | #define _UUID_TYPES_H 9 | 10 | typedef unsigned char __u8; 11 | typedef signed char __s8; 12 | 13 | #if (@SIZEOF_INT@ == 8) 14 | typedef int __s64; 15 | typedef unsigned int __u64; 16 | #elif (@SIZEOF_LONG@ == 8) 17 | typedef long __s64; 18 | typedef unsigned long __u64; 19 | #elif (@SIZEOF_LONG_LONG@ == 8) 20 | #if defined(__GNUC__) 21 | typedef __signed__ long long __s64; 22 | #else 23 | typedef signed long long __s64; 24 | #endif 25 | typedef unsigned long long __u64; 26 | #endif 27 | 28 | #if (@SIZEOF_INT@ == 2) 29 | typedef int __s16; 30 | typedef unsigned int __u16; 31 | #elif (@SIZEOF_SHORT@ == 2) 32 | typedef short __s16; 33 | typedef unsigned short __u16; 34 | #else 35 | ?==error: undefined 16 bit type 36 | #endif 37 | 38 | #if (@SIZEOF_INT@ == 4) 39 | typedef int __s32; 40 | typedef unsigned int __u32; 41 | #elif (@SIZEOF_LONG@ == 4) 42 | typedef long __s32; 43 | typedef unsigned long __u32; 44 | #elif (@SIZEOF_SHORT@ == 4) 45 | typedef short __s32; 46 | typedef unsigned short __u32; 47 | #else 48 | ?== error: undefined 32 bit type 49 | #endif 50 | 51 | #endif /* _*_TYPES_H */ 52 | -------------------------------------------------------------------------------- /gwlib/xmlrpc.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/gwlib/xmlrpc.h -------------------------------------------------------------------------------- /mkinstalldirs: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | # mkinstalldirs --- make directory hierarchy 3 | # Author: Noah Friedman 4 | # Created: 1993-05-16 5 | # Public domain 6 | 7 | # $Id: mkinstalldirs,v 1.1 1999-12-30 14:58:54 liw Exp $ 8 | 9 | errstatus=0 10 | 11 | for file 12 | do 13 | set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` 14 | shift 15 | 16 | pathcomp= 17 | for d 18 | do 19 | pathcomp="$pathcomp$d" 20 | case "$pathcomp" in 21 | -* ) pathcomp=./$pathcomp ;; 22 | esac 23 | 24 | if test ! -d "$pathcomp"; then 25 | echo "mkdir $pathcomp" 26 | 27 | mkdir "$pathcomp" || lasterr=$? 28 | 29 | if test ! -d "$pathcomp"; then 30 | errstatus=$lasterr 31 | fi 32 | fi 33 | 34 | pathcomp="$pathcomp/" 35 | done 36 | done 37 | 38 | exit $errstatus 39 | 40 | # mkinstalldirs ends here 41 | -------------------------------------------------------------------------------- /soap/env.c: -------------------------------------------------------------------------------- 1 | /* ==================================================================== 2 | * The Kannel Software License, Version 1.0 3 | * 4 | * Copyright (c) 2001-2013 Kannel Group 5 | * Copyright (c) 1998-2001 WapIT Ltd. 6 | * All rights reserved. 7 | * 8 | * Redistribution and use in source and binary forms, with or without 9 | * modification, are permitted provided that the following conditions 10 | * are met: 11 | * 12 | * 1. Redistributions of source code must retain the above copyright 13 | * notice, this list of conditions and the following disclaimer. 14 | * 15 | * 2. Redistributions in binary form must reproduce the above copyright 16 | * notice, this list of conditions and the following disclaimer in 17 | * the documentation and/or other materials provided with the 18 | * distribution. 19 | * 20 | * 3. The end-user documentation included with the redistribution, 21 | * if any, must include the following acknowledgment: 22 | * "This product includes software developed by the 23 | * Kannel Group (http://www.kannel.org/)." 24 | * Alternately, this acknowledgment may appear in the software itself, 25 | * if and wherever such third-party acknowledgments normally appear. 26 | * 27 | * 4. The names "Kannel" and "Kannel Group" must not be used to 28 | * endorse or promote products derived from this software without 29 | * prior written permission. For written permission, please 30 | * contact org@kannel.org. 31 | * 32 | * 5. Products derived from this software may not be called "Kannel", 33 | * nor may "Kannel" appear in their name, without prior written 34 | * permission of the Kannel Group. 35 | * 36 | * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 37 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 38 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 39 | * DISCLAIMED. IN NO EVENT SHALL THE KANNEL GROUP OR ITS CONTRIBUTORS 40 | * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, 41 | * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 42 | * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 43 | * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 44 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 45 | * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 46 | * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 47 | * ==================================================================== 48 | * 49 | * This software consists of voluntary contributions made by many 50 | * individuals on behalf of the Kannel Group. For more information on 51 | * the Kannel Group, please see . 52 | * 53 | * Portions of this software are based upon software originally written at 54 | * WapIT Ltd., Helsinki, Finland for the Kannel project. 55 | */ 56 | 57 | /* 58 | * env.c 59 | */ 60 | 61 | #include "envH.h" 62 | 63 | /* dummy namespaces to prevent link errors when not using WITH_NONAMSPACES */ 64 | SOAP_NMAC struct Namespace namespaces[] = 65 | { 66 | {NULL, NULL, NULL, NULL} 67 | }; 68 | -------------------------------------------------------------------------------- /soap/env.h: -------------------------------------------------------------------------------- 1 | /* ==================================================================== 2 | * The Kannel Software License, Version 1.0 3 | * 4 | * Copyright (c) 2001-2013 Kannel Group 5 | * Copyright (c) 1998-2001 WapIT Ltd. 6 | * All rights reserved. 7 | * 8 | * Redistribution and use in source and binary forms, with or without 9 | * modification, are permitted provided that the following conditions 10 | * are met: 11 | * 12 | * 1. Redistributions of source code must retain the above copyright 13 | * notice, this list of conditions and the following disclaimer. 14 | * 15 | * 2. Redistributions in binary form must reproduce the above copyright 16 | * notice, this list of conditions and the following disclaimer in 17 | * the documentation and/or other materials provided with the 18 | * distribution. 19 | * 20 | * 3. The end-user documentation included with the redistribution, 21 | * if any, must include the following acknowledgment: 22 | * "This product includes software developed by the 23 | * Kannel Group (http://www.kannel.org/)." 24 | * Alternately, this acknowledgment may appear in the software itself, 25 | * if and wherever such third-party acknowledgments normally appear. 26 | * 27 | * 4. The names "Kannel" and "Kannel Group" must not be used to 28 | * endorse or promote products derived from this software without 29 | * prior written permission. For written permission, please 30 | * contact org@kannel.org. 31 | * 32 | * 5. Products derived from this software may not be called "Kannel", 33 | * nor may "Kannel" appear in their name, without prior written 34 | * permission of the Kannel Group. 35 | * 36 | * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 37 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 38 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 39 | * DISCLAIMED. IN NO EVENT SHALL THE KANNEL GROUP OR ITS CONTRIBUTORS 40 | * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, 41 | * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 42 | * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 43 | * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 44 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 45 | * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 46 | * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 47 | * ==================================================================== 48 | * 49 | * This software consists of voluntary contributions made by many 50 | * individuals on behalf of the Kannel Group. For more information on 51 | * the Kannel Group, please see . 52 | * 53 | * Portions of this software are based upon software originally written at 54 | * WapIT Ltd., Helsinki, Finland for the Kannel project. 55 | */ 56 | 57 | #import "env_header.h" /* optional user-defined headers */ 58 | #import "env_fault.h" /* optional user-defined fault details */ 59 | -------------------------------------------------------------------------------- /soap/env_fault.h: -------------------------------------------------------------------------------- 1 | /* fault.h 2 | 3 | Defines optional SOAP Fault derail data structures 4 | 5 | Copyright (C) 2000-2004 Robert A. van Engelen. All Rights Reserved. 6 | */ 7 | 8 | /* 9 | 10 | Add any data structure you want to serialize as part of the SOAP Fault detail 11 | element. The detail element '__type' and 'value' fields should be set to 12 | transmit data. The fields are set when data of corresponding types are received. 13 | 14 | For example, we define an of name with a string vector 15 | (note the leading _ in the following declaration): 16 | 17 | class _f__myData 18 | { public: 19 | std::vector *data; 20 | }; 21 | 22 | To return a fault from your service application: 23 | 24 | soap_sender_fault(soap, "An error occurred", NULL)); // set soap fault 25 | soap->fault->detail = (struct SOAP_ENV__Detail*)soap_malloc(soap, sizeof(struct SOAP_ENV__Fault)); 26 | soap->fault->detail->__type = SOAP_TYPE__f__myData; 27 | soap->fault->detail->value = soap_new__f__myData(soap, -1); 28 | return SOAP_FAULT; 29 | 30 | In addition, you can modify the SOAP_ENV__Detail struct and add your own set 31 | of fields, as in: 32 | 33 | struct SOAP_ENV__Detail 34 | { struct f__myDataType f__myData; 35 | int __type; 36 | void *value; 37 | char *__any; 38 | }; 39 | 40 | */ 41 | -------------------------------------------------------------------------------- /soap/env_header.h: -------------------------------------------------------------------------------- 1 | /******************************************************************************\ 2 | * * 3 | * Import * 4 | * * 5 | \******************************************************************************/ 6 | 7 | #import "wsse.h" // wsse = 8 | 9 | /******************************************************************************\ 10 | * * 11 | * SOAP Header * 12 | * * 13 | \******************************************************************************/ 14 | 15 | /** 16 | The SOAP Header is part of the gSOAP context and its content is accessed 17 | through the soap.header variable. You may have to set the soap.actor variable 18 | to serialize SOAP Headers with SOAP-ENV:actor or SOAP-ENV:role attributes. 19 | */ 20 | 21 | struct SOAP_ENV__Header 22 | { 23 | mustUnderstand // must be understood by receiver 24 | _wsse__Security *wsse__Security; ///< TODO: Check element type (imported type) 25 | }; 26 | -------------------------------------------------------------------------------- /soap/service/parlayx/typemap.dat: -------------------------------------------------------------------------------- 1 | px1 = "(default)" 2 | pxSmsSend = "http://www.csapi.org/schema/parlayx/sms/send/v2_1/local" 3 | px3 = "" 4 | pxCommon = "http://www.csapi.org/schema/parlayx/common/v2_1" 5 | pxSms = "http://www.csapi.org/schema/parlayx/sms/v2_1" 6 | pxSmsNotification = "http://www.csapi.org/schema/parlayx/sms/notification/v2_1/local" 7 | pxSmsReceive = "http://www.csapi.org/schema/parlayx/sms/receive/v2_1/local" 8 | -------------------------------------------------------------------------------- /soap/service/parlayx/wsdl/parlayx_common_faults_2_0.wsdl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /soap/service/parlayx/wsdl/parlayx_common_types_2_1.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | -------------------------------------------------------------------------------- /soap/service/parlayx/wsdl/parlayx_sms_notification_service_2_1.wsdl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /soap/service/parlayx/wsdl/parlayx_sms_receive_interface_2_1.wsdl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /soap/service/parlayx/wsdl/parlayx_sms_receive_service_2_1.wsdl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /soap/service/parlayx/wsdl/parlayx_sms_types_2_1.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /solaris/copyright: -------------------------------------------------------------------------------- 1 | This is Kannel, packaged for Solaris by Derry Hamilton 2 | . 3 | 4 | Original author is the Kannel project, see http://www.kannel.org, 5 | run by WapIT Ltd, see http://www.wapit.com. 6 | 7 | Copyright (c) 1998 WAPIT OY LTD. 8 | All rights reserved. 9 | 10 | Redistribution and use in source and binary forms, with or without 11 | modification, are permitted provided that the following conditions 12 | are met: 13 | 14 | 1. Redistributions of source code must retain the above copyright notice, 15 | this list of conditions and the following disclaimer. 16 | 17 | 2. Redistributions in binary form must reproduce the above copyright 18 | notice, this list of conditions and the following disclaimer in the 19 | documentation and/or other materials provided with the distribution. 20 | 21 | 3. All advertising materials mentioning features or use of this software 22 | must display the following acknowledgement: This product includes software 23 | developed by WAPIT OY LTD. 24 | 25 | 4. The name of the author may not be used to endorse or promote products 26 | derived from this software without specific prior written permission. 27 | 28 | 29 | THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 30 | IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 31 | OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 32 | IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 33 | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 34 | BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 35 | USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 36 | ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 37 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 38 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 39 | -------------------------------------------------------------------------------- /solaris/etc/kannel.conf: -------------------------------------------------------------------------------- 1 | # 2 | # Sample configuration file for Kannel on Solaris. 3 | # See the documentation for explanations of fields. 4 | # 5 | 6 | group = core 7 | admin-port = 13000 8 | admin-password = bar 9 | wapbox-port = 13002 10 | wdp-interface-name = "*" 11 | #log-file = "/tmp/kannel.log" 12 | #log-level = 0 13 | box-deny-ip = "*.*.*.*" 14 | box-allow-ip = "127.0.0.1" 15 | admin-deny-ip = "*.*.*.*" 16 | #admin-allow-ip = "127.0.0.1" 17 | 18 | group = wapbox 19 | bearerbox-host = localhost 20 | #log-file = "/tmp/wapbox.log" 21 | #log-level = 0 22 | syslog-level = none 23 | 24 | -------------------------------------------------------------------------------- /solaris/mk-solaris-package.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | VERSION=`head -1 ../VERSION` 4 | export VERSION 5 | DATE=`date +%Y-%m-%d` 6 | 7 | echo Making WAkannel-${VERSION}.pkg 8 | cd .. 9 | make 10 | make install 11 | cd solaris 12 | sed "s/VERSION_NUM/${VERSION}/" < prototype.tmpl > prototype 13 | sed "s/VERSION_NUM/${VERSION}/" < pkginfo.tmpl > pkginfo 14 | TRG=./kannel 15 | mkdir ${TRG} 16 | mkdir ${TRG}/bin 17 | mkdir ${TRG}/sbin 18 | mkdir ${TRG}/man 19 | cp ../wmlscript/wmlsc ${TRG}/bin/wmlsc-${VERSION} 20 | cp ../wmlscript/wmlsdasm ${TRG}/bin/wmlsdasm-${VERSION} 21 | cp ../utils/seewbmp ${TRG}/bin/seewbmp-${VERSION} 22 | cp ../gw/bearerbox ${TRG}/sbin/bearerbox-${VERSION} 23 | cp ../gw/smsbox ${TRG}/sbin/smsbox-${VERSION} 24 | cp ../gw/wapbox ${TRG}/sbin/wapbox-${VERSION} 25 | cp ../utils/run_kannel_box ${TRG}/sbin/run_kannel_box-${VERSION} 26 | cp ../utils/seewbmp.1 ${TRG}/man/man1/seewbmp.1 27 | cp ../wmlscript/wmlsc.1 ${TRG}/man/man1/wmlsc.1 28 | cp ../wmlscript/wmlsdasm.1 ${TRG}/man/man1/wmlsdasm.1 29 | cp ../gw/kannel.8 ${TRG}/man/man8/kannel.8 30 | cp ../utils/run_kannel_box.8 ${TRG}/man/man8/run_kannel_box.8 31 | 32 | pkgmk -r `pwd` -d . -o 33 | pkgtrans . WAkannel-${VERSION}.pkg WAkannel-${VERSION} 34 | -------------------------------------------------------------------------------- /solaris/pkginfo.tmpl: -------------------------------------------------------------------------------- 1 | PKG="WAkannel-VERSION_NUMBER" 2 | NAME="kannel" 3 | ARCH="sparc" 4 | VERSION="cvs" 5 | CATEGORY="application" 6 | VENDOR="Kannel project" 7 | EMAIL="andreas@fink.org" 8 | PSTAMP="Andreas Fink" 9 | BASEDIR="/usr/local" 10 | CLASSES="none" 11 | -------------------------------------------------------------------------------- /solaris/prototype.tmpl: -------------------------------------------------------------------------------- 1 | i pkginfo=./pkginfo 2 | f none kannel/bin/wmlsc-VERSION_NUM 0755 bin bin 3 | f none kannel/bin/wmlsdasm-VERSION_NUM 0755 bin bin 4 | f none kannel/bin/seewbmp-VERSION_NUM 0755 bin bin 5 | f none kannel/sbin/bearerbox-VERSION_NUM 0755 bin bin 6 | f none kannel/sbin/smsbox-VERSION_NUM 0755 bin bin 7 | f none kannel/sbin/wapbox-VERSION_NUM 0755 bin bin 8 | f none kannel/sbin/run_kannel_box-VERSION_NUM 0755 bin bin 9 | f none kannel/man/man1/seewbmp.1 0755 bin bin 10 | f none kannel/man/man1/wmlsc.1 0755 bin bin 11 | f none kannel/man/man1/wmlsdasm.1 0755 bin bin 12 | f none kannel/man/man8/kannel.8 0755 bin bin 13 | f none kannel/man/man8/run_kannel_box.8 0755 bin bin 14 | f none etc/kannel.conf 0664 bin bin 15 | -------------------------------------------------------------------------------- /solaris/readme.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/solaris/readme.txt -------------------------------------------------------------------------------- /test/blacklist.txt: -------------------------------------------------------------------------------- 1 | +35897734896 2 | +35893781250 3 | -------------------------------------------------------------------------------- /test/bookmark.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /test/chartest.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/test/chartest.html -------------------------------------------------------------------------------- /test/dlr-receiver.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2004 MNC S.A. 3 | # 4 | # This program is open-source and released under 5 | # the Kannel Software License, Version 1.0. Please see 6 | # LICENSE from the main Kannel distribution sources. 7 | # 8 | 9 | import sys 10 | import re 11 | from socket import * 12 | 13 | port = 6666 14 | 15 | # you may optionally specify on commandline the port to use 16 | if len( sys.argv ) == 2: 17 | port = int( sys.argv[1] ) 18 | 19 | # create the socket which will represent the server endpoint 20 | sock = socket( AF_INET, SOCK_STREAM, 0 ) 21 | 22 | # allow socket to reuse a port address not fully closed; necessary 23 | # when relaunching the server program quickly several times; see 24 | # http://hea-www.harvard.edu/~fine/Tech/addrinuse.html 25 | sock.setsockopt( SOL_SOCKET, SO_REUSEADDR, 1 ) 26 | 27 | # assign the local address to the socket (127.0.0.1 specifies to only 28 | # accept connections from the local machine, not from the network 29 | sock.bind( ( '127.0.0.1', port ) ) 30 | 31 | # tell that we're willing to accept new connections */ 32 | sock.listen( 1 ) 33 | 34 | print 'Listening for connections on port %d...' % port 35 | 36 | while 1: 37 | # accept the incoming connection, obtaining the file-descriptor 38 | # representing the connection 39 | fd, addr = sock.accept() 40 | 41 | # read data sent by the client 42 | buf = '' 43 | while 1: 44 | data = fd.recv( 10000 ) 45 | # print received data on console while it's received 46 | sys.stdout.write( data ) 47 | buf += data 48 | 49 | match = re.search( r'\r\n\r\n', buf ) 50 | if match: 51 | break 52 | 53 | print '-=-=--' 54 | 55 | response = "HTTP/1.1 200 OK\r\n" 56 | response += "Connection: close\r\n" 57 | response += "\r\n" 58 | response += "Ok." 59 | 60 | fd.send( response ) 61 | 62 | # we're done 63 | fd.close() 64 | -------------------------------------------------------------------------------- /test/drive_smpp.conf: -------------------------------------------------------------------------------- 1 | group = core 2 | admin-port = 13000 3 | smsbox-port = 13001 4 | admin-password = bar 5 | log-file = "check_smpp_bb.log" 6 | box-deny-ip = "*.*.*.*" 7 | box-allow-ip = "127.0.0.1" 8 | access-log = /dev/stdout 9 | 10 | group = smsc 11 | smsc = smpp 12 | smsc-id = smpp 13 | host = 127.0.0.1 14 | port = 2345 15 | receive-port = 2345 16 | system-type = "VMA" 17 | address-range = "" 18 | smsc-username = "foo" 19 | smsc-password = "bar" 20 | 21 | group = smpp-tlv 22 | name = my_receipted_message_id 23 | tag = 0x001E 24 | type = octetstring 25 | length = 65 26 | #smsc-id = smpp 27 | 28 | group = smsbox 29 | bearerbox-host = 127.0.0.1 30 | sendsms-port = 13013 31 | global-sender = 123 32 | log-file = "smsbox.log" 33 | 34 | group = sms-service 35 | keyword = default 36 | text = "No service specified" 37 | -------------------------------------------------------------------------------- /test/hello.wml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 |

Hello, world.

7 |
8 |
9 | -------------------------------------------------------------------------------- /test/html-test-1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/test/html-test-1 -------------------------------------------------------------------------------- /test/http2-test-urls: -------------------------------------------------------------------------------- 1 | http://localhost 2 | http://www.kannel.org 3 | http://www.wapit.com 4 | http://www.wapit.com/~liw/hello.wml 5 | http://www.wapit.com/~liw/cgi-bin/rafla.cgi?pattern=pihvi 6 | -------------------------------------------------------------------------------- /test/iptestppg.txt: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 |
9 |
10 | 17 | 18 |
19 |
20 | -------------------------------------------------------------------------------- /test/mime-multipart.txt: -------------------------------------------------------------------------------- 1 | Content-Type: multipart/related; start=; boundary=my_boundary 2 | X-Some-Header: Some-Value 3 | MIME-Version: 1.0 4 | 5 | 6 | --my_boundary 7 | Content-Type: text/plain 8 | 9 | this is the text in this entity 10 | 11 | --my_boundary 12 | Content-Type: multipart/mixed; boundary=mms_boundary 13 | MIME-Version: 1.0 14 | 15 | 16 | --mms_boundary 17 | Content-Type: text/plain 18 | 19 | this is the mms message text 20 | 21 | --mms_boundary 22 | Content-Type: application/xml 23 | 24 | 25 | 27 | 28 | 29 |
30 |
31 |
32 | 33 | 34 | 35 | --mms_boundary-- 36 | 37 | --my_boundary-- 38 | -------------------------------------------------------------------------------- /test/run-http2-tests.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Compare lynx -source output and test_http output on a number of URLs. 4 | # 5 | # Lars Wirzenius 6 | 7 | for url in `cat test/http-test-urls` 8 | do 9 | echo "Testing $url..." 10 | lynx -source "$url" > lynx.tmp 11 | test/test_http -s "$url" > http.tmp 12 | test/test_http -s "$url" > http2.tmp 13 | if diff -u lynx.tmp http.tmp >/dev/null && 14 | diff -u lynx.tmp http2.tmp > /dev/null 15 | then 16 | : 17 | else 18 | echo "Lynx and test_http disagree. Oops." 19 | echo "URL is <$url>." 20 | echo "See lynx.tmp and http2.tmp." 21 | exit 1 22 | fi 23 | done 24 | echo "All tests passed. Very good." 25 | rm -f lynx.tmp http.tmp http2.tmp 26 | -------------------------------------------------------------------------------- /test/settings4.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /test/si.txt: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | You have 4 new emails 11 | 12 | 13 | -------------------------------------------------------------------------------- /test/sl.txt: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | -------------------------------------------------------------------------------- /test/smstestppg.txt: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 |
9 |
10 | 17 | 18 |
19 |
20 | -------------------------------------------------------------------------------- /test/test_hmac.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/test/test_hmac.c -------------------------------------------------------------------------------- /test/test_mime.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/test/test_mime.c -------------------------------------------------------------------------------- /test/test_ota.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/test/test_ota.c -------------------------------------------------------------------------------- /test/test_pap.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/test/test_pap.c -------------------------------------------------------------------------------- /test/test_ppg.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/test/test_ppg.c -------------------------------------------------------------------------------- /test/test_si.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/test/test_si.c -------------------------------------------------------------------------------- /test/test_sl.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/test/test_sl.c -------------------------------------------------------------------------------- /test/testcase.wml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 14 | 15 | 16 |

17 | This is a testing page with lots of tests. 18 |

19 |

20 | Try picking one up: 21 | 35 |

36 |
37 | 38 |

39 | Do not panic. 40 |

41 |
42 |
43 | -------------------------------------------------------------------------------- /test/whitelist.txt: -------------------------------------------------------------------------------- 1 | +358408676001 2 | +358408201681 3 | -------------------------------------------------------------------------------- /utils/build-cygwin-package: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ ! -d "gw" ] ; then 4 | echo "Must be ran in gateway dir" 5 | exit 1 6 | fi 7 | 8 | BUILDDIR=/tmp/kannel 9 | 10 | if [ -d "$BUILDDIR" ] ; then 11 | rm -fr "$BUILDDIR" 12 | fi 13 | 14 | mkdir "$BUILDDIR" 15 | 16 | mkdir "$BUILDDIR/bin" 17 | cp gw/*.exe "$BUILDDIR/bin" -v 18 | 19 | mkdir "$BUILDDIR/conf" 20 | for i in doc/examples/*.conf ; do 21 | cp $i "$BUILDDIR/conf" -v 22 | done 23 | 24 | mkdir "$BUILDDIR/tools" 25 | for i in test utils wmlscript ; do 26 | mkdir "$BUILDDIR/tools/$i" 27 | cp $i/*.exe "$BUILDDIR/tools/$i" -v 28 | done 29 | 30 | if [ -e doc/userguide/userguide.pdf ] ; then 31 | mkdir "$BUILDDIR/docs" 32 | for i in userguide alligata arch wtls ; do 33 | mkdir "$BUILDDIR/docs/$i" 34 | cp doc/$i/*.pdf \ 35 | doc/$i/*.rtf \ 36 | doc/$i/*.png \ 37 | "$BUILDDIR/docs/$i" 38 | done 39 | fi 40 | 41 | (cd "$BUILDDIR" ; zip -r kannel.zip *) 42 | echo "kannel.zip is on $BUILDDIR" 43 | -------------------------------------------------------------------------------- /utils/changelog-report: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # changelog-report - Report changes to ChangeLog 4 | # 5 | # DO NOT RUN THIS SCRIPT unless you make damn sure the e-mail address points 6 | # at somewhere who wants to receive it. 7 | # 8 | # This script reports changes to the ChangeLog file in the Kannel CVS 9 | # repository. 10 | # 11 | # Lars Wirzenius 12 | # 13 | 14 | set -e 15 | 16 | addr="" 17 | workdir="$HOME/gateway" 18 | 19 | tmp=ChangeLog.temp 20 | 21 | cd $workdir 22 | cvs -Q update ChangeLog 23 | diff -w -b -B -t ChangeLog.old ChangeLog | sed -n '/^> /s///p' >> $tmp || true 24 | if test -s $tmp 25 | then 26 | ( 27 | echo 'Changes to gateway ChangeLog.' 28 | echo '' 29 | cat $tmp 30 | ) | mail -s 'ChangeLog update' $addr 31 | fi 32 | cp ChangeLog ChangeLog.old 33 | rm -f $tmp 34 | -------------------------------------------------------------------------------- /utils/chlog-stats: -------------------------------------------------------------------------------- 1 | #!/usr/bin/awk -f 2 | # 3 | # Compute some simple statistics from a ChangeLog file. Output has several 4 | # columns: 5 | # 6 | # 1) number of changelog entries 7 | # 2) total lines in changelog entries 8 | # 3) average lines per entry 9 | # 4) username 10 | # 11 | # Output is not sorted. Use "sort -n" to sort. 12 | # 13 | # Lars Wirzenius 14 | 15 | /^[a-zA-Z0-9]/ { 16 | match($NF, /<.*@/) 17 | who = substr($NF, RSTART+1, RLENGTH-2) 18 | if (who == "") who = $NF 19 | entries[who]++ 20 | next 21 | } 22 | 23 | /[^ ]/ { lines[who]++ } 24 | 25 | END { 26 | for (who in entries) 27 | printf "%4d %4d %.1f %s\n", entries[who], lines[who], 28 | lines[who]/entries[who], who 29 | } 30 | -------------------------------------------------------------------------------- /utils/daily-patch: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # daily-patch - generate and e-mail the daily patch for Kannel 4 | # 5 | # DO NOT RUN THIS SCRIPT, unless you know the recipient and the CVS maintainer 6 | # want you to. 7 | # 8 | # Make a "daily patch", or actually just a patch from the previous time 9 | # this script was run. 10 | # 11 | # Lars Wirzenius 12 | # 13 | 14 | set -e 15 | 16 | addr="" 17 | CVSROOT=":pserver:anonymoua@cvs.kannel.org:/home/cvs" 18 | 19 | tagsuffix="debug" 20 | newtag="new_daily_patch_tag$tagsuffix" 21 | tag="daily_patch_tag$tagsuffix" 22 | 23 | temp=/tmp/daily-patch.$$ 24 | 25 | for module in "$@" 26 | do 27 | cvs -Q -d$CVSROOT rtag -F -a -D now $newtag $module 28 | rm -f $temp 29 | cvs -Q -d$CVSROOT rdiff -s -r $tag -r $newtag -u $module >> $temp 30 | if [ -s "$temp" ] 31 | then 32 | echo "" >> $temp 33 | echo "" >> $temp 34 | echo "" >> $temp 35 | cvs -Q -d$CVSROOT rdiff -r $tag -r $newtag -u $module | 36 | awk '/^Index: / { 37 | if ($2 == "gateway/configure") hide = 1 38 | else hide = 0 39 | } 40 | !hide { print $0 }' >> $temp 41 | cat $temp 42 | else 43 | echo "No changes in $module since yesterday." 44 | fi | mail -s "Daily patch: $module" $addr 45 | rm -f $temp 46 | 47 | cvs -Q -d$CVSROOT rtag -F -a -r $newtag $tag $module 48 | done 49 | -------------------------------------------------------------------------------- /utils/find-long-lines: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # This script looks for long lines in source files in Kannel. 4 | # 5 | # Lars Wirzenius 6 | 7 | if [ ! -e /usr/bin/expand ] 8 | then 9 | # No expand -> we can't expand tabs -> let's just fail silently 10 | exit 0 11 | fi 12 | 13 | if [ -z "$1" ] 14 | then 15 | dirs="." 16 | else 17 | dirs="$@" 18 | fi 19 | 20 | find $dirs -type f ! -name '*.[oa]' ! -name '.*' ! -name '*.ps' ! \ 21 | -name '*.html' ! -name '*.pdf' ! -name '*.rtf' ! \ 22 | -name '*.png' ! -name core ! -name configure ! -name config.status \ 23 | ! -name '*.log' ! -name '*.fig' | 24 | grep -v '/CVS/' | 25 | while read file 26 | do 27 | if file "$file" | grep executable >/dev/null 28 | then 29 | : 30 | else 31 | expand $file | 32 | awk -vfile="$file" 'length > 78 { print file ":" NR ":" $0 }' 33 | fi 34 | done 35 | -------------------------------------------------------------------------------- /utils/foobar-config.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # foobar-config.sh -- a generic foobar-config shell script generator 4 | # 5 | # This generator takes 3 arguments and creates a foobar-config shell 6 | # scirpt that is used to determine the common CFLAGS for compiling 7 | # again this foobar package, LIBS for linking against dependency libs 8 | # and VERSION for displaying which version is used/installed. 9 | # 10 | # Derived from Ulric Eriksson from the libsdb project. 11 | # 12 | # Stipe Tolj 13 | # 14 | 15 | cat << EOF 16 | #!/bin/sh 17 | 18 | usage() 19 | { 20 | echo "usage: \$0 [--cflags] [--libs] [--version]" 21 | exit 0 22 | } 23 | 24 | cflags=no 25 | libs=no 26 | version=no 27 | 28 | test "\$1" || usage 29 | 30 | while test "\$1"; do 31 | case "\$1" in 32 | --cflags ) 33 | cflags=yes 34 | ;; 35 | --libs ) 36 | libs=yes 37 | ;; 38 | --version ) 39 | version=yes 40 | ;; 41 | * ) 42 | usage 43 | ;; 44 | esac 45 | shift 46 | done 47 | 48 | test "\$cflags" = yes && cat << FOO 49 | $1 50 | FOO 51 | 52 | test "\$libs" = yes && cat << FOO 53 | $2 54 | FOO 55 | 56 | test "\$version" = yes && cat << FOO 57 | $3 58 | FOO 59 | 60 | EOF 61 | -------------------------------------------------------------------------------- /utils/kannel-init.d: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Start/stop the Kannel boxes: One bearer box and one WAP box. 3 | 4 | # This is the default init.d script for Kannel. Its configuration is 5 | # appropriate for a small site running Kannel on one machine. 6 | 7 | # Make sure that the Kannel binaries can be found in $BOXPATH or somewhere 8 | # else along $PATH. run_kannel_box has to be in $BOXPATH. 9 | 10 | BOXPATH=/usr/bin 11 | PIDFILES=/var/run 12 | CONFDIR=/etc/kannel 13 | CONF=$CONFDIR/kannel.conf 14 | 15 | USER=kannel 16 | VERSION="" 17 | #VERSION="-0.12.4" 18 | 19 | RB=run_kannel_box$VERSION 20 | BB=bearerbox$VERSION 21 | WB=wapbox$VERSION 22 | SB=smsbox$VERSION 23 | SSD=start-stop-daemon$VERSION 24 | 25 | PATH=$BOXPATH:$PATH 26 | 27 | # On Debian, the most likely reason for the bearerbox not being available 28 | # is that the package is in the "removed" or "unconfigured" state, and the 29 | # init.d script is still around because it's a conffile. This is normal, 30 | # so don't generate any output. 31 | test -x $BOXPATH/$BB || exit 0 32 | 33 | case "$1" in 34 | start) 35 | echo -n "Starting WAP gateway: bearerbox" 36 | $SSD --start --quiet --pidfile $PIDFILES/kannel_bearerbox.pid --exec $RB -- --pidfile $PIDFILES/kannel_bearerbox.pid $BB -- $CONF 37 | echo -n " wapbox" 38 | $SSD --start --quiet --pidfile $PIDFILES/kannel_wapbox.pid --exec $RB -- --pidfile $PIDFILES/kannel_wapbox.pid $WB -- $CONF 39 | # echo -n " smsbox" 40 | # $SSD --start --quiet --pidfile $PIDFILES/kannel_smsbox.pid --exec $RB -- --pidfile $PIDFILES/kannel_smsbox.pid $SB -- $CONF 41 | echo "." 42 | ;; 43 | 44 | stop) 45 | echo -n "Stopping WAP gateway: wapbox" 46 | $SSD --stop --quiet --pidfile $PIDFILES/kannel_wapbox.pid --exec $RB 47 | # echo -n " smsbox" 48 | # $SSD --stop --quiet --pidfile $PIDFILES/kannel_smsbox.pid --exec $RB 49 | echo -n " bearerbox" 50 | $SSD --stop --quiet --pidfile $PIDFILES/kannel_bearerbox.pid --exec $RB 51 | echo "." 52 | ;; 53 | 54 | status) 55 | CORE_CONF=$(grep -r 'group[[:space:]]*=[[:space:]]*core' $CONFDIR | cut -d: -f1) 56 | ADMIN_PORT=$(grep '^admin-port' $CORE_CONF | sed "s/.*=[[:space:]]*//") 57 | ADMIN_PASS=$(grep '^admin-password' $CORE_CONF | sed "s/.*=[[:space:]]*//") 58 | STATUS_URL="http://127.0.0.1:${ADMIN_PORT}/status.txt?password=${ADMIN_PASS}" 59 | lynx -source $STATUS_URL 60 | ;; 61 | 62 | reload) 63 | # We don't have support for this yet. 64 | exit 1 65 | ;; 66 | 67 | restart|force-reload) 68 | $0 stop 69 | sleep 1 70 | $0 start 71 | ;; 72 | 73 | *) 74 | echo "Usage: $0 {start|stop|status|reload|restart|force-reload}" 75 | exit 1 76 | 77 | esac 78 | 79 | exit 0 80 | -------------------------------------------------------------------------------- /utils/kannel-nag: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # kannel-nag - do a test compile of Kannel and mail results to devel list 4 | # 5 | # This script is meant to compile Kannel and mail all warnings and errors 6 | # to the development list. It is meant to be run on a few carefully chosen 7 | # machines, not by everyone on the Internet. The goal is to make sure Kannel 8 | # at least compiles on many platforms. It is quite uninteresting to have 9 | # fiftyseven thousand people running this script on identical Linux machines. 10 | # 11 | # I repeat: DO NOT RUN THIS SCRIPT without asking for permission of the 12 | # receiver first. 13 | # 14 | # TODO: 15 | # - CFLAGS now set for GCC, should be more portable 16 | # 17 | # Lars Wirzenius 18 | # 19 | 20 | set -e 21 | 22 | addr="" 23 | CVSROOT=":pserver:anonymous@cvs.kannel.3glab.org:/home/cvs" 24 | 25 | dir="kannel-nag-dir" 26 | 27 | cd /var/tmp 28 | rm -rf $dir 29 | mkdir $dir 30 | cd $dir 31 | cvs -Q -d$CVSROOT co gateway 32 | cd gateway 33 | if CFLAGS='-Wall -O2 -g' ./configure >config.output 2>&1 34 | then 35 | configure=ok 36 | touch .depend || true 37 | make -s depend || true 38 | make -s >make.output 2>&1 || true 39 | else 40 | configure=failed 41 | fi 42 | 43 | if test -s make.output || [ "$configure" = failed ] 44 | then 45 | ( 46 | echo "Kannel compilation test." 47 | echo "" 48 | echo "Host: `uname -a`" 49 | echo "" 50 | echo "Kannel compilation had warnings or failed." 51 | echo "" 52 | if test -e make.output 53 | then 54 | echo "Output of 'make -s':" 55 | cat make.output 56 | echo "-------------------------------------------------------" 57 | echo "" 58 | fi 59 | echo "Output of 'CFLAGS='-Wall -O2 -g' ./configure':" 60 | cat config.output 61 | ) | mail -s "Kannel automatic compilation test for `uname -s`" $addr 62 | fi 63 | 64 | cd /var/tmp 65 | rm -rf $dir 66 | -------------------------------------------------------------------------------- /utils/kannel-redhat.init.d: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # gateway This shell script takes care of starting and stopping 4 | # the Kannel WAP gateway (bearer/wapbox) 5 | # Fabrice Gatille 6 | # chkconfig: 2345 97 03 7 | # description: Start and stop the Kannel WAP gateway used to fetch \ 8 | # some WML content from a Web server & compile it \ 9 | # into WMLC mobile phone bytecode. 10 | # probe: true 11 | 12 | # Use start-stop-daemon 13 | ver=0.12.1 14 | START="start-stop-daemon-$ver -S --quiet -b -c web:web -x " 15 | CONF=/etc/wapkannel.conf 16 | [ $# -eq 2 ] && ver=$2 17 | 18 | # Source function library. 19 | . /etc/rc.d/init.d/functions 20 | 21 | # Source networking configuration. 22 | . /etc/sysconfig/network 23 | 24 | # Check that networking is up. 25 | [ ${NETWORKING} = "no" ] && exit 0 26 | 27 | [ -x /usr/local/bin/bearerbox-$ver ] || exit 0 28 | 29 | [ -x /usr/local/bin/wapbox-$ver ] || exit 0 30 | 31 | [ -f $CONF ] || exit 0 32 | 33 | 34 | RETVAL=0 35 | 36 | # See how we were called. 37 | case "$1" in 38 | start) 39 | # Start daemons. 40 | echo -n "Starting bearer service (gateway kannel $ver): " 41 | daemon --forcedaemon "$START" /usr/local/bin/bearerbox-$ver -- $CONF 42 | RETVAL1=$? 43 | echo 44 | echo -n "Starting wapbox service (gateway kannel $ver): " 45 | daemon --forcedaemon "$START" /usr/local/bin/wapbox-$ver -- $CONF 46 | RETVAL2=$? 47 | echo 48 | [ $RETVAL1 -eq 0 -a $RETVAL2 -eq 0 ] && touch /var/lock/subsys/gateway ||\ 49 | RETVAL=1 50 | ;; 51 | stop) 52 | # Stop daemons. 53 | echo -n "Shutting down wapbox (kannel $ver): " 54 | killproc wapbox-$ver quiet 55 | RETVAL2=$? 56 | echo 57 | echo -n "Shutting down bearerbox (kannel $ver): " 58 | killproc bearerbox-$ver quiet 59 | RETVAL1=$? 60 | echo 61 | [ $RETVAL1 -eq 0 -a $RETVAL2 -eq 0 ] && rm -f /var/lock/subsys/gateway 62 | echo "" 63 | ;; 64 | status) 65 | status bearerbox-$ver 66 | status wapbox-$ver 67 | exit $? 68 | ;; 69 | restart) 70 | $0 stop 71 | sleep 1 72 | $0 start 73 | ;; 74 | *) 75 | echo "Usage: named {start|stop|status|restart}" 76 | exit 1 77 | esac 78 | 79 | exit $RETVAL 80 | 81 | -------------------------------------------------------------------------------- /utils/makedist: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Create distribution files. 4 | # 5 | # Lars Wirzenius 6 | 7 | set -e 8 | 9 | version="$1" 10 | tag=version_`echo $version | tr .- __` 11 | base=gateway-$version 12 | repo="https://svn.kannel.org/gateway/tags/" 13 | 14 | rm -rf $base 15 | svn --quiet export ${repo}$tag $base 16 | if [ "`head -1 $base/VERSION`" != "$version" ] 17 | then 18 | echo "Oops, VERSION does not match." 19 | exit 1 20 | fi 21 | 22 | tar -c -z -f $base.tar.gz $base 23 | md5sum $base.tar.gz > $base.tar.gz.md5 24 | sha1sum $base.tar.gz > $base.tar.gz.sha1 25 | tar -c -j -f $base.tar.bz2 $base 26 | md5sum $base.tar.bz2 > $base.tar.bz2.md5 27 | sha1sum $base.tar.bz2 > $base.tar.bz2.sha1 28 | zip -9qr $base.zip $base/* 29 | md5sum $base.zip > $base.zip.md5 30 | sha1sum $base.zip > $base.zip.sha1 31 | 32 | ( 33 | set -e 34 | cd $base 35 | ./configure --enable-docs >/dev/null 36 | touch .depend 37 | make -s depend 38 | make -s docs 39 | ) 40 | 41 | cp -a $base/doc/arch arch-$version 42 | cp $base/doc/arch/arch.ps arch-$version.ps 43 | tar -c -z -f arch-$version.tar.gz arch-$version/* 44 | zip -9qr arch-$version.zip arch-$version/* 45 | 46 | cp -a $base/doc/userguide userguide-$version 47 | cp $base/doc/userguide/userguide.ps userguide-$version.ps 48 | tar -c -z -f userguide-$version.tar.gz userguide-$version/* 49 | zip -9qr userguide-$version.zip userguide-$version/* 50 | 51 | cp $base/NEWS NEWS-$version 52 | cp $base/README README-$version 53 | cp $base/ChangeLog ChangeLog-$version 54 | -------------------------------------------------------------------------------- /utils/mtbatch.1: -------------------------------------------------------------------------------- 1 | .\" Hey, Emacs! This is an -*- nroff -*- source file. 2 | .TH MTBATCH 1 "22th January 2004" "Kannel Project" "Kannel Project" 3 | .SH NAME 4 | mtbatch \- Sends SMS in batch mode 5 | .SH SYNOPSIS 6 | .B mtbatch 7 | .IR "" [options] content-file receivers-file ... 8 | .SH DESCRIPTION 9 | .B mtbatch 10 | -v number 11 | set log level for stderr logging 12 | -b host 13 | defines the host of bearerbox (default: localhost) 14 | -p port 15 | the smsbox port to connect to (default: 13002) 16 | -s 17 | inidicatr to use SSL for bearerbox connection (default: no) 18 | -i smsbox-id 19 | defines the smsbox-id to be used for bearerbox connection (default: none) 20 | -f sender 21 | which sender address should be used 22 | -n service 23 | defines which service name should be logged (default: none) 24 | -a account 25 | defines which account name should be logged (default: none) 26 | -d seconds 27 | delay between message sending to bearerbox (default: 0) 28 | -r smsc-id 29 | use a specific route for the MT traffic 30 | .SH "SEE ALSO" 31 | .BR kannel (8) 32 | -------------------------------------------------------------------------------- /utils/pixmapgen.pl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl 2 | 3 | use strict; 4 | 5 | # 6 | # a short perl script to convert (almost) any pictures into WBMP pictures 7 | # 8 | # Kalle Marjola for WapIT Ltd. 1999 9 | # 10 | # USAGE: ./pixmapgen.pl SOURCE >TARGET 11 | # 12 | # 13 | # note: change following strings if needed to 14 | # 15 | 16 | my $temp_target = "/tmp/pmgen_tmp.mono"; # the program for mono->WBMP 17 | my $converter = "./test_wbmp"; # temporary file 18 | 19 | my $source = $ARGV[0]; 20 | 21 | my $retval = `convert -verbose -monochrome $source $temp_target`; 22 | my ($width, $height) = ($retval =~ /$temp_target (\d+)x(\d+)/s); 23 | 24 | print `$converter $temp_target $width $height`; 25 | 26 | -------------------------------------------------------------------------------- /utils/run-checks: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # This script runs all the checks given in the command line. See the 4 | # README for more info. 5 | # 6 | 7 | rm -f check.log check.log.new 8 | for prog in "$@" 9 | do 10 | echo -n "Check: $prog..." 11 | $prog 2> check.log.new 12 | if test ! -s check.log.new 13 | then 14 | echo " OK." 15 | else 16 | echo " FAILURE!" 17 | echo "Check: $prog" >> check.log 18 | cat check.log.new >> check.log 19 | fi 20 | rm check.log.new 21 | done 22 | 23 | if test -s check.log 24 | then 25 | echo At least one check failed, see \`check.log\'. 26 | else 27 | echo All checks OK. 28 | rm -f check.log 29 | fi 30 | -------------------------------------------------------------------------------- /utils/run_kannel_box.8: -------------------------------------------------------------------------------- 1 | .\" Hey, Emacs! This is an -*- nroff -*- source file. 2 | .TH RUN_KANNEL_BOX 8 "3rd October 2000" "Kannel Project" "Kannel Project" 3 | .SH NAME 4 | run_kannel_box \- Run a Kannel box 5 | .SH SYNOPSIS 6 | .B run_kannel_box 7 | .BR "" [ --pidfile 8 | .IR PIDFILE ] 9 | .BR "" [ --min-delay 10 | .IR SECONDS ] 11 | .I BOXPATH 12 | .IR "" [ boxoptions ...] 13 | .SH DESCRIPTION 14 | .B run_kannel_box 15 | runs a 16 | .BR kannel (8) 17 | box, i.e., one of the daemon programs of Kannel. 18 | is an WAP and SMS gateway. 19 | WAP is short for Wireless Application Protocol, 20 | and is used to implement hypertext based services on mobile phones. 21 | SMS is short for Short Message Service, 22 | and is used to send and recive short (up to 160 characters) text messages 23 | with mobile phones. 24 | SMS can also be used to implement simple text based services on mobile 25 | phones. 26 | .PP 27 | For more information, 28 | see 29 | .B http://www.kannel.org 30 | or 31 | .BR file://usr/doc/kannel/ . 32 | -------------------------------------------------------------------------------- /utils/seewbmp.1: -------------------------------------------------------------------------------- 1 | .\" Hey, Emacs! This is an -*- nroff -*- source file. 2 | .TH SEEWBMP 1 "3rd October 2000" "Kannel Project" "Kannel Project" 3 | .SH NAME 4 | seewbmp \- Convert a WBMP wireless bitmap to textual format 5 | .SH SYNOPSIS 6 | .B seewbmp 7 | .IR "" [ inputfile ... ] 8 | .SH DESCRIPTION 9 | .B seewbmp 10 | reads one or more wireless bitmap images (WBMP files) and prints them 11 | to the standard output in a textual format. 12 | Each pixel is shown as either a space or an asterisk. 13 | .SH "SEE ALSO" 14 | .BR kannel (8) 15 | -------------------------------------------------------------------------------- /utils/source-stats: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Simple program to calculate source code statistics for Kannel. 4 | # 5 | # Run with current working directory being the Kannel source root. 6 | # 7 | # Output: 8 | # 9 | # - number of source files 10 | # - number of lines total 11 | # - number of non-empty files 12 | # - number of lines with semicolons 13 | 14 | DIRS="gw gwlib wmlscript wap" 15 | 16 | find $DIRS -type f ! -name .cvsignore ! -name control.html \ 17 | ! -name '*kannel.conf' ! -name 'wsgram.[ch]' ! -name '*.txt' \ 18 | ! -name '*.[ao]' ! -name '*box' ! -name wmlsc ! -name wmlsdasm | 19 | grep -v /CVS/ > files.txt 20 | 21 | cat < 23 |
24 | 25 | 26 | 27 | 28 |
Source line statistics `date +%Y-%m-%d`
Number of files `wc -l < files.txt`
Lines total `xargs cat < files.txt | wc -l`
Non-empty lines `xargs grep -v '^[ ]*$' < files.txt | wc -l`
Lines with semicolons`xargs grep ';' < files.txt | wc -l`
29 | EOF 30 | 31 | rm -f files.txt 32 | -------------------------------------------------------------------------------- /utils/update-license-text.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # update-license -- update prefix blocks with LICENSE text 4 | # 5 | # Run this script in gateway root directory to update the 6 | # current LICENSE text file to all source code files. 7 | # 8 | 9 | old="2001-2012 Kannel Group" 10 | new="2001-2013 Kannel Group" 11 | 12 | prog=`basename $0` 13 | files=`find -type f ! -name "${prog}" ! -path "*/.svn/*" ! -path "./addons/*" | xargs fgrep -lr "${old}"` 14 | for i in $files; do 15 | echo ${i} 16 | cat ${i} | sed "s/${old}/${new}/" > ${i}.new 17 | mv ${i}.new ${i} 18 | done 19 | -------------------------------------------------------------------------------- /utils/update-license.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # update-license -- update prefix blocks with LICENSE text 4 | # 5 | # Run this script in gateway root directory to update the 6 | # current LICENSE text file to all source code files. 7 | # 8 | 9 | types="\.h \.c \.def" 10 | 11 | for t in $types; do 12 | echo "Updating LICENSE in '${t}' files." 13 | files=`find -type f | grep "${t}\$"` 14 | for i in $files; do 15 | cat LICENSE ${i} >> ${i}.new 16 | mv ${i}.new ${i} 17 | done 18 | done 19 | -------------------------------------------------------------------------------- /utils/utf8map.pl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl -wn 2 | # 3 | # utf8map.pl - remap ascii to utf8 4 | # 5 | # Program was created to build conversion table from ascii into utf8. 6 | # Ascii table's first half does not require any changes (because utf8 7 | # [0-127] encoding is the same as in ascii). To control second half's 8 | # encoding we have to specify all unicode codes for characters in 9 | # [128-255] interval. Program takes unicode codes for 128 characters 10 | # on input (in hex format with leading 0x) and generates conversion table . 11 | # Every utf8 code is padded by '0' and occupies 4 bytes. 12 | # It is suitable for use in 'C' programs. 13 | # 14 | # For example, 15 | # in windows-1257 table character 169 '(c)' has code 0x00A9 in unicode. 16 | # Program will generate folowing string: 17 | # 18 | # 0xC2, 0xA9, 0x00, 0x00, /* 169 0x00a9 */ 19 | # \______________________/ \___/ \______/ 20 | # utf8 code (2 bytes ascii unicode 21 | # with padding) 22 | # 23 | # USAGE: 24 | # perl utf8map.pl asci_128-255_unicode_table.txt 25 | # 26 | # Andrejs Dubovskis 27 | # 28 | 29 | use strict ; 30 | 31 | use vars qw/$N/ ; 32 | 33 | BEGIN { 34 | # we going to prepare table for characters in 128-255 interval 35 | $N = 128 ; 36 | } 37 | 38 | # look for hex number (unicode) 39 | for my $hex (/0x[\da-f]+/ig) { 40 | my $num = hex($hex) ; 41 | my @out = () ; 42 | 43 | if ($num > 0xffff) { 44 | die "too large number: $hex" ; 45 | } elsif ($num > 0x07ff) { 46 | # result is three bytes long 47 | @out = ( 48 | (($num >> 12) & 0xf) | 0xe0, 49 | (($num >> 6) & 0x3f) | 0x80, 50 | ($num & 0x3f) | 0x80 51 | ) ; 52 | } elsif ($num > 0x7f) { 53 | # result is two bytes long 54 | @out = ( 55 | (($num >> 6) & 0x1f) | 0xc0, 56 | ($num & 0x3f) | 0x80 57 | ) ; 58 | } else { 59 | # only zero is legal here 60 | die "wrong input data: $hex" if $num ; 61 | } 62 | 63 | # pad by '0' 64 | push(@out, 0) while @out < 4 ; 65 | 66 | # output utf8 code 67 | printf("0x%02X,\t0x%02X,\t0x%02X,\t0x%02X,\t", @out) ; 68 | # output comments 69 | print "/*\t$N\t$hex\t*/\n" ; 70 | 71 | # characters in [128-255] interval only 72 | exit if ++$N > 255 ; 73 | } 74 | -------------------------------------------------------------------------------- /utils/vimrc: -------------------------------------------------------------------------------- 1 | set expandtab 2 | set sw=4 3 | set ts=4 4 | set sts=4 5 | -------------------------------------------------------------------------------- /utils/win1257unicode.txt: -------------------------------------------------------------------------------- 1 | 0x20ac, 0x0000, 0x201a, 0x0000, 0x201e, 0x2026, 0x2020, 0x2021, 2 | 0x0000, 0x2030, 0x0000, 0x2039, 0x0000, 0x00a8, 0x02c7, 0x00b8, 3 | 0x0000, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, 4 | 0x0000, 0x2122, 0x0000, 0x203a, 0x0000, 0x00af, 0x02db, 0x0000, 5 | 0x00a0, 0x0000, 0x00a2, 0x00a3, 0x00a4, 0x0000, 0x00a6, 0x00a7, 6 | 0x00d8, 0x00a9, 0x0156, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00c6, 7 | 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, 8 | 0x00f8, 0x00b9, 0x0157, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00e6, 9 | 0x0104, 0x012e, 0x0100, 0x0106, 0x00c4, 0x00c5, 0x0118, 0x0112, 10 | 0x010c, 0x00c9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012a, 0x013b, 11 | 0x0160, 0x0143, 0x0145, 0x00d3, 0x014c, 0x00d5, 0x00d6, 0x00d7, 12 | 0x0172, 0x0141, 0x015a, 0x016a, 0x00dc, 0x017b, 0x017d, 0x00df, 13 | 0x0105, 0x012f, 0x0101, 0x0107, 0x00e4, 0x00e5, 0x0119, 0x0113, 14 | 0x010d, 0x00e9, 0x017a, 0x0117, 0x0123, 0x0137, 0x012b, 0x013c, 15 | 0x0161, 0x0144, 0x0146, 0x00f3, 0x014d, 0x00f5, 0x00f6, 0x00f7, 16 | 0x0173, 0x0142, 0x015b, 0x016b, 0x00fc, 0x017c, 0x017e, 0x02d9 17 | -------------------------------------------------------------------------------- /wap/wap_events.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/wap/wap_events.c -------------------------------------------------------------------------------- /wap/wap_events.def: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/wap/wap_events.def -------------------------------------------------------------------------------- /wap/wap_events.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/wap/wap_events.h -------------------------------------------------------------------------------- /wap/wsp_push_client.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/wap/wsp_push_client.c -------------------------------------------------------------------------------- /wap/wsp_push_client.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/wap/wsp_push_client.h -------------------------------------------------------------------------------- /wap/wsp_push_client_machine.def: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/wap/wsp_push_client_machine.def -------------------------------------------------------------------------------- /wap/wsp_push_client_states.def: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/wap/wsp_push_client_states.def -------------------------------------------------------------------------------- /wap/wsp_server_push_machine.def: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/wap/wsp_server_push_machine.def -------------------------------------------------------------------------------- /wap/wsp_server_push_states.def: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/wap/wsp_server_push_states.def -------------------------------------------------------------------------------- /wap/wsp_session.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/wap/wsp_session.c -------------------------------------------------------------------------------- /wap/wtp.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/wap/wtp.c -------------------------------------------------------------------------------- /wap/wtp_init.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/wap/wtp_init.c -------------------------------------------------------------------------------- /wap/wtp_init.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/wap/wtp_init.h -------------------------------------------------------------------------------- /wap/wtp_init_machine.def: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/wap/wtp_init_machine.def -------------------------------------------------------------------------------- /wap/wtp_init_states.def: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/wap/wtp_init_states.def -------------------------------------------------------------------------------- /wap/wtp_pack.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/wap/wtp_pack.c -------------------------------------------------------------------------------- /wap/wtp_pack.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/wap/wtp_pack.h -------------------------------------------------------------------------------- /wap/wtp_resp.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/wap/wtp_resp.c -------------------------------------------------------------------------------- /wap/wtp_resp.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/wap/wtp_resp.h -------------------------------------------------------------------------------- /wap/wtp_resp_machine.def: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/wap/wtp_resp_machine.def -------------------------------------------------------------------------------- /wap/wtp_resp_states.def: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/wap/wtp_resp_states.def -------------------------------------------------------------------------------- /wap/wtp_tid.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/wap/wtp_tid.c -------------------------------------------------------------------------------- /wap/wtp_tid.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pruiz/kannel/cdbcfc129ab1f0cb301df741131bccf20d39c17f/wap/wtp_tid.h -------------------------------------------------------------------------------- /wmlscript/lexer.txt: -------------------------------------------------------------------------------- 1 | 2 | Lexer entities 3 | ============== 4 | 5 | * Reserved Words 6 | 7 | The `div=' is actually puctuation. 8 | 9 | access 10 | agent 11 | break 12 | case 13 | catch 14 | class 15 | const 16 | continue 17 | debugger 18 | default 19 | delete 20 | div 21 | div= 22 | do 23 | domain 24 | else 25 | enum 26 | equiv 27 | export 28 | extends 29 | extern 30 | false 31 | finally 32 | for 33 | function 34 | header 35 | http 36 | if 37 | import 38 | in 39 | invalid 40 | isvalid 41 | lib 42 | meta 43 | name 44 | new 45 | null 46 | path 47 | private 48 | public 49 | return 50 | sizeof 51 | struct 52 | super 53 | switch 54 | this 55 | throw 56 | true 57 | try 58 | typeof 59 | url 60 | use 61 | user 62 | var 63 | void 64 | while 65 | with 66 | 67 | * Punctuation (Plus comment starters) 68 | 69 | ! 70 | != 71 | # 72 | % 73 | %= 74 | & 75 | && 76 | &= 77 | ( 78 | ) 79 | * 80 | *= 81 | + 82 | ++ 83 | += 84 | , 85 | - 86 | -- 87 | -= 88 | . can be followed by [0-9] => DecimalFloatLiteral 89 | / 90 | /* block comment 91 | // single-line comment 92 | /= 93 | : 94 | ; 95 | < 96 | << 97 | <<= 98 | <= 99 | = 100 | == 101 | > 102 | >= 103 | >> 104 | >>= 105 | >>> 106 | >>>= 107 | ? 108 | ^ 109 | ^= 110 | { 111 | | 112 | |= 113 | || 114 | } 115 | ~ 116 | 117 | * Strings start with ' or " 118 | 119 | * Numbers: 120 | 121 | 0xHexDigit 122 | 0XHexDigit 123 | 0 124 | [1-9][0-9]* 125 | 0[0-7]+ 126 | 127 | floats start with `DecimalIntegerLiteral' or '.' -------------------------------------------------------------------------------- /wmlscript/make-op-table.in: -------------------------------------------------------------------------------- 1 | #!@PERLPROG@ -w 2 | # -*- perl -*- 3 | # 4 | # make-op-table.in 5 | # 6 | # Author: Markku Rossi 7 | # 8 | # Copyright (c) 1999-2000 WAPIT OY LTD. 9 | # All rights reserved. 10 | # 11 | # A help script to create the `wsopcodes.h' file from the `wsasm.h' 12 | # header file. 13 | # 14 | 15 | my(@table) = (); 16 | my(@size) = (); 17 | 18 | while (<>) { 19 | if (/^\#define\s(WS_ASM_[A-Z_0-9]+)\s+(\S+)\s+\/\*\s+(\S+)\s+(\S+)/) { 20 | my($name) = $1; 21 | my($code) = $2; 22 | my($size) = $4; 23 | 24 | if ($name =~ /WS_ASM_P_/) { 25 | next; 26 | } 27 | 28 | $table[hex($code)] = $name; 29 | $size[hex($code)] = $size; 30 | } 31 | } 32 | 33 | for ($i = 0; $i < 256; $i++) { 34 | printf(" /* 0x%02x */ ", $i); 35 | 36 | if (defined($table[$i])) { 37 | $name = $table[$i]; 38 | $name =~ s/^WS_ASM_//; 39 | $name =~ tr/A-Z/a-z/; 40 | 41 | print "{\"$name\",\t$size[$i]},\n"; 42 | } else { 43 | print "{NULL,\t0},\n"; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /wmlscript/wmlsc.1: -------------------------------------------------------------------------------- 1 | .\" Hey, Emacs! This is an -*- nroff -*- source file. 2 | .TH WMLSC 1 "3rd October 2000" "Kannel Project" "Kannel Project" 3 | .SH NAME 4 | wmlsc \- WMLScript compiler 5 | .SH SYNOPSIS 6 | .B wmlsc 7 | .BR "" [ -adlsv ] 8 | .IR file ... 9 | .SH DESCRIPTION 10 | .B wmlsc 11 | compiles WMLScript source files into a binary version. 12 | It is useful for testing WMLScript file correctness. 13 | .SH "SEE ALSO" 14 | .BR wmlsdasm (1), 15 | .BR kannel (8). 16 | -------------------------------------------------------------------------------- /wmlscript/wmlsdasm.1: -------------------------------------------------------------------------------- 1 | .\" Hey, Emacs! This is an -*- nroff -*- source file. 2 | .TH WMLSDASM 1 "3rd October 2000" "Kannel Project" "Kannel Project" 3 | .SH NAME 4 | wmlsdasm \- WMLScript disassembler 5 | .SH SYNOPSIS 6 | .B wmlsdasm 7 | .BR "" [ -cfnh ] 8 | .IR file ... 9 | .SH DESCRIPTION 10 | .B wmlsdasm 11 | un-compilers WMLScript bytecode files into a source version. 12 | It is useful for debugging the WMLScript compiler. 13 | .SH "SEE ALSO" 14 | .BR wmlsc (1), 15 | .BR kannel (8). 16 | --------------------------------------------------------------------------------