Anything wrong with this question?! I didn&#39;t find any replies for this..<br><br><div class="gmail_quote">On Fri, Mar 5, 2010 at 10:37 AM, Nagalenoj H. <span dir="ltr">&lt;<a href="mailto:nagalenoj@gmail.com">nagalenoj@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Dear friends,<br>     I&#39;ve faced an issue in event socket. I would want to know why it behaves such a way.<br>
     <br>     My program is working with the hep of events. So, based on the received event, the process will continue it&#39;s work. When I need DTMF, I use recvEventTimed and in the other cases, I use recvEvent.<br>
     So, In the mid if caller hangsup, I expect for the SERVER_DISCONNECTED event. When the caller hangsup when I&#39;m waiting in recvEvent, I&#39;m getting SERVER_DISCONNECTED. But, when I&#39;m waiting in recvEventTimed, I&#39;mnot receiving SERVER_DISCONNECTED, instead receiving an undefined value.<br>

<br>    To handle this, I&#39;ve checked esl connection inside the timeout part and put a recvEvent, then I receive SERVER_DISCONNECTED.<br><br>    My question is, why am I not receiving SERVER_DISCONNECTED when I recv event using recvEventTimed?!<br>

<br>This is a sample program I execute,<br><br clear="all">require ESL;<br>use IO::Socket::INET;<br><br>my $ip = &quot;127.0.0.1&quot;;<br>my $sock = new IO::Socket::INET ( LocalHost =&gt; $ip,  LocalPort =&gt; &#39;9242&#39;,  Proto =&gt; &#39;tcp&#39;,  Listen =&gt; 1,  Reuse =&gt; 1 );<br>

die &quot;Could not create socket: $!\n&quot; unless $sock;<br><br>for(;;) {<br>  my $new_sock = $sock-&gt;accept();<br>  my $pid = fork();<br>  if ($pid) {<br>    close($new_sock);<br>    next;<br>  }<br><br>  my $host = $new_sock-&gt;sockhost();<br>

  my $fd = fileno($new_sock);<br>  <br>  my $con = new ESL::ESLconnection($fd);<br>  my $info = $con-&gt;getInfo();<br>  my $uuid = $info-&gt;getHeader(&quot;unique-id&quot;);<br>  printf &quot;Connected call %s, from %s\n&quot;, $uuid, $info-&gt;getHeader(&quot;caller-caller-id-number&quot;);<br>

<br>  my $e = $con-&gt;filter(&quot;unique-id&quot;, $uuid);<br>  if ($e) {<br>    print $e-&gt;serialize();<br>  } else {<br>    printf(&quot;WTF?\n&quot;);<br>  }<br>    <br>  $con-&gt;events(&quot;plain&quot;, &quot;SERVER_DISCONNECTED DTMF&quot;);<br>

  $con-&gt;execute(&quot;answer&quot;);<br>  <br>  while($con-&gt;connected()) {<br>    $e = $con-&gt;recvEvent();    ############# CASE 1 ##<br>    # $e = $con-&gt;recvEventTimed(10000);       ############# CASE 2 ##<br>

    <br>    unless ($e) {<br>        unless ($con-&gt;connected()) {                     ###############################<br>           $e = $con-&gt;recvEvent();                         ##<br>           print $e-&gt;serialize();                               ##   Added code to get SERVER_DISCONNECTED.<br>

           print &quot;SERVER_DISCONNECTED&quot;;     ##<br>        }                                                                 ###############################<br>        print &quot;DTMF timeout\n&quot;;<br>    }<br>

    if ($e) {<br>      my $name = $e-&gt;getHeader(&quot;event-name&quot;);<br>      print &quot;EVENT [$name]\n&quot;;<br>      if ($name eq &quot;DTMF&quot;) {<br>        my $digit = $e-&gt;getHeader(&quot;dtmf-digit&quot;);<br>

        my $duration = $e-&gt;getHeader(&quot;dtmf-duration&quot;);<br>        print &quot;DTMF digit $digit ($duration)\n&quot;;<br>      }<br>    }<br>  }<br>  print &quot;BYE\n&quot;;<br>  close($new_sock);<br>}<br><br>

-- <br>Regards,<br><font color="#888888">Nagalenoj H.<br>
</font></blockquote></div><br><br clear="all"><br>-- <br>Regards,<br>Nagalenoj H.<br>