The following page describes all of the changes that were made for specific versions of pysiriproxy.
Fixed bug with conversion from Python dictionary into a plist object. Currently there is an issue with the text to speech (tts) tags causing the iPhone to crash when sent to the phone (the hex characters in the tags are not being properly handled at this point in time). The current solution is to remove tts tags from the dictionary entries that contain tts tags. There was a bug in the previous version that only removed the first tts tag – rather than all of them. With this update all of the tts tags are removed from the strings. This should fix queries such as “What time is it in New York?”.
The server has been updated to better handle dates. In the previous version the server was replacing any time related dictionary entry with the current date and time of the server. The server has been updated to try to convert the time values given (number of seconds since the epoch) into the correct date. When doing this it seemed that the resulting date was usually thirty one years in the past from its actual date. The current solution (read: hack) is to simply add thirty one years to the resulting date. This seems to have worked for almost all of my tests, but I have noticed that it resulted in Siri speaking a date that was one day before the correct date (which was being displayed on the phone). This requires further investigation.
The Python object dictionaries that are recieved from the iPhone and the Guzzoni server often contain entries that have hexadecimal values within the strings. Sending these strings to the iPhone typically results in the iPhone crashing and rebooting. The current solution is to replace the common hexadecimal values in the strings with their ascii equivalent. The speakableSelectionResponse and selectionResponse keys sometimes contain hexadecimal values, but were not being replaced. This update makes sure to replace the hexadecimal characters in these entries as well. This fixes queries that involve button presses to disambiguate a specific query.
Added instructions to the online documentation for configuring pysiriproxy to use the iOS 6 server (kryten.apple.com).
Updated gen_certs.sh to take a “-v” argument which allows the user to specify the version of iOS the generated certificate should support. The default is for the certificate to support *.apple.com which will support both iOS 5 and iOS 6.
Example usage: ./gen_certs.sh -v iOS6
Updated the setDnsmasq.sh script to add dnsmasq support for both the guzzoni and kryten webservers (which are iOS 5 and iOS 6 servers respectively). This allows the server to accept connections from iPhones with either version without being re-configured.
Updated the default pysiriproxy.cfg file to connect to the iOS 6 server at kryten.apple.com rather than the iOS 5 server at guzzoni.apple.com.
Updated the utf module to support replacing the hexadecimal characters representing a degree symbol. Currently the hex characters will be replaced by the string ” degrees” which is semantically the same string.
Updated the setup.py script to add setup dependencies for specific version of: biplist, twisted, and pyamp. This should allow the setup script to handle downloading and installing the necessary versions of each of these modules.
Fixed the installation setup procedure. The previous version had an error due to the update to using setuptools rather than disttools. The default configuration files were no longer located in the expected directory and thus could not be copied to the user’s home configuration directory. This has been fixed in this version.
Updated the documentation to explain modifications to support using iOS 5 and iOS 6 versions.
Created the Timestamp configuration property under the Logging section. This variable contains the format string which will be used to apply a date to all logged messages.
Example format: “%Y-%m-%d” yields 2012-08-04
For more details on the format string see the man page for the date command. No timestamp will be applied to logged messages if this property is an empty string.
Moved config folder and files underneath the pysiriproxy source directory so that the setup script can include them automatically. Setuptools provides the ability to install any SVN controlled data files it finds with one line. This removed some unnecessary code in the setup script.
Added step to install python*-dev to the installation instructions for twisted. Without this easy_install fails to install twisted.
Fixed bug with converting specific object keys to unicode. In previous versions this was not functioning correctly, and thus text to speech (TTS) tags would cause the iPhone to crash. Now the strings are being converted to unicode properly which allows the TTS tags to function as expected. These strings no longer need to have special hexadecimal characters replaced either.
Initial release of pysiriproxy.