kamailio源文件modules.lst的內容解釋

在執行make cfg 后,在kamailio/src目錄下有一個文件modules.lst,內容如下:

# this file is autogenerated by make modules-cfg# the list of sub-directories with modules
modules_dirs:=modules# the list of module groups to compile
cfg_group_include=# the list of extra modules to compile
include_modules= # the list of static modules
static_modules= # the list of modules to skip from compile list
skip_modules= # the list of modules to exclude from compile list
exclude_modules= acc_json acc_radius app_java app_lua app_perl app_python app_python3 app_python3s app_ruby app_ruby_proc auth_ephemeral auth_radius cdp cdp_avp cnxcc cplc crypto db2_ldap db_berkeley db_cassandra db_mongodb db_mysql db_oracle db_perlvdb db_postgres db_redis db_sqlite db_unixodbc dialplan dnssec erlang evapi gcrypt geoip geoip2 gzcompress h350 http_async_client http_client ims_auth ims_charging ims_dialog ims_diameter_server ims_icscf ims_ipsec_pcscf ims_isc ims_ocs ims_qos ims_qos_npn ims_registrar_pcscf ims_registrar_scscf ims_usrloc_pcscf ims_usrloc_scscf jansson janssonrpcc json jsonrpcc jwt kafka kazoo lcr ldap log_systemd lost lwsc memcached microhttpd misc_radius mqtt nats ndb_cassandra ndb_mongodb ndb_redis nghttp2 nsq outbound peering phonenum presence presence_conference presence_dfks presence_dialoginfo presence_mwi presence_profile presence_reginfo presence_xml pua pua_bla pua_dialoginfo pua_json pua_reginfo pua_rpc pua_usrloc pua_xmpp rabbitmq regex rls rtp_media_server ruxc sctp secsipid secsipid_proc slack snmpstats stirshaken systemdops tls tls_wolfssl tlsa topos_redis utils uuid websocket xcap_client xcap_server xhttp_pi xmlops xmlrpc xmpp $(skip_modules)modules_all= $(filter-out modules/CVS modules/CMakeLists.txt, $(wildcard modules/*))
modules_noinc= $(filter-out $(addprefix modules/, $(exclude_modules) $(static_modules)), $(modules_all)) 
modules= $(filter-out $(modules_noinc), $(addprefix modules/, $(include_modules) )) $(modules_noinc) 
modules_configured:=1

這段代碼是一個Makefile片段,用于配置和選擇要編譯的模塊。它定義了一些變量和規則,用于控制哪些模塊應該被編譯,哪些模塊應該被排除。以下是對代碼的詳細解釋:

1. 模塊目錄

modules_dirs:=modules
  • modules_dirs 變量指定了包含模塊的子目錄。這里只有一個目錄 modules

2. 模塊組

cfg_group_include=
  • cfg_group_include 變量用于指定要編譯的模塊組。這里為空,表示沒有特定的模塊組被包含。

3. 額外模塊

include_modules= 
  • include_modules 變量用于指定額外的模塊,這些模塊將被包含在編譯列表中。這里為空,表示沒有額外的模塊被包含。

4. 靜態模塊

static_modules= 
  • static_modules 變量用于指定靜態模塊。靜態模塊通常是必須包含的模塊。這里為空,表示沒有靜態模塊。

5. 跳過模塊

skip_modules= 
  • skip_modules 變量用于指定要跳過的模塊。這些模塊將不會被編譯。這里為空,表示沒有模塊被跳過。

6. 排除模塊

exclude_modules= acc_json acc_radius app_java app_lua app_perl app_python app_python3 app_python3s app_ruby app_ruby_proc auth_ephemeral auth_radius cdp cdp_avp cnxcc cplc crypto db2_ldap db_berkeley db_cassandra db_mongodb db_mysql db_oracle db_perlvdb db_postgres db_redis db_sqlite db_unixodbc dialplan dnssec erlang evapi gcrypt geoip geoip2 gzcompress h350 http_async_client http_client ims_auth ims_charging ims_dialog ims_diameter_server ims_icscf ims_ipsec_pcscf ims_isc ims_ocs ims_qos ims_qos_npn ims_registrar_pcscf ims_registrar_scscf ims_usrloc_pcscf ims_usrloc_scscf jansson janssonrpcc json jsonrpcc jwt kafka kazoo lcr ldap log_systemd lost lwsc memcached microhttpd misc_radius mqtt nats ndb_cassandra ndb_mongodb ndb_redis nghttp2 nsq outbound peering phonenum presence presence_conference presence_dfks presence_dialoginfo presence_mwi presence_profile presence_reginfo presence_xml pua pua_bla pua_dialoginfo pua_json pua_reginfo pua_rpc pua_usrloc pua_xmpp rabbitmq regex rls rtp_media_server ruxc sctp secsipid secsipid_proc slack snmpstats stirshaken systemdops tls tls_wolfssl tlsa topos_redis utils uuid websocket xcap_client xcap_server xhttp_pi xmlops xmlrpc xmpp $(skip_modules)
  • exclude_modules 變量列出了所有要排除的模塊。這些模塊將不會被編譯。列表中包含了許多模塊名稱,并且還包含了 $(skip_modules),這意味著 skip_modules 中的模塊也會被排除。

7. 所有模塊

modules_all= $(filter-out modules/CVS modules/CMakeLists.txt, $(wildcard modules/*))
  • modules_all 變量列出了 modules 目錄下的所有模塊,但排除了 CVSCMakeLists.txt 文件。

8. 不包含的模塊

modules_noinc= $(filter-out $(addprefix modules/, $(exclude_modules) $(static_modules)), $(modules_all)) 
  • modules_noinc 變量列出了所有不被包含的模塊。它從 modules_all 中排除了 exclude_modulesstatic_modules 中指定的模塊。

9. 最終模塊列表

modules= $(filter-out $(modules_noinc), $(addprefix modules/, $(include_modules) )) $(modules_noinc) 
  • modules 變量是最終的模塊列表。它包含了 include_modules 中指定的模塊,并且排除了 modules_noinc 中的模塊。

10. 配置標志

modules_configured:=1
  • modules_configured 變量被設置為 1,表示模塊配置已經完成。

總結

這段代碼的主要目的是根據配置變量(如 include_modulesexclude_modulesstatic_modules 等)來生成最終的模塊列表 modules,以便在編譯時只編譯需要的模塊。通過這種方式,可以靈活地控制哪些模塊被包含在編譯過程中,哪些模塊被排除。

如果要編譯所有模塊,進行如下操作

如果你想要編譯所有模塊,可以按照以下步驟操作:

1. 修改 exclude_modules 變量

將所有需要排除的模塊都從 exclude_modules 中移除,確保沒有模塊被排除。你可以直接清空 exclude_modules 變量,或者確保沒有任何模塊在其中。

exclude_modules = 

2. 清空 include_modulesstatic_modules

確保沒有在 include_modulesstatic_modules 中指定特定的模塊,這樣所有模塊都會按照默認的設置進行編譯。

include_modules = 
static_modules = 

3. 保持 modules_all 變量

保持原樣,不需要做任何修改。modules_all 會列出所有的模塊。

modules_all = $(filter-out modules/CVS modules/CMakeLists.txt, $(wildcard modules/*))

4. 重新生成配置文件

完成上述修改后,重新運行 make modules-cfg 來重新生成配置文件。所有模塊應該都包含在內。

5. 編譯 Kamailio

最后,運行 make 來開始編譯,所有模塊都會被編譯。

make

通過這些步驟,你可以確保編譯所有的模塊。如果之前已經修改過配置文件,只需清空排除和特定包含的模塊設置,默認情況下會編譯所有模塊。

最終的內容

如果你想要編譯所有模塊,最終的配置文件內容應該類似于以下內容:

# this file is autogenerated by make modules-cfg# the list of sub-directories with modules
modules_dirs := modules# the list of module groups to compile
cfg_group_include =# the list of extra modules to compile
include_modules = # the list of static modules
static_modules = # the list of modules to skip from compile list
skip_modules = # the list of modules to exclude from compile list
exclude_modules = # the list of modules that will be compiled
modules_all = $(filter-out modules/CVS modules/CMakeLists.txt, $(wildcard modules/*))# the list of modules to compile (no exclusions or specific includes)
modules_noinc = $(modules_all) modules = $(modules_noinc)modules_configured := 1

解釋:

  1. include_modules = static_modules = :這兩個變量是空的,意味著沒有額外指定要包含或靜態編譯的模塊。
  2. exclude_modules = :這個變量是空的,意味著沒有模塊被排除。
  3. modules_noinc = $(modules_all):這個變量包含了所有模塊,因為沒有排除任何模塊。
  4. modules = $(modules_noinc):最終的 modules 變量包含了所有模塊,即所有模塊都會被編譯。

結果:

通過這些修改,Kamailio 將編譯所有模塊,沒有任何排除或指定的模塊。你只需要執行 make 來編譯所有模塊了。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/67899.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/67899.shtml
英文地址,請注明出處:http://en.pswp.cn/web/67899.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

音視頻入門基礎:RTP專題(7)——RTP協議簡介

一、引言 本文對RTP協議進行簡介。在簡介之前,請各位先下載RTP的官方文檔《RFC 3550》和《RFC 3551》。《RFC 3550》總共有89頁,《RFC 3551》總共有44頁。本文下面所說的“頁數”是指在pdf閱讀器中顯示的頁數: 二、RTP協議簡介 根據《RFC 35…

HTTP協議的無狀態和無連接

無連接 ①無連接的含義 這里所說的無連接并不是指不連接,客戶與服務器之間的HTTP連接是一種一次性連接,它限制每次連接只處理一個請求,當服務器返回本次請求的應答后便立即關閉連接,下次請求再重新建立連接。這種一次性連接主要考…

Java知識速記:Lambda表達式

Java知識速記:Lambda表達式 一、什么是Lambda表達式? Lambda表達式是Java 8引入的一種簡潔的表示函數式接口的方法,它使得可以將函數作為參數傳遞,并且可以在代碼中以更簡潔的方式實現函數式編程。Lambda表達式的基本語法如下&a…

第31章 星騙計劃的推進與團隊協作

我回到自己的辦公室,在座位上剛坐下沒多久,還沒來得及好好整理一下思緒,就聽到一陣敲門聲。“請進。” 我抬頭說道,聲音中帶著一絲疲憊。借助情緒監測系統,我察覺到自己的壓力指數正處于高位,于是暗自提醒自…

半導體器件與物理篇7 微波二極管、量子效應和熱電子器件

基本微波技術 微波頻率:微波頻率涵蓋約從0.1GHz到3000GHz,相當于波長從300cm到0.01cm。 分布效應:電子部件在微波頻率,與其在較低頻率的工作行為不同。 輸運線:一個由電阻、電容、電感三種等效基本電路部件所組成的…

【C++】B2122 單詞翻轉

博客主頁: [小????????] 本文專欄: C 文章目錄 💯前言💯題目描述輸入格式輸出格式樣例 #1樣例輸入 #1樣例輸出 #1 💯一、我的做法代碼實現:代碼解析思路分析 💯二、老師的第一種做法代碼實現&a…

麥芯(MachCore)應用開發教程5 --- 工位和晶圓傳輸

麥芯是構建在windows系統上的設備應用操作系統,利用該系統可以快速高效的開發一款設備專用軟件。希望進一步了解請email: acloud163.com 黃國強 2025/02/03 一、工位與子設備的關系 想象工廠中的流水線工作站,每個工位(Station&#xff09…

Python從0到100(八十七):CNN網絡詳細介紹及WISDM數據集模型仿真

前言: 零基礎學Python:Python從0到100最新最全教程。 想做這件事情很久了,這次我更新了自己所寫過的所有博客,匯集成了Python從0到100,共一百節課,幫助大家一個月時間里從零基礎到學習Python基礎語法、Pyth…

C++ Primer 迭代器

歡迎閱讀我的 【CPrimer】專欄 專欄簡介:本專欄主要面向C初學者,解釋C的一些基本概念和基礎語言特性,涉及C標準庫的用法,面向對象特性,泛型特性高級用法。通過使用標準庫中定義的抽象設施,使你更加適應高級…

【C++篇】位圖與布隆過濾器

目錄 一,位圖 1.1,位圖的概念 1.2,位圖的設計與實現 1.5,位圖的應用舉例 1.4,位圖常用應用場景 二,布隆過濾器 2.1,定義: 2.2,布隆過濾器的實現 2.3, 應…

VR觸感數據手套:觸感反饋賦予虛擬交互沉浸式體驗

隨著動作捕捉技術的蓬勃發展,動捕數據手套成為了手部動作捕捉與虛擬交互的便捷工具,為人們打開了通往虛擬世界的新大門。在眾多產品中,mHand Pro作為一款多功能兼具的VR動作捕捉數據手套,憑借其卓越的性能,在手部動作捕…

C# 結構體介紹

.NET學習資料 .NET學習資料 .NET學習資料 一、結構體的定義與基本使用 (一)定義結構體 在 C# 中,使用struct關鍵字來創建結構體。它就像是一個模板,能定義出符合特定需求的數據結構。比如,若要跟蹤圖書館中書的信息…

圖像噪聲處理技術:讓圖像更清晰的藝術

在這個數字化時代,圖像作為信息傳遞的重要載體,其質量直接影響著我們的視覺體驗和信息解讀。然而,在圖像采集、傳輸或處理過程中,難免會遇到各種噪聲干擾,如高斯噪聲、椒鹽噪聲等,這些噪聲會降低圖像的清晰…

追逐低空經濟,無人機研學技術詳解

追逐低空經濟,無人機研學技術成為了一個備受關注的領域。以下是對無人機研學技術的詳細解析: 一、無人機研學技術概述 無人機研學技術是以無人機為核心,結合航空科技、電子技術、機械原理等多領域知識的一種教育實踐活動。它旨在通過理論學習…

(done) MIT6.S081 2023 學習筆記 (Day7: LAB6 Multithreading)

網頁:https://pdos.csail.mit.edu/6.S081/2023/labs/thread.html (任務1教會了你如何用 C 語言調用匯編,編譯后鏈接即可) 任務1:Uthread: switching between threads (完成) 在這個練習中,你將設計一個用戶級線程系統中的上下文切…

Kubernetes學習之通過Service訪問Pod

一、基礎概述 1.當通過deployment等controller動態創建和銷毀pod使得每個pod都有自己的ip地址,當controller用新的pod替代發生故障的pod時,新的pod會分配到新的ip地址,那么客戶端如何穩定的找到并訪問pod提供的服務。 2.創建service service從…

【優先算法】專題——前綴和

目錄 一、【模版】前綴和 參考代碼: 二、【模版】 二維前綴和 參考代碼: 三、尋找數組的中心下標 參考代碼: 四、除自身以外數組的乘積 參考代碼: 五、和為K的子數組 參考代碼: 六、和可被K整除的子數組 參…

CDDIS從2025年2月開始數據遷移

CDDIS 將從 2025 年 2 月開始將我們的網站從 cddis.nasa.gov 遷移到 earthdata.nasa.gov,并于 2025 年 6 月結束。 期間可能對GAMIT聯網數據下載造成影響。

谷歌Titans模型論文解析,Transformer迎來變革拐點——DeepSeek能否“接招”?

一、引入 Titans 模型 我們將深入探討谷歌研究院的一篇新論文《Titans: Learning to Memorize at Test Time》,該論文介紹了一種名為 Titans 的新模型架構。 Titans 在緩解 Transformer 二次方成本問題的同時,展現出了令人期待的成果。Titans 模型的設…

新春賀歲,共赴AGI之旅

點擊藍字 關注我們 AI TIME歡迎每一位AI愛好者的加入! 往期精彩文章推薦 季姮教授獨家文字版干貨 | 面向知識淵博的大語言模型 關于AI TIME AI TIME源起于2019年,旨在發揚科學思辨精神,邀請各界人士對人工智能理論、算法和場景應用的本質問題…