---
title: Connect Grandstream UCM to TelecomsXchange
url: https://help.telecomsxchange.com/integrations/grandstream-ucm/
audience: Integrations
summary: On a Grandstream UCM6300 or UCM63xx, add a VoIP trunk of type Peer SIP Trunk
  to sip01.telecomsxchange.com over UDP with heartbeat detection off, and authorise
  the UCM's public IP on your TelecomsXchange account. Add an outbound rule that strips
  00 and prepends the tech prefix, so calls leave as 80039#447700900123, and inbound
  rules for your E.164 numbers.
updated: '2026-10-23'
verified_commit: 83b4ebc96d0081a25213776d5a8871bd04941125
---

# Connect Grandstream UCM to TelecomsXchange

> On a Grandstream UCM6300 or UCM63xx, add a VoIP trunk of type Peer SIP Trunk to sip01.telecomsxchange.com over UDP with heartbeat detection off, and authorise the UCM's public IP on your TelecomsXchange account. Add an outbound rule that strips 00 and prepends the tech prefix, so calls leave as 80039#447700900123, and inbound rules for your E.164 numbers.

## Grandstream UCM to a purchased route

1. **Your UCM**: Peer SIP trunk, identified by IP
2. **TelecomsXchange** (via `80039#447700900123`): sip01, UDP 5060
3. **Seller's route**: The route you purchased

