• <strike id="fdgpu"><input id="fdgpu"></input></strike>
    <label id="fdgpu"></label>
    <s id="fdgpu"><code id="fdgpu"></code></s>

  • <label id="fdgpu"></label>
  • <span id="fdgpu"><u id="fdgpu"></u></span>

    <s id="fdgpu"><sub id="fdgpu"></sub></s>
     首頁 > 新聞 > 專家觀點(diǎn) >

    《FreeSWITCH: VoIP實(shí)戰(zhàn)》: 運(yùn)行 FreeSWITCH

    2012-08-15 13:55:53   作者:杜金房   來源:FreeSWITCH    評(píng)論:0  點(diǎn)擊:


      命令行參數(shù)

      一般來說,F(xiàn)reeSWITCH 不需要任何命令行參數(shù)就可以啟動(dòng),但在某些情況下,你需要以一些特殊的參數(shù)啟動(dòng)。在此,僅作簡(jiǎn)單介紹。如果你知道是什么意思,那么你就可以使用,如果不知道,多半你用不到。

    使用 freeswitch -help 或 freeswitch --help 會(huì)顯示以下信息:

    -nf                    -- no forking
    -u [user]              -- 啟動(dòng)后以非 root 用戶 user 身份運(yùn)行
    -g [group]             -- 啟動(dòng)后以非 root 組 group 身份運(yùn)行
    -help                  -- 顯示本幫助信息
    -version               -- 顯示版本信息
    -waste                 -- 允許浪費(fèi)內(nèi)存,F(xiàn)reeSWITCH 僅需 240K 的棧空間
                              你可以使用 ulimit -s 240 限制棧空間使用,或使用該選擇忽略警告信息
    -core                  -- 出錯(cuò)時(shí)進(jìn)行內(nèi)核轉(zhuǎn)儲(chǔ)
    -hp                    -- 以高優(yōu)先級(jí)運(yùn)行
    -vg                    -- 在 valgrind 下運(yùn)行,調(diào)試內(nèi)存泄露時(shí)使用
    -nosql                 -- 不使用 SQL,show channels 類的命令將不能顯示結(jié)果
    -heavy-timer           -- 更精確的時(shí)鐘。可能會(huì)更精確,但對(duì)系統(tǒng)要求更高
    -nonat                 -- 如果路由器支持 uPnP 或 NAT-PMP,則 FreeSWITCH
                              可以自動(dòng)解決 NAT 穿越問題。如果路由器不支持,則該選項(xiàng)可以使啟動(dòng)更快
    -nocal                 -- 關(guān)閉時(shí)鐘核準(zhǔn)。FreeSWTICH 理想的運(yùn)行環(huán)境是 1000 Hz 的內(nèi)核時(shí)鐘
                              如果你的內(nèi)核時(shí)鐘小于 1000 Hz 或在虛擬機(jī)上,可以嘗試關(guān)閉該選項(xiàng)
    -nort                  -- 關(guān)閉實(shí)時(shí)時(shí)鐘
    -stop                  -- 關(guān)閉 FreeSWTICH,它會(huì)在 run 目錄中查找 PID文件
    -nc                    -- 啟動(dòng)到后臺(tái)模式,沒有控制臺(tái)
    -c                     -- 啟動(dòng)到控制臺(tái),默認(rèn)
    -conf [confdir]        -- 指定其它的配置文件所在目錄,須與 -log、 -db 合用
    -log [logdir]          -- 指定其它的日志目錄
    -run [rundir]          -- 指定其它存放 PID 文件的運(yùn)行目錄
    -db [dbdir]            -- 指定其它數(shù)據(jù)庫目錄
    -mod [moddir]          -- 指定其它模塊目錄
    -htdocs [htdocsdir]    -- 指定其它 HTTP 根目錄
    -scripts [scriptsdir]  -- 指定其它腳本目錄

      系統(tǒng)啟動(dòng)腳本

      在學(xué)習(xí)調(diào)試階段,你可以啟動(dòng)到前臺(tái),而系統(tǒng)真正運(yùn)行時(shí),你可以使用 -nc 參數(shù)啟動(dòng)到后臺(tái),然后通過查看 log/freeswitch.log 跟蹤系統(tǒng)運(yùn)行情況(你可以用 tail -f 命令實(shí)時(shí)跟蹤,我一般使用 less)。

      一般情況下,啟動(dòng)到前臺(tái)更容易調(diào)試,但你又不想在每次關(guān)閉 Terminal 時(shí)停止 FreeSWITCH,那么,你可以借助 screen 來實(shí)現(xiàn)。

      在真正的生產(chǎn)系統(tǒng)上,你需要它能跟系統(tǒng)一起啟動(dòng)。在 *nix 系統(tǒng)上,啟動(dòng)腳本一般放在 /etc/init.d/。你可以在系統(tǒng)源代碼目錄下找到不同系統(tǒng)啟動(dòng)腳本 debian/freeswitch.init 及 build/freeswitch.init.*,參考使用。在 Windows 上,你也可以注冊(cè)為 Windows 服務(wù),參見附錄中的 FAQ。

      控制臺(tái)與命令客戶端

      系統(tǒng)不帶參數(shù)會(huì)啟動(dòng)到控制臺(tái),在控制臺(tái)上你可以輸入各種命令以控制或查詢 FreeSWITCH 的狀態(tài)。試試輸入以下命令:

    version           -- 顯示當(dāng)前版本
    status            -- 顯示當(dāng)前狀態(tài)
    sofia status      -- 顯示 sofia 狀態(tài)
    help              -- 顯示幫助

      為了調(diào)試方便,F(xiàn)reeSWITCH 還在 conf/autoload_configs/switch.conf.xml 中定義了一些控制臺(tái)快捷鍵。你可以通過F1-F12來使用它們(不過,在某些操作系統(tǒng)上,有些快捷鍵可能與操作系統(tǒng)的相沖突,那你就只直接輸入這些命令或重新定義他們了)。

    <cli-keybindings>
      <key name="1" value="help"/>
      <key name="2" value="status"/>
      <key name="3" value="show channels"/>
      <key name="4" value="show calls"/>
      <key name="5" value="sofia status"/>
      <key name="6" value="reloadxml"/>
      <key name="7" value="console loglevel 0"/>
      <key name="8" value="console loglevel 7"/>
      <key name="9" value="sofia status profile internal"/>
      <key name="10" value="sofia profile internal siptrace on"/>
      <key name="11" value="sofia profile internal siptrace off"/>
      <key name="12" value="version"/>
    </cli-keybindings>

      FreeSWITCH 是 Client-Server結(jié)構(gòu),不管 FreeSWITCH 運(yùn)行在前臺(tái)還是后臺(tái),你都可以使用客戶端軟件 fs_cli 連接 FreeSWITCH.

      fs_cli 是一個(gè)類似 Telnet 的客戶端(也類似于 Asterisk 中的 asterisk -r命令),它使用 FreeSWITCH 的 ESL(Event Socket Library)庫與 FreeSWITCH 通信。當(dāng)然,需要加載模塊 mod_event_socket。該模塊是默認(rèn)加載的。

      正常情況下,直接輸入 bin/fs_cli 即可連接上,并出現(xiàn)系統(tǒng)提示符。如果出現(xiàn):

      [ERROR] libs/esl/fs_cli.c:652 main() Error Connecting [Socket Connection Error]

      這樣的錯(cuò)誤,說明 FreeSWITCH 沒有啟動(dòng)或 mod_event_socket 沒有正確加載,請(qǐng)檢查TCP端口8021端口是否處于監(jiān)聽狀態(tài)或被其它進(jìn)程占用。

      fs_cli 也支持很多命令行參數(shù),值得一提的是 -x 參數(shù),它允許執(zhí)行一條命令后退出,這在編寫腳本程序時(shí)非常有用(如果它能支持管道會(huì)更有用,但是它不支持):

    bin/fs\_cli -x "version"
    bin/fs\_cli -x "status"

      其它的參數(shù)都可以通過配置文件來實(shí)現(xiàn),在這里就不多說了。可以參見:http://wiki.freeswitch.org/wiki/Fs_cli

      使用fs_cli,不僅可以連接到本機(jī)的 FreeSWITCH,也可以連接到其它機(jī)器的 FreeSWITCH 上(或本機(jī)另外的 FreeSWITCH 實(shí)例上),通過在用戶主目錄下編輯配置文件 .fs_cli_conf(注意前面的點(diǎn)“.”),可以定義要連接的多個(gè)機(jī)器:

    [server1]
    host     => 192.168.1.10
    port     => 8021
    password => secret_password
    debug    => 7

    [server2]
    host     => 192.168.1.11
    port     => 8021
    password => someother_password
    debug    => 0

      注意:如果要連接到其它機(jī)器,要確保 FreeSWITCH 的 Event Socket 是監(jiān)聽在真實(shí)網(wǎng)卡的 IP 地址上,而不是127.0.0.1。另外,在UNIX中,以點(diǎn)開頭的文件是隱藏文件,普通的 ls 命令是不能列出它的,可以使用 ls -a。

      一旦配置好,就可以這樣使用它:

    bin/fs_cli server1
    bin/fs_cli server2

      在 fs_cli 中,有幾個(gè)特殊的命令,它們是以 “/” 開頭的,這些命令并不直接發(fā)送到 FreeSWITCH,而是先由 fs_cli 處理。/quit、/bye、/exit、Ctrl + D 都可以退出 fs_cli;/help是幫助。

    分享到: 收藏

    專題

    亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 潞西市| 连州市| 东城区| 阿拉善左旗| 苏州市| 盐山县| 辽中县| 闽清县| 中卫市| 安化县| 渭源县| 乌鲁木齐市| 麻江县| 九龙坡区| 永昌县| 连云港市| 大埔区| 南平市| 定安县| 农安县| 唐山市| 镇雄县| 诸暨市| 唐海县| 峨眉山市| 建瓯市| 三穗县| 万宁市| 刚察县| 米易县| 临清市| 兴和县| 台北市| 新巴尔虎右旗| 永靖县| 章丘市| 博湖县| 平度市| 阿坝| 岗巴县| 都兰县| http://444 http://444 http://444 http://444 http://444 http://444