IOS Client

From OpenNMS
(Redirected from IPhone Client)
Jump to: navigation, search

Current Status: 1.0.4 has been accepted to the app store, and is purchasable.



The OpenNMS iOS app started with a few basic goals:

  • be able to view outages
  • be able to view nodes
  • be able to view and acknowledge alarms
  • be able to add an interface

1.0 meets these goals, with a basic outage list (with a link to the outage node's node detail page), an alarm list (with an alarm detail page), and a node search.


The current plans for version 1.1 are as follows:

  • support resource graphs
  • view event details
  • view IP and SNMP interface details
  • automatically refresh the UI to show new outages/events/alarms if that particular view of the app is open
  • be able to view all, or just acknowledged, alarms (rocker switch)


We've had a number of great suggestions for future releases of the iOS app. Feel free to add your own here.  :)

  • support/enforce any ACL filtered views so that varying levels of user access are possible depending on who logs in
  • "cached" mode. Eg: when internet access is available and the opennms host is up, then make calls directly to opennms host. But when the link isn't there, maybe provide the ability for a user to view a locally stored cache of some recent data eg: outages, notifications etc - just for recent down stuff. Something like say twitter local caching, or say Bloomberg iOS app etc..... (some of this already works, but it's not well-supported)
  • ability to have a user click on notification emails, firing up a mobile link to your app to open up the relevant node for further review within the app
  • Be able to edit/view notes for nodes
  • be able to take a photo of the device from iOS app and upload to opennms (would be cool)
  • geolocating a node using iOS current position information
  • acknowledge notifications from iOS App (partially implemented; alarm acknowledgement will acknowledge associated notifications as well)
  • be able to set/define tones/alarms for certain events
  • split pane view on iPad (outage/alarm/node list on left, node or alarm details on right)


Installation occurs just like any other iOS app. If you're a beta tester, you will receive binaries through TestFlight. If you have purchased it through the iTunes App Store, you manage your installation through the "Apps" tab and the "DEVICES" section of iTunes.


The first time you open the OpenNMS application for iOS, it will ask you for the settings to reach your OpenNMS installation. If you need to reach the configuration again, tap the "About" tab, and then the "Settings" button.

Using SSL

If you have configured OpenNMS to use SSL, you must use a valid public certificate, or import your SSL certificate into your phone if not. As of version 1.0.3 (build 15), the OpenNMS iOS client will accept self-signed certificates.

The easiest way to import the certificate into your iOS device is to just export the certificate from your keystore, like so:

 keytool -export -alias opennms-jetty \
   -file $OPENNMS_HOME/jetty-webapps/opennms/opennms.crt \
   -keystore $OPENNMS_HOME/etc/jetty.keystore

Then you can browse to http://your-opennms-host:8980/opennms/opennms.crt in Safari on your iOS device and import the certificate.

Using URL Schemes

As of version 1.0.4, you can launch the OpenNMS iOS client by using "onms://" URLs, for example, in notification emails. The following URLs are supported:

  • onms:// - default (outage) view
  • onms://about - about page
  • onms://outages/get - outage list
  • onms://alarms/get - alarm list
  • onms://alarms/get/<alarm_id> - alarm with ID <alarm_id>
  • onms://nodes/get - node list
  • onms://nodes/get/<node_id> - node with ID <node_id>
  • onms://nodes/add - the "add new node" view
  • onms://settings - the settings view

Version History

New in iOS Client 1.0.4

Note that 1.0.3 was never released. The app store update for 1.0.4 contains the changes in both 1.0.3 and 1.0.4.


  • [IOS-26] - Node Page Cached Forever
  • [IOS-27] - Remove URLs for compliance reasons


  • [IOS-17] - Add URL scheme to OpenNMS iPhone app

New in iOS Client 1.0.3


  • [IOS-14] - Don't rely on color alone in alarm, event lists
  • [IOS-15] - Deal with common configuration issues more cleanly
  • [IOS-20] - Handle self-signed certificates
  • [IOS-25] - After setting up the iPhone App I got (NSURLErrorDomain error -1012)

New in iOS Client 1.0.2 Build 8


  • [IOS-5] - Outages Refresh Issues
  • [IOS-6] - Alarm Page Wonkiness
  • [IOS-8] - invalid UTF characters in XML causes parser failure

New in iOS Client 1.0.1 Build 7

  • fix crash in iOS devices < 3.2
  • display IP address in IP interface list if no node label exists
  • don't display ifSpeed in SNMP interface list if it is empty
  • sort IP and SNMP interfaces in the node detail view

iOS Client 1.0.0

  • Initial Release


The OpenNMS iOS Client is open source, under the GPLv2 license. It also includes these pretty sweet 3rd-party bits:


Source Code

The source is under the GPLv2 and available from git like any other OpenNMS source. To download the source, just run:

 git clone git:// opennms-iphone
 cd opennms-iphone
 git submodule init
 git submodule update

To update, run:

 cd opennms-iphone
 git pull
 git submodule update

For details on working with Git in general, see the Developing with Git instructions.

Building the Project


  1. You will need to be an iOS Developer with an active account.
  2. You must have your certificates, devices, and provisioning profiles configured.
  3. You must create your own Application ID in the developer portal for the OpenNMS app.

Once you have XCode configured for your developer account and you have the OpenNMS iOS app cloned from the Git repository, open the project (OpenNMS.xcodeproj) and browse to the Resources/OpenNMS_Client-Info.plist and edit the Bundle identifier to match the Application ID you created, here:

edit bundle identifier

Then, go to: Project -> Edit Project Settings, select the "Build" tab, set the "Configuration:" selector to "All Configurations," and change the "Code Signing Identity" to your developer distribution key.

edit project settings

Also, make sure to edit the target as well: Project -> Edit Active Target "OpenNMS", select the "Build" tab, set the "Configuration:" selector to "All Configurations," and change the "Code Signing Identity" to your developer distribution key.

edit project settings