Course13:IT Advanced - 02 innovaphone overall Product Design

From innovaphone-wiki

Jump to: navigation, search

This book describes the overall design that is shared by all innovaphone devices.


What innovaphone products are all about

link_intern.png innovaphone products serve to implement IP telephony. To build up an IP telephony system, there are few types of products required:

IP Phone
IP Phones are just like traditional telephone sets. They interface to the end user and let them talk to each other. They take the voice, convert it to an IP data stream and send it to the destination, where the voice stream is recreated from the data received.

Like you would expect, there are screenshot.png fixed line phones and screenshot.png wireless phones, using WLAN technologies to carry the IP data stream over the air.

And as before, wireless phones can use DECT over the air. However, as DECT was designed to carry voice only and cannot practically carry IP data, a screenshot.png gateway is required that converts the IP data stream back to pure voice and sends it via the DECT protocol to the screenshot.png DECT handset.

innovaphone offers a pretty wide range of link_intern.png fixed line and link_intern.png wireless phones.

Unfortunately, not all telephones you will want to call are IP phones smile. Some of them are actually analogue (a.k.a POTS) or even old-style digital (a.k.a. ISDN) ones. To be able to call those, you will need a screenshot.png gateway. In general, a gateways role is to convert the IP data stream carrying your voice and your signalling data to a physical media of certain type and vice versa. Commonly used media are analogue, ISDN and DECT. An screenshot.png obvious example for the use of a gateway is the connection to the old-style digital PSTN. A slightly less obvious scenario is the screenshot.png integration of a traditional fax device.

In innovaphone speak, a link_intern.png gateway can host a PBX (see below). Devices that are gateways technically, but cannot host a PBX are either called link_intern.png adapter (if they connect to terminal equipment) or media-gateway (if they connect to things like a trunk line).

Gateways can also host conferencing resources. These allow for multi-party voice, video and application-sharing conferences.

A special case of a gateway is an SBC. An SBC is used to connect to an IP based (usually SIP) trunk provider (a.k.a. SIP provider). Although an SBC does not connect to a different physical medium, it provides a controlled interface between your PBX system and the SIP provider's network. In the innovaphone system, an SBC behaves much like a gateway interface and is thus found where the other interfaces (TEL->analog, BRI/PRI->ISDN) are located too.

Call Server
When an IP phone tries to place a call, someone needs to determine the other end to call. If the called party (which may be identified by a number as in the PSTN or by a name) is an IP phone in the same system, its IP address needs to be determined and the call forwarded to the destination. If it is an external call destination (e.g. a PSTN subscriber), a proper gateway must be identified and the call forwarded accordingly. For the call server to be able to manage the calls, all IP phones and gateways must be made known to it, a process called registration.

With innovaphone, the call server is known as the PBX. Although this is a product which you can (and actually need to wink) buy separately, it is not a device. Instead, it is a software that is present on the gateways and is enabled by adding a proper license.

myApps is innovaphone's UC client which runs on Windows, Android and iOS (as well as soon to come MacOS). However, it's much more than a UC client: it is an App ecosystem which allows the user to run arbitrary Apps provided by innovaphone or 3rd Party vendors. myApps comes with out-of-the-box Apps with which end users can chat, make phone calls, share their screen contents, make video conferences, fax, operate and listen to their voicemails and check the Presence status of their colleagues’ calendars. Even more, Apps for administrators help to install, configurate and monitor the whole system.

myApps can run in any contemporary browser or - with some additional features - as native application.

App Platform
The App Platform is an additional component that provides various services (known as App Services). App Services in turn provide user interfaces (known as Apps) that allow both administrators and end users to use the services. An example for an App Service would be a contact database that provides contact information to telephony endpoints so that users can dial from a directory and incoming calls are resolved to the names of the callers. Like with the PBX, the App Platform is not a device. Instead, it is a software that is present on the gateways and runs on a separate processor so that it can work in parallel to the PBX even if it runs on the same gateway platform.

Virtual Appliances

All innovaphone gateways are designed as appliances. That is, they come with their own dedicated, robust high-performance hardware. The PBX and the Application Platform use a gateway as their platform, so they run on an appliance too. As a result, the complete core telephony system is appliance-based. No need for PC hardware. No need for 3rd party operating systems (well, the App Platform actually runs on a very stripped down Linux kernel - but there is no Linux skill required to run and maintain it). innovaphone appliances feature their own, proprietary, dedicated, well engineered real-time message passing operating system. Furthermore, there are no rotating parts in it. No hard disks, no fans. This is how innovaphone ensures the core telephony components five nines availability.


