在ubuntu22.04上先部署docker,再编译安装kamailio,附详细操作流程及docker和makailio的版本号

以下是在Ubuntu 22.04上部署Docker并编译安装Kamailio的详细操作流程,包含版本号信息:


一、部署Docker(版本:24.0.7)

  1. 更新系统包

    sudo apt update && sudo apt upgrade -y
    
  2. 安装依赖工具

    sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
    
  3. 添加Docker官方GPG密钥

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    
  4. 添加Docker仓库

    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu jammy stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    
  5. 安装Docker Engine

    sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io
    
  6. 启动Docker并设置开机自启

    sudo systemctl enable --now docker
    
  7. 验证Docker安装

    sudo docker run hello-world
    

    出现 Hello from Docker! 表示成功。

  8. 将当前用户加入docker组(可选)

    sudo usermod -aG docker $USER
    newgrp docker  # 重新加载组权限(需重新登录生效)
    

二、编译安装Kamailio(版本:5.8.3)

  1. 安装编译依赖

    sudo apt install -y gcc make flex bison libssl-dev libpcre3-dev libmysqlclient-dev libxml2-dev libcurl4-openssl-dev libsnmp-dev libncurses5-dev libreadline-dev libjson-c-dev git
    
  2. 下载Kamailio源码

    wget https://www.kamailio.org/pub/kamailio/5.8.3/src/kamailio-5.8.3_src.tar.gz
    tar -xzf kamailio-5.8.3_src.tar.gz
    cd kamailio-5.8.3
    
  3. 配置编译选项

    make cfg  # 生成默认配置
    # 编辑modules.lst选择模块(例如启用db_mysql、tls等)
    # 或直接通过参数指定模块
    sed -i 's/include_modules= /include_modules= db_mysql tls /' src/modules.lst
    
  4. 编译并安装

    make all
    sudo make install
    
  5. 创建Kamailio用户和组

    sudo groupadd kamailio
    sudo useradd -g kamailio -d /var/run/kamailio -s /sbin/nologin kamailio
    
  6. 配置Kamailio

    • 复制默认配置文件:
      sudo mkdir -p /usr/local/etc/kamailio
      sudo cp etc/kamailio.cfg /usr/local/etc/kamailio/
      sudo cp etc/dbinit.mysql /usr/local/etc/kamailio/
      
    • 按需编辑配置文件:
      sudo nano /usr/local/etc/kamailio/kamailio.cfg
      
  7. 创建Systemd服务

    sudo nano /etc/systemd/system/kamailio.service
    

    添加以下内容:

    [Unit]
    Description=Kamailio SIP Server
    After=network.target[Service]
    Type=simple
    User=kamailio
    Group=kamailio
    ExecStart=/usr/local/sbin/kamailio -f /usr/local/etc/kamailio/kamailio.cfg -P /var/run/kamailio/kamailio.pid -m 64 -M 16
    Restart=on-failure[Install]
    WantedBy=multi-user.target
    
  8. 启动Kamailio并验证

    sudo systemctl daemon-reload
    sudo systemctl enable --now kamailio
    sudo systemctl status kamailio
    
  9. 验证版本

    /usr/local/sbin/kamailio -V
    

    输出应包含 version: 5.8.3


关键版本信息

  • Docker: 24.0.7(截至2023年10月最新稳定版)
  • Kamailio: 5.8.3(截至2023年10月最新稳定版)

注意事项

  1. 若需启用特定模块(如WebSocket、Redis等),需安装对应依赖并修改 include_modules
  2. 生产环境建议配置数据库(如MySQL)并初始化表结构:
    sudo mysql -u root -p < /usr/local/etc/kamailio/dbinit.mysql
    
  3. 防火墙需开放SIP协议端口(默认UDP 5060)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/68094.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大模型中提到的超参数是什么

在大模型中提到的超参数是指在模型训练之前需要手动设置的参数&#xff0c;这些参数决定了模型的训练过程和最终性能。超参数与模型内部通过训练获得的参数&#xff08;如权重和偏置&#xff09;不同&#xff0c;它们通常不会通过训练自动学习&#xff0c;而是需要开发者根据任…

