linux系统移植pjsua库实现sip通话功能
概述本文实现pjsua开源库的交叉编译以及通过调用pjsua库api实现sip语言双向通话功能包括注册上线sip服务器、接收处理指令(电话邀请、挂断等)、双向音频对讲功能。二、交叉编译pjsua库1.解压tar -zxvf 2.15.1.tar.gz; cd pjproject-2.15.1;2.配置编译选项./configure \ --hostarm-linux-gnueabihf \ --prefix$(pwd)/_mini \ --enable-shared \ --disable-video \ --disable-pjsua2 \ --disable-sound \ --disable-ssl \ --disable-ffmpeg \ --disable-v4l2 \ CFLAGS“-Os -DNDEBUG” \ LDFLAGS“-s” \ CCarm-linux-gnueabihf-gcc \ CXXarm-linux-gnueabihf-g \ ARarm-linux-gnueabihf-ar \ RANLIBarm-linux-gnueabihf-ranlib可用选项#禁用高质量的音频处理算法–disable-libwebrtc3.编译安装make depmakemake install4.完成动态库移植动态库路径在 pjproject-2.15.1/_install/lib/5.工程项目编译可能会报错比如大小端未定义makefile加个选项:CFLAGS -DPJ_IS_LITTLE_ENDIAN1 -DPJ_IS_BIG_ENDIAN0 仅供参考6.解决编译警告sip/include/pj/compat/limits.h:38:4: error: #warning limits.h is not found or not supported. LONG_MIN and LONG_MAX will be defined by the library in pj/compats/limits.h and “overridable in config_site.h” [-Werrorcpp] 38 | # warning limits.h is not found or not supported. LONG_MIN and LONG_MAX \ | ^~~~~~~ cc1: all warnings being treated as errors1将/sip/include/pj/config_site.h的文件内容改为点击查看代码(2)将/sip/include/pj/compat/limits.h的点击查看代码改为点击查看代码三、简单了解sip协议SIP会话初始协议是一个在互联网上发起、管理和结束多媒体通信如语音通话、视频会议的信令控制协议。本文只实现语言通话。以下是客户端与服务器和主叫方注册通话等交互的流程1.注册与认证通话准备1用户设备UA向SIP服务器发送 REGISTER 请求包含用户标识如 sip:userexample.com。2若需认证服务器返回 ​401 Unauthorized要求提供凭证如用户名、密码。3终端重新发送带认证信息的 REGISTER服务器验证通过后回复 ​200 OK完成注册。4作用​告知服务器终端可达地址为后续呼叫路由提供依据。2.呼叫建立信令交互1主叫发起邀请a.主叫发送 ​INVITE​ 请求包含被叫URI如 sip:bobdomain.com和媒体描述SDP协议。b.SDP信息包括媒体类型音频/视频编解码格式如G.711、Opus接收音频rtp数据包的IP地址及端口号2被叫响应a.被叫收到 INVITE 后返回 ​100 Trying​处理中。b.若可接听返回 ​180 Ringing​振铃主叫听到回铃音。c.被叫摘机后发送 ​200 OK携带自身SDP参数如接收IP和端口。d.主叫回复 ​ACK​ 确认呼叫正式建立3.会话修改与终止(1)会话修改可选主叫通话中调整参数如切换高清音频时发送 UPDATE​或 RE-INVITE请求重新协商SDP​ (2)终止通话任一方发送 BYE​请求对方回复 200 OK释放媒体资源及网络承载4.通话阶段媒体传输双向RTP语音流主叫 ↔ 被叫​​(1)协议​RTPReal-time Transport Protocol(2)传输内容​a.音频数据包按协商的编解码格式b.语音连续性信息c.时间戳确保音频同步四、代码实现点击查看代码五、TCP/UDP抓包数据分析1.stun查询外网ipstun查询外网ip2.stun返回设备的公网ipstun返回设备的公网ip3.设备NAT打洞成功设备NAT打洞成功4.开始注册开始注册5.服务器应答注册服务器应答注册6.客户端以最新的外网端口重新注册客户端以最新的外网端口重新注册7.服务器应答注册成功服务器应答注册成功8.主叫方发起电话邀请主叫方发起电话邀请9.被叫方查询rtp链路外网端口被叫方查询rtp链路外网端口10.被叫方应答电话邀请被叫方应答电话邀请11.呼叫方和被叫方互相发送rtp数据包呼叫方和被叫方互相发送rtp数据包

相关新闻

AI日程调度如何提升37.6%任务完成率?实测8款工具+自建Agent工作流全拆解

AI日程调度如何提升37.6%任务完成率?实测8款工具+自建Agent工作流全拆解

更多请点击: https://intelliparadigm.com 第一章:AI日程管理与规划 现代知识工作者每日面临多源任务涌入、跨时区协作、动态优先级调整等挑战,传统日历工具难以实现语义理解与主动协同。AI日程管理通过自然语言解析、上下文建模与预测性调度…

