WebRTC在ubuntu中编译android
本文将会讲解在 ubuntu 中拉取代码 flutter 中的 WebRTC 并打包成 android 可以使用的 aar。
注意:编译 Android 的时候,建议在国外的服务器上编译,否则可能出现无法获取各种依赖文件的问题
系统选择注意:在编译 android 端的 WebRTC 的时候必须选择 ubuntu,其中最好是采用以下版本
123456Ubuntu 14.04 LTS (trusty with EoL April 2022)Ubuntu 16.04 LTS (xenial with EoL April 2024)Ubuntu 18.04 LTS (bionic with EoL April 2028)Ubuntu 20.04 LTS (focal with Eol April 2030)Ubuntu 20.10 (groovy) Debian 10 (buster) or later
如果不是,那么可能遇到一些环境问题,需要手动修改源码
设置代理拉取 WebRTC 全程需要代理软件,所以请先设置好代理软件
12export http_proxy=http://192. ...
FreeSWITCH中xml_rpc的使用技巧
本文主要讲解在实际开发中,可能遇到的使用 xml_rpc 命令过程中的一些内容
查询 api 的命令查看 xml_rpc 中的命令通过如下方式即可,在浏览器中打开如下链接:http://127.0.0.1:8080/webapi/help
调试命令
通过 curl 调用 lua 程序,并传递参数,其中空格需要用 %20 替换 script1curl --user yw:yw@123 http://127.0.0.1:7652/webapi/luarun?call_phone.lua%20var
FreeSWITCH中mod的状态变化
本文主要讲述在 endpoint 的 mod 在启动关闭与呼叫、挂断等其中的状态变化内容
mod 的启动关闭此处的状态变化最为简单,只有两个回调函数,分别如下所示:
123SWITCH_MODULE_LOAD_FUNCTION(mod_test_load);SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_test_shutdown);SWITCH_MODULE_DEFINITION(mod_test, mod_test_load, mod_test_shutdown, NULL); // mod_test_runtime
一般 runtime 都没用,暂时不明白作用。有个这个定义后,再实现相应的启动关闭函数,如下所示:
1234567SWITCH_MODULE_LOAD_FUNCTION(mod_test_load) { /// 你想要实现内容,宏展开后有如下参数 /// switch_loadable_module_interface_t **module_interface, switch_memory_pool_t *pool ...
FreeSWITCH在Linux下编译模块编译
本文主要讲解在 Linux 环境下编译 FreeSWITCH 模块时的配置以及所遇到的问题
Linux 下编译 MOD 的配置
在 configure.ac 中配置需要编译模块的 makefile文件,例如:src/mod/endpoints/mod_verto/Makefile 123456789PKG_CHECK_MODULES([HIREDIS], [hiredis >= 0.10.0],[AM_CONDITIONAL([HAVE_HIREDIS],[true])],[AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_HIREDIS],[false])])PKG_CHECK_MODULES([REDIS_PLUS], [redis++ >= 1.3.10],[AM_CONDITIONAL([HAVE_REDIS_PLUS],[true])],[AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_REDIS_PLUS],[false])])src/mod/applications/mod_redis_p ...
opus编解码相关介绍
本文主要讲解在实际开发中遇到的关于Opus的编解码问题
SDP中OPUS介绍在 SDP 中,任何其它采样率都不起作用,在 rtp 传输时默认采用 48000, 可以在 rfc7587 Section 4.1 中查看如下所示:
1234567Opus supports 5 different audio bandwidths, which can be adjustedduring a stream. The RTP timestamp is incremented with a 48000 Hzclock rate for all modes of Opus and all sampling rates. The unitfor the timestamp is samples per single (mono) channel. The RTPtimestamp corresponds to the sample time of the first encoded samplein the encoded frame. For data encoded with sampli ...
wireshark抓包分析音视频
本文主要记录通过 wireshark 抓音视频的分析方法
win上抓包分析window上面主要以导入 lua 解析文件为主
在 wireshark 安装目录下面,有个 init.lua, 在其中加入如下所示内容:
1dofile(USER_DIR..filename)
导入成功后,重启wireshark, 在工具栏中就会出现导入的 lua 文件名字。
随后到 编辑->首选项->协议 中根据需要解码的音视频,填写 payload 值
最后,当获取到 *.pcap 文件后,点击 工具->lua的名字 运行即可
linux上抓包分析opus此处步骤仅用于在 linux 上,通过命令行的形式分析 opus
获取 python 脚本,opus_stream_tool
tcpdump -i eth0 port 1234 -w in.pcap
tshark -x -r in.pcap -Y “udp.srcport == myport” | cut -d “ “ -f 1-20 > tmp.txt
hex_to_opus.py -x tmp.txt –reco ...
通信发展与通信原理
引用CMDA系统通信复习-多路复用的三种方法:频分复用,时分复用,码分复用
sip-i与sip-t的区别i
全球语音网络正在向基于IP的通信系统迁移。然而,现有的PSTN网络将继续存在一段时间。因此,VOIP和PSTN之间的互连能力在如今的语音市场上扮演重要的角色。
就像两种语言之间的翻译(英语<->荷兰语),两个系统的映射作为基本的互连功能出现。
SIP-I和SIP-T是两种类似的方法,用于ISUP网络和SIP网络之间的互通,换句话说,就是PSTN和VoIP网络。具体来说,它们有助于通过SIP网络传送ISUP参数,这样在ISUP网络上发起和终止的呼叫就可以通过SIP网络转接,而不会丢失信息。
SIP-I和SIP-T都定义了SIP和ISUP网络之间的消息、参数和错误代码的映射。它们都可以与SIP网络上符合要求的SIP网络组件完全互操作。
SIP-I和SIP-T允许ISUP参数在SIP网络中透明传输的方式是,在入口处的PSTN网关将原始ISUP消息的字面副本附加到SIP消息中;这个ISUP消息作为另一个主体出现在SIP消息中。
SIP-I 与 SIP-T 的不同点
SIP-I是由ITU在2004年开发的(定义在ITU-T Q.1912.5),而SIP-T是由开发SIP的IETF(互 ...
janus的admin/api详解
此处讲解的 API 是用于检索 janus 的服务器信息和进行一部分的操作能力。如果你对插件内部的异步通知感兴趣,请通过 janus_eventhandler 机理
你可以通过配置 janus.transport.http.jcfg 中关于 admin API 部分,配置开启与关闭。其中你可以采用密码的形式或其它形式对访问 admin API 进行限制
当你使用 websockets 的时候,必须使用 Janus -admin-protocol 作为子协议。(可以参考janus-protocol)
Admin API Requests以下是不同的请求方式
普通请求其中除了 info 都采用 https://192.168.1.51:7889/admin post的形式。
info: 用于获取服务器的一些信息,不需要秘钥即可请求
request(get)
12// 后面的数字为时间戳 https://192.168.1.51:7889/admin/info?_=1652582968747
response
123456789101112131415161718192021222 ...
FFmpeg在Win编译并运行
本人选择编译的 FFmpeg 不是在 Linux 环境下面,也不是在 Win 环境下面的模拟 Linux 环境(例如:mgwin、cygwin)。
使用 vs 搭建 FFmpeg,其主要目的是为了方便调试与学习。本人较为喜欢 vs 的调试。
采用的 FFmpeg 是专门为 Win 环境做了适配。
环境
环境名
版本
WIN
WIN10
VS
vs2017
基础的搭建关于最基本的搭建内容有很多文章都有关于这方面的叙述,此处我将只会叙述一个大概主要的安装流程。
至于其中更详细内容可以参考下面的引用
第一步:创建文件夹目录,目录结构如下所示 1234- msvc (OutputDir) - source - FFmpeg - ..Any other libraries source code..
第二步:使用 FFmpeg 项目目录下面的 project_get_dependencies.bat 脚本运行并获取依赖项目。
注意:此处由于国内的原因,可以采用代 ...