2012-09-20 72 views
14

我們運行遠程系統,並希望服務器能夠通過SMS向我們通報他們的狀態。是否可以設置我們自己的短信網關(或我們自己的GSM網絡),所以我們不必支付的短信提供商?構建自己的SMS網關

這可能嗎?如果是這樣,請讓我們知道什麼是所需的硬件和我們如何開始..

我敢肯定這是可能的,因爲當運營商A想發送短信給運營商乙,它不支付任何分給運營商B.還有,噸的在線服務,如:Atompark.com,clickatell,...等

請注意:我們知道如何建立一個短信網關使用Linux系統,調制解調器GSM和一個有效的SIM卡,但我們正在尋找一種方式,我們不必支付任何分錢發送短信...

+1

不要氣餒,它毫無疑問是一個巨無霸的任務,GSM短信是如此古老的學校,現在有一天人們連接到互聯網,你爲什麼不拿出你自己的消息協議,並打開來源,所以實施者的Android和IOS可以實現這一點,通過互聯網發送您的消息,(這已經由電報人員完成)。的人沒有互聯網或消息沒有在5秒內交付切換回到付費短信服務,在適當的過程中,越來越多的人將切換,你會踢在堅果麻袋一萬億美元的業務。 – user2067797

回答

2

除了任何運營商提供的電子郵件到SMS系統沒有「免費」的方式來做這個。

一個想發短信給運營商B,但不支付任何一分錢給 運營商B

這是一個事實,即B就不會賠的消息將在平衡另一個方向。國際上他們經常支付短信互連費用。

...建立我們自己的短信網關

是的,但你需要訪問SMSC GSM網絡,以直接或者通過與SIM設備發送的郵件上,那是什麼你支付。

還是我們自己的GSM網絡

實際上不,沒有。

+0

我們可以擁有一個小型私人GSM網絡的SMSC嗎?如果沒有,我們可以有一個自己的系統免費發送短信給其他運營商? –

+0

一個「私人」的GSM網絡只能用於一個小的本地區域,並且很少有用 –

+0

但是我怎樣才能像Atompark.com或clickatell一樣發送短信(免費)或者像任何免費的在線服務? –

2

儘管沒有免費的方式發送正確的短信,但最好爲服務器購買GSM模塊(機架中的usb並不理想,但應該有適當的hw擴展總線)。你會查詢模塊本身,而不是依靠第三方中間服務器來發送這些消息,節省了一大筆錢。

儘管我本身並沒有意識到這一點,但是我創建了這個計劃來發送我的服務的短信。這是迄今爲止最便宜的選擇。

15

這裏是它如何工作

>>>轉發匯聚>>>短信聚合>>>手機運營商>>>移動公司>>>你的客戶

3主要締約方參與整個過程:

1。移動運營商:他們管理SMSC(短消息服務中心)。 T,Sprint/NEXTEL,T-Mobile USA,U.S.Cellular和Verizon Wireless幾乎都是全球主要的移動運營商。他們與所有主要的手機公司有着深厚的聯繫。他們中的大多數人擁有800到950個電信/移動公司。你的所有消息都通過SMS Aggregators發送給他們,並將他們轉發給接收者的移動公司,並最終將其發送給接收者。

成爲移動運營商的成本:億美元的業務,如果不是萬億。

2. SMS聚合器: mBlox,air2web和motricity很少。他們與移動運營商有着深厚的關係。

成本成爲短信聚合:在百萬

3.轉發聚合器/ SMS網關:的Clickate,Twilio和esendex和其他幾所提供短信網關API和大部分的開發者使用的Clickate到將其SMS API與他們的應用程序集成。他們針對不同的國家收取不同的費率(所有國家都沒有固定費率)。對於100,000條消息(國際),您花費大約600到700美元。

成本成爲轉發聚合:可能是在數以百萬計

底線: 我工作的一個免費的解決方案,但直到今天也有在整個世界上沒有免費的可靠的解決方案,以批量發送免費國際郵件。所以,不要浪費你的時間尋找一個免費的解決方案。你必須想出一個新的技術來實現這一點。

雖然有很多選擇可以免費或花很少的錢在您的國家內發送批量消息,但如果您計劃在國際上發送消息,則無法實現此目的。

我通常避免在任何論壇添加評論,但這個男人真的逼我把我的腿在這裏是什麼,他說:「?大家可以自己用一個小型的私人GSM網絡的SMSC

+1

那麼反過來呢?是否有免費的,可靠的,用於非國內(美國)短信的SMS網關,可以通過機器訪問(不適合人性化的網站)。 –

2

你可以使用樹莓派或橙色pi與Dongle.Then我們可以使用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 

我們可以用「記錄器「,如果你想爲短信網關創建一個記錄器文件。如果你想發送未讀消息給api,我們可以使用」req uest「模塊。

+0

這是五年前問的。現在你的答案有什麼價值? – Webdesigner

+0

但仍然有人會有同樣的問題,並會尋找答案。我對嗎? –

+0

是的,如果你認爲你的答案爲這個問題提供了一些額外的價值,這當然是可能的。但你的回答很一般。如果我有PI和Dongel,我該怎麼做?細節在哪裏?需要什麼軟件/配置?向我們展示代碼!您的解決方案有哪些可能的限制和/或先決條件? – Webdesigner