位运算及常用技巧

涉及位运算的运算符如下表所示&#xff1a; 位运算的运算律&#xff1a; 负数的位运算 首先&#xff0c;我们要知道&#xff0c;在计算机中&#xff0c;运算是使用的二进制补码&#xff0c;而正数的补码是它本身&#xff0c;负数的补码则是符号位不变&#xff0c;其余按位取反…

hot100(8)

71.10. 正则表达式匹配 - 力扣&#xff08;LeetCode&#xff09; 动态规划 题解&#xff1a;10. 正则表达式匹配题解 - 力扣&#xff08;LeetCode&#xff09; 72.5. 最长回文子串 - 力扣&#xff08;LeetCode&#xff09; 动态规划 1.dp数组及下标含义 dp[i][j] : 下标i到…

二进制/源码编译安装httpd 2.4,提供系统服务管理脚本并测试

方法一&#xff1a;使用 systemd 服务文件 安装所需依赖 yum install gcc make apr-devel apr-util-devel pcre-devel 1.下载源码包 wget http://archive.apache.org/dist/httpd/httpd-2.4.62.tar.gz 2.解压源码 tar -xf httpd-2.4.62.tar.gz cd httpd-2.4.62 3.编译安装 指定…

Java 中 LinkedList 的底层源码

在 Java 的集合框架中&#xff0c;LinkedList是一个独特且常用的成员。它基于双向链表实现&#xff0c;与数组结构的集合类如ArrayList有着显著差异。深入探究LinkedList的底层源码&#xff0c;有助于我们更好地理解其工作原理和性能特点&#xff0c;以便在实际开发中做出更合适…

金蝶云星空k3cloud webapi报“java.lang.Class cannot be cast to java.lang.String”的错误

最近在对接金蝶云星空k3cloud webapi时&#xff0c;报一个莫名其妙的转换异常&#xff0c;具体如下&#xff1a; 同步部门异常! ERP接口登录异常&#xff1a;java.lang.Class cannot be cast to java.lang.String at com.jkwms.k3cloudSyn.service.basics.DeptK3CloudService.…

【Android】jni开发之导入opencv和libyuv来进行图像处理

做视频图像处理时需要对其进行水印的添加&#xff0c;放在应用层调用工具性能方面不太满意&#xff0c;于是当下采用opencvlibyuv方法进行处理。 对于Android的jni开发不是很懂&#xff0c;我的需求是导入opencv方便在cpp中调用&#xff0c;但目前找到的教程都是把opencv作为模…

【MySQL】centos 7 忘记数据库密码

vim /etc/my.cnf文件&#xff1b; 在[mysqld]后添加skip-grant-tables&#xff08;登录时跳过权限检查&#xff09; 重启MySQL服务&#xff1a;sudo systemctl restart mysqld 登录mysql&#xff0c;输入mysql –uroot –p&#xff1b;直接回车&#xff08;Enter&#xff09; 输…

国产编辑器EverEdit - 自定义标记使用详解

1 自定义标记使用详解 1.1 应用场景 当阅读日志等文件&#xff0c;用于调试或者检查问题时&#xff0c;往往日志中会有很多关键性的单词&#xff0c;比如&#xff1a;ERROR, FATAL等&#xff0c;但由于文本模式对这些关键词并没有突出显示&#xff0c;造成检查问题时&#xff…

Golang 并发机制-6:掌握优雅的错误处理艺术

并发编程可能是提高软件系统效率和响应能力的一种强有力的技术。它允许多个工作负载同时运行&#xff0c;充分利用现代多核cpu。然而&#xff0c;巨大的能力带来巨大的责任&#xff0c;良好的错误管理是并发编程的主要任务之一。 并发代码的复杂性 并发编程增加了顺序程序所不…

JVM 四虚拟机栈

虚拟机栈出现的背景 由于跨平台性的设计&#xff0c;Java的指令都是根据栈来设计的。不同平台CPU架构不同&#xff0c;所以不能设计为基于寄存器的。优点是跨平台&#xff0c;指令集小&#xff0c;编译器容易实现&#xff0c;缺点是性能下降&#xff0c;实现同样的功能需要更多…

