Howto:Configure Mobility for use with Opticaller

From innovaphone wiki
Jump to navigation Jump to search

Note: The third-party product mentioned here is no longer available and the content of the article may be outdated.

The OptiCaller software is used for easy access to the mobility functions of V9 PBX from Mobile phones.

Applies To

This information applies to

  • innovaphone PBX V9 hotfix2 or later
  • OptiCaller Version 2.0.6

More Information

Requirements

On the PBX


PBX Configuration

The following configurations must be done on the PBX


Numbering Plan

Mobility is based on a number of feature codes which are used by the mobile phone to access the features. These codes are in fact objects in the PBX (Mobility and DTMF-Feature) which need to be called. As a result, these feature codes each require individual extensions in the PBX's numbering plan. To make things worse, the GSM network does not carry * or # digits in a called number, so the extensions to be used must be plain numbers.

You will need to reserve a number of extensions with a common prefix thus in your PBX's numbering plan. If this is not possible (e.g. because you reside in a country with a fixed numbering plan and you don't have a block large enough to allocate the numbers), you may revert to use a single extension in your numbering plan.

Be aware though that this will result in

  • cost charged by your mobile operator for invoking features (some of the features are normally invoked by calling an extension without accepting the call, which should be free. When using a single extension, all features are invoked by calling this number, accepting the call and then dialling the desired feature using in-band DTMF tones)
  • longer execution time for most of the features invoked

You need thus determine an available prefix for the feature codes within you PBX's numbering plan (say 54). For the remainder of this article, we will refer to this prefix as mobility-prefix.

Mobility Object

There must be a mobility object on each PBX system with a mobility enabled user (that is, a user with an integrated mobile phone). The easiest way to achieve this is to create a mobility object with Node and PBX left empty.

However, if there is only a single PBX that hosts mobility enabled users, you simply put the (single) mobility object into the root node.

The Number property of the mobility object must be set to the mobility-prefix chosen plus literal 9.

This will result in one mobility object per PBX which has the PBX's node number as a prefix. Assuming the PBX's node number is 81, the full number of the mobility object in our example would be 81549.

Mobility Prefix 01.png

DTMF-Features Object

Again, there must be a DTMF-Features object on each PBX system with a mobility enabled user (that is, a user with an integrated mobile phone). The easiest way to achieve this is to create a DTMF-Features object with Node and PBX left empty.

The DTMF-Features object itself does not have a Number property. Instead, the individual features have one. The features must have fixed numbers according to the following table:

CFU Activate mobility-prefix10$# Deactivate mobility-prefix11
CFB Activate mobility-prefix12$# Deactivate mobility-prefix13
CFNR Activate mobility-prefix14$# Deactivate mobility-prefix15
Pickup Group mobility-prefix16 Directed mobility-prefix17$#
Park mobility-prefix18$ Unpark mobility-prefix19$
Park To mobility-prefix20$(1)$# Unpark From mobility-prefix21$(1)$#
Call Completion Busy mobility-prefix22$# Cancel mobility-prefix23$#
Join Group mobility-prefix24$# Leave mobility-prefix25$#
Join All Groups mobility-prefix26 Leave mobility-prefix27
Enable mobility mobility-prefix28 Disable mobility mobility-prefix29
Enable mobility cw mobility-prefix30 Disable mobility cw mobility-prefix31
Set presence mobility-prefix32$(1)$(1) Unset presence mobility-prefix33$(1)

In our example, the list of mobility related objects should look like this:

DTMF-Features#call_completion     81.5422
DTMF-Features#cancel_cc           81.5423
DTMF-Features#cfb_activate        81.5412
DTMF-Features#cfb_deactivate      81.5413
DTMF-Features#cfnr_activate       81.5414
DTMF-Features#cfnr_deactivate     81.5415
DTMF-Features#cfu_activate        81.5410
DTMF-Features#cfu_deactivate      81.5411
DTMF-Features#disable_mobility    81.5429
DTMF-Features#disable_mobility_cw 81.5431
DTMF-Features#enable_mobility     81.5428
DTMF-Features#enable_mobility_cw  81.5430
DTMF-Features#join_all_groups     81.5426
DTMF-Features#join_group          81.5424
DTMF-Features#leave_all_groups    81.5427
DTMF-Features#leave_group         81.5425
DTMF-Features#park                81.5418
DTMF-Features#park_to             81.5420
DTMF-Features#pickup_directed     81.5417
DTMF-Features#pickup_group        81.5416
DTMF-Features#set_presence        81.5432
DTMF-Features#unpark              81.5419
DTMF-Features#unpark_from         81.5421
DTMF-Features#unset_presence      81.5433
Mobility                          81.549


Users

