当前位置: 首页 > news >正文

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
http://www.lryc.cn/news/531817.html

相关文章:

  • DeepSeek:全栈开发者视角下的AI革命者
  • 协同探索与导航文献整理
  • C#结合html2canvas生成切割图片并导出到PDF
  • AI安全最佳实践:AI云原生开发安全评估矩阵(上)
  • [ Spring ] Spring Boot Mybatis++ 2025
  • JAVAweb学习日记(九) MySQL-事务索引
  • 企业加密软件(天锐绿盾)
  • Python实现监督学习与无监督学习
  • Python网络自动化运维---批量登录设备
  • 如何抓取酒店列表: 揭开秘密
  • day32-文件共享服务ftp与smb
  • 快速傅里叶离散变换FFT (更新中)
  • 【从零开始入门unity游戏开发之——C#篇48】C#补充知识点——静态导入、异常捕获和异常筛选器、nameof运算符
  • 8.PPT:小李-第二次世界大战【21】
  • 企业百科和品牌百科创建技巧
  • 搭建集成开发环境PyCharm
  • 【Rust自学】16.4. 通过Send和Sync trait来扩展并发
  • 2025年02月05日Github流行趋势
  • 拉取本地的 Docker 镜像的三种方法
  • springboot+vue+uniapp的校园二手交易小程序
  • NeetCode刷题第21天(2025.2.4)
  • 人工智能|本地部署|ollama+chatbox快速Windows10下部署(初级篇)
  • chrome插件模板;使用 React 18 和 Webpack 5 的 Chrome 扩展样板
  • 大语言模型极速部署:Ollama 与 One-API 完美搭建教程
  • 【C++】STL——list底层实现
  • Java 进阶day14XML Dom4j 工厂模式 Base64
  • 100.6 AI量化面试题:如何评估AI量化模型的过拟合风险?
  • C++模板:泛型编程的魔法钥匙
  • unordered_map/set的哈希封装
  • 机器学习专业毕设选题推荐合集 人工智能