Appendix I: Sotfphone Troubleshooting

Commmon Issues

The SoftPhone does not work with an extension configured for Zulu

Unfortunately, extensions created for FreePBX’s Zulu won’t work with the embedded SoftPhone. They will also cause other compatibility issues, e.g. when being monitored (e.g. chanspy).

On the other hand, if you already have Zulu installed, you probably don’t need a different soft-phone as well.

The SoftPhone does not register

Usually, if the SoftPhone does not register correctly, it’s due to the fact that the extension credentials are not correct. If this is the case, you should see a message in the Browser console.

FailedToRegister

If you have this error, check your extension’s username and password and try again.

Alternatively, the softphone could be unable to connect because the WebSocket address is wrong, and the phone cannot connect to the PBX. In that case you should see an error like this:

CannotConnect

To fix this, make sure that you are connecting to the correct WebSocket using WSS. A good WSS connection string should look like this:

wss://IPADDRESS:PORT/ws

example

wss://192.168.1.1:8089/ws

If both the extension credentials and the WebSocket address are correct, then you might need to accept the SSL Certificate of the PBX (If it’s a self-signed certificate). In that case you should see an error in the console with this code:

NET::ERR_CERT_AUTHORITY_INVALID

To fix this, navigate to this address, substituting your WebSocket IP address and Port.

https://IPADDRESS:PORT

example

https://192.168.1.1:8089

And create an exception for this address by clicking on "Proceed to …​" under "Advanced" in Chrome (Other browsers should offer a similar interface).

Warning

Outgoing Calls Hang up as soon as I click the Dial button

If calls hang up immediately check your browser’s console. If you see this error:

GetUserMedia

This means that your browser does not have permission to use your microphone or headphones/speakers. Make sure to enable the appropriate permissions to fix this error.

Incompatible SDP

Enable AVPF must be set to yes

Commmon issues when not using Nat (WebRTC clients are on same local network)

Since they are on the same network the phones do not need ICE Servers to work.

If calls do not reach the other client, or you get `invalid status 5 when answering, you probably have ICE Servers setup when they should be empty.

Common issues when using NAT (WebRTC clients are NOT on same local network)

SIP Failure code 503

PBX is unavailable or you haven’t set the ICE Servers correctly.

Here is a list of Google’s STUN servers, that are free to use. You can try if these work for you by setting one or more as the ICE servers for your WebRTC SoftPhone client, under ICE Servers in the phone settings.

stun:stun1.l.google.com:19302
stun:stun2.l.google.com:19302
stun:stun3.l.google.com:19302
stun:stun4.l.google.com:19302

One way audio

If one side does not have the ICE servers setup correctly, it will not receive any audio streams.

Signs of a good ICE Connection

Check in the browser console for the following string. If it’s there it means that the ICE connection has been completed correctly.

[SoftPhone Event] Ice State Changed. Connection State: connecting Ice Connection State: connected Ice Gathering State: complete

Signs of a bad ICE Connection

If the Ice Connection State is "disconnected", then the ICE connection is not active and will not work correctly.

[SoftPhone Event] Ice State Changed. Connection State: connecting Ice Connection State: disconnected Ice Gathering State: complete