<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-AU" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal">To FreeSWITCH Users,<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">I thought I would pass this on since I spent all day yesterday trying to track this issue down.<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">See below for my setup of FreeSWITCH version 1.6.8 (this problem also happens on 1.6.5 since that is why I upgraded to see if the problem was fixed or not).<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">I can reproduce this issue on FreeSWITCH 1.6.5 and 1.6.8 100% of the time.<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Basically if <b>mod_verto</b> is not commented out inside the modules.conf.xml file then the &#8220;originate&#8221; does not function as it is supposed to.<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">See at the bottom of this message my test Lua script (<b>visytel-test-out.lua</b>).<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">I setup a simple SIP phone (Bria) to register with FreeSWITCH under user 1000 (<b>sofia status profile internal reg</b> checked out OK) then called the originate command:<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal"><b>originate {ignore_early_media=true,call_timeout=15,return_ring_ready=true}user/1000 00000000</b><o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">When mod_verto is commented out and FreeSWITCH is started everything works OK (except session:hangupCause() always returns NONE &#8211; but I can work around this)<o:p></o:p></p>
<p class="MsoNormal">When mod_verto is <b>not</b> commented out and FreeSWITCH is started originate gets stuck and never starts the Lua script (unless answered) despite return_ring_ready=true.<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Luckily I currently do not need video on my FreeSWITCH installations so I can happily comment out mod_verto, however this may not be the case in the future.<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-AU">Kind Regards,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-AU"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-AU">Andrew Keil<o:p></o:p></span></p>
<p class="MsoNormal"><b><span style="mso-fareast-language:EN-AU">Visytel Pty Ltd<o:p></o:p></span></b></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-AU"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><u>New setup of FreeSWITCH 1.6.8 on up-to-date CentOS 6.7<o:p></o:p></u></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">yum -y install epel-release<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">yum -y install git gcc-c&#43;&#43; autoconf automake libtool wget python ncurses-devel zlib-devel libjpeg-devel openssl-devel sqlite-devel libcurl-devel libxml2-devel libidn-devel readline-devel<o:p></o:p></p>
<p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; These should be already installed and up-to-date<o:p></o:p></p>
<p class="MsoNormal">yum -y install e2fsprogs-devel pcre-devel speex-devel ldns-devel libedit-devel libyuv-devel opus-devel libvpx-devel unbound-devel libuuid-devel libsndfile-devel sox<o:p></o:p></p>
<p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; These should install<o:p></o:p></p>
<p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Note: No packages for: libvpx2*, libdb4* (so mod_vpx &amp; mod_fsv will not be supported)<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">cd /usr/local/src<o:p></o:p></p>
<p class="MsoNormal"><b>git clone -b v1.6 https://freeswitch.org/stash/scm/fs/freeswitch.git&nbsp;
<o:p></o:p></b></p>
<p class="MsoNormal">cd /usr/local/src/freeswitch<o:p></o:p></p>
<p class="MsoNormal"><b>./bootstrap.sh<o:p></o:p></b></p>
<p class="MsoNormal">vi modules.conf<o:p></o:p></p>
<p class="MsoNormal">&nbsp;&nbsp;&nbsp; Comment out (ie. place '#' infront):<o:p></o:p></p>
<p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mod_fsv<o:p></o:p></p>
<p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mod_h26x<o:p></o:p></p>
<p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Save and close (&lt;Esc&gt; :wq!)<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal"><b>./configure --disable-libvpx --disable-libyuv<o:p></o:p></b></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">yum install yasm-devel&nbsp; {This is extra from the original yum install pre-requisites}<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal"><b>make<o:p></o:p></b></p>
<p class="MsoNormal"><b>make install<o:p></o:p></b></p>
<p class="MsoNormal"><b>make cd-sounds-install<o:p></o:p></b></p>
<p class="MsoNormal"><b>make cd-moh-install<o:p></o:p></b></p>
<p class="MsoNormal">cd /usr/local/freeswitch/conf<o:p></o:p></p>
<p class="MsoNormal">vi vars.xml<o:p></o:p></p>
<p class="MsoNormal">&nbsp;&nbsp;&nbsp; Change:&nbsp; &lt;X-PRE-PROCESS cmd=&quot;set&quot; data=&quot;default_password=1234&quot;/&gt; {!!set it to something different!!}<o:p></o:p></p>
<p class="MsoNormal">&nbsp;&nbsp;&nbsp; Save and close (&lt;Esc&gt; :wq!)<o:p></o:p></p>
<p class="MsoNormal">cd /usr/local/freeswitch/conf/autoload_configs<o:p></o:p></p>
<p class="MsoNormal">vi modules.conf.xml<o:p></o:p></p>
<p class="MsoNormal">&nbsp;&nbsp;&nbsp; comment out (ie. place '&lt;!--' infront and '--&gt;' at the end):<o:p></o:p></p>
<p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mod_fsv<o:p></o:p></p>
<p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Save and close (&lt;Esc&gt; :wq!)<o:p></o:p></p>
<p class="MsoNormal">cd /usr/local/freeswitch/bin<o:p></o:p></p>
<p class="MsoNormal">./freeswitch -nonat -nonatmap<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">version<o:p></o:p></p>
<p class="MsoNormal"><b>FreeSWITCH Version 1.6.8&#43;git~20160505T153832Z~99de0ad502~64bit (git 99de0ad 2016-05-05 15:38:32Z 64bit)<o:p></o:p></b></p>
<p class="MsoNormal">... to exit from FreeSWITCH console<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal"><u>Here is my test Lua script which was placed inside <b>scripts/visytel-test-out.lua</b>:<o:p></o:p></u></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">local trace_string <o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">-- Script tested by using originate: <b>originate {ignore_early_media=true,call_timeout=15,return_ring_ready=true}user/1000 00000000</b><o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">--[[<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Dialplan inside <b>conf/dialplan/default/00_visytel_out.xml</b>:<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">&lt;include&gt;&nbsp; <o:p></o:p></p>
<p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;extension name=&quot;visytel_out&quot;&gt;&nbsp;&nbsp; <o:p></o:p></p>
<p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;condition field=&quot;destination_number&quot; expression=&quot;00000000&quot;&gt;&nbsp;&nbsp;&nbsp;
<o:p></o:p></p>
<p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;action application=&quot;lua&quot; data=&quot;visytel-test-out.lua&quot;/&gt;&nbsp;&nbsp;&nbsp;
<o:p></o:p></p>
<p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/condition&gt;&nbsp; <o:p></o:p></p>
<p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/extension&gt; <o:p></o:p></p>
<p class="MsoNormal">&lt;/include&gt;<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">]]--&nbsp; <o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">-- Trace some channel variables here<o:p></o:p></p>
<p class="MsoNormal">trace_string = session:getVariable(&quot;uuid&quot;)<o:p></o:p></p>
<p class="MsoNormal">freeswitch.consoleLog(&quot;INFO&quot;, trace_string)<o:p></o:p></p>
<p class="MsoNormal">trace_string = session:getVariable(&quot;destination_number&quot;)<o:p></o:p></p>
<p class="MsoNormal">freeswitch.consoleLog(&quot;INFO&quot;, trace_string)<o:p></o:p></p>
<p class="MsoNormal">trace_string = session:getVariable(&quot;ani&quot;)<o:p></o:p></p>
<p class="MsoNormal">freeswitch.consoleLog(&quot;INFO&quot;, trace_string)<o:p></o:p></p>
<p class="MsoNormal">trace_string = session:getVariable(&quot;direction&quot;)<o:p></o:p></p>
<p class="MsoNormal">freeswitch.consoleLog(&quot;INFO&quot;, trace_string)<o:p></o:p></p>
<p class="MsoNormal">trace_string = session:getVariable(&quot;channel_name&quot;)<o:p></o:p></p>
<p class="MsoNormal">freeswitch.consoleLog(&quot;INFO&quot;, trace_string)<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">-- waitForAnswer here<o:p></o:p></p>
<p class="MsoNormal">freeswitch.consoleLog(&quot;INFO&quot;, &quot;Prior to session.waitForAnswer()&quot;)<o:p></o:p></p>
<p class="MsoNormal">session:waitForAnswer(session)<o:p></o:p></p>
<p class="MsoNormal">freeswitch.consoleLog(&quot;INFO&quot;, &quot;After session.waitForAnswer()&quot;)<o:p></o:p></p>
<p class="MsoNormal">-- Get Hangup Cause {this does not seem to work}<o:p></o:p></p>
<p class="MsoNormal">freeswitch.consoleLog(&quot;INFO&quot;, session:hangupCause())&nbsp; -- This seems to be always a value of NONE so not much use<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">-- Handle whether outbound call was ANSWERED or not here<o:p></o:p></p>
<p class="MsoNormal">if (session:getState() ~= &quot;CS_HANGUP&quot;) then<o:p></o:p></p>
<p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; freeswitch.consoleLog(&quot;INFO&quot;, &quot;OUTBOUND ANSWERED&quot;)<o:p></o:p></p>
<p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; session:sleep(2000)<o:p></o:p></p>
<p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; session:hangup() -- Just HANGUP for now<o:p></o:p></p>
<p class="MsoNormal">else<o:p></o:p></p>
<p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; freeswitch.consoleLog(&quot;INFO&quot;, &quot;OUTBOUND FAILED&quot;)&nbsp;&nbsp;&nbsp;&nbsp;
<o:p></o:p></p>
<p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; session:hangup()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></p>
<p class="MsoNormal">end<o:p></o:p></p>
</div>
</body>
</html>