innovaphone offers its PBX as fish-help.png Innovaphone Virtual Appliance (IPVA), a virtual machine to be run on a virtualization platform. Currently, www.png VMware and www.png HyperV are the solely supported virtualization platforms.

The IPVA is a software-only solution. It appears as and performs like an innovaphone "hard-box". However, there is obviously no physical interface (except for Ethernet) available in the IPVA. If e.g. analog (FXS/FXO) or ISDN interfaces are needed, an appropriate gateway or adapter must be added.

App Platform

Just like the PBX, the Application platform is also available as a virtual machine to be run on a virtualization platform.

Software Building Blocks

Although different innovaphone products have different purposes, it turns out that they have many functions and features in common. So whenever functions are the same, the software used to implement them are the same too and thus the user interface to manage them is shared across products. In fact, once you are familiar with one innovaphone product, you will feel comfortable with just any innovaphone product.

So lets look at the various building blocks more closely.

Advanced Admin User Interface

In your IT Connect training, you were using the administrative tools provided by the App Platform (and running in myApps). However, the full power of the devices is unleashed by using the devices advanced admin user interface. You have already looked in to it to an extent in the IT Connect. In this course however, we look at the full potential it gives to you.

The advanced admin user interface can be accessed simply through the Devices App using your favorite web browser. Whether you're dealing with an screenshot.png ISDN gateway, a screenshot.png telephone or a screenshot.png DECT gateway does not change things really. Some devices will have more entries in the menu, some less. This may be due to different functionality (an ISDN gateway will have no DECT section as the DECT gateway has).

Most of the user interface pages use XSL instead of plain HTML. So they are XML pages with accompanying XSLT and CSS files that control the design presented to the user.

This approach allows us to implement OEM versions of the user interface just by providing appropriate XSLT/CSS files. But apart from that, it allows 3rd party software integrators to screenshot.png access any information presented by the user interface by just retrieving and parsing the raw, clean XML data structures.

screenshot.png Multiple administrative accounts may be defined and screenshot.png fine grained access levels assigned to individual administrators.

(Further Hints) Note that currently there is full administrator access only possible through the Devices App. Limited (Fine grained) access is only available when the device is accessed directly.

Web Server

To implement the browser based administration user interface, each innovaphone device obviously features a built in web service to deliver the user interface files. However, this web server can do a lot more.

Access is provided for various applications, such as e.g. SSD file storage through WebDAV or 3rd party call control through WebSocket/JSON (or legacy SOAP).

screenshot.png webapps

All benefit from encryption via TLS (i.e. HTTPS), secure digest authentication and fine grained access control.

Web Client

innovaphone devices also have an HTTP or web client built in. It allows the device to communicate with standard web server implementations or with other innovaphone devices.

Consider a voicemail on a PBX. The HTTP client gives you the free choice to store voicemails on the PBX's local SSD card, another innovaphone device with SSD card or on external web servers such as IIS or apache. The web client is used to:
  • retrieve audio (music on hold, announcements) files
  • store audio for call recording
  • retrieve voice xml scripts including external web application integration and remote file storage/retrieval
  • firmware mass deployment
  • configuration deployment (provisioning)
  • automated configuration backups (incl. personal user directories)
  • sending call detail records to external billing applications
  • system log, event and alarm message concentration
  • and more
And of course, it supports secure HTTPS.

It is a fundamental design principle for innovaphone devices to always implement access to resources using standard protocol interfaces. For example, when a voicemail records a call, it will open a WebDAV session to a web server and store the audio in a file. In a simple installation, the web server used will be screenshot.png the box running the PBX itself. However, in a more complicated scenario, the web server used may be screenshot.png a different box or a screenshot.png 3rd party web server. This provides for a high flexibility in designing solutions.


All (!) innovaphone devices provide IP routing and VPN capabilities.

PPP over DSL (PPPoE)

All innovaphone devices with Ethernet interface support PPP connections over Ethernet. This allows you to establish a connection to your IP provider, e.g. in a SOHO scenario.

PPP over IP (PPTP)

