GPRS 彩信发送

来源:互联网 发布:网络公益众筹 编辑:程序博客网 时间:2024/05/17 01:06
上个月总算弄明白了彩信发送了,在此先感谢以为给予很大帮助的网友,以及其他热心的网友。

我的主要步骤是:  
 生成m_send.req的PDU  
 建立GPRS连接  
 建立和移动彩信网关的TCP连接(接入点:“cmwap”网址:10.0.0.172:80)  
 使用http的post方式把m-send.req发送给移动网关    

m-send.req可以参考OMA-MMS-ENC-V1_2-20030915-C.pdf。MMS PUD在wap-206中定义,也可以看NOKIA的《How to Create MMS Services》不过里面只有m-send.req的简单的PDU。详细信息可以去OMA论坛下载相关文档。  

 建立TCP连接,我使用的是SIMCOM的SIM300模块,原本打算利用它自带的TCP/IP协议栈的,但是和移动的彩信网关连不上(我猜测可能是移动对设备进行了识别,禁止了我这么做。因为WAP2.0技术本身就是基于TCP/IP技术的,而且移动网内两个自己的网络接入终端是可以实现TCP直接连接的)。后来发现如果先和移动网关建立PPP连接再进行TCP连接是可以连上的,Linux下可以使用ppp程序,具体可以查询Linux下GPRS上网的相关文档。我尝试用SIM300的“ATD*99***1#”命令拨号,后显示乱码,最后“NO CARRIER”。应该是SIM300没有内嵌PPP协议栈(但我不明白为什么还要提供这个命令),西门子的MC55好像内置了PPP协议,具体情况请谘询使用者。

下面提供一个http的post的头,是我把手机发送出的TCP数据截取下来的。  POST http://mmsc.monternet.com HTTP/1.1
Accept: image/png, image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
Host: mmsc.monternet.com
Pragma: no-cache
Cache-Control: no-cache
Proxy-Connection: Keep-Alive
Accept-Encoding: deflate, gzip
Content-Type:application/vnd.wap.mms-message
User-Agent: SAMSUNG-SGH-E908/NetFront 3.2/WAP2.0 Profile/MIDP-2.0
Configuration/CLDC-1.1
Accept: application/vnd.wap.mms-message, image/vnd.wap.wbmp, image/png, image/jpeg, image/gif, text/x-iMelody, text/x-imelody, application/x-midi, audio/midi, audio/mid, audio/x-mid, image/bmp, audio/mp3, audio/x-midi, audio/amr, application/vnd.smaf, application/vnd.wap.mms-message x-wap-profile:http://wap.samsungmobile.com/uaprof/e908_10.xmlContent-Length: 411
原创粉丝点击