共2条
1/1 1 跳转至页
GPRS 遇到GPRS开发的一个技术问题,一筹莫展
问
我用单片机+GPRS模块实现彩信的发送。
目前已经做好的部分有,PPP协议和TCP/IP协议。
我也按照MMS封装规范做了一个数据包。
但是不知道怎么发送,该往哪里发送?查了移动给的手机设置的相关参数。
数据承载方式GPRS,
接入点名称cmwap,
用户名无,
提示输入密码无,
密码无,
鉴定普通,
主页<http://mmsc.monternet.com>,
高级设置:
手机IP地址自动,
主域名服务器0.0.0.0,
次域名服务器0.0.0.0,
代理服务器10.0.0.172,
代理端口80
是不是说我在单片机上实现也是类似的呢。彩信照理说也是基于TCP
基础上传送。为什么我与10.0.0.172建立SOCKET就是不行呢 答 1: MMS是由GPRS承载的业务属应用层,不能用GPRS的传输方法来硬套。 答 2: 应用层也要基于低层协议来传送吧MMS是基于WAP中的WSP协议部分,大致就是讲数据封装。
但是低层数据传输不是TCP/IP和PPP吗?那我该怎样发送呢。
请指点个大概方向也好啊
答 3: 你的封包还要符合MMS规范才行对MMS而言,TCP/IP并非“透明”的。 答 4: MMS包是严格按照封装规范来的有点不是很清楚,所谓透明和非透明是什么意思啊? 答 5: 中间还有别的协议层?MMS over HTTP over TCP/IP over GPRS/CDMA
是不是这样说的呢?
答 6: mms不是使用tcp/ip协议的mms协议-wap协议-ppp协议-gprs链路
是这样的一个层次的。 答 7: 你说的很不一样哦不知道该听谁的。
请问大哥做过相关项目吗? 答 8: jfong81说的正确MMS之所以复杂是因为其是一项应用层的“业务”,其虽然也是基于同样的物理层和传输层,但仅有底层是无法工作的。举个例子就像PC平台上的应用编程基于DOS核和基于Windows是截然不同的,不能因为Windows是构架在DOS基础上的就拿DOS的方法来进行Windows编程,而在PC平台上的BIOS级编程又是另一个概念了。 答 9: 一个无线帮主跟我说的是这样WTP / WSP ? 是包含在MMS里面了。
MMS根本和WAP网关是两回事情。
MMS完全可以绕开WAP网关。就是封装沾了点WAP的边。
MMS发送有两种方式。 一种走GPRS,另外一种走MMS Indication。
http://mmsc.monternet.com:9201 9201是WAP端口。
MMS和WAP的实际物理关系并不是很密切。
MMS = WAP Push + HTTP over GPRS
MMS不需要通过WAP网关。
答 10: 换个id回来继续讨论建议golden集中在一个帖子里讨论吧。
9201是wap网关10.0.0.172的端口,切记。 答 11: 绕开WAP网关绕开的话 也就是说10.0.0.172:9021 根本不用设置
是不是HTTP连接MMSC直接发送MMS? 走HTTP怎么发? 答 12: 有两个软件可以帮助你很好地理解mms的发送过程一个是nowsms/mms,这是一个短信、彩信网关程序,有试用版,通过它你可以在pc上收发彩信(gprs模块要接上,嘿嘿);
另一个是ethereal,一个类似与sniffer的网络抓包分析程序,它的优点是能够解析wap协议和mms的协议。
你通过这两个软件,就看清楚在一个彩信的发送过程和接收过程的底层是怎么样的,会让你的概念比较清晰。
我只是在pc上实现了彩信收发,而且是用java的程序,c的源码我还没有发现。对你在单片机上的实现直接帮助不大。如果你实现了,还请你多多指教。 答 13: nowMMS 我下了 但是不方便用但是因为GPRS是连在板子上,所以不太好用了。
MMS封装不是很大的问题,我主要是不清楚走的是哪些协议层。
有位大哥说的和我看的资料不一样,而且拒了解。通常的发送流程都是
MMS==》HTTP==》TCP/IP==》GPRS
我现在不是很明白的是,这个走HTTP是怎么个过程。对方地址和端口又是什么?
还请dr.prajna指点。 答 14: 我的实现流程是这样,http直接连接mmsc估计不可能我们可以将彩信中心认为是一个有公网IP的服务器,可以通过http去访问。
但是事实上,移动运营商是不可能将他们的服务器暴露在公网下面的,试图用http直接连接mmsc可以说是不可能的。
手机收发彩信的过程是这样的:
(1)发送过程
a. 使用gprs拨通ppp服务器,完成身份鉴定,由服务器分配ip,如果是cmnet接入,ip段应该是10.99.*.*;cmwap则是10.100.*.*,登录成功;
b. 使用wap协议向wap网关10.0.0.172:9201发出一个connect数据报(0x01),使用的协议层次从高到低为:
WSP (无线会话协议)
WTP (无线传输协议)
UDP (大家都知道的啦,本来应该是无线数据报协议WDP,可能类似吧)
IP (地球人都知道)
然后wap网关会返回一个connectreply的数据包(0x02),相同的封装层次;
c. 向wap网关发一个MMS m-send-req的数据包,里面封装了彩信内容,这个数据报的协议层次为:
MMS Message Encapsulation
WSP (以下的相同)
然后wap网关返回一个MMS m-send-conf数据包,里面包含了mmsc给这个彩信分配的message-id等信息。
d. 断开wap网关的连接。
(2)接收过程
a. 首先接收一条wap push短信,里面包含了取彩信的地址,也就是URI信息,如:http:/218.200.246.125/wPeIhrueaaebh
b. 连接wap网关的过程与发送时相同;
c. 向wap网关发送一个WSP GET数据包(0x40),里面包含了URI信息;
d. wap网关返回MMS m-retrieve-conf数据包,封装了彩信内容。
e. 断开wap网关连接
从这两个过程可以看到,我们需要完成的工作是实现和wap网关的连接,要使用的协议是wap协议,经过wap网关之后,网关会自动将我们的wap协议转换为tcp协议与mmsc连接。
我的做法是这样,不知道还有没有其他实现方法,欢迎讨论。
目前已经做好的部分有,PPP协议和TCP/IP协议。
我也按照MMS封装规范做了一个数据包。
但是不知道怎么发送,该往哪里发送?查了移动给的手机设置的相关参数。
数据承载方式GPRS,
接入点名称cmwap,
用户名无,
提示输入密码无,
密码无,
鉴定普通,
主页<http://mmsc.monternet.com>,
高级设置:
手机IP地址自动,
主域名服务器0.0.0.0,
次域名服务器0.0.0.0,
代理服务器10.0.0.172,
代理端口80
是不是说我在单片机上实现也是类似的呢。彩信照理说也是基于TCP
基础上传送。为什么我与10.0.0.172建立SOCKET就是不行呢 答 1: MMS是由GPRS承载的业务属应用层,不能用GPRS的传输方法来硬套。 答 2: 应用层也要基于低层协议来传送吧MMS是基于WAP中的WSP协议部分,大致就是讲数据封装。
但是低层数据传输不是TCP/IP和PPP吗?那我该怎样发送呢。
请指点个大概方向也好啊
答 3: 你的封包还要符合MMS规范才行对MMS而言,TCP/IP并非“透明”的。 答 4: MMS包是严格按照封装规范来的有点不是很清楚,所谓透明和非透明是什么意思啊? 答 5: 中间还有别的协议层?MMS over HTTP over TCP/IP over GPRS/CDMA
是不是这样说的呢?
答 6: mms不是使用tcp/ip协议的mms协议-wap协议-ppp协议-gprs链路
是这样的一个层次的。 答 7: 你说的很不一样哦不知道该听谁的。
请问大哥做过相关项目吗? 答 8: jfong81说的正确MMS之所以复杂是因为其是一项应用层的“业务”,其虽然也是基于同样的物理层和传输层,但仅有底层是无法工作的。举个例子就像PC平台上的应用编程基于DOS核和基于Windows是截然不同的,不能因为Windows是构架在DOS基础上的就拿DOS的方法来进行Windows编程,而在PC平台上的BIOS级编程又是另一个概念了。 答 9: 一个无线帮主跟我说的是这样WTP / WSP ? 是包含在MMS里面了。
MMS根本和WAP网关是两回事情。
MMS完全可以绕开WAP网关。就是封装沾了点WAP的边。
MMS发送有两种方式。 一种走GPRS,另外一种走MMS Indication。
http://mmsc.monternet.com:9201 9201是WAP端口。
MMS和WAP的实际物理关系并不是很密切。
MMS = WAP Push + HTTP over GPRS
MMS不需要通过WAP网关。
答 10: 换个id回来继续讨论建议golden集中在一个帖子里讨论吧。
9201是wap网关10.0.0.172的端口,切记。 答 11: 绕开WAP网关绕开的话 也就是说10.0.0.172:9021 根本不用设置
是不是HTTP连接MMSC直接发送MMS? 走HTTP怎么发? 答 12: 有两个软件可以帮助你很好地理解mms的发送过程一个是nowsms/mms,这是一个短信、彩信网关程序,有试用版,通过它你可以在pc上收发彩信(gprs模块要接上,嘿嘿);
另一个是ethereal,一个类似与sniffer的网络抓包分析程序,它的优点是能够解析wap协议和mms的协议。
你通过这两个软件,就看清楚在一个彩信的发送过程和接收过程的底层是怎么样的,会让你的概念比较清晰。
我只是在pc上实现了彩信收发,而且是用java的程序,c的源码我还没有发现。对你在单片机上的实现直接帮助不大。如果你实现了,还请你多多指教。 答 13: nowMMS 我下了 但是不方便用但是因为GPRS是连在板子上,所以不太好用了。
MMS封装不是很大的问题,我主要是不清楚走的是哪些协议层。
有位大哥说的和我看的资料不一样,而且拒了解。通常的发送流程都是
MMS==》HTTP==》TCP/IP==》GPRS
我现在不是很明白的是,这个走HTTP是怎么个过程。对方地址和端口又是什么?
还请dr.prajna指点。 答 14: 我的实现流程是这样,http直接连接mmsc估计不可能我们可以将彩信中心认为是一个有公网IP的服务器,可以通过http去访问。
但是事实上,移动运营商是不可能将他们的服务器暴露在公网下面的,试图用http直接连接mmsc可以说是不可能的。
手机收发彩信的过程是这样的:
(1)发送过程
a. 使用gprs拨通ppp服务器,完成身份鉴定,由服务器分配ip,如果是cmnet接入,ip段应该是10.99.*.*;cmwap则是10.100.*.*,登录成功;
b. 使用wap协议向wap网关10.0.0.172:9201发出一个connect数据报(0x01),使用的协议层次从高到低为:
WSP (无线会话协议)
WTP (无线传输协议)
UDP (大家都知道的啦,本来应该是无线数据报协议WDP,可能类似吧)
IP (地球人都知道)
然后wap网关会返回一个connectreply的数据包(0x02),相同的封装层次;
c. 向wap网关发一个MMS m-send-req的数据包,里面封装了彩信内容,这个数据报的协议层次为:
MMS Message Encapsulation
WSP (以下的相同)
然后wap网关返回一个MMS m-send-conf数据包,里面包含了mmsc给这个彩信分配的message-id等信息。
d. 断开wap网关的连接。
(2)接收过程
a. 首先接收一条wap push短信,里面包含了取彩信的地址,也就是URI信息,如:http:/218.200.246.125/wPeIhrueaaebh
b. 连接wap网关的过程与发送时相同;
c. 向wap网关发送一个WSP GET数据包(0x40),里面包含了URI信息;
d. wap网关返回MMS m-retrieve-conf数据包,封装了彩信内容。
e. 断开wap网关连接
从这两个过程可以看到,我们需要完成的工作是实现和wap网关的连接,要使用的协议是wap协议,经过wap网关之后,网关会自动将我们的wap协议转换为tcp协议与mmsc连接。
我的做法是这样,不知道还有没有其他实现方法,欢迎讨论。
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 | |
【分享评测,赢取加热台】使用8051单片机驱动WS2812被打赏40分 |