This file includes all changes made to the Comdasys MC Client since the last release version 3.2. This Client version is available for both iPhone, iPad and iPod Touch. This version requires iOS 4 or higher. =================================================================================== Changes: =================================================================================== ----------------------------------------------------------------------------------- ----------------------------------------------------------------------------------- Features: ----------------------------------------------------------------------------------- - Call Reverse via data channel - Call quality display for VoIP calls - Forced Config Download / Configuration push from server now supported ----------------------------------------------------------------------------------- Bug Fixes: ----------------------------------------------------------------------------------- - Several fixes for corporate phone book search, e.g. blanks allowed now etc. - Fixes for registration stability - Fixed several client instabilities - Reworked address book handling to avoid problems - Fixed problem with features missing after handover - Fixed problem with hanging up conference and consultation calls in cellular mode ----------------------------------------------------------------------------------- Misc: ----------------------------------------------------------------------------------- - Not possible to set Jitter buffer to 0 anymore as this value makes no sense for ordinary use - Anonymous calls are now possible directly from Contacts and History - Time and duration now in call log for completed calls - Callback and anonymous call can now be triggered via long press in all views - Progress dialog in LDAP query - Cleaned up Premium Service / LCR Exception settings as they are redundant - Changed default value of Jitter buffer to safe value of 120ms - CLient now displays better error message if it does not receive a license ----------------------------------------------------------------------------------- General Remarks on Multitasking and iPhone: ----------------------------------------------------------------------------------- Multitasking on iPhone is not really Multitasking. There is a lot of information available on the Internet if you want to get into details. Here we will discuss the effects this has on the MC Client. In computing, multitasking is a method by which multiple tasks share common processing resources. In the case of a phone with a single processor and core, only one task is said to be running at any point in time, meaning that the processor is actively executing instructions for that task. Multitasking solves the problem by scheduling which task may be the one running at any given time, and when another waiting task gets a turn. The act of reassigning the processor from one task to another one is called a task switch. When task switches occur frequently enough the illusion of parallelism is achieved. Prior to iOS4, only the foregrounded application was running. With iOS4, Apple says to have introduced fast task switching and multitasking. The task switching on the iPhone is done by bringing an application to the foreground. It is faster than before because an application was actually still active in the background and only gets woken up. In the past the App was completely restarted. Contrary to a true multitasking system, the task switching does not occur frequently by itself though. Task switching is only done as follows: - User Interaction Based(bringing an application to the foreground) - Time Based (certain applications that request so are guaranteed to be woken up within a 10 minute interval) - Event Based (an application can register to certain operating system events, in our case these are incoming calls) - Actitvity Based (applications can finish an activity they started in the foreground such as a VoIP call even in the background) As such, the MC Client is only truly active if the iPhone is active (not in power save mode) and the Client is in the foreground. As soon as the client is in the background or the phone is in power save mode, we are reliant upon the pseudo-multitasking as described above. This means the following: - When changing networks e.g. walking into a WIFI, we cannot guarantee that the client registers immediately. It can only register the next time it gets processing time. This is only guaranteed every 10 minutes - When moving inside a WIFI infrastructure where there is breaks in coverage, the same applies - In a WIFI infrastructure where access point handoffs lead to a loss of WIFI and a network reconnection the same thing applies In these cases the client can lose the registration to the server which can only be recovered the next time the client runs. In the meantime calls would come in via GSM. On an incoming GSM call, the phone would wake up. The client when brought to the foreground would immediately start running, and would handover the call. If you observe calls coming in over GSM very frequently even if in WIFI coverage, there could be a second reason as well. Since the application is not active for extended periods of time, the server connection can be torn down by e.g. firewalls in between. If you have access to them please make sure the TCP Timeout exceeds 10 minutes. On Public hotspots this is rarely a problem, more in very strictly configured enterprise firewalls. ----------------------------------------------------------------------------------- Special Remarks for non iPhone 3GS and 4: ----------------------------------------------------------------------------------- All prior iPhones do not support multitasking, and also do not support any of the mechanisms described above. This has a number of effects. Once an iPhone 3G goes into standby, all applications are suspended. Incoming WIFI calls are therefore not possible. If the phone stays connected to a charger and active this restriction is not there. The same applies to Presence state changes of other users that are coming in while the application is in standby. After waking up the phone, the application will resume operation. It can take several minutes however until presence states are synchronized. If the connection to the server was broken however, and a complete reregistration is done, everything will be reloaded right away. An incoming GSM call will terminate the application. To perform features or a handover it must be restarted. The server can send a push notification to display a dialog for asking the user to startup the client. ----------------------------------------------------------------------------------- Known Issues / Missing Features: ----------------------------------------------------------------------------------- - Note that for using features in GSM mode, a 3G network is required that allows simultaneous voice and data connections. This will work in 3.5G scenarios. In 3G scenarios this depends on the operator if ongoing calls are shifted to 2G base stations - Silecning ringing with power button in WIFI only works if the phone is not in the lock screen. This currently seems a system restrictions but question have been posted to Apple to clarify the behavior. - Not all settings can be applied on the fly if an OTA download happened or if these are changed on a Multitasking phone. To make sure all settings have been applied please make sure to restart the application No call log entry for calls that have been picked up from group - You should select a proper ringtone in the client settings after installation. The ringtone provided by default is not triggered through the native ringtone player such as the user set ones and hence can behave slightly differently when it comes to multiple calls ind a row with ringtone interruption, sharing the audio device with other applications such as the iPod, or when it comes to vibration - When in the contacts menu while a VoIP call comes in and changing view then at certain instance ringtone is only played once. This is due to an audio device conflict that is more difficult to resolve. Also the user will see the coming call as this only happens when actively using the device