|
|
OSSLab::開放軟體實驗室(Open Source Software Lab) > 實驗專案 > VoIP > IP PBX > 軟體式 IP PBX > Asterisk > Tips > Skype > SipTheeSkype 安裝設定
SipTheeSkype 安裝設定從 $1實作前言:在試裝這個套件前,筆者陸續已經測過幾個商用或OpenSource的其他套件,憑心而論,如果是要應用在正式營運環境,還是建議使用商用的套件,例如 SisSky(請參閱之前的討論)。不過這套 SipTheeSkype 在整合 SIP 或 Asterisk 上還是有幾項優點:
這套件可以使用在三種模式下,分別是
其各自的流程說明如下 for SIP adapter)
for IP PBX)
for SIP Provider)
以上的 SkypeSTS 是指設定在 SipTheeSkype 的 Skype 帳號。 官網連結 - http://www.mhspot.com/siptheeskype.html 心得分享:實作的軟硬體環境介紹
在這次實作我們將套件裝在 Elastix Server 上,所以只能運行一個 Skype Channel,並且在與 Asterisk 作整合時,當建立了 Trunk 可使用 Skype 帳號撥出時,卻無法使用 Skype 帳號的撥入,必須刪除 Trunk 或 Disable 才可以正常撥入, 至於大家最關心的通話品質,實在很抱歉,我們並沒有和其他 Skype 用戶作充分的通話測試,只是簡單的用幾個 Skype 帳號互相作單向的測試,即使如此,結果顯示它的通話品質應該是可以接受的。 就我們作過 Skype 整合 SIP 的經驗上,不管是用哪一套,若 Skype 與 SIP 分屬不同主機上,必須同屬在內部網路(LAN),否則通話品質會因網路關係大打折扣。 這個套件與其他的商用或非商用型套件架構相同,皆以 Skype API 方式與 SIP 溝通,這樣雖然不是個很好的方式,但以目前 Skype 仍屬封閉的軟體來說,暫時也沒有更好的方式,不過 Skype 官方已經在考慮開發與 Asterisk 整合的版本(詳見討論區),希望很快能有進一步的釋出計畫。 雖然很辛苦的將它安裝起來了,不過最後還是沒將它掛上線,原因是 Skype 啟動後,即使沒有使用,頻寬仍會被偷偷吃掉,對此我很反感,如果頻寬不是很大的人,還是建議別想用 Skype。很多人很快樂在用 Skype,卻渾然不知自己的頻寬已被這家公司拿來作分享。
◆下載 java SE Runtime Enviroment(JRE) 6 Update 10- 前往連結 安裝 jre-6u10-linux-i586.bin: #chmod u+x jre-6u10-linux-i586.bin #./jre-6u10-linux-i586.bin 閱讀授權政策完後輸入 yes #mv jre1.6.0_10/ /opt #vi /etc/profile.d/java.sh 輸入以下這一段 JAVA_HOME=/opt/jre1.6.0_10 JAVA_BIN=$JAVA_HOME/bin PATH=$PATH:$JAVA_BIN export JAVA_HOME JAVA_BIN PATH 驗證 Java,重新再登入 console,執行 #java -version 此時應輸出正確的 Java 版本號。 ◆下載安裝 vncserver由於在下一個 Skype 安裝步驟前,系統需先具備視窗的執行環境,且為了方便遠端管理,也一併將 VNC 套件裝上(請注意:基於系統安全考量,VNC 套件可選擇不裝)。 安裝 GNOME 視窗套件 #yum groupinstall "GNOME Desktop Environment" 重開機 #reboot 安裝 vncserver #yum install vnc-server 設定 vncserver,以root執行以下指令,第一次執行時,系統會要求設定 vnc 登入密碼。 #vncserver 檢查 vncserver 的通訊埠,若有出現 port 590x,表示 vnc 啟動中。 #netstat -lt 關閉 vncserver 服務,如服務埠是 5902,請輸入 :2,埠號的最後一碼。 #vncserver -kill :2
◆下載安裝 Skype for CentOS Linux- 前往連結 Skype 一定要與 siptheeskype 裝在同一部主機。以 root 登入 console #wget http://www.skype.com/go/getskype-linux-centos 安裝其他相依性套件 #yum install qt4.i386 #rpm -ivh skype-2.0.0.72-centos.i586.rpm 進入視窗環境,啟動 Skype 時要以 root 身份執行,若以一般用戶執行有可能無法抓到音效卡。第一次啟動 Skype 作初始化設定,這與在 Windows 的差不多,開啟終端機執行以下指令: #skype& 因為要配合 SipTheeSkype,Skype 有兩個設定要注意:
◆驅動音效卡這個步驟是筆者花費最多時間的,原因是這次選用的機器 Asus ep20,在 Linux 預設環境無法正常驅動內建的音效卡,不過還好的是,在查了 Google 後,這內建的音效卡晶片是有支援 Linux,但要手動安裝驅動程式,又這款機器在網路上查到有使用在 Linux 的資料很少,如果能選擇有支援 Linux 音效驅動的機器,就可以減少不少的安裝時間。 以下步驟是以 Asus ep20 內建音效卡驅動為例。 #wget ftp://ftp.alsa-project.org/pub/driver/alsa-driver-1.0.17.tar.bz2 #wget ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.0.17a.tar.bz2 #wget ftp://ftp.alsa-project.org/pub/utils/alsa-utils-1.0.17.tar.bz2 #tar -xjf alsa-driver-1.0.17.tar.bz2 #cd alsa-driver-1.0.17 #./configure --with-cards=hda-intel --with-sequencer=yes #make #make install #cd ../ #tar -xjf alsa-lib-1.0.17a.tar.bz2 #cd cd alsa-lib-1.0.17a #./configure #make #make install #cd ../ #tar -xjf alsa-utils-1.0.17.tar.bz2 #cd alsa-utils-1.0.17 #./configure #make #make install #cd ../ #alsaconf
◆下載安裝 SipTheeSkype SIP Skype Bridge- 前往連結 選擇 SipTheeSkype3_20081025.zip,下載後上傳至 Elastix 主機上目錄 /usr/src。 安裝: #mkdir /opt/siptheeskype #cd /opt/siptheeskype #unzip /usr/src/SipTheeSkype3_20081101.zip #cp samples/* ./ 修改檔案 siptheeskype.cfg,取代 192.168.0.4 為執行 siptheeskype 的主機 IP。 #vi siptheeskype.cfg //-------------------------------------------------------------------------------------------------------- #Sample config with NO registration - change 192.168.0.4 to ip address of computer running siptheeskype # username and password not important in this mode #Set to available port to transport SIP messages on siptheeskype computer host_port=5070 contact_url=sip:skype@192.168.0.4:5070 from_url="Skype" <sip:5611111111@192.168.0.4:5070> username=skype passwd=123456 realm=192.168.0.4 啟動 Skype #skype & 先完成帳號登入。 啟動 siptheeskype #./SipTheeSkype_linux 此時會出現提示視窗,請予許所執行的程式。 到這裡已經完成整合終端 SIP 設備/軟體電話撥 Skype 的環境了。 作測試時,可使用 SJphone 註冊至 siptheeskype 主機,主要資訊如下
用 SJphone 撥 5551,如連結正確,會聽到 Skype 的 Echo Test,撥通正常後,也試試看能不能聽到自己的聲音,如果都沒問題,已經完成大部分的設定了。 不過,如果要和 Asterisk 整合,還有一項工作要作,下載 SipTheeSkype Skype Trunk Builder,這工具將幫助你快速建立所需的設定檔。
Skype Trunk 整合 Asterisk參考文章:http://www.mhspot.com/siptheeskype_s...unk_howto.html 下載及安裝 stsTrunkBuilder在開始安裝這個工具前,先作個簡單說明,不然會與上述的 SipTheeSkype 這支程式有所混淆。 SipTheeSkype - 這是建立 Skype Channel 的主程式,所以要繼續以下有關 Asterisk 整合 Trunk 的步驟前,一定要先完成所有步驟,並且作完 SIP device/softphone --> Skype 的測通步驟。 stsTrunkBuilder - 這是基於上述的主程式的設定檔產生器,透過這,可以很快速的建立,每個 Skype Channel 連結 Asterisk 所需的所有設定檔及啟動檔。既然它只是用來產生設定檔,所以只要熟悉主程式的用法,也可以手動逐一建立這些設定檔,而完全不需要這個工具。 #unzip -d /opt/ststrunkbuilder tmp_3170f_stsTrunkBuilder_20081026.zip #cd /opt/ststrunkbuilder #cp -a samples/* ./ 編輯設定檔 stsTrunkDef.cfg ## 要作 Trunk 的 Skype 帳號,可輸入多組 skypeUserList=skypeuser1,skypeuser2 ## 輸入 SipTheeSkype 的安裝目錄,本例為 /opt/siptheeskype stsBaseConfigFile=/opt/siptheeskype/siptheeskype.cfg 產生Skype Trunk 所需的設定檔及啟動檔 #chmod u+x trunkConfig_linux #./trunkConfig_linux 這些產生出來的設定檔及啟動檔,若一切都正常,會儲存在 SipTheeSkype 的程式目錄下,此例為 /opt/siptheeskype。 簡單的說明一下,這些檔案的用途:
用視窗模式以 root 登入主機,第一次啟動任一組 Skype Channel 時,必須先作設定的初始化,啟動指令再加一個參數 config: #cd /opt/siptheeskype #./stsTrunk_01_start config 初始化的過程,會開啟 xterm 視窗以及呼叫 Skype 程式(請先完成 Skype 的安裝),依序完成 Skype 的登入程序,登入的Skype帳號要與第一組設定檔所指定的相同,並且確認以下的設定:
到這邊已經完成了第一個 Skype Channel 的初始化設定以及啟動,請繼續按同樣的方法依序完成第二個、第三個 Skype Channel 的初始化及啟動。 在完成所有 Channel 的初始化啟動後,雖然此時所有 Channel 都已經啟動了,但卻只有最後啟動的那個 Channel 可以作用,在反覆閱讀官方的資料後,才理解,初始化的啟動模式會影響多 Channel 之間的運作。 所以做完初始化後,先關閉各 Channel,執行: #cd /opt/siptheeskype #./stsTrunk_01_stop #./stsTrunk_02_stop 注意:關閉 Channel 時,同時也會自動關閉相應的 Skype 程式,所以不用先手動關閉 Skype。 啟動 Skype Channel,但不要加任何參數: #./stsTrunk_01_start 這時啟動的程序會丟到背景執行,你可以使用以下指令,檢視程式是否已執行: #ps -ef | grep skype
其他 Channel 也按此法依序啟動。
Tips:
◆操作畫面
標籤:
|
|
不過我後來測試後又發生另一個問題,我的環境是用3個skype帳號生成3個trunk,然後我用外部的skype打給trunk其中一個skype帳號,很順利的可以接通並通話,然後沒掛掉,再用一個外部的skype帳號撥打剩下的兩個trunk的其中一個,我的ip phone有順利的響鈴,然後拿起電話要聽時,電話馬上斷線,而我第二個外部的skype那邊顯示遠端的音效裝置有問題,而原本第一通建立好的那個通話,在ip phone那邊也只剩下可以聽到不能說話了,我在想應該是第二個skype要打進來時兩個ip phone互搶音效裝置,所以才造成第二通電話音效裝置有問題和造成原本第一個通話ip phone那邊只能聽不能說,請問是跟ALSA有關嗎?因為有看到官方網站有提到這個,若是這樣的話怎樣解決呢?我音效那邊弄很久還是沒解決問題,請問A.Lang大你有遇到這個問題過嗎?
感謝解答~ 編輯者 03:27, 5 Dec 2008
不過我剛開始就是透過stsTrunkBuilder創出的trunk來啟動skype的,這個不是就是類似SipTheeSkype來啟動skype嗎?或者alang大指的是其他意思?
因為SipTheeSkype算是主程式,stsTrunkBuilder算是幫你創出一些和Asterisk連接的設定檔和執行檔,所以當他執行的時候不是也算是用SipTheeSkype幫你執行兩個skype嗎?或者alang大的意思不是只這樣?可以請alang大指點一下嗎?
我自己有試過複製兩個SipTheeSkype到兩個資料夾,分別為SipTheeSkype1和SipTheeSkype2,然後又用兩個stsTrunkBuilder分別為那兩個SipTheeSkype個別創一個trunk,然後來試看看這兩個trunk可不可行,但是還是發生一樣的狀況....@@