pjsip编译静态库,pjsip交叉编译

本文目录一览:

如何用c++调用pjsip库实现一个简单的sip服务器

1、开源的sip服务器端,比较好用的是Asterisk,标准C程序实现,代码清晰。

2、sip的client相对比较多,主要有exosip,pjsip和opal。exosip简单易用,在PC上用比较方便。但是涉及的相关资源太多,用了osip,srtp,ms2等众多的开源库,ms2下面还用到了ffmpeg,别的不说,光编译就是噩梦。opal功能最强,虽然也用到了ffmpeg ,但是自己封装的非常好,采用插件方式,调用灵活。opal采用class方式提供封装,接口非常友好。感觉唯一不爽的地方,就是低层使用了ptlib,虽然多平台下都很好用,但放在嵌入式下感觉稍庞大了一些。pjsip精巧,方便移植,嵌入式下应该是首选。不过视频频支持方面扩展起来比opal麻烦。个人感觉,对于windows开发者来说,pjsip最大的好处就是代码调试方便。整个工程一次编译通过,另外两个库还要找很多相关的资源

3、其他的一些协议栈也调试过,比如reSipphone,好象是这个名字,还有Yate,不过从快速开发角度看,都不太合适。现在搞sip开发的,一开始就是先找好协议栈。linphone,ekiga什么的,但庞大。对于刚开始做的,最好是一个精简的demo。后来找到pjsip下面的几个例子,慢慢地了解了sip的工作流程,当然少不了抓包工具和tcpdump。

不过,其实,sip没有想象中的那么麻烦。现在回头看,刚开始做项目,使用协议栈绝对不是好想法。如果换个方向,先熟悉SIP基本协议,然后自己改造一个,或完全写一个,可能效果更好。

pjsip库的sample怎么用

第一步是生成 pjsip 为 Android (步骤为 Ubuntu Linux) 的源代码:

1.设置 ANDROID_NDK_ROOT 环境变量设置为您 NDK 根文件夹。

