受大環境影響,因效益不好,某客戶裁撤了整個IT運維部門,我順理成章地接手了。
只是合同簽得簡單,要做的工作卻遠超範圍,負責人也是多年的朋友了,看在私人的友情上,就沒那麼計較,直接幫著解決。
某雲伺服器遷移後,FreeSwitch終端無法撥打電話,一直顯示註冊中。
由於此次遷移並不涉及公網IP的變更,所以暫未考慮IP配置問題,但是所有終端都顯示註冊中,顯然是伺服器問題了。
FreeSwitch是部署在Centos上,所以遠程登錄Centos,查詢FreeSwitch服務是否正常啟動了。
netstat -anp | grep freeswitch
發現FreeSwitch服務根本沒起來。
systemctl start freeswitch.service
然後再次執行查詢命令:netstat -anp | grep freeswitch
FreeSwitch服務貌似起來了,並且占用了2260埠。
要求客戶終端測試,當然還是不行。實不相瞞,本人第一次折騰FreeSwitch,所以當時覺得服務起來,並且實測埠可被連接,就應該好了,實際上,還差得遠。
繼續摸索:既然FreeSwitch服務起來了,那可能是資料庫的問題吧。
netstat -anp | grep mysql,果然,mysql服務沒起來。
systemctl start mysql.service,失敗,mysql起不來。
難道資料庫不是mysql?查看了一翻,果然是缺胳膊少腿,按理說,遷移過程中,不可能掉程序啊, systemctl list-units --type=service,列出所有服務,發現了 mariadb.service,而且沒有啟動。
趕緊systemctl start mariadb.service,然後systemctl status mariadb.service
MariaDB資料庫管理系統是MySQL的一個分支,所以,這時候netstat -anp | grep mysql
就能看到,mysql的3006埠起來了。
這時候,客戶回復,終端數據加載正常。
小小地興奮了一下,以為好了,但是客戶回復無法撥打電話。
一頭包,要知道,我這也是大姑娘上轎——頭一回啊,沒辦法既然答應了客戶,就得繼續。
還是懷疑FreeSwitch服務的問題,畢竟,資料庫才剛剛起來,於是systemctl restart freeswitch.service,重啟服務,然後查次netstat -anp | grep freeswitch,果然,freeswitch的服務多出來好幾個,都是不同的埠。
再次讓客戶測試,回復是:可以打電話了。
總算鬆了口氣。
BUT,第二天,客戶又反饋,雖然能撥打電話,但是沒聲音的,等於沒搞定。
好吧,在食物中毒,劇烈嘔吐三次的情況下,堅持排查從沒遇到過的問題。
MariaDB資料庫服務正常,FreeSwitch服務正常,那就只能看看配置文件了。
可憐我手頭沒有任何資料,連配置文件在哪裡都不知道。
find / -name freeswitch.xml,找到配置文件,看了一下,沒啥用,只是得到一個信息:欲知詳情,請看vars.xml,看完vars.xml,又得到一個信息:得繼續看Internal SIP Profile和External SIP Profile,很好,總算有點方向。
該寫IP位址的地方,寫著auto,感覺有點問題啊,改為正確的IP位址,然後重啟FreeSwitch服務。
客戶反饋,打電話終於有聲音了。
可惜,好景不長,沒過兩天,又有分校不能撥打電話了,有的分校又很正常,沒道理啊。
應該不是伺服器的問題,遠程登錄客戶的路由器,經排查,SIP ALG未開啟,死馬當活馬醫吧,啟用SIP ALG
重啟路由器,客戶說是可以撥號了,又一次小小地興奮了一下,沒過幾分鐘,又來消息了,同一台路由器下,一個用戶可以了,另外兩個用戶還是無法撥打電話,換個號碼註冊也是不行。
頭疼欲裂,汗如雨下,無從下手……
好在客戶也有經驗,把終端重置,重新配置,然後可以打電話了,此事暫時告一段落,換來我的一聲長嘆。