鼠标拖尾特效

文章目录 鼠标拖尾特效一、引言二、实现原理1、监听鼠标移动事件2、生成拖尾元素3、控制元素生命周期 三、代码实现四、使用示例五、总结 鼠标拖尾特效 一、引言 鼠标拖尾特效是一种非常酷炫的前端交互效果&#xff0c;能够为网页增添独特的视觉体验。它通常通过JavaScript和C…

6-图像金字塔与轮廓检测

文章目录 6.图像金字塔与轮廓检测(1)图像金字塔定义(2)金字塔制作方法(3)轮廓检测方法(4)轮廓特征与近似(5)模板匹配方法6.图像金字塔与轮廓检测 (1)图像金字塔定义 高斯金字塔拉普拉斯金字塔 高斯金字塔:向下采样方法(缩小) 高斯金字塔:向上采样方法(放大)…

RNN/LSTM/GRU 学习笔记

文章目录 RNN/LSTM/GRU一、RNN1、为何引入RNN&#xff1f;2、RNN的基本结构3、各种形式的RNN及其应用4、RNN的缺陷5、如何应对RNN的缺陷&#xff1f;6、BPTT和BP的区别 二、LSTM1、LSTM 简介2、LSTM如何缓解梯度消失与梯度爆炸&#xff1f; 三、GRU四、参考文献 RNN/LSTM/GRU …

qt-Quick3D笔记之官方例程Runtimeloader Example运行笔记

qt-Quick3D笔记之官方例程Runtimeloader Example运行笔记 文章目录 qt-Quick3D笔记之官方例程Runtimeloader Example运行笔记1.例程运行效果2.例程缩略图3.项目文件列表4.main.qml5.main.cpp6.CMakeLists.txt 1.例程运行效果 运行该项目需要自己准备一个模型文件 2.例程缩略图…

以太坊入门【详解】

以太坊的组成部分 P2P网络&#xff1a;以太坊在以太坊网络上运行&#xff0c;该网络可在TCP端口30303上寻址&#xff0c;并运行一个协议。交易&#xff1a;以太坊交易时网络消息&#xff0c;其中包括发送者&#xff0c;接受者&#xff0c;值和数据的有效载荷以太坊虚拟机&…

实验十四 EL和JSTL

实验十四 EL和JSTL 一、实验目的 1、掌握EL表达式的使用 2、掌握JSTL的使用 二、实验过程 1、在数据库Book中建立表Tbook&#xff0c;包含图书ID&#xff0c;图书名称&#xff0c;图书价格。实现在bookQuery.jsp页面中模糊查询图书&#xff0c;如果图书的价格在50元以上&#…

安装和卸载RabbitMQ

我的飞书:https://rvg7rs2jk1g.feishu.cn/docx/SUWXdDb0UoCV86xP6b3c7qtMn6b 使用Ubuntu环境进行安装 一、安装Erlang 在安装RabbitMQ之前,我们需要先安装Erlang,RabbitMQ需要Erlang的语言支持 #安装Erlang sudo apt-get install erlang 在安装的过程中,会弹出一段信息,此…

音视频多媒体编解码器基础-codec

如果要从事编解码多媒体的工作&#xff0c;需要准备哪些更为基础的内容&#xff0c;这里帮你总结完。 因为数据类型不同所以编解码算法不同&#xff0c;分为图像、视频和音频三大类&#xff1b;因为流程不同&#xff0c;可以分为编码和解码两部分&#xff1b;因为编码器实现不…

ML基础-Jupyter notebook中的魔法命令

在 Jupyter Notebook 或 IPython 环境中&#xff0c;“魔法命令”&#xff08;Magic Commands&#xff09;是一些以百分号&#xff08;%&#xff09;或惊叹号&#xff08;!)开头的特殊命令&#xff0c;用于执行一些与代码运行环境相关的操作&#xff0c;而不仅仅是执行普通的 P…