本文是FreeSWITCH之父Anthony Minessale發表在Linked In上的文章,FreeSWITCH中文社區試著翻譯了一下,保留了英文原文。
The year 1996 was a significant one for me. My daughter, Abbi, was born, Brett Favre and the Green Bay Packers won the superbowl (for the first time in forever) and I started a journey into modern technology that has never seen a dull moment since. I had just started working for a company doing web hosting. What’s that you ask? Well you already know, but back then you probably would have asked. A crazy notion that you could take some unix shell accounts, use some server software to line up a directory in that shell account with something you can reach with a Web Browser, a fancy new software application promising to 「Visualize」 the Internet. The Internet, you know, that place we lovingly refer to daily as The Cloud.
1996年對我來說是有意義的一年。我的女兒Abbi出生了,Brett Favre和Green Bay Packer贏得了超級碗冠軍(這是有史以來的第一次),我開始了一場進軍現代科技的旅程,從那時起,我從未感受到任何乏味的時刻。我剛開始在一家公司做網絡託管的工作。您問那是什麼?好吧,現在您已經知道了,但那時您可能會問。您可以使用一些unix shell帳戶,使用一些伺服器軟體在該shell帳戶中排列目錄實現使用Web瀏覽器訪問,實現「可視化」網際網路,這可是一個瘋狂的想法。網際網路,如你所知,我們日常稱其為雲端。
Obviously Today we say 「Duh, I have a web browser on everything I own.」 and 「Of course, we love the cloud, we can make anything possible by harnessing the power of the cloud with all its mighty synergy and data driven yada yada!」 Back in 1996, that was not so evident to everyone but I remember those early days vividly. I must admit I』ve been caught a few times folding my arms saying. 「The cloud? You mean the Internet…..?」。
很明顯,今天我們會說:「啊,我所有的東西都有一個網絡瀏覽器。當然,我們喜歡雲,我們可以通過利用雲的強大協同作用和數據驅動的Yada yada來實現任何事情!「早在1996年,這一點對每個人來說都不是那麼明顯,但我清楚地記得那些早期的日子。我必須承認我曾幾次交叉雙臂說。「雲端?你是說網際網路….「。
In 1992-1993, I was already interested in computers but not yet fully woke to the wonders of the Internet. My experiences were limited to what I did with my university shell account which included: FTP-ing files from ftp.funet.fi on an IBM-3151 UNIX terminal and playing on muds (real time text-based multi-user gaming). While I was still trying to figure out this thing called C that let me say 「hello」 to the whole world, the first idea of a web browser was emerging in something known as Mosaic, a software that could let you visit Gopher, NNTP and Web Pages, a fancy new visual document you could connect to with a special address called a URL. The idea was, if everyone got a $3,000.00 machine called a personal computer in their house and used up some of their precious real-estate in their living room, they could sit at this contraption and 「browse」 by connecting this machine to a phone line in your house and try to find your way online at a blazing 9600 bits per second of information.
在1992-1993年,我已經對計算機感興趣了,但還沒有完全意識到網際網路的奇妙之處。我的經驗僅限於我對shell帳戶所做的工作,其中包括:IBM-3151 UNIX終端上ftp.funet.fi中的FTP-ing文件,以及在muds(基於實時文本的多用戶遊戲)上播放的文件。當我還在試圖找出一個叫做C的東西,讓我向全世界說「你好」的時候,網絡瀏覽器的第一個想法出現在一種被稱為Mosonic的軟體中,這個軟體可以讓你訪問Gopher,NNTP和網頁,一個奇特的新可視文檔,您可以使用URL的特殊地址連結到該文檔。這個想法是,如果每個人在他們的房子裡都有一臺價值3,000.00美元的機器叫做個人電腦,並在他們的起居室中佔用掉了一些寶貴的空間,他們可以坐在這個設備旁,通過這臺機器連接到家裡的電話線來「瀏覽」,並嘗試以9600 bit/s的速度在線找到您的消息。
In 1994, we were introduced to Netscape, the first Web Browser typical people might actually use. (By typical people, I mean not crazy tech nuts like myself who would try to translate a port mapping from the university mainframe over dialup meant for telnet access and get a TCP/IP stack running so I can see Mosaic run and connect to a real page, if but for a minute) In 1995 we saw the coming of Internet Explorer Microsoft’s acknowledgement this might be a fun game. Also in 1995, we saw Mysql and Apache spring to life. Mysql was a freely available open source server-side database and Apache was an open source web server derived from the one developed at NCSA http://www.ncsa.illinois.edu/ , an amazing project then and now that popularized many key components on the Internet including the web server and its browser.
在1994年,我們被介紹到網景,這可能是真正使用的Web瀏覽器的第一批典型人物。(所謂典型人物,我指的不是像我這樣瘋狂的技術瘋子,他們會試圖把大學主機上的埠映射轉換為用於telnet訪問的撥號,並讓TCP/IP堆棧運行,這樣我就可以看到Mosaic運行並連接到一個真正的頁面,如果只是一會兒的話)在1995年,我們看到了Internet資源管理器的出現,微軟承認這可能是一個有趣的遊戲。也是在1995年,我們看到MySQL和Apache栩栩如生。MySQL是一個免費提供的開源伺服器端資料庫,Apache是一個開源web伺服器,源於NCSA開發的。http://www.ncsa.illinois.edu/,這是一個令人驚嘆的項目,它在Internet上推廣了許多關鍵組件,包括Web伺服器及其瀏覽器。
So here I am in 1996. Brand new toys and they are basically free and a fancy new idea to put them all together like some kind of communication puzzle. We have a web server, we know anyone with a home pc and emerging internet access will be able to visit this web site, so, what now? Maybe we can make online brochures for everyone! Wait? We also have a free database. We can store information and retrieve it and we can also run programs on the other side of that web browser that look like web pages to everyone else but its really running my program every time someone visits a new link. Mwa ha ha! I bet we can do something interesting with that beyond printing static words and pictures. In fact, you can run programs IN THE BROWSER TOO? Wait? I could write programs on my web server that write more programs that are downloaded and run. This is getting interesting. I know, what if I made free email where you used this web browser thing to read it? Nah, that sounds stupid but hey you never know! What if I made a site where you can build more web sites while you were at the site? Site Inception! *shrug* Maybe, I could make a customer relationship thing where all your customer data and communications with support is saved into a db and you can manage all of your communications with them from a browser!
所以我在1996年。全新的玩具,他們基本上是免費的並且是一個奇特的新想法,把他們放在一起,就像某種溝通難題一樣。我們有一個網絡伺服器,我們知道任何一個家庭PC和新興的網際網路接入將能夠訪問這個網站,那麼,現在呢?也許我們可以為每個人製作在線宣傳冊!我們還有一個免費的資料庫。我們可以存儲和檢索信息,我們也可以在Web瀏覽器的另一邊運行程序,這像再看其他人的網頁,但每次有人訪問新連結時,它都會運行我的程序。哈哈!我敢打賭,除了列印靜態文字和圖片外,我們還可以做一些有趣的事情。實際上,你也可以在瀏覽器中運行程序嗎?我可以在我的Web伺服器上編寫程序,編寫更多可下載運行的程序。越來越有趣了。我知道,如果我使用這個網絡瀏覽器閱讀它的免費電子郵件怎麼辦?不,聽起來很蠢,但嘿,你永遠也不知道!如果我建立了一個網站,您也可以在網站上建立更多的網站!*聳聳肩*也許,我可以做一個客戶關係的管理,您所有的客戶數據和支持下的通信都被保存到資料庫中,您可以通過瀏覽器管理您與他們的所有通信!」。
Some of these ideas were had by many and yes I did try to make all of those things myself using the prehistoric tools I had back then and yes, some of them became a thing we know today and it wasn’t my version but one thing was consistent. The spark that ignited back then has continued to burn into an ever-increasing potential for communication. Every year since, more doors are opened by faster Internet connectivity, smaller and faster computers and new and amazing advancements on how to leverage the tools that first appeared in the late 90’s. Since that time we』ve had a bubble burst from too much too soon and economic setbacks and horrible catastrophes shape the way we communicate.
其中一些想法已被許多人所接受,是的,我確實嘗試使用我當時所擁有的史前工具來製作所有這些東西,是的,它們中的一些成為了我們今天所知道的東西,這不是我的版本,但有一件事是一致的。那個時候點燃的火花一直在燃燒,成為一種不斷增長的交流潛力。自那以後,更快的網際網路連接、更小更快的計算機和如何利用90年代後期首次出現的新工具以驚人的進步打開了更多的大門。從那時起,我們就經歷了一個泡沫的破滅,經濟的挫折和可怕的災難影響了我們溝通的方式。
In the early 2000’s my web hosting company had evolved into touching more verticals like domain hosting and registration, outsourced technical support and dial-up Internet provider. Suddenly I had a need to involve making phone calls into the mix. We had e-mail and a CRM (I actually made it with… guess what? a web server and a database!) but we wanted to be able to take lots of calls and see who was calling from the web and allow the agents to be anywhere and still be able to be part of the system. This is when I met Asterisk!
在2000年初,我的網絡託管公司已經拓展了更多的垂直領域,比如域名託管和註冊, 外包技術支助和撥號網際網路提供商。突然間,我需要和撥打電話混為一談。我們收到了e-mail和CRM(我實際上是用…做的,你猜怎麼著?一個Web伺服器和一個資料庫!)但是我們希望能夠接聽大量的電話,看看是誰從網絡上打來的,並且允許代理商在任何地方,仍然能夠成為系統的一部分。這就是我遇到Asteris的時候。
Asterisk was an open source PBX that allowed physical phone lines to be plugged into a PC running linux and do stuff with the calls inside your computer. It had application services for things like call queues and it seemed a perfect friend for my database, web server and other tools it even supported some new fangled Internet based communication protocols that were emerging. The wonders of the magical Cloud strike again.
Asterisk是一個開源的PBX,它允許物理電話線插入到運行Linux的PC上,並在您的計算機內進行通話。它有像呼叫隊列這樣的應用程式服務,它似乎是我的資料庫、Web伺服器和其他工具的完美朋友,它甚至支持一些新的基於網際網路的通信協議。雲的奇蹟再次襲來。
A problem soon surfaced with this idea, however. Asterisk 「did what it did」 and that did not always line up with what I wanted it to do. It was open source so, no problem! This was the beginning of when I learned how hard it is to make telecommunications work. Not just the software, the phone lines, or the phone service and the physical equipment needed and having all the moving parts work together. Soon I found myself under the hood of Asterisk nearly every day. It was actually kind of fun (but not always). I put a whole bunch of effort trying to take some of my visions and impart them into the design of the software as a whole, guided by the things I wanted to be able to do to make the ideas I had possible. One day, after realizing that while I enjoyed working on Asterisk, I might have ideas for it beyond its scope and maybe I was doing it more harm than good, I just opened a new empty file and started typing what would end up being my own fluffy contribution to the cloud, FreeSWITCH.
然而,這個想法很快就出現了一個問題。Asterisk「做了它所做的」,而這並不總是符合我的要求。它是開源的,所以,沒問題!這是我學習電信工作困難的開始。不僅僅是軟體、電話線、電話服務和所需的物理設備,而且所有的移動部件都可以協同工作。很快,我發現自己幾乎每天都被Asterisk遮住。這實際上是一種樂趣(但並不總是如此)。我花了大量的精力,試圖把我的一些想法,並把他們作為一個整體的軟體設計,指導我想要做的事情,使我有可能實現這些想法。有一天,當我意識到我喜歡使用Asterisk的時候,我可能會超出它的範圍,也許我做的是弊大於利,於是我打開了一個新的空文件,開始輸入最終會成為我自己對雲貢獻的東西,FreeSWITCH。
FreeSWITCH is my own vision on what a communications platform should be. I was heavily influenced by my past experiences and all of the great things I really liked about server-side software platforms like Apache and Postgres and UNIX in general. I started writing code in 2005 and today in 2018 its still growing. Throughout this 15 year stint in software development I have tried to empower developers with a similar path to have a path forward in building communications tools. We have modular interfaces and plug-ins and the ability to add new communications protocols and use an event-bus to get metadata about calls and many other things.
FreeSWITCH是我自己關於通信平臺應該是什麼樣子的願景。我深受我過去的經歷和所有我真正喜歡的伺服器端軟體平臺(如Apache、Postgres和UNIX)的影響。我從2005年開始編寫代碼,到2018年我開始編寫代碼,現在它還在增長。在這15年的軟體開發生涯中,我一直試圖使開發人員能夠在構建通信工具方面取得進展。我們有模塊化的接口和插件,能夠添加新的通信協議,並使用事件總線獲取有關呼叫和許多其他事情的元數據。
Today, not only have I developed software that runs in the 「Cloud」, I have found a way to connect it back with my beloved web browser. Somewhere in the timeline, (2013-ish IIRC), we suddenly have WebRTC, The ability to make voice and video connections from a modern web browser. Holy crap, I can work with this! I developed a prototype protocol called Verto for connecting FreeSWITCH to a browser and making calls and all kinds of fun stuff. Too bad I can’t go back in time and give these tools to myself in 1996. Great Scott!
今天,我不僅開發了運行在「雲」中運行的軟體,還找到了一種將它與我心愛的網絡瀏覽器連接起來的方法。在時間軸的某個地方,(2013- Ish IIRC),我們突然擁有WebRTC,即在現代網絡瀏覽器上建立語音和視頻連接的能力。天哪,我可以用這個!我開發了一個名為Verto的原型協議,用於將FreeSWITCH連接到瀏覽器,並撥打電話和各種有趣的東西。可惜我不能回到過去,把這些工具給1996年的自己。Great Scott!
Still despite all this work, a lot of complexity remains and many developers feel a barrier-to-entry trying to get up to speed. All the while I』ve been inspired by that same spark back in 1996. This is why as I look to the future I only saw one possibility. Developers are emerging faster and need a lower learning curve to leverage communications. We need a way to provide them with the tools they need and access to this magnificent Internet (*cough* cloud) that i』ve been fascinated with for 20 years. In order to do this right I needed to pull together my entire rolodex of developers and bring our technology to the mainstream. Just like the good old days of getting computers and visual internet into the hands of the people, we need to bring communications to the people with the help of the developers of the world.
儘管做了這些工作,但仍然存在許多複雜的問題,許多開發人員都感覺到了難以加速進入。我一直受到1996年同樣激勵。這就是為什麼當我展望未來時,我只看到了一種可能性。開發人員出現得更快,需要一個較低的學習曲線來利用通信。我們需要一種方法,為他們提供他們所需要的工具,並訪問這個我已經著迷了20年的宏偉的網際網路(*咳嗽*雲)。為了正確地做到這一點,我需要整合開發人員的整個rolodex,並將我們的技術帶入主流。就像過去把電腦和可視網際網路交到人們手中的美好時光一樣,我們需要在世界各地的開發者的幫助下把通訊帶給人們。
I founded SignalWire in late 2017 because I can’t stop looking for ways to advance how we use the Internet for new and amazing things. We are a cloud company but it’s not just a buzzword to us though I still do get triggered by its overuse sometimes ;) We want to push the limits of communications as far as we can, so one day, in 2038, we can write another article about how silly things were back when we had to convince people we can give them a magical socket that unlocked everything they needed to build any infrastructure and applications they ever dreamed of and connect the tiny computers in their pockets to machine learning and artificial intelligence platforms using only their voice to interact. We can reminisce about Creating video conferences inside a virtual or augmented reality interface or remember how there used to be this thing called a phone company who was in charge of all the phone calls you made and limited who and where you could communicate.
在2017年末我創立了SignalWire,因為我無法停止尋找方法來推進我們如何使用網際網路獲取新的和令人驚奇的東西。我們是一家雲計算公司,但對我們來說,這不僅僅是一個時髦的詞,雖然有時還是會被過度使用,觸發我們想儘可能地擴大交流的範圍,所以有一天,在2038年,我們可以寫另一篇文章,講述當我們不得不說服人們,我們可以給他們一個神奇的東西,建立他們夢寐以求的任何基礎設施和應用程式,並將微型計算機連接到機器學習和人工智慧平臺僅用他們的聲音互動。我們可以回憶一下在虛擬或增強現實界面中創建視頻會議,或者記得曾經有過一個叫做電話的東西,他負責你打的所有電話,並限制你能在哪裡和誰溝通。
I invite you all to learn more about SignalWire and FreeSWITCH and to join us on the next chapter of the cloud and see where that original spark takes us and live by our motto: Develop. Deploy. Disrupt!
我誠摯邀請您加入我們,更多地了解SignalWire和FreeSWITCH,一起探索關於雲的下一個篇章。不忘初心,繼續前進。我們的座右銘是——開發、部署、破壞!