<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>ECF New and Noteworthy</title>
<link rel="stylesheet" href="http://www.eclipse.org/default_style.css" type="text/css">

</head>

<body bgcolor="#FFFFFF">
<table border=0 cellspacing=5 cellpadding=2 width="100%">
  <tbody>
    <tr>
      <td width="69%" class="bannertext">
        <font class="indextop style">eclipse communication framework</font>
        <br><br>
        <font class="indexsub">an eclipse technology subproject</font>
        <br><br>
        <font class="indextop style2">New and Noteworthy</font><br>0.7.0 Stable Release</font>
        <br><br><br>
        Return to <a href="downloads.php">ECF download page</a></br>
        Return to <a href="comm_resources.php">ECF communication resources page</a>
        <br><br>
        <a href="NewAndNoteworthy_0.4.0.html">New and Noteworthy for 0.4.0</a><br>
        <a href="NewAndNoteworthy_0.5.2.html">New and Noteworthy for 0.5.2</a><br>
        <a href="NewAndNoteworthy_0.5.4.html">New and Noteworthy for 0.5.4</a><br>
        <a href="NewAndNoteworthy_0.6.0.html">New and Noteworthy for 0.6.0</a><br>
        <a href="NewAndNoteworthy_0.6.2.html">New and Noteworthy for 0.6.2</a>
      </td>
      <td width="31%">
        <div align="center">
          <img src="../images/Idea.jpg" width="120" height="86" hspace="50" align="middle">
        </div>
      </td>
    </tr>
  </tbody>
</table>

<table>
  <TR> <!----------------------------------------------------->
    <TD colSpan=2> <HR> </TD>
  </TR>
  <TR><TD colSpan=2><H2>ECF API Additions and Changes</H2></TD>

  <TR>
    <TD vAlign=top align=left width="30%">
    <p><br></p>
        <P align=left>
	<B>VOIP Call Setup API (experimental)</B>
        </P>
    </TD>
    <TD vAlign=top width="70%">
      <p><br></p>
      <p>A new experimental API for doing VOIP call setup has been introduced in plugin <b>org.eclipse.ecf.call</b>.  This API is still under development,
      and no provider implementations yet exist that implement the ICallContainer entry point adapter interface.  The initial API is being released to
      get community feedback to guide the further development of the API and the selection/ordering of provider implementations.</p>
      <p>
            See the javadocs for the 
      <a href="http://www.eclipse.org/ecf/org.eclipse.ecf.docs/api/org/eclipse/ecf/call/package-summary.html">org.eclipse.ecf.call</a>, and the 
      <a href="http://www.eclipse.org/ecf/org.eclipse.ecf.docs/api/org/eclipse/ecf/call/events/package-summary.html">org.eclipse.ecf.call.events</a>
      <p>Please provide any thoughts/comments/feedback to either the ecf-dev@eclipse.org mailing list or the <b>eclipse.technology.ecf</b> newsgroup.  
      For access to these forums see <a href="http://www.eclipse.org/ecf/resources.html">here</a>.
      </p>
    </TD>
  </TR>


</table>


</body>
</html>