Reference12r2:Concept Softwarephone

From innovaphone wiki
Jump to navigation Jump to search
There are also other versions of this article available: Reference10 | Reference11r2 | Reference12r1 | Reference12r2 (this version)


General

Innovaphone SoftwarePhone is the implementation of innovaphones HW phones software as a Windows process. So all the features native to the hardwarephones are present in SoftwarePhone as well. SoftwarePhone has no UI, it is operated via myPBX or 3rd Party CTI client (ex: Estos Procall).

System Requirements

The innovaphone SoftwarePhone requires:

  • Windows 7 or higher
  • innovaphone PBX with SoftwarePhones<v> License.
  • innovaphone myPBX UC-Client as frontend with myPBX- or UC-license

Installation

Prior to installing the 10.00 Version of innovaphone SoftwarePhone an eventually installed 9.00 version must be manually deinstalled. From version 10.00 to 12r1 subsequent releases can be updated without first deinstalling the older version. From 12r2 on prior versions must be manually deinstalled. When updating the installation, the previous configuration (if existing) is reused. Otherwise a default configuration is installed. There are 2 ways to install Softwarephone:

  • SetupSWPhone.exe. This is the preferred method if no installation parameters are required. It automatically installs all 3rd party SW to operate the headsets
  • softwarephone.msi AND SpokesSDKNativeRuntime.msi. If the Softwarephone installation needs to be parametrized via Orca first install SpokesSDKNativeRuntime.msi, then

softwarephone.msi

  • In our newest download packet, if you aren't using our exe file please install first HubSDKNativeRuntime.msi, Sennheiser_SDK_v7.5.9600.msi and than softwarephone.msi. Delete first the old pakets and install than the new ones.

The following items are installed:

  • SoftwarePhone .exe and related files (dll) in Program files (x86)\innovaphone\SoftwarePhone
  • Hid.tbl (the code definitoins of supported USB headsets) in Program files (x86) \innovaphone\SoftwarePhone
  • The config files „swphone_config.cfg“ and „swphone_command.cfg” in the User Roaming directory (if no previous configuration is located there, otherwise the old configuration is used, Roaming Directory Location : <drive>:\Users\<User>\AppData\Roaming\innovaphone\SoftwarePhone\)

Installation Process:

  • http port 80 ist checked to be available as the SoftwarePhone ’s web configuration port. If not free, a search starting at port 10006 is executed to find a free port. The URL file, containing the configuration servers web @ is adjusted to the determined free port
  • SoftwarePhone is startet.

Resetting to defaults:

  • Resetting to default configuration could be done by deletiong the config files in the Roaming Directory.

Unattended Installation of softwarephone for ALLUSERS:

  • It's possible to install softwarephone for ALLUSERS by using the command:
Msiexec /i softwarephone.msi ALLUSERS=1

Configuration

The configuration is opened by selecting “Configuration” from the start menu. A browser connection is opend to the server running as part of SoftwarePhone and the configuration menu is displayed.

Default login is admin/swphone.

The configuration options are the same as for the hardware phones with a few specifics referring to SoftwarePhone running as a Windows process:

  • Application

The Applicatons run mode and priority can be set and whether to register with the computers name at the PBX.

  • Audio

The desired audio devices can be selected.

  • Audio

The Audio –Input, -Output and –Ringing device can be selected.

  • USB

Legacy configuration for customers who use a previous installation with a headset other than Jabra, Sennheiser or Plantronics. Headsets from these vendors are handled automatically and need not be configured.

The default credentials are admin / swphone

„Audio and USB Configuration"

This config GUI is unique in the way that it can only be accessed (right click on the softwarephone icon) from the computer SoftwarePhone is running on. Here the typical End User Configurations are set: Audio and USB-headset parameters.

Default-usercfg.png

Above image shows the default configuration without any headset from vendors Jabra, Plantronics or Sennheiser plugged in. "Headset" in this case means any headset of beforementioned vendors that is detected. Note: The FIRST detected headset will become the active one, if more than 1 headset is plugged in. In case you have more than 1 headset plugged in and want to use a specific for Softwarephone operation you must configure it in the "USB Configuration | USB device" droplist. The column on the right shows the actual values

Usercfg-headset-plugged-no-preferred.png

Above image shows a default configuration "Headset" with currently a "Sennheiser SC260 .." being plugged in and detected

Usercfg-headset-plugged-preffered-active.png