This guide connects a Grandstream UCM6300 series (UCM6301, UCM6302, UCM6304, UCM6308) or UCM63xx PBX to TelecomsXchange with a peer SIP trunk: outbound calls to a purchased route, and inbound calls on numbers you bought or routes you sell. For the full list of TelecomsXchange values, see [Connect a SIP platform](https://help.telecomsxchange.com/integrations/connect-sip-platforms/).

!!! warning
    TelecomsXchange does not accept SIP REGISTER. Create a **Peer SIP Trunk**, not a **Register SIP Trunk**. The UCM is recognised by its **source IP** address.

## Before you start

- A [SIP account](https://help.telecomsxchange.com/buyers/create-your-first-account/) with the UCM's public IP, for example `203.0.113.10`, in **IP Address** or **Additional Allowed IPs**.
- A [purchased route](https://help.telecomsxchange.com/buyers/find-and-buy-routes/) and its tech prefix from **My Interconnections**, for example `80039#`. In this guide `TECH_PREFIX` stands for that value.
- A UCM with a static public IP, or a fixed NAT address with SIP and RTP ports forwarded.
- To receive calls on numbers you bought: a [phone number](https://help.telecomsxchange.com/buyers/virtual-numbers-dids/) whose SIP endpoint points at the UCM, for example `sip:14165551234@203.0.113.10:5060`.

## How do I send calls to TelecomsXchange?

1. Go to **Extension/Trunk → VoIP Trunks** and click **Add SIP Trunk**.
2. Enter:

| Field | Value |
|---|---|
| Type | **Peer SIP Trunk** |
| Provider Name | `TelecomsXchange` |
| Host Name | `sip01.telecomsxchange.com` (port 5060 is the default) |
| Transport | **UDP** |
| Keep Trunk CID / Caller ID Number | Your caller ID, if you want one per trunk |

3. Save, then edit the trunk and open **Advanced Settings**:

| Field | Value | Why |
|---|---|---|
| Codec Preference | The codecs your route supports, for example G.729, PCMU, PCMA | TelecomsXchange doesn't transcode |
| DTMF Mode | RFC4733 (RFC2833) | Standard in-RTP DTMF |
| Enable Heartbeat Detection | **No** | TelecomsXchange answers OPTIONS only within a call |
| SRTP | **No** | TelecomsXchange doesn't support SRTP |

Click **Save** and **Apply Changes**.

4. Go to **Extension/Trunk → Outbound Routes** and click **Add**. Enter:

| Field | Value |
|---|---|
| Calling Rule Name | `TCXC` |
| Pattern | `_00X.` |
| Privilege Level | **International** (or the level your users have) |
| Use Trunk | `TelecomsXchange` |
| Strip | `2` |
| Prepend | `80039#` (your `TECH_PREFIX`) |

A user who dials `00447700900123` sends `80039#447700900123` to TelecomsXchange. If users dial with `+`, add a second rule with Pattern `_+X.` and **Strip** `1`. The UCM uses the first matching rule from the top, so place these above broader rules.

The UCM may send the `#` as `%23` in the Request-URI; TelecomsXchange decodes it.

!!! tip
    To pick routes per destination, add one outbound rule per destination pattern (for example `_0044X.`) with that route's tech prefix in **Prepend**. Or prepend a [routing group](https://help.telecomsxchange.com/buyers/routing-groups-and-route-testing/) prefix such as `444101#` and let TelecomsXchange choose.

**NAT.** If the UCM is behind NAT, go to **PBX Settings → SIP Settings → NAT**, set **External Host** to your public IP (`203.0.113.10`) and **Local Network Address** to your LAN, and forward UDP 5060 and the RTP range (shown under **PBX Settings → RTP Settings**).

## How do I receive calls from TelecomsXchange?

Calls on numbers you bought, and on routes you sell, come from `174.136.44.213` over UDP, from source ports 5060 to 5072, with the number in E.164 format such as `14165551234`.

1. Allow `174.136.44.213` on the firewall in front of the UCM for UDP 5060 and the RTP range. If you use the UCM's own firewall rules (**System Settings → Security Settings**), add an accept rule for `174.136.44.213`.
2. The UCM matches an incoming INVITE to the peer trunk by its source address. `sip01.telecomsxchange.com` resolves to `174.136.44.213`, so calls land on the `TelecomsXchange` trunk. If they don't, set the trunk's **Host Name** to `174.136.44.213`.
3. In the trunk's **Advanced Settings**, keep **DID Mode** on **Request-line**, where TelecomsXchange puts the number.
4. Go to **Extension/Trunk → Inbound Routes**, select the `TelecomsXchange` trunk and click **Add**. Set **DID Pattern** to the number as it arrives, for example `_14165551234`, and choose the destination (an extension, ring group, queue or IVR). Use `_X.` with a default destination to catch every number. Click **Save** and **Apply Changes**.
5. If your route has an **Outgoing Prefix** or strips digits (**Edit Route → Outgoing Number Translation Parameters**), match that format, or use the inbound rule's **Strip** to remove it.

The UCM is a PBX. As a seller, it can terminate calls to its own extensions and numbers, but it isn't designed to carry wholesale transit traffic on to another carrier.

## How do I receive calls on numbers I bought?

Set the number's **SIP Endpoint (Primary)** in **DID Settings** to the UCM, for example `sip:14165551234@203.0.113.10:5060`. TelecomsXchange sends the INVITE from `174.136.44.213` with `14165551234` in the Request-URI, and the inbound rule for that DID sends it on.

## How do I test it?

1. Go to **Maintenance → Troubleshooting → Ethernet Capture** and start a capture.
2. Place a call from an extension to `00447700900123`.
3. Stop the capture, open it in Wireshark (**Telephony → VoIP Calls**), and look for the INVITE to `80039#447700900123` (or `80039%23447700900123`) and the reply.
4. On the UCM, check the call under **CDR → CDR**. In the TelecomsXchange portal, watch it in **Live Calls** and find its SIP code in **Logs → CDR (Voice)**.

## What if something goes wrong?

| You see | What to do |
|---|---|
| 401 or 407 from TelecomsXchange, then the call fails | The UCM's source IP isn't authorised, so TelecomsXchange asks for credentials a peer trunk can't send. Add the public IP to **IP Address** or **Additional Allowed IPs**. |
| 403 Forbidden | The source IP isn't authorised. Compare the public IP in the capture with the account; check the account isn't blocked or out of balance. |
| 404 Not Found | Missing or wrong tech prefix, or `+`/`00` left in the number. Check **Strip** and **Prepend** on the outbound rule and the Request-URI in the capture. |
| 408 Request Timeout | No reply from sip01. Check outbound UDP 5060 on your firewall and that the UCM resolves `sip01.telecomsxchange.com`. |
| 503 Service Unavailable | The route is blocked or failed on the seller's side. Check **My Interconnections**; try another route or a routing group. |
| Trunk shows unreachable | **Enable Heartbeat Detection** is on. Turn it off; TelecomsXchange answers OPTIONS only within a call. |
| One-way or no audio | Set **External Host** and **Local Network Address** in the SIP NAT settings and forward the RTP range. |
| Inbound calls rejected | The call isn't matched to the peer trunk. Set **Host Name** to `174.136.44.213` and check the firewall. |
| Inbound call arrives but goes nowhere | No inbound rule's **DID Pattern** matches the number as it arrives; check the format and any Outgoing Prefix on your route. |

## References

- [Grandstream: UCM SIP Trunks Guide](https://documentation.grandstream.com/knowledge-base/sip-trunks-guide/)
- [Grandstream: UCM6xxx SIP Trunk Guide (PDF)](https://www.grandstream.com/hubfs/Product_Documentation/ucm6xxx_sip_trunk_guide.pdf)
- [Grandstream: IP PBX Account Trunk Guide](https://documentation.grandstream.com/knowledge-base/grandstream-ip-pbx-account-trunk-guide/)

## Frequently asked questions

**Q: Can a Grandstream UCM register to TelecomsXchange?**

A: No. TelecomsXchange is peering only and does not accept REGISTER, so use a Peer SIP Trunk, not a Register SIP Trunk. The UCM is recognised by its public IP address.

**Q: Can the UCM use the VoIP login and password instead of its IP?**

A: Use IP authentication. A UCM peer SIP trunk has no username or password fields; those belong to register trunks, which send REGISTER. If the UCM's public IP changes, add the new one under Additional Allowed IPs.

**Q: Should I turn on Enable Heartbeat Detection?**

A: No. It sends SIP OPTIONS to check the peer, and TelecomsXchange answers OPTIONS only within a call, so the trunk would look unreachable.

**Q: Where does the tech prefix go?**

A: In the outbound rule: Pattern _00X. with Strip 2 and Prepend 80039# turns 00447700900123 into 80039#447700900123.
