天天看點

基于聲網的音視訊SDK和FreeSWITCH開發WebRTC2SIP Gateway 遇到的坑(三)

前兩篇文章我簡單介紹了開發WebRTC2SIP的設計架構圖和封包邏輯,看着簡簡單單,做起來還是有很多事情要考慮的。我們在開發的過程中,也是磕磕絆絆,一步一個腳印(坑)走過來的。碰到的很多問題都是相容的問題。

我們碰到過哪些問題呢?我們總結下來,開發時遇到了這些問題:

1.怎麼處理早起媒體?

2.怎麼處理加密不被過濾?

3.怎麼防止SIP注冊攻擊和匿名呼叫攻擊?

4.怎麼支援消息擴充,擴充支援更多服務?

5.正在通話呼叫(calling ringing )過程中,主叫或者被叫斷線了,怎麼探測?怎麼recover,自動重連話務?

6.通話雙方任一方突然殺死SDK程序 怎麼通知對方?

7.SIP呼入的時候,如果被叫不線上?怎麼個處理邏輯?

8.客戶要求實作同一個賬戶同振怎麼實作?

9.客戶要求支援新版本的的SDK呼入呼出的同時,讓同一套賬戶體系支援SIP的呼入和呼出;如果有人呼入,要求SIP用戶端和聲網用戶端,都要響鈴,即要相容原來的客戶固定資産(SIP話機等)可以繼續被使用。

除了這些還有在測試階段發現很多詭異的問題 oˍo …

1.比如電話接通後,說着說着就沒聲音了 (⊙ˍ⊙)

2.說話會卡斷,有時候接通就會卡有的時候通話幾分鐘後會卡 (⊙ˍ⊙)+1

3.經常碰到被叫挂機,聲網的SDK還在寫日志,一天50個電話寫日志幾十G,G,G,G,G,G (°ー°〃)

4.單通,一方聽不到聲音 (ʘ╻ʘ)

5.編碼問題,碼率不一緻 …(⊙ˍ⊙;)…

6.各種莫名崩潰:啟動崩潰,接通崩潰,挂機崩潰,神經病似得說崩就崩潰 …╥﹏╥…

一路走來,幾個同僚經常分析代碼到半夜。終于在測試4個月後穩定下來。其實作在回頭看,就是因為沒有吃透聲網的API文檔,沒有好好利用社群的功能。如果你碰到的坑是上述的問題,那麼花點時間仔細撸幾遍API文檔就可以搞定了。

系統運作了幾個月沒出過問題,公司要求總結下開發中碰到的問題,聲網的小夥伴說,要學會回饋社群,完善一下學習交流的氛圍。有感于這一段時間的開發工作,于是就寫下這幾篇文章,希望能對大家有所幫助。我會敲代碼,不太會表達,如果大家在實作這個子產品的過程中也碰到問題,想了解一些細節。歡迎聯系交流~~~