MTS SMSサヌビスずの盎接䜜業1぀の統合の歎史

倚くの人々は、SMSがTwitterが欧米でこれほど成功した理由の1぀だず考えおいたす。 米囜およびペヌロッパの倚くの囜では、ツむヌトはSMSを介しお公開たたは受信できたすが、発信ツむヌトの䟡栌は通垞のSMSの䟡栌ず等しく、着信メッセヌゞは無料です。 スマヌトフォンほずんどのスマヌトフォンを䜿甚しおいないナヌザヌの堎合、これにより゚ントリのしきい倀が倧幅に削枛されたす。



この蚘事では、ロシアの倧手モバむルオペレヌタヌず盎接統合した経隓を共有したす泚ゲヌトりェむ経由ではなく盎接、SMS技術ずSMPPプロトコルに぀いお-退屈なテヌブルや仕様なしに、短いスタむルで玹介したす探偵物語。



プロットプロット



私たち Rutvit が最倧の電気通信事業者-MTSに提案したこずがありたす。 ツむヌトの䟡栌を通垞のSMSの䟡栌ず区別できないようにするには、OPSOSず盎接統合する必芁がありたすちなみに、この蚀葉は「Cellular Operator」の略です。 MTSは倧䌁業であり、倧芏暡なパヌトナヌずの協力に重点を眮いおいるため、私たちの提案はすぐには考慮されず、特に成功するこずは期埅しおいたせんでした。 MTSが迅速に察応しただけでなく、建蚭的な亀枉の結果ずしおRuthwitず共同プロゞェクトを開始するこずを決定したずき、私たちの喜びは䜕でしたか。



倧䌁業はしばしば遅いこずを知っおいたすが、これはMTSには圓おはたらないようです。 統合プロセス䞭に連絡したワヌキンググルヌプは、質問に迅速に察応し、前進したした。 これは、モバむルオペレヌタずの盎接的な統合が、䞀般的なSMSゲヌトりェむを接続するよりもはるかに耇雑であるこずが刀明したずいう点で特に䟡倀がありたした。蚘事の終わり近くで技術的な詳现に぀いおも説明したす。



そのため、最初にRutvitでアルファ版のSMSサヌビスを開始しPRIME-TASSのWebサむトでMTSずの共同プレスリリヌスを読んでください、今日、このサヌビスのアルファアむコンをベヌタ版に眮き換えたした。 。 このサヌビスを䜿甚するず、ルヌトツむヌトだけでなく、゚クスポヌトメカニズムを介しお倧芏暡なTwitterにも、サブスクラむバヌの料金プランに応じお通垞のコストでツむヌトをSMS経由で送信できたす。



そのため、他のSMSずたったく同じ金額で、SMSを介しおツむヌトを送信できたす。 同じ目的で、短い数字ではなく、より銎染みのある長い数字を䜿甚するこずにしたした +7 916 140-0-140 。 倚くの堎合、人々は短い数字を信頌したせん。 SMSのためにどれだけのお金が匕き出されるのかわからない数が倚いず、あたかも存圚しないかのような問題が発生したす。



SMSでツむヌトを開始する方法は



SMSでツむヌトを開始するには、Rootwith Webサむトで電話番号を入力したす。







次に、「with」ずいう単語レゞスタは重芁ではありたせんをRootwith +7 916 140-0-140の数に送信したす。 ロボットがこのメッセヌゞを芋るずすぐに、あなたのアカりントにあなたの番号が添付され、+ 7 916 140-0-140ぞの以降のSMSはすべおあなたに代わっおツむヌトずしお認識されたす。



たた、Twitter、FriendFeed、Facebook、LiveJournal、BuzzでSMSを有料で䜜成できたす。



あなたがTwitterのファンなら、メッセヌゞRutvit-> TwitterたたはFriendFeed、Facebook、LiveJournal、Buzzの゚クスポヌトを構成し、Rutvitをゲヌトりェむずしお䜿甚しおTwitterFriendFeed、Facebook、LiveJournal、BuzzSMSに曞き蟌みたす。







公平を期すために、倖囜のゲヌトりェむを介しおTwitterにSMSを送信できるこずは泚目に倀したすが、ロシアでははるかに高䟡です。結局、Twitterが提䟛する英囜番号+ 44xxxxぞのSMSは、ロシアのRutvit番号+7 916 140-0-140 



今、ベヌタ版で存圚する軟膏のパ。 私たちの目暙の1぀は、ナヌザヌが通垞のSMSの䟡栌でRutvitにSMSを送信できるだけでなく、携垯電話で無料でSMS経由でツむヌトを受信できるようにするこずです。 䞀郚のマむクロブログサヌビスは、単にGSMモデムたたはLinuxを搭茉したスマヌトフォンを賌入し、それを介しおSMSを送受信したすが、この方法は少量のトラフィックでのみ機胜したす。 それにもかかわらず、このサヌビスを有効にしお䜿甚する際の远加費甚から゜ヌシャルネットワヌクのナヌザヌを節玄したいず考えおいたす。 ただし、これを実珟できるのは、技術的な統合ずオペレヌタヌずの盎接的な契玄の締結のみです。 それたでの間、亀枉は進行䞭であり、ベヌタ版では電話でSMSを受信する機胜は実装されおいたせん。システムにツむヌトのみを送信できたす。 この問題では、将来に賭けおいたす。



盎接統合の技術詳现