To enable mobility for a user, you need to

  • make sure you have Mobility-9 license available. As usual, test licenses are available from within my.innovaphone
  • add a forking destination for each mobile phone the user wants to use with mobility
  • make the users mobile phone numbers known to the system

Put the phone's number into the No property. This number must be specified exactly as it would be received by the PBX when this phone calls in. That is, it is the number including GSM carrier prefix and trunk prefix, no country code, no +. Assuming the users mobile number is 017247110815 and the trunk line prefix in your PBX is 0, you would specify 0017247110815.

Mobility Fork Configuration 1.png

Configuration in the Opticaller Mobile Provisioning Portal

The the mobility-prefix (if any used) must be provided under MEX Functions, Function 2. In our example it will be 54.

The number of VoiceMail Object must be provided under MEX Functions, Function 1.

Functions Configuration:

Opticaller Mobile Provisioning Mex Configuration 1.png

Mex Buttons List:

Opticaller Mobile Provisioning Mex Configuration 0.png

Phone Installation

Refer to OptiCaller UserManual.

Setting CLIR on the Mobile Phone

The phone must identify itself to the PBX as a legible mobile device by providing the proper calling line ID. As a result, the phone must not be set into a CLIR (calling line identification restriction) mode as it will be rejected by the PBX then and no outgoing call through the PBX will thus be possible.

Disabling mobile Carrier based Absence Message

Many mobile carriers will terminate calls to your mobile phone even though it is not reachable, for example because it is busy, not registered with the provider, switched off etc. This will happen for example if you have set a call forward (e.g. towards your mobile voice mail). But even if you have not set such a call forward, your carrier may terminate the call and play a message such as "The user is currently unavailable, do you want to be notified ...".

With mobility, this behaviour is evil. When your extension is called and the PBX forks the call to your mobile and the mobile is unavailable, the mobile carrier will take the call right away. To the PBX, the call is connected then and it will assume it was delivered to you successfully. In other words, you have no chance to take the call on your fixed phone. Also, if the PBX is configured to handle calls which cannot be delivered (e.g. by forwarding them to the switchboard operator or your PBX mailbox), this handling will not happen as the PBX assumes the call to be taken by you. For these reasons it is mandatory that you disable these mobile carrier features all together!

Unfortunately, there is no standard procedure to do so. You need to inquire with your mobile carrier. As an example, vodafone in Germany requires you to call a hotline number in order to disable what they call the Vodafone Anruf-Info.

OptiCaller UI Language

You can provide your own language. This is down by providing the different configuration templates in the OptiCaller Mobile Provisioning Portal. E.g. to use German Lanuage on the OptiCaller assign innovaphone CDPN DE config tempalte to the user.

Working with fixed Numbering Plans

The dial plan used for the mobility and DTMF features objects assumes that you have an open numbering plan, that is, that you are able to call in to your PBX from the mobile to extensions of different length. For example, in our example these all share the common prefix 54. The mobility object's extension thus is 549, the extension of the join all groups DTMF feature is 5426.

In some countries however, the numbering plan is fixed, that is, it is not possible to call extensions of different length. If this is the case, you can create a configuration that only uses a single extension in your numbering plan for all mobility functions (see Numbering Plan above).

Additional Configuration in the PBX

In this case, you would configure the PBX objects as described. In addition, you would create a PBX MAP object which maps the externally visible extension you choose for mobility to the number configured for the mobility object. In our example, where the mobility object has extension 549, assuming your numbering plan is 2-digit (-00 to -99) and you have chosen extension 99, you would create a MAP which maps 99 to 549.

In case of multiple PBXes, you have also multiple Mobility objects with numbers containing PBX prefix, like 80.549 and 81.549 etc. Therefore multiple MAP objects must be created for every combination of externally visible extension and PBX prefix + Mobility object.

Additional Configuration in the OptiCaller Mobile Provisioning Portal

On the OptiCaller Provisioning Portal you have to use innovaphone DTMF configuration templates instead of innovaphone CDPN templates, to use all PBX Features via DTMF.

CallTrough initiation via Data/HTTP Request

With CallThrough feature of the OptiCaller it is possible to initiate a CallThrough from PBX to Mobility Device via simple GET or POST request, in order to speed up call setup, since the dialed number is transmitted from OptiCaller to the PBX via a HTTP request, and not via DTMF.

In case CallTrough via Data is used, following must be considered:

  • IP connection from OptiCaller to PBX for HTTP Requests
  • Additional configuration in Provisioning Portal required
  • Introduced in innovaphone V9 hotfix21 Firmware

Direct HTTP CallTrough request to the innovaphone PBX