All innovaphone devices with Ethernet interface support PPP connections over IP, a.k.a. PPTP. This allows to establish (encrypted) VPN connections over the public internet. Stacking a PPTP on top of a PPPoE connection provides for a full screenshot.png corporate network integration without the need for any extra equipment.

This can be done merely to connect a single home office phone or to connect a full remote small office network.

innovaphone devices can even be used to terminate incoming PPTP connections, although you would usually employ a dedicated network device for this task.


innovaphone devices can be used to perform NAT towards the internet. This does not only include standard protocols such as HTTP, FTP, SMTP, IMAP etc. but also PPTP or even H.323.


The PBX software component together with the App Platform is the heart of an innovaphone solution.



As said before, the PBX component provides for the management of all VoIP endpoints (that is, phones, gateways and adapters). For this to work, all VoIP endpoints screenshot.png need to register with the PBX. Once endpoints are registered, calls can be placed between them.

It is important to understand that the PBX only knows about VoIP endpoints! Non-VoIP entities such as analog phones, PSTN trunk lines etc. are not known to the PBX. Instead, the respective gateways and adapters stand in and screenshot.png register on behalf of such entities.

Even if the non-VoIP entity (e.g. a trunk line) is handled by the same device that is also running the PBX (as all link_intern.png gateway platforms have the ability to run a PBX), the PBX itself will only know about a screenshot.png stand-in registration of the local gateway for that trunk line.


PBX Objects

The PBX maintains a number of objects of screenshot.png different types to implement the call processing requirements. The most obvious of these fish-help.png object types is the fish-help.png User object. It represents an extension of the PBX. When a VoIP endpoint (e.g. an IP phone) registers with the PBX, it can supply the name of an user object (and possibly some credentials). When registration is successful, calls to the users extension will be forwarded to the registered phone.

Likewise, when the VoIP endpoint initiates a call, the PBX will forward the call to the destination using the user objects properties (e.g. it will send the users extension number as calling line ID).

There are a number of fish-help.png common object properties, such as Name and Number (extension), which are shared by all objects. Others are specific to the respective object type.

Registration Objects

Some of the PBX objects (such as the aforementioned User object) require a VoIP endpoint to register with. With no endpoint registered, they do little or nothing. There main purpose is to pass calls to and from endpoints registered with this object.

These object types mainly differ by the call handling strategies. For example, the fish-help.png Executive object will refuse to pass calls destined to the executives extension to the executives phone (as the User object would do). Instead, the call is sent to a secretary.

Generally, for registration objects, calls destined to the object are passed to VoIP endpoints registered on that object.

To place a call through the PBX, any VoIP endpoint must be registered.

Multiple Registrations

Generally, when a single VoIP endpoint can register with a PBX object, multiple endpoints can do too. Depending on the object type, call handling may differ then.

If for example, multiple endpoints register with a User object, all calls placed by those endpoints are performed equally (e.g. the same calling line id is used). Calls destined to the User object's extension, will be forked, so that screenshot.png each registered endpoint will receive a call setup.

In contrast to that, when calls are placed to a fish-help.png Trunk object (which implements access to a trunk line bundle), each call may be screenshot.png presented to one of the registered endpoints in a round robin fashion (see fish-help.png PBX/Objects/Trunk Line for details about how the trunk object does this).

Self-containing Objects

However, there are other objects which fully or partly implement endpoints for a call. These objects do not necessarily require a registered endpoint to function.

For example, the fish-help.png Voicemail object does not require any registration (in fact, you must not register with a voice mail object!). Instead, any call destined to the voice mail objects extension is terminated within the PBX the object is configured on itself. It can be useful to consider this when networked PBXs are designed.


The PBX does support VoIP clients only, any non-VoIP equipment must be connected using appropriate gateways. However, the kind of VoIP protocol to use (H.323, SIP or WebSocket) doesn't matter.

During registration, each VoIP endpoint informs the PBX of the VoIP protocol it intends to use. Even multiple registrations on the same PBX object can be done using different protocols at the same time. This allows users for example, to register with H.323 and SIP phones simultaneously.


When a SIP-endpoint calls an H.323 endpoint or vice versa, the PBX will translate the two signaling protocols used. Both endpoints are unaware of the protocol the other end is using.


The Relay is the software component on innovaphone devices that handles physical voice interfaces (such as ISDN basic rate, primary rate or analogue FXS). It manages the interface in terms of status and physical configuration and provides the necessary protocols (such as ISDN, QSIG, CAS) to implement both signalling and media channel.

