Reference10:Concept myPBX

From innovaphone wiki
Revision as of 17:31, 6 December 2012 by Dde (talk | contribs) (→‎Launcher)
Jump to navigation Jump to search
There are also other versions of this article available: Reference9 | Reference10 (this version) | Reference11r1 | Reference12r1 | Reference12r2

Overview

myPBX is the UC client of the innovaphone PBX. It is intended for assisting typical phone users with their everyday tasks. It consists of two parts:

  • A web application that runs in any modern web browser. It provides the functionality needed for audio telephony, instant messaging, monitoring peoples statuses and more.
  • The myPBX launcher is a Windows application that integrates the myPBX web application into the Windows desktop and adds some interesting additional features like video telephony and Outlook integration.

Web application

The main user interface is an HTML5 application that runs in a web browser. It communicates with the PBX using HTTP-Requests (AJAX). The actual session logic is implemented inside the PBX.

The picture shows how call control is done. The myPBX session has access to the phone registration as they are both located in the same PBX. Thus it can monitor and create or modify calls.

Mypbx overview.png

myPBX launcher

The launcher is a tool for integrating myPBX into the Windows desktop. It is not needed in order to use myPBX but it adds some convenient functions that are not available otherwise.

  • Automatically open the myPBX web application on startup.
  • Desktop notifications.
  • Video telephony
  • Office2010 Integration
  • Hotkey for dialing numbers out of any Windows application.
  • Set the status depending on user activity.
  • Switch to a standby PBX if the main PBX is down.
  • Write trace files.

Requirements

PBX

  • myPBX license
  • Reporting license (for seeing recent calls in the history)

Web browser

  • Current version
  • JavaScript enabled
  • HTML5 XMLHttpRequest (AJAX) enabled
  • HTML5 Web Storage (DOMStorage) enabled
  • HTML5 Cross-document messaging (postMessage) enabled

Note: The launcher always uses Microsoft Internet Explorer for opening the web application. It does not use the configured standard browser.

Launcher

  • Windows 7
  • .NET 4

Related technology

Configuration

PBX

Basic configuration

  • Make sure you have installed the appropriate licenses.
    • myPBX for the web application.
    • Reporting for the call list.
    • Video for video telephony.
  • Activate the licenses for the inidiviual user objects (License tab). This can also be done using config templates.
  • Enable myPBX on the page PBX/Config/myPBX.

Additional hints

  • Only users with a password can login to myPBX.
  • There should be a dedicated device configured at the user object for each phone registration.
  • To use mobile phones, the mobility device must have a name in the fork config at the user object.
  • The LDAP configuration is taken from the phone config at the user object.
  • The dialling location has to be configured at the phone config of the user object.
  • Phones should be registered using the PBX password so that user can change their login password without affecting the phone registrations.
  • If federation is used ("use as domain" checked), the user names and the PBX system name should match the email addresses of people.

Launcher

Basic configuration

Deployment

  • Administrators can can specify a default configuration using MSI parameters when deploying the software.
    • URL - The primary URL.
    • URL2 - The secondary URL (standby PBX).
    • TRACE - Write trace files (true or false).
    • OFFICETRACE - Enable Office Presence Logging (true or false).
    • AUTOSTART - Autostart myPBX (true or false).
    • AUTOPRESENCE - Detect user activity on the computer in order to set the IM status (true or false).

Details

Login

  • The short name (H.323-ID) of the user object is used as the login user name.
  • The password of the user object is used as the login password.
  • Users without a password cannot use myPBX.
  • The local session information is stored in the DOMStorage of the web browser. It is deleted when the user logs out.

In a multi PBX scenario myPBX must be connected to the same PBX as the phone. Therefore after login the user is redirected like follows:

  • PBXes accept the login if they are in charge.
  • Slaves redirect to the master if they are not in charge.
  • The master redirects to the slave that is in charge.
  • Inactive standby PBXes redirect to the master.
  • Active standby PBXes accept the login.

Additionally you can configure an alternative URL in the myPBX launcher that shall be used when myPBX can't connect to the primary URL.

Devices

The different phones of the user are addressed by the device of the user object where they are registered at. Therefore there should be no more than a single registration per device. Mobile phones can be integrated using the mobility object. It is mandatory that the mobility has a device name in the fork configuration.

SIP URIs

  • The use as domain checkmark on the page PBX/Config/General enables addressing users across PBXes using SIP URIs.
    • The system name of the PBX is used as the domain-part.
    • The short name (H.323-ID) of the user object is used as the local-part.
  • The constructed URI looks like an email address (user@example.com) and it should only contain characters that would also be allowed for email addresses.
  • In myPBX the URI can be used for telephony and instant messaging. For local users the domain-part can be omitted (user instead of user@example.com).

Presence

  • In the innovaphone PBX there are different possible sources of user presence, called contacts.
    • tel: - Phone presence
    • im: - Instant messenger presence
    • calendar: - Presence set by the Exchange Calendar Connector
  • myPBX sets the presence for the im: contact.
  • The displayed user presence is a mixed presence that is derived from the indiviual presence sources by the PBX. It consists of the following information:
    • Acitivty (available, away, busy, lunch, meeting, vacation)
    • Note
    • Phone status (open or closed, sometimes displayed as online or offline)
    • IM status (open or closed, sometimes displayed as online or offline)

Directory search

Users can search for phone numbers and other information in an internal and an external LDAP directory. The directories are configured in the phone config that is stored at the user object in the PBX. Templates can be used to share the same configuration across multiple users.

The directory is also used for resolving the names of external callers.

Instant messaging

myPBX is a chat client that can handle live chats between users. The PBX does not store chat messages, so both users have to be online at the same time.

Chat conferences can be started by adding more people. In this case received text messages are relayed to the other participants. Also the list of participants is transmitted to each endpoint.

Application sharing

The user can start a meeting in an external application sharing solution from a chat session. myPBX connects to the application sharing service using an HTTP interface and creates the meeting. If that was successful it sends links for joining the meeting to the participants of the chat session.

Currently we support Microsoft Office LiveMeeting and WebEx. Alternatively you can configure static meeting URLs.

History

The history shows recent calls and chat sessions.

The calls are retrieved from an instance of the innovaphone Reporting service. The call details include the call flow before and after the user was connected. When a user calls someone back from the history, the call is marked as answered in the reporting database. As this is done using the conference ID of the call even other users can see who called back at what time.

Chat sessions are stored with the login in the DOMStorage of the Browser. They are deleted when the user logs out.

Tracing and logging

myPBX can write session information to the syslog of the PBX. Check the "myPBX" checkmark on the page Maintenance/Diagnostics/Logging in order to turn it on.

If the checkmark "Write trace" is enabled in the launcher configuration, the launcher writes a rotation of trace files to the folder C:\Users\[UserName]\AppData\Roaming\innovaphone\myPBX.

Appendix

CPU usage

Connected myPBX sessions need additional resources on the PBX. With an area-wide utilization of myPBX you can have approximately half the amount of users per box than without using it.

Network traffic

In idle state the web application needs an empty message exchange every 30 seconds in order to keep the session alive. This messages take about 800 bytes. So per session the minimum network traffic is approximately:

  • 1600 B/min
  • 94 kB/h
  • 2.2 MB/d

Included open source software

The myPBX web application contains the following open source software:

rc4.js

  * RC4 symmetric cipher encryption/decryption
  * Copyright (c) 2006 by Ali Farhadi.
  * released under the terms of the Gnu Public License.
  * see the GPL for details.
  *
  * Email: ali[at]farhadi[dot]ir
  * Website: http://farhadi.ir/

sha1.js

  *  Secure Hash Algorithm (SHA1)
  *  http://www.webtoolkit.info/

jquery-1.7.2.js

  * jQuery JavaScript Library v1.7.2
  * http://jquery.com/
  *
  * Copyright 2011, John Resig
  * Dual licensed under the MIT or GPL Version 2 licenses.
  * http://jquery.org/license
  *
  * Includes Sizzle.js
  * http://sizzlejs.com/
  * Copyright 2011, The Dojo Foundation
  * Released under the MIT, BSD, and GPL Licenses.
  *
  * Date: Wed Mar 21 12:46:34 2012 -0700