建立自己的SMS网关

عبد*_*اوي 25 sms gateway

我们运行远程系统,希望服务器能够通过短信提醒我们他们的状态.是否可以设置我们自己的SMS网关(或我们自己的GSM网络),所以我们不必支付短信服务提供商的费用?

这可能吗?如果是这样,请告诉我们所需的硬件是什么以及我们如何开始...

我确信这是可能的,因为当运营商A想要向运营商B发送短信时,它不会向运营商B支付任何费用.此外,还有大量的在线服务,如:Atompark.com,clickatell, ...等等

请注意:我们知道如何使用Linux系统,调制解调器GSM和有效的SIM建立短信网关,但我们正在寻找一种方式,我们不必支付任何分钱发送短信息...

小智 26

这是它的工作原理

>>>转发聚合器>>> SMS聚合器>>>移动运营商>>>移动公司>>>您的客户

3个主要缔约方参与了整个过程:

1.移动运营商:他们管理SMSC(短消息服务中心).AT&T,Sprint/NEXTEL,T-Mobile USA,USCellular和Verizon Wireless是全球主要的移动运营商.他们与所有主要的移动电话公司有着深厚的联系.他们中的大多数都拥有800到950家电信/移动公司.您通过SMS聚合器向他们发送了所有消息,并将它们转发给接收方的移动公司,后者最终将其发送给接收方.

成为移动运营商的成本:如果不是万亿,那么十亿美元的业务.

2. SMS聚合器: mBlox,air2web和motricity很少.他们与移动运营商有着深厚的联系.

成为SMS聚合器的成本:以百万计

3.转发聚合器/ SMS网关: Clickatell,Twilio和esendex以及其他一些提供SMS Gateway API的人,大多数开发人员正在使用Clickatell将其SMS API与他们的应用程序集成.他们针对不同的国家收取不同的费率(所有国家/地区都没有固定费率).对于100,000条消息(国际),它会花费大约600-700美元.

成为转发聚合器的成本:可能是数百万

一句话: 我正在开发一个免费的解决方案,但直到今天,全世界还没有免费的可靠解决方案可以免费在国际上发送批量信息.所以不要浪费你的时间寻找一个免费的解决方案.你必须想出一项新技术才能实现这一目标.

虽然有很多选项可以在您所在的国家/地区免费发送批量邮件,或者花费很少的钱,但如果您计划在国际范围内发送邮件,则无法实现此目的.

通常我会避免在任何论坛中添加评论,但这个人真的强迫我把我的腿放进去.这是他评论的内容:" 我们可以拥有一个带有小型私有GSM网络的SMSC吗? "

  • 所以基本上你是在说“Big Global Telecom 垄断了这种喧嚣,除非你是一个大玩家,否则别管它!” 对? (3认同)
  • 那相反呢?是否有可通过机器访问的非批量国内(美国)SMS免费,可靠的SMS网关(不是人类友好的网站)。 (2认同)

Sac*_*ana 7

您可以使用带有Dongle的树莓派或橙色pi.然后我们可以使用AT命令.

我们可以使用此命令连接加密狗并检查它是否以正确模式连接.

sudo lsusb 
Run Code Online (Sandbox Code Playgroud)

然后我们可以使用python代码执行AT命令..

发送短信我们可以使用此代码

def sendsms(number,text):
    ser.flushInput()
    ser.flushOutput()
    ser.write('AT+CMGF=1\r\n')
    sleep(1)
    ser.write('AT+CMGS="%s"\r\n' % number)
    sleep(1)
    ser.write('%s' % text)
    sleep(1)
    ser.write(ascii.ctrl('z'))
    sleep(1)
    ser.flushInput()
    ser.flushOutput()
    print "Text: %s  \nhas been sent to: %s" %(text,number)
Run Code Online (Sandbox Code Playgroud)

阅读未读短信

def read_unread_sms():
ser.write('AT+CMGF=1\r\n')
sleep(2)
ser.write('AT+CMGL="ALL"\r\n')
sleep(5)
a = ser.readlines()
z=[]
y=[]
for x in a:
    if x.startswith('+CMGL:'):
        r=a.index(x)
        t=r+1
        z.append(r)
        z.append(t)
for x in z:
    y.append(a[x])
##Following line changed modem back to PDU mode
ser.write('AT+CMGF=0\r\n')
return y 
Run Code Online (Sandbox Code Playgroud)

如果你想为sms网关创建一个记录器文件,我们可以使用"logger".如果你想将未读消息发送到api,我们可以使用"request"模块.

  • 是的,如果您认为您的答案为问题提供了一些额外的价值,那么这当然是可能的.但你的答案非常笼统.如果我有PI和Dongel,我该怎么办?细节在哪里?需要什么软件/配置?告诉我们代码!您的解决方案有哪些可能的限制和/或先决条件? (2认同)
  • 请更新您的答案 (2认同)
  • OP特别询问“我们自己的短信网关”、“我们自己的GSM网络”、“所以我们不必为短信提供商付费”。即使[OP实际上并不是这个意思](http://www.google.com/search?q=xy+problem),鉴于**,这仍然看起来像是对所述问题的公然不回答。任何可与树莓派一起使用的“加密狗”都只是现有蜂窝网络**的 GSM 客户端,而不是特权 SMSC 对等体。我错过了什么吗? (2认同)

Ale*_* K. 6

除了任何运营商提供的电子邮件到短信系统之外,没有"免费"的方式来做到这一点.

想要向运营商B发送短信,它不向运营商B支付任何分钱

这是因为B不会向另一个方向的消息支付A. 在国际上他们经常支付短信费互连.

...设置我们自己的短信网关

是的,但您需要访问GSM网络上的SMSC才能直接或通过带有SIM卡的设备发送消息,这就是您所支付的费用.

或者我们自己的GSM网络

不实际,不是.


Mik*_*ite 5

虽然没有免费的方法来发送正确的短信,但您最好为服务器购买 GSM 模块(机架中的 USB 不是理想的选择,但应该有适当的硬件扩展总线)。您可以查询模块本身,而不是依赖第三方中间服务器来发送这些消息,从而节省大量资金。

尽管我本身还没有意识到这一点,但我创建了这个为我的服务发送短信的计划。这是迄今为止最便宜的选择。