<?xml version='1.0' encoding='utf-8' ?>

<rss version='2.0' xmlns:lj='http://www.livejournal.org/rss/lj/1.0/'>
<channel>
  <title>call</title>
  <lastBuildDate>Wed, 23 Sep 2015 13:21:15 GMT</lastBuildDate>
  <generator>LiveJournal / SAPO Campus Blogs</generator>
<item>
  <guid isPermaLink='true'>http://kannelsmsc.blogs.ua.sapo.pt/613.html</guid>
  <pubDate>Wed, 23 Sep 2015 13:21:15 GMT</pubDate>
  <title>VoIP videoconference IOS App, Open WebRTC</title>
  <author>fxsf</author>  <link>http://kannelsmsc.blogs.ua.sapo.pt/613.html</link>
  <description>&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;http://static1.squarespace.com/static/53f1eedee4b0439bf8d480c5/t/54061d4ae4b0f4290347d846/1438865748088/?format=1500w&quot; border=&quot;0&quot; align=&quot;middle&quot; style=&quot;border-color:black;&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;&lt;h1&gt;&lt;span style=&quot;color: rgb(51, 153, 102);&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: large;&quot;&gt;My application you can download it HERE:&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: large;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;a href=&quot;https://www.dropbox.com/sh/f74br70w7ziwtbn/AAAZ9FHakrZT9FeSb01MyrZ1a?dl=0&quot; target=&quot;_self&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;https://www.dropbox.com/sh/f74br70w7ziwt&lt;wbr /&gt;bn/AAAZ9FHakrZT9FeSb01MyrZ1a?dl=0&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h1&gt;&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt; In this post I will show my work on WebRTC, an open project that provides browsers, embedded and mobile applications with Real-Time Communications (RTC) capabilities via simple APIs. With OpenWebRTC you can build native WebRTC apps that communicate with browsers that supports the WebRTC standard, such as Chrome, Firefox and Bowser. OpenWebRTC is especially focused on mobile platforms, with powerful features such as hardware accelerated video coding and OpenGL-based video rendering. Sounds fancy right? Yes, it does. But why choosing WebRTC to do VoIP over, lets say, other existent signalling (like SIP or skype) and encoding technologies (just like H264, H323, V8, etc...)? For me, the answer was simply: Copyright issues. So, I wanted to develop an IOS app for my Iphone 6, brand new IOS 9 (not the preview version already), and that meant that I could not use code covered by the GPL licensing.&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;That is right. GPL licensing allows you to freely use and redistribute the code, but it does not allow you to pose further restrictions while doing so. Sadly, Apple App store does, REGARDLESS of it being paid or free. WebRTC is distributed with a BSD licensing, meaning that you can do whatever you like with it, for as long as you put the due disclaimer in your code. So, currently you can choose one out of two possible implementations for WebRTC: WebRTC from Google, and OpenWebRTC from Ericsson (Germany). Both do almost the same, but I prefer the OpenWebRTC due to the fact that I want to develop for mobile. Quick comparison can be found at (&lt;a href=&quot;https://bloggeek.me/ericssons-openwebrtc-project/&quot;&gt;https://bloggeek.me/ericssons-openwebr&lt;wbr /&gt;tc-project/&lt;/a&gt;): &lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://bloggeek.me/ericssons-openwebrtc-project/&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;https://i0.wp.com/bloggeek.me/wp-content/uploads/2014/11/201411-WebRTCorg-vs-OpenWebRTCio.png?zoom=2&amp;amp;resize=600%2C241&quot; alt=&quot;WebRTC vs. OpenWebRTC&quot; border=&quot;0&quot; style=&quot;border-color:black;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;Therefore, I am using OpenWebRTC as a choice. I followed the official tutorials to build a native IOS application (you can build a hybrid one, meaning the use of a brower view inside an app), and there are other tutorials for other platforms just like Android:&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;https://github.com/EricssonResearch/openwebrtc-examples/wiki/Developing-iOS-apps&quot;&gt;https://github.com/EricssonResearch/ope&lt;wbr /&gt;nwebrtc-examples/wiki/Developing-iOS-app&lt;wbr /&gt;s&lt;/a&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;https://github.com/EricssonResearch/openwebrtc-examples/wiki/Developing-a-native-iOS-app&quot;&gt;https://github.com/EricssonResearch/ope&lt;wbr /&gt;nwebrtc-examples/wiki/Developing-a-nativ&lt;wbr /&gt;e-iOS-app&lt;/a&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;The app I developed is based on the Original Native app from the OpenWebRTC available here (&lt;a href=&quot;https://github.com/EricssonResearch/openwebrtc-examples/tree/master/ios/NativeDemo&quot;&gt;https://github.com/EricssonResearch/op&lt;wbr /&gt;enwebrtc-examples/tree/master/ios/Native&lt;wbr /&gt;Demo&lt;/a&gt;). What I did in this application was creating a XCode project with all the dependencies solved (you do not need CocoaPods to run it), and I solved most of the problems to run in in IOS 9 (it does compile for previous versions like IOS 8, with extra warnings naturally). &lt;/p&gt;&lt;h1&gt; &lt;/h1&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;So, The Portrait view that is buggy from the NativeDemo app from OpenWebRTC is:&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://fotos.ua.sapo.pt/K3zYEFDlVrN1m9iK9OHZ&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://fotos.ua.sapo.pt/JZVLEJLNpwEkVUKauTMD/340x600&quot; width=&quot;340&quot; height=&quot;600&quot; border=&quot;0&quot; align=&quot;middle&quot; style=&quot;border-color:black;&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;Portrait, after fixing the error, as well as Landscape:&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://fotos.ua.sapo.pt/K3zYEFDlVrN1m9iK9OHZ&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://fotos.ua.sapo.pt/K3zYEFDlVrN1m9iK9OHZ/338x600&quot; width=&quot;338&quot; height=&quot;600&quot; border=&quot;0&quot; align=&quot;middle&quot; style=&quot;border-color:black;&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;  &lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt; &lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://fotos.ua.sapo.pt/QkN2aOlAV1zqHWF0gBJR&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://fotos.ua.sapo.pt/QkN2aOlAV1zqHWF0gBJR/800x450&quot; border=&quot;0&quot; align=&quot;middle&quot; style=&quot;border-color:black;&quot; width=&quot;800&quot; height=&quot;450&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;As you can see, in Portrait is not perfect, but the video is stretched to meet the box. As the pull I did through CocoaPods grabbed the compiled binaries from OpenWebRTC and OpenWebRTC-SDK, I could not edit the video feed itself. For that, I would have to build the application from scratch and build the OpenWebRTC source files (wasting almost 10 hours of my life! Trust me, I did it). So the solution I found was manipulating the view itself, through rotations and translations and scaling. Though, in Landscape mode, it works better.&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;The application was tested by the following demo: &lt;a href=&quot;http://demo.openwebrtc.org:38080&quot;&gt;http://demo.openwebrtc.org:38080&lt;/a&gt; &lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt; &lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://fotos.ua.sapo.pt/g1ywPbHY2TkPbjkdoOZ6&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://fotos.ua.sapo.pt/g1ywPbHY2TkPbjkdoOZ6/800x400&quot; border=&quot;0&quot; style=&quot;border-color:black;&quot; width=&quot;800&quot; height=&quot;400&quot; align=&quot;middle&quot; alt=&quot;&quot; /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;Then, you have to select the same id in the application and in the demo in the browser.&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://fotos.ua.sapo.pt/5SE8FRdUKG4mrhNkHYgu&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://fotos.ua.sapo.pt/RWONZZ8ecSYq2o6lrmeQ/360x600&quot; border=&quot;0&quot; style=&quot;border-color:black;&quot; width=&quot;360&quot; height=&quot;600&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;At the server side, once the connection is established in the same room, you can see as follows:&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;(Portait)&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://fotos.ua.sapo.pt/cQ4ZwRlhzWgBscnwGNhp&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://fotos.ua.sapo.pt/cQ4ZwRlhzWgBscnwGNhp/800x459&quot; width=&quot;800&quot; height=&quot;459&quot; border=&quot;0&quot; align=&quot;middle&quot; style=&quot;border-color:black;&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;and in Landscape as well. You can see the server updated the orientation of the video properly:&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://fotos.ua.sapo.pt/YR1D5r5KbRfzL5WZ5emo&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://fotos.ua.sapo.pt/YR1D5r5KbRfzL5WZ5emo/800x388&quot; width=&quot;800&quot; height=&quot;388&quot; border=&quot;0&quot; align=&quot;middle&quot; style=&quot;border-color:black;&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;</description>
</item>
<item>
  <guid isPermaLink='true'>http://mmedutced.blogs.ua.sapo.pt/4532.html</guid>
  <pubDate>Sun, 25 Sep 2011 12:17:26 GMT</pubDate>
  <title>CALL - Computer Assisted Language Learning</title>
  <author>regina-canelas</author>  <link>http://mmedutced.blogs.ua.sapo.pt/4532.html</link>
  <description>&lt;p&gt;Olá a todos!&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;Pouco depois de ter começado a ensinar línguas estrangeiras, deparei-me com um novo método de ensino  - CALL (Computer Assisted Language Learning). Na UA, nos laboratórios de línguas, dispomos de um software criado em França, em 1987, que tem sido premiado a nível internacional e que é utilizado pela IBM, pelo Barclays Bank, pelo FBI, pela Unicef, pela UC Berkeley, etc. Assim, esta ferramenta dirige-se a diferentes públicos e mercados: corporations, governments, education and individuals.&lt;/p&gt;&lt;p&gt;Para além de ter este software instalado no seu pc, os alunos precisam apenas de ter um microfone e um headset para conseguirem aprender uma língua estrangeira. Depois, como se trata de um software simples e intuitivo, vão seguindo um percurso de aprendizagem que pode estar pré-definido ou, em alternativa, ser definido pelo professor. (Mais info &lt;a target=&quot;_blank&quot; href=&quot;http://www.tellmemore.com/home&quot;&gt;aqui&lt;/a&gt;)&lt;/p&gt;&lt;p&gt;Confesso que, inicialmente, me fez confusão e receei ser &amp;quot;substituída&amp;quot; por um computador , mas depois percebi que o professor e esta ferramenta se complementam e podem perfeitamente co-existir. A minha experiência diz-me que os alunos preferem o ensino &amp;quot;tradicional&amp;quot;, mas tento, às vezes, aproveitar estes recursos e o feedback dos alunos é positivo.&lt;/p&gt;&lt;p&gt;Ainda assim, estamos muito longe daquilo que podemos ver, por exemplo, aqui.&lt;/p&gt;&lt;p&gt; &lt;/p&gt;
&lt;object width=&quot;425&quot; height=&quot;350&quot;&gt;
    &lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/u0BlJr8jCnY&quot;&gt;&lt;/param&gt;
    &lt;embed src=&quot;http://www.youtube.com/v/u0BlJr8jCnY&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;425&quot; height=&quot;350&quot;   allowScriptAccess=&quot;never&quot;&gt;&lt;/embed&gt;
&lt;/object&gt;
    &lt;p&gt; &lt;/p&gt;&lt;p&gt;Bom trabalho!&lt;/p&gt;&lt;p&gt; &lt;/p&gt;</description>
</item>
</channel>
</rss>
