用oFono收发短信

收发短信是oFono所支持的一项基本功能。用phonesim也可以模拟短信的收发。oFono本身不会保存短信,而是希望第三方plugin如sms history来把短信保存到sim卡或者SD卡上。

1. 启动oFono并power on modem。

2. ./ofono/test/receive-sms 用来监听是否有新的短信

3. 通过send-sms脚本可以发短信。比如

xxx@xxx:~/ofono/test$ ./send-sms 135xxxxxxxx "Hello World"

从oFono console log中可以看到短信发送的全过程。它会把短信encode成PDU格式,用AT+CMGS发送出去。你还可以设置短信delivery report来确认短信是否真正发送出去了。

ofonod[3372]: src/sms.c:sms_send_message() ref: 0, offset: 0
ofonod[3372]: src/sms.c:tx_queue_entry_new() pdu_len: 25, tpdu_len: 24
ofonod[3372]: Sending SMS on modem: 0x9009680
ofonod[3372]: InternalMessageId: 2
ofonod[3372]: To: 1xxxxxxxxxx:
ofonod[3372]: Local Time: 2010-09-17T10:23:12+0800
ofonod[3372]: Text: Hello World
ofonod[3372]: Pcui:< /r/n^MODE:3,3/r/n
...
ofonod[3372]: Pcui:> AT+CMGS=24/r
ofonod[3372]: Pcui:< /r/n>
ofonod[3372]: Pcui:> 0031000B813165646315F50000A70BC8329BFD065DDF723619
ofonod[3372]: Pcui:< /r/n
ofonod[3372]: Pcui:< /r/n^MODE:3,3/r/n
ofonod[3372]: Pcui:< /r/n+CMGS: 5/r/n/r/nOK/r/n
ofonod[3372]: drivers/atmodem/sms.c:at_cmgs_cb() Got MR: 5
ofonod[3372]: src/sms.c:tx_finished() tx_finished
ofonod[3372]: SMS 2 submitted successfully
ofonod[3372]: Submission Time: 2010-09-17T10:23:53+0800
ofonod[3372]: Pcui:> AT+COPS=3,0/r
ofonod[3372]: Pcui:< /r/nOK/r/n
ofonod[3372]: Pcui:> AT+COPS?/r
ofonod[3372]: Pcui:< /r/n+COPS: 0,0,"CHINA  MOBILE",0/r/n/r/nOK/r/n
ofonod[3372]: drivers/atmodem/network-registration.c:cops_cb() cops_cb: CHINA  MOBILE, 460 00 0
ofonod[3372]: src/network.c:current_operator_callback() 0x9009da8, 0x900d438
ofonod[3372]: Pcui:< /r/n^MODE:3,3/r/n
ofonod[3372]: Pcui:< /r/n+CDS: 26/r/n0891683108200105F006040D91683165646315F5019071013284230190710132802300/r/n
ofonod[3372]: drivers/atmodem/sms.c:at_cds_notify() Got new Status-Report PDU via CDS: 0891683108200105F006040D91683165646315F5019071013284230190710132802300, 26
ofonod[3372]: src/sms.c:ofono_sms_status_notify() len 35 tpdu len 26
ofonod[3372]: src/sms.c:handle_sms_status_report()

4. 哈,我收到了来自oFono的Hello World,于是我从手机上回复了。oFono很快收到了我的回复。

ofonod[3372]: Pcui:< /r/n+CMTI: "ME",0/r/n
ofonod[3372]: drivers/atmodem/sms.c:at_cmti_notify() Got a CMTI indication at ME, index: 0
ofonod[3372]: Pcui:> AT+CMGR=0/r
ofonod[3372]: Pcui:< /r/n+CMGR: 0,,34/r/n0891683108200105F0240D91683165646315F50000019071016265230F5474D8BD9EBB8E6F3A28FFAE8700/r/n/r/nOK/r/n
ofonod[3372]: drivers/atmodem/sms.c:at_cmgr_notify()
ofonod[3372]: drivers/atmodem/sms.c:at_cmgr_notify() Got PDU: 0891683108200105F0240D91683165646315F50000019071016265230F5474D8BD9EBB8E6F3A28FFAE8700, with len: 34
ofonod[3372]: src/sms.c:ofono_sms_deliver_notify() len 43 tpdu len 34
ofonod[3372]: src/sms.c:handle_deliver()
ofonod[3372]: src/sms.c:sms_dispatch()
ofonod[3372]: Incoming SMS on modem: 0x9009680
ofonod[3372]: InternalMessageId: 3
ofonod[3372]: From: +861xxxxxxxxxx
ofonod[3372]: Local Sent Time: 2010-09-17T10:26:56+0800
ofonod[3372]: Remote Sent Time: 2010-09-17T10:26:56+0800
ofonod[3372]: Text: Thanks.Got you!
ofonod[3372]: Pcui:> AT+CMGD=0/r
ofonod[3372]: Pcui:< /r/nOK/r/n

xxx@xxx:~/ofono/test$ ./receive-sms
Thanks.Got you!
    LocalSentTime = 2010-09-17T10:26:56+0800
    SentTime = 2010-09-17T10:26:56+0800
    Sender = +861xxxxxxxxxx

怎么样,是不是很简单?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值