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

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 main

deb [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 main

deb [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 main

deb [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 main

deb [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 main

deb [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 main

deb [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 main

deb [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 #nghttp2

git 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.gz

CMake 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 to
  problems 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.gz

disabling 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 install


LD (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 2

git 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.kler.cn/a/534014.html

相关文章:

  • 苹果再度砍掉AR眼镜项目?AR真的是伪风口吗?
  • 2024 JAVA面试题
  • 离散时间傅里叶变换(DTFT)公式详解:周期性与连续性剖析
  • RTMP 和 WebRTC
  • 35.Word:公积金管理中心文员小谢【37】
  • 龙芯+FreeRTOS+LVGL实战笔记(新)——16数码管驱动
  • 解决php8.3无法加载curl扩展
  • 【Kubernetes Pod间通信-第2篇】使用BGP实现Pod到Pod的通信
  • 【R语言】数据操作
  • trinitycore服务器离线,原来是mysql里数据库flag设置为2离线状态了
  • 安卓系统源码如何导入原生androidx资源文件?
  • 说一下JVM管理的常见参数
  • 怀旧经典:1200+款红白机游戏合集,Windows版一键畅玩
  • 【LeetCode 刷题】贪心算法(2)-进阶
  • LLM框架对比选择:MaxKB、Dify、FastGPT、RagFlow【RAG+AI工作流+Agent]
  • uniapp商城之用户模块【会员中心】
  • 老游戏回顾:G2
  • openwebui入门
  • 数字人|通过语音和图片来创建高质量的视频
  • 玩转Gin框架:Golang使用Gin完成登录流程
  • 如何通过 Logstash 将数据采集到 Elasticsearch
  • 基于单片机的智能安全插座(论文+源码)
  • 【DeepSeek】本地私有化部署 DeepSeek 模型教程
  • vscode+CMake+Debug实现 及权限不足等诸多问题汇总
  • 定制Centos镜像(二)
  • 使用 ElementUI 和 Spring 实现稳定可靠的文件上传和下载功能