最全FreeSwitch 1.10.9 Linux通用编译部署教程

这篇具有很好参考价值的文章主要介绍了最全FreeSwitch 1.10.9 Linux通用编译部署教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

FreeSwitch 通用编译部署教程


FreeSwitch的版本历程

2006年-第一个版本
2008年-1.0凤凰版
2012年-Freeswitch 1.2
2014年-FreeSwitch 1.4 WebRTC
2015年-FreeSwitch 1.6 视频通话和视频会议
2017年-FreeSwitch 1.8
2019年-FreeSwitch 1.10
2020年-FreeSwitch 1.10.3
2023年-FreeSwitch 1.10.9

此安装教程自测freeswitch1.10.2与freeswitch1.10.9版本能正常安装,freeswitch1.10.7/freeswitch1.10.8安装情况应该与freeswitch1.10.9相同

1.基础环境

操作系统:
阿里云ECS CentOS Linux release 7.9 (Ubuntu等Linux系统安装一些问题见文末,可参照前面的步骤,基本上大同小异)

cat /proc/version 或者 uname -a命令查看
Linux version 3.10.0-1160.90.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) )

2.安装方式

使用源码编译安装

可使用git拉取代码编译安装,也可以使用WinSCP等工具上传源码tar包到服务器再编译安装

3.安装基础依赖

yum install -y git alsa-lib-devel autoconf automake bison broadvoice-devel bzip2 curl-devel libdb4-devel e2fsprogs-devel erlang flite-devel g722_1-devel gcc-c++ gdbm-devel gnutls-devel ilbc2-devel ldns-devel libcodec2-devel libcurl-devel libedit-devel libidn-devel libjpeg-devel libmemcached-devel libogg-devel libsilk-devel libsndfile-devel libtheora-devel libtiff-devel libtool libuuid-devel libvorbis-devel libxml2-devel lua-devel lzo-devel mongo-c-driver-devel ncurses-devel net-snmp-devel openssl-devel opus-devel pcre-devel perl perl-ExtUtils-Embed pkgconfig portaudio-devel postgresql-devel python-devel python-devel soundtouch-devel speex-devel sqlite-devel unbound-devel unixODBC-devel wget which yasm zlib-devel libshout-devel libmpg123-devel lame-devel

4.下载cmake并进行编译安装

wget https://github.com/Kitware/CMake/releases/download/v3.23.0/cmake-3.23.0.tar.gz
tar -zvxf cmake-3.23.0.tar.gz
cd cmake-3.23.0
./bootstrap
make
make install

#链接
sudo ln -sf /usr/local/bin/cmake /usr/bin/cmake
sudo ln -sf /usr/local/bin/cpack /usr/bin/cpack
sudo ln -sf /usr/local/bin/ctest /usr/bin/ctest

5.需要手动安装所需的依赖

autoconf-2.71及以上版本
下载链接:http://mirrors.kernel.org/gnu/autoconf/

cd /usr/local/src
tar xzvf autoconf-2.71.tar.gz
cd autoconf-2.71
./configure  //做相关编译前的环境检查
make
make install

opus-1.3.1及以上版本

yum remove opus
cd /usr/local/src
wget https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz
tar xzvf opus-1.3.1.tar.gz
cd opus-1.3.1
./configure  //做相关编译前的环境检查
make
make install
cp /usr/lib/pkgconfig/opus.* /usr/lib64/pkgconfig/

如果没安装opus编译时会报错
You must install libopus-dev to build mod_opus. Stop.
如果手动安装后还是不行参照如下方式进行安装:

cd /etc/yum.repos.d/
touch linuxtech.repo
vi  linuxtech.repo

//linuxtech.repo中添加如下内容:
//按i或者insert键进入编辑模式,按Esc键退出编辑模式,输入:wq!保存退出。

[linuxtech]
name=LinuxTECH
baseurl=http://pkgrepo.linuxtech.net/el6/release/
enabled=1
gpgcheck=1
gpgkey=http://pkgrepo.linuxtech.net/el6/release/RPM-GPG-KEY-LinuxTECH.NET

//最后安装opus:
yum install libopus-devel

6.下载源代码

freeswitch1.10.4及之后的版本freeswitch官方将spandsp 和 sofia-sip单拎出来了,需要单独拉代码编译,如果是编译1.10.4之前的freeswitch(如freeswitch1.10.2版本)不必单独拉spandsp和sofia-sip的代码,直接编译freeswitch即可

重大改动历史:
https://developer.signalwire.com/freeswitch/FreeSWITCH-Explained/Release-Notes/FreeSWITCH-1.10.x-Release-notes_25460878/

//可直接在上述链接中下载freeswitch的tar包

1.8 -> 1.10.0: pgqsql moved out from FreeSWITCH core to its own module, mod_pgsql .
See 1.10.0 (Release date: 05 August 2019) at the bottom.
1.10.3 -> 1.10.4: SpanDSP and sofia-sip have been removed.
See 1.10.4 (Release date: 05 Aug 2020)​ below.
1.10.6 -> 1.10.7: Default behaviour change: to not skip announcement type apps on recovery, not hangup call on SRTP errors, 1000 maximum receiving requests per second, auth-messages and auth-subscriptions are enabled by default now, freeswitch.log log line prefix modified: will affect fail2ban log line matching until similarly modified in fail2ban (https://github.com/fail2ban/fail2ban/issues/3143).
See 1.10.7 (Release date: 24 Oct 2021)​ below.
//如果安装freeswitch1.10.2等版本可以不用拉spandsp和sofia-sip的代码,直接在官网链接下载tar包导入服务器即可解压编译

cd /usr/local/src
git clone -b v1.10.9 https://github.com/signalwire/freeswitch

cd /usr/local/src/freeswitch
git clone https://github.com/freeswitch/spandsp.git
git clone https://github.com/freeswitch/sofia-sip.git
//编译spandsp
cd /usr/local/src/freeswitch/spandsp
./bootstrap.sh
./configure
make
make install
//编译sofia-sip
cd /usr/local/src/freeswitch/sofia-sip
./bootstrap.sh
./configure
make
make install
//添加库的路径到系统
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:${PKG_CONFIG_PATH} 
ldconfig

编译freeswitch前将不必要的模块编译禁用掉,如果不禁用则需要安装对应的依赖,否则会报错

cd /usr/local/src/freeswitch
vim module.conf

//将mod_signalwire和mod_av内容注释掉

#applications/mod_signalwire
#applications/mod_av

//mod_verto不禁用可能会编译报错You need to either install libks or disable mod_verto in modules.conf

#endpoints/mod_verto  
//编译freeswitch
cd /usr/local/src/freeswitch
./bootstrap.sh  //如果是GitHub拉的代码有这一步,如果是下载tar包解压的没有这一步
./configure --enable-portable-binary --prefix=/usr/local/freeswitch --with-gnu-ld --with-python --with-openssl --enable-core-odbc-support --enable-zrtp
make
make install

如果编译时还是提示spandsp之类的未安装,返回对应文件夹make install一下spandsp并:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:${PKG_CONFIG_PATH} 
ldconfig

再回去make clean一下,随后配置./configure,然后再重新尝试make

7.编译freeswitch1.10.9问题处理

安装好前面的依赖后,编译freeswitch1.10.9时应该没有报依赖的错误(如果有请检查是否有漏掉的步骤,或者百度解决,再次编译前记得make clean后重新./configure),但是报了spandsp相关内容编译的错误error: ‘V18_MODE_5BIT_4545’ undeclared:

making all mod_spandsp
make[4]: Entering directory `/usr/local/src/freeswitch-1.10.9.-release/src/mod/applications/mod_spandsp'
  CC       mod_spandsp_la-mod_spandsp.lo
  CC       mod_spandsp_la-udptl.lo
  CC       mod_spandsp_la-mod_spandsp_fax.lo
  CC       mod_spandsp_la-mod_spandsp_dsp.lo
mod_spandsp_dsp.c: In function ‘get_v18_mode’:
mod_spandsp_dsp.c:159:10: error: ‘V18_MODE_5BIT_4545’ undeclared (first use in this function)
  int r = V18_MODE_5BIT_4545;
          ^
mod_spandsp_dsp.c:159:10: note: each undeclared identifier is reported only once for each function it appears in
mod_spandsp_dsp.c:165:8: error: ‘V18_MODE_5BIT_50’ undeclared (first use in this function)
    r = V18_MODE_5BIT_50;
        ^
mod_spandsp_dsp.c: In function ‘spandsp_tdd_send_session’:
mod_spandsp_dsp.c:216:2: error: too few arguments to function ‘v18_init’
  tdd_state = v18_init(NULL, TRUE, get_v18_mode(session), V18_AUTOMODING_GLOBAL, put_text_msg, NULL);
  ^
In file included from /usr/local/include/spandsp.h:111:0,
                 from mod_spandsp.h:50,
                 from mod_spandsp_dsp.c:36:
/usr/local/include/spandsp/v18.h:138:29: note: declared here
 SPAN_DECLARE(v18_state_t *) v18_init(v18_state_t *s,
                             ^
mod_spandsp_dsp.c: In function ‘spandsp_tdd_encode_session’:
mod_spandsp_dsp.c:263:2: error: too few arguments to function ‘v18_init’
  pvt->tdd_state = v18_init(NULL, TRUE, get_v18_mode(session), V18_AUTOMODING_GLOBAL, put_text_msg, NULL);
  ^
In file included from /usr/local/include/spandsp.h:111:0,
                 from mod_spandsp.h:50,
                 from mod_spandsp_dsp.c:36:
/usr/local/include/spandsp/v18.h:138:29: note: declared here
 SPAN_DECLARE(v18_state_t *) v18_init(v18_state_t *s,
                             ^
mod_spandsp_dsp.c: In function ‘spandsp_tdd_decode_session’:
mod_spandsp_dsp.c:341:2: error: too few arguments to function ‘v18_init’
  pvt->tdd_state = v18_init(NULL, FALSE, get_v18_mode(session), V18_AUTOMODING_GLOBAL, put_text_msg, pvt);
  ^
In file included from /usr/local/include/spandsp.h:111:0,
                 from mod_spandsp.h:50,
                 from mod_spandsp_dsp.c:36:
/usr/local/include/spandsp/v18.h:138:29: note: declared here
 SPAN_DECLARE(v18_state_t *) v18_init(v18_state_t *s,
                             ^
make[4]: *** [mod_spandsp_la-mod_spandsp_dsp.lo] Error 1
make[4]: Leaving directory `/usr/local/src/freeswitch-1.10.9.-release/src/mod/applications/mod_spandsp'
make[3]: *** [mod_spandsp-all] Error 1
make[3]: Leaving directory `/usr/local/src/freeswitch-1.10.9.-release/src/mod'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/usr/local/src/freeswitch-1.10.9.-release/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/src/freeswitch-1.10.9.-release'
make: *** [all] Error 2
[root@maomaosPC freeswitch-1.10.9.-release]# 

将源代码放到Source Insight工程中搜索相关关键词检查发现是spandsp中的内容导致的编译错误,freeswitch相关部分的代码和spandsp模块代码不匹配,去GitHub上查看提交记录,刚好是23年6月底提交的,离我编译就隔了几天的时间,真是个倒霉蛋哦。言归正传,这时候考虑回退spandsp的代码到之前代码匹配的版本,然后重新编译就可以编译成功。
具体步骤:

//先切到对应目录下删除相关内容
cd /usr/local/src/freeswitch
rm -rf spandsp
//重新拉取代码
git clone https://github.com/freeswitch/spandsp.git
//spandsp目录下执行git log或者gitlab上查看对应commit id并切换
git checkout -b finecode20230705 0d2e6ac65e0e8f53d652665a743015a88bf048d4
//按照之前的步骤重新编译安装
//在Github上反馈了这个问题后, 维护人员2023/07/19回复:
mod_spandsp uses the defines you change, e.g. V18_MODE_5BIT_4545 from v18.h,
so it is broken now as it hasn't been updated.It needs to be updated with new defines.

freeswitch安装完成后,为了让freeswitch在任何一个目录都可以运行,我们可以配置软连接:

ln -sf /usr/local/freeswitch/bin/freeswitch /usr/local/bin/
ln -sf /usr/local/freeswitch/bin/fs_cli /usr/local/bin/
//freeswitch默认安装路径/usr/local/freeswitch

8.常见配置文件说明

文件 说明
vars.xml 一些常用变量
dialplan/default.xml 缺省的拨号计划
directory/default/*.xml SIP用户,每用户一个文件
sip_profiles/internal.xml 一个SIP
sip_profiles/externa.xml 另一个SIP-UA,用作外部连接,端口5080
autoload_configs/modules.conf.xml 配置当FreeSWITCH启动时自动装载哪些模块

修改默认端口:
cd /usr/local/freeswitch/conf
(freeswitch1.10.9在/usr/local/freeswitch/etc/freeswitch目录下)
找到vars.xml修改:(可以copy一份存为vars.xml.bak备份)
修改默认端口
<X-PRE-PROCESS cmd="set" data="internal_sip_port=5060"/>
5060默认为freswitch 的sip信令内部端口

9.防火墙配置

1、在var.xml中修改
<!--X-PRE-PROCESS cmd="stun-set" data="external_rtp_ip=stun:stun.freeswitch.org"/--> 这里没有使用stun功能,而是直接把公网ip填在这里
<X-PRE-PROCESS cmd="stun-set" data="external_rtp_ip="阿里云分配的公网ip"/>
(freeswitch1.10.9好像如果是默认的端口不用配置这个也能正常使用,修改xml文件后无法访问需要设置stun再reloadxml)

在var.xml中修改了之后,就无需在conf/sip_profiles/internal.xml 和 external.xml中修改了,网上有很多例子都是直接在这两个文件改其实不用,var中改好了之后,这两个文件直接引用external_rtp_ip这个变量即可。

2、配置阿里云的防火墙及操作系统防火墙。具体参考:
https://developer.signalwire.com/freeswitch/FreeSWITCH-Explained/Networking/Firewall_1048908/

注:
阿里云点击:实例->安全组->配置规则,即可开始配置防火墙规则
另外,如果云服务器还安装了宝塔这里的工具,也需要在宝塔面板中对防火墙进行设置才能让freeswitch正常工作

防火墙配置完成后应该就可以了,使用设备注册上服务器拨打下回音电话9196试试能不能听到回音。

FreeSwitch常用默认号码:
号码 说明
9664 保持音乐
9191 注册CluCon
9192 调用info在log中显示Channel信息
9195 echo, 回音测试,延迟5秒
9196 echo,回音测试
9197 milliwatte extention, 铃音生成
9198 TGML铃音生成示例
9180 铃音测试,使用远端生成的回铃音
9181 铃音测试,产生英式铃音
9182 铃音测试,使用音乐当铃音,彩铃
9183 先应答,然后发送英式铃音
9184 先应答,然后发送音乐铃音
9178 收传真
9179 发传真
5000 IVR实例
4000 听取主意信箱
33xx 电话会议,48Hz(其中xx为00~99,下同)
32xx 电话会议,32Hz(其中xx为00~99,下同)
31xx 电话会议,16Hz(其中xx为00~99,下同)
30xx 电话会议,8Hz(其中xx为00~99,下同)
2000-2002 呼叫组
1000-1019 默认分机号码(默认密码1234)

FreeSwitch默认号码大部分是拨号计划的名称,具体定义在conf/diaplan/default.xml中

10.账号密码配置/添加新用户

修改默认密码:vars.xml
<X-PRE-PROCESS cmd="set" data="default_password=1234"/>

freeswitch批量添加用户
参考:https://blog.51cto.com/u_15049794/3833216
(freeswitch1.10.9在/usr/local/freeswitch/etc/freeswitch目录下寻找)
在/usr/local/freeswitch/conf/directory/default 下有1000.xml~1019.xml 这20个默认用户的配置文件

创建用户的xml后,要加载这些新用户的xml,需要修改/usr/local/freeswitch/conf/dialplan/default.xml这个文件里的拨号规则(正则表达式):

<extension name="Local_Extension">
<!-- 这里可以修改正则范围,允许所有分机号-->
<!--默认为  <condition field="destination_number" expression="^(10[01][0-9])$">   -->
<condition field="destination_number" expression="^([0-9]\d+)$">
<!-- ... -->
<action application="set" data="call_timeout=120"/>
<!-- ... -->
</condition>
</extension>

主要是改下正则表达式,允许所有数字。另外,默认还有一个N秒不接认为超时的配置,默认是30秒,如果有需要调整的,也可以一并修改。
调整/usr/local/freeswitch/conf/dialplan/public.xml

<extension name="public_extensions">
   <!-- 允许所有分机号 -->
   <condition field="destination_number" expression="^([0-9]\d+)$">
       <action application="transfer" data="$1 XML default"/>
   </condition>
</extension>

批量生成用户xml文件:

import org.apache.commons.lang3.StringUtils;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class CreateFreeswitchUser {

    public static void main(String[] args) throws IOException {
        String template = "D:\\soft\\FreeSWITCH\\conf\\directory\\default\\";
        String templateContent = read(template + "1000.xml");
        //创建99个用户
        for (int i = 1; i < 100; i++) {
            String newUser = "1" + StringUtils.leftPad(i + "", 3, '0');
            String newContent = templateContent.replaceAll("1000", newUser);
            String newFileName = template + newUser + ".xml";
            write(newFileName, newContent);
            System.out.println(newFileName + " done!");
        }
    }

    static String read(String fileName) throws IOException {
        File f = new File(fileName);
        if (!f.exists()) {
            return null;
        }
        FileInputStream fs = new FileInputStream(f);
        String result = null;
        byte[] b = new byte[fs.available()];
        fs.read(b);
        fs.close();
        result = new String(b);
        return result;
    }

    static void write(String fileName, String fileContent) throws IOException {
        File f = new File(fileName);
        if (f.exists()) {
            f.delete();
        }
        FileOutputStream fs = new FileOutputStream(f);
        fs.write(fileContent.getBytes());
        fs.flush();
        fs.close();
    }
}

然后将生成的用户文件拷贝到/usr/local/freeswitch/conf/directory/default目录下

11.freeswitch后台基础操作指令

ps -ef | grep freeswithch 查看进程号
netstat -an | grep 5060 查询FreeSWITCH 监听在哪个IP地址上(默认5060端口的情况下)
whereis freeswitch 查看freeswitch安装路径


freeswitch -help可查看帮助信息
freeswitch  启动并前台运行
freeswitch -nc  启动并后台运行
freeswitch -stop 停止

fs_cli 进入freeswitch控制台后:
show registrations 查看注册用户情况
sofia status profile internal reg 显示在线注册用户信息
status 查看freeswitch的运行状态
/exit 或 /quit 或 /bye  退出fs_cli
shutdown 关闭freeswitch
reloadxml 重新加载xml配置
console loglevel 7 开启控制台日志级别, 0-7, 数字越大日志越多
version 显示版本信息

12.相关tar包下载

如果网络不好拉不下来GitHub上的代码,可以下载下面的tar包编译试一下:(0积分,绝不给CSDN打一点工)包含:autoconf-2.71、cmake-3.23.0、opus-1.3.1、sofia-sip、spandsp、freeswitch-1.10.2.-release、freeswitch-1.10.9.-release
链接:
https://download.csdn.net/download/qq_36369267/88003573

13.VoIP客户端工具推荐:

推荐portsip-uc和linphone,Android和Windows均有安装包,portsip在IOS上应该也是有客户端的,可自行搜索下载使用

14.Ubuntu问题:

步骤与CentOS基本一致,具体步骤参考一下下面这篇博文:
https://blog.csdn.net/qq_40170041/article/details/123996904

编译部署可能遇到的问题:

#报错1
configure: error: no usable libodbc; please install unixodbc devel package or equivalent
#处理
sudo apt-get install unixodbc
或./configure时不带参数(unixodbc安装后没用时采用此方式)
#报错2:
src/switch_apr.c:81:23: fatal error: uuid/uuid.h: No such file or directory
#处理
sudo apt-get install uuid-dev

15.参考:

References:
https://www.cnblogs.com/kn-zheng/p/17388340.html
https://blog.51cto.com/lion3875/599416
http://www.360doc.com/content/15/0401/19/15077656_459884519.shtml文章来源地址https://www.toymoban.com/news/detail-701268.html

到了这里,关于最全FreeSwitch 1.10.9 Linux通用编译部署教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • freeswitch 1.10.10-dev录音早期媒体卡通道的bug分析

    最近编译了fs 1.10.10-dev也就是 master版本(2023年7月6日) 给几个客户升级了一下,发现非常不稳定(每天都有几个通道卡在early状态),最近才有空来分析原因。 之前跑的是1.10.8 release 版本,从来没出现过这个问题,我把 1.10.8的代码和1.10.10-dev的代码整体对比了一下,整体改变不

    2024年02月14日
    浏览(31)
  • FreeSWITCH 1.10.10 简单图形化界面1 - docker/脚本/ISO镜像安装

    网站地址:http://myfs.f3322.net:8020/ 接口地址:http://myfs.f3322.net:8020/ 用户名:admin,密码:admin 备用地址:阿里云Alibaba Cloud Linux 3 备用地址:华为云Huawei Cloud EulerOS 2.0 这里是手册 自行安装docker/podman程序,执行命令,下载镜像。 启动执行命令: (1). network=host,根据系统具体情

    2024年02月11日
    浏览(59)
  • FreeSWITCH 1.10.10 简单图形化界面7-记录一次配置讯时网关的问题

    用户使用的是迅时HX4E。按照这篇文章配置后,能呼出,不能呼入。 直接呼入网关自己挂了,FreeSWITCH也没有收到任何呼入消息; 网关SIP日志,提示自己486 busy; 抓包发现讯时网关把invite 请求行IP是对的,但是消息发给网关自己了,挺纳闷的; 折腾两个小时用户发现把网线查到

    2024年02月09日
    浏览(42)
  • 智能AI机器人源码,电话机器人源码和系统部署运行环境freeswitch

    介绍 AI智能电话机器人市场越来越火,你还在做代理吗?市场竞争越​‌‌来越激烈,成本越来越高,你需要一套独立的电销机器人系统,电销机器人系统源码独立部署了,你只需一次性买断,将系统部署在你的服务器上,自己做品牌,可以创建OEM贴牌可以开代理账号,重要的

    2024年01月21日
    浏览(75)
  • AI电销机器人-智能AI机器人源码,电话机器人源码和系统部署运行环境freeswitch

    介绍 AI智能电话机器人市场越来越火,你还在做代理吗?市场竞争越​‌‌来越激烈,成本越来越高,你需要一套独立的电销机器人系统,电销机器人系统源码独立部署了,你只需一次性买断,将系统部署在你的服务器上,自己做品牌,可以创建OEM贴牌可以开代理账号,重要的

    2024年02月03日
    浏览(46)
  • 接上文AI电销机器人-智能AI机器人源码,电话机器人源码和系统部署运行环境freeswitch

    21)话术的启用 功能说明: 通过此接口实现对话术的启用。 更新说明: -- 请求: URL:http://{ ip }/ai/ai2words/start 请求方法:POST 请求头:必须带上登录时返回的Token Auth: {登录时返回的Token} 参数名 类型 是否必须 描述 实例 wordsId Integer 是 话术的编号 20 响应: 参数名 类型 描述

    2024年02月04日
    浏览(57)
  • 猿创征文|【FreeSwitch开发实践】使用sipp对FreeSwitch进行压力测试

    ✨ 博客主页:小小马车夫的主页 ✨ 所属专栏:FreeSwitch开发实践 ✨ 专栏介绍:主要介绍博主在实际项目中使用FreeSwitch开发外呼类项目的一些经验心得,主要涉及FreeSwitch的基本安装编译、基本配置、ESL、WSS、录音、自定义模块、media bug、语音播放、MRCP及对接AI机器人等内容

    2024年02月03日
    浏览(41)
  • FreeSWITCH —— 常用指令

    (1)使用freeswitch -help 或freeswitch --help 会显示一些命令及其相关说明。 (注:以上显示Unknown Command,直接输入help就可以了) 常用命令如下: 1、version —— 显示当前版本 2、status —— 显示当前状态 3、sofia status —— 显示sofia 状态(查看freeswitch监听的IP和本电脑ip) 4、help

    2024年02月12日
    浏览(32)
  • FreeSwitch中启用WebRTC

    FreeSWITCH是一个开源的电话交换软件平台,它允许用户建立语音、视频和即时消息通信系统。FreeSWITCH可以在多个操作系统上运行,包括Linux、Windows、MacOS等,并且支持多种语音和网络协议,例如SIP、H.323、WebRTC、RTP、RTCP等。 FreeSWITCH被广泛用于语音信箱、呼叫中心、电话会议、

    2024年02月01日
    浏览(35)
  • FreeSWITCH添加自定义endpoint

    操作系统 :CentOS 7.6_x64      FreeSWITCH版本 :1.10.9   日常开发过程中会遇到需要扩展FreeSWITCH对接其它系统的情况,这里记录下编写FreeSWITCH自定义endpoint的过程。 使用FreeSWITCH自带的框架来定义模块函数,函数指针及参数列表定义如下(src/include/switch_types.h)   SWITCH_MODULE_LOAD

    2024年02月06日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包