Above image shows the "Sennheiser SC260 .." configured as the prefered (USB Device) and being active.

Note: If you have configured a specific headset and you don't plug it in but instead another one then this other is fully operational and it stays that way until the prefered one is plugged in, then it becomes the active one.


Microphone:

The microphone selection.

Speaker:

The speaker selection

Ringer:

The Ringing device selection

Handsfree:

The open listening device selection. The device that plays the incoming audio stream when the speaker button is pressed in myPBX.

USB Device:

The USB headset selction.

USB Map:

Legacy for non Jabra, Plantronics and Sennheiser headsets. The codepage selection for the selected usb device. Here one or two choices are presented. If a selection item that refers to the selected USB Device use this. If only “generic HID Telephonie Page” is available you can try to use the headsets button (some headsets support the generic codes)

NOTE: If the headsets buttons do not work for call control, then call control is solely available through myPbx. Nevertheless the USB headset can be used as the audio-in/output device.

[Tab:„Application“]

Admin mode Application configuration.

Swphone application.jpg


Application Run Mode:

  • Manual: SoftwarePhone needs to be started manually
  • Login: SoftwarePhone will be started when the user logs in (don't set this option if myPBX Launcher have option "Run Softwarephone" in the same PC).

Application Priority:

  • Normal: As every standard Windows Process. Sufficient in almost all cases
  • High: Elevated Priority.

Register Mode:

  • Default: Registration modes like the HW phones.

NOTE: Anonymous registration might not work in all environments, especially those that prevent multicasts. For example, when using SoftwarePhone over a vpn connection ensure that multicast forwarding is guaranteed. Also, if a virtual machine is running on the same computer it might prevent multicasts being sent on the LAN.

  • Computername:

The best way for registering SoftwarePhone at the PBX. It uses the computername as it is visible on the LAN. The computername is determined by SoftwarePhone and the appropriate parameters are set for the “Phone” modul. This configuration appears in the field “Name” under the “Phone” tab (Example for computer„LBU-VOSTRO-W7“ ):

Swphone registration.jpg

[Tab:"Audio”]:

Admin mode Audio configuration. Items see „Audio and USB Configuration“

[Tab:“USB”]:

Admin mode Audio configuration. Items see „Audio and USB Configuration“

Rollout

Especially in larger installations it is desirable to have a mechanism for automatic configuration of the SoftwarePhones. This can be accomplished in the following way:

SoftwarePhones installation package (softwarephone .msi)can be parametrized by creating an Orca MSI database editor transform with the parameters: URL and POLL. Theses parameters are entered in the “Property” table


Download orca.jpg


Saving Embedded Streams

By default, when saving a database to a new file with File and Save As…, Orca does not copy streams that are embedded in the database but not a member of any table. Select Copy embedded streams during 'Save As' to save streams to the new file when saving a database using the File with the Save As… option.


Orca openfile.jpg

Orca addrows.jpg

Orca rows content.jpg

Orca savefile.jpg

It is recommended that the “POLL” value be set to “1” (shortest time: 1minute). When SoftwarePhone is installed with the transform it starts, waits 1 min (poll period) then accesses the script file specified in the “POLL” parameter and executes the commands therein. To register SoftwarePhone with the computername at the PBX the script file should look as follows (example showing the PBX @ “192.168.178.22” with the identifier „IP800-06-25-6e” :

…
#set the PBX @ and Identifier
config change PHONE SIG /prot H323 /gk-addr 192.168.178.22 /gk-id IP800-06-25-6e
#register with computername
mod cmd APP0 app-set /op OK /reg_mode ComputerName
#reset the automatic configuration update
config add UP1 /url 
#reset SoftwarePhone and apply config
reset 

Another method to provide configurations to the installed SoftwarePhone s is preparing a configuration template by configuring one SoftwarePhone entity, then using the generated “swphone_commands.cfg” file in the <users roaming directory >\innovaphone\SoftwarePhone as the template, copying it to the update location and using it in the script file:

#invoke configuration template
mod cmd UP0 cfg  <update directory location>/swphone_commands.cfg


This method is particularly helpful when many USB headset of the same type are used.

Setting QoS

See Howto:Softphone recommended settings.

Supported USB headsets

The following USB headsets are supported for onhook/offhook and mute (MyPBX) functionality:

All Jabra, Plantronics and Sennheiser headsets that are supported by these vendors SDKs. Please check their sites for more information.

https://www.plantronics.com/us/en/support/downloads-apps/hub-desktop

https://developer.jabra.com/site/global/sdks/windows/documentation/core.gsp

https://en-us.sennheiser.com/headset-software-pc

Troubleshooting Connectivity Problems

If you experience problems with softwarephone attaching to the PBX or not being able to make calls please check the following:

  • check in the “Phone” tab whether the state is “up”
  • check in the “General” tab if License is “Valid”
  • Start a command window as Administrator and issue a "netstat –a –b > swphone_netstat.txt"

In the “swphone_netstat.txt” file search for “1720”. There should be an entry like this:

TCP 0.0.0.0:1720 LBU-VOSTRO-W7:0 LISTENING [softwarephone.exe].

Please search for other occurances of “1720” to ensure that no other processes listen to this port.

  • Make a softwarephone trace to see if the packets are received by softwarephone

In the “Maintenance” tab “Tracing” enable “H.323 Signaling”, “Phone” and “All TCP/UDP Traffic”. Then try to make the call. In the resulting trace you should see the events like the following:

0:0103:337:3 - RECV RESULT[](662 from pla(192.168.178.22:60003) type: 1) 0:0103:337:3 - PHONE_LISTEN.1 -> PHONE_REG.1 : SIG_SETUP faststart=3ac8bec cmd=PROPOSAL cdpn=400

If these events are no present in the trace it could be that the firewall settings prevent some of softwarephone’s functions. This could be the Firewall.

  • Check the firewall settings for softwarephone

Please open the “System Administration\Windows-Firewall\Allow Program.. Ensure that softwarephone is enabled on the required interfaces. If this doesn’t solve the problem then temporaryly disable the firewall completely and try again. Now even with the firewall disabled there could be some other security software that causes the problem. To find out if packets to the “h323hostcall” port (1720) are filtered by the firewall you can use the commands “netsh wfp capture start” to start a trace of the test and “netsh wfp capture stop” to stop the trace. The trace is written into the file: “wfpdiag.cab” . Extract the file: “wfpdiag.xml”. In this file search for “1720”. If the packet is filtered by the firewall an entry like the following can be found:

<netEvent>
  <header>
    <timeStamp>2013-11-05T11:20:27.367Z</timeStamp>
    <flags numItems="8">
      <item>FWPM_NET_EVENT_FLAG_IP_PROTOCOL_SET</item>
      <item>FWPM_NET_EVENT_FLAG_LOCAL_ADDR_SET</item>
      <item>FWPM_NET_EVENT_FLAG_REMOTE_ADDR_SET</item>
      <item>FWPM_NET_EVENT_FLAG_LOCAL_PORT_SET</item>
      <item>FWPM_NET_EVENT_FLAG_REMOTE_PORT_SET</item>
      <item>FWPM_NET_EVENT_FLAG_APP_ID_SET</item>
      <item>FWPM_NET_EVENT_FLAG_USER_ID_SET</item>
      <item>FWPM_NET_EVENT_FLAG_IP_VERSION_SET</item>
    </flags>
    <ipVersion>FWP_IP_VERSION_V4</ipVersion>
    <ipProtocol>6</ipProtocol>
    <localAddrV4>192.168.178.21</localAddrV4>
    <remoteAddrV4>192.168.178.22</remoteAddrV4>
    <localPort>1720</localPort>
    <remotePort>60007</remotePort>
    <scopeId>0</scopeId>
    <appId>							
      
      <asString>...</asString>
    </appId>
    <userId>S-1-5-21-3364624427-3176291796-194291593-006</userId>
  </header>
  <type>FWPM_NET_EVENT_TYPE_CLASSIFY_DROP</type>
  <classifyDrop>
    <filterId>105267</filterId>
    <layerId>44</layerId>
    <reauthReason>0</reauthReason>
    <originalProfile>2</originalProfile>
    <currentProfile>2</currentProfile>
  </classifyDrop>
</netEvent>


where the

<localAddrV4>192.168.178.21</localAddrV4> 

and the

<remoteAddrV4>192.168.178.22</remoteAddrV4> 

should be your computers and the PBX’s @.

  • Check if the setup from the PBX is received at the local computer and what happens with it

Sometimes, Antivirus Packages can implement their own network access policy. This can result in a h323 release complete with cause “User Busy” to an incoming Setup from the PBX before any other softwarephone is reached. To see which process Sends/Receives the packets in a flow you can use the “netmon”, Microsofts free Packet tracer.

How to obtain debug traces of softwarephone using icollect

Included in the installation path (C:\Program Files (x86)\innovaphone\SoftwarePhone) there is a tool called icollect.exe(accessible via start menu entry). After we reproduce a problem we can run this tool to generate debug files that are saved in the roaming folder (C:\Users\<User>\AppData\Roaming\innovaphone) as "debug-info.zip".

Before you reproduce the problem, please enable the File Trace flag at "http://localhost:10006/debug.xml" and set the appropriate trace flags:

Which flags for which problem:

Softwarephone looses registration at PBX
H.323/RAS, H.323/H.225, H.323/H.245
Call setup phase
Signalling, H.323/RAS, H.323/H.225, H.323/H.245
Audio problems
Signalling, H.323/ICE, H.323/DTLS, DSP trace, DSP Audiochannel. Please enable "DSP Audiocapture" only if specifically asked by innovaphone since it captures the complete audio stream and thus can generates huge files on the HD
Headset button problems
Signalling, KEYS

NOTE: Please when providing a crash dump captured by icollect always use the latest SR (service release) of the softwarephone. Don't send us crash dumps of older versions since this will just take more time/effort to be analysed by our developer team.

Important files for support in the debug-info.zip

  • trace.txt -> Trace File, created when File Trace is activated in debug.xml. Also contains version number (to find it, search for Build: )
  • swphone_config.cfg -> one part of the config, can be used to check trace-flags.
  • swphone_commands.cfg -> second part of the config, can be used to check trace-flags. Also contains version number
  • dmp-file: named innovaphone SoftwarePhone#[version]#[id].dmp contains crash dump
    • if crash without dmp file, StartTrace.txt contains trace of swphone start
  • Wave-in/Wave-out: created when DSP & DSP Audiochannel & DSP Audiocapture are activated.

Known Issue

Things to do before starting

Before starting debugging softwarephone issues, is always the best thing to:

- check if audio drivers on the PC/Laptop are updated to the last version

- check if the headset drivers are updated to the last version

- check that the Headset SDK is updated to the latest version

- check that network drivers are updated to the last version

- change registration protocol of softwarephone from UPD (H323) to TCP or TLS (H323/TCP or H323 TLS) to avoid any signaling issue


After updating the driver, please reboot the PC even if not requested by the OS.

Most cases are solved after updating drivers/software, especially if softwarephone won't start or no ringtones/audio device is automatically selected.

Also, please check that the files " swphone_config.cfg " and " swphone_commands.cfg " in the C:\Users\%user%\AppData\Roaming\innovaphone\softwarephone\ are not 0 Kbyte. In this case, best is to reinstall the softwarephone with the latest version, and, after configuring it, restart it and check that the file " swphone_commands.cfg " is bigger then 6 KB. If something is overwriting it (Windows policy, Antivirus), do the following:

- uninstall softwarephone

- reinstall it with Administrator rights

- start softwarephone and configure it (saving the changes)

- without closing it, navigate to the " C:\Users\%user%\AppData\Roaming\innovaphone\softwarephone\ " folder and put " swphone_config.cfg " and " swphone_commands.cfg " in read-only. Doing this, softwarephone will save the changes. Remember that doing this, if you want to changes some settings on softwarephone, you need to remove the "read-only" flag on the files (and re-apply it after the changes)

G.711 only and G729 Optional

The software phone does support G.711 and Opus codec only, no G.723 or G.722. Optionally we can use G729 if G729 Channel licenses are present and available on the PBX.

Another program is blocking the softphone

Another program (e.g XCAPI) might be listening on tcp port 1720 as well. If you want to use both programs simultaneously you can change the signaling port of the softphone to another port like 1721.

 http://localhost/!config add PHONE SIG /ep-addr 0.0.0.0:1721

If you want to find out which program is listening on which port we recommend using a little tool called TCP View. You’ll find it here:

http://technet.microsoft.com/en-us/sysinternals/bb897437.aspx

No license obtained from PBX if SIP Protocol is used

When using Innovaphone softwarephone with SIP Protocol no license it's obtained from the PBX. It's necessary to use H.323 always.

Headset Basestation doesn't Ring

Often it's reported that the Basestation of Wireless Headsets doesn't Ring on incoming call, this is a feature that is missing and there exist already a Feature Request for it - Alerting on Wireless headset base also .

Windows Volume lowers automatically when receiving a call

The volume can be set for swphone exclusively by the Windows mixer. It appears in the mixer because it has a Audio stream Interface to the Windows Audio System, but no way adjust the volume by itself. When such an effect occurs it is best to check the Windows configuration: if it is set to Change volume for applications when certain Events occur:

Windows 7 lowers applications' volume automatically

H.323/TLS Connection not Trusted by Default

Please check the H.323/TLS Known Issues article.

Softwarephone does not work on Terminal Server

The software phone can only run once on a single system. This also implies that it does not work for terminals server systems such as e.g. Citrix, as only the first client session running on a server would be able to start a software phone. Furthermore, multiple RTP streams would impose quit a bit of load on the server.

Softwarephone can't place calls (call setup disappear as I press the "call" button")

After windows major update, some windows systems had their microphone rights turned off for all the application using it. This prevent the softwarephone to properly use the microphone. To check this, press "windows key + i", navigate in "Privacy" - "Microphone" - and check that "Allow apps to access you microphone" is turned on. Sometimes, even if turned on, there is the need to turn "Allow apps to access you microphone" completely off and the on to "refresh" the app rights (softwarephone included)

Also check that windows firewall is not blocking softwarephone communication.

Please check also this page: " http://wiki.innovaphone.com/index.php?title=Howto:Softwarephone_recommended_settings#Registration_Protocol ". With softwarephone, is recommended to not use H323/UDP as protocol.

When PC is not used for some time, softwarephone won't work anymore

We noticed this behaviour on some Windows PC. This was due to the power management settings of Windows, that was turning off the USB ports to save power (this happen most on laptops) To avoid this, open "Control Panel" (with Category view) - "Hardware and sound" - "Power options" . Under "Preferred plan" click the "Change plan settings" for the plan you are currently using. Click the "Change advanced power settings" link Expand "USB selective suspend settings" Select "Disabled" form the drop-down menu Click "Apply" and the "ok"

If you're changing the settings on a laptop, you'll see two options: On Battery and Plugged in, so make sure to change those settings accordingly. This will prevent Windows 10 to power off USB devices connected to your computer (so your usb bluetooth headset connector)

Softwarephone doesn't start after upgrade to new version

On windows 10 PC, can happen that after installing the new softwarephone version without manually uninstalling the old one, softwarephone won't start anymore, and in the Windows event viewer you will see the softwarephone app crash with relative ntdll.dll error. To solve this, manually uninstall the softwarephone, reboot the PC and install the new version.

Softwarephone 12r2 keep crashing on Windows 10

We noticed some issue between Softwarephone 12r2 and Windows 10. If your softwarephone after Windows 10 major update 1809, doesn't start or start and keep restarting, uninstall Softwarephone 12r2, delete the Softwarephone folder in the AppData/Roaming/Innovaphone/ path, restart the PC and install Softwarephone 12r1 with Administrator rights. This should solve the issue.

Issue with permission on Appdata folder

After major windows update, can happen that permission for the appdata/Roaming folder are reset. To restore them please do the following:

Open "Run" by pressing Windows + R keys together. Type: as C:\Users\USERNAME\AppData Note: Replace C: with the letter of the drive where Windows is installed. Also replace USERNAME with the username of the account you’re logged in.

Click OK

Right-click on the Roaming folder

Click Properties

Go to the Security tab

Click “Edit -> Add”

Type “Everyone”

Click “Check names -> Ok -> Full control”

Click OK to save the changes

Restart your computer


Now softwarephone should be able to access all necessary files again.

Not removed system tray icons

Sometimes if the softwarephone loose connection, wifi/copper/vpn will be switched or crashes the application in the system tray will not removed.

Headset not recognize by softwarephone on Windows 10

After Major windows update, headset is not recognize anymore. This can happen in case authorization by the OS for softwarephone to bind the headset to the softphone is denied. To restore the headset detection, uninstall softwarephone 12r2 version and install the latest 12r1 softwarephone release. Doing this, NET framework 3.5 will be reinstalled, authorization restored, and headset should be recognized again. Once headset is recognize, you can reinstall softwarephone 12r2 (latest) version and headset will work with the 12r2 version of softwarephone again.

Softwarephone Mac address is 00000000000

To be able to obtain a Mac address, on the PC network card, netbios must be enabled.