Siriproxy – Siri für den Heimgebrauch

Der Raspberry Pi ist ja schon ein nettes, kleines Ding, doch einen wirklich definitiven Anwendungszweck habe ich dafür noch nicht gefunden, und deshalb dient er einfach immer mal wieder als Versuchskaninchen und Spielwiese, so auch für die Anwendung dieses Beitrages. Und wer weiss, vielleicht habe ich am Ende ja auch noch eine definitive Anwendung dafür.

An alle die jetzt gleich wieder losflamen wollen, wegen Android vs. iOS, hier geht es um Siri und dadurch um iOS und Apple – bei der Anwendung am Schluss auf jeden Fall. Und wer mich jetzt von seinem Android-Phone unbedingt überzeugen will, der soll mit einem 6er Pack Bier vorbei kommen, dann diskutieren wir das gerne von Angesicht zu Angesicht, aber bitte nicht in den Kommentaren! Wer zu weit weg wohnt, um vorbeizukommen, der kann mir das Bier auch schicken und wir machen die Diskussion via Email 😉

Also, wie schon gesagt, geht es um Siri, genauer um den Siri Proxy. Dieser greift den Verkehr zwischen Siri und Apple ab und schaltet sich dazwischen, sodass beliebige Aktionen und Antworten mittels Siri abgefragt werden können – alles was man digital irgendwie ansprechen kann, kann man somit über Sprachsteuerung automatisieren. Coole Vorstellung! 😀 Der Nachteil, man muss sich halt im entsprechenden Netzwerk befinden, wie der Proxy, von Unterwegs funktioniert das ganze also nicht (ausser man macht seinen Proxy öffentlich, was ich aber je nach Möglichkeiten und Anwendungsgebiet nicht empfehlen würde…).

Für die Installation braucht man erstmal das Raspbian Image Wheezy von hier, hier oder einer von denen hier – Auswahl gibts genug!

Dies muss man installieren, einrichten und aktualisieren, aber das schafft jeder hoffentlich noch ohne Anleitung, ansonsten kann Google sicher helfen. Danach richtet man sich einen Root-Account ein, unter welchem wir künftig arbeiten und aktualisiert das System:

sudo passwd root
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get autoremove
sudo apt-get autoclean
sudo reboot

Nach dem Neustart logt man sich dann auch gleich als Root ein und schon kann die eigentliche Schlacht beginnen.
Als erstes brauchen wir ein paar Grundlagen:

apt-get install samba samba-common-bin ssh vim rcs unzip ruby build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison subversion pkg-config gcc g++ dnsmasq libgdbm-dev libffi-dev -y

Weiter geht es mit einer statischen IP, schliesslich wollen wir die Einstellungen auf unserem iPhone ja nicht jeden Tag der DHCP-Adresse des Proxys anpassen. Dazu passen wir die Datei /etc/network/interfaces an:

auto eth0
iface eth0 inet static

address 192.168.1.200
netmask 255.255.255.0
broadcast 192.168.1.255
network 192.168.1.0
gateway 192.168.1.1

Nun das Netzwerk-Interface neustarten:

ifdown eth0
ifup eth0

Nun empfiehlt es sich, öffentliche DNS-Server noch einzutragen, da man sonst keine URLs mehr auflösen kann. Also ergänzt man die Datei /etc/resolv.conf um folgende Einträge:

nameserver 8.8.8.8
nameserver 8.8.4.4

Hier kann man natürlich auch die DNS des eigenen ISPs eintragen, oder was man sonst so mag.
Weiter geht es mit dem eigenen DNS. Der Proxy soll ja die Anfragen vom iPhone abfangen, weshalb man noch einen DNS Server braucht. Auch hier braucht es noch etwas Anpassung in der Konfiguration unter /etc/dnsmasq.conf:

#address=double-click.net/127.0.0.1
# iOS production Siri server
address=/guzzoni.apple.com/192.168.1.200
# iOS beta Siri server
address=/kryten.apple.com/192.168.69.1.200

Danach noch neustarten und schon ist DNS auch Geschichte:

/etc/init.d/dnsmasq restart

Nun folgt das Installieren von RVM:

bash < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)
[[ -s "/etc/profile.d/rvm.sh" ]] && . "/etc/profile.d/rvm.sh"
echo '[[ -s "/etc/profile.d/rvm.sh" ]] && . "/etc/profile.d/rvm.sh" # Load RVM function' >> ~/.bash_profile
rvm autolibs enable
rvm install 1.9.3

Nun folgt die eigentliche Konfiguration:

git clone git://github.com/plamoni/SiriProxy.git
cd SiriProxy
mkdir ~/.siriproxy
cp ./config.example.yml ~/.siriproxy/config.yml
rake install

Noch die passenden Zertifikate:

siriproxy gencerts

Nun gibt es ein Zertifikat unter dem Namen ca.pem. Dieses muss man wegkopieren (SCP) und auf das iPhone mailen und da installieren – keine grosse Sache.
Noch die finale Installation und den Dienst starten:

siriproxy bundle
bundle install
siriproxy server

Danach muss man nur noch auf dem iPhone den DNS Eintrag auf die IP des Siri Proxys abändern und schon ist es vollbracht.
Wenn alles klappt, sollte man auf die Frage „test siri proxy“ eine Antwort bekommen. 😀

10 Kommentare bei „Siriproxy – Siri für den Heimgebrauch

  1. Sollte es im Code-Abschnitt „Nun folgt die eigentliche Konfiguration:“ nicht wirklich heißen „make install“ an Stelle von „rake install“ ? ;o)

    Schöne Grüße
    chris

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.