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

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

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

 

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

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

接下来遇到的是mms

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值