[Work Notes] Looking for a Solid Developer

Recently, I’ve become very busy due to taking over tasks from another site. The original coding work is still there, so I started looking for an outstanding developer to join us. In the first month, I tried to draw from my colleagues’ and my own networks — but in vain. Now I’ve shifted the search to a headhunter and started conducting interviews. I’ve interviewed a lot of people at my first and second jobs. Interviewing candidates through a headhunter is a very different experience. Why? Many factors influence what kind of developer you’re actually looking for. ...

June 12, 2013 · 2 min · 334 words · Fran Kuo

[Work Notes] The Study of WebRTC and SIP

[This post is a placeholder — content was incomplete in the original.]

April 8, 2013 · 1 min · 12 words · Fran Kuo

[Work Notes] Generating Makefile with Autotools and Makefile.am

Quick reference for generating a Makefile using the Autotools workflow: # autoscan . // Scan the folder to generate configure.scan # cp configure.scan configure.ac // Copy configure.scan to configure.ac # vi configure.ac // Edit configure.ac // Add: AM_INIT_AUTOMAKE(hello,1.0) // This is the required marco for automake # aclocal // Execute aclocal to generate aclocal.m4 # autoconf // Execute autoconf to generate configure # autoheader # automake --add-missing // Run automake # touch NEWS; touch README; touch AUTHORS; touch ChangeLog // Create required documents # automake --add-missing // Run automake again # ./configure // Execute configure to generate Makefile # make // Execute make Following these steps provides a good template to modify the related files for my specific target project.

March 19, 2013 · 1 min · 120 words · Fran Kuo

[Work Notes] GStreamer: Migrating from 0.10.x to 1.0.x in OpenWrt

I start to move the gstreamer version from 0.10.x to 1.0.x in openwrt. Two purpose, one is to get much more familiar with the gstreamer applications and plugins development, another one is to assist my colleagues for next schedule. Just make a quick note here. Official gstreamer packages version I use is 1.0.5: gstreamer core → Modify Makefile and patch, compile ok. gst-plugins-base → Modify Makefile and patch, compile ok. gst-plugins-good → Modify Makefile and patch, compile ok. gst-plugins-ugly → To be check if required. gst-plugins-bad → Modify Makefile and patch, compile ok. gst-libav → To be check if required. Proprietary plugins: ...

March 18, 2013 · 2 min · 260 words · Fran Kuo

[Work Notes] SIP Test of FreeSwitch by FSClient

In previous articles, I tried to build the pjsip package, but it’s hard to verify that the package works correctly without a solid understanding of SIP. So I decided to get more familiar with how SIP works by setting up a switch. There are two popular choices: Asterisk and FreeSwitch. I chose FreeSwitch because pre-compiled binaries for Windows 7 are already available. http://wiki.freeswitch.org/wiki/Installation_Guide After installation, remember to allow the application through the firewall. Since this is just for testing, I ran FreeSwitch with the default configuration. ...

March 13, 2013 · 1 min · 205 words · Fran Kuo

[Work Notes] PJSIP on Ubuntu

Before trying to make the pjsip work on my embedded device, I build the related libraries on PC as the reference. My environment is based Ubuntu 10.04. See the following guide. http://trac.pjsip.org/repos/wiki/Getting-Started/Autoconf The notes of packages building: ALSA and OpenSSL libraries are optional and I do not install for first. SDL: download version 2.0 and do ./configure, make; make install to install. Add sudo if encountering privilege problems. FFMPEG: reference the official FFMPEG documentation at https://ffmpeg.org/trac/ffmpeg/wiki/UbuntuCompilationGuide. Follow the guide to build yasm, x264 and ffmpeg. The ffmpeg version (0.10.6) and building process follow the pjsip guide. ...

March 12, 2013 · 2 min · 271 words · Fran Kuo

[Work Notes] PJSIP Package Build in OpenWrt

There is a default pjsip package in the openwrt but it links to the extension package of ltq-tapi and oss. What I need first is the package without extra packages. So I try to create the libraries using the latest version 2.1 for the experiment. First, the Makefile of the package: include $(TOPDIR)/rules.mk PKG_NAME:=pjsip2 PKG_VERSION:=2.1 PKG_RELEASE:=0 PKG_SOURCE:=pjproject-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=http://www.pjsip.org/release/$(PKG_VERSION)/ PKG_MD5SUM:=310eb63638dac93095f6a1fc8ee1f578 PKG_INSTALL:=1 PKG_BUILD_PARALLEL:=1 PKG_BUILD_DIR:=$(BUILD_DIR)/pjproject-$(PKG_VERSION).$(PKG_RELEASE) include $(INCLUDE_DIR)/package.mk define Package/pjsip2 SECTION:=lib CATEGORY:=Libraries URL:=http://www.pjsip.org/ MAINTAINER:=John Crispin <[email protected]> TITLE:=pjsip2 DEPENDS:=+libuuid endef CONFIGURE_ARGS += \ --disable-floating-point \ --disable-g711-codec \ --disable-l16-codec \ --disable-g722-codec \ --disable-g7221-codec \ --disable-gsm-codec \ --disable-ilbc-coder \ --disable-libsamplerate \ --disable-ipp \ --disable-ssl \ --disable-oss \ --disable-sound define Build/Configure (cd $(PKG_BUILD_DIR); autoconf aconfigure.ac > aconfigure) $(call Build/Configure/Default) endef define Build/Compile CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS) $(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS)" \ CXXFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS) $(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS)" \ LDFLAGS="$(TARGET_LDFLAGS) -lc $(LIBGCC_S) -lm" \ $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) endef define Build/InstallDev $(INSTALL_DIR) $(1)/usr/pjsip2 $(CP) $(PKG_INSTALL_DIR)/usr $(1)/usr/pjsip2 endef $(eval $(call BuildPackage,pjsip2)) We encounter the following problem: ...

March 12, 2013 · 2 min · 260 words · Fran Kuo

[Work Notes] Liberated Networking Technology

Our company updated the homepage to a brand new look. There is the word “Liberated” used to describe the new networking technology we implemented. According to the dictionary, I’m most likely aligned with the description “free from traditional social restraints” — because we are trying to make fundamental changes in every domain we enter. It’s an interesting journey. Although it’s not 100% correct, I still want to record what I saw. I plotted the company’s product map based on personal observation from the webpage: ...

February 27, 2013 · 1 min · 124 words · Fran Kuo

[R&D Notes] AirVision 2.0 Preview on Windows 7

Just before the Chinese Lunar New Year, I received the latest alpha version of AirVision 2.0. It doesn’t just inherit the strengths of the previous version; it feels significantly faster and more stable. Here is a quick preview of the installation process and some of the main UI pages. Installation Process After launching the Windows installer and following the setup steps, you’ll see a Windows Security alert. Make sure your firewall isn’t blocking the application. ...

February 18, 2013 · 2 min · 263 words · Fran Kuo

[Work Notes] Miracast in Surveillance System

Weeks ago, the supplier demo the Miracast function to us and my colleague told me maybe we can think if there are applications for surveillance system. At first I saw nothing special for surveillance application but I may find there is now. Here is a capture picture from the whitepaper of WiFi alliance. Basically, Miracast is a protocol and this means Miracast can be over any kind of infrastructure. However, Miracast connections are expected to be predominantly established between Wi-Fi devices connected with each other directly, without an AP acting as an intermediary. According to the topology, what we can see is a source to a sink and it is a peer-to-peer connection. ...

February 17, 2013 · 2 min · 220 words · Fran Kuo