Course10:Basic - innovaphone overall Product Design
This book describes the overall design that is shared by all innovaphone devices.
What innovaphone products are all about
![link_intern.png](https://class.innovaphone.com/moodle2/filter/wikilink/link_intern.png)
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 fixed line phones and
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 gateway is required that converts the IP data stream back to pure voice and sends it via the DECT protocol to the
DECT handset .
innovaphone offers a pretty wide range of fixed line and
wireless phones.
Gateway
Unfortunately, not all telephones you will want to call are IP phones . Some of them are actually old-style digital (a.k.a. ISDN) or even analogue (a.k.a POTS) ones. To be able to call those, you will need a
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
obvious example for the use of a gateway is the connection to the PSTN. A slightly less obvious scenario is the
integration of a traditional fax device.
In innovaphone speak, a gateway can host a PBX (see below). Devices that are gateways technically, but cannot host a PBX are either called
adapter (if they connect to terminal equipment) or media-gateway (if they connect to things like a trunk line).
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 ) 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.
A special instance of a call server is ''the Gatekeeper''. Although technically, the PBX is a gatekeeper too, the term refers to a separate gatekeeper that can be enabled on innovaphone gateways. It is especially tailored to meet the call processing requirements found in legacy PBX trunking scenarios. Please note that although this is a term that stems from H.323, all innovaphone devices support both SIP and H.323 simultaneously.
Appliances
Starting with v9 innovaphone offers its PBX as
![fish-help.png](https://class.innovaphone.com/moodle2/filter/wikilink/fish-help.png)
![www.png](https://class.innovaphone.com/moodle2/filter/wikilink/www.png)
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. DSP resources or ISDN interfaces are needed, an appropriate gateway or adapter must be added.
Software Building Blocks
So lets look at the various building blocks more closely.
Admin User Interface
![screenshot.png](https://class.innovaphone.com/moodle2/filter/wikilink/screenshot.png)
![screenshot.png](https://class.innovaphone.com/moodle2/filter/wikilink/screenshot.png)
![screenshot.png](https://class.innovaphone.com/moodle2/filter/wikilink/screenshot.png)
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](https://class.innovaphone.com/moodle2/filter/wikilink/screenshot.png)
![screenshot.png](https://class.innovaphone.com/moodle2/filter/wikilink/screenshot.png)
![screenshot.png](https://class.innovaphone.com/moodle2/filter/wikilink/screenshot.png)
Web Server
Access is provided for various applications, such as CF file storage through WebDAV or 3rd party call control web services through SOAP.
![Webserver functions Webserver functions](http://class.innovaphone.com/moodle2/file.php/282/Course_Data/General_Design_of_innovaphone_Devices/webapps.png)
All benefit from encryption via TLS (i.e. HTTPS), secure digest authentication and fine grained access control.
Web Client
Consider a voicemail on a PBX. The HTTP client gives you the free choice to store voicemails on the PBX's local CF card, another innovaphone device with CF 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
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](https://class.innovaphone.com/moodle2/filter/wikilink/screenshot.png)
![screenshot.png](https://class.innovaphone.com/moodle2/filter/wikilink/screenshot.png)
![screenshot.png](https://class.innovaphone.com/moodle2/filter/wikilink/screenshot.png)
Router
PPP over ISDN
Most of the gateways with ISDN interfaces provide the ability to dial-in to the box via ISDN. While nowadays people don't build up private networks using ISDN any more, this comes in handy when it comes to remote maintenance. It allows a service engineer to
![screenshot.png](https://class.innovaphone.com/moodle2/filter/wikilink/screenshot.png)
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](https://class.innovaphone.com/moodle2/filter/wikilink/screenshot.png)
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.
NAT
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.
PBX
Registrations
Registration
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](https://class.innovaphone.com/moodle2/filter/wikilink/screenshot.png)
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](https://class.innovaphone.com/moodle2/filter/wikilink/screenshot.png)
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](https://class.innovaphone.com/moodle2/filter/wikilink/link_intern.png)
![screenshot.png](https://class.innovaphone.com/moodle2/filter/wikilink/screenshot.png)
Objects
PBX Objects
The PBX maintains a number of objects of
![screenshot.png](https://class.innovaphone.com/moodle2/filter/wikilink/screenshot.png)
![fish-help.png](https://class.innovaphone.com/moodle2/filter/wikilink/fish-help.png)
![fish-help.png](https://class.innovaphone.com/moodle2/filter/wikilink/fish-help.png)
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](https://class.innovaphone.com/moodle2/filter/wikilink/fish-help.png)
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](https://class.innovaphone.com/moodle2/filter/wikilink/fish-help.png)
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](https://class.innovaphone.com/moodle2/filter/wikilink/screenshot.png)
In contrast to that, when calls are placed to a
![fish-help.png](https://class.innovaphone.com/moodle2/filter/wikilink/fish-help.png)
![screenshot.png](https://class.innovaphone.com/moodle2/filter/wikilink/screenshot.png)
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](https://class.innovaphone.com/moodle2/filter/wikilink/fish-help.png)
Protocols
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.
Interworking
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.
Relay
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](https://class.innovaphone.com/moodle2/filter/wikilink/screenshot.png)
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](https://class.innovaphone.com/moodle2/filter/wikilink/fish-help.png)
Special Interfaces
SIP Trunks
As the PBX won't maintain any outgoing registrations itself, interfaces that themselves require a registration (such as SIP trunks) can be handled by the relay too. In this case, it will maintain
![screenshot.png](https://class.innovaphone.com/moodle2/filter/wikilink/screenshot.png)
![fish-help.png](https://class.innovaphone.com/moodle2/filter/wikilink/fish-help.png)
Virtual Interfaces
Apart from the ISDN, CAS, and FXS interfaces, the relay features a number of of
![fish-help.png](https://class.innovaphone.com/moodle2/filter/wikilink/fish-help.png)
Virtual interfaces will never originate calls.
TEST, ECHO, TONE
Calls directed to these interfaces will play music on hold (TEST), dial-tones (TONE) or echo any incoming media (ECHO).
Webmedia
The HTTP interface (a.k.a webmedia) will connect any call and will
![screenshot.png](https://class.innovaphone.com/moodle2/filter/wikilink/screenshot.png)
Conferencing Engine
Some of the gateways feature a
![fish-help.png](https://class.innovaphone.com/moodle2/filter/wikilink/fish-help.png)
Fax
All gateways feature a
![fish-help.png](https://class.innovaphone.com/moodle2/filter/wikilink/fish-help.png)
Looped-in Mode
In this scenario, any investment in the legacy PBX, either in terms of hardware (interface cards) or service (configuration) is clearly not desirable. The innovaphone solution (often referred to as soft migration) is to
![screenshot.png](https://class.innovaphone.com/moodle2/filter/wikilink/screenshot.png)
The IP810 and IP6010 (as well as some of the discontinued gateways) feature a looped-in mode especially for this scenario:
- Calls from ISDN to ISDN (e.g. from the PSTN to a legacy extension) will be directly switched between the 2 interfaces. This ensures that there are no VoIP resources are used (e.g. DSP channels) and no extra voice delay is added
- When the gateway is switched off, or fails to boot up for any reason, the corresponding interfaces are connected transparently, so that access to the trunk line(s) from the legacy PBX is still possible
DHCP
Client
innovaphone devices can work as DHCP clients. Apart from requesting an IP lease from the server, a number of
![fish-help.png](https://class.innovaphone.com/moodle2/filter/wikilink/fish-help.png)
Server
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](https://class.innovaphone.com/moodle2/filter/wikilink/fish-help.png)
In order not to interfere with an existing DHCP server, the innovaphone server can be configured to
![fish-help.png](https://class.innovaphone.com/moodle2/filter/wikilink/fish-help.png)