We need to set:

  • Public IP address with NAT configured to the HTTPS port of the PBX (i.e: 145.x.x.x:35000 mapped to 192.168.x.x:443 TCP)
  • At OptiCaller Calltrough DATA Settings we must configure:
    • Public IP address and port configured before.
    • HTTP GET Method
    • User Data with Name of the user object and password too.
    • Server URL : http://x.x.x.x:80
    • Data Handler: PBX0/ADMIN/mod_cmd_login.xml?
    • Data Format: cmd=makecall&req=callthru&name=/*u*/&e164=/*b*/&hw=opticaller(Mobility device) (see here more about URL parameters)
  • Device name at Call Fork configuration should be "opticaller" (equal to the hw).


Note: The option "name" refers to the Name on User Object and not the Long Name. If you want to use an HTTPS connection use the Server URL: https://x.x.x.x:443 instead, if you have problems regarding the use of HTTPs with Opticaller it's recommended to use Certificates with 5-10 Years period and not more (the default Gateways Certificates have more than 30 years period so you should create a new one or buy one to use it).


For HTTP Authentication following must be configured:

  • At OptiCaller User Phone Settings, under PRO Details
    • define User Name - this is a Name (short, not Long Name) of the PBX User Object with Access Rights for PBX Administration. Usually Groups/Call Forwards only will be OK.
    • define password of this PBX User Object. At innovaphone PBX user object should have password defined.
    • Make sure the option "Disable HTTP basic authentication" at Services->HTTP it's not enable!

CallBack via DATA

With CallBack feature of the OptiCaller it is possible to initiate a CallBack from PBX to Mobility Device via simple GET or POST request.

In case CallBack is used, following must be considered:

  • External HTTP connection to PBX or HTTP to SOAP converter needed ( more secure solution )
  • Additional configuration in Provisioning Portal required
  • OptiCaller PRO License is required (no CallBack support in MEX)

Direct HTTP Callback request to the Innovaphone PBX

We need to set:

  • Public IP address with NAT configured to the HTTPS port of the PBX (i.e: 145.x.x.x:35000 mapped to 192.168.x.x:443 TCP)
  • At OptiCaller Callback Settings we must configure:
    • Public IP address and port configured before.
    • HTTP GET Method
    • SSL option
    • User Data with Long Name of the user object and password too.
    • Data Handler: PBX0/ADMIN/pbx_makecall.txt?
    • Data Format: cn=/*u*/&e164=/*b*/&hw=opticaller (see here more about URL parameters)
  • Device name at Call Fork configuration should be "opticaller" (equal to the hw).


Note: The option "name" refers to the Name on User Object and not the Long Name. If you have problems regarding the use of HTTPs with Opticaller it's recommended to use Certificates with 5-10 Years period and not more (the default Gateways Certificates have more than 30 years period so you should create a new one or buy one to use it).


For HTTP Authentication following must be configured:

  • At OptiCaller User Phone Settings, under PRO Details
    • define User Name - this is a Name (short, not Long Name) of the PBX User Object with Access Rights for PBX Administration. Usually Groups/Call Forwards only will be OK.
    • define password of this PBX User Object. At innovaphone PBX user object should have password defined.
    • Make sure the option "Disable HTTP basic authentication" at Services->HTTP it's not enable!

HTTP to SOAP converter(Optional)

A middleware could be used to convert HTTP CallBack requests from OptiCaller to the SOAP requests for PBX. A sample PHP script is available on the innovaphone download page.

Note: This is a good solution to install in the webserver and prevent direct HTTP External access to the PBX for security reasons. However, if no HTTP Server with PHP is available, Direct HTTP Callback request to the Innovaphone PBXis also supported (see above).

Additional configuration in Provisioning Portal

Following must be configured in the OptiCaller Mobile Provisioning Portal:

  • Configuration, Pro Features
    • IP Address and Port of the PBX HTTP interface
    • Data Method POST
    • Data Handler mobility.php
    • Data Format cn=/*u*/&e164=/*b*/&hw=opticaller where opticaller is Device name used in the PBX on Mobility Fork destination
  • for each User and Phone under PRO Details
    • User Name must be configured. You may use this User Name (and Password) to authenticate against PBX (sample PHP script changes required).

Debugging

Known Problems

  • Mobile phone always gets busy for outgoing calls through the PBX

The phone most likely fails to identify itself properly. This happens if the phone's number in the users Fork entry is incorrect (e.g. trunk prefix missing) or the phone is set to hide its own number (CLIR) on outgoing calls.

  • Setting Call Forward on iPhone is not possible

This should be fixed in the next version of OptiCaller for iPhone.

  • Wrong DTMF sequences received by PBX while Call Through on iPhone with radio reception

An update to iOS 4.3 could improve the DTMF transmission, but only CallBack is a reliable option.

Related Articles