kakailio官网推荐的安装流程ubuntu 22.04
https://kamailio.org/docs/tutorials/6.0.x/kamailio-install-guide-git/
# 非必须项
wget -O- https://deb.kamailio.org/kamailiodebkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/kamailio.gpg
在/etc/apt/sources.list文件追加以下内容
deb [signed-by=/usr/share/keyrings/kamailio.gpg] http://deb.kamailio.org/kamailio60 stretch main
deb-src [signed-by=/usr/share/keyrings/kamailio.gpg] http://deb.kamailio.org/kamailio60 stretch maindeb [signed-by=/usr/share/keyrings/kamailio.gpg] http://deb.kamailio.org/kamailio60 buster main
deb-src [signed-by=/usr/share/keyrings/kamailio.gpg] http://deb.kamailio.org/kamailio60 buster maindeb [signed-by=/usr/share/keyrings/kamailio.gpg] http://deb.kamailio.org/kamailio60 bullseye main
deb-src [signed-by=/usr/share/keyrings/kamailio.gpg] http://deb.kamailio.org/kamailio60 bullseye maindeb [signed-by=/usr/share/keyrings/kamailio.gpg] http://deb.kamailio.org/kamailio60 bookworm main
deb-src [signed-by=/usr/share/keyrings/kamailio.gpg] http://deb.kamailio.org/kamailio60 bookworm maindeb [signed-by=/usr/share/keyrings/kamailio.gpg] http://deb.kamailio.org/kamailio60 bionic main
deb-src [signed-by=/usr/share/keyrings/kamailio.gpg] http://deb.kamailio.org/kamailio60 bionic maindeb [signed-by=/usr/share/keyrings/kamailio.gpg] http://deb.kamailio.org/kamailio60 focal main
deb-src [signed-by=/usr/share/keyrings/kamailio.gpg] http://deb.kamailio.org/kamailio60 focal maindeb [signed-by=/usr/share/keyrings/kamailio.gpg] http://deb.kamailio.org/kamailio60 jammy main
deb-src [signed-by=/usr/share/keyrings/kamailio.gpg] http://deb.kamailio.org/kamailio60 jammy maindeb [signed-by=/usr/share/keyrings/kamailio.gpg] http://deb.kamailio.org/kamailio60 noble main
deb-src [signed-by=/usr/share/keyrings/kamailio.gpg] http://deb.kamailio.org/kamailio60 noble main
apt update
apt full-upgrade
apt install -y make autoconf pkg-config git gcc g++ flex bison \libssl-dev default-libmysqlclient-dev
mkdir -p /usr/local/src/kamailio-6.0
cd /usr/local/src/kamailio-6.0
git clone --depth 1 --branch 6.0 https://github.com/kamailio/kamailio kamailio
cd kamailio
make cfg PREFIX=/usr/local/kamailio
make all #make -j$(nproc) all
make install
make install-systemd-debian
部分模块需要的依赖
apt install libwolfssl-dev -y
apt install liblua5.3-dev -y # lua脚本
apt install libxml2-dev -y #cdp
apt install libhiredis-dev -y #cnxcc
apt install libevent-dev -y #cnxcc
apt install libldap2-dev -y #db2_ldap
apt install libsasl2-dev -y #db2_ldap
apt install unixodbc-dev -y #db_unixodbc
apt install libpcre2-dev -y #dialplan
# apt install libldns-dev -y # dnssec还需要validator 安装失败 暂时不加载
apt install -y erlang # enum
apt install libev-dev -y # evapi
apt install libgcrypt-dev -y #gcrypt
apt install libgeoip-dev -y # geoip
apt install libmaxminddb-dev -y #geoip2
apt install libcurl4-openssl-dev -y #http_async_client
apt install libmnl-dev # ims_ipsec_pcscf
apt install libjson-c-dev #json
apt install librabbitmq-dev -y
apt-get install uuid-dev #kazoo
apt install libsystemd-dev -y #log_systemd
apt install libwebsockets-dev -y #lwsc
apt install libmemcached-dev -y #memcached
apt install libmicrohttpd-dev -y #microhttpd
apt install libmosquitto-dev -y #mqtt
apt install libprotobuf-c-dev
apt install libphonenumber-dev -y #libphonenumber
git clone git@github.com:nats-io/nats.c.git . #nats
apt install libnghttp2-dev -y #nghttp2git clone https://github.com/miconda/ruxc
cd ruxc
make lib
make install
apt-get install libsctp-dev #sctp
# secsipid_proc
apt install libsnmp-dev -y #snmpstats
apt install libpcre2-dev -y #dialplan
#stirshaken
# tlsa
git submodule update --init --recursive
已经安装加载的包
acc_diameter,drouting,log_custom,pua_reginfostatsd,acc_json,enum,log_systemd,pua_rpcstun,acc,erlang,lost,pua,sworker,alias_db,evapi,lrkproxy,pua_usrlocsystemdops,app_jsdt,evrexec,lwsc,pua_xmpptcpops,app_lua,exec,mangler,p_usrloctextops,async,file_out,math,pv_headerstextopsx,auth_db,gcrypt,matrix,pv,timer,auth_diametergeoip2,maxfwd,pvtpl,tlsa,auth_ephemeralgeoip,mediaproxy,qos,tls,auth,group,memcached,rabbitmqtls_wolfssl,auth_xkeysgzcompress,microhttpd,ratelimittmrec,avpops,h350,misctest,regex,tm,avp,htable,mohqueue,registrartmx,benchmarkhttp_async_clientmqtt,rls,topoh,
blst,http_client,mqueue,rr,topos_htable,call_controlimc,msilo,rtimertopos_redis,call_obj,ims_auth,msrp,rtjsontopos,arrierrouteims_charging,mtree,rtpenginetsilo,cdp_avp,ims_dalog,nathelper,rtpproxyuac_redirect,cdp,ims_diameter_servernats,ruxc,uac,cfg_db,ims_icscf,nat_traversal,sanityuid_auth_db,cfg_rpc,ims_ipsec_pcscfndb_redis,sca,uid_avp_db,cfgtims_isc,nghttp2,sctp,uid_domain,cfgutils,ims_ocs,nosip,sdpopsuid_gflags,cnxcc,ims_qos_npn,outbound,seas,uid_uri_db,corex,ims_qos,path,secfilteruri_db,counters,ims_registrar_pcscfpdb,secsipiduserblocklist,cplc,ims_registrar_scscfpdt,sipcaptureusrloc,crypto,ims_usrloc_pcscfpermissions,sipdumputils,ctl,ims_usrloc_scscfphonenum,sipjsonuuid,db2_ldap,ifluxdbc,pike,siprepowebsocket,db2_ops,ipops,pipelimit,siptracexcap_clent,db_clusterjanssonrpcc,posops,sipt,xcap_server,db_flatstorejansson,prefix_route,siputilsxhttp_pi,db_mysql,jsonrpcc,presence_conferenceslack,xhttp_prom,db_redis,jsonrpcs,presence_dfks,sl,xhttp_rpc,db_text,json,presence_dialoginfosmsopsxhttp,db_unixodbcjwt,presence_mwi,sms,xlog,debugger,kafka,presence_profilesnmpstatsxmlops,dialog,kazoo,presence_reginfospeeddialxmlrpc,dialplan,keepalive,presence,sqlopsxmpp,dispatcherkemix,presence_xml,ss7opsxprint,diversionkex,pua_bla,sst,domainpolicylcr,pua_dialoginfostatistics,domain,ldap,pua_json,statsc
加载失败的模块
stirshaken secsipid_proc rtp_media_server peering nsq ndb_mongodb ndb_cassandra dnssec dlgs dmq dmq_usrloc db_oracle db_sqlite db_perlvdb db_postgres db_berkeley db_cassandra db_mongodb app_java app_perl app_python app_python3 app_python3s app_ruby app_ruby_proc acc_radius auth_radius misc_radius $(skip_modules)
需要通过git编译的模块
# acc_json
https://github.com/akheron/jansson.git
报错 -- Could NOT find Sphinx (missing: Sphinx-build_EXECUTABLE Sphinx_VERSION_STRING)
CMake Warning at CMakeLists.txt:370 (message):Sphinx not found. Cannot generate documentation!Set -DJANSSON_BUILD_DOCS=OFF to get rid of this message.-- Configuring done
-- Generating done
-- Build files have been written to: /usr/local/src/kamailio-6.0/jansson/build
解决方案
apt-get install python3-sphinx#jwt.so libjwt - 最低版本 1.12.0。# https://github.com/benmcollins/libjwt/archive/refs/tags/v1.12.0.tar.gz
https://github.com/benmcollins/libjwt/archive/refs/tags/v1.12.1.tar.gzCMake Warning (dev) at /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:438 (message):The package name passed to `find_package_handle_standard_args` (LibJansson)does not match the name of the calling package (Jansson). This can lead toproblems in calling code that expects `find_package` result variables(e.g., `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):cmake/FindJansson.cmake:25 (find_package_handle_standard_args)libjwt/CMakeLists.txt:46 (find_package)
This warning is for project developers. Use -Wno-dev to suppress it.有以上警告可以不用理会#kafka.so
# 据报道,像 1.1.0 这样的旧 librdkafka 版本可以工作。 较新的版本应该可以正常工作(例如:版本 1.2.2-RC1 也可以正常工作) https://github.com/edenhill/librdkafka/releases
https://github.com/confluentinc/librdkafka/archive/refs/tags/v1.2.2-RC1.tar.gzdisabling linker-script since python is not available
#如果还没有安装 Python,可以忽略该警告,因为它只是影响某些特性或功能的生成,并不会影响核心功能#nats.so
https://github.com/nats-io/nats.c/archive/refs/tags/v3.9.2.tar.gz##ruxc
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.bashrc
source $HOME/.cargo/env
git clone https://github.com/miconda/ruxc
cd ruxc
make lib
make installLD (gcc) [M tlsa.so] tlsa.so
sources = tls_cfg.c tls_config.c tls_ct_wrq.c tls_domain.c tls_init.c tls_rpc.c tls_select.c tls_server.c tls_util.c tls_verify.c tls_wolfssl_mod.c , auto_gen = , objs = tls_cfg.o tls_config.o tls_ct_wrq.o tls_domain.o tls_init.o tls_rpc.o tls_select.o tls_server.o tls_util.o tls_verify.o tls_wolfssl_mod.o
sources = tls_cfg.c tls_config.c tls_ct_wrq.c tls_domain.c tls_init.c tls_rpc.c tls_select.c tls_server.c tls_util.c tls_verify.c tls_wolfssl_mod.c , auto_gen = , objs = tls_cfg.o tls_config.o tls_ct_wrq.o tls_domain.o tls_init.o tls_rpc.o tls_select.o tls_server.o tls_util.o tls_verify.o tls_wolfssl_mod.o
/bin/sh: 3: ./autogen.sh: not found
env: ‘./configure’: No such file or directory
/bin/sh: 3: ./autogen.sh: not found
make[2]: *** [Makefile:28: ../../../misc/external/wolfssl/build/include/wolfssl/options.h] Error 127
make[2]: *** Waiting for unfinished jobs....
env: ‘./configure’: No such file or directory
make[2]: *** [Makefile:28: ../../../misc/external/wolfssl/build/lib/libwolfssl.a] Error 127
make[1]: *** [Makefile:509: modules] Error 1
make[1]: Leaving directory '/usr/local/src/kamailio-6.0/kamailio/src'
make: *** [Makefile:34: all] Error 2git submodule update --init --recursive
最终文件内容
# 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= stirshaken secsipid_proc rtp_media_server peering nsq ndb_mongodb ndb_cassandra dnssec dlgs dmq dmq_usrloc db_oracle db_sqlite db_perlvdb db_postgres db_berkeley db_cassandra db_mongodb app_java app_perl app_python app_python3 app_python3s app_ruby app_ruby_proc acc_radius auth_radius misc_radius $(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
设置环境变量
echo 'export PATH=/usr/local/kamailio/sbin:$PATH' | sudo tee -a /etc/profile
source /etc/profile
备注
sudo apt-get install libwolfssl-dev
git clone --recursive https://github.com/wolfssl/wolfssl
cd wolfssl
./autogen.sh
./configure
make
sudo make install
sudo groupadd kamailio
sudo useradd -r -g kamailio -d /usr/local/kamailio -s /sbin/nologin kamailio
设置system管理及开机启动
/etc/systemd/system/kamailio.service > /dev/null <<EOF
[Unit]
Description=Kamailio SIP Server
After=network.target[Service]
Type=simple
User=kamailio
Group=kamailio
ExecStart=/usr/local/kamailio/sbin/kamailio -DD -P /var/run/kamailio/kamailio.pid -f /usr/local/kamailio/etc/kamailio/kamailio.cfg
PIDFile=/var/run/kamailio/kamailio.pid
RuntimeDirectory=kamailio
RuntimeDirectoryMode=0755
LimitNOFILE=65536[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl start kamailio
systemctl enable kamailio相关文章:
kakailio官网推荐的安装流程ubuntu 22.04
https://kamailio.org/docs/tutorials/6.0.x/kamailio-install-guide-git/ # 非必须项 wget -O- https://deb.kamailio.org/kamailiodebkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/kamailio.gpg在/etc/apt/sources.list文件追加以下内容 deb [signed-by/usr/sh…...
DeepSeek:全栈开发者视角下的AI革命者
目录 DeepSeek:全栈开发者视角下的AI革命者 写在前面 一、DeepSeek的诞生与定位 二、DeepSeek技术架构的颠覆性突破 1、解构算力霸权:从MoE架构到内存革命 2、多模态扩展的技术纵深 3、算法范式的升维重构 4、重构AI竞争规则 三、…...
协同探索与导航文献整理
文章目录 1.SOAR:异构无人机协同探索与拍摄以实现快速自主重建2. RACER: 一种使用分散式无人机群进行快速协同探索的方法3. 使用协作式纳米无人机在非结构化环境中进行最小感知探索4.GVP-MREP:通过动态拓扑图上的 Voronoi 分区进行快速且通信高效的多无人机探索5.森林的快速多无…...
C#结合html2canvas生成切割图片并导出到PDF
目录 需求 开发运行环境 实现 生成HTML范例片断 HTML元素转BASE64 BASE64转图片 切割长图片 生成PDF文件 小结 需求 html2canvas 是一个 JavaScript 库,它可以把任意一个网页中的元素(包括整个网页)绘制到指定的 canvas 中…...
AI安全最佳实践:AI云原生开发安全评估矩阵(上)
保护生成式 AI:生成式 AI 安全范围矩阵简介 生成式人工智能(生成式 AI)正在吸引各大企业的关注,并在全球各行各业中重塑客户体验。这一 AI 能力的飞跃,由数十亿参数的大语言模型(LLM)和Transfo…...
[ Spring ] Spring Boot Mybatis++ 2025
文章目录 StructureMyBatis Controller AbilitiesConfigure Plugins and RepositoriesApply Plugins and Add DependenciesMyBatis Spring PropertiesMyBatis ApplicationMyBatis BeansMyBatis MapperMyBatis Query Builder Structure this blog introduce 3 ways using mybat…...
JAVAweb学习日记(九) MySQL-事务索引
一、事务-介绍 示例代码: 二、事务-四大特性 三、索引-介绍 无索引:全表扫描(对应字段逐一比较) 有索引:根据索引结构高效获取数据 优缺点: 四、索引-结构 五、索引-操作语法...
企业加密软件(天锐绿盾)
天锐绿盾是一款功能强大的企业加密软件,以下是对其的详细介绍: 一、产品概述 天锐绿盾(又名绿盾信息安全管理软件),专注于企业数据防泄密,致力于为企业提供全方位的数据安全保障。其官网为www.drhchina.c…...
Python实现监督学习与无监督学习
在机器学习中,算法被广泛应用于解决实际问题。监督学习与无监督学习是其中两种重要的学习范式。监督学习通过已标注的数据进行训练,目标是学会预测未知数据的标签。而无监督学习不需要数据的标签,它专注于数据的结构和模式,通常用于聚类或降维等任务。 本教程的目标是帮助…...
Python网络自动化运维---批量登录设备
文章目录 目录 文章目录 前言 实验准备 一.批量登录 IP 连续的设备 1.1.1 实验代码 1.1.2 代码分段分解 1.1.3 实验结果验证 二.批量登录 IP 不连续的设备 2.2.1 实验代码 2.2.2 代码分段分解 2.2.3 实验结果验证 前言 在生产环境中,我们通常需要登录多个设备…...
如何抓取酒店列表: 揭开秘密
搜索酒店列表是一种强大的工具,可以从各种在线资源中收集有关住宿、价格和可用性的综合数据。无论您是要比较价格、分析市场趋势,还是要创建个性化的旅行计划,搜索都能让您有效地汇编所需的信息。在本文中,我们将介绍如何搜索酒店…...
day32-文件共享服务ftp与smb
文件共享服务方案有很多,了解即可 ftp(简单文件传输服务) 提供用户认证机制 可以输入账号密码 python -m SimpleHTTPServer nginx也提供了文件下载的功能 提供用户认证机制 反向代理,负载均衡 web服务器,静态文件…...
快速傅里叶离散变换FFT (更新中)
声明:参考了 y y c yyc yyc 的 blog 和 PPT (from smwc) ,以及 w z r wzr wzr 的 blog 。 目录 Part 1 多项式Part 2 FFT概论Part 3 点值与插值Part 4 复数,单位根Part 5 Part 1 多项式 定义:对于有限数列 A 0 A_{0} A0~ n…...
【从零开始入门unity游戏开发之——C#篇48】C#补充知识点——静态导入、异常捕获和异常筛选器、nameof运算符
考虑到每个人基础可能不一样,且并不是所有人都有同时做2D、3D开发的需求,所以我把 【零基础入门unity游戏开发】 分为成了C#篇、unity通用篇、unity3D篇、unity2D篇。 【C#篇】:主要讲解C#的基础语法,包括变量、数据类型、运算符、流程控制、面向对象等,适合没有编程基础的…...
8.PPT:小李-第二次世界大战【21】
目录 NO123 NO4567 NO8\9\10\11 图片→格式→大小对话框→锁定纵横比✔动画→飞入→效果选项:方向/序列→开始→持续时间→延迟时间持续时间:1s延迟:0.5s音频剪切时间:0.5s:00:00.500自动换片时间设置&…...
企业百科和品牌百科创建技巧
很多人比较困惑,创建百科词条需要注意哪些事情?为什么参考提交了权威新闻参考资料还是没有通过,下面小马识途营销顾问就为大家解答疑惑: 1、品牌词以及企业词提交 1)如果没有词条,我们可以通过平台提供的急…...
搭建集成开发环境PyCharm
1.下载安装Python(建议下载并安装3.9.x) https://www.python.org/downloads/windows/ 要注意勾选“Add Python 3.9 to PATH”复选框,表示将Python的路径增加到环境变量中 2.安装集成开发环境Pycharm http://www.jetbrains.com/pycharm/…...
【Rust自学】16.4. 通过Send和Sync trait来扩展并发
喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 16.4.1. Send和Sync trait Rust语言本身的并发特性较少,目前所提及的并发特性都来自于标准库,而不是语言本身。其…...
2025年02月05日Github流行趋势
项目名称:OCRmyPDF 项目地址url:https://github.com/ocrmypdf/OCRmyPDF项目语言:Python历史star数:15872今日star数:157项目维护者:jbarlow83, fritz-hh, apps/dependabot, mawi12345, mara004项目简介&…...
拉取本地的 Docker 镜像的三种方法
方法 1:通过 docker save 和 docker load 导出和导入镜像 在本地服务器上导出镜像: 使用 docker save 将镜像保存为一个 .tar 文件: docker save -o mysql-5.7.tar mysql:5.7 将镜像文件传输到其他服务器: 你可以通过 scp 或其他…...
Win11网络卡顿?用Wireshark抓包5分钟定位问题(保姆级实战)
Win11网络卡顿?用Wireshark抓包5分钟定位问题(保姆级实战) 最近在玩《英雄联盟》时,每次团战画面都会卡成PPT,Zoom视频会议也经常出现"机器人音效",作为IT工程师的我决定用Wireshark揪出真凶。没…...
【latex】探索LaTeX中加粗文本的多种方法及其在表格中的优化应用
1. LaTeX加粗文本的多种方法对比 第一次用LaTeX写论文时,我也以为\textbf{}是唯一的加粗方式。直到在表格里发现加粗后的文字会把单元格撑变形,才意识到LaTeX的文本修饰比想象中复杂得多。经过反复测试,我发现实际有5种常用加粗方法…...
从安全卫士到AI指挥官:周鸿祎的“AI突围”实录!
2026年3月27日,北京——在360总部楼下,一张临时搭建的长桌上,周鸿祎身穿印有“AI世界”的黑色工装马甲,手握键盘,亲自为现场观众“装龙虾”。这幅画面不仅让人恍惚回到十几年前的中关村,也标志着一场关于AI…...
从零构建MAX30102心率血氧监测系统
1. MAX30102传感器基础认知 第一次接触MAX30102时,我盯着这个5mm3mm的小芯片看了半天——很难想象这么小的器件能同时测量心率和血氧。它本质上是个光电生物传感器,工作原理就像用手电筒照手指:内置的红光(660nm)和红外光(880nm)LED穿过皮肤组…...
StructBERT-Large本地化部署实战:无需联网、不传数据、隐私安全的语义匹配解决方案
StructBERT-Large本地化部署实战:无需联网、不传数据、隐私安全的语义匹配解决方案 你是不是经常需要判断两句话是不是一个意思?比如,检查用户提交的答案是否和标准答案一致,或者判断两篇新闻稿是不是在说同一件事。过去…...
ImageSearch本地图片搜索引擎:从技术原理到实战应用
ImageSearch本地图片搜索引擎:从技术原理到实战应用 【免费下载链接】ImageSearch 基于.NET8的本地硬盘千万级图库以图搜图案例Demo和图片exif信息移除小工具分享 项目地址: https://gitcode.com/gh_mirrors/im/ImageSearch 价值定位:重新定义本地…...
等保测评必看!用组策略批量关闭445/139端口(域环境适用版)
企业域环境下批量关闭高危端口的组策略实战指南 在等保测评和日常安全运维中,445、139、135等端口因其历史漏洞和潜在风险,常被列为必须管控的高危端口。对于拥有数百甚至上千台终端的中大型企业来说,逐台手动配置不仅效率低下,更…...
GBase 8a云数仓存算分离,“柔性搭建数仓”
传统分析型MPP数据库的搭建,就像装修一套毛坯房,从规划格局到水电改造,从墙面处理到家具进场,每一步都离不开专业师傅,稍有不慎就得返工重来。南大通用(gbase database)GBase 8a云数仓(GCDW&…...
Linux DRM子系统深度解析:如何为240x240 SPI屏编写自定义KMS驱动?
Linux DRM子系统实战:为240x240 SPI屏构建原子化KMS驱动 当一块小巧的240x240 SPI屏幕遇上Linux DRM显示框架,开发者面临的不仅是硬件接口的适配,更是一场关于现代显示架构的深度对话。本文将带您穿透DRM子系统的抽象层,从KMS核心…...
3个步骤打造静音散热系统:FanControl 262版智能风扇调控方案全解析
3个步骤打造静音散热系统:FanControl 262版智能风扇调控方案全解析 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub…...
