SiptoSis 最新版安裝

    官方連結

    更多文章

    系統環境

    • PIAF 2.0.6.2 (Asterisk 1.8.8.0 + CentOS 6.2)
    • Guest OS on VMware ESX
    • Java: jre-7u17-linux-i586.rpm
    • Skype: skype-4.1.0.20-1.el6.i586.rpm

    網路環境

    • 主機在 NAT 網路內
    • 防火牆為 pfSense,port forwarding 只開啟 SIP 與 RTP
    • 遠端分機通話測試正常

     

    使用重點

    • VNC 是用來設定 Skype 第一次的手動帳號登入,以及調整一些必要的 Skype 設定選項
    • Xvfb 這是用來使 Skype 與 SipToSis 可以背景執行

    步驟開始

    新增帳戶 stsuser

    useradd stsuser
    cd /usr/src
    mkdir install_sip2sis 
    
    安裝 Skype

    Skype 備用下載: https://www.amazon.com/clouddrive/sh...T8coz0dqKKRnR4

    cd /usr/src/install_sip2sis
    wget -O skype-4.1.0.20-1.el6.i586.rpm "https://dl.dropbox.com/s/409livlxb7p33hy/skype-4.1.0.20-1.el6.i586.rpm?token_hash=AAGnThJzNok_EhTOYWR9BdAoEOIzpIG0_QGWq75Ugl-j6w&dl=1"
    yum groupinstall "X Window System"
    yum install libXv libXScrnSaver alsa-lib xterm xorg-x11-twm
    rpm -ivh skype-4.1.0.20-1.el6.i586.rpm 
    

    修改 /etc/X11/twm/system.twmrc

    ...
    RandomPlacement <== 加上這一行
    NoGrabServer
    RestartPreviousState
    ... 
    

    複製 system.twmrc

    cp /etc/X11/twm/system.twmrc /home/stsuser/.twmrc
    chown stsuser:stsuser /home/stsuser/.twmrc
    

    設定 snd-dummy

    modprobe snd-dummy
    vi /etc/rc.local 
    

    rc.local:

    # Required for Sip2Sis
    /sbin/modprobe snd-dummy
    

    測試 Skype

    su - stsuser
    vncserver 
    

    以 VNC Viewer 登入主機,執行 skype &

    為了要配合 SipToSis 必須修改 Skype 設定

    • 登入時,勾選 Sign me in when skype starts
    • Advanced
      • Enable Skype WiFi: 關閉
      • Check for update on startup: 關閉

    TIP:

    如果還沒裝 VNC server ,執行 yum install tigervnc-server

    安裝 Sun/Oracle Java (不要使用 openjdk)

    檔案下載: http://java.com/zh_TW/download/manual.jsp

    cd /usr/src/install_sip2sis
    wget -O jre-7u17-linux-i586.rpm http://javadl.sun.com/webapps/download/AutoDL?BundleId=75249
    
    yum remove java-1.6.0-openjdk
    rpm -ivh jre-7u17-linux-i586.rpm

    Note:

    如果系統已經安裝 openjdk 的版本,必須先移除

    確認 java 版本

    $ java -version
    java version "1.7.0_17"
    Java(TM) SE Runtime Environment (build 1.7.0_17-b02)
    Java HotSpot(TM) Client VM (build 23.7-b01, mixed mode, sharing)
    
    安裝  Xvfb
    yum install Xvfb
    
    增加 stsuser 為群組 audio
    usermod -a -G audio stsuser
    
    安裝 SipToSis

    下載連結: http://www.mhspot.com/sts/siptosis_download.php

    • SipToSis_20111012.zip
    • stsTrunkBuilderLinux_20110808.zip
    cd /usr/src/install_sip2sis
    mkdir /opt/siptosis
    unzip SipToSis_20111012.zip -d /opt/siptosis/
    cd /opt/siptosis/
    chmod a+x SipToSis_linux
    chown -R stsuser:stsuser /opt/siptosis
    
    第一次測試: SipToSis_linux

    編輯 siptosis.cfg,搜尋 5070

    host_port=5070
    username=skypests
    passwd=unimportantpassword
    do_register=no
    

    Notes:

    如果使用預設的 Asterisk 設定範例,當關閉 stsTrunk_linux 時,會出現 skype 無法結束。

    使用 VNC Viewer 登入主機,在帳戶 stsuser 下開啟 Skype 並完成登入。

    在 VNC Viewer 的 xterm,執行

    /opt/siptosis/SipToSis_linux &
    

    Notes:

    VNC 畫面的 Skype 必須顯示 "允許外部 API 存取" 的提示

    執行 netstat -lun 應該有開啟 port 5070

    如果 SipToSis_linux 正常啟動,輸出訊息為

    [stsuser@pbx siptosis]$ Launching SipToSis
    2013-03-26 13:17:06,170 Starting SipToSis v20111012
    2013-03-26 13:17:06,175 Skype4Java Version 1.3.0.1
    2013-03-26 13:17:06,175 os=Linux ver=2.6.32-220.2.1.el6.i686 arch=i386 (1 core)
    2013-03-26 13:17:06,175 javaVer=1.7.0_17 - Oracle Corporation (32 bit)
    2013-03-26 13:17:06,198 Available Codecs: PCMU(0),PCMA(8),iLBC(98),L16/16k(102)
    2013-03-26 13:17:06,198 DTMF rfc2833(101)
    2013-03-26 13:17:06,199 initSkype - If stuck, check Skype online & API auth
    2013-03-26 13:17:06,454 STUN: Error - Unknown Host: stun.xten.net
    2013-03-26 13:17:06,697 PublicIP=211.72.203.62
    2013-03-26 13:17:06,741 SkypeVer:172
    2013-03-26 13:17:06,816 Attached SkypeUserId:skype.share
    2013-03-26 13:17:06,825 Config - skypeClientSupportsMultiCalls:false  concurrentCallLimit:2
    2013-03-26 13:17:06,825 SipToSis contact_url=sip:skypests@192.168.7.62:5070
    2013-03-26 13:17:06,825 via_addr=192.168.7.62  realm=
    2013-03-26 13:17:06,825 RTP Ports: 63200-63202  Local Skype Ports: 64432-64435
    2013-03-26 13:17:06,825 jitterLevel=-1
    2013-03-26 13:17:06,866 Registrar Server Domains=
    2013-03-26 13:17:06,868 MaxCallTime: not limited MaxPSTNCallTime: not limited
    2013-03-26 13:17:06,868 MaxDailyPSTNUniqueNumberCount: 48 MaxDailyPSTNMinutes: 350
    2013-03-26 13:17:06,876 Loading Skype PSTN Call History
    2013-03-26 13:17:06,881 WAITING FOR INCOMING CALL
    2013-03-26 13:17:06,891 6 possible calls to import.
    2013-03-26 13:17:06,893 WAITING FOR INCOMING CALL
    2013-03-26 13:17:07,793 0 PSTN calls imported
    2013-03-26 13:17:07,799 PSTN counters reset at: 08:00:00 CST
    2013-03-26 13:17:07,807 Qualified PSTN calls today: 0 Time: 0 minutes
    2013-03-26 13:17:07,944 AcctBalance: 1.00 FREECALL

    使用 Zoiper 來測試 SipToSis_linux 是否可用
    Zoiper 設定

    • Domain: <SipToSis 主機IP:5070>
    • Username: 空白
    • Password: 空白
    • Caller ID Name: 空白

    使用 dialpad 撥出 55,此時 Skype 會撥給 echo123 的測試 ID

    使用 Asterisk 來測試 SipToSis_linux 是否可用
    Asterisk 設定: FreepBX > Trunks

    type=peer
    host=<SipToSis 主機 IP>
    port=5070
    nat=no
    dtmfmode=auto
    canreinvite=no
    qualify=yes
    incominglimit=1
    outgoinglimit=1
    call-limit=1
    busylevel=1
    context=from-trunk 
    
    撥出測試 SIP to Skype

    先定義 Outbound Route 使 SIP 分機可以撥 55 至以上的 trunk,就可以聽到 Skype 的 EchoTest

    TIPs:

    預設簡碼 55 可以做 Skype 的 EchoTest,其規則定義在 SkypeOutDialingRules.props
    ^55$:echo123

    撥入測試 Skype to SIP

    編輯 SkypeToSipAuth.props

    *,sip:skype.share@192.168.7.62:5060
    

    Notes:

    * 允許所有的 Skype 來電

    sip:<your skype ID or whatever name>@<Asterisk IP:Port>

    新增 Inbound Route
    FreePBX > Inbound Routes > Add Incoming Route

    • DID Number: <your skype ID or whatever name>
    • Set Destination: <whatever you wanted>
    自動啟動 SipToSis_linux

    上述的測試雖然已經可以完成 SIP to Skype 的通話,不過必須在 VNC 手動啟動 Skype & SipToSis_linux。如果要在 command line 啟動這些軟體,必須再完成以下步驟:

    cd /opt/siptosis
    chmod a+x stsTrunk_linux 
    su -l stsuser -c "/opt/siptosis/stsTrunk_linux start"
    

    注意: 在 CentOS 6.2 會出現 skype 無法正常工作,可以由另一個 Skype 帳號來確認是否可工作,解決方法:

    編輯 /opt/siptosis/stsTrunk_linux

    ...
    if [ "${displayMethod}" == "XVFB" ]
    then
            #launch virtual frame buffer
            pidfile=tmp_xvfb.pid
            ps -ef | grep -v ' awk ' | awk '/Xvfb.*${DISPLAY}/  { print $2}' > $pidfile
            pid=`cat $pidfile`
            if [ "$pid" == "" ]
            then
              echo start Xvfb on display ${DISPLAY}
      #check /etc/dbus-1/system.d/xorg-server.conf if dbus error
              #Xvfb ${DISPLAY} -render -auth XauthXvfb 1> log/xvfb.log 2>&1 &
              Xvfb ${DISPLAY}  1> log/xvfb.log 2>&1 & <== 將上一行改成這樣
            fi
            rm $pidfile
    
            sleep 1
    fi
    ... 
    

    TIPs:

    執行 stsTrunk_linux boot 以後,需等一分鐘,所有程式才會開啟完畢,可以使用 ps -ef | grep stsuser 檢查

    啟動指令可以改成 stsTrunk_linux start,一樣可以開啟所有程式,且等待時間較短

    關閉指令為 stsTrunk_linux stop

    Q&A

    錯誤: xvfb.log

    [dix] Could not init font path element catalogue:/etc/X11/fontpath.d, removing from list!
    [dix] Could not init font path element built-ins, removing from list!

    Fatal server error:
    could not open default font 'fixed'

    Ans: 將套件 libXfont 更新至最新版

    yum update libXfont
    
    標籤 (Edit tags)
    • No tags
    您必須 登入 才能發佈評論。
    Powered by MindTouch Core