2026/7/23 13:45:40 阅读更多 →
(二)冰达小车改造——fastlio2+ego planner自主导航

(二)冰达小车改造——fastlio2+ego planner自主导航

一、工作背景与阶段目标 阶段一已完成新底盘、Jetson Orin NX、供电链路、UART 通信、Python 3 兼容及 /cmd_vel 底层运动控制验证,建立了“Jetson ROS—base_control—串口—底盘控制板—四轮执行”的基础控制链路。阶段二在此基础上进一步向自主导航闭环推进&…

2026/7/23 13:45:40 阅读更多 →
C++编程进阶:掌握vector与函数,从语法到工程实践

C++编程进阶:掌握vector与函数,从语法到工程实践

1. 项目概述:为什么从Vector和函数开始?如果你刚开始接触C,或者已经学了一点语法但感觉写出来的代码总是“不太对劲”,那今天聊的这两个东西,绝对是你从“会写代码”到“能写好代码”的关键跳板。很多人学C&#xff0c…

2026/7/23 13:45:40 阅读更多 →

最新新闻

科技巨头AI军备竞赛:资本逻辑与算力基建

科技巨头AI军备竞赛:资本逻辑与算力基建

1. 科技巨头AI军备竞赛的资本逻辑2025-2026年全球科技产业最引人注目的现象,莫过于七大科技巨头(微软、苹果、亚马逊、Alphabet、Meta、英伟达和特斯拉)在AI领域累计超过6500亿美元的资本开支计划。这个数字相当于越南2025年全年GDP的1.5倍&a…

2026/7/23 13:57:44 阅读更多 →
Unity游戏开发入门:从零构建角色与场景的完整实践指南

Unity游戏开发入门:从零构建角色与场景的完整实践指南

1. 项目概述:从零到一,构建你的第一个游戏世界 如果你对游戏开发感兴趣,Unity引擎几乎是你绕不开的起点。它就像一个功能强大的“数字乐高”工厂,提供了从角色建模、动画、物理模拟到场景搭建、光影渲染、脚本编程等一整套工具链。…

2026/7/23 13:57:44 阅读更多 →
阿里千问PC端Qwen3.8-Max-Preview:2.4T参数AI助手开发实战

阿里千问PC端Qwen3.8-Max-Preview:2.4T参数AI助手开发实战

最近,阿里千问PC端悄悄上线了一个重磅更新——接入了Qwen3.8-Max-Preview模型,参数量达到了惊人的2.4T。这个数字意味着什么?对普通开发者来说,这不仅仅是参数量的简单堆砌,而是AI助手能力的一次质变。 如果你还在为代…

2026/7/23 13:57:44 阅读更多 →
企业买了很多AI工具,为什么增长仍然没有发生

企业买了很多AI工具,为什么增长仍然没有发生

" 模型能力快速普及,企业可以购买的AI工具越来越多,经营结果却不会同步趋同。账号、功能和使用次数只能说明技术入口增加。AI要形成市场能力,还需要理解企业事实与边界,进入连续任务关系,接受与经营目标一致的评价…

2026/7/23 13:57:44 阅读更多 →
【RT-DETR涨点改进】TCSVT 2026顶刊 | 卷积创新改进篇 | 引入FRConv模糊残差卷积,自适应增强与目标相关的邻域信息,含10种创新改进点,助力遥感图像目标检测任务,有效涨点

【RT-DETR涨点改进】TCSVT 2026顶刊 | 卷积创新改进篇 | 引入FRConv模糊残差卷积,自适应增强与目标相关的邻域信息,含10种创新改进点,助力遥感图像目标检测任务,有效涨点

一、本文介绍 🔥本文给大家介绍使用 FRConv模糊残差卷积 改进RT-DETR网络模型,FRConv通过逐点卷积和深度卷积提取目标边缘、纹理与局部结构,并利用基于空间距离和特征相似度的模糊加权机制,自适应增强与目标相关的邻域信息、抑制复杂背景、噪声及异常特征,再借助残差连接…

2026/7/23 13:57:44 阅读更多 →
Tiva ADC采样序列与FIFO寄存器配置详解:从原理到实战

Tiva ADC采样序列与FIFO寄存器配置详解:从原理到实战

1. 项目概述与核心价值在嵌入式系统开发,尤其是基于ARM Cortex-M内核的微控制器项目中,模数转换器(ADC)的配置往往是决定系统数据采集性能的关键。很多开发者初次接触Tiva™ C系列(如TM4C123)的ADC模块时&a…

2026/7/23 13:56:43 阅读更多 →

日新闻

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…

2026/7/23 0:00:25 阅读更多 →
AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

更多请点击: https://codechina.net 第一章:AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析 在对2,346篇跨行业AI生成文案的A/B测试数据进行聚类分析后,我们发现&#xff1…

2026/7/23 0:01:26 阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:01:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 8:58:19 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 19:43:43 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/22 12:54:44 阅读更多 →

月新闻