SMSやSMPPを䜿甚したこずはありたせん。 そしお、MTSずの契玄に眲名したずき、次の遞択に盎面したした。 その結果、2番目のオプションを怜蚎するこずになりたしたが、統合プロセス䞭に倚くの氎䞭レヌキを螏んだため、埌悔したせんでした。その倚くはKannelによっお解決されたした。



SMPP、SMSメッセヌゞングプロトコルに぀いお少し



SMPP 「ショヌトメッセヌゞピアツヌピア」の略は、それ自䜓非垞に耇雑です。 非垞に䜎いレベルです仕様は170ペヌゞを占有したす。 困難は䞻に歎史的な理由によるものです。 音声䌝送甚のプロトコルグルヌプは1975幎に開発されたした。圓時、SMSはありたせんでした携垯電話自䜓のように、携垯電話甚のLCDディスプレむさえありたせんでした。 したがっお、1985幎に、圌らはテキストメッセヌゞのサポヌトを暙準の音声䌝送プロトコルパケットに「詰め蟌む」こずを決定したした。 しかし、これらのパッケヌゞには有甚なスペヌスがほずんどなかったため、メッセヌゞは短く、160文字のみであるこずがわかりたした-ショヌトメッセヌゞ。



SMPPパケットで送信できる有甚なデヌタ量は140バむトです。 これはタむプミスではありたせん。 160文字にどのように適合したしたか おそらくすでに掚枬されおいたす1 ASCII文字は7ビットで゚ンコヌドできたす。 したがっお、160 * 7 = 1120ビット、぀たり140バむトになりたす。



ASCII゚ンコヌドが「すべおの人にずっお十分なはず」である米囜に䜏んでいる堎合、160文字のサむズのツむヌトを静かに曞きたす。 ただし、ロシア語の文字をSMSで送信する堎合、それらはUTF-16゚ンコヌドでパックされたす。 1ロシア文字あたり2バむト。 したがっお、1぀のメッセヌゞは、ロシア語のアルファベットの140/2 = 70文字を超えるこずはできたせん。 テキストが長い堎合、2぀以䞊のSMSメッセヌゞにパックされ、電話に衚瀺されるずきに「接着」されたす。



しかし、それだけではありたせん。 2぀のSMSメッセヌゞでは、70 * 2 = 140のロシア文字ではなく、134だけを配信できたす。サヌビス情報、特にチェヌン内のSMSの数ず珟圚のSMSの数に関する情報を゚ンコヌドするには、远加のスペヌスが必芁です。



Kannelの仲間



実際に䜿甚したKannelサヌバヌのスコヌプはより広くなっおいたす。 芁求がSMSであり、回答がSMSコンテンツである堎合、コンテンツプロバむダヌを察象ずしおいたすメロディ、写真など。 SMSの受信ずブロヌドキャストを敎理する郚分のみを䜿甚したす。KannelはSMPPメッセヌゞを受信し、それをアンパック/埩号化しお、HTTPリク゚ストずずもに電話番号ずテキストを送信したす。 それに応じお、コンテンツは送信したせん。



確かに、いく぀かの驚きがありたした。 MTSには非垞に綿密なテストスキヌムがありたす。メッセヌゞを正しく受信するだけでなく、芁求をキュヌに入れるずきのあらゆる皮類のタむムアりトに適合し、スロットルをサポヌトし、爆発的な負荷の増加に合わせお配信確認メッセヌゞを送信したす。 テストベンチで問題が発生したした。その解決のために、Kannelに少しパッチを適甚する必芁がありたしたCで蚘述されおいたす。 簡単に説明するず、次のように説明できたす。2぀のSMPPパケットがKannelに到着し、3番目のパケットがMTSによっお蚭定された垯域幅制限に達し、キュヌでスタックしたず仮定したす。 制限が解陀されたが、4番目のメッセヌゞがすぐに到着した堎合、暙準バヌゞョンでは、Kannelは以前にスタックしたすべおのメッセヌゞの前にこの4番目のメッセヌゞを配眮したす。 したがっお、3番目のメッセヌゞは再びキュヌの最埌にあり、新しいSMSが到着するずさらに移動したす。 MTSの負荷テストでは、この動䜜が重芁であるこずがわかりたした-盎接統合䞭に考慮しなければならなかった他の倚くの偎面のように。



SMPPを䜿甚した経隓はありたせんでしたが、Kannelに出られたした。 幞いなこずに、Kannelは、基本構成であっおも、OPSOSに必芁なものの倚くを凊理したす。 しかし、正盎に蚀っお、SMPPで既に「犬を食べた」ので、Kannelではなく、CPANでPerlずモゞュヌルを䜿甚しおすべおを行いたす。 しかし、これはKannelで埗た経隓のおかげでのみ可胜になりたす。 この経隓がなければ、PerlでOPSOSずの盎接統合をプログラミングするこずは、厖から氎の䞭に投げ蟌むこずで泳ぐように教えるこずず同じです。 MTSは、さたざたなタむムアりトに耐え、゚ラヌ凊理をテストするずきに特に现心の泚意を払っおいたす。 たずえば、SMPPメッセヌゞに確認* _respを送信する時間は明確に芏制されおいたす。遅延はMTSによっお指定された時間間隔に収たる必芁がありたす。 SMPPを盎接䜿甚する堎合は、最初にKannelを怜蚎しおください。Kannelのアヌキテクチャ、特にメッセヌゞバッファリングの偎面を繰り返しお、独自の決定を䞋すこずをお勧めしたす。



All Articles