Skip to Content

After hearing about folks hacking Apple’s Siri to do things like starting their Viper and controlling their thermostat, I thought about utilizing voice based integration with SAP to retrieve data. By default, Apples technology is pretty well locked down, but it didn’t take long for a developer to introduce a small workaround using a ruby app and a DNS filter. The filter intercepts the call to apple and allows you to inject your own questions, responses and data. If you are interested in learning more, this summary can guide you through the process of setting up and actually communicating with SAP from Siri.


Click here for a short demo video on youtube.

What you will need:
–          iPhone 4S – (SiriProxy has a test console, if you don’t have one)
–          Ubuntu (Virtual Box Virtual Machine) – this is quick and easy to download, and get up and running quickly with Oracle’s VirtualBox. (Download)
–          SiriProxy – You can use this guide from within your Ubuntu box to get this up and running in less than a hour. (Download & Install Instructions)
–          SiriSAP Plugin – You can download this here from the SDN CodeExchange (Download)
How does SiriProxy work?
SiriProxy intercepts the iPhones DNS calls to Apple (specifically and reviews your request, in the event a loaded plugin contains the requested text, it will process the request “locally” rather than sending it to Apple.

Below is the general network path a Siri requests traverses.


With SiriProxy and SiriSAP Plugin, the calls are routed through your Ubuntu server and essentially “preprocessed”:


How does SiriSAP Plugin work?
The plugin gives you  the ability to write your own search text and pulls data from SAP’s  Gateway system. As an example, you could say something like: “Show  account name”, the plugin will process the request, pull data from SAP CRM (Using Gateway) and present the results to the user.

The plugin is written in Ruby as a gem and utilizes a HTML/XML Parser called NokoGiri which makes processing very quick and easy. One limitation I found with SiriProxy is the inability to have your own custom response types, for example, SiriProxy only supports “Answer snippets”, maps, and answers. Below is an example of how a simple interaction would occur:


In this example we:

1. Intercept the call
2. Let the user know we are processing their request
3. Remove any spaces
4. Pass the account number to a method (show_account_name).
5. The method Opens the SAP Gateway CRM request “Account Collection”
6. We use NokoGiri to parse the HTML/XML
7. We search the HTML/XML for “orginizationname” and return the contents




Click here for a short demo video on youtube.

To report this post you need to login first.


You must be Logged on to comment or reply to a post.

  1. John Moy
    Thanks for an excellent blog Paul!  I’m wondering which demo jam team was planning to use this technique for TechEd this year.  They’ll need to think of something else now.


  2. Sascha Wenninger
    Hi Paul,

    very, very cool work! The possibilities are endless for this sort of thing, and it looks like you’ll be well placed when Apple finally open up the Siri API. It’s bound to happen…


  3. Robin van het Hof
    Great blog, and well explained! Currently I can only dream of giving Siri voice commands and it responding with SAP BI data presented in a Wolfram Alpha-kinda style… 😉
    1. Paul Aschmann
      Post author
      That is great 🙂

      Did you use the SiriSAP plugin as a base? Or did you start from scratch?

      Nice 🙂

      If only SDN had a HANA box as part of the ES Workplace!

      1. Ronald Konijnenburg
        Hi Paul,

        We started from scratch. We actually already had the foundation when we build this for MySQL in December. Connecting it to the Cloud and having the correct drivers was the biggest challenge.

  4. Former Member

    Hi Paul,

    This is excellent blog. I really inspired from this blog to build a poc app for my organization.

    But I am not sure where can i get the Siri SAP plugin. I dont see the plugin is available in the link you provided in the blog. Can you please help me out on this.




Leave a Reply