【问题标题】:Build an own SMS Gateway [closed]建立自己的短信网关[关闭]
【发布时间】:2012-09-12 17:27:45
【问题描述】:

我们运行一个远程系统,并希望服务器能够通过 SMS 提醒我们其状态。是否可以设置我们自己的 SMS 网关(或我们自己的 GSM 网络),以便我们不必为 SMS 提供商付费

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

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

请注意:我们知道如何使用 Linux 系统、调制解调器 GSM 和有效的 SIM 卡构建短信网关,但我们正在寻找一种无需为发送短信支付任何费用的方法......

【问题讨论】:

  • 不要气馁,这无疑是一项艰巨的任务,GSM 短信是如此古老,现在人们都连接到互联网,你为什么不想出一个消息协议你自己的和开源的,所以实现者在 android 和 IOS 上可以实现这个,通过 Internet 发送你的消息,(这已经由 Telegram 的人完成)。没有互联网或消息未在 5 秒内送达的人切换回付费 SMS 服务,在适当的过程中,越来越多的人将切换,您将在 Nut 麻袋中踢出价值万亿美元的业务。
  • 对于 IP 地址,anyone 可以遵循定义的流程来获取 ASN。这个问题要求在流程之后为成为移动运营商做同样的事情。怎么不“专注”?

标签: sms gateway


【解决方案1】:

工作原理如下

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

整个过程涉及3个主要方:

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

成为移动运营商的成本:如果不是万亿的话,也是十亿美元的业务。

2。 SMS 聚合器: mBlox、air2web 和 motricity 是其中的少数。他们与移动运营商有着深厚的联系。

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

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

成为转发聚合器的成本:可能以百万计

底线: 我正在研究一个免费的解决方案,但直到今天,全世界还没有免费可靠的解决方案可以在国际上免费发送大量消息。所以不要再浪费时间寻找免费的解决方案了。您必须想出一项新技术才能实现这一目标。

虽然有很多选项可以在您的国家/地区免费或花很少的钱发送批量消息,但如果您打算在国际上发送消息,您根本无法实现这一点。

【讨论】:

  • 那么相反呢?是否有用于非批量国内(美国)SMS 的免费、可靠的 SMS 网关,这些网关可供机器访问(不是人类友好的网站)。
  • 如果只在美国呢?那么有免费的解决方案吗?
  • 所以基本上你是在说“Big Global Telecom 垄断了这种喧嚣,除非你是大玩家,否则别管它!”对吗?
  • 我在这里同意@lacostenycoder;我也想知道 [并在发现的过程中来到这里] 成为 SMSC 对等体需要什么(这似乎是原始问题的核心。)
  • Billion Dollar Business if not Trillion 不太可行; (例如)对于 IP 空间有定义的协议来获取 ASN,random schmucks 一直都在这样做。那么,[美国]电话基础设施空间的必然过程是什么? (即使这些过程确实是不可逾越的,但它们肯定会在某处列出,不是吗?我什至 [尚未] 找到正确方向的指针 ; 更不用说对相关文件的实际引用......)
【解决方案2】:

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

A 想给运营商 B 发送一条短信,它不向运营商 B 支付任何费用 运营商B

这与 B 不会为向另一个方向发送的消息支付 A 的事实来平衡。在国际上,他们经常确实支付 SMS 互连费用。

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

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

或我们自己的 GSM 网络

实际上没有,不。

【讨论】:

  • 我们可以拥有一个带有小型专用 GSM 网络的 SMSC 吗?如果没有,我们可以有自己的系统免费向其他运营商发送短信?
  • “私有”gsm 网络只能在小范围内使用,很少有用
  • 但是我怎样才能像 Atompark.com 或 clickatell 或任何免费的在线服务一样发送短信(免费)?
  • 它们不是免费的,你付钱
【解决方案3】:

您可以将树莓派或橙色派与加密狗一起使用。然后我们可以使用 AT 命令。

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

sudo lsusb 

然后我们就可以用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)

阅读未读短信

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 

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

【讨论】:

  • 但是任何人都会有同样的问题并会寻找答案。我说的对吗?
  • 是的,如果您认为您的回答为问题提供了一些额外的价值,这当然是可能的。但是你的回答很笼统。如果我有 PI 和 Dongel,我该怎么做?细节在哪里?需要什么软件/配置?向我们展示代码!您的解决方案可能存在哪些限制和/或先决条件?
  • 请更新你的答案
  • 我更新了答案。感谢您提供建议以正确的方式做正确的事情。
  • OP 特地问了our own SMS gatewayour own GSM networkso we DO NOT have to pay for an SMS provider。即使OP didn't actually mean this,这似乎仍然是对上述问题的公然不回答,因为任何可与树莓派一起使用的“加密狗”都只是现有蜂窝网络的 GSM 客户端 ,而不是特权 SMSC 对等方。我错过了什么吗?
【解决方案4】:

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

虽然我本身并没有意识到这一点,但我为我的一项服务制定了发送短信的计划。这是迄今为止最便宜的选择。

【讨论】:

    猜你喜欢
    • 2013-12-30
    • 2016-09-12
    • 2011-02-04
    • 1970-01-01
    • 2010-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多