Linux下搭建pjsip
整体架构流程
提示:这里可以添加技术整体架构
1.安装依赖:
在开始之前,确保安装了所有必要的依赖。对于 pjsip,这通常包括开发工具和库,如 gcc、make、autoconf 等。你可以使用你的 Linux 发行版的包管理器来安装它们。例如,在基于 Debian 的系统(如 Ubuntu)上,你可以使用以下命令:
sudo apt-get update
sudo apt-get install build-essential autoconf automake libtool libasound2-dev libpulse-dev libssl-dev
2.下载pjsip
从 pjsip 官网下载最新的源代码。你可以使用 wget 或 curl 命令直接在终端下载。例如:
wget https://www.pjsip.org/release/x.y.z/pjproject-x.y.z.tar.bz2
这里的 x.y.z 应该替换为最新的版本号。(我这里下载的是2.14版本,可以直接点击下面链接下载
https://www.pjsip.org/download.htm)
如果遇到以下错误:
需要使用梯子去官网下载。
3.解压源代码:
使用 unzip 命令解压下载的文件:
unzip pjproject-x.y.z.zip
(如果下载的是.tar.bz2文件就使用以下命令解压:
tar -xvjf pjproject-x.y.z.tar.bz2)
4.编译 pjsip:
进入解压后的目录并编译 pjsip:
cd pjproject-x.y.z
./configure && make dep && make(如果想指定编译路径【方便查找头文件以及库文件】./configure --prefix=/your/installation/path)
这将编译 pjsip 及其依赖项。如果你需要特定的配置,可以通过 ./configure 命令来指定。
编译出现问题,原因是最新版本更新了许多其他的库,回退一个版本到2.13,重新重复以上步骤
make成功
5.安装:
安装编译好的 pjsip 到系统中:
make install
6.验证安装:
安装完成后,你可以通过运行 pjsip 提供的示例应用程序来验证,进入/pjproject-2.13/pjsip-apps/bin目录下,运行./pjsua-x86_64-unknown-linux-gnu 可以看到以下输出:
可以看到PJSIP 已经成功初始化并运行。它成功识别了音频设备、网络接口,并创建了 SIP 账户。以下是一些关键信息:
SIP 端点初始化:Module “mod-pjsua-log” registered 等消息表示 SIP 端点模块正在注册,这是 SIP 通信的基础。
音频设备识别:ALSA driver found 15 devices 指示使用 ALSA 音频驱动程序成功找到了 15 个音频设备。
网络接口:SIP UDP socket reachable at 192.168.188.129:5060 显示了 PJSIP 正在监听的网络地址和端口。
账户创建:创建了两个账户(标识为 0 和 1),它们都设置为在线状态但没有注册到任何 SIP 服务器。
PJSUA 状态:PJSUA state changed: STARTING --> RUNNING 表明 PJSUA 从启动状态转变为运行状态。
交互式命令行:最后,程序提供了一个交互式命令行界面,列出了可用的命令,用于发起呼叫、管理账户、发送消息等。
总的来说,这表明 PJSIP 环境已经正确设置并可以开始进行 SIP 通信。下一步,就需要配置 SIP 账户细节以连接到具体的 SIP 服务器或进行呼叫测试。
小结
-
项目目标:
目标是在 Linux 系统上安装 pjsip(版本 2.13),这是一个流行的开源多媒体通信库。 -
准备阶段:
确保系统上安装了所有必要的依赖,如开发工具(gcc、make、autoconf)和必要的库(例如 OpenSSL)。这是确保顺利编译的关键步骤。 -
下载和解压:
从 pjsip 的官方网站下载了源代码,并成功解压缩到Linux 系统。 -
编译过程:
在 pjsip 源代码目录内,执行了./configure && make dep && make
命令来编译 pjsip。这一过程中,遇到了一些与 OpenSSL 版本兼容性相关的链接错误。这表明 pjsip 需要更新版本的 OpenSSL。 -
解决问题:
成功解决了编译中出现的问题,可能是通过调整编译配置。 -
安装 pjsip:
使用make install
命令,将编译好的 pjsip 安装到了系统中,包括库文件、头文件,以及 pkg-config 文件。 -
项目完成:
安装完成后,pjsip 现在已准备好在您的项目中使用。可以通过指定包含目录和库目录的编译器标志(-I/usr/local/include
和-L/usr/local/lib
)来使用 pjsip。此外,如果您的项目使用 pkg-config 来管理依赖关系,可以利用生成的libpjproject.pc
文件。 -
后续建议:
如果在将来使用 pjsip 过程中遇到任何问题,建议查阅官方文档或寻求社区支持。此外,始终建议在进行系统级更改或安装新软件时备份重要数据。