myPBX is a web application that comes with the innovaphone PBX starting from V9. It is intended for assisting typical phone users with a number of common tasks like managing calls and contacts, setting their presence or instant messaging.
myPBX consists of two parts. On the one hand there is the user interface. It is an AJAX application that runs in a web browser. On the other hand the PBX holds a session object for each running user interface. This is where the actual logic is implemented. Both parts talk to each other using HTTP requests.
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.
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.
At startup it opens myPBX in a window that can be minimized to the system tray. The system tray icon also shows notifications on events like alerting calls or incoming chat messages. Additionally you can define a hotkey for dialling numbers out of any Windows application. Finally, the windows launcher offers the option to enter an alternative URL in case that the master PBX is down.
- Note: When you run the windows launcher, it opens only with the Microsoft IE browser. Also when you have set another browser as standard browser. myPBX supports the Internet Explorer from Version 8
- Note: When configuring the URL for myPBX windows application the correct address is: http://x.x.x.x/PBX0/MY/client.htm?lang=en
Not http://x.x.x.x/PBX0/MY/start.htm, if wrong URL is set some troubles like automatic pages opening will happen.
The hotkey can be used for dialling phone numbers out of an other application. When the user presses the hotkey the launcher copies the marked number to mypbx. Any unallowed characters are removed and the external line prefix is added, if it is not an international number starting with '+'. The external line prefix is configured with the dialling location at the user object in the pbx.
+49 (7031) 73009-0 -> +497031730090 (extra characters removed) 07031/73009-0 -> 007031320090 (extra characters removed, external line prefix added) 730090 -> 0730090 (external line prefix added)
The user can create multiple profiles, each with a differnt contact list. This is useful for using myPBX on more than one device. For example people might want to have different contact lists on their computer in the office and on their smart phone. The selected profile is stored together with the login so it is remembered until the next logout.
The contact list works similar to a buddy list. You can add people in order to monitor their presence and calls. You can also call them, start a chat session or send them an email from the contact list.
There are three types of contacts: Internal, external phone number and external SIP.
|Internal||External phone number||External SIP|
|Start call using||Name or number||Number|
|Start chat using||Name or number|
|Send email using||Name|
|Monitor presence and calls using||Name or number|
For external contacts we assume that the Email-Address is the same as the SIP-Address (e.g. firstname.lastname@example.org). If the "use as domain" checkmark is set in the PBX we assume for internal contacts that the username matches the email name and the system name of the PBX matches the email domain.
Deploying BuddyList in multiple users:
If admin wish to deploy one default buddylist for all PBX Users in the PBX without editing each profile of the user and add contacts one by one he could use the function PBX/Config/Export to export xml file of the PBX users and then import again after editing this file. Create the buddylist desired in one user, then copy the value "profile" of this user to other user lines, save file and import in PBX/Config/Import.
Example: "<profile id="1" name="."><c id="1" name="CAN2"/></profile><profile id="2" name="Default"><c id="1" name="CAN2"/><c id="2" name="CAN3"/></profile>"
In myPBX the presence of users consists of the following items:
- Activity (e.g. lunch, vacation, ...)
- Note (a free text)
- Phone status (open when the user has at least one registered phone)
- IM status (open when the user is logged-in using myPBX or another instant messaging client)
The phone an IM status can have three states: open (green icon), closed (no icon) and unknown (grey icon).
The presence can be monitored by other users if they are allowed to do so (see #Visibility).
Other people can add you to their contact list but they can't see your presence or call information if you don't give them a permission. In myPBX the set of monitoring rights that you gave to other people is called visibility.
There are three types of rights: Presence, Busy state and Calls.
Rights can be given to:
- Users (by name,
- All users of a domain (by domain suffix,
- All active users of a group (by group name)
If someone tries to monitor you who has no allow or unallow defined you are notified, so you can define rights for that user.
myPBX displays the calls on all phones of the user. For initiating and accepting calls the selected device is used. As a consequence the user object should have one device for each phone registration. For dialling or transfer the user can either type a number or take if from LDAP search, the call list or from the contacts.
Mobile phones can be integrated using the mobility object. When initiating calls the PBX calls the mobile phone and then transfers it to the dialled number. It is mandatory that the mobility has a device name in the fork configuration at the user object. CLIP no screening must be configured so that the mobile phone can display the dialled number correctly.
The user can do the following actions on calls:
- Initiate new calls by number or name
- Accept incoming calls that are alerting
- Disconnect calls
- Hold calls
- Retrieve calls that are on hold
- Start a three party conference
- End a three party conference
- Transfer one call with another call
- Transfer a call to a specified number or name
- Park a call to line that is specified by number or name
- Park a call to the user's own number
- Unpark calls that have been parked to the user's own number
- Open a keypad for creating DTMF tones (if this is supported by the phone)
The user can connect calls or switch between calls by clicking the name or number of a call.
When dialling a number, first all decoration (that is, all characters except
+, #, *, 0-9)is removed. A leading plus is then replaced by the access code for international calls. Finally, this number is optimized to its shortest equivalent representation (based on the users dialling location). Additionally, some attempts are made to fix common problems in phone number representations found in phone directories (e.g.
+49 (0) 7031 12345 is fixed to
+49 7031 12345 first).
Example: number supplied is
+49 (0) 7031 73009 99, users dialling location is Country Code
49, Area Code
7031, National Prefix
0, International Prefix
0, External Line
0, Subscriber Numbers
+49 (0) 7031/73009-99 ->
+49 7031/73009-99 ->
Users can search for phone numbers in an internal and an external LDAP directory. myPBX uses the same search filter format and returns equivalent search results as the phones. Therefore the directories must be configured in the phone config that is stored in the user object in the PBX. Templates can be used to share the same configuration across multiple users.
myPBX can be configured to obtain the user's call list from an instance of the innovaphone Reporting service. The call list contains all calls of the user, including the call flow before and after the user was connected. When a user calls someone back from the call list, the call is marked as answered in the reporting database. As this is done by the conference ID of the call even other users that have the same call in their list can see who has called back at what time.
myPBX notifies the user if there were missed calls since the last time the call list was viewed. On startup it asks the reporting service if there were missed calls in the time that myPBX was not running.
Only users who have the "reporting" flag checked have the call list in myPBX.
Instant messaging is session based in myPBX and works similar to phone calls. If the user starts a chat session, the other party can either accept or reject it. When the chat session is established, messages can be exchanged in both direction until one of the parties closes the session by closing the chat window. The PBX does not store chat messages, so both users have to be online at the same time.
Each party can add additional users to a chat session. This is called a chat conference. In this case myPBX forwards the messages it receives from one user to all other users it is connected to.
The innovaphone conference interface can be integrated into myPBX. This feature is enabled if the administrator has configured the number that shall be dialled to create a new audio conference room.
If activated users can start an unplanned audio conference from a chat session by clicking a button in the chat window. myPBX initiates a phone call to the conference interface using the configured number. The conference interface creates a conference room and connects the call. The connected number is the same that other users have to dial to join the audio conference. This number is sent to all users in the chat using a tel link.
In order to ensure that there are enough slots in the audio conference myPBX reserves one more slot as there are participants in the chat. The user can also specify the desired number of slots, if needed.
Similar to audio conferences the user can start a meeting in an external application sharing solution from a chat session. myPBX connects to the application sharing service using a 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.
The user can change the password of the user object in myPBX. The changes applies for the next login. The user is not logged out by changing the password.
Please note that changing the user password affects phone registrations using the user password. In v9 it is recommended to register the dedicated phones of users with the admin password. Only temporary logins at shared phones should be done with the user password.
Depending on configuration emails can be sent to contacts from the contact list. For external contacts the email function is available as long as an email address is configured. For internal contacts the email function is activated when the "use as domain" checkmark in the PBX configuration is checked. In this case it is assumed that the name of the user object (H.323 id) matches the email name and the PBX system name matches the email domain.
Login in a multi PBX scenario
In a multi PBX scenario myPBX must be connected to the same PBX as the phones. 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.
- myPBX has to be enabled in the configuration of the PBX. It is disabled by default.
- 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 admin 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.
- There are no limits regarding the number of parallel client sessions. Users can run multiple client sessions.
myPBX can write session information to the syslog. Check the "myPBX" checkmark on the page Maintenance/Diagnostics/Logging in order to turn it on.
- myPBX does not need a special license. It is covered by the PBX license.
- The innovaphone reporting that can be used for call lists needs separate licenses.
- For integrating mobile phones mobility licenses are needed.
See Reference9:Licenses for details.
In idle state there is an empty message exchange every 30 seconds in order to keep the session alive. This messages take about 800 bytes. So the basic 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 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/
* Secure Hash Algorithm (SHA1) * http://www.webtoolkit.info/