蓝天国度 發表於 2021-12-14 16:19:00

FreeSWITCH 1.10.7 编译(debian 11)

<p>1、安装预备库</p>
<div class="cnblogs_code">
<pre>更新源:deb https://security.debian.org/debian-security bullseye-security main non-free contrib<br><br>apt <span style="color: rgba(0, 0, 255, 1)">install</span> -y build-essential gdb gnupg2 <span style="color: rgba(0, 0, 255, 1)">wget</span> autoconf lsb-release libtool libtool-bin libtiff-dev uuid-dev <span style="color: rgba(0, 0, 255, 1)">pkg-config</span> openssl libssl-dev sqlite3 libsqlite3-dev libcurl4-openssl-dev libspeexdsp-dev libldns-dev libedit-dev yasm nasm ffmpeg libswscale-dev libavformat-dev lua5.<span style="color: rgba(128, 0, 128, 1)">4</span> liblua5.<span style="color: rgba(128, 0, 128, 1)">4</span>-dev libopus-dev libpq-dev libmariadb-dev unixodbc unixodbc-dev libsndfile1-dev libpcre3-dev python3-pip python3-distutils</pre>
</div>
<p>2、 安装libks</p>
<div class="cnblogs_code">
<pre>git clone https:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">github.com/signalwire/libks.git</span>
<span style="color: rgba(0, 0, 0, 1)">cmake .
</span><span style="color: rgba(0, 0, 255, 1)">make</span>
<span style="color: rgba(0, 0, 255, 1)">sudo</span> <span style="color: rgba(0, 0, 255, 1)">make</span> <span style="color: rgba(0, 0, 255, 1)">install</span></pre>
</div>
<p>3、安装spandsp</p>
<div class="cnblogs_code">
<pre>git clone https:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">github.com/freeswitch/spandsp.git</span>
<span style="color: rgba(0, 0, 0, 1)">cd spandsp
.</span>/bootstrap.<span style="color: rgba(0, 0, 255, 1)">sh</span> -<span style="color: rgba(0, 0, 0, 1)">j
.</span>/<span style="color: rgba(0, 0, 0, 1)">configure
</span><span style="color: rgba(0, 0, 255, 1)">make</span>
<span style="color: rgba(0, 0, 255, 1)">make</span> <span style="color: rgba(0, 0, 255, 1)">install</span></pre>
</div>
<p>4、编译sofia-sip</p>
<div class="cnblogs_code">
<pre>git clone https:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">github.com/freeswitch/sofia-sip.git</span>
cd sofia-<span style="color: rgba(0, 0, 0, 1)">sip
.</span>/bootstrap.<span style="color: rgba(0, 0, 255, 1)">sh</span> -<span style="color: rgba(0, 0, 0, 1)">j
.</span>/<span style="color: rgba(0, 0, 0, 1)">configure
</span><span style="color: rgba(0, 0, 255, 1)">make</span>
<span style="color: rgba(0, 0, 255, 1)">make</span> <span style="color: rgba(0, 0, 255, 1)">install</span></pre>
</div>
<p>5、编译freeswitch 1.10.7</p>
<div class="cnblogs_code">
<pre>./<span style="color: rgba(0, 0, 0, 1)">configure
</span><span style="color: rgba(0, 0, 255, 1)">make</span> -<span style="color: rgba(0, 0, 0, 1)">j4
</span><span style="color: rgba(0, 0, 255, 1)">make</span> <span style="color: rgba(0, 0, 255, 1)">install</span></pre>
</div>
<p>&nbsp;6、链接mod_spandsp_dsp故障处理</p>
<p>FreeSWITCH·编译mod_spandsp_dsp模块是找不到函数:</p>
<div class="cnblogs_code">
<pre>mod_spandsp_dsp.c: In <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> ‘get_v18_mode’:
mod_spandsp_dsp.c:</span><span style="color: rgba(128, 0, 128, 1)">159</span>:<span style="color: rgba(128, 0, 128, 1)">10</span>: error: ‘V18_MODE_5BIT_4545’ undeclared (first use <span style="color: rgba(0, 0, 255, 1)">in</span> this <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">)
</span><span style="color: rgba(128, 0, 128, 1)">159</span> |<span style="color: rgba(0, 0, 255, 1)">int</span> r =<span style="color: rgba(0, 0, 0, 1)"> V18_MODE_5BIT_4545;
      </span>|          ^~~~~~~~~~~~~~~~~~<span style="color: rgba(0, 0, 0, 1)">
mod_spandsp_dsp.c:</span><span style="color: rgba(128, 0, 128, 1)">159</span>:<span style="color: rgba(128, 0, 128, 1)">10</span>: note: each undeclared identifier is reported only once <span style="color: rgba(0, 0, 255, 1)">for</span> each <span style="color: rgba(0, 0, 255, 1)">function</span> it appears <span style="color: rgba(0, 0, 255, 1)">in</span><span style="color: rgba(0, 0, 0, 1)">
mod_spandsp_dsp.c:</span><span style="color: rgba(128, 0, 128, 1)">165</span>:<span style="color: rgba(128, 0, 128, 1)">8</span>: error: ‘V18_MODE_5BIT_50’ undeclared (first use <span style="color: rgba(0, 0, 255, 1)">in</span> this <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">)
</span><span style="color: rgba(128, 0, 128, 1)">165</span> |    r =<span style="color: rgba(0, 0, 0, 1)"> V18_MODE_5BIT_50;
      </span>|      ^~~~~~~~~~~~~~~~<span style="color: rgba(0, 0, 0, 1)">
mod_spandsp_dsp.c: In </span><span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> ‘spandsp_tdd_send_session’:
mod_spandsp_dsp.c:</span><span style="color: rgba(128, 0, 128, 1)">216</span>:<span style="color: rgba(128, 0, 128, 1)">14</span>: error: too few arguments to <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> ‘v18_init’
</span><span style="color: rgba(128, 0, 128, 1)">216</span> |tdd_state =<span style="color: rgba(0, 0, 0, 1)"> v18_init(NULL, TRUE, get_v18_mode(session), V18_AUTOMODING_GLOBAL, put_text_msg, NULL);
      </span>|            ^~~~~~~~<span style="color: rgba(0, 0, 0, 1)">
In </span><span style="color: rgba(0, 0, 255, 1)">file</span> included from /usr/local/include/spandsp.h:<span style="color: rgba(128, 0, 128, 1)">112</span><span style="color: rgba(0, 0, 0, 1)">,
               from mod_spandsp.h:</span><span style="color: rgba(128, 0, 128, 1)">50</span><span style="color: rgba(0, 0, 0, 1)">,
               from mod_spandsp_dsp.c:</span><span style="color: rgba(128, 0, 128, 1)">36</span><span style="color: rgba(0, 0, 0, 1)">:
</span>/usr/local/include/spandsp/v18.h:<span style="color: rgba(128, 0, 128, 1)">138</span>:<span style="color: rgba(128, 0, 128, 1)">29</span><span style="color: rgba(0, 0, 0, 1)">: note: declared here
</span><span style="color: rgba(128, 0, 128, 1)">138</span> | SPAN_DECLARE(v18_state_t *) v18_init(v18_state_t *<span style="color: rgba(0, 0, 0, 1)">s,
      </span>|                           ^~~~~~~~<span style="color: rgba(0, 0, 0, 1)">
mod_spandsp_dsp.c: In </span><span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> ‘spandsp_tdd_encode_session’:
mod_spandsp_dsp.c:</span><span style="color: rgba(128, 0, 128, 1)">263</span>:<span style="color: rgba(128, 0, 128, 1)">19</span>: error: too few arguments to <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> ‘v18_init’
</span><span style="color: rgba(128, 0, 128, 1)">263</span> |pvt-&gt;tdd_state = v18_init(NULL, TRUE, get_v18_mode(session), V18_AUTOMODING_GLOBAL, put_text_msg, NULL);</pre>
</div>
<p>处理步骤:</p>
<p>回退spandsp版本,重新编译:</p>
<div class="cnblogs_code">
<pre>git clone https:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">github.com/freeswitch/spandsp.git</span>
<span style="color: rgba(0, 0, 0, 1)">cd spandsp
git checkout </span>-<span style="color: rgba(0, 0, 0, 1)">b finecode20230705 0d2e6ac65e0e8f53d652665a743015a88bf048d4

.</span>/bootstrap.<span style="color: rgba(0, 0, 255, 1)">sh</span> -<span style="color: rgba(0, 0, 0, 1)">j
.</span>/<span style="color: rgba(0, 0, 0, 1)">configure
</span><span style="color: rgba(0, 0, 255, 1)">make</span>
<span style="color: rgba(0, 0, 255, 1)">make</span> <span style="color: rgba(0, 0, 255, 1)">install</span></pre>
</div>
<p>&nbsp;</p><br><br>
来源:https://www.cnblogs.com/zhongqifeng/p/15688517.html
頁: [1]
查看完整版本: FreeSWITCH 1.10.7 编译(debian 11)