使用Asterisk接收彩信(四):自己写彩信网关

本文介绍了如何通过自建彩信网关接收彩信的思路,涉及在服务器上设置socket监听,将手机彩信网关设置为服务器地址,解析彩信数据包的详细过程,包括HTTP请求、MMS头、Part部分的解析方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上篇文章从接收彩信的角度出发貌似已经走入死胡同了,换一个思路,既然彩信发送实质是向手机上设置的彩信网关发一个含有Post信息的http请求包,那么我们就可以从发送的角度入手,自己写一个彩信网关,然后再把手机的彩信网关设置成自己的网关,服务器就能接收到彩信了,当然前提是你的服务器需要有一个公网的IP。

按着这个思路,我在服务器上建立了一个socket,监听41237端口,然后在手机上把彩信网关、代理全都设置成服务器地址,用手机发送彩信,果然服务器接收到了彩信数据,用hexdump看一下,截图如下:

 

接收到彩信之后,接下来就是一个彩信内容解码问题,根据抓包分析以及查阅相关文档,在经历了一个很痛苦的过程之后,总算写好了彩信内容的解析器,大概的解析思路是这样的。(详细过程可以看http://www.cnblogs.com/mlog/archive/2011/01/16/2456362.html以及http://blog.youkuaiyun.com/linxuliang/article/details/6675953,我只给出大概)。

当socket流读入的时候,首先遇到的是http请求,http请求分为多行,每行都以/r/n也就是16进制的0x0d和0x0a结尾,当遇到两个连续的/r/n的时候,http头部分结束。

接下来遇到的是mms头,mms头包含这个mms的一些基本信息,这些基本信息如下表:

域名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值