Connect an OVH VoIP SIP number with Unifi Talk

Hello,

If you want to use an OVH SIP line with UniFi Talk, here is the configuration that works for us.

1. Retrieve your OVH line information

In the OVH client area:

Telecom → Telephony → Select your billing group → Your line

In the General Information section, note the following details:

  • Login / Username → your SIP login

  • Domain / Registrar → your SIP domain

  • Outgoing proxy → your SIP proxy

Note these details.

Then, in SIP line password, set a new password and keep it.


2. Create the SIP provider in UniFi Talk

In your UniFi console:

Talk → Settings → Phone Lines → 3rd Party SIP Providers → Create New

Enter:

  • Provider : Custom

  • Provider Name : your domain

Then add the following custom fields:

Field Value
proxy your domain
register-proxy your proxy
outbound-proxy your proxy
realm your domain
username your login
password the SIP password set above
from-user your login
from-domain your domain
extension your login
register true
context public
codecs PCMA
ping 75
expire-seconds 800

3. Phone number

In Phone Number, enter your number in the format:

+33XXXXXXXXX

4. Advanced

In Advanced, add the IP addresses corresponding to your OVH SIP domain/proxy.

5. Audio codec

In:

Settings → System → Audio Codec

Select:

PCMA

6. Verification

At this step, you should be able to make calls from the UniFi Talk phone.

If you can also receive calls, the configuration is complete.

7. If inbound calls do not work

If your UniFi console is behind a double NAT or another router, you may need to:

  • enable a DMZ to the UniFi console;
  • or open the required ports.

Warning: perform these changes only if you understand their implications. A wrong configuration can lead to network security risks.

If it still does not work, also check the firewall rules of your UniFi console.

Debugging

UniFi Talk provides very little information about the real status of a third‑party SIP line.

To diagnose issues, you usually need to:

  1. SSH into the UniFi console.

  2. Access FreeSWITCH via:

fs_cli
  1. Check the logs and the status of SIP gateways.

This is currently the only way to get detailed information on SIP registration and possible errors.

Additional information

  • Tested with UniFi Talk 5.2.2

  • I am not affiliated with either OVH or Ubiquiti.

  • This tutorial is provided for informational purposes only. My liability cannot be engaged under any circumstances.

  • Some parameters may not be essential; I kept only those that allowed a working configuration.

Thanks @UPC :wink:

Hello @UPC thanks for the info

Are we indeed talking about a VOIP account and not a SIP trunk?

I took a SIP trunk thinking VOIP didn’t work but it’s less advantageous

Can you confirm?

Thanks

Hello @fennec,

Yes, I’m indeed talking about an account and not a trunk.

Have a good day

Thanks @UPC

Is it possible to convert a trunk to VoIP? Or should I terminate the trunk to switch back to VoIP?

And @FabL how do we view the messages hidden because they are non‑compliant or reported by the community?

Indeed I strongly doubt that a moderator has visited this forum around 5 pm‑6 pm.

After configuration I receive calls correctly, but I can’t make a call.

In the Advanced settings I set the SIP OVH domain/proxy IPs, but I can’t obtain the IP of my domain sip-domain.io; however, I have entered the IP of my register‑proxy.

Any help? Thanks.

Did you set the IP 91.121.128.0/23?

It comes from this guide: https://docs.ovhcloud.com/fr/guides/web-cloud/phone-and-fax/voip/troubleshoot-local-network

I put the IP in advanced, yes

At the DNS level, nothing to see in the logs, I have a lot of

Ping failed Talk with code 503 - count 1/0/1, state DOWN
Ping failed 35.156.191.131 with code 408 - count 1/0/1, state DOWN

Gemini

Here is the complete breakdown of your FreeSWITCH log (which clearly comes from a UniFi Talk system) in English.

Situation Summary

An internal user (Extension 0001, named “Accueil”) tried to make an external call to a French mobile (+33680******, ******). FreeSWITCH correctly received the request, processed the routing rules, and then attempted to reach the external carrier. However, the carrier (the SIP trunk) immediately rejected the call with a SIP 503 error. FreeSWITCH therefore had to drop the communication and returned a “Congestion” message to the internal phone.

Step‑by‑step Technical Analysis

1. Initialization of the internal call (A‑Leg)

  • Trigger: The phone with internal IP 192.168.50.203 (Extension 0001) sends an INVITE to the FreeSWITCH server (192.168.50.1).

  • Destination: The dialed number is +33680******.

  • Authentication: FreeSWITCH checks the access‑control list (ACL “domains”), challenges the phone for authentication, and then validates the session.

  • Audio negotiation: The server and the phone agree to use the PCMA audio codec (G.711 A‑law, the European standard).

2. Routing and outbound attempt

  • Dial‑plan: The call enters the default context and matches the rule route_to_external_did (external origination).

  • UniFi processing: FreeSWITCH communicates internally with the UniFi Talk application (127.0.0.1:8085) to inject data specific to your interface (transfer history, caller name “Accueil”, and configured outbound number: +33366*****).

  • Creation of the external channel (B‑Leg): FreeSWITCH opens a new channel to the outside world: sofia/external_talk/+33680****** via your public IP 176.***.**.*.

3. Failure (Root cause)

Almost instantly after trying to call the carrier, the external channel enters a failed state:

Plaintext

Channel sofia/external_talk/+33680****** entering state [terminated][503]
Hangup sofia/external_talk/+33680****** [CS_CONSUME_MEDIA] [NORMAL_TEMPORARY_FAILURE]
Originate Resulted in Error Cause: 41 [NORMAL_TEMPORARY_FAILURE]
  • The remote carrier (SIP trunk) responded with a SIP 503 (Service Unavailable) refusal.

  • FreeSWITCH translates this SIP 503 code into a standard ISDN Q.850 cause code: Cause 41 (NORMAL_TEMPORARY_FAILURE).

4. Call termination

  • Because the external call failed, FreeSWITCH hangs up the internal phone (A‑leg) with Q.850 cause 34 (NORMAL_CIRCUIT_CONGESTION).

  • The server sends a final SIP 503 message to the “Accueil” handset, and the session is cleanly destroyed.

How to Resolve This Issue?

Since the error originates from the external_talk profile, the problem is not with your internal phones but with the link between your UniFi Talk system and the telephone carrier (the SIP trunk).

Check the following items:

  1. Subscription / Exhausted credit: Verify on your UniFi Talk portal that your subscription is active and that any invoices or call credits are up to date.

  2. Outbound caller ID format: The system tries to present the caller ID +33366******. Make sure this number belongs to you and is authorized by your carrier. Some carriers reject calls (with a 503 error) if the caller‑ID format is not strictly compliant or not validated on the account.

  3. Dialing format: The call is sent in international format +336.... Confirm whether your carrier expects this format or a national format (e.g., 06...).

  4. Temporary carrier outage: The 503 code and the Temporary Failure note can indicate a simple overload or a brief network outage on the carrier side. If the problem persists, contact your VoIP provider’s support, providing the exact timestamp of the attempt (15/06/2026 19:55:27) and the targeted number.

Hey, that doesn’t match your OVH line, it’s two times to Twilio’s servers

I’ll make it clear once and for all: I will not respond to messages generated by an AI. Next time, please just copy/paste the full error message without all the unnecessary surrounding text.

In your case, the message clearly indicates a temporary error.

  • Have all configuration options been properly set?
  • Do you still have call credit and are calls allowed on your plan?
  • Is the number entered in the correct format?
  • Is the gateway correctly indicated as UP?

If so, provide the error message

Hello @fennec

Personally I would start by testing the SIP VoIP configuration of my line on my Android phone.

See my guide:
https://wordetweb.com/word-et-web/Softphones-zoiper-android-exemple-configuration-FR.htm

Not sure that the format +33680****** will be accepted; you should try 0033680******. Although it’s more or less equivalent, indeed.

First of all, thank you @UPC

Second, sorry for the AI but what a time saver to get the line by default

That actually pointed me to my issue

For @UPC’s tutorial to work, nothing else should be touched, especially

Talk > Settings > Call HAnding > General

Default Area Code “None”

Localization Country “Select Country”

If modified, you need to reset Talk

From the first launch I had set +33 France on Localization Country, which results in moving after Custom Field and changing 0033 to +33, and OVH returned a nice 503

Okay on double NAT without any firewall config or anything else with the IP of my OVH proxy in advanced

Everything is fine, thank you for your help

Glad it could help @fennec.

As he said, you shouldn't touch anything else.

So we can confirm that it also works with SIP trunks.

SIP or SIP trunk have the same config in Unifi Talk