hi,

you forgot the parameters like %a for the text or %q for the sender.

exec = /Users/mac/Documents/gateway/gw/sms.sh  %q %Q %t %u %a %b

otherwise the script don't get the content of the messages. You can find
a list with all parameter in the kannel documentation ( search for: Parameters
(Escape Codes) ).

you wrote to sms.sh: "will be modified when text-files have been written"
to be shure we are talking from the same thing:

this script fetches incoming mails and writes it into a file. I don't
know your scripting skills, so I will explain it:

for var in $@; do
this loop went through the list with all arguments ($@). in every loop
you can access the current value with the variable (var). If you write

for var in $@; do
  echo var

it will show you the arguments on the standard output (your monitor)

this output will be piped to "tee". this is a tool to split the output
to more than one devices. this puts the result to the monitor and to the
given file.

if you want only a output into a file you can write simply 
echo "$var" >> /path/to/the/file/sms_message.txt
then it runs silently without monitor output.

>> is for appending the content, > would overwrite it with every
iteration from the loop. this is the reason for -a as parameter from
tee, too. (append the input)

the last row of the script does nothing more than append a line, so that
a have a separator between the messages. it is the same file like in the
entry two rows above.

After all the sms.sh could look like this:
#!/bin/bash
 
for var in $@; do
  echo "$var" >> /Users/mac/.../sms_message.txt          <- the outputfile
done

this writes all messages under each other.

----

have you tried

init-string = AT+CNMI=2,3,0,0,0;+CMEE=2

for the init-string?

Have you closed kannel while testing the at-command with your terminal
programm? you can not access the phones modem by two programs.
the at-command is correct for retrieving the message at storage number
17.

the following  error looks a little bit like not enough permissions. 
i'm not sure, but i would try to open the permissions to your device 
(the file in /dev/...) and try it again. or better make the kannel-user
owner of the device.

2010-06-06 22:21:30 [977] [6] ERROR: System error 1: Operation not
permitted

maybe this is the problem.

BR,
Thomas





On Sun, Jun 06, 2010 at 11:23:02PM +0200, Martin J. wrote:
| Hi Thomas,
| 
| Thanks a lot for your help and clarifications. If I understand it correctly,
| then I can either run a webserver OR use the exec-solution. Because I prefer
| not to run all this http overlay and webserver-stuff (I prefer terminal),
| then I modified my config file to reflect this:
| 
| --------------------------------------------------------
| group = sms-service
| keyword = default
| text = "No service specified"
| #get-url = http://127.0.0.1/receive_sms?from=%q&date=%t&text=%a
| max-messages = 0
| concatenation = true
| catch-all = yes
| exec = "/Users/mac/Documents/gateway/gw/sms.sh"
| #white-list = "http://localhost/whitelist";
| 
| 
| And sms.sh (will be modified when text-files have been written):
| --------------------------------------------------------
|  #!/bin/bash
| 
|   for var in $@; do
|     echo "$var" | tee -a DELETE_THIS_sms_message.txt
|   done
|   echo "-----------------------" | tee -a DELETE_NEW_sms_message.txt
| 
| 
| 
| Now, here comes the hardest part I think... And in this case I think I need
| to dig into Sony Ericsson K700i init-string or something... I tried
| screen /dev/cu.MartinsPhone-SerialPort2 and entering a lot of AT commands. I
| also successfully made the phone software come up with some reply, when I
| sms'ed from another phone. Then I tried to read the sms, but
| unsuccessfull... I read various tutorials on the internet saying I should be
| able to type in something like (to read message number 17, which the phone
| told me the received sms was numbered):
| 
| AT+CMGR=17 <ENTER>
| 
| >From this point I get a lot of CMS ERROR: 500 which I can see is an error
| that is specifically targeted towards Sony Ericcson, so it's hard for me to
| debug without a clue about what the problem exactly is. Now, back to my
| kannel-program and log-file:
| 
| 
| 
| 2010-06-06 22:21:29 [977] [6] DEBUG: AT2[/dev/cu.MartinsPhone-SerialPort2]:
| +CMTI incoming SMS indication: +CMTI: "ME",18
| 2010-06-06 22:21:30 [977] [6] DEBUG: AT2[/dev/cu.MartinsPhone-SerialPort2]:
| --> AT+CMGR=18^M
| 2010-06-06 22:21:30 [977] [6] DEBUG: AT2[/dev/cu.MartinsPhone-SerialPort2]:
| <-- +CMS ERROR: 500
| 2010-06-06 22:21:30 [977] [6] ERROR: AT2[/dev/cu.MartinsPhone-SerialPort2]:
| +CMS ERROR: +CMS ERROR: 500
| 2010-06-06 22:21:30 [977] [6] ERROR: AT2[/dev/cu.MartinsPhone-SerialPort2]:
| +CMS ERROR: An unknown error occurred (500)
| 2010-06-06 22:21:30 [977] [6] DEBUG: AT2[/dev/cu.MartinsPhone-SerialPort2]:
| failed to get message 18.
| 2010-06-06 22:21:30 [977] [6] ERROR: AT2[/dev/cu.MartinsPhone-SerialPort2]:
| CMTI notification received, but no message found in memory!
| 2010-06-06 22:21:30 [977] [6] ERROR: System error 1: Operation not permitted
| 2010-06-06 22:21:58 [977] [6] INFO: AT2[/dev/cu.MartinsPhone-SerialPort2]:
| Closing device
| 2010-06-06 22:21:58
| 
| 
| So: I think I need a new init-string and I hope that init-string can enable
| me to read text message and extract them from the phone... It's a good thing
| that it at least gets the CMTI notification, so it understands that it
| received a message....
| 
| Any clues from here on?
| 
| Thanks for all the help...
| 
| 
| Regards,
| Martin
| 
| 
| 
| On Jun 6, 2010, at 8:53 PM, Thomas Sieh wrote:
| 
| hi again,
| 
| At first you have to declare the location, which will handle the
| incoming messages. In your case you selected in your config at group =
| sms-service
| "get-url = http://127.0.0.1/receive_sms?from=%q&date=%t&text=%a";.
| 
| You have to run an http server at your localhost. in its content
| root-directory
| (for example in /var/www/) have to exist a script with the name
| "receive_sms.php",
| if you use php. the file is very dependent on your environment - will
| you store your messages in a database, in flat files, which data do you
| need, ... the php script from my previous mail safes the parameter in
| variables, with whom you can handle the content of the messages.
| thats is!
| 
| if you would create a sms-service group with "exec = /home/thomas/sms.sh %q
| %Q %t %u %a %b"
| instead of your get-url line, only then you have to use the sms.sh script
| I have sent in the last mail.
| In this case the config says that the incoming messages have to be
| handled by the script "sms.sh". in my example it was a little bash
| script. you have to adjust the path in the config file accourding to the
| destination of it in your filesystem. this basic script writes the
| incoming message content into a flat file. you have to change the path
| to the "sms_message.txt" according to your filesystem, too.
| The file you have pasted with cat containt my users home, not your :)
| It should look like /Users/<yourUserName>/sms_message.txt on a mac.
| 
| if your http-server is online und you have started your kannel
| (bearerbox and smsbox) you can open the link "
| http://localhost:13000/store-status?password=bar";
| there you can see your outgoing sms in the queue.
| 
| i don't know the init string of your handset, but in the internet
| someone wrote "init-string = "AT+CNMI=2,3,0,0,0" " works.
| you could try it.
| 
| 
| BR,
| Thomas
| 
| 
| 
| On Sun, Jun 06, 2010 at 07:35:53PM +0200, Martin J. wrote:
| | Hello,
| |
| | Thanks a lot (also to Rene K.). I somehow made it reply with the message:
| | "Could not fetch content, sorry", but I'll google that and look in the
| | archive later about that...
| |
| | Forgive me for the stupid question, but I still don't completely
| understand
| | the 2 examples (exec and get-url)...
| |
| | Re.1)
| | /gateway/gw
| | macbookpro:gw mac$ cat sms.sh
| |  #!/bin/bash
| |
| |    for var in $@; do
| |      echo "$var" | tee -a /home/goofy/sms_message.txt
| |    done
| |    echo
| |
| | What do I do next/what do you do next? This is probably a very stupid
| | question, but when does the sms.sh run? Will it be called from ./smsbox or
| | ./bearerbox and do I need to modify my .conf-file?
| |
| |
| | Re.2)
| | I modified my .conf-file (get-url) and tried browsing to
| | http://127.0.0.1/receive_sms?from=%q&date=%t&text=%a but I think I have to
| | struggle with my AT command list / init... I don't think I have the exact
| | right init-list...
| |
| | If anyone has any comments, here's my config-file...
| |
| |
| | ====================
| |
| | group = core
| | admin-port = 13000
| | smsbox-port = 13001
| | admin-password = bar
| | #status-password = foo
| | #admin-deny-ip = ""
| | #admin-allow-ip = ""
| | #log-file = "/tmp/kannel.log"
| | #log-level = 0
| | box-deny-ip = "*.*.*.*"
| | box-allow-ip = "127.0.0.1"
| | #unified-prefix = "+358,00358,0;+,00"
| | #access-log = "/tmp/access.log"
| | #store-file = "/tmp/kannel.store"
| | #ssl-server-cert-file = "cert.pem"
| | #ssl-server-key-file = "key.pem"
| | #ssl-certkey-file = "mycertandprivkeyfile.pem"
| |
| | group = modems
| | id = ericsson
| | name = "Sony Ericsson "
| | detect-string = "K700"
| | # AT+CMEE=1 gives extra error information!
| | #
| | # use this init-string for non sim-buffering
| | #init-string = "AT+CNMI=3,2,0,0;+CMEE=1"
| | # use this init-string for sim-buffering
| | init-string = "AT+CNMI=2,3,0,1,0;+CMEE=1"
| | keepalive-cmd = AT+CSQ
| | reset-string = ATZ
| | message-storage = ME
| | broken = true
| |
| | group = smsc
| | smsc = at
| | modemtype = ericsson
| | device = /dev/cu.MartinsPhone-SerialPort2
| | log-level = 0
| | log-file = "MJ_log_DELETE_THIS.txt"
| | #speed = 9600
| | #validityperiod = 167
| |
| | group = smsbox
| | bearerbox-host = 127.0.0.1
| | sendsms-port = 13013
| | global-sender = 13013
| | #sendsms-chars = "0123456789 +-"
| | #log-file = "/tmp/smsbox.log"
| | #log-level = 0
| | #access-log = "/tmp/access.log"
| |
| | group = sendsms-user
| | username = tester
| | password = foobar
| | #user-deny-ip = ""
| | #user-allow-ip = ""
| |
| | #group = sms-service
| | #keyword = nop
| | #text = "You asked nothing and I did it!"
| |
| | # There should be always a 'default' service. This service is used when no
| | # other 'sms-service' is applied.
| |
| | group = sms-service
| | keyword = default
| | #text = "No service specified"
| | get-url = http://127.0.0.1/receive_sms?from=%q&date=%t&text=%a
| |
| | ====================
| |
| |
| |
| | Regards,
| | Martin
| |
| |
| |
| | On Jun 6, 2010, at 5:51 PM, Thomas Sieh wrote:
| |
| | hi,
| |
| | if you want to receive messages you have to set up a sms-service in your
| | config. there are multiple ways. you can send the content via parameters
| | to a script (see exec) or to an url, for example (get-url). the content
| | of the message is accessible by the parameters like %b for full binary
| | message, %p for the sender-number... (see documentation).
| | two very simple examples:
| | 1.
| |  exec = /home/thomas/sms.sh %q %Q %t %u %a %b
| |
| |  sms.sh:
| |    #!/bin/bash
| |
| |    for var in $@; do
| |      echo "$var" | tee -a /home/goofy/sms_message.txt
| |    done
| |    echo "-----------------------" | tee -a /home/thomas/sms_message.txt
| |
| | 2.
| |  get-url = http://127.0.0.1/receive_sms?from=%q&date=%t&text=%a
| |
| |  http://127.0.0.1/receive_sms:
| |
| |  <?php
| |    $from = $_GET['from'];
| |    $date = $_GET['date'];
| | $text = $_GET['text'];
| | echo "The message - From: ".$from.", Date: ".$date.", Text:
| ".$text."\r\n";
| |
| |
| | For sending sms in a script you can use lynx -dump ... for example or
| | the GET and POST commands.
| | For example:
| | lynx -dump "
| |
| 
http://localhost:13013/cgi-bin/sendsms?username=tester&password=foobar&to=30957095&text=insert+you+text+here
| | "
| | your sending string should be inside a loop over an array with the
| | destination addresses.
| |
| |
| | BR,
| | Thomas
| |
| |
| | On Sun, Jun 06, 2010 at 05:04:08PM +0200, Martin J. wrote:
| | | Hi,
| | |
| | | I have a newbie question: I just started to use Kannel and successfully
| | made
| | | this work:
| | |
| | | ./bearerbox -v 1 sms_GATEWAY_k700i.conf
| | | ./smsbox sms_GATEWAY_k700i.conf
| | |
| |
| 
http://localhost:13013/cgi-bin/sendsms?username=tester&password=foobar&to=30957095&text=(insertyou
| | | text here)
| | |
| | | So, I can send sms'es... Still haven't figured out how to receive them
| | yet,
| | | however... My question is this: I'm volunteer in an organization and we
| | | talked about the possibility of having this kannel-software send out
| mass
| | | sms'es to multiple recipients... However, I don't want to type each sms
| | | message in the browser bar... I don't know much about http
| | | send/get/receive/whatever so I hoped I could just send sms'es from the
| | | terminal/console under Mac os X....
| | |
| | | How to send sms'es from terminal, so I can make a script to send same
| | | message to multiple sms recipients?
| | |
| | |
| | | Thanks...

Attachment: signature.asc
Description: Digital signature

Reply via email to