zoukankan      html  css  js  c++  java
  • freeswitch笔记(1)-mac环境安装

    freeswitch是啥就不多说了,可以简单理解为一个功能强大的纯软件实现的电话交换机(俗称:软交换)。官网地址:https://freeswitch.com/,它可以运行于windows/mac/linux,完全跨平台,而且开源免费。下面介绍mac环境的安装及遇到的坑。

    前提:mac机上必须有brew,如果brew有问题(或者是很早的版本),建议参考上篇mac上homebrew重装手记.

    freeswitch官方给出了二种安装方式:“从git下载源码一步步编译安装”及“下载mac Installer文件安装”。显然用安装文件一路next的方式更友好些,遇到的坑相对也更少。

    一、下载macOS FreeSWITCH™ Installer

    freeswitch官网下载即可(目前最新的版本是1.10.2-release),下载后是一个zip包,解压开,会看到这货

    二、安装

    双击macOS FreeSWITCH Installer:

    建议先安装Update prerequisites and FreeSWITCH,这一步会把一些依赖的东西,先update成最新的,避免后面安装时出错。

    这一步的过程截图就不贴了,大致就是利用brew更新一堆东东。(注:强烈建议,先把brew的源换成国内镜像,否则那网速,等你睡醒了起床,都不一定能完成~_~)

    这个完成后,再选择第一项Install FreeSWITCH,这里会遇到第1个坑:

    到apple官网查了一下,大意是说安装程序及terminal终端没有获得系统控制权。

    进到“系统偏好”设置,找到“安全及隐私”,把macOS FreeSWITCH Installer及终端前面的勾都选中(注:我机器上的终端换成了iTerm,如果大家用的其它terminal,这里自行调整)。然后这里可能会遇到第2个坑,刚开始我按这个设置后,重新打开Installer安装程序,还是没效果,机器重启,还是一样!然后无意把mac的系统默认语言,从中文换成了英文,然后再重启。

    再次运行安装程序,居然通过了。然后就是漫长的等待,特别是最后下载各路音频文件,耗时很长,终于一切安装完成了,以为大功告成,然后兴冲冲的运行/usr/local/freeswitch/bin/freeswitch,却发现根本没这个文件!也就是说程序根本没安装成功!

    郁闷的同时,无意瞄了一眼桌面,发现一堆“FreeSWITCH Intall Logs ...” 的目录

    点进去看了下,原来是每个步骤的详细日志,这一点到蛮值得我们学习的

    打开 07 FreeSWITCH make install这个文件,看名字就能猜出这是编译安装的,多半这里有问题,果然:

    -------------------------------

    ? freeswitch make install
    /Library/Developer/CommandLineTools/usr/bin/make install-recursive
    CC src/libfreeswitch_la-switch_core_cert.lo
    src/switch_core_cert.c:39:20: error: unused function 'switch_ssl_ssl_lock_callback' [-Werror,-Wunused-function]
    static inline void switch_ssl_ssl_lock_callback(int mode, int type, char *file, int line)
    ^
    src/switch_core_cert.c:49:29: error: unused function 'switch_ssl_ssl_thread_id' [-Werror,-Wunused-function]
    static inline unsigned long switch_ssl_ssl_thread_id(void)
    ^
    2 errors generated.
    make[1]: *** [src/libfreeswitch_la-switch_core_cert.lo] Error 1
    make: *** [install] Error 2
    ? freeswitch

    -------------------------------

    意思是说,src/switch_core_cert.c这个源文件里,有2个没用到的函数switch_ssl_ssl_lock_callback、switch_ssl_ssl_thread_id。上网查了下,其它人也遇到这个问题了,见https://github.com/signalwire/freeswitch/issues/176

    随便找个编辑工具,比如vscode或vi,打开/usr/local/src/freeswitch/src/switch_core_cert.c 这个文件

     

     把这俩捣蛋函数注释掉,然后在终端下,cd /usr/local/src/freeswitch,再执行make install 就能通过了,最后在生成unittest单元测试时,可能会报错,先不用管。

    三、运行

    终端下运行下面的命令

    cd /usr/local/freeswitch/bin

    ./freeswitch

    如果能看到上面的输出,恭喜你,表示freeswitch启动成功!另外,freeswitch启动后,会占用本机的5060、8021这二个端口,可以另开一个terminal窗口,参考下图的命令检查一下:

    其中5060是sip服务器的端口,各种voip客户端软件通过这个端口与freeswitch连接。而8021端口是供其它应用连接,用来监听各种事件的(后面讲esl inbound开发时,会再详细说这块) 。

    最后折腾完了,如果想关闭,直接在freeswitch所在的terminal终端中,输入shutdown即可。

  • 相关阅读:
    Day1_Python基础
    选择排序(java版)
    冒泡排序(java版)
    手写数据库连接池(动态代理)
    JDBC增删查改(使用配置文件)
    JDBC demo
    JSP入门&会话技术
    response实现验证码图片
    android 定制自己的日志工具
    服务的最佳实践——后台执行的定时任务
  • 原文地址:https://www.cnblogs.com/yjmyzz/p/install-freeswitch-on-mac.html
Copyright © 2011-2022 走看看