To interface to the VoIP world and in particular to provide access to its interfaces for VoIP endpoints registered to the PBX, the relay will screenshot.png maintain individual registrations to the PBX for each interface. This way, the interfaces are seen as standard VoIP endpoints from the PBX.

For calls from the PBX to the interfaces and vice versa, the call signalling protocols are translated and the media data is converted as required.

Routing Table

In many cases, calls from interfaces to on-behalf registrations are straight back and forth without any manipulation. However, in certain scenarios, call routing can be more sophisticated.

The relay's fish-help.png routing table provides a very powerful mechanism to configure the call routing depending on the called and calling party numbers, as well as the interfaces involved. Many call properties, such as calling and called party numbers can be manipulated as well. Call alternatives can be implemented, for example to fall back to an emergency trunk line when your standard trunk line is not available.

Special Interfaces

Session Border Controller/SIP Trunk Access

Just like it handles external traffic through PSTN interfaces, the relay can also handle external traffic to external IP peers such as SIP trunks.

In this case, it will maintain screenshot.png 2 parallel VoIP registrations, one to the fish-help.png SIP provider and one to the PBX. The SIP provider registration is then treated just like any physical interface.

The SIP interface works as the Session Border Controller (SBC) in this case, providing various security and interop functions.

In fact, the SIP interface also supports connections to SIP trunks in non-registered mode.

Virtual Interfaces

Apart from the SIP (SBC), ISDN, CAS, FXO and FXS interfaces, the relay features a number of of fish-help.png virtual interfaces. Calls to these will be terminated locally in the relay.
Virtual interfaces will never originate calls.


Calls directed to these interfaces will play music on hold (TEST), dial-tones (TONE) or echo any incoming media (ECHO).


The HTTP interface (a.k.a webmedia) will connect any call and will screenshot.png retrieve the media stream played to the caller from a (possibly remote) web server. Custom music on hold or announced played in IVR type situations can thus be provided by customers on a web server (either an innovaphone gateway with CF card or a standard web server such as IIS or Apache).

Conferencing Engine

Some of the gateways feature a fish-help.png conferencing engine that provides voice mixing and video switching capabilities for a number of calls (currently up to 60, depending on the gateway used).


Most gateways feature a fish-help.png fax interfaces. It works similar to the Webmedia interface, it retrieves/stores a file via HTTP and converts it to a T.38 fax call.

On some devices, the fax interface can also handle non-T.38 fax (audio fax) transmissions: This is known as fish-help.png Audio FAX support.

(Further Hints) If you need to know which gateway platform has which features, you can either look at the data sheets in fish-help.png Technical Data EN or you can refer to the table Technical data and recommended number of users supported in fish-help.png How to implement large PBXs.



innovaphone devices can work as DHCP clients. Apart from requesting an IP lease from the server, a number of fish-help.png standard and vendor specific options are understood. This allows for a very convenient way of specifying site specific configuration options, especially to telephones. Those would be specified as DHCP (vendor) options in the local DHCP servers configuration.


It is often difficult or impossible to use an existing DHCP server to provide vendor options. Also, in some installations there is no DHCP server available at all.

To help with such situations, innovaphone devices also support DHCP server mode. In this mode, the device operates as a standard DHCP server and will issue leases and fish-help.png DHCP options. This is usually much easier to configure.

In order not to interfere with an existing DHCP server, the innovaphone server can be configured to fish-help.png support only innovaphone devices. This allows an innovaphone DHCP server to coexist with an existing DHCP server infrastructure.

Reverse Proxy

The Reverse Proxy is a component that controls incoming external access to the PBX (just like the Session Border Controller controls outgoing external access). All external access to the PBX is first passed through the reverse proxy, ensuring that there is no direct external access to it. It is either screenshot.png separated from the PBX and moved to the DMZ or screenshot.png running on the PBX device itself.

Application Platform

The Application Platform is a separate component which was introduced in V13. It either runs on a physical gateway platform such as the link_intern.png IP3011 (in this case it runs on the second processor core available in these gateways) or as a virtual machine on VMware or Hyper-V.

As you have already worked with the Application Platform, during your IT Connect training, we will first concentrate on the the other parts of the system and discuss it in more detail in The Application Platform later.
Personal tools