2.转到 pjsip 2.x 文件夹并创建 pjlib/include/pj/config_site.h 包括 config_site_sample.h ( #include pj/config_site_sample.h )

3.运行./configure-android

4.运行make clean make depend make

之后这些步骤,你将有几个静态库中的几个文件夹。我建议将它们分组相同的文件夹 (最好在您的项目中) 中的:

mkdir your_project_path/pjsip_libs

find . -name *.a | xargs -I % cp % your_project_path/pjsip_libs/

一旦你的所有库,您需要将这些库添加到您的项目 Android.mk 文件,这是由包括一个新的模块节每个图书馆。此模块部分应该是一样的东西:

include $(CLEAR_VARS)

LOCAL_MODULE := pjsua-arm-unknown-linux-androideabi

LOCAL_SRC_FILES := $(MY_PJLIB_PATH)/libpjsua-arm-unknown-linux-androideabi.a

include $(PREBUILT_STATIC_LIBRARY)

,你其实是一节中构建您的 JNI 项目的源代码,所有模块都添加到您的静态库的引用:

LOCAL_STATIC_LIBRARIES := pjsua-arm-unknown-linux-androideabi …

这将包括 pjsip 的引用加入您的 JNI 库。现在,您需要配置 pjsip UA 实例。

你有一个关于 init 和开始的解释 pjsip 的 UA (pjsua) 在 pjsip/include/pjsua-lib/pjsua.h 但要遵循的主要步骤是:

1.创建一个具有 UA 实例pjsua_create

2.创建一个工作线程与pj_thread_create

3.UA 实例的设置的默认配置:

pjsua_config cfg 桩 ;pjsua_logging_config log_cfg ;pjsua_media_config media_cfg ;

pj_cli_cfg_default(app_config.cli_cfg.cfg) ;pjsua_logging_config_default(log_cfg) ;pjsua_media_config_default(media_cfg) ;

4.初始化堆栈与pjsua_init

5.启动与堆栈pjsua_start

从这里,你有充足的配置选项 (日志、 媒体、 交通工具等)

您可以找到基本 PJSIP 教程在这里,和里面 pjsip 的源的根路径,你有一个基本 (但不够完整,基本的 SIP 使用情况) 在:pjsip-apps/src/samples/simple_pjsua.c

编辑:在生成时在 pjsip 应用程序的 android 项目,你可以面临一个问题,因为 pjsua app 不生成默认情况下,对一般生成 (更具体地说,pjsua: 目标不包括所有上: 在 pjsip-应用程序/生成/生成文件的目标)。若要修复这只是转到 pjsip-应用程序/创建和运行:

使 pjsua

这将创建在正确的对象文件: pjsip-apps/build/output/pjsua-arm-unknown-linux-androideabi/ (需要构建 android 样本时)。

一旦你所有相应的对象文件,您可以在 pjsip-应用程序/src/pjsua/android 系统再次运行 ndk 生成

如何在 android 设备上使用 pjsip G.729 编解码的功能

 第一步是生成 pjsip 为 Android (步骤为 Ubuntu Linux) 的源代码:

1.设置 ANDROID_NDK_ROOT 环境变量设置为您 NDK 根文件夹。

2.转到 pjsip 2.x 文件夹并创建 pjlib/include/pj/config_site.h 包括 config_site_sample.h ( #include pj/config_site_sample.h )

3.运行./configure-android

4.运行make clean make depend make

之后这些步骤,将有几个静态库中的几个文件夹。建议将它们分组相同的文件夹 (最好在您的项目中) 中的:

mkdir your_project_path/pjsip_libs

find . -name *.a | xargs -I % cp % your_project_path/pjsip_libs/

一旦自己的所有库,您需要将这些库添加到您的项目 Android.mk 文件,这是由包括一个新的模块节每个图书馆。此模块部分应该是一样的东西:

include $(CLEAR_VARS)

LOCAL_MODULE := pjsua-arm-unknown-linux-androideabi

LOCAL_SRC_FILES := $(MY_PJLIB_PATH)/libpjsua-arm-unknown-linux-androideabi.a

include $(PREBUILT_STATIC_LIBRARY)

,其实是一节中构建您的 JNI 项目的源代码,所有模块都添加到您的静态库的引用:

LOCAL_STATIC_LIBRARIES := pjsua-arm-unknown-linux-androideabi …

这将包括 pjsip 的引用加入您的 JNI 库。现在,您需要配置 pjsip UA 实例。

有一个关于 init 和开始的解释 pjsip 的 UA (pjsua) 在 pjsip/include/pjsua-lib/pjsua.h 但要遵循的主要步骤是:

1.创建一个具有 UA 实例pjsua_create

2.创建一个工作线程与pj_thread_create

3.UA 实例的设置的默认配置:

pjsua_config cfg 桩 ;pjsua_logging_config log_cfg ;pjsua_media_config media_cfg ;

pj_cli_cfg_default(app_config.cli_cfg.cfg) ;pjsua_logging_config_default(log_cfg) ;pjsua_media_config_default(media_cfg) ;

4.初始化堆栈与pjsua_init

5.启动与堆栈pjsua_start

从这里,有充足的配置选项 (日志、 媒体、 交通工具等)

您可以找到基本 PJSIP 教程在这里,和里面 pjsip 的源的根路径,有一个基本 (但不够完整,基本的 SIP 使用情况) 在:pjsip-apps/src/samples/simple_pjsua.c

编辑:在生成时在 pjsip 应用程序的 android 项目,可以面临一个问题,因为 pjsua app 不生成默认情况下,对一般生成 (更具体地说,pjsua: 目标不包括所有上: 在 pjsip-应用程序/生成/生成文件的目标)。若要修复这只是转到 pjsip-应用程序/创建和运行:

使 pjsua

这将创建在正确的对象文件: pjsip-apps/build/output/pjsua-arm-unknown-linux-androideabi/ (需要构建 android 样本时)。

一旦所有相应的对象文件,您可以在 pjsip-应用程序/src/pjsua/android 系统再次运行 ndk 生成

linux 中pjsip中怎么增加音频编码方式g729

第一步是生成 pjsip 为 Android (步骤为 Ubuntu Linux) 的源代码:

设置 ANDROID_NDK_ROOT 环境变量设置为您 NDK 根文件夹。

2.转到 pjsip 2.x 文件夹并创建 pjlib/include/pj/config_site.h 包括 config_site_sample.h ( #include pj/config_site_sample.h )

3.运行./configure-android

4.运行make clean  make depend  make

之后这些步骤,将有几个静态库中的几个文件夹。建议将它们分组相同的文件夹 (最好在您的项目中) 中的:

mkdir your_project_path/pjsip_libs

find . -name *.a | xargs -I % cp % your_project_path/pjsip_libs/

一旦自己的所有库,您需要将这些库添加到您的项目 Android.mk 文件,这是由包括一个新的模块节每个图书馆。此模块部分应该是一样的东西:

include $(CLEAR_VARS)

LOCAL_MODULE := pjsua-arm-unknown-linux-androideabi

LOCAL_SRC_FILES := $(MY_PJLIB_PATH)/libpjsua-arm-unknown-linux-androideabi.a

include $(PREBUILT_STATIC_LIBRARY)

,其实是一节中构建您的 JNI 项目的源代码,所有模块都添加到您的静态库的引用:

LOCAL_STATIC_LIBRARIES := pjsua-arm-unknown-linux-androideabi

这将包括 pjsip 的引用加入您的 JNI 库。现在,您需要配置 pjsip UA 实例。

有一个关于 init 和开始的解释 pjsip 的 UA (pjsua) 在 pjsip/include/pjsua-lib/pjsua.h 但要遵循的主要步骤是:

创建一个具有 UA 实例pjsua_create

2.创建一个工作线程与pj_thread_create

3.UA 实例的设置的默认配置:

pjsua_config cfg 桩 ;pjsua_logging_config log_cfg ;pjsua_media_config media_cfg ;

pj_cli_cfg_default(app_config.cli_cfg.cfg) ;pjsua_logging_config_default(log_cfg) ;pjsua_media_config_default(media_cfg) ;

4.初始化堆栈与pjsua_init

5.启动与堆栈pjsua_start

从这里,有充足的配置选项 (日志、 媒体、 交通工具等)

您可以找到基本 PJSIP 教程在这里,和里面 pjsip 的源的根路径,有一个基本 (但不够完整,基本的 SIP 使用情况) 在:pjsip-apps/src/samples/simple_pjsua.c

编辑:在生成时在 pjsip 应用程序的 android 项目,可以面临一个问题,因为 pjsua app 不生成默认情况下,对一般生成 (更具体地说,pjsua: 目标不包括所有上: 在 pjsip-应用程序/生成/生成文件的目标)。若要修复这只是转到 pjsip-应用程序/创建和运行:

使 pjsua

这将创建在正确的对象文件: pjsip-apps/build/output/pjsua-arm-unknown-linux-androideabi/ (需要构建 android 样本时)。

一旦所有相应的对象文件,您可以在 pjsip-应用程序/src/pjsua/android 系统再次运行 ndk 生成

编译运行pjsip的sample出现问题

修改config_site.h文件 在pjproject-2.4.5\pjlib\include\pj目录下 增加 #define PJMEDIA_AUDIO_DEV_HAS_ALSA 1

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/275737.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝的头像小蓝
上一篇 2024-12-17 16:06
下一篇 2024-12-17 16:06

相关推荐

  • Centos7配置静态ip

    本文将详细阐述如何在Centos7系统中配置静态ip。 一、查看网络接口 在配置静态ip之前,我们首先需要查看系统中的网络接口,以确定我们需要配置的网卡是哪一个。 ifconfig…

    编程 2025-04-29
  • Python中通过对象不能调用类方法和静态方法的解析

    当我们在使用Python编写程序时,可能会遇到通过对象调用类方法和静态方法失败的问题,那么这是为什么呢?接下来,我们将从多个方面对这个问题进行详细解析。 一、类方法和静态方法的定义…

    编程 2025-04-27
  • Apache伪静态配置Java

    本文将会从多个角度阐述如何在Apache中正确伪装Java应用程序,实现URL的静态化,提高网站的SEO优化和性能。以下是相关的配置和代码实例。 一、RewriteEngine的配…

    编程 2025-04-27
  • 删除静态路由

    一、静态路由的定义 路由(Routing)是指在一组互联的计算机网络中,根据一定的算法规则实现两个节点之间选择合适的路径并且传送数据包的过程。简单来说,路由就是在网络中选择一条可达…

    编程 2025-04-25
  • 静态文件服务器

    一、文件服务器简介 静态文件服务器是一个基于HTTP协议的服务器应用程序,它旨在提供对本地或远程文件系统中的静态内容(包括HTML、CSS、图像、视频和JavaScript文件等)…

    编程 2025-04-24
  • 学生html美食静态网页代码评析

    一、HTML结构 <html> <head> <title>学生美食家</title> <link rel=”styleshe…

    编程 2025-04-23
  • gcc-static: 静态编译的理解与应用

    一、什么是gcc-static? gcc-static,简称静态编译器,是GCC中的一种编译方式。静态编译器将源代码编译为二进制文件的同时,将依赖库也打包成一个完整的可执行文件,因…

    编程 2025-04-23
  • Kotlin静态常量的全面解析

    一、什么是静态常量? 在Kotlin中,可以将一个常量或静态变量定义在一个类或对象中,这种常量或静态变量叫做静态常量,它们只会被初始化一次,并且在整个应用中都可以使用。静态常量可以…

    编程 2025-04-20
  • Kotlin静态变量详解

    一、静态变量定义和使用 静态变量是指在类里面定义的变量,它属于类本身,而不是类的每个实例对象独有的。在Kotlin中,我们可以使用companion object来定义一个类的静态…

    编程 2025-04-20
  • Mock静态方法完全指南

    在编写程序的过程中,经常会用到静态方法。静态方法往往是一个固定的函数,可以直接通过类来调用,无需实例化对象。想要测试这类静态方法,却常常很难,因为不同的测试数据能够引起不同的结果。…

    编程 2025-04-12

发表回复

登录后才能评论