6.6 Windows CE Issues --------------------- 6.6.1 Latest News 6.6.2 Collecting the Required Files 6.6.3 Steps to Build POCKETBONE 6.6.4 Latest CVS version March 20 2002 6.6.5 PocketBone .10b1 Binary 6.6.6 PocketBone .9a1 binary   6.6.7 General Usage Notes 6.6.8 Testing 6.6.9 Links 6.6.10 Futures HOW-TO build and test Windows CE OpenH323 Port  POCKETBONE an html version of this readme is available at ; http://www.mivideo.net/videophone 6.6.1 Latest News --------------------------- March 30 2002, Currently, there is NO source available that compiles and Tx/Rx Video and Audio for pocketbone. Only the released binary 10b1 in Oct 2001 works! The current CVS version Mar 30 2002, is supposed to be 10b1, but its' internaly noted as 0.9beta1. Since the code in the CVS has not changed much since October when the 10b1 version was released, maybe with the right #ifdef DEFINES and registry keys configured it might work. We will dig into the diffs, and debug this unfinished release. But, maybe Yuri Kiryanov might release source and its related binary for a version that works one day, along with all the required configuration parameters to build it. It would be nice to be in a ZIP file, so it is not subject to changes, as in the CVS. 6.6.2 Collecting the Required Files -------------------------------------------- There are three source modules required to build Pocketbone, two of them, openh323 and pwlib libraries and the contributed pocketbone module. Using WinCVS  u can get the latest sources from CVS at openh323.org . Using CVS you should 'checkout' the 'pwlib', 'openh323' and 'contrib' modules. You can save some time and space and 'checkout' only the 'contrib/pocketbone' module. Make certain when u checkout pwlib and openh323 that the .vcp files are there. If not, u can always access them thru the web interface for CVS at openh323.org. You will also need the eVC ( embedded Visual C 3.0) software from Microsoft to build it. The new eVC version 4.0 is available FREE for 120 day trial now ( since Feb 2002 ). You cannot use MS Visual Studio to build an embedded system. The new eVC 4.0 has not been used to build pocketbone yet from the CVS or herein. Place all three source modules in a single directory. i.e.., contrib,openh323 and pwlib. ( note that pocketbone is in the contrib directory ). Using eVC, open the project workspace located in the contrib/pocketbone (Pocketbone.vcp). It should automatically find the other two modules (openh323 and pwlib ) and load their respective .vcp files. 6.6.3 Steps to Build POCKETBONE ---------------------------------------- To build POCKETBONE you first need to build the two libraries, pwlib and openh323. You should build these two libraries using MS Visual C++, they will need to be built with eVC for the embedded solution. It would be a good idea to build the libraries first since it contains 'asnparser.exe' which is NOT built within eVC. Then the latest version of asnparser.exe is used to build the .asn files by eVC. The location of asnparser.exe will need to defined in the 'Executable directory' as shown below in order for eVC to find it. Asnparser.exe is usually in 'pwlib/tools/asnparser/release'. Both PWLIB and OPENH323 directories contain a .VCP file included within the POCKETBONE sources. Before you can build POCKETBONE however, you will need to configure your eVC so it knows where to find the required include, library and executable files. A  .VCP  project file is available within each of the three source modules in the CVS or ZIP files. -When you download the zip files or the versions from the CVS, your source directory tree should look like this: < Your source dir > \ contrib \ Pocketbone < Your source dir > \ pwlib < Your source dir > \ openh323 The pockebone.vcw file expects this configuration. Once you start eVC, all you need to do is open the project file; < Your source dir> \ contrib \ pocketbone \ pocketbone.vcw eVC will then find the other project files for PWLIB and OPENH323, otherwise it will ask you. Select which CPU or platform version to create; the emulator version X86EMDbg,or the ARM version. The ARM versions have a DEBUG and RELEASE version. Select the Platform :"Pocket PC", CPUs:" Win32(WCE ARM)" selection. Set of directories which you have to be defined in eVC regardless of target platform:   Tools->Options->Directories, option Include files. ------------------------------------------------- < Standard include paths > < Your source dir > \ pwlib \ include \ ptlib \ wince < Your source dir > \ pwlib \ include \ ptlib \ wince \ sys < Your source dir > \ pwlib \ include \ pwlib \ mswin < Your source dir > \ pwlib \ include \ ptlib \ msos < Your source dir > \ pwlib \ include < Your source dir > \ openh323 \ include < Your gapi source dir > \ inc Get Gapi source files at; http://www.microsoft.com/mobile/downloads/developer/gapi.asp Here are some 'fake' functions to avoid needing Platform Builder or loading SNMP libraries for gatekeeper functionality. ( thanks to Jehan Bing ) http://www.mivideo.net/jh_snmp_c.txt Platform Builder 3.0 was free under an 120 day evaluation, just as the new 4.0 platform builder ( since Feb 20002) which also includes the new 4.0 eVC. It is NOT necessary to build pocketbone with the SNMP libraries provided you include the 'fake' calls in Jehan Bing's functions file provided above. Tools->Options->Directories, option Executeable AND Library . ------------------------------------------------------------ < Your source dir for location of asnparser.exe and ptlib.dll >    < Your source dir for location of Gapi files ( gx.dll )  > \ lib < Your source dir >   PWLIB \ Lib (even if does not exist ) < Your source dir >   OPENH323 \ Lib ( even if doesn't exist ) < Your source dir for location of snmpapi.lib and snmp_mibii.lib  > ( if you have Platform builder )   click for Zip file for eVC 4.0 Platform Builder Libraries ) Using the BUILD ALL start the build process. The PWLIB library is built first, then the OPENH323 library, then finally the POCKETBONE executable. the EVC will automatically download the executable to the iPAQ should you have activeSync and the iPAQ in the cradle.eVC will copy the executeable to the start menu. To run select POCKETBONE from the 'start' menu . Enter an IP using the keyboard, nit the buttons, since the do not always work right. The keypad buttons only works on the 9a1 version. Make any Option settings required such as gatekeeper, trace, or audio settings. Then press 'Call' to initiate the call. You should hear and see the other party right away. On some versions full screen video is displayed. There will be a button to toggle from this full screen in the future, along with Volume and mute buttons. You are on your own ! Please test and make any comments here regarding any problems or suggestions. In order to build POCKETBONE for other platforms, all you need to do is select the different platforms. Although, there will undoubtedly be changes required in the source for different platforms. These changes can usually be handled with #ifdef statements in the code. In order to maintain a single set of source files for different platforms.   6.6.4 Latest CVS version March 20 2002 ------------------------------------------------ PWLIB.zip ( 7,424 Kb)   "http://www.mivideo.net/videophone/cvs 4 20 pwlib.zip" OPENH323.zip ( 22,887 Kb) "http://www.mivideo.net/videophone/cvs 4 20 openh323.zip" CONTRIB.zip ( 5,034 Kb) "http://www.mivideo.net/videophone/cvs 4 20 contrib.zip"   These zip files contain Complete! BUILT files for ARM and X86em versions using eVC 3.0 and fake SNMP functions file (link above), to avoid using SNMP libraries. For those who asked for it for comparisons ! Noted internally as version 0.9beta1, NOT .10b1 as was stated by Yuri in the archives to be in this CVS version. This version has trace options available along with a ( Remote / Local ) functionality and different bitmap to reflect it. ARM Dbg ( 4,222 Kb) http://www.mivideo.net/videophone/420DPocketBone.exe ARM Rel ( 2,316 Kb ) http://www.mivideo.net/videophone/420RPocketBone.exe Note this version NOT size similar to 9a1 or 10b1 ! Yet, its the latest from the CVS as of date shown ! Other than the different BMPs used in 10b1 what else differs ? testing from 4/22/2002  ; - No Video or Audio Tx/Rx to CuSeeme 5.0.0.43 ( RadVision Stack) - soft reset ! required after calls sometimes to get correct IP - Audio OK when called from Cisco ATA 186 - The Remote and Local tabs have no effect. -Talk button appears even though running on a Pocket PC and the 'walkie-talkie is NOT clicked. 6.6.5 PocketBone 10b1 Binary zip for iPAQ -------------------------------------------------- http://www.mivideo.net/videophone/PocketBone10b1.zip ( 2,317,824 bytes 10/24/2001). Screen looks like; http://www.mivideo.net/videophone/PocketBone.jpg Notes : Video receiving from NetMeeting has no green stripes. Transmits test video by default. Internally noted as 0.10beta1. Audio and Video works fine. No trace options. If Full screen option is enabled, there is NO way out of it other than 'soft reset' There is NO known source files for this version ! Neither will there probably ever be. It is the last release from October 2001 before the Open Source version took a back seat to the commercial development of iFON at Tabletmedia.com. http://www.tabletmedia.com/ifon.asp Unpack the binary zip file and copy PocketBone.exe to \Windows\Start Menu and gx.dll to \Windows. 6.6.6 PocketBone .9a1 binary ARMREl   ------------------------------------------- ( 2,257 Kb 8/9/2001 ) The main bitmap for this version looks like; http://www.mivideo.net/videophone7alpha3b.jpg The working .9a1 binary version from the link below was released as version .9a1. Internally it is noted as 0.7alpha3. This version transmits default H261 video color bar screen. It can receive video and Tx and Rx audio. There are a few problems with this version. Calling from CuSeeme 5.0 client sending 160x240 video this version displays video full screen and locks up the display, so you cannot do anything else to restore except a 'soft reset'. 'Your mileage may vary'. Should you have better luck, please let me know at nubeus@bellsouth.net. Also, I have not been able to initiate a call with it. The display shows the [Remote / Local ] tabs along with an [FS] switch at the lower right of the display. It also has an early address book non-working icon where you enter the IP along with icons for [Dialpad / Calls] which are not functioning. The number buttons do work correctly !  The ZIP sources above does NOT build the 0.9a1 version although it was supposed to according to Yuri and the mailing list. The version it creates is noted internally only in trace file as 0.7a3. It connects, but does not transmit video and audio. It crashes when called. Version .9a1 Binary is at http://www.mivideo.net/videophone/PocketBone9a1.zip ( internally noted as 0.7alpha3 !! ) ( 2,250,240 bytes 8/9/2001) Source Zip files which should, but does NOT match binary above ! Pocketbone source Zip (1,952 Kb ) http://www.mivideo.net/pocketbone.zip ARMREl ( 2,257 Kb )      ARMDbg ( 4,177 Kb ) PwLib source Zip ( 1,830 Kb ) http://www.mivideo.net/pwlib.zip OpenH323 source Zip (1,692 Kb) http://www.mivideo.net/openh323.zip   6.6.7 General Usage Notes ---------------------------------- - PocketBone performs best on iPAQ Pocket PC 2002. An iPAQ 3630 with CE 3.0 and the Pocket PC 2002 update will do fine ! Pocketbone takes up less than 3mb , and getting smaller every version. - By default PocketBone connects to NetMeeting using MS-GSM. If your NetMeeting does not have GSM codec installed, get it here. What Microsoft calls GSM 6.10 is not what everyone understands as GSM 6.10 compression. NetMeeting must be set to "GSM 6.10" (MS-GSM), iPAQ to MS-GSM. Then they connect. - If you are running PocketBone and you found an error saying "Missing components", get gx.dll (part of GAPI) from here and place it to \Windows directory. - To enable gateway call, e.g. through Cisco AS5300, set following: Go to Options/Gates, set gateway IP address, set gatekeeper address, check "Use Gatekeeper", "Require Gatekeeper". Switch to Options/General, set name, e.g. "ipaq" in "User" field. Add your extension, e.g. "3620" and your cisco id, e.g."3620!cisco" to "Aliases". Check "Disable fast-start" to avoid fast-start problems when call connected earlier for expense of clarity of first few seconds of call. You won't be able to receive calls if you are not registered on gatekeeper .You have to rearrange audio codecs located at Options/Audio. Move GSM-06.10 and/or G.711 on top of the list and disable MS-GSM codec. MS-GSM codec is incompatible with non-MS products. - If your connection is good enough, try reduce jitter buffer size ( Options / Audio ). It will decrease audio latency. - Full-duplex sound driver has been released by Compaq for Pocket PC 2000. Get it here (look for Full Duplex Driver link). The off-the-shelf iPaq 2000 is half-duplex. Do not forget to uncheck Walkie-Talkie in Options/Audio and restart the app. - Should you get link error : LINK : fatal error LNK1181: cannot open input file "snmpapi.lib" then the library is not included in "Object/library modules:" at "Project - Settings - Link" in eVC. - Some people reported problems with building code when compiler reports some SNMP includes missing. You will need to obtain Platform Builder, and then add include and lib directory to project settings in order to be able to link snmpapi.lib and snmp_mibii.lib from the Platform Builder directory. (\PUBLIC\COMMON\OAK\LIB\ARM\SA1100\CE\RETAIL). - Video won't work out-of-box on x86 emulator. Get GAPI emulator and try figuring it out. - Supports full-screen CIF video. Audio clicking removed - If you had installed an old version before, please remove old registry settings located at: HKEY_CURRENT_USER\Software\OpenH323\PocketBone\CurrentVersion - To enable video receive with QCIF size, make sure registry has "VideoSize"=1 and "H261_QCIF"=1. - If you have problems on connection, go to registry and disable video receiving.Find following key in registry: HKEY_CURRENT_USER\Software\OpenH323\PocketBone\CurrentVersion\Options Then add DWORD value of 0 with name of "VideoSize". - In order to improve UDP performance ( videoconferencing ) you have to change registry setting on iPAQ value to 16(maximum) HKEY_LOCAL_MACHINE\Comm\Afd On NetMeeting go to Video settings, choose "Better Image". - If you get following when trying to run PocketBone: "Cannot find PocketBone or one of it's components. Make sure the path and file name are correct and all the required libraries are available...", install GAPI (Game API) gx.h and gx.dll.   - When in Walkie-Talkie mode, re-assign a recorder button on your iPAQ to PocketBone. It will allow you to use this recorder button as a switch to change PocketBone from "listen" mode to "talk" mode and back. Only required when iPAQ is used in half-duplex. Version .9a1 and .10b1 work fine in full duplex on a PPC. rfer to; http://www.mivideo.net/Buttons.jpg 6.6.8 Testing ---------------------- Ohphone can be used to test Pocketbone as well as Netmeeting. Although Netmeeting does not hold up to the H323 standard well. and has been forsaken for the new Instant Messenger from Microsoft. CuSeeme 5.0 on the other hand is built with the RadVision H323 stack, a better implementation of the H323 standard. Pocketbone adheres thru the work of many contributors of the openh323.org project to the H323 v4 standard. It does not have patented codecs integrated due to licensing restrictions but there are hooks in it should the codec be recognized in the system. Please refer to the openh323.org site for details.   Cisco ATA 186 IP phones, either in H323 or when set to IP phones work quite well .  Testing has been done on HP Jornada and Casio PDAs. Results will soon follow along with configurations, notes and source Zip files. 6.6.9 Links -------------------- Keep in touch with the PDA global activities thru http://www.infosync.no/ 6.6.10 Futures ---------------------- Porting to other platforms such as Palm, and other CPUs such as MIPS, SH3, SH4 are not too difficult. HOW-TO step-by-step will be provided as new platforms are ported and tested. If you have ported this to another platform, your configuration info would be appreciated. Please forward comments of this how-to page to nubeus@bellsouth.net an html version of this readme is available at ; http://www.mivideo.net/videophone