{"id":1038,"date":"2025-03-10T00:43:39","date_gmt":"2025-03-09T17:43:39","guid":{"rendered":"https:\/\/omtel.ltd\/?p=1038"},"modified":"2025-03-10T00:51:47","modified_gmt":"2025-03-09T17:51:47","slug":"install-freeswitch-1-10-12-on-debian12","status":"publish","type":"post","link":"https:\/\/omtel.ltd\/index.php\/2025\/03\/10\/install-freeswitch-1-10-12-on-debian12\/","title":{"rendered":"Install freeswitch 1.10.12 on debian12"},"content":{"rendered":"<p>root@san:~# apt-get update &amp;&amp; sudo apt upgrade -y<br \/>\nroot@san:~# apt-get install -y git build-essential autoconf automake libtool-bin g++ python3-dev uuid-dev zlib1g-dev libjpeg-dev libncurses5-dev libssl-dev libpcre3-dev libdb-dev libsndfile1-dev libedit-dev libldns-dev libcurl4-openssl-dev libpq-dev libspeex-dev libspeexdsp-dev libsqlite3-dev libopus-dev libsndfile1-dev libtiff-dev libavformat-dev libswscale-dev liblua5.2-dev liblua5.3-dev libmpg123-dev libpq-dev libvpx-dev libopusfile-dev libshout3-dev libfreeimage-dev libyuv-dev libx264-dev cmake pkg-config libbroadvoice16-dev libsilk-dev libflite1-dev libilbc-dev libgsm1-dev libopenh264-dev unzip wget libswresample-dev<\/p>\n<p>E: Package &#8216;libavresample-dev&#8217; has no installation candidate<br \/>\n\u0e41\u0e1e\u0e47\u0e01\u0e40\u0e01\u0e08 libavresample-dev \u0e16\u0e39\u0e01\u0e25\u0e1a\u0e2d\u0e2d\u0e01\u0e08\u0e32\u0e01 Debian 12 (Bookworm) \u0e40\u0e19\u0e37\u0e48\u0e2d\u0e07\u0e08\u0e32\u0e01 FFmpeg \u0e44\u0e14\u0e49\u0e40\u0e25\u0e34\u0e01\u0e43\u0e0a\u0e49 libavresample \u0e41\u0e25\u0e49\u0e27<\/p>\n<p>apt install libswresample-dev<\/p>\n<p>Download Freeswitch<br \/>\nhttps:\/\/files.freeswitch.org\/freeswitch-releases\/<br \/>\nroot@san:~# cd \/usr\/src<br \/>\nroot@san:\/usr\/src# wget https:\/\/files.freeswitch.org\/freeswitch-releases\/freeswitch-1.10.12.-release.tar.gz<br \/>\nroot@san:\/usr\/src# tar xvf freeswitch-1.10.12.-release.tar.gz<br \/>\nroot@san:\/usr\/src# cd freeswitch-1.10.12.-release<\/p>\n<p>root@san:\/usr\/src\/freeswitch-1.10.12.-release# .\/rebootstrap.sh<br \/>\n\u0e40\u0e1b\u0e37\u0e14 Modules \u0e17\u0e35\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e08\u0e30\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19<br \/>\nroot@san:\/usr\/src\/freeswitch-1.10.12.-release# nano modules.conf<\/p>\n<p>say\/mod_say_th<br \/>\ndatabases\/mod_mariadb<\/p>\n<p>root@san:\/usr\/src\/freeswitch-1.10.12.-release# .\/configure &#8211;prefix=\/usr\/local\/freeswitch &#8211;enable-core-pgsql-support<\/p>\n<p>root@san:\/usr\/src\/freeswitch-1.10.12.-release# make -j$(nproc)<\/p>\n<p>make[4]: Entering directory &#8216;\/usr\/src\/freeswitch-1.10.12.-release\/src\/mod\/applications\/mod_spandsp&#8217;<br \/>\nCC mod_spandsp_la-mod_spandsp.lo<br \/>\nCC mod_spandsp_la-udptl.lo<br \/>\nCC mod_spandsp_la-mod_spandsp_fax.lo<br \/>\nCC mod_spandsp_la-mod_spandsp_dsp.lo<br \/>\nmod_spandsp_dsp.c: In function \u2018get_v18_mode\u2019:<br \/>\nmod_spandsp_dsp.c:159:17: error: \u2018V18_MODE_5BIT_4545\u2019 undeclared (first use in this function)<br \/>\n159 | int r = V18_MODE_5BIT_4545;<br \/>\n| ^~~~~~~~~~~~~~~~~~<br \/>\nmod_spandsp_dsp.c:159:17: note: each undeclared identifier is reported only once for each function it appears in<br \/>\nmod_spandsp_dsp.c:165:29: error: \u2018V18_MODE_5BIT_50\u2019 undeclared (first use in this function)<br \/>\n165 | r = V18_MODE_5BIT_50;<br \/>\n| ^~~~~~~~~~~~~~~~<br \/>\nmod_spandsp_dsp.c: In function \u2018spandsp_tdd_send_session\u2019:<br \/>\nmod_spandsp_dsp.c:216:21: error: too few arguments to function \u2018v18_init\u2019<br \/>\n216 | tdd_state = v18_init(NULL, TRUE, get_v18_mode(session), V18_AUTOMODING_GLOBAL, put_text_msg, NULL);<br \/>\n| ^~~~~~~~<br \/>\nIn file included from \/usr\/local\/include\/spandsp.h:114,<br \/>\nfrom mod_spandsp.h:50,<br \/>\nfrom mod_spandsp_dsp.c:36:<br \/>\n\/usr\/local\/include\/spandsp\/v18.h:138:29: note: declared here<br \/>\n138 | SPAN_DECLARE(v18_state_t *) v18_init(v18_state_t *s,<br \/>\n| ^~~~~~~~<br \/>\nmod_spandsp_dsp.c: In function \u2018spandsp_tdd_encode_session\u2019:<br \/>\nmod_spandsp_dsp.c:263:26: error: too few arguments to function \u2018v18_init\u2019<br \/>\n263 | pvt-&gt;tdd_state = v18_init(NULL, TRUE, get_v18_mode(session), V18_AUTOMODING_GLOBAL, put_text_msg, NULL);<br \/>\n| ^~~~~~~~<br \/>\n\/usr\/local\/include\/spandsp\/v18.h:138:29: note: declared here<br \/>\n138 | SPAN_DECLARE(v18_state_t *) v18_init(v18_state_t *s,<br \/>\n| ^~~~~~~~<br \/>\nmod_spandsp_dsp.c: In function \u2018spandsp_tdd_decode_session\u2019:<br \/>\nmod_spandsp_dsp.c:341:26: error: too few arguments to function \u2018v18_init\u2019<br \/>\n341 | pvt-&gt;tdd_state = v18_init(NULL, FALSE, get_v18_mode(session), V18_AUTOMODING_GLOBAL, put_text_msg, pvt);<br \/>\n| ^~~~~~~~<br \/>\n\/usr\/local\/include\/spandsp\/v18.h:138:29: note: declared here<br \/>\n138 | SPAN_DECLARE(v18_state_t *) v18_init(v18_state_t *s,<\/p>\n<p><strong>\u0e17\u0e35\u0e48\u0e40\u0e1b\u0e47\u0e19\u0e41\u0e1a\u0e1a\u0e19\u0e35\u0e49\u0e40\u0e1e\u0e23\u0e32\u0e30 Module mod_spandsp \u0e21\u0e35 BUG \u0e17\u0e35\u0e48\u0e41\u0e01\u0e49\u0e44\u0e02\u0e41\u0e25\u0e49\u0e27\u0e41\u0e15\u0e48\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e41\u0e01\u0e49\u0e44\u0e02\u0e17\u0e35\u0e48 Code Release \u0e08\u0e30\u0e15\u0e49\u0e2d\u0e07\u0e17\u0e33\u0e01\u0e32\u0e23 patch \u0e01\u0e48\u0e2d\u0e19<\/strong><\/p>\n<p><strong>https:\/\/github.com\/zenthangplus\/ansible-role-fsmrf\/blob\/9a73a47bfa19a485ddfc10f496bfc2041594f552\/files\/mod_spandsp_dsp.c.patch<\/strong><\/p>\n<p>root@san:\/usr\/src\/freeswitch-1.10.12.-release# cd src\/mod\/applications\/mod_spandsp\/<br \/>\nroot@san:\/usr\/src\/freeswitch-1.10.12.-release\/src\/mod\/applications\/mod_spandsp# wget https:\/\/raw.githubusercontent.com\/zenthangplus\/ansible-role-fsmrf\/9a73a47bfa19a485ddfc10f496bfc2041594f552\/files\/mod_spandsp_dsp.c.patch<\/p>\n<p>root@san:\/usr\/src\/freeswitch-1.10.12.-release\/src\/mod\/applications\/mod_spandsp# root@san:\/usr\/src\/freeswitch-1.10.12.-release\/src\/mod\/applications\/mod_spandsp# patch -p0 &lt; mod_spandsp_dsp.c.patch \u0e25\u0e2d\u0e07 make \u0e14\u0e39 root@san:\/usr\/src\/freeswitch-1.10.12.-release\/src\/mod\/applications\/mod_spandsp# make \u0e16\u0e49\u0e32\u0e44\u0e21\u0e48\u0e21\u0e35 error \u0e01\u0e47\u0e01\u0e25\u0e31\u0e1a\u0e44\u0e1b\u0e25\u0e2d\u0e07 \u0e2a\u0e31\u0e48\u0e07 make freeswitch \u0e43\u0e2b\u0e21\u0e48 root@san:\/usr\/src\/freeswitch-1.10.12.-release\/src\/mod\/applications\/mod_spandsp# cd \/usr\/src\/freeswitch-1.10.12.-release root@san:\/usr\/src\/freeswitch-1.10.12.-release# make clean \u0e1b\u0e23\u0e31\u0e1a\u0e41\u0e15\u0e48\u0e07 Banner root@san:\/usr\/src\/freeswitch-1.10.12.-release# cd libs\/esl\/ root@san:\/usr\/src\/freeswitch-1.10.12.-release\/libs\/esl\/ee fs_cli.c static const char *banner =&#8221;YOUR BANNER email@mydomain.com&#8221;; root@san:\/usr\/src\/freeswitch-1.10.12.-release\/libs\/esl# cd \/usr\/src\/freeswitch-1.10.12.-release\/src\/include\/ root@san:\/usr\/src\/freeswitch-1.10.12.-release\/src\/include# mv cc.h cc.bak root@san:\/usr\/src\/freeswitch-1.10.12.-release\/src\/include# nano cc.h const char *cc = \u201c\u201d; const char *cc_s = \u201c\u201d; root@san:\/usr\/src\/freeswitch-1.10.12.-release\/src\/include# cd ..\/..\/ root@san:\/usr\/src\/freeswitch-1.10.12.-release# .\/configure &#8211;prefix=\/usr\/local\/freeswitch &#8211;enable-core-pgsql-support root@san:\/usr\/src\/freeswitch-1.10.12.-release# make install tab &gt;q. \u0e01\u0e14 Y<\/p>\n<p>root@san:\/usr\/src\/freeswitch-1.10.12.-release# make cd-sounds-install &amp;&amp; make cd-moh-install &amp;&amp; make uhd-sounds-install &amp;&amp; make uhd-moh-install &amp;&amp; make hd-sounds-install &amp;&amp; make hd-moh-install &amp;&amp; make sounds-install &amp;&amp; make moh-install<\/p>\n<p>root@san:\/usr\/src\/freeswitch# make samples<\/p>\n<p>root@san:\/usr\/local\/freeswitch\/conf\/autoload_configs# cp event_socket.conf.xml event_socket.conf.orig<\/p>\n<p>root@san:\/usr\/local\/freeswitch\/conf\/autoload_configs# nano event_socket.conf.xml<\/p>\n<p>&lt;configuration name=&#8221;event_socket.conf&#8221; description=&#8221;Socket Client&#8221;&gt;<br \/>\n&lt;settings&gt;<br \/>\n&lt;param name=&#8221;listen-ip&#8221; value=&#8221;0.0.0.0&#8243;\/&gt;<br \/>\n&lt;param name=&#8221;listen-port&#8221; value=&#8221;8021&#8243;\/&gt;<br \/>\n&lt;param name=&#8221;password&#8221; value=&#8221;(YourPass)&#8221;\/&gt;<br \/>\n&lt;!&#8211;&lt;param name=&#8221;apply-inbound-acl&#8221; value=&#8221;loopback.auto&#8221;\/&gt;&#8211;&gt;<br \/>\n&lt;!&#8211;&lt;param name=&#8221;stop-on-bind-error&#8221; value=&#8221;true&#8221;\/&gt;&#8211;&gt;<br \/>\n&lt;\/settings&gt;<br \/>\n&lt;\/configuration&gt;<\/p>\n<p>root@san:\/etc# nano \/etc\/fs_cli.conf<\/p>\n<p>[default]<\/p>\n<p>; Put me in \/etc\/fs_cli.conf or ~\/.fs_cli_conf<br \/>\nkey_f1 =&gt; help<br \/>\nkey_f2 =&gt; status<br \/>\nkey_f3 =&gt; show channels<br \/>\nkey_f4 =&gt; show calls<br \/>\nkey_f5 =&gt; sofia status<br \/>\nkey_f6 =&gt; reloadxml<br \/>\nkey_f7 =&gt; \/log console<br \/>\nkey_f8 =&gt; \/log debug<br \/>\nkey_f9 =&gt; sofia status profile internal<br \/>\nkey_f10 =&gt; fsctl pause<br \/>\nkey_f11 =&gt; fsctl resume<br \/>\nkey_f12 =&gt; version<\/p>\n<p>[default]<br \/>\nprofile =&gt; (Your Profile Name)<br \/>\nhost =&gt; 127.0.0.1<br \/>\nport =&gt; 8021<br \/>\npassword =&gt; (YourPass)<br \/>\ndebug =&gt; 2<br \/>\nloglevel =&gt; debug<\/p>\n<p>root@san:\/etc# cd \/usr\/local\/freeswitch\/bin<br \/>\nroot@san:\/usr\/local\/freeswitch\/bin# ln -s \/usr\/local\/freeswitch\/bin\/freeswitch \/bin\/freeswitch<br \/>\nroot@san:\/usr\/local\/freeswitch\/bin# ln -s \/usr\/local\/freeswitch\/bin\/fs_cli \/bin\/fs_cli<\/p>\n<p>root@san:\/usr\/local\/freeswitch\/bin# cd \/usr\/local\/freeswitch\/conf\/<br \/>\nroot@san:\/usr\/local\/freeswitch\/conf# cp vars.xml vars.orig<br \/>\nroot@san:\/usr\/local\/freeswitch\/conf# nano vars.xml<\/p>\n<p>&lt;X-PRE-PROCESS cmd=&#8221;set&#8221; data=&#8221;ChangeDefaultPasswordToYourPassword&#8221;\/&gt;<\/p>\n<p>Goto<br \/>\nFreeSWICH will default to $${local_ip_v4} unless changed. Changing this setting does<br \/>\naffect the sip authentication. Please review conf\/directory\/default.xml for more<br \/>\ninformation on this topic.<\/p>\n<p>&lt;!&#8211; Specific Macro Variables for Networking &#8211;&gt;<br \/>\n&lt;X-PRE-PROCESS cmd=&#8221;set&#8221; data=&#8221;domain=yourdomain.com&#8221;\/&gt;<br \/>\n&lt;X-PRE-PROCESS cmd=&#8221;set&#8221; data=&#8221;local_ip_v4=(Your_IP_Address)&#8221;\/&gt;<br \/>\n&lt;X-PRE-PROCESS cmd=&#8221;set&#8221; data=&#8221;local_mask_v4=(Your_Netmask)&#8221;\/&gt;<br \/>\n&lt;X-PRE-PROCESS cmd=&#8221;set&#8221; data=&#8221;internet_public_ip_v4=(Your_Public_IP_Address)&#8221;\/&gt;<br \/>\n&lt;X-PRE-PROCESS cmd=&#8221;set&#8221; data=&#8221;hostname=PBX&#8221;\/&gt;<br \/>\n&lt;X-PRE-PROCESS cmd=&#8221;set&#8221; data=&#8221;session_name=PBX&#8221;\/<\/p>\n<p>&lt;X-PRE-PROCESS cmd=&#8221;stun-set&#8221; data=&#8221;external_rtp_ip=(Your_Public_IP_Address)&#8221;\/&gt;<br \/>\n&lt;X-PRE-PROCESS cmd=&#8221;stun-set&#8221; data=&#8221;external_sip_ip=(Your_Public_IP_Address)&#8221;\/&gt;<\/p>\n<p>&lt;X-PRE-PROCESS cmd=&#8221;set&#8221; data=&#8221;outbound_caller_name=(Your_Outbound_Number)&#8221;\/&gt;<br \/>\n&lt;X-PRE-PROCESS cmd=&#8221;set&#8221; data=&#8221;outbound_caller_id=(Your_Outbound_Number)&#8221;\/&gt;<\/p>\n<p>Save:Exit<br \/>\n<strong><br \/>\n\u0e16\u0e49\u0e32\u0e22\u0e31\u0e07\u0e44\u0e21\u0e48\u0e21\u0e35 freeswitch Start Script \u0e43\u0e2b\u0e49\u0e25\u0e2d\u0e07 Start \u0e14\u0e49\u0e27\u0e22 Command \u0e19\u0e35\u0e49\u0e14\u0e39<\/strong><br \/>\nroot@san:# freeswitch -nonat -nc &amp;<br \/>\n\u0e41\u0e25\u0e30\u0e25\u0e2d\u0e07 \u0e43\u0e0a\u0e49\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07 netstat -lntup \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e14\u0e39 freeswitch process<\/p>\n<p><strong>\u0e25\u0e2d\u0e07\u0e43\u0e0a\u0e49 fs_cli \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e40\u0e02\u0e49\u0e32 console \u0e14\u0e39<\/strong><br \/>\nroot@san:\/usr\/local\/freeswitch\/conf\/autoload_configs# fs_cli<br \/>\npbx.omtel.ltd teee@khun-teee.com<br \/>\nType \/help to see a list of commands<\/p>\n<p>[This app Best viewed at 160&#215;60 or more..]<br \/>\n+OK log level [7]<\/p>\n<p>root@san:\/usr\/local\/freeswitch\/conf# nano \/etc\/systemd\/system\/freeswitch.service<\/p>\n<p>[Unit]<br \/>\nDescription=FreeSWITCH<br \/>\nAfter=network.target<\/p>\n<p>[Service]<br \/>\nUser=root<br \/>\nGroup=root<br \/>\nWorkingDirectory=\/usr\/local\/freeswitch<br \/>\nExecStart=\/usr\/local\/freeswitch\/bin\/freeswitch -u root -g root -nonat -nc<br \/>\nRestart=always<br \/>\nLimitCORE=infinity<br \/>\nLimitNOFILE=100000<br \/>\nLimitNPROC=60000<br \/>\nLimitSTACK=24000000<br \/>\nLimitRTPRIO=99<br \/>\nLimitRTTIME=7000000<br \/>\nIOSchedulingClass=realtime<br \/>\nIOSchedulingPriority=2<br \/>\nCPUQuota=80%<br \/>\nCPUSchedulingPolicy=rr<br \/>\nCPUSchedulingPriority=89<\/p>\n<p>[Install]<br \/>\nWantedBy=multi-user.target<\/p>\n<p>root@san:\/usr\/local\/freeswitch\/conf# sudo systemctl enable freeswitch<\/p>\n","protected":false},"excerpt":{"rendered":"<p>root@san:~# apt-get update &amp;&amp; sudo apt upgrade  [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,11],"tags":[],"class_list":["post-1038","post","type-post","status-publish","format-standard","hentry","category-freeswitch","category-voip"],"_links":{"self":[{"href":"https:\/\/omtel.ltd\/index.php\/wp-json\/wp\/v2\/posts\/1038","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/omtel.ltd\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/omtel.ltd\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/omtel.ltd\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/omtel.ltd\/index.php\/wp-json\/wp\/v2\/comments?post=1038"}],"version-history":[{"count":7,"href":"https:\/\/omtel.ltd\/index.php\/wp-json\/wp\/v2\/posts\/1038\/revisions"}],"predecessor-version":[{"id":1045,"href":"https:\/\/omtel.ltd\/index.php\/wp-json\/wp\/v2\/posts\/1038\/revisions\/1045"}],"wp:attachment":[{"href":"https:\/\/omtel.ltd\/index.php\/wp-json\/wp\/v2\/media?parent=1038"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/omtel.ltd\/index.php\/wp-json\/wp\/v2\/categories?post=1038"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/omtel.ltd\/index.php\/wp-json\/wp\/v2\/tags?post=1038"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}