{
 "site": "TelecomsXchange Help Center",
 "base_url": "https://help.telecomsxchange.com",
 "synced_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
 "synced_at": "2026-10-21T08:04:29+00:00",
 "source_branch": "origin/tcxc2204",
 "articles": [
  {
   "slug": "getting-started",
   "section": "buyers",
   "title": "Getting started as a buyer on TelecomsXchange",
   "description": "Sign in to TelecomsXchange as a buyer, turn on SMS two-step verification, reset a lost password and find your way around the dashboard and sidebar.",
   "summary": "On the login page, use the Buyer Login panel: enter your Username and Password and click Sign In as Buyer. The Dashboard shows your balance, live calls and API keys, and the left sidebar takes you to every buyer tool.",
   "url": "https://help.telecomsxchange.com/buyers/getting-started/",
   "markdown_url": "https://help.telecomsxchange.com/buyers/getting-started.md",
   "updated": "2026-10-21",
   "keywords": [
    "buyer login",
    "sign in",
    "dashboard",
    "two-step verification",
    "sms verification",
    "otp",
    "login timeout",
    "auto logout",
    "dark mode",
    "light mode",
    "password recovery",
    "forgot password",
    "sidebar",
    "web user login"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "How do I create a TelecomsXchange buyer account?",
     "a": "Click Create a Buyer Account on the login page. Sign-up happens on the TelecomsXchange website; once approved, you sign in with your buyer username."
    },
    {
     "q": "I forgot my password. How do I reset it?",
     "a": "Click Forgot your password? on the login page, enter your email or login, confirm your registered phone number and enter the SMS code. The recovery email links to a page that shows your new password; you can do this once every 24 hours."
    },
    {
     "q": "Why does the login page say Please retry in 10 seconds?",
     "a": "Only one login attempt per network address is accepted every 10 seconds. Wait a moment and sign in again."
    },
    {
     "q": "Why was I logged out while I was away?",
     "a": "Login Timeout (minutes) in Profile & Preferences logs you out after that many idle minutes. Set it to 0 to stay signed in until you log out."
    },
    {
     "q": "How do I switch between light and dark mode?",
     "a": "Click the moon icon in the top bar for dark mode, or the sun icon for light mode. Your browser remembers the choice."
    },
    {
     "q": "I am both a buyer and a seller. Do I need two logins?",
     "a": "If your buyer and seller accounts are linked, the Dashboard shows a Switch to Seller Panel button that takes you to the seller side."
    }
   ],
   "text": "From login page to dashboard 1. Buyer Login: Username and password; one try per 10 seconds 2. SMS verification (via if two-step is on): 4-digit code; browser remembered for 7 days 3. Dashboard (via Verify): Balance, live calls and API keys 4. Sidebar (via every buyer tool): Accounts, Market View, Logs, Routing, Settings TelecomsXchange (TCXC) is a wholesale telecom marketplace. Sellers list voice, SMS and phone-number routes; buyers like you pick the routes that fit their traffic and pay only for what they use. Start here: sign in, secure your login and learn where everything is. How do I sign in as a buyer? The portal's login page shows two panels side by side: Buyer Login (\"Access your buyer dashboard and manage routes\") and Seller Login. 1. In the Buyer Login panel, enter your Username and Password. 2. Click Sign In as Buyer. You'll land on the Dashboard. If two-step verification is on, you'll see the SMS verification step first. No account yet? Click Create a Buyer Account \u2192 to sign up on the TelecomsXchange website. If you open the buyer-only login page instead (Buyer Login and Password fields), Login as Seller under \"Looking for a different account type?\" takes you to the seller login. Team members you've invited as web users sign in on the same form with their own username and password. See invite your team. Give each team member their own login under Settings \u2192 Web Users (only the main user sees this menu), so nobody shares the main password. How do I protect my login with SMS verification? 1. Go to Settings \u2192 Profile & Preferences. 2. Tick Enable Two-Step Verification and click Update Preferences. The next time you sign in, an SMS verification step follows your password: 1. Wait for the SMS \"Your TCXC code is:NNNN\" with a 4-digit code. It goes to the SMS phone number on file. If there is no number on file, enter your number in international format (for example +18001234567) and click SEND SMS; that number is saved to your profile. 2. Type the code into Enter OTP. 3. Click Verify. Your browser is remembered for 7 days, so you aren't asked for a code on every visit. More than 4 wrong codes block your web login. Email support@telecomsxchange.com to unblock it. How long does my session last? Login Timeout (minutes) in Settings \u2192 Profile & Preferences is an idle timer: if you don't open a page for that many minutes, the portal logs you out and shows the login page again. Set it to 0 to stay signed in until you click Logout. Web users share the main account's timeout. How do I reset a forgotten password? You need an SMS phone number on your profile for this. Web users can reset their own password the same way. 1. On the login page, click Forgot your password? in the Buyer Login panel. 2. Enter your Email or Login and click Continue to Next Step. 3. Enter your registered Phone Number and click Send Verification Code. 4. Type the 4-character code from the SMS (\"TCXC verification code is:\u2026\") into Verification Code and click Verify & Reset Password. You'll see \"Recovery email has been sent\". 5. Open the TCXC PASSWORD RECOVERY email and click the link in it. You'll see Password Reset Complete with Your Login and Your New Password (8 random characters). Save the password, then click Go to Login Page. You can recover a password once every 24 hours. \u2190 Back to Login on any recovery step returns you to the login page. What if something goes wrong? You see What to do Wrong Login or Password Check both fields for typos and try again. Please retry in 10 seconds Only one login attempt per network address is accepted every 10 seconds. Wait and try again. On the recovery page the wait is 60 seconds. Enter the text shown below After 3 failed attempts a picture code (CAPTCHA) appears. Type the text from the picture. You have reached the maximum number of password retries, your web access is blocked please contact system admin Your web access is locked. Contact support to unlock it. Send SMS failed: \u2026 The code couldn't be texted to the number on file. Check the number with support@telecomsxchange.com. Invalid SMS Password The code doesn't match. Type the code from the latest SMS. Your account has been blocked. Please contact support@telecomsxchange.com to unblock your account. Too many wrong SMS codes. Email support@telecomsxchange.com. User not found No buyer or web user matches the email or login you typed on the recovery page. Wrong SMS password The recovery code doesn't match. Request a new one. Recovery allowed only once each 24h You already reset your password in the last 24 hours. Try again later. Please contact system administrator to set up your SMS phone number There is no SMS phone number on your profile. Contact support to add one. Incorrect SMS phone number Enter the phone number registered on your profile. Error (on the recovery link) The link has expired or was already used. Start the recovery again. What's on the dashboard? - Account Summary: your company name and address, your profile picture if you uploaded one, Profile Login with an Edit Preferences link, Last Login (or \"No Login History\" on your first visit), Payment Type (Prepaid), Account Balance with a Top Up link, and your Last Credit Amount, Last Credit Method and Last Credit Date (the last confirmed payment). - Live Calls: how many calls are up right now. View Details opens the live call list. - API Keys: your API Login and API Key (hidden until you click the eye icon), and View API Documentation. If you see \"API access is currently disabled\", turn on Allow API Access in your preferences. See Use the API. How do I find my way around? The left sidebar holds every buyer tool: Menu What you do there Dashboard Overview of balance, live calls and API access Accounts Create SIP, SMPP or IoT accounts and authorize your IPs My Interconnections Routes you've purchased, their tech prefixes and status Market View Search sellers' routes and rates, and purchase Payment History Every top-up and credit Logs CDR (Voice), Calls Stats (Voice), SDR (SMS), IDR (MQTT), Web Access (main user only) eSIMs My eSIMS, Market View, Order History. Shown when the eSIM marketplace is enabled; see Buy and manage eSIMs DIDs Purchased DIDs, Market View, My Back Orders, Subscription Logs Live Calls Calls in progress Routing Route Test, Routing Groups (hidden for Finance-role web users), HLR Lookup Settings Profile & Preferences, Web Users (main user only) Logout sits on its own at the bottom of the sidebar. The top bar holds your messages (envelope, with an unread count up to 99+), your balance (click it for Payment History), the + button (\"Add funds\") and your avatar with your login and the label Buyer (click it for preferences). How do I switch between light and dark mode? - In light mode, click the moon icon in the top bar. - In dark mode, click the sun icon. Your browser remembers the choice, so every page, including the login page, opens in that theme. Until you choose, the portal follows your device's setting. What should I do next? Follow the guides in order: create your first account, add funds, then find and buy a route in Market View.",
   "sections": [
    {
     "id": "how-do-i-sign-in-as-a-buyer",
     "title": "How do I sign in as a buyer?",
     "text": "The portal's login page shows two panels side by side: Buyer Login (\"Access your buyer dashboard and manage routes\") and Seller Login. 1. In the Buyer Login panel, enter your Username and Password. 2. Click Sign In as Buyer. You'll land on the Dashboard. If two-step verification is on, you'll see the SMS verification step first. No account yet? Click Create a Buyer Account \u2192 to sign up on the TelecomsXchange website. If you open the buyer-only login page instead (Buyer Login and Password fields), Login as Seller under \"Looking for a different account type?\" takes you to the seller login. Team members you've invited as web users sign in on the same form with their own username and password. See invite your team. Give each team member their own login under Settings \u2192 Web Users (only the main user sees this menu), so nobody shares the main password."
    },
    {
     "id": "how-do-i-protect-my-login-with-sms-verification",
     "title": "How do I protect my login with SMS verification?",
     "text": "1. Go to Settings \u2192 Profile & Preferences. 2. Tick Enable Two-Step Verification and click Update Preferences. The next time you sign in, an SMS verification step follows your password: 1. Wait for the SMS \"Your TCXC code is:NNNN\" with a 4-digit code. It goes to the SMS phone number on file. If there is no number on file, enter your number in international format (for example +18001234567) and click SEND SMS; that number is saved to your profile. 2. Type the code into Enter OTP. 3. Click Verify. Your browser is remembered for 7 days, so you aren't asked for a code on every visit. More than 4 wrong codes block your web login. Email support@telecomsxchange.com to unblock it."
    },
    {
     "id": "how-long-does-my-session-last",
     "title": "How long does my session last?",
     "text": "Login Timeout (minutes) in Settings \u2192 Profile & Preferences is an idle timer: if you don't open a page for that many minutes, the portal logs you out and shows the login page again. Set it to 0 to stay signed in until you click Logout. Web users share the main account's timeout."
    },
    {
     "id": "how-do-i-reset-a-forgotten-password",
     "title": "How do I reset a forgotten password?",
     "text": "You need an SMS phone number on your profile for this. Web users can reset their own password the same way. 1. On the login page, click Forgot your password? in the Buyer Login panel. 2. Enter your Email or Login and click Continue to Next Step. 3. Enter your registered Phone Number and click Send Verification Code. 4. Type the 4-character code from the SMS (\"TCXC verification code is:\u2026\") into Verification Code and click Verify & Reset Password. You'll see \"Recovery email has been sent\". 5. Open the TCXC PASSWORD RECOVERY email and click the link in it. You'll see Password Reset Complete with Your Login and Your New Password (8 random characters). Save the password, then click Go to Login Page. You can recover a password once every 24 hours. \u2190 Back to Login on any recovery step returns you to the login page."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do Wrong Login or Password Check both fields for typos and try again. Please retry in 10 seconds Only one login attempt per network address is accepted every 10 seconds. Wait and try again. On the recovery page the wait is 60 seconds. Enter the text shown below After 3 failed attempts a picture code (CAPTCHA) appears. Type the text from the picture. You have reached the maximum number of password retries, your web access is blocked please contact system admin Your web access is locked. Contact support to unlock it. Send SMS failed: \u2026 The code couldn't be texted to the number on file. Check the number with support@telecomsxchange.com. Invalid SMS Password The code doesn't match. Type the code from the latest SMS. Your account has been blocked. Please contact support@telecomsxchange.com to unblock your account. Too many wrong SMS codes. Email support@telecomsxchange.com. User not found No buyer or web user matches the email or login you typed on the recovery page. Wrong SMS password The recovery code doesn't match. Request a new one. Recovery allowed only once each 24h You already reset your password in the last 24 hours. Try again later. Please contact system administrator to set up your SMS phone number There is no SMS phone number on your profile. Contact support to add one. Incorrect SMS phone number Enter the phone number registered on your profile. Error (on the recovery link) The link has expired or was already used. Start the recovery again."
    },
    {
     "id": "whats-on-the-dashboard",
     "title": "What's on the dashboard?",
     "text": "- Account Summary: your company name and address, your profile picture if you uploaded one, Profile Login with an Edit Preferences link, Last Login (or \"No Login History\" on your first visit), Payment Type (Prepaid), Account Balance with a Top Up link, and your Last Credit Amount, Last Credit Method and Last Credit Date (the last confirmed payment). - Live Calls: how many calls are up right now. View Details opens the live call list. - API Keys: your API Login and API Key (hidden until you click the eye icon), and View API Documentation. If you see \"API access is currently disabled\", turn on Allow API Access in your preferences. See Use the API."
    },
    {
     "id": "how-do-i-find-my-way-around",
     "title": "How do I find my way around?",
     "text": "The left sidebar holds every buyer tool: Menu What you do there Dashboard Overview of balance, live calls and API access Accounts Create SIP, SMPP or IoT accounts and authorize your IPs My Interconnections Routes you've purchased, their tech prefixes and status Market View Search sellers' routes and rates, and purchase Payment History Every top-up and credit Logs CDR (Voice), Calls Stats (Voice), SDR (SMS), IDR (MQTT), Web Access (main user only) eSIMs My eSIMS, Market View, Order History. Shown when the eSIM marketplace is enabled; see Buy and manage eSIMs DIDs Purchased DIDs, Market View, My Back Orders, Subscription Logs Live Calls Calls in progress Routing Route Test, Routing Groups (hidden for Finance-role web users), HLR Lookup Settings Profile & Preferences, Web Users (main user only) Logout sits on its own at the bottom of the sidebar. The top bar holds your messages (envelope, with an unread count up to 99+), your balance (click it for Payment History), the + button (\"Add funds\") and your avatar with your login and the label Buyer (click it for preferences)."
    },
    {
     "id": "how-do-i-switch-between-light-and-dark-mode",
     "title": "How do I switch between light and dark mode?",
     "text": "- In light mode, click the moon icon in the top bar. - In dark mode, click the sun icon. Your browser remembers the choice, so every page, including the login page, opens in that theme. Until you choose, the portal follows your device's setting."
    },
    {
     "id": "what-should-i-do-next",
     "title": "What should I do next?",
     "text": "Follow the guides in order: create your first account, add funds, then find and buy a route in Market View."
    }
   ]
  },
  {
   "slug": "create-your-first-account",
   "section": "buyers",
   "title": "Create your first SIP, SMPP or IoT account",
   "description": "Set up a TelecomsXchange buyer account: pick SIP, SMPP or IoT (MQTT), authorize your IP or a generated login, share a balance and set low-balance alerts.",
   "summary": "Go to Accounts \u2192 Add New Account, pick SIP, SMPP or IoT (MQTT), enter an Account Name, then authorize your system with an IP address, a generated login and password, or both. Choose whose balance it uses and click Add Account. An \"Account added\" card confirms it.",
   "url": "https://help.telecomsxchange.com/buyers/create-your-first-account/",
   "markdown_url": "https://help.telecomsxchange.com/buyers/create-your-first-account.md",
   "updated": "2026-10-21",
   "keywords": [
    "sip account",
    "ip authentication",
    "voip login",
    "sip digest auth",
    "smpp account",
    "smpp system id",
    "smpp rate limit",
    "default routing group",
    "bind status",
    "iot",
    "mqtt",
    "add account",
    "authorize ip",
    "additional allowed ips",
    "cps limit",
    "shared balance",
    "low balance alert",
    "subspace"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "What is the difference between IP authentication and a VoIP login?",
     "a": "With IP authentication, TelecomsXchange recognizes your traffic by the IP address it comes from. With a VoIP login (SIP digest authentication), your switch authenticates with a username and password; a SIP account can use either or both."
    },
    {
     "q": "Can several accounts share one balance?",
     "a": "Yes. In Use Balance of, choose another of your accounts instead of Use Own Balance. Traffic on both accounts is then paid from that account's balance."
    },
    {
     "q": "How do I add more than one IP address to an account?",
     "a": "Open Edit Account and click the (Additional: n) link next to IP Address. On the Additional Allowed IPs page, click Add New IP."
    },
    {
     "q": "Will I be told when an IP is added or removed?",
     "a": "Yes. Each new IP or login triggers an Important Alert email (\"New origination account registered\" or \"New origination IP registered\"), and removing or changing an additional IP sends \"Origination IP address has been removed\", so you can react if you didn't make the change."
    },
    {
     "q": "How many calls per second can one IP send?",
     "a": "Every authorized IP address gets a limit of 10 calls per second. Edit Account shows it as IP CPS Limit; contact support@telecomsxchange.com if you need more."
    },
    {
     "q": "How do I get warned before my balance runs out?",
     "a": "Edit the account and set Notify if balance lower than. When the balance drops below it, you get an Account Low Balance Notification email (headed Low Balance Alert, with a Top up balance button), also sent to your Billing / Accounting Email if set."
    }
   ],
   "text": "How TelecomsXchange recognizes your traffic 1. Your system: Softswitch, SMS platform or IoT device 2. Account (via IP address or login): SIP, SMPP or IoT (MQTT); 10 CPS per IP 3. Balance (via Use Balance of): Its own, or another account's shared balance 4. Purchased routes (via subscribed routes): Carry the traffic the account sends An account is how TelecomsXchange recognizes your traffic: the socket your switch or platform plugs into. You need at least one before you can send a call or an SMS. Which protocol should I choose? Protocol Use it for How it authenticates SIP Voice calls from your softswitch or PBX IP Address, a generated VoIP Login and VoIP Password (SIP digest authentication), or both SMPP Sending SMS from your SMS platform SMPP System Id and SMPP Password (required), plus an optional IP Address IoT (MQTT) Connected devices A generated MQTT Login and MQTT Password (no IP address). The login always starts with your 10-digit customer prefix You can create as many accounts as you like, for example one per switch, customer group or product. For what to do with an IoT account afterwards, see IoT messaging over MQTT. How do I create an account? 1. Click Accounts in the sidebar. You'll see your accounts with their Protocol, Name, Capacity (for SMPP accounts, the rate limit), Balance, Account Status and Bind Status. Bind Status applies to SMPP accounts only: ONLINE or OFFLINE, and clicking it opens the bind log. 2. Click Add New Account. 3. Under Protocol Type, choose SIP, SMPP or IoT (MQTT). 4. Enter an Account Name. It must be different from your other account names. 5. Authorize your system (the fields depend on the protocol, see the table above): - SIP: enter the IP Address your switch sends from (a plain address like 203.0.113.10), and/or click Add Voip Login/Password to get a generated login and password. - SMPP: a SMPP System Id and SMPP Password are filled in for you. Keep them or type your own. The IP Address is optional. - IoT (MQTT): the MQTT Login and MQTT Password are generated for you. The login begins with your 10-digit customer prefix; if you edit it, keep the prefix. Click Generate New for a fresh login and password. 6. In Use Balance of, choose Use Own Balance, or another account to share its balance. 7. SIP only: tick Subscribe to all purchased routes to add every route you've already bought to this account, with the same ASR and ACD alert settings as your existing accounts. 8. Click Add Account. You'll see an Account added card: \"name is ready\". Click View All Accounts to go to the list, Open Account Settings to edit the new account, or stay on the form to add another one. For SIP and SMPP accounts, an Important Alert! email (\"New origination account registered\") confirms the new IP address and login. If you get an Important Alert email for a change you didn't make, contact support@telecomsxchange.com right away. Someone else may be using your account, which can cost you money. What if something goes wrong? You see What to do You have to specify IP Address or voip_login or both SIP accounts need an IP address, a VoIP login, or both. IP should be IP address, say 1.2.3.4 Enter a plain IP address, without a port or hostname. On Edit Account the message reads \"IP should be either IP address, say 1.2.3.4 or host:port like 1.2.3.4:5060\", and host:port is accepted there. IP is not unique Another account already uses this IP with IP-only authentication. Add a VoIP login, or use a different IP. This IP address is already being authenticated Another SIP account already uses this IP. Add a VoIP login, or use a different IP. The IP is already used up Same as above, on the Additional Allowed IPs page. Name is not unique, choose another name Pick a different Account Name. Empty name not allowed Enter an Account Name. voip_login is not unique, choose another voip_login Another account already uses this login. Click Generate New or type a different one. Empty SMPP system Id not allowed Enter an SMPP System Id. Wrong Prefix for login An IoT login must start with your 10-digit customer prefix. Click Generate New to get a valid one. This Login is not unique Another IoT account already uses this login. Generate a new one. 'notification_balance' parameter expects numeric Enter a plain number in Notify if balance lower than, for example 50. rouing group not found The Default Routing Group you chose no longer exists. Pick another or NOT SET. How do I change an account later? On Accounts, open the account's three-dot Actions menu and choose Edit Account. The page shows the read-only Account ID (#N, the number the API uses). From there you can: - rename it or change its IP Address, - add more IPs: click (Additional: n) next to IP Address (see below), - add a SIP login: click Add SIP Digest Auth. The VoIP Login and VoIP Password fields appear with generated values; click Generate VoIP Credentials for a new pair, or Remove SIP Digest Auth to go back to IP-only authentication. IoT accounts have Generate IoT Credentials instead, - SMPP only: set the SMPP Rate Limit (req/sec) your platform may send, and a Default Routing Group for messages that don't match a purchased route directly (NOT SET (Use direct route from purchased routes) or one of your routing groups), - tick Block this account to stop it making or receiving calls, - tick Enable Subspace (SIP and SMPP) if you send traffic through the Subspace network. The confirmation reads \"Success! Subspace Network is enabled for this account. The IP authentication will use the value of the special subspace header as remote ip to authenticate your account\", - change Use Balance; each option shows the account's balance, and the Balance Information card shows the Available Balance, or Using Parent Balance and Own Balance when the account shares another one, - set Notify if balance lower than to get low-balance emails (shown when the account uses its own balance), - see the IP CPS Limit (SIP with an IP address). Every authorized IP gets 10 calls per second; the field is read-only, so contact support to change it, - see the account's Purchased Routes with Seller (or Anonymous), Route, Status (OK, Blocked by user or Blocked by seller) and Tech Prefix, and download each route's rates in Default, Cloud Softswitch or Sippy format. On an SMPP account, one route carries the Default Route badge; click Make Default on another to switch, - IoT only: copy the mosquitto_pub Usage Sample, a ready-made test command using your login, password and port 1888. Click Update Account to save. You'll see \"Account updated successfully\". Changing the IP address or login sends a new Important Alert email. To see blocked accounts in the list, click Show Blocked on Accounts. How do I authorize more IP addresses? 1. On Edit Account, click (Additional: n) next to IP Address. The Additional Allowed IPs page lists each extra IP with its IP Address, Timestamp and Actions (Edit, Delete). 2. Click Add New IP, enter the address and save. You'll see \"IP has been added\" with a Proceed link back to the list. Editing an address shows \"IP Address has been updated\"; deleting one shows \"IP Address has been deleted\". Each change sends an email: \"New origination IP registered\" for an added or changed IP and \"Origination IP address has been removed\" for a removed or replaced one. New IPs get the same 10 calls-per-second limit as the main address. Next: add funds to your balance.",
   "sections": [
    {
     "id": "which-protocol-should-i-choose",
     "title": "Which protocol should I choose?",
     "text": "Protocol Use it for How it authenticates SIP Voice calls from your softswitch or PBX IP Address, a generated VoIP Login and VoIP Password (SIP digest authentication), or both SMPP Sending SMS from your SMS platform SMPP System Id and SMPP Password (required), plus an optional IP Address IoT (MQTT) Connected devices A generated MQTT Login and MQTT Password (no IP address). The login always starts with your 10-digit customer prefix You can create as many accounts as you like, for example one per switch, customer group or product. For what to do with an IoT account afterwards, see IoT messaging over MQTT."
    },
    {
     "id": "how-do-i-create-an-account",
     "title": "How do I create an account?",
     "text": "1. Click Accounts in the sidebar. You'll see your accounts with their Protocol, Name, Capacity (for SMPP accounts, the rate limit), Balance, Account Status and Bind Status. Bind Status applies to SMPP accounts only: ONLINE or OFFLINE, and clicking it opens the bind log. 2. Click Add New Account. 3. Under Protocol Type, choose SIP, SMPP or IoT (MQTT). 4. Enter an Account Name. It must be different from your other account names. 5. Authorize your system (the fields depend on the protocol, see the table above): - SIP: enter the IP Address your switch sends from (a plain address like 203.0.113.10), and/or click Add Voip Login/Password to get a generated login and password. - SMPP: a SMPP System Id and SMPP Password are filled in for you. Keep them or type your own. The IP Address is optional. - IoT (MQTT): the MQTT Login and MQTT Password are generated for you. The login begins with your 10-digit customer prefix; if you edit it, keep the prefix. Click Generate New for a fresh login and password. 6. In Use Balance of, choose Use Own Balance, or another account to share its balance. 7. SIP only: tick Subscribe to all purchased routes to add every route you've already bought to this account, with the same ASR and ACD alert settings as your existing accounts. 8. Click Add Account. You'll see an Account added card: \"name is ready\". Click View All Accounts to go to the list, Open Account Settings to edit the new account, or stay on the form to add another one. For SIP and SMPP accounts, an Important Alert! email (\"New origination account registered\") confirms the new IP address and login. If you get an Important Alert email for a change you didn't make, contact support@telecomsxchange.com right away. Someone else may be using your account, which can cost you money."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do You have to specify IP Address or voip_login or both SIP accounts need an IP address, a VoIP login, or both. IP should be IP address, say 1.2.3.4 Enter a plain IP address, without a port or hostname. On Edit Account the message reads \"IP should be either IP address, say 1.2.3.4 or host:port like 1.2.3.4:5060\", and host:port is accepted there. IP is not unique Another account already uses this IP with IP-only authentication. Add a VoIP login, or use a different IP. This IP address is already being authenticated Another SIP account already uses this IP. Add a VoIP login, or use a different IP. The IP is already used up Same as above, on the Additional Allowed IPs page. Name is not unique, choose another name Pick a different Account Name. Empty name not allowed Enter an Account Name. voip_login is not unique, choose another voip_login Another account already uses this login. Click Generate New or type a different one. Empty SMPP system Id not allowed Enter an SMPP System Id. Wrong Prefix for login An IoT login must start with your 10-digit customer prefix. Click Generate New to get a valid one. This Login is not unique Another IoT account already uses this login. Generate a new one. 'notification_balance' parameter expects numeric Enter a plain number in Notify if balance lower than, for example 50. rouing group not found The Default Routing Group you chose no longer exists. Pick another or NOT SET."
    },
    {
     "id": "how-do-i-change-an-account-later",
     "title": "How do I change an account later?",
     "text": "On Accounts, open the account's three-dot Actions menu and choose Edit Account. The page shows the read-only Account ID (#N, the number the API uses). From there you can: - rename it or change its IP Address, - add more IPs: click (Additional: n) next to IP Address (see below), - add a SIP login: click Add SIP Digest Auth. The VoIP Login and VoIP Password fields appear with generated values; click Generate VoIP Credentials for a new pair, or Remove SIP Digest Auth to go back to IP-only authentication. IoT accounts have Generate IoT Credentials instead, - SMPP only: set the SMPP Rate Limit (req/sec) your platform may send, and a Default Routing Group for messages that don't match a purchased route directly (NOT SET (Use direct route from purchased routes) or one of your routing groups), - tick Block this account to stop it making or receiving calls, - tick Enable Subspace (SIP and SMPP) if you send traffic through the Subspace network. The confirmation reads \"Success! Subspace Network is enabled for this account. The IP authentication will use the value of the special subspace header as remote ip to authenticate your account\", - change Use Balance; each option shows the account's balance, and the Balance Information card shows the Available Balance, or Using Parent Balance and Own Balance when the account shares another one, - set Notify if balance lower than to get low-balance emails (shown when the account uses its own balance), - see the IP CPS Limit (SIP with an IP address). Every authorized IP gets 10 calls per second; the field is read-only, so contact support to change it, - see the account's Purchased Routes with Seller (or Anonymous), Route, Status (OK, Blocked by user or Blocked by seller) and Tech Prefix, and download each route's rates in Default, Cloud Softswitch or Sippy format. On an SMPP account, one route carries the Default Route badge; click Make Default on another to switch, - IoT only: copy the mosquitto_pub Usage Sample, a ready-made test command using your login, password and port 1888. Click Update Account to save. You'll see \"Account updated successfully\". Changing the IP address or login sends a new Important Alert email. To see blocked accounts in the list, click Show Blocked on Accounts."
    },
    {
     "id": "how-do-i-authorize-more-ip-addresses",
     "title": "How do I authorize more IP addresses?",
     "text": "1. On Edit Account, click (Additional: n) next to IP Address. The Additional Allowed IPs page lists each extra IP with its IP Address, Timestamp and Actions (Edit, Delete). 2. Click Add New IP, enter the address and save. You'll see \"IP has been added\" with a Proceed link back to the list. Editing an address shows \"IP Address has been updated\"; deleting one shows \"IP Address has been deleted\". Each change sends an email: \"New origination IP registered\" for an added or changed IP and \"Origination IP address has been removed\" for a removed or replaced one. New IPs get the same 10 calls-per-second limit as the main address. Next: add funds to your balance."
    }
   ]
  },
  {
   "slug": "add-funds",
   "section": "buyers",
   "title": "Add funds: top up by card, PayPal or wire",
   "description": "Top up your TelecomsXchange prepaid balance by card (Stripe), PayPal, bank wire or Interac e-Transfer, see each fee, set auto-recharge and low-balance alerts, and check payments.",
   "summary": "Click the + next to your balance, choose Credit / Debit Card, PayPal or Wire Transfer and click Confirm Payment Method. Pick the account and amount, then pay. Card and PayPal top-ups are credited after payment; wires and Interac e-Transfers usually within 1\u20133 business days.",
   "url": "https://help.telecomsxchange.com/buyers/add-funds/",
   "markdown_url": "https://help.telecomsxchange.com/buyers/add-funds.md",
   "updated": "2026-10-21",
   "keywords": [
    "top up",
    "add funds",
    "balance",
    "credit card",
    "debit card",
    "stripe",
    "paypal",
    "wire transfer",
    "bank transfer",
    "interac",
    "e-transfer",
    "auto-recharge",
    "low balance alert",
    "payment history",
    "processing fee"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Which payment methods can I use to top up?",
     "a": "Credit or debit card (processed by Stripe), PayPal and bank wire transfer; Canadian customers can also send an Interac e-Transfer. Card or PayPal may be turned off for your company; if a method you need is missing, contact finance@telecomsxchange.com."
    },
    {
     "q": "Are there fees for card or PayPal top-ups?",
     "a": "Card top-ups cost 3.9% + $0.30 and PayPal top-ups cost 4.85% + $0.30 (the PayPal page says 4.99%, but 4.85% is what is charged). The fee is taken from the credited account and shows as its own line in Payment History."
    },
    {
     "q": "How long does a wire transfer take?",
     "a": "Funds are typically credited within 1\u20133 business days of receipt. Put your username in the wire's payment reference so finance can match it."
    },
    {
     "q": "Can I pay by Interac e-Transfer?",
     "a": "Yes, if you bank in Canada. Send the e-Transfer to info@telecomsxchange.com with your buyer username as the message, then email the receipt and your username to support@telecomsxchange.com. The details are on the Wire Transfer page."
    },
    {
     "q": "Can my balance recharge automatically?",
     "a": "If recurring billing is enabled for your company, the card page shows Auto-Recharge. Choose Recurring and set When Account Balance Goes Below; your saved card is charged the same amount each time the balance drops below it."
    },
    {
     "q": "How do low-balance alerts work?",
     "a": "Set Notify if balance lower than on an account that uses its own balance. When the balance drops below it, you get one Account Low Balance Notification email; the alert re-arms once the balance goes back above that amount."
    }
   ],
   "text": "How a top-up becomes call credit 1. Your payment: Card, PayPal, wire or Interac e-Transfer 2. TelecomsXchange (via Add Funds): Credits it, then deducts any processing fee 3. Account balance (via credited): Prepaid funds, with an optional low-balance alert 4. Your traffic (via spent per use): Calls and messages paid as they happen TelecomsXchange buyer accounts are prepaid: calls and messages are paid from your balance as they happen. Keep the balance topped up and your traffic keeps flowing. How do I start a top-up? 1. Open Add Funds in one of these ways: - click the + next to your balance in the top bar, - click Top Up next to Account Balance on the Dashboard, - on Accounts, open an account's three-dot Actions menu and choose Top Up Balance. 2. Under Choose Payment Method, select Credit / Debit Card, PayPal or Wire Transfer. 3. Click Confirm Payment Method. You'll see the page for the method you chose. Only accounts that use their own balance can be topped up; accounts that share another account's balance are funded through that account. How do I pay by credit or debit card? 1. Enter the Amount (USD) (at least $1). 2. Pick the Account to credit. 3. If you see Auto-Recharge, choose One Time, or Recurring and set When Account Balance Goes Below (see below). 4. Click Proceed to Payment and complete the card form. The amount is added to the account after the payment goes through. A processing fee of 3.9% + $0.30 is then taken from the same account and shows as Stripe transaction fee lines in Payment History. Auto-Recharge appears only if recurring billing is enabled for your company. With Recurring, the card form also asks for the cardholder's name, street address, city, country and state, and your card is saved and charged the same amount whenever the account's balance drops below the threshold (50.00 by default). The account then shows Auto $amount@$threshold in the Accounts list; click off next to it to stop auto-recharge. How do I pay with PayPal? 1. Pick the Account to Top Up. 2. Enter the Amount (USD) (minimum $1.00). 3. Click the Pay with PayPal button and confirm the payment in PayPal. The amount is added after PayPal confirms the payment. A processing fee of 4.85% + $0.30 is then taken from the same account as a PayPal transaction fee line. The page's PayPal Express Information box shows \"Processing Fee: 4.99% + $0.30\"; the lower figure, 4.85%, is what is actually charged. The page also lists PayPal's verification requirements: a government-issued photo ID and a utility bill for each new PayPal account. Each company has a maximum amount for card and PayPal top-ups, even though the PayPal page says \"No limit on the amount for fully verified accounts\". Above it, you'll see \"Max Amount allowed is \u2026\" with your limit. How do I pay by wire transfer? 1. Choose Wire Transfer and click Confirm Payment Method. 2. Copy your reference under Add this reference to your wire description (it's your username). Click Copy to copy it. 3. At your bank, send the wire in USD to the Beneficiary & Bank Details shown on the page, with the reference in the payment reference or description field. Each row has its own Copy button, and Copy all details copies the whole block for your bank's transfer form. The beneficiary is TELECOMSXCHANGE CANADA INC. at TD Canada Trust (SWIFT/BIC TDOMCATTTOR); the account number and both addresses are on the page. Funds are typically credited within 1\u20133 business days of receipt. Questions go to finance@telecomsxchange.com. Choose a different method at the bottom takes you back to the payment method choice. Always include your reference. Wires sent without it take longer to credit. Canadian customers: Interac e-Transfer If you bank in Canada you can skip the wire and send an Interac e-Transfer instead. The details are under Canadian customers: Interac e-Transfer on the Wire Transfer page: 1. From your Canadian bank, send an Interac e-Transfer to info@telecomsxchange.com (TelecomsXchange's registered Interac receiver) and put your buyer username in the Message. 2. Email your receipt and buyer username to support@telecomsxchange.com. The funds are added to your account as soon as possible. How do I get warned before my balance runs low? 1. Go to Accounts, open the account's Actions menu and choose Edit Account. 2. Enter an amount in Notify if balance lower than. The field appears only on accounts that use their own balance. 3. Click Update Account. When the balance drops below that amount, you receive one Account Low Balance Notification email, headed Low Balance Alert, with the current balance, the alert threshold and a Top up balance button. You get another only after the balance has gone back above the amount and dropped again. Add your finance team under Billing / Accounting Email in Settings \u2192 Profile & Preferences. Low-balance emails go there too. Separate several addresses with commas. Where can I see all my payments? Open Payment History in the sidebar, or click your balance in the top bar. It lists every top-up and fee with its Payment Method, Account, Amount (fees and other debits in red), Currency, Date, Status (Pending, Success or Declined) and Notes. A transfer from a seller's payout to your buyer account appears as Manual Payment with the note \"Vendor payout to TCXC Buyer Account\". The list opens on the last 24 hours. To see more, set From Date and To Date, optionally with Payment Method (Manual Payment, PayPal, Bank Transfer, Cashu or Stripe), Amount or Notes Search, and click Search Transactions. Clear Filters goes back to the default view. Click Download N Entries to save the list as Payment_Transactions_History_<from>_<to>.csv with the columns Method, Account, Amount, Currency, Date, Status and Notes. What if something goes wrong? You see What to do Max Amount allowed is N Your company's card or PayPal limit is N dollars per top-up. Enter a smaller amount, or pay by wire. Pending in Payment History The payment has not been confirmed yet. Card and PayPal payments confirm within minutes; wires once finance receives them. desclined in Payment History (shown as plain text) An auto-recharge card charge failed. Notes holds the card processor's response; check the card and top up manually. Next: find and buy a route in Market View.",
   "sections": [
    {
     "id": "how-do-i-start-a-top-up",
     "title": "How do I start a top-up?",
     "text": "1. Open Add Funds in one of these ways: - click the + next to your balance in the top bar, - click Top Up next to Account Balance on the Dashboard, - on Accounts, open an account's three-dot Actions menu and choose Top Up Balance. 2. Under Choose Payment Method, select Credit / Debit Card, PayPal or Wire Transfer. 3. Click Confirm Payment Method. You'll see the page for the method you chose. Only accounts that use their own balance can be topped up; accounts that share another account's balance are funded through that account."
    },
    {
     "id": "how-do-i-pay-by-credit-or-debit-card",
     "title": "How do I pay by credit or debit card?",
     "text": "1. Enter the Amount (USD) (at least $1). 2. Pick the Account to credit. 3. If you see Auto-Recharge, choose One Time, or Recurring and set When Account Balance Goes Below (see below). 4. Click Proceed to Payment and complete the card form. The amount is added to the account after the payment goes through. A processing fee of 3.9% + $0.30 is then taken from the same account and shows as Stripe transaction fee lines in Payment History. Auto-Recharge appears only if recurring billing is enabled for your company. With Recurring, the card form also asks for the cardholder's name, street address, city, country and state, and your card is saved and charged the same amount whenever the account's balance drops below the threshold (50.00 by default). The account then shows Auto $amount@$threshold in the Accounts list; click off next to it to stop auto-recharge."
    },
    {
     "id": "how-do-i-pay-with-paypal",
     "title": "How do I pay with PayPal?",
     "text": "1. Pick the Account to Top Up. 2. Enter the Amount (USD) (minimum $1.00). 3. Click the Pay with PayPal button and confirm the payment in PayPal. The amount is added after PayPal confirms the payment. A processing fee of 4.85% + $0.30 is then taken from the same account as a PayPal transaction fee line. The page's PayPal Express Information box shows \"Processing Fee: 4.99% + $0.30\"; the lower figure, 4.85%, is what is actually charged. The page also lists PayPal's verification requirements: a government-issued photo ID and a utility bill for each new PayPal account. Each company has a maximum amount for card and PayPal top-ups, even though the PayPal page says \"No limit on the amount for fully verified accounts\". Above it, you'll see \"Max Amount allowed is \u2026\" with your limit."
    },
    {
     "id": "how-do-i-pay-by-wire-transfer",
     "title": "How do I pay by wire transfer?",
     "text": "1. Choose Wire Transfer and click Confirm Payment Method. 2. Copy your reference under Add this reference to your wire description (it's your username). Click Copy to copy it. 3. At your bank, send the wire in USD to the Beneficiary & Bank Details shown on the page, with the reference in the payment reference or description field. Each row has its own Copy button, and Copy all details copies the whole block for your bank's transfer form. The beneficiary is TELECOMSXCHANGE CANADA INC. at TD Canada Trust (SWIFT/BIC TDOMCATTTOR); the account number and both addresses are on the page. Funds are typically credited within 1\u20133 business days of receipt. Questions go to finance@telecomsxchange.com. Choose a different method at the bottom takes you back to the payment method choice. Always include your reference. Wires sent without it take longer to credit. Canadian customers: Interac e-Transfer If you bank in Canada you can skip the wire and send an Interac e-Transfer instead. The details are under Canadian customers: Interac e-Transfer on the Wire Transfer page: 1. From your Canadian bank, send an Interac e-Transfer to info@telecomsxchange.com (TelecomsXchange's registered Interac receiver) and put your buyer username in the Message. 2. Email your receipt and buyer username to support@telecomsxchange.com. The funds are added to your account as soon as possible."
    },
    {
     "id": "how-do-i-get-warned-before-my-balance-runs-low",
     "title": "How do I get warned before my balance runs low?",
     "text": "1. Go to Accounts, open the account's Actions menu and choose Edit Account. 2. Enter an amount in Notify if balance lower than. The field appears only on accounts that use their own balance. 3. Click Update Account. When the balance drops below that amount, you receive one Account Low Balance Notification email, headed Low Balance Alert, with the current balance, the alert threshold and a Top up balance button. You get another only after the balance has gone back above the amount and dropped again. Add your finance team under Billing / Accounting Email in Settings \u2192 Profile & Preferences. Low-balance emails go there too. Separate several addresses with commas."
    },
    {
     "id": "where-can-i-see-all-my-payments",
     "title": "Where can I see all my payments?",
     "text": "Open Payment History in the sidebar, or click your balance in the top bar. It lists every top-up and fee with its Payment Method, Account, Amount (fees and other debits in red), Currency, Date, Status (Pending, Success or Declined) and Notes. A transfer from a seller's payout to your buyer account appears as Manual Payment with the note \"Vendor payout to TCXC Buyer Account\". The list opens on the last 24 hours. To see more, set From Date and To Date, optionally with Payment Method (Manual Payment, PayPal, Bank Transfer, Cashu or Stripe), Amount or Notes Search, and click Search Transactions. Clear Filters goes back to the default view. Click Download N Entries to save the list as Payment_Transactions_History_<from>_<to>.csv with the columns Method, Account, Amount, Currency, Date, Status and Notes."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do Max Amount allowed is N Your company's card or PayPal limit is N dollars per top-up. Enter a smaller amount, or pay by wire. Pending in Payment History The payment has not been confirmed yet. Card and PayPal payments confirm within minutes; wires once finance receives them. desclined in Payment History (shown as plain text) An auto-recharge card charge failed. Notes holds the card processor's response; check the card and top up manually. Next: find and buy a route in Market View."
    }
   ]
  },
  {
   "slug": "find-and-buy-routes",
   "section": "buyers",
   "title": "Find and buy routes in Market View",
   "description": "Search TelecomsXchange Market View for voice and SMS routes by country, prefix, seller and price, compare quality (ASR, ACD) and buy a route in a few clicks.",
   "summary": "Open Market View, choose Voice Market or SMS Market, search by country, prefix, seller or description and compare the routes; prices already include the platform commission. Click Purchase, pick All Accounts or one account and click Confirm Purchase. You then pay per call or message from your balance.",
   "url": "https://help.telecomsxchange.com/buyers/find-and-buy-routes/",
   "markdown_url": "https://help.telecomsxchange.com/buyers/find-and-buy-routes.md",
   "updated": "2026-10-21",
   "keywords": [
    "market view",
    "buy route",
    "purchase route",
    "voice termination",
    "sms route",
    "cli",
    "non-cli",
    "tdm",
    "asr",
    "acd",
    "rates",
    "commission",
    "tech prefix",
    "download rates",
    "route_lookup.csv",
    "interconnection",
    "default sms route"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Do I pay anything when I purchase a route?",
     "a": "No. Purchasing creates an interconnection between your account and the seller's route. You pay per call or message, at the route's rate, from your prepaid balance."
    },
    {
     "q": "Does the price in Market View include the platform commission?",
     "a": "Yes. Every price shown, in the results, the route details and the downloaded CSV, already includes the TelecomsXchange commission (3% unless your company has its own rate), so it is the rate you will be billed."
    },
    {
     "q": "What do CLI, Non-CLI and TDM mean?",
     "a": "They are route types set by the seller. CLI routes deliver your caller ID to the called party, Non-CLI routes don't guarantee it, and TDM routes terminate over traditional TDM networks."
    },
    {
     "q": "What are ASR and ACD?",
     "a": "ASR (Answer-Seizure Ratio) is the percentage of calls that get answered. ACD (Average Call Duration) is the average length of answered calls; Market View shows daily and weekly values once there is enough traffic."
    },
    {
     "q": "Why do I get 'At least one of Search Criterias Prefix/Country/Description/Seller is mandatory'?",
     "a": "Market View needs at least one of Prefix, Country, Description or Seller before it can search. Fill one in and click Search Routes again."
    },
    {
     "q": "What does Anonymous mean as a seller name?",
     "a": "The seller has chosen to sell anonymously. You can still purchase the route, and clicking Anonymous lets you message the seller through the platform. Searching by Seller never returns anonymous routes."
    }
   ],
   "text": "From market search to interconnection 1. Market View: Sellers' routes, prices include the commission 2. Route details (via Search Routes): ASR, ACD, capacity and seller rating 3. Interconnection (via Confirm Purchase): Free to create; billed per call or message 4. Your inbox (via minutes later): Rate sheet and technical details by email Market View is the TelecomsXchange marketplace: every seller's routes and current prices in one searchable table. Find a route, compare it, and buy it in a few clicks. How do I search for routes? 1. Click Market View in the sidebar. 2. Under I'm looking for.., choose Voice Market or SMS Market. 3. Fill in at least one of Country, Prefix, Description or Seller. 4. Optional: narrow the search with Route (the list fills in once you've entered a Seller), Min Price (USD), Max Price (USD) and, for voice, Route Type. 5. Click Search Routes. You'll see how many routes were found, with the results table below: 10 per page, with \"(showing X - Y)\" and page links at the bottom. Results are sorted by weekly ASR, best first. Clear Filters empties the form, and Hide filters / Show filters folds it away so the table has more room. Route Type starts on CLI, so a voice search shows CLI routes unless you change it. To see every type, choose All Types before you click Search Routes. Searching by Seller shows only that seller's public, non-anonymous routes. Routes a seller offers privately appear only if the seller has allowed your login. Prefix is the most precise search. For North America, enter 1 followed by at least the 3-digit area code (for example 1416). Market View won't search on 1 alone. How do I read the results? Each row is one seller route for one destination prefix: Column What it tells you Prefix The number range the price applies to Destination The country and network Price Price per minute (voice) or per SMS, including the platform commission (3%, or your company's own rate), so it is what you'll be billed. Two prices (first / next) mean the first increment is priced differently from the rest. For voice, [1/1] is the billing interval in seconds: first increment / next increments MCC/MNC Mobile network codes (SMS Market only) Seller Who sells it. Click the name for the seller's profile, or Anonymous to message an anonymous seller Route The seller's route name Capacity Maximum simultaneous calls: Unlimited or a number of channels (N ch). Voice only Type The route type, for example CLI, TDM or Non-CLI Min Price and Max Price filter on the same commission-inclusive price you see in the table. A Price change scheduled badge under a price warns you that the rate is about to change. Click the info icon in a row (on a phone it opens as a Route details sheet) to compare quality before you buy: Effective date, Daily ASR, Weekly ASR, Daily ACD, Weekly ACD and Daily Minutes (voice), plus the seller's Rating (or No reviews yet), Reviews, Earnings and Member Since date. ASR turns red below 20% and ACD, shown in minutes, turns red below 2 minutes. A new route shows No Data Available until it has carried enough traffic. To get the whole result in a file, click Download All N Rates. The file is route_lookup.csv with the columns Country, Description, Prefix (SMS: plus MCCMNC), Effective from, Seller, Route, Capacity, Price 1, Price N, Interval 1, Interval N, last day and week ASR, ACD and minutes, and the time the statistics were calculated. Rates scheduled for a future date are included as extra rows with their own Effective from date. How do I purchase a route? 1. Click Purchase on the row you want. 2. On Confirm Route Purchase, check the Route Information: Seller (or Anonymous Seller), Route Name, Tech Prefix and Route Type (Voice Route or SMS Route). 3. Under Select Account, choose All Accounts or one account. Voice routes list your SIP accounts; SMS routes list your SMPP accounts. Each option shows the account's balance, for example \"Balance: $50.00 USD\" or \"Using $50.00 of MAIN Own: $0.00\". IoT accounts can't buy routes. 4. If you see Terms and Conditions (for example \"Minimum ASR 20 %\" or \"Only Retail traffic accepted\"), read them and tick I agree with the terms and conditions of the seller. 5. Click Confirm Purchase, or Return to Market to go back without buying. All Accounts adds the route to every matching account that doesn't have it yet. The first SMS route you buy on an SMPP account becomes that account's Default Route; you can change it later on Edit Account. You'll see Purchase Successful: \"Your route has been activated\". Under What Happens Next: - the seller's rate sheet is sent to your rates email address, - the technical details (configuration) are sent to your primary account email, - you can configure the route's settings in your account. The Purchased Route Confirmation email (\"You're Interconnected!\") is sent by a scheduled job a few minutes after the purchase, with the host, port, tech prefix, protocol and the full price list attached. Add rates@telecomsxchange.com to your email allow-list. Future rate updates come from that address whenever the seller uploads new rates. Click Configure Route Now to set ASR and ACD alerts for the new route, then send your first call. Seller terms are enforced automatically. If your daily traffic breaks a seller's minimum ASR, minimum ACD or retail-only rule, your traffic on that route is blocked. What if something goes wrong? You see What to do At least one of Search Criterias Prefix/Country/Description/Seller is mandatory. Fill in Country, Prefix, Description or Seller. Prefix 1 should be followed by at least 3 digit area code. Enter 1 plus the area code, for example 1416. The prefix must be only numbers. Remove spaces, + and other characters from the prefix. The country must be only characters. / The description must be only characters. Type a name with letters, not just digits or symbols. The term 'SELECT' cannot be used in your search. The words SELECT, DELETE and UPDATE aren't allowed in Country or Description. Rephrase. Seller Not Found Enter the seller's login exactly, or leave Seller empty. Anonymous sellers can't be searched by name. Country Not Found Check the spelling of the country name. Error! You have to agree to seller terms and conditions to purchase the route. Tick I agree with the terms and conditions of the seller. Error! Choose another account or route, this route is already purchased for this account. That account already has this route. Pick another account. Error! Seller has blocked one of your accounts on this route, you can not purchase it until it gets unblocked. Message the seller and ask them to unblock your account. Error! Private route. The seller offers this route privately to selected buyers only.",
   "sections": [
    {
     "id": "how-do-i-search-for-routes",
     "title": "How do I search for routes?",
     "text": "1. Click Market View in the sidebar. 2. Under I'm looking for.., choose Voice Market or SMS Market. 3. Fill in at least one of Country, Prefix, Description or Seller. 4. Optional: narrow the search with Route (the list fills in once you've entered a Seller), Min Price (USD), Max Price (USD) and, for voice, Route Type. 5. Click Search Routes. You'll see how many routes were found, with the results table below: 10 per page, with \"(showing X - Y)\" and page links at the bottom. Results are sorted by weekly ASR, best first. Clear Filters empties the form, and Hide filters / Show filters folds it away so the table has more room. Route Type starts on CLI, so a voice search shows CLI routes unless you change it. To see every type, choose All Types before you click Search Routes. Searching by Seller shows only that seller's public, non-anonymous routes. Routes a seller offers privately appear only if the seller has allowed your login. Prefix is the most precise search. For North America, enter 1 followed by at least the 3-digit area code (for example 1416). Market View won't search on 1 alone."
    },
    {
     "id": "how-do-i-read-the-results",
     "title": "How do I read the results?",
     "text": "Each row is one seller route for one destination prefix: Column What it tells you Prefix The number range the price applies to Destination The country and network Price Price per minute (voice) or per SMS, including the platform commission (3%, or your company's own rate), so it is what you'll be billed. Two prices (first / next) mean the first increment is priced differently from the rest. For voice, [1/1] is the billing interval in seconds: first increment / next increments MCC/MNC Mobile network codes (SMS Market only) Seller Who sells it. Click the name for the seller's profile, or Anonymous to message an anonymous seller Route The seller's route name Capacity Maximum simultaneous calls: Unlimited or a number of channels (N ch). Voice only Type The route type, for example CLI, TDM or Non-CLI Min Price and Max Price filter on the same commission-inclusive price you see in the table. A Price change scheduled badge under a price warns you that the rate is about to change. Click the info icon in a row (on a phone it opens as a Route details sheet) to compare quality before you buy: Effective date, Daily ASR, Weekly ASR, Daily ACD, Weekly ACD and Daily Minutes (voice), plus the seller's Rating (or No reviews yet), Reviews, Earnings and Member Since date. ASR turns red below 20% and ACD, shown in minutes, turns red below 2 minutes. A new route shows No Data Available until it has carried enough traffic. To get the whole result in a file, click Download All N Rates. The file is route_lookup.csv with the columns Country, Description, Prefix (SMS: plus MCCMNC), Effective from, Seller, Route, Capacity, Price 1, Price N, Interval 1, Interval N, last day and week ASR, ACD and minutes, and the time the statistics were calculated. Rates scheduled for a future date are included as extra rows with their own Effective from date."
    },
    {
     "id": "how-do-i-purchase-a-route",
     "title": "How do I purchase a route?",
     "text": "1. Click Purchase on the row you want. 2. On Confirm Route Purchase, check the Route Information: Seller (or Anonymous Seller), Route Name, Tech Prefix and Route Type (Voice Route or SMS Route). 3. Under Select Account, choose All Accounts or one account. Voice routes list your SIP accounts; SMS routes list your SMPP accounts. Each option shows the account's balance, for example \"Balance: $50.00 USD\" or \"Using $50.00 of MAIN Own: $0.00\". IoT accounts can't buy routes. 4. If you see Terms and Conditions (for example \"Minimum ASR 20 %\" or \"Only Retail traffic accepted\"), read them and tick I agree with the terms and conditions of the seller. 5. Click Confirm Purchase, or Return to Market to go back without buying. All Accounts adds the route to every matching account that doesn't have it yet. The first SMS route you buy on an SMPP account becomes that account's Default Route; you can change it later on Edit Account. You'll see Purchase Successful: \"Your route has been activated\". Under What Happens Next: - the seller's rate sheet is sent to your rates email address, - the technical details (configuration) are sent to your primary account email, - you can configure the route's settings in your account. The Purchased Route Confirmation email (\"You're Interconnected!\") is sent by a scheduled job a few minutes after the purchase, with the host, port, tech prefix, protocol and the full price list attached. Add rates@telecomsxchange.com to your email allow-list. Future rate updates come from that address whenever the seller uploads new rates. Click Configure Route Now to set ASR and ACD alerts for the new route, then send your first call. Seller terms are enforced automatically. If your daily traffic breaks a seller's minimum ASR, minimum ACD or retail-only rule, your traffic on that route is blocked."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do At least one of Search Criterias Prefix/Country/Description/Seller is mandatory. Fill in Country, Prefix, Description or Seller. Prefix 1 should be followed by at least 3 digit area code. Enter 1 plus the area code, for example 1416. The prefix must be only numbers. Remove spaces, + and other characters from the prefix. The country must be only characters. / The description must be only characters. Type a name with letters, not just digits or symbols. The term 'SELECT' cannot be used in your search. The words SELECT, DELETE and UPDATE aren't allowed in Country or Description. Rephrase. Seller Not Found Enter the seller's login exactly, or leave Seller empty. Anonymous sellers can't be searched by name. Country Not Found Check the spelling of the country name. Error! You have to agree to seller terms and conditions to purchase the route. Tick I agree with the terms and conditions of the seller. Error! Choose another account or route, this route is already purchased for this account. That account already has this route. Pick another account. Error! Seller has blocked one of your accounts on this route, you can not purchase it until it gets unblocked. Message the seller and ask them to unblock your account. Error! Private route. The seller offers this route privately to selected buyers only."
    }
   ]
  },
  {
   "slug": "send-your-first-call",
   "section": "buyers",
   "title": "Send your first call with a tech prefix",
   "description": "Send voice traffic over a purchased TelecomsXchange route: SIP host, tech prefix and dial format, the Purchased Route Confirmation email, plus route blocking and ASR/ACD alerts in My Interconnections.",
   "summary": "Send calls from an authorized account to sip01.telecomsxchange.com port 5060 and dial the route's tech prefix before the E.164 number, for example 80039#447700900123. Each route's tech prefix is in My Interconnections and in the Purchased Route Confirmation email.",
   "url": "https://help.telecomsxchange.com/buyers/send-your-first-call/",
   "markdown_url": "https://help.telecomsxchange.com/buyers/send-your-first-call.md",
   "updated": "2026-10-21",
   "keywords": [
    "tech prefix",
    "sip host",
    "send traffic",
    "interconnection",
    "my interconnections",
    "dial format",
    "e.164",
    "purchased route confirmation",
    "asr alert",
    "acd alert",
    "block route",
    "activate route",
    "codecs",
    "default route",
    "sms"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "What is a tech prefix?",
     "a": "A tech prefix is a 5-digit code followed by #, for example 80039#. It tells TelecomsXchange which purchased route carries the call. Each route has its own tech prefix."
    },
    {
     "q": "Where do I send my SIP traffic?",
     "a": "To sip01.telecomsxchange.com on port 5060, from an IP authorized on one of your accounts or with the account's VoIP login. SMS routes use smpp01.telecomsxchange.com on port 2776."
    },
    {
     "q": "What number format should I dial?",
     "a": "The tech prefix, then the number in international E.164 format without + or 00. For example 80039#447700900123."
    },
    {
     "q": "Which codecs are supported?",
     "a": "The Purchased Route Confirmation email lists G.729, G.723 and G.711 for SIP routes."
    },
    {
     "q": "When do I get the Purchased Route Confirmation email?",
     "a": "A few minutes after the purchase. It is sent by a background job, not at the moment you click Purchase, and carries the host, tech prefix, protocol and the route's price list."
    },
    {
     "q": "Can a seller block my route?",
     "a": "Yes. A seller can block you on their route, and the route is also blocked automatically if your daily ASR or ACD falls below the seller's minimum on a day with at least 10 calls. My Interconnections then shows Blocked by Seller."
    }
   ],
   "text": "How a call reaches the seller 1. Your switch: Authorized IP or VoIP login on your account 2. TelecomsXchange (via 80039#447700900123): sip01 on port 5060 picks the route and bills 3. Seller's switch (via chosen route): Carries the call on the purchased route 4. CDR (Voice) (via when the call ends): Duration, cost and SIP code recorded A purchased route carries calls once your switch sends them to TelecomsXchange with the route's tech prefix. This guide shows the host, the dial format and how to manage your routes. Before you start - Buy a route in Market View. - Create an account with your switch's IP address or a VoIP login. TelecomsXchange uses it to recognize your calls. How do I send my first call? 1. Make sure your switch sends calls from the account's authorized IP address, or registers with the account's VoIP login and password. 2. Go to My Interconnections and find the route. Click its Tech Prefix to copy it; it briefly shows \"Copied!\". 3. Point your switch to host sip01.telecomsxchange.com, port 5060. 4. Dial the tech prefix followed by the number in E.164 format, without + or 00. For example 80039#447700900123. 5. Open Live Calls to watch the call while it runs. When the call ends you'll see its record, with duration, cost and SIP code, in Logs \u2192 CDR (Voice). See call records, live calls and stats. What is in the Purchased Route Confirmation email? A few minutes after each purchase a background job sends you the Purchased Route Confirmation email, headed \"You're Interconnected!\". It lists the Seller, Route and Connected on time, then under Interconnection info the Host (host:port), Tech prefix and Protocol, with the route's full price list attached as a CSV. The seller gets a \"Purchased Route Notification\" with a link to your profile. Voice (SIP) SMS (SMPP) Host sip01.telecomsxchange.com smpp01.telecomsxchange.com Port 5060 2776 Codecs G.729, G.723, G.711 What is a tech prefix? A tech prefix is a 5-digit code followed by #, for example 80039#. It tells TelecomsXchange which seller route to use for the call. Every route you buy has its own tech prefix. The dial format is the tech prefix, then the number: 80039#447700900123 Here 80039# picks the route and 447700900123 is the UK number. If you buy several routes to the same country, you choose one per call by changing the prefix. A routing group can also choose for you; its tech prefix starts with 444. SMS routes work the same way with the SMPP host, but an SMPP account can also have a Default Route: on the account's Edit Account page, the purchased routes list shows a Default Route badge on one SMS route and a Make Default link on the others, and messages sent without a tech prefix use the default. The first SMS route you buy on an account becomes its default. An SMPP account can instead use a default routing group. What does My Interconnections show? My Interconnections lists every route you've purchased as a path: your account \u2192 seller \u2192 route. - The cards at the top count Unique Sellers, Active Interconnects and Blocked/Inactive routes. - Status is Active, Blocked by You or Blocked by Seller; the legend under the table uses the same names. - Type is VOICE or SMS. - The search box filters as you type, by connection, seller, account or tech prefix, and shows \"N of M interconnects match\" with a Clear link. - Routes sold anonymously show the seller as Anonymous; clicking it opens a message to the seller. The \u22ee menu on each row has Configure Route, Download (TCXC) and Download (Softswitch) for the route's rates, and Block Route or Activate Route. How do I block or reactivate a route? 1. Go to My Interconnections. 2. Click \u22ee on the route's row. 3. Click Block Route. To use a blocked route again, click Activate Route. The change applies at once, with no confirmation step. The status changes to Blocked by You, or back to Active. If the seller has blocked the route, the menu has no block option and the status stays Blocked by Seller until the seller unblocks it. While a route is blocked you don't receive its rate update notifications. When you activate it again, download the rates to check the current prices. How do I get alerted when route quality drops? 1. Go to My Interconnections, click \u22ee on the route's row and choose Configure Route. 2. On Modify Purchased Route, fill in the thresholds you want (see the table below). Leave a field empty to skip it. Use whole numbers; decimals are rounded down when the check runs. 3. Click Save Settings. Return to Accounts leaves without saving. The route is checked once a day, after midnight UTC, against the previous day's traffic. The check only runs on routes that carried at least 10 calls (answered or failed) that day; with fewer calls nothing is compared, and Current ASR and Current ACD show N/A. When ASR or ACD is below a threshold you get an email, \"TCXC Notification Tresholds met for <seller>-<route>\" or \"TCXC BLOCK Tresholds met for <seller>-<route>\", with the measured and threshold values; the seller receives the same email. A block threshold also blocks the route. The thresholds are for voice routes only. Setting What happens below it Notify if ASR goes lower than (%) You get an email. Notify if ACD goes lower than (seconds) You get an email. Block if ASR goes lower than (%) You get an email and the route is blocked. Block if ACD goes lower than (seconds) You get an email and the route is blocked. The same page has a Block this route checkbox. It also shows the seller's Minimum ASR and Minimum ACD, your Current ASR, Current ACD and Daily Minutes, and a Download link for the rate sheet. Compare your current ASR and ACD with the seller's minimums. If your traffic falls below them on a day with at least 10 calls, the seller's rules block the route automatically and you get the message \"Purchased route has been blocked for seller:<seller>\". What if something goes wrong? You see What to do Status Blocked by Seller The seller blocked you, or your traffic missed the seller's minimum ASR or ACD. Contact the seller from their profile, or use another route. Purchased route has been blocked for seller This message means the seller's side blocked the route. Check its status in My Interconnections. Status Active but calls on the route fail The seller may have blocked the whole route for all buyers, which doesn't change your status. Check the SIP code in the CDRs and contact the seller. 'Notify ASR' parameter expects numeric (or Notify ACD, Block ASR, Block ACD) Enter the threshold as a number, without % or letters. No Routes Found You haven't purchased any routes yet. Buy one in Market View first. No matching interconnects Nothing matches your search. Try part of a connection name, seller, account or tech prefix, or click Clear.",
   "sections": [
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "- Buy a route in Market View. - Create an account with your switch's IP address or a VoIP login. TelecomsXchange uses it to recognize your calls."
    },
    {
     "id": "how-do-i-send-my-first-call",
     "title": "How do I send my first call?",
     "text": "1. Make sure your switch sends calls from the account's authorized IP address, or registers with the account's VoIP login and password. 2. Go to My Interconnections and find the route. Click its Tech Prefix to copy it; it briefly shows \"Copied!\". 3. Point your switch to host sip01.telecomsxchange.com, port 5060. 4. Dial the tech prefix followed by the number in E.164 format, without + or 00. For example 80039#447700900123. 5. Open Live Calls to watch the call while it runs. When the call ends you'll see its record, with duration, cost and SIP code, in Logs \u2192 CDR (Voice). See call records, live calls and stats."
    },
    {
     "id": "what-is-in-the-purchased-route-confirmation-email",
     "title": "What is in the Purchased Route Confirmation email?",
     "text": "A few minutes after each purchase a background job sends you the Purchased Route Confirmation email, headed \"You're Interconnected!\". It lists the Seller, Route and Connected on time, then under Interconnection info the Host (host:port), Tech prefix and Protocol, with the route's full price list attached as a CSV. The seller gets a \"Purchased Route Notification\" with a link to your profile. Voice (SIP) SMS (SMPP) Host sip01.telecomsxchange.com smpp01.telecomsxchange.com Port 5060 2776 Codecs G.729, G.723, G.711"
    },
    {
     "id": "what-is-a-tech-prefix",
     "title": "What is a tech prefix?",
     "text": "A tech prefix is a 5-digit code followed by #, for example 80039#. It tells TelecomsXchange which seller route to use for the call. Every route you buy has its own tech prefix. The dial format is the tech prefix, then the number: 80039#447700900123 Here 80039# picks the route and 447700900123 is the UK number. If you buy several routes to the same country, you choose one per call by changing the prefix. A routing group can also choose for you; its tech prefix starts with 444. SMS routes work the same way with the SMPP host, but an SMPP account can also have a Default Route: on the account's Edit Account page, the purchased routes list shows a Default Route badge on one SMS route and a Make Default link on the others, and messages sent without a tech prefix use the default. The first SMS route you buy on an account becomes its default. An SMPP account can instead use a default routing group."
    },
    {
     "id": "what-does-my-interconnections-show",
     "title": "What does My Interconnections show?",
     "text": "My Interconnections lists every route you've purchased as a path: your account \u2192 seller \u2192 route. - The cards at the top count Unique Sellers, Active Interconnects and Blocked/Inactive routes. - Status is Active, Blocked by You or Blocked by Seller; the legend under the table uses the same names. - Type is VOICE or SMS. - The search box filters as you type, by connection, seller, account or tech prefix, and shows \"N of M interconnects match\" with a Clear link. - Routes sold anonymously show the seller as Anonymous; clicking it opens a message to the seller. The \u22ee menu on each row has Configure Route, Download (TCXC) and Download (Softswitch) for the route's rates, and Block Route or Activate Route."
    },
    {
     "id": "how-do-i-block-or-reactivate-a-route",
     "title": "How do I block or reactivate a route?",
     "text": "1. Go to My Interconnections. 2. Click \u22ee on the route's row. 3. Click Block Route. To use a blocked route again, click Activate Route. The change applies at once, with no confirmation step. The status changes to Blocked by You, or back to Active. If the seller has blocked the route, the menu has no block option and the status stays Blocked by Seller until the seller unblocks it. While a route is blocked you don't receive its rate update notifications. When you activate it again, download the rates to check the current prices."
    },
    {
     "id": "how-do-i-get-alerted-when-route-quality-drops",
     "title": "How do I get alerted when route quality drops?",
     "text": "1. Go to My Interconnections, click \u22ee on the route's row and choose Configure Route. 2. On Modify Purchased Route, fill in the thresholds you want (see the table below). Leave a field empty to skip it. Use whole numbers; decimals are rounded down when the check runs. 3. Click Save Settings. Return to Accounts leaves without saving. The route is checked once a day, after midnight UTC, against the previous day's traffic. The check only runs on routes that carried at least 10 calls (answered or failed) that day; with fewer calls nothing is compared, and Current ASR and Current ACD show N/A. When ASR or ACD is below a threshold you get an email, \"TCXC Notification Tresholds met for <seller>-<route>\" or \"TCXC BLOCK Tresholds met for <seller>-<route>\", with the measured and threshold values; the seller receives the same email. A block threshold also blocks the route. The thresholds are for voice routes only. Setting What happens below it Notify if ASR goes lower than (%) You get an email. Notify if ACD goes lower than (seconds) You get an email. Block if ASR goes lower than (%) You get an email and the route is blocked. Block if ACD goes lower than (seconds) You get an email and the route is blocked. The same page has a Block this route checkbox. It also shows the seller's Minimum ASR and Minimum ACD, your Current ASR, Current ACD and Daily Minutes, and a Download link for the rate sheet. Compare your current ASR and ACD with the seller's minimums. If your traffic falls below them on a day with at least 10 calls, the seller's rules block the route automatically and you get the message \"Purchased route has been blocked for seller:<seller>\"."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do Status Blocked by Seller The seller blocked you, or your traffic missed the seller's minimum ASR or ACD. Contact the seller from their profile, or use another route. Purchased route has been blocked for seller This message means the seller's side blocked the route. Check its status in My Interconnections. Status Active but calls on the route fail The seller may have blocked the whole route for all buyers, which doesn't change your status. Check the SIP code in the CDRs and contact the seller. 'Notify ASR' parameter expects numeric (or Notify ACD, Block ASR, Block ACD) Enter the threshold as a number, without % or letters. No Routes Found You haven't purchased any routes yet. Buy one in Market View first. No matching interconnects Nothing matches your search. Try part of a connection name, seller, account or tech prefix, or click Clear."
    }
   ]
  },
  {
   "slug": "routing-groups-and-route-testing",
   "section": "buyers",
   "title": "Routing groups and route testing",
   "description": "Combine purchased TelecomsXchange routes into a routing group with least cost, failover or load balancing, add destination rules, set a default group for SMPP accounts, and test routes by callback.",
   "summary": "Go to Routing \u2192 Routing Groups, click Add New Routing Group, pick a policy, then add your purchased routes to the group. Dial the group's 444 tech prefix and the group picks the route for each call.",
   "url": "https://help.telecomsxchange.com/buyers/routing-groups-and-route-testing/",
   "markdown_url": "https://help.telecomsxchange.com/buyers/routing-groups-and-route-testing.md",
   "updated": "2026-10-23",
   "keywords": [
    "routing group",
    "least cost routing",
    "lcr",
    "failover",
    "load balancing",
    "weight",
    "hunt stop codes",
    "routing rule",
    "routing rules per dial code",
    "dial code routing",
    "prefix routing",
    "cld prefix",
    "cli prefix",
    "override routing",
    "add a routing rule",
    "filter rules by prefix",
    "default routing group",
    "smpp",
    "route test",
    "callback",
    "test call"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "What routing policies can a group use?",
     "a": "Least Cost Routing (LCR) tries the cheapest route first. Failover Order always starts at route #1 and moves down your order. Load Balancing splits traffic by weight, so weights 1 and 3 send 25% and 75% of calls."
    },
    {
     "q": "What are hunt stop codes?",
     "a": "SIP response codes from 400 to 699 that stop failover to the next route. New voice groups start with 486, 404 and 604. Voice routing rules have their own hunt stop codes."
    },
    {
     "q": "Can I add a route I haven't bought?",
     "a": "No. A routing group only accepts routes you have purchased in the market, of the same type as the group (voice or SMS)."
    },
    {
     "q": "How do routing rules work?",
     "a": "A rule matches a CLD (destination) prefix, a CLI (caller) prefix or both, and has its own routes, policy and hunt stop codes. Rules are checked in priority order and the first match wins; calls that match no rule use the group's default routing."
    },
    {
     "q": "Can I route one dial code differently inside a routing group?",
     "a": "Yes. Add a routing rule with that CLD prefix, for example 447 for UK mobiles, and give it its own routes and policy. The CLD is the number after the group's tech prefix, so 444101#447700900123 matches 447."
    },
    {
     "q": "Does a call fall back to the default routing if a rule's routes fail?",
     "a": "No. A call that matches a rule uses only that rule's routes. Give every rule its routes, and put more specific prefixes (447) above broader ones (44)."
    },
    {
     "q": "Can SMS use a routing group without a prefix?",
     "a": "Yes. Open the SMPP account from Accounts \u2192 Edit Account and choose the group under Default Routing Group. Messages sent without a tech prefix then go through that group."
    },
    {
     "q": "How do I test a route before sending traffic?",
     "a": "Use Routing \u2192 Route Test. TelecomsXchange calls your phone through one route, then connects you to the destination through another, so you can hear the call yourself."
    }
   ],
   "text": "How a routing group picks a route 1. Your call: Dialed with the group's tech prefix 2. Routing rules (via 444101#447700900123): First CLD or CLI prefix match wins 3. Routing policy (via rule or group default): LCR, Failover Order or Load Balancing 4. Purchased route (via chosen route): Failover stops on a hunt stop code When you've bought more than one route to a destination, a routing group chooses between them for each call. You dial one tech prefix and the group's policy does the rest. Before you start - Buy at least one route. A group can only use routes you have purchased. - Log in as the main user or a default-role web user. Finance-role web users don't see Routing Groups. What is a routing group? A routing group puts several of your purchased routes behind one tech prefix. Group prefixes are 444, three random digits and #, for example 444101#. Dial 444101#447700900123 and the group decides which route carries the call. The list shows each group's Group Name, Tech Prefix, Sellers (hover to see their names), Entries, Rules, Policy and Type (Voice or SMS). A group without routes shows 0 \u2014 no routes under Entries. How do I create a routing group? 1. Go to Routing \u2192 Routing Groups and click Add New Routing Group. 2. Under Protocol, choose Voice (SIP) or SMS (SMPP). You can't change this later. 3. Enter a Name. 4. Choose a Routing Policy (see the list below). Least Cost Routing is preselected; AI Smart Routing (IDR) is shown as coming soon and can't be chosen yet. 5. Click Add Routing Group. The new group appears in the list with its own 444\u2026# tech prefix and 0 entries. Add routes before you use it. These are the routing policies: - Least Cost Routing (LCR): tries the cheapest route first, then fails over to the next lowest cost. - Failover Order: calls always start at route #1 and move down your order. - Load Balancing: splits traffic by weight. Weights 1 and 3 send about 25% and 75% of calls. How do I add routes to a group? 1. In Routing \u2192 Routing Groups, click the cogwheel in the group's Action column. The group page shows its tech prefix at the top with a copy button. 2. Under Your Purchased Routes, click a route, or drag it into the group. Use the search box to find a route or seller. 3. Arrange the routes for the policy: - Failover Order: use the up and down arrows. The first route is Primary, the next are Failover 1, Failover 2 and so on. A new route is added at the end. - Load Balancing: type a weight from 1 to 100 and click Set. You'll see \"Weight updated successfully\" and each route's share of traffic. - Least Cost Routing: no order needed. Each route shows auto. You'll see the message \"Route added to this group\", and the route is listed under Active in Routing Group. To take a route out, click its remove icon and confirm; you'll see \"Route removed from this group\". A group with no routes can't carry calls. Everything sent with its tech prefix fails until you add a route, so don't remove the last route from a group that has traffic. Removing the last route asks you to confirm that calls sent with the group's tech prefix will fail. To change the name, policy or hunt stop codes, edit them under Settings and click Save Changes or Save & Close. Switching to Failover Order numbers the routes 1 to N; switching to Load Balancing resets every weight to 1. Hunt stop codes (voice groups and voice rules) are SIP codes from 400 to 699 that stop failover to the next route. They sit in a collapsed Hunt stop codes row under the policy; open it to type codes separated by commas or click the chips 486 Busy, 404 Not Found, 603 Decline and 604 No Such User. New voice groups start with 486,404,604. Codes outside 400 to 699 are dropped when you save. How do I route specific dial codes differently? Routing rules override the group's default routing for particular dial codes (CLD prefixes), callers (CLI prefixes) or both. Each rule has its own routes, policy and hunt stop codes. One group can, for example, send most traffic by LCR, send UK mobiles (447) by Failover Order across two premium routes, and send calls without caller ID somewhere else. Rules are available in voice groups. The group page is split into two parts, with jump links at the top: Default routing, which applies to every call sent with the group's tech prefix that doesn't match a rule, and Routing rules \u00b7 overrides. How is a call matched to a rule? - CLD is the dialled number after the group's tech prefix, in E.164 without + or 00. A call to 444101#447700900123 is matched on 447700900123, so the CLD prefix 447 matches it, and so do 44 and 4477. - CLI is the caller ID as your switch sends it. EMPTY matches calls that arrive without caller ID. Send caller IDs in E.164 without +, or a digit prefix won't match. - A rule with both prefixes matches only calls where both match. A rule with only one prefix ignores the other. - Rules are checked in Priority order, from 1 down, and the first match wins. It is not the longest match, so put specific prefixes above broader ones: 447 above 44, or the UK mobile rule never sees a call. - A call that matches a rule uses only that rule's routes, policy and hunt stop codes. It never falls back to the group's default routing, so give every rule its routes before you send traffic. Rule CLD prefix CLI prefix Catches UK mobiles 447 Every call to a UK mobile number All UK 44 Every other UK call (keep it below 447) One caller to Germany 49 14165551234 Calls to Germany from that caller ID only No caller ID EMPTY Calls sent without a caller ID How do I add a rule? 1. Open the group from Routing \u2192 Routing Groups and click Routing rules at the top, or scroll to it. 2. Click Add Rule. The Add a routing rule window opens. 3. Enter a CLD (Destination) Prefix, a CLI (Caller) Prefix, or both: digits only, up to 15. For the CLI you can also enter EMPTY. 4. Click Add Rule in the window, or Cancel to close it. The rule is added at the bottom of the list (lowest priority), and the portal opens it straight away so you can give it routes. How do I set up a rule's routes and policy? A rule's page says which calls it handles: Routing rule in the group, Calls matching CLD 447. It has the same parts as a group: Rule settings with the two prefixes, the Routing Policy and the Hunt stop codes, then the routes. 1. Add routes from Your Purchased Routes, as for a group. 2. Choose the policy. New rules start with Least Cost Routing; pick Failover Order or Load Balancing if the rule needs it. 3. Change the prefixes or the hunt stop codes if needed, then click Save Changes, or Save & Close to go back to the group. Click Back to Routing Group to return to the group. How do I manage rules? The Routing rules table on the group page lists each rule's Priority, CLI, CLD, Policy and Sellers. A dash means that prefix isn't used. - Sellers shows how many sellers the rule's routes use; hover to see their names and the route count. No routes yet \u2014 add means matching calls have nowhere to go: click it to add routes. - Edit rule opens the rule. - The up and down arrows change its priority (\"Routing Rule moved up\" / \"Routing Rule moved down\"). - The bin deletes it after you confirm (\"Routing Rule deleted\"). The rules below it move up. - With many rules, type a CLD or CLI prefix in Filter rules by prefix (CLD or CLI) to show only the matching rules. Two rules in a group can't have the same CLD and CLI pair. 44 and 447 are fine, but a second 44 rule isn't. A common setup: the group's default routing on LCR for everyday traffic, plus a rule for your premium destination prefix on Failover Order across your two best routes. How do I use a routing group for SMS? An SMS (SMPP) group works like a voice group: send messages with its 444\u2026# tech prefix. To use the group without a prefix: 1. Click Accounts in the sidebar, open the SMPP account's Actions menu and choose Edit Account. 2. Under Default Routing Group, choose the group. The default is NOT SET (Use direct route from purchased routes). 3. Click Update Account. Messages sent from that account without a tech prefix now go through the group. Choosing a group clears any Default Route set in the account's purchased routes list, and clicking Make Default on a purchased route there resets Default Routing Group to NOT SET. See send SMS for the SMPP side. How do I test a route? Routing \u2192 Route Test opens the Web Callback Service. TelecomsXchange calls your phone first, then connects you to the destination, each leg through a route you choose. 1. Go to Routing \u2192 Route Test. 2. Under First Call Leg, enter Your Phone Number, the CLI (Caller ID) to show, and choose Seller Route 1. 3. Under Second Call Leg, enter the Destination Number, its CLI (Caller ID), and choose Seller Route 2. 4. Choose the Billing Account. The list shows each account's balance. It must have purchased both routes. 5. Click Initiate Callback. Clear Form empties the fields. You'll see \"Test call has been initiated\". Your phone rings within a few seconds, for up to 120 seconds, from \"TelecomsXchange\" with the CLI you entered; when you answer, the destination is called, and you can judge audio quality and caller ID delivery. Each test is listed under Recent Callback Requests with its Account, Your Number / CLI, Route 1, Destination / CLI, Route 2, Callback Time and Status (initiated, or failed if the first leg could not be placed). HLR Lookup checks whether a mobile number is valid and which network it belongs to. This helps when you investigate failed calls. What if something goes wrong? You see What to do Please enter a name for the routing group. Type a name before you save. A routing group with this name already exists - choose a different name. Use a name you haven't used for another group. You can only add routes you have purchased in the Market. Buy the route first, then add it. This route is already in this group. The route is in the group already. Pick another one. Weight must be a whole number between 1 and 100. Enter a weight from 1 to 100. Enter at least one prefix: CLD (destination) or CLI (caller). Fill in at least one prefix for the rule. CLD prefix may contain digits only. Remove spaces, + and letters from the CLD prefix. CLI prefix may contain digits only, or the special value EMPTY. Remove spaces, + and letters, or enter EMPTY. A prefix can be at most 15 digits. Shorten the prefix. A rule with this CLD/CLI prefix already exists in this group. Open the existing rule instead, or change one of the prefixes. No rules match that prefix. Clear the Filter rules by prefix box to see all rules. Calls to a dial code use the wrong routes A broader rule above it matched first. Move the more specific rule up (for example 447 above 44). Calls matching a rule fail The rule has no routes (No routes yet \u2014 add in the table), or all of its routes failed. A matched call never falls back to the default routing: add routes to the rule. A CLI rule never matches Your switch sends the caller ID with + or a national format. Send it in E.164 without +, or match on CLD instead. rouing group not found The Default Routing Group you chose for the SMPP account no longer exists. Pick another group or NOT SET. Selected account does not have a purchased for selected route(s), please choose other combination or purchase selected route(s) on this account Choose a billing account that bought both routes, or buy them on that account. CLD format error Enter both phone numbers as digits only.",
   "sections": [
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "- Buy at least one route. A group can only use routes you have purchased. - Log in as the main user or a default-role web user. Finance-role web users don't see Routing Groups."
    },
    {
     "id": "what-is-a-routing-group",
     "title": "What is a routing group?",
     "text": "A routing group puts several of your purchased routes behind one tech prefix. Group prefixes are 444, three random digits and #, for example 444101#. Dial 444101#447700900123 and the group decides which route carries the call. The list shows each group's Group Name, Tech Prefix, Sellers (hover to see their names), Entries, Rules, Policy and Type (Voice or SMS). A group without routes shows 0 \u2014 no routes under Entries."
    },
    {
     "id": "how-do-i-create-a-routing-group",
     "title": "How do I create a routing group?",
     "text": "1. Go to Routing \u2192 Routing Groups and click Add New Routing Group. 2. Under Protocol, choose Voice (SIP) or SMS (SMPP). You can't change this later. 3. Enter a Name. 4. Choose a Routing Policy (see the list below). Least Cost Routing is preselected; AI Smart Routing (IDR) is shown as coming soon and can't be chosen yet. 5. Click Add Routing Group. The new group appears in the list with its own 444\u2026# tech prefix and 0 entries. Add routes before you use it. These are the routing policies: - Least Cost Routing (LCR): tries the cheapest route first, then fails over to the next lowest cost. - Failover Order: calls always start at route #1 and move down your order. - Load Balancing: splits traffic by weight. Weights 1 and 3 send about 25% and 75% of calls."
    },
    {
     "id": "how-do-i-add-routes-to-a-group",
     "title": "How do I add routes to a group?",
     "text": "1. In Routing \u2192 Routing Groups, click the cogwheel in the group's Action column. The group page shows its tech prefix at the top with a copy button. 2. Under Your Purchased Routes, click a route, or drag it into the group. Use the search box to find a route or seller. 3. Arrange the routes for the policy: - Failover Order: use the up and down arrows. The first route is Primary, the next are Failover 1, Failover 2 and so on. A new route is added at the end. - Load Balancing: type a weight from 1 to 100 and click Set. You'll see \"Weight updated successfully\" and each route's share of traffic. - Least Cost Routing: no order needed. Each route shows auto. You'll see the message \"Route added to this group\", and the route is listed under Active in Routing Group. To take a route out, click its remove icon and confirm; you'll see \"Route removed from this group\". A group with no routes can't carry calls. Everything sent with its tech prefix fails until you add a route, so don't remove the last route from a group that has traffic. Removing the last route asks you to confirm that calls sent with the group's tech prefix will fail. To change the name, policy or hunt stop codes, edit them under Settings and click Save Changes or Save & Close. Switching to Failover Order numbers the routes 1 to N; switching to Load Balancing resets every weight to 1. Hunt stop codes (voice groups and voice rules) are SIP codes from 400 to 699 that stop failover to the next route. They sit in a collapsed Hunt stop codes row under the policy; open it to type codes separated by commas or click the chips 486 Busy, 404 Not Found, 603 Decline and 604 No Such User. New voice groups start with 486,404,604. Codes outside 400 to 699 are dropped when you save."
    },
    {
     "id": "how-do-i-route-specific-dial-codes-differently",
     "title": "How do I route specific dial codes differently?",
     "text": "Routing rules override the group's default routing for particular dial codes (CLD prefixes), callers (CLI prefixes) or both. Each rule has its own routes, policy and hunt stop codes. One group can, for example, send most traffic by LCR, send UK mobiles (447) by Failover Order across two premium routes, and send calls without caller ID somewhere else. Rules are available in voice groups. The group page is split into two parts, with jump links at the top: Default routing, which applies to every call sent with the group's tech prefix that doesn't match a rule, and Routing rules \u00b7 overrides. How is a call matched to a rule? - CLD is the dialled number after the group's tech prefix, in E.164 without + or 00. A call to 444101#447700900123 is matched on 447700900123, so the CLD prefix 447 matches it, and so do 44 and 4477. - CLI is the caller ID as your switch sends it. EMPTY matches calls that arrive without caller ID. Send caller IDs in E.164 without +, or a digit prefix won't match. - A rule with both prefixes matches only calls where both match. A rule with only one prefix ignores the other. - Rules are checked in Priority order, from 1 down, and the first match wins. It is not the longest match, so put specific prefixes above broader ones: 447 above 44, or the UK mobile rule never sees a call. - A call that matches a rule uses only that rule's routes, policy and hunt stop codes. It never falls back to the group's default routing, so give every rule its routes before you send traffic. Rule CLD prefix CLI prefix Catches UK mobiles 447 Every call to a UK mobile number All UK 44 Every other UK call (keep it below 447) One caller to Germany 49 14165551234 Calls to Germany from that caller ID only No caller ID EMPTY Calls sent without a caller ID How do I add a rule? 1. Open the group from Routing \u2192 Routing Groups and click Routing rules at the top, or scroll to it. 2. Click Add Rule. The Add a routing rule window opens. 3. Enter a CLD (Destination) Prefix, a CLI (Caller) Prefix, or both: digits only, up to 15. For the CLI you can also enter EMPTY. 4. Click Add Rule in the window, or Cancel to close it. The rule is added at the bottom of the list (lowest priority), and the portal opens it straight away so you can give it routes. How do I set up a rule's routes and policy? A rule's page says which calls it handles: Routing rule in the group, Calls matching CLD 447. It has the same parts as a group: Rule settings with the two prefixes, the Routing Policy and the Hunt stop codes, then the routes. 1. Add routes from Your Purchased Routes, as for a group. 2. Choose the policy. New rules start with Least Cost Routing; pick Failover Order or Load Balancing if the rule needs it. 3. Change the prefixes or the hunt stop codes if needed, then click Save Changes, or Save & Close to go back to the group. Click Back to Routing Group to return to the group. How do I manage rules? The Routing rules table on the group page lists each rule's Priority, CLI, CLD, Policy and Sellers. A dash means that prefix isn't used. - Sellers shows how many sellers the rule's routes use; hover to see their names and the route count. No routes yet \u2014 add means matching calls have nowhere to go: click it to add routes. - Edit rule opens the rule. - The up and down arrows change its priority (\"Routing Rule moved up\" / \"Routing Rule moved down\"). - The bin deletes it after you confirm (\"Routing Rule deleted\"). The rules below it move up. - With many rules, type a CLD or CLI prefix in Filter rules by prefix (CLD or CLI) to show only the matching rules. Two rules in a group can't have the same CLD and CLI pair. 44 and 447 are fine, but a second 44 rule isn't. A common setup: the group's default routing on LCR for everyday traffic, plus a rule for your premium destination prefix on Failover Order across your two best routes."
    },
    {
     "id": "how-do-i-use-a-routing-group-for-sms",
     "title": "How do I use a routing group for SMS?",
     "text": "An SMS (SMPP) group works like a voice group: send messages with its 444\u2026# tech prefix. To use the group without a prefix: 1. Click Accounts in the sidebar, open the SMPP account's Actions menu and choose Edit Account. 2. Under Default Routing Group, choose the group. The default is NOT SET (Use direct route from purchased routes). 3. Click Update Account. Messages sent from that account without a tech prefix now go through the group. Choosing a group clears any Default Route set in the account's purchased routes list, and clicking Make Default on a purchased route there resets Default Routing Group to NOT SET. See send SMS for the SMPP side."
    },
    {
     "id": "how-do-i-test-a-route",
     "title": "How do I test a route?",
     "text": "Routing \u2192 Route Test opens the Web Callback Service. TelecomsXchange calls your phone first, then connects you to the destination, each leg through a route you choose. 1. Go to Routing \u2192 Route Test. 2. Under First Call Leg, enter Your Phone Number, the CLI (Caller ID) to show, and choose Seller Route 1. 3. Under Second Call Leg, enter the Destination Number, its CLI (Caller ID), and choose Seller Route 2. 4. Choose the Billing Account. The list shows each account's balance. It must have purchased both routes. 5. Click Initiate Callback. Clear Form empties the fields. You'll see \"Test call has been initiated\". Your phone rings within a few seconds, for up to 120 seconds, from \"TelecomsXchange\" with the CLI you entered; when you answer, the destination is called, and you can judge audio quality and caller ID delivery. Each test is listed under Recent Callback Requests with its Account, Your Number / CLI, Route 1, Destination / CLI, Route 2, Callback Time and Status (initiated, or failed if the first leg could not be placed). HLR Lookup checks whether a mobile number is valid and which network it belongs to. This helps when you investigate failed calls."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do Please enter a name for the routing group. Type a name before you save. A routing group with this name already exists - choose a different name. Use a name you haven't used for another group. You can only add routes you have purchased in the Market. Buy the route first, then add it. This route is already in this group. The route is in the group already. Pick another one. Weight must be a whole number between 1 and 100. Enter a weight from 1 to 100. Enter at least one prefix: CLD (destination) or CLI (caller). Fill in at least one prefix for the rule. CLD prefix may contain digits only. Remove spaces, + and letters from the CLD prefix. CLI prefix may contain digits only, or the special value EMPTY. Remove spaces, + and letters, or enter EMPTY. A prefix can be at most 15 digits. Shorten the prefix. A rule with this CLD/CLI prefix already exists in this group. Open the existing rule instead, or change one of the prefixes. No rules match that prefix. Clear the Filter rules by prefix box to see all rules. Calls to a dial code use the wrong routes A broader rule above it matched first. Move the more specific rule up (for example 447 above 44). Calls matching a rule fail The rule has no routes (No routes yet \u2014 add in the table), or all of its routes failed. A matched call never falls back to the default routing: add routes to the rule. A CLI rule never matches Your switch sends the caller ID with + or a national format. Send it in E.164 without +, or match on CLD instead. rouing group not found The Default Routing Group you chose for the SMPP account no longer exists. Pick another group or NOT SET. Selected account does not have a purchased for selected route(s), please choose other combination or purchase selected route(s) on this account Choose a billing account that bought both routes, or buy them on that account. CLD format error Enter both phone numbers as digits only."
    }
   ]
  },
  {
   "slug": "send-sms",
   "section": "buyers",
   "title": "Send SMS over SMPP and read your SDRs",
   "description": "Bind your SMPP client to TelecomsXchange, address messages with a route or routing-group prefix, use approved sender IDs, understand billing, delivery receipts and error codes, and read SMS Detail Records.",
   "summary": "Bind as a transceiver to smpp01.telecomsxchange.com, TCP port 2776, with your account's SMPP System Id and SMPP Password. Put the route's tech prefix in front of the destination number (80039#447700900123), or send the plain number to use the account's default route. Each message segment is billed at the route's price; Logs \u2192 SDR (SMS) shows every message, its status, delivery time and cost.",
   "url": "https://help.telecomsxchange.com/buyers/send-sms/",
   "markdown_url": "https://help.telecomsxchange.com/buyers/send-sms.md",
   "updated": "2026-10-21",
   "keywords": [
    "sms",
    "smpp",
    "bind",
    "system id",
    "submit_sm",
    "sender id",
    "dlr",
    "delivery receipt",
    "sdr",
    "sms detail records",
    "concatenated sms",
    "unicode",
    "rate limit",
    "error code"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Where do I connect?",
     "a": "smpp01.telecomsxchange.com, TCP port 2776, bind_transceiver, with the SMPP System Id and SMPP Password of your account. If the account has an IP address or additional allowed IPs, binds are accepted only from those."
    },
    {
     "q": "How do I pick which route a message uses?",
     "a": "Put the route's tech prefix in front of the number, for example 80039#447700900123, or a routing group's 444 prefix. A plain number goes to the account's Default Routing Group if one is set, otherwise to the account's default SMS route."
    },
    {
     "q": "What am I charged?",
     "a": "The route's per-message price for every segment. A message up to 160 GSM characters (70 in Unicode) is one segment; longer messages are billed per part. The exact amount comes back in the submit_sm_resp and shows in the SDR."
    },
    {
     "q": "Why was my message rejected with status 0x45?",
     "a": "Status 69 (ESME_RSUBMITFAIL) means the platform refused it: no route matches the number or prefix, no rate for the destination, the route or account is blocked, the balance is too low, the sender ID isn't allowed, or you exceeded your rate limit. The SDR page shows the reason for failed messages."
    },
    {
     "q": "Do I get delivery receipts?",
     "a": "Yes. TelecomsXchange always asks the seller for a receipt and relays it to your bind as a deliver_sm with stat:DELIVRD. The receipt is relayed only if your bind is open at that moment; the delivered status is always recorded in the SDR."
    }
   ],
   "text": "How an SMS travels and is billed 1. Your SMPP client: Binds as transceiver to smpp01, TCP 2776 2. TelecomsXchange (via 80039#447700900123): Checks sender ID and balance, bills per segment 3. Seller's SMSC (via chosen route): Delivers the message and reports back 4. Delivery receipt (via stat:DELIVRD): Relayed to your open bind, logged in SDR With an SMPP account and an SMS route, your messaging platform sends through TelecomsXchange like through any SMS aggregator: bind once, submit messages, receive delivery receipts. This guide covers the connection, addressing, sender IDs, billing and the SMS Detail Records. Before you start - Create an account with Protocol Type SMPP. Note its SMPP System Id and SMPP Password. If you set an IP Address on it, or add Additional Allowed IPs, binds are accepted only from those addresses. - Buy an SMS route: in Market View, switch to SMS Market. The first SMS route you buy on an account becomes that account's Default Route. - Add funds to the account. Messages are refused when the balance plus credit limit can't cover them. How do I connect? Host smpp01.telecomsxchange.com Port TCP 2776 Bind type bind_transceiver System ID the account's SMPP System Id Password the account's SMPP Password SMPP version 3.4 Send enquire_link to keep the session alive; it is answered. A refused bind comes back with status 0x0D (ESME_RBINDFAIL) and the connection is closed: check the credentials and that your IP is allowed on the account. The Accounts page shows each SMPP account's Bind Status, ONLINE or OFFLINE. Click it for the SMPP BIND history: every bind with its BIND Date, UNBIND Date, Remote IP and Session Id, kept for 30 days. How do I address a message? The destination_addr decides which route carries the message: - A route's tech prefix, then the number: 80039#447700900123. The prefix is shown on the route in My Interconnections. The number is in E.164 format without + or 00. - A routing group's prefix: 444123#447700900123 sends through the group, which picks a route by its rules. See Routing groups. - The plain number: 447700900123 goes to the account's Default Routing Group if one is set in the account's settings, otherwise to the account's default SMS route. On the account's edit page, the purchased routes list marks the Default Route; click Make Default on another route to change it. Fill source_addr with your sender ID; an empty sender is rejected. Which sender IDs can I use? Only sender IDs registered on your account. Logs \u2192 SDR (SMS) lists them under Sender Settings as Verified Sender IDs, with one marked (Default). A message from any other sender ID is handled according to your account's setting, shown in the same panel: either it is blocked, or it is sent with your default sender ID instead. To register sender IDs, click Add Sender ID and send TelecomsXchange the sender IDs you need and what they are used for. How are messages billed? Each message is billed per segment at the route's price for the destination prefix: - up to 160 characters in the GSM alphabet, or 70 in Unicode, is one segment; - longer messages are billed per part: 153 GSM or 67 Unicode characters each. The submit_sm_resp carries the seller's message_id and two TelecomsXchange TLVs: 0x1520 billing_price (the amount charged) and 0x1521 billed_msgs_cnt (the number of segments). Split long messages into concatenated parts with a UDH on your side. Some routes accept only a single short_message and reject an unsplit long text with status 0x01 (ESME_RINVMSGLEN). The account's SMPP Rate Limit (req/sec), set on its edit page, caps your messages per second; the seller's route may have its own limit. Messages above the limit are rejected with status 0x45: queue and retry on your side. How do delivery receipts work? TelecomsXchange requests a receipt from the seller for every message. When the seller reports delivery, the message is marked Delivered in the SDR with the time it took, and the receipt is relayed to your bound session as a deliver_sm with id:<message_id> and stat:DELIVRD. Receipts are relayed only to an open bind: if you are not connected at that moment, read the status from the SDR instead. Messages sent to phone numbers you bought on TelecomsXchange arrive the other way round: see Buy and manage virtual phone numbers for the SMPP endpoint. They appear in the SDR with the route Inbound DID. How do I read the SMS Detail Records? 1. Go to Logs \u2192 SDR (SMS). 2. Filter by Phone Number Prefix, Status (Sent Only, the default, All Messages or Failed Only) and From Date and To Date. The page opens on the last 24 hours. 3. Click Search SMS. Each row shows the Account, To Number, From, Destination (country and network), Seller, Route, Amount, SMS Count (segments), Time, Status (Delivered, Sent or Failed), Delivery (sec) and, for failures, the Error. Click Show message to see the text. Hover over the To Number for HLR Lookup: &lt;number&gt;, which opens HLR Lookup with the number filled in. Download &lt;n&gt; SMS saves the matching records as sms.csv with the message ID, numbers, country, seller, route, price, time, delivery and text. The same records are available from the API as /buyers/smshistory, and daily or monthly totals per sender ID as /buyers/sms/summary; see Use the API. Sending is SMPP only; there is no HTTP endpoint for submitting messages. What if something goes wrong? You see What to do Bind refused, status 0x0D Check the SMPP System Id and SMPP Password on the account, and that you connect from an allowed IP address. Status 0x45 (69, ESME_RSUBMITFAIL) The message was refused. In the SDR, Failed Only shows the reason: no route for that prefix, no rate for the destination, a blocked route, insufficient funds, a sender ID that isn't allowed, or your rate limit. Error \"route is down\" in the SDR The seller's SMSC didn't accept a bind. Try another route or a routing group with a failover route. Error \"route failed, command_status:N\" The seller rejected the message with that SMPP status. Check the number and sender ID, or use another route. Status 0x01 (ESME_RINVMSGLEN) The text is longer than one segment and the route accepts only single messages. Split it into UDH parts. Status 0xFE (254) The seller didn't answer within the route's timeout. Retry, or use a routing group with a failover route. Status 0x08 (ESME_RSYSERR) A platform error while forwarding. Retry after a moment. Messages show Sent but never Delivered The seller hasn't reported delivery. Check the Delivery (sec) of earlier messages on that route, or test another route.",
   "sections": [
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "- Create an account with Protocol Type SMPP. Note its SMPP System Id and SMPP Password. If you set an IP Address on it, or add Additional Allowed IPs, binds are accepted only from those addresses. - Buy an SMS route: in Market View, switch to SMS Market. The first SMS route you buy on an account becomes that account's Default Route. - Add funds to the account. Messages are refused when the balance plus credit limit can't cover them."
    },
    {
     "id": "how-do-i-connect",
     "title": "How do I connect?",
     "text": "Host smpp01.telecomsxchange.com Port TCP 2776 Bind type bind_transceiver System ID the account's SMPP System Id Password the account's SMPP Password SMPP version 3.4 Send enquire_link to keep the session alive; it is answered. A refused bind comes back with status 0x0D (ESME_RBINDFAIL) and the connection is closed: check the credentials and that your IP is allowed on the account. The Accounts page shows each SMPP account's Bind Status, ONLINE or OFFLINE. Click it for the SMPP BIND history: every bind with its BIND Date, UNBIND Date, Remote IP and Session Id, kept for 30 days."
    },
    {
     "id": "how-do-i-address-a-message",
     "title": "How do I address a message?",
     "text": "The destination_addr decides which route carries the message: - A route's tech prefix, then the number: 80039#447700900123. The prefix is shown on the route in My Interconnections. The number is in E.164 format without + or 00. - A routing group's prefix: 444123#447700900123 sends through the group, which picks a route by its rules. See Routing groups. - The plain number: 447700900123 goes to the account's Default Routing Group if one is set in the account's settings, otherwise to the account's default SMS route. On the account's edit page, the purchased routes list marks the Default Route; click Make Default on another route to change it. Fill source_addr with your sender ID; an empty sender is rejected."
    },
    {
     "id": "which-sender-ids-can-i-use",
     "title": "Which sender IDs can I use?",
     "text": "Only sender IDs registered on your account. Logs \u2192 SDR (SMS) lists them under Sender Settings as Verified Sender IDs, with one marked (Default). A message from any other sender ID is handled according to your account's setting, shown in the same panel: either it is blocked, or it is sent with your default sender ID instead. To register sender IDs, click Add Sender ID and send TelecomsXchange the sender IDs you need and what they are used for."
    },
    {
     "id": "how-are-messages-billed",
     "title": "How are messages billed?",
     "text": "Each message is billed per segment at the route's price for the destination prefix: - up to 160 characters in the GSM alphabet, or 70 in Unicode, is one segment; - longer messages are billed per part: 153 GSM or 67 Unicode characters each. The submit_sm_resp carries the seller's message_id and two TelecomsXchange TLVs: 0x1520 billing_price (the amount charged) and 0x1521 billed_msgs_cnt (the number of segments). Split long messages into concatenated parts with a UDH on your side. Some routes accept only a single short_message and reject an unsplit long text with status 0x01 (ESME_RINVMSGLEN). The account's SMPP Rate Limit (req/sec), set on its edit page, caps your messages per second; the seller's route may have its own limit. Messages above the limit are rejected with status 0x45: queue and retry on your side."
    },
    {
     "id": "how-do-delivery-receipts-work",
     "title": "How do delivery receipts work?",
     "text": "TelecomsXchange requests a receipt from the seller for every message. When the seller reports delivery, the message is marked Delivered in the SDR with the time it took, and the receipt is relayed to your bound session as a deliver_sm with id:<message_id> and stat:DELIVRD. Receipts are relayed only to an open bind: if you are not connected at that moment, read the status from the SDR instead. Messages sent to phone numbers you bought on TelecomsXchange arrive the other way round: see Buy and manage virtual phone numbers for the SMPP endpoint. They appear in the SDR with the route Inbound DID."
    },
    {
     "id": "how-do-i-read-the-sms-detail-records",
     "title": "How do I read the SMS Detail Records?",
     "text": "1. Go to Logs \u2192 SDR (SMS). 2. Filter by Phone Number Prefix, Status (Sent Only, the default, All Messages or Failed Only) and From Date and To Date. The page opens on the last 24 hours. 3. Click Search SMS. Each row shows the Account, To Number, From, Destination (country and network), Seller, Route, Amount, SMS Count (segments), Time, Status (Delivered, Sent or Failed), Delivery (sec) and, for failures, the Error. Click Show message to see the text. Hover over the To Number for HLR Lookup: &lt;number&gt;, which opens HLR Lookup with the number filled in. Download &lt;n&gt; SMS saves the matching records as sms.csv with the message ID, numbers, country, seller, route, price, time, delivery and text. The same records are available from the API as /buyers/smshistory, and daily or monthly totals per sender ID as /buyers/sms/summary; see Use the API. Sending is SMPP only; there is no HTTP endpoint for submitting messages."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do Bind refused, status 0x0D Check the SMPP System Id and SMPP Password on the account, and that you connect from an allowed IP address. Status 0x45 (69, ESME_RSUBMITFAIL) The message was refused. In the SDR, Failed Only shows the reason: no route for that prefix, no rate for the destination, a blocked route, insufficient funds, a sender ID that isn't allowed, or your rate limit. Error \"route is down\" in the SDR The seller's SMSC didn't accept a bind. Try another route or a routing group with a failover route. Error \"route failed, command_status:N\" The seller rejected the message with that SMPP status. Check the number and sender ID, or use another route. Status 0x01 (ESME_RINVMSGLEN) The text is longer than one segment and the route accepts only single messages. Split it into UDH parts. Status 0xFE (254) The seller didn't answer within the route's timeout. Retry, or use a routing group with a failover route. Status 0x08 (ESME_RSYSERR) A platform error while forwarding. Retry after a moment. Messages show Sent but never Delivered The seller hasn't reported delivery. Check the Delivery (sec) of earlier messages on that route, or test another route."
    }
   ]
  },
  {
   "slug": "iot-mqtt",
   "section": "buyers",
   "title": "Connect IoT devices over MQTT and read your IDRs",
   "description": "Use a TelecomsXchange IoT (MQTT) account to publish and subscribe between your devices and applications, understand the per-message fee, and read the IoT Detail Records (IDR).",
   "summary": "Create an account with Protocol Type IoT (MQTT), then connect your devices to the broker with the generated MQTT Login and MQTT Password, using the host and port shown in the mosquitto_pub sample on the account's page. Every message published or delivered is charged a flat per-message fee to the account's balance. Logs \u2192 IDR (MQTT) lists each message with its topic, direction, status and cost.",
   "url": "https://help.telecomsxchange.com/buyers/iot-mqtt/",
   "markdown_url": "https://help.telecomsxchange.com/buyers/iot-mqtt.md",
   "updated": "2026-10-21",
   "keywords": [
    "iot",
    "mqtt",
    "broker",
    "publish",
    "subscribe",
    "topic",
    "mosquitto",
    "idr",
    "iot detail records",
    "device messaging"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "What is the IoT (MQTT) account for?",
     "a": "A hosted MQTT broker for your own devices and applications. Clients that log in with the account's credentials publish and subscribe to topics that only your account sees."
    },
    {
     "q": "What does a message cost?",
     "a": "A flat per-message fee set by TelecomsXchange, charged to the account's balance when a message is published and again for each subscriber it is delivered to. The amount shows on every record in the IDR."
    },
    {
     "q": "Why does the IDR show Unauthorized messages?",
     "a": "The account's balance plus credit limit didn't cover the fee at that moment, so the message was refused. Top up the account."
    },
    {
     "q": "Can an IoT account send SMS or calls?",
     "a": "No. IoT accounts can't purchase routes. Use an SMPP account for SMS and a SIP account for voice."
    }
   ],
   "text": "How a device message is billed 1. Your device: Logs in with the account's MQTT credentials 2. MQTT broker (via port 1888): Checks balance, charges the per-message fee 3. Your subscribers (via same topic): Same account only; each delivery charged again 4. IDR (MQTT) (via every message): Topic, direction, status and amount per message An IoT (MQTT) account gives your devices and applications an MQTT broker to talk through, with every message recorded and billed per message, next to your voice and SMS traffic. Before you start Add funds to the account you'll use, or let it use another account's balance. Messages are refused when the balance plus credit limit can't cover the per-message fee. How do I create an IoT account? 1. Go to Accounts and click Add Account. 2. Choose Protocol Type IoT (MQTT). 3. Enter a Name. The MQTT Login is generated for you: it starts with your 10-digit customer number, which can't be changed. Click Generate IoT Credentials for a fresh MQTT Password. 4. Set Use Balance if the account should spend another account's balance, and click Add Account. See Create your first account for the other fields. The account's edit page shows the credentials as Username and Password and a mosquitto_pub Usage Sample with the broker host and port, for example: mosquitto_pub -u <login> -P <password> -h <host> -p 1888 -t 'SomeTopic' -m \"YourTestMessage\" How do I connect and send messages? Connect each device or application to the broker with the account's Username and Password. Anonymous connections are refused. Use plain topic names such as sensors/temperature. Topics are private to your account: the broker keeps each account's topics apart, so your subscribers only receive what your own clients publish, and you can't see other accounts' traffic. Every message is checked against the account's balance before it is accepted: - publishing a message is charged the per-message fee; - delivering it to each subscriber is charged the fee again. A message the balance can't cover is refused and recorded as Unauthorized. How do I read the IoT Detail Records? 1. Go to Logs \u2192 IDR (MQTT), the IoT Management page. 2. Filter by Topic, Message Type (Authorized Only, the default, All Messages or Unauthorized Only) and From Date and To Date. The page opens on the last 24 hours. 3. Click Search Messages. Each row shows the Account, Topic, Direction (Outbound for a message your client published, Inbound for a copy delivered to one of your subscribers), Date/Time, Status (Authorized or Unauthorized), Amount and the Payload; hover over a long payload to read it in full. Download &lt;n&gt; Records saves them as mqtt_messages.csv. The same records are available from the API as /buyers/iothistory; see Use the API. What if something goes wrong? You see What to do Wrong Prefix for login The MQTT Login must start with your 10-digit customer number. Use the generated login. This Login is not unique Another account already uses that login. Generate new credentials. The broker refuses the connection Check the Username and Password on the account's page and that the account isn't blocked. Messages are recorded as Unauthorized The account's balance plus credit limit can't cover the fee. Add funds. A subscriber receives nothing Both clients must log in with the same account's credentials; topics don't cross between accounts.",
   "sections": [
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "Add funds to the account you'll use, or let it use another account's balance. Messages are refused when the balance plus credit limit can't cover the per-message fee."
    },
    {
     "id": "how-do-i-create-an-iot-account",
     "title": "How do I create an IoT account?",
     "text": "1. Go to Accounts and click Add Account. 2. Choose Protocol Type IoT (MQTT). 3. Enter a Name. The MQTT Login is generated for you: it starts with your 10-digit customer number, which can't be changed. Click Generate IoT Credentials for a fresh MQTT Password. 4. Set Use Balance if the account should spend another account's balance, and click Add Account. See Create your first account for the other fields. The account's edit page shows the credentials as Username and Password and a mosquitto_pub Usage Sample with the broker host and port, for example: mosquitto_pub -u <login> -P <password> -h <host> -p 1888 -t 'SomeTopic' -m \"YourTestMessage\""
    },
    {
     "id": "how-do-i-connect-and-send-messages",
     "title": "How do I connect and send messages?",
     "text": "Connect each device or application to the broker with the account's Username and Password. Anonymous connections are refused. Use plain topic names such as sensors/temperature. Topics are private to your account: the broker keeps each account's topics apart, so your subscribers only receive what your own clients publish, and you can't see other accounts' traffic. Every message is checked against the account's balance before it is accepted: - publishing a message is charged the per-message fee; - delivering it to each subscriber is charged the fee again. A message the balance can't cover is refused and recorded as Unauthorized."
    },
    {
     "id": "how-do-i-read-the-iot-detail-records",
     "title": "How do I read the IoT Detail Records?",
     "text": "1. Go to Logs \u2192 IDR (MQTT), the IoT Management page. 2. Filter by Topic, Message Type (Authorized Only, the default, All Messages or Unauthorized Only) and From Date and To Date. The page opens on the last 24 hours. 3. Click Search Messages. Each row shows the Account, Topic, Direction (Outbound for a message your client published, Inbound for a copy delivered to one of your subscribers), Date/Time, Status (Authorized or Unauthorized), Amount and the Payload; hover over a long payload to read it in full. Download &lt;n&gt; Records saves them as mqtt_messages.csv. The same records are available from the API as /buyers/iothistory; see Use the API."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do Wrong Prefix for login The MQTT Login must start with your 10-digit customer number. Use the generated login. This Login is not unique Another account already uses that login. Generate new credentials. The broker refuses the connection Check the Username and Password on the account's page and that the account isn't blocked. Messages are recorded as Unauthorized The account's balance plus credit limit can't cover the fee. Add funds. A subscriber receives nothing Both clients must log in with the same account's credentials; topics don't cross between accounts."
    }
   ]
  },
  {
   "slug": "virtual-numbers-dids",
   "section": "buyers",
   "title": "Buy and manage virtual phone numbers (DIDs)",
   "description": "Find and buy virtual phone numbers (DIDs) on TelecomsXchange, route them to SIP or SMPP, handle KYC, renewals, price changes and cancellations, update numbers in bulk by CSV, or place a back order.",
   "summary": "Go to DIDs \u2192 Market View, search by prefix, country or description, click Buy, enter the SIP endpoint for a voice number or the SMPP endpoint for an SMS number, choose the billing account and click Complete Purchase. The setup fee and first recurring fee are charged straight away.",
   "url": "https://help.telecomsxchange.com/buyers/virtual-numbers-dids/",
   "markdown_url": "https://help.telecomsxchange.com/buyers/virtual-numbers-dids.md",
   "updated": "2026-10-21",
   "keywords": [
    "did",
    "virtual number",
    "phone number",
    "buy did",
    "kyc",
    "get verified",
    "document verification",
    "did renewal",
    "cancel did",
    "release number",
    "sip endpoint",
    "smpp endpoint",
    "csv edit",
    "bulk update",
    "price change",
    "subscription logs",
    "back order",
    "nexmo"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "What am I charged when I buy a number?",
     "a": "The setup fee plus the first recurring fee (monthly, quarterly or annual), from the billing account you choose. They appear in Payment History as 'Setup Fee for DID <number>' and '<cycle> charge Fee for DID <number>'. Calls and SMS on the number are billed at the voice and SMS rates shown."
    },
    {
     "q": "What does the KYC badge mean?",
     "a": "The number needs document verification, such as address proof, ID or company documents. It is billed immediately but works only after the seller approves your documents, and the fees are non-refundable."
    },
    {
     "q": "How do renewals work?",
     "a": "About 7 days before renewal you get a Phone Numbers Renewal Reminder. The recurring fee is charged automatically on the Next Bill date; if your balance plus credit limit can't cover it, the number is unsubscribed."
    },
    {
     "q": "How do I cancel a number?",
     "a": "Open the number's DID Settings and click Release under Cancel Number. The number is released at once and the seller is notified. Fees already paid are not refunded."
    },
    {
     "q": "Can I change the routing of many numbers at once?",
     "a": "Yes. Download your numbers from Purchased DIDs, put EDIT in the Upload Action column, change the Pointed To SIP, SIP (secondary) or SMPP columns and upload the file."
    },
    {
     "q": "The number I need isn't listed. What can I do?",
     "a": "Go to DIDs \u2192 My Back Orders, click Place New Back Order and describe the prefix, country, network and quantity you need. Back orders are free."
    }
   ],
   "text": "How traffic on your number reaches you 1. Seller's number: Listed in DIDs Market View; KYC may apply 2. TelecomsXchange (via inbound call or SMS): Bills voice, SMS and recurring fees 3. Your server (via sip:user@domain:port): Primary SIP, optional failover, or SMPP endpoint Sellers list local, mobile, toll-free and other virtual phone numbers (DIDs) in the DID marketplace. You buy a number, point it at your SIP or SMPP server, and receive calls or SMS on it. Before you start - Add funds to the account you'll bill the number to. The setup fee and first recurring fee are charged at purchase. - Create an account if you don't have one. If it has an IP address, the purchase page fills in your SIP or SMPP endpoint from it. How do I find a number? 1. Go to DIDs \u2192 Market View. 2. Enter a Number Prefix, Country or Description. At least one of them is required. 3. Narrow the search if you like with Seller, DID Type (National, Mobile, Toll Free or Special), Local Requirements (Any or Local Only) and Capabilities (Voice, SMS, Video, Fax). Voice is ticked when you first open the page, so SMS-only numbers are hidden until you untick it. 4. Choose how many Results Per Page and click Search DIDs. Clear Filters resets the form. You'll see each number's Voice Rate, SMS Rate, Recurring Fee (per month, quarter or year), Setup Fee, Capacity, type and capabilities. A KYC badge means you must provide documents before the number works. Numbers of type Special appear as Grey. When a seller has scheduled a price increase, the number is listed a second time as \"<number> YYYY-MM-DD\" with the prices that apply from that date. Anonymous sellers show Anonymous; clicking it opens a message to them. With Local Requirements set to Any and Seller empty or Nexmo, the search also includes numbers from the Nexmo inventory, listed under seller Nexmo. They always carry the KYC badge. Click Download N DIDs to save the results as a CSV file. If nothing matches, the page offers to place a back order. How do I buy a number? 1. Click Buy on the number. 2. On Confirm Purchase, check the DID Details: Setup Fee, Recurring Fee, Voice Rate, Increment (billing interval), SMS Rate and Seller. 3. Under Routing Configuration, enter where TelecomsXchange delivers traffic. The fields depend on the number's capabilities, and each one shown is required: - for a voice, video or fax number, SIP Endpoint (Primary), in the format sip:user@domain:port, and optionally SIP Endpoint (Secondary); - for an SMS number, SMPP Endpoint, in the format smpp:login:password:number@host:port; - a number with both capabilities needs both. 4. Choose the Billing Account. The list shows each account's balance. 5. Click Complete Purchase. The setup fee and the first recurring fee are charged at once, and the number's DID Settings page opens. You also get a \"TCXC DID purchase Notification\" email, and so does the seller. If the billing account uses another account's balance, the fees come from that balance. The balance plus credit limit must cover both fees. In Payment History the charges appear as \"Setup Fee for DID <number>\" and \"<cycle> charge Fee for DID <number>\". The purchase email gives the TelecomsXchange server IP. Whitelist it in your firewall so inbound calls to the number aren't blocked. What if the number needs documents (KYC)? Numbers with the KYC badge show a VERIFICATION ALERT on the purchase page. The number is billed immediately but activated only after the seller approves your documents. The setup fee and recurring fee are non-refundable. The seller can ask for: - Address Proof - LOA (Letter of Intent) - Passport/ID Card - Company Articles of Incorporation - anything listed under Other Notes After you buy, send the documents to the seller, for example through Messages, or click Get Verified (KYC) on Purchased DIDs to open the online verification form. When the seller marks them verified you get a documents verified email, and Documents Verified is ticked in the number's DID Settings. How do I change where a number is routed? 1. Go to DIDs \u2192 Purchased DIDs (the page is titled My DIDs). Filter by Number Prefix, Country or Description if you have many numbers. 2. Click \u22ee on the number's row and choose Edit DID. 3. In DID Settings, change Point to SIP (Primary), Point to SIP (Failover) or Point to SMPP. Tick SIP DNS SRV to use DNS SRV for the SIP host; then leave the port out. The DID Information block above is read-only. 4. Click Save Settings. Return to DIDs goes back without saving. You'll see \"DID entry has been updated.\" Purchased DIDs lists each number with its Fees, Next Bill date, Billing Account, Seller and Routed To. Click the info icons under Fees and Routed To to see the rates and the endpoints. A Price change badge on a number shows a coming price increase and its date; hover over it to see the new prices. How do I update or release many numbers at once? 1. In DIDs \u2192 Purchased DIDs, click Download All DIDs (or Download N DIDs for the filtered list). You get a CSV file of your numbers. 2. In the first column, Upload Action, enter: - EDIT to change the number's routing. Then fill in Pointed To SIP, Pointed To SIP (secondary) and Pointed To SMPP in the same formats as on the purchase page. The columns the number needs (SIP for voice, SMPP for SMS) must be filled. - CANCEL to release the number. - Leave it empty on numbers you don't want to touch. 3. Choose the file under Upload DID File and click Search DIDs. You'll see \"DIDs have been uploaded.\" If any row has an error, nothing is changed and you get the file back as numbers_upload_errors.csv, with the error at the end of each row. How do renewals and cancellations work? - Reminder: about 7 days before renewal you get a \"Phone Numbers Renewal Reminder!\" email from rates@telecomsxchange.com, with a table of the numbers, their renewal dates, cost and account balance, the total cost and a Recharge Balance button. Each number is included once per billing cycle. - Low funds: when a renewal is due within 14 days and the account's balance plus credit limit won't cover its numbers' recurring fees, you get a \"TCXC DID Auto Unsubscribe Notification!\" warning with a Top up balance button. - Renewal: on the Next Bill date the recurring fee is charged (\"<fee> charge for DID <number>\" in Payment History) and the number is renewed for another month, quarter or year. - Price changes: when a seller changes a number's price you get a \"TCXC DID Rate Notification! DID: <number>\" email with the new recurring fee, call and SMS prices, billing interval, capabilities and the date they take effect. - Cancel: in DID Settings, click Release under Cancel Number. There is no confirmation step. You'll see \"Unsubscribed successfully\". The number is released at once, its routing and document verification are cleared, and the seller gets a \"Number Cancelation Alert\" email. Fees already paid are not refunded. If the billing account's balance plus credit limit can't pay a renewal, the number is unsubscribed automatically and goes back to the seller, and you get a \"TCXC DID Auto Unsubscribe Notification! DID: <number>\" email. Keep the account topped up to keep your numbers. DIDs \u2192 Subscription Logs shows your purchases and cancellations as DID Number, Seller, Action and Timestamp. The action is subscribe for a purchase, manual_unsubscribe for a release and balance_unsubscribe for an automatic unsubscribe; renewals are not logged. Filter by DID Number and Seller and click Search Logs. What if the number I need isn't listed? 1. Go to DIDs \u2192 My Back Orders and click Place New Back Order. 2. Fill in Prefix and Quantity (digits only), Country (as spelled in the market) and Network, and tick the Features Required. 3. Describe your need in Explain DID Use Case. 4. Click Submit Back Order. You'll see DID Back Order Confirmed: \"Thank you, the order has been placed. We will contact you shortly.\" The TelecomsXchange team is notified and sources the numbers from sellers; you aren't charged for back orders. Your requests are listed in My Back Orders with their Date, Prefix, Country, Network, Capabilities, Quantity, Notes and Status (Pending or Completed). Orders are typically processed within 24 to 48 hours. What if something goes wrong? You see What to do You have to specify some search pattern, prefix or country or description Enter a prefix, country or description before you search. You have to specify longer prefix for this country code For numbers starting with 1, enter at least 3 digits. No DIDs Found No listed number matches. Untick Voice if you want SMS-only numbers, widen the search, or place a back order. Selected account does not have enough funds: this DID needs $X up front ($Y setup + $Z first Monthly fee) Add funds or choose another billing account. This DID can not be purchased, it has been already sold Another buyer bought it. Pick another number. Can not purchase DID on this account The billing account isn't one of yours. Choose one of your own accounts. DID subscribe error: \u2026 A Nexmo number could not be reserved. Try again later or pick another number. Point to SIP should be in format sip:12345abc@sip.domain.com:5060 Enter the SIP endpoint as sip:user@host:port. Point to SIP (secondary) should be in format sip:12345abc@sip.domain.com:5060 Fix the secondary endpoint or leave it empty. Point to SMPP should be in format smpp:login:pass:12345abc@smpp.domain.com:2776 Enter the SMPP endpoint as smpp:login:password:number@host:port. Invalid format of DNS SRV for Point to SIP In DID Settings with SIP DNS SRV ticked, remove the port from the endpoint. Supported 'Upload Actions' are none, 'CANCEL' and 'EDIT'. Use only EDIT, CANCEL or an empty Upload Action in the CSV. DID number should contain only digits. / DID number should be of length 4..15 digits. Fix the Number column in the CSV; remove + and spaces. This number has not been purchased . The CSV row names a number that isn't on one of your accounts. Remove the row. There was an error The number could not be released. Refresh Purchased DIDs and try again. Empty value for Country/Prefix/Quantity not allowed Fill in all three fields of the back order. Only numeric value supported for Prefix/Quantity Enter the prefix and quantity as digits. Country '\u2026' not found Type the country name as it appears in the market. Empty value for 'Explain DID use case' not allowed Describe your use case in the back order.",
   "sections": [
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "- Add funds to the account you'll bill the number to. The setup fee and first recurring fee are charged at purchase. - Create an account if you don't have one. If it has an IP address, the purchase page fills in your SIP or SMPP endpoint from it."
    },
    {
     "id": "how-do-i-find-a-number",
     "title": "How do I find a number?",
     "text": "1. Go to DIDs \u2192 Market View. 2. Enter a Number Prefix, Country or Description. At least one of them is required. 3. Narrow the search if you like with Seller, DID Type (National, Mobile, Toll Free or Special), Local Requirements (Any or Local Only) and Capabilities (Voice, SMS, Video, Fax). Voice is ticked when you first open the page, so SMS-only numbers are hidden until you untick it. 4. Choose how many Results Per Page and click Search DIDs. Clear Filters resets the form. You'll see each number's Voice Rate, SMS Rate, Recurring Fee (per month, quarter or year), Setup Fee, Capacity, type and capabilities. A KYC badge means you must provide documents before the number works. Numbers of type Special appear as Grey. When a seller has scheduled a price increase, the number is listed a second time as \"<number> YYYY-MM-DD\" with the prices that apply from that date. Anonymous sellers show Anonymous; clicking it opens a message to them. With Local Requirements set to Any and Seller empty or Nexmo, the search also includes numbers from the Nexmo inventory, listed under seller Nexmo. They always carry the KYC badge. Click Download N DIDs to save the results as a CSV file. If nothing matches, the page offers to place a back order."
    },
    {
     "id": "how-do-i-buy-a-number",
     "title": "How do I buy a number?",
     "text": "1. Click Buy on the number. 2. On Confirm Purchase, check the DID Details: Setup Fee, Recurring Fee, Voice Rate, Increment (billing interval), SMS Rate and Seller. 3. Under Routing Configuration, enter where TelecomsXchange delivers traffic. The fields depend on the number's capabilities, and each one shown is required: - for a voice, video or fax number, SIP Endpoint (Primary), in the format sip:user@domain:port, and optionally SIP Endpoint (Secondary); - for an SMS number, SMPP Endpoint, in the format smpp:login:password:number@host:port; - a number with both capabilities needs both. 4. Choose the Billing Account. The list shows each account's balance. 5. Click Complete Purchase. The setup fee and the first recurring fee are charged at once, and the number's DID Settings page opens. You also get a \"TCXC DID purchase Notification\" email, and so does the seller. If the billing account uses another account's balance, the fees come from that balance. The balance plus credit limit must cover both fees. In Payment History the charges appear as \"Setup Fee for DID <number>\" and \"<cycle> charge Fee for DID <number>\". The purchase email gives the TelecomsXchange server IP. Whitelist it in your firewall so inbound calls to the number aren't blocked."
    },
    {
     "id": "what-if-the-number-needs-documents-kyc",
     "title": "What if the number needs documents (KYC)?",
     "text": "Numbers with the KYC badge show a VERIFICATION ALERT on the purchase page. The number is billed immediately but activated only after the seller approves your documents. The setup fee and recurring fee are non-refundable. The seller can ask for: - Address Proof - LOA (Letter of Intent) - Passport/ID Card - Company Articles of Incorporation - anything listed under Other Notes After you buy, send the documents to the seller, for example through Messages, or click Get Verified (KYC) on Purchased DIDs to open the online verification form. When the seller marks them verified you get a documents verified email, and Documents Verified is ticked in the number's DID Settings."
    },
    {
     "id": "how-do-i-change-where-a-number-is-routed",
     "title": "How do I change where a number is routed?",
     "text": "1. Go to DIDs \u2192 Purchased DIDs (the page is titled My DIDs). Filter by Number Prefix, Country or Description if you have many numbers. 2. Click \u22ee on the number's row and choose Edit DID. 3. In DID Settings, change Point to SIP (Primary), Point to SIP (Failover) or Point to SMPP. Tick SIP DNS SRV to use DNS SRV for the SIP host; then leave the port out. The DID Information block above is read-only. 4. Click Save Settings. Return to DIDs goes back without saving. You'll see \"DID entry has been updated.\" Purchased DIDs lists each number with its Fees, Next Bill date, Billing Account, Seller and Routed To. Click the info icons under Fees and Routed To to see the rates and the endpoints. A Price change badge on a number shows a coming price increase and its date; hover over it to see the new prices."
    },
    {
     "id": "how-do-i-update-or-release-many-numbers-at-once",
     "title": "How do I update or release many numbers at once?",
     "text": "1. In DIDs \u2192 Purchased DIDs, click Download All DIDs (or Download N DIDs for the filtered list). You get a CSV file of your numbers. 2. In the first column, Upload Action, enter: - EDIT to change the number's routing. Then fill in Pointed To SIP, Pointed To SIP (secondary) and Pointed To SMPP in the same formats as on the purchase page. The columns the number needs (SIP for voice, SMPP for SMS) must be filled. - CANCEL to release the number. - Leave it empty on numbers you don't want to touch. 3. Choose the file under Upload DID File and click Search DIDs. You'll see \"DIDs have been uploaded.\" If any row has an error, nothing is changed and you get the file back as numbers_upload_errors.csv, with the error at the end of each row."
    },
    {
     "id": "how-do-renewals-and-cancellations-work",
     "title": "How do renewals and cancellations work?",
     "text": "- Reminder: about 7 days before renewal you get a \"Phone Numbers Renewal Reminder!\" email from rates@telecomsxchange.com, with a table of the numbers, their renewal dates, cost and account balance, the total cost and a Recharge Balance button. Each number is included once per billing cycle. - Low funds: when a renewal is due within 14 days and the account's balance plus credit limit won't cover its numbers' recurring fees, you get a \"TCXC DID Auto Unsubscribe Notification!\" warning with a Top up balance button. - Renewal: on the Next Bill date the recurring fee is charged (\"<fee> charge for DID <number>\" in Payment History) and the number is renewed for another month, quarter or year. - Price changes: when a seller changes a number's price you get a \"TCXC DID Rate Notification! DID: <number>\" email with the new recurring fee, call and SMS prices, billing interval, capabilities and the date they take effect. - Cancel: in DID Settings, click Release under Cancel Number. There is no confirmation step. You'll see \"Unsubscribed successfully\". The number is released at once, its routing and document verification are cleared, and the seller gets a \"Number Cancelation Alert\" email. Fees already paid are not refunded. If the billing account's balance plus credit limit can't pay a renewal, the number is unsubscribed automatically and goes back to the seller, and you get a \"TCXC DID Auto Unsubscribe Notification! DID: <number>\" email. Keep the account topped up to keep your numbers. DIDs \u2192 Subscription Logs shows your purchases and cancellations as DID Number, Seller, Action and Timestamp. The action is subscribe for a purchase, manual_unsubscribe for a release and balance_unsubscribe for an automatic unsubscribe; renewals are not logged. Filter by DID Number and Seller and click Search Logs."
    },
    {
     "id": "what-if-the-number-i-need-isnt-listed",
     "title": "What if the number I need isn't listed?",
     "text": "1. Go to DIDs \u2192 My Back Orders and click Place New Back Order. 2. Fill in Prefix and Quantity (digits only), Country (as spelled in the market) and Network, and tick the Features Required. 3. Describe your need in Explain DID Use Case. 4. Click Submit Back Order. You'll see DID Back Order Confirmed: \"Thank you, the order has been placed. We will contact you shortly.\" The TelecomsXchange team is notified and sources the numbers from sellers; you aren't charged for back orders. Your requests are listed in My Back Orders with their Date, Prefix, Country, Network, Capabilities, Quantity, Notes and Status (Pending or Completed). Orders are typically processed within 24 to 48 hours."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do You have to specify some search pattern, prefix or country or description Enter a prefix, country or description before you search. You have to specify longer prefix for this country code For numbers starting with 1, enter at least 3 digits. No DIDs Found No listed number matches. Untick Voice if you want SMS-only numbers, widen the search, or place a back order. Selected account does not have enough funds: this DID needs $X up front ($Y setup + $Z first Monthly fee) Add funds or choose another billing account. This DID can not be purchased, it has been already sold Another buyer bought it. Pick another number. Can not purchase DID on this account The billing account isn't one of yours. Choose one of your own accounts. DID subscribe error: \u2026 A Nexmo number could not be reserved. Try again later or pick another number. Point to SIP should be in format sip:12345abc@sip.domain.com:5060 Enter the SIP endpoint as sip:user@host:port. Point to SIP (secondary) should be in format sip:12345abc@sip.domain.com:5060 Fix the secondary endpoint or leave it empty. Point to SMPP should be in format smpp:login:pass:12345abc@smpp.domain.com:2776 Enter the SMPP endpoint as smpp:login:password:number@host:port. Invalid format of DNS SRV for Point to SIP In DID Settings with SIP DNS SRV ticked, remove the port from the endpoint. Supported 'Upload Actions' are none, 'CANCEL' and 'EDIT'. Use only EDIT, CANCEL or an empty Upload Action in the CSV. DID number should contain only digits. / DID number should be of length 4..15 digits. Fix the Number column in the CSV; remove + and spaces. This number has not been purchased . The CSV row names a number that isn't on one of your accounts. Remove the row. There was an error The number could not be released. Refresh Purchased DIDs and try again. Empty value for Country/Prefix/Quantity not allowed Fill in all three fields of the back order. Only numeric value supported for Prefix/Quantity Enter the prefix and quantity as digits. Country '\u2026' not found Type the country name as it appears in the market. Empty value for 'Explain DID use case' not allowed Describe your use case in the back order."
    }
   ]
  },
  {
   "slug": "esims",
   "section": "buyers",
   "title": "Buy and manage eSIMs",
   "description": "Buy prepaid data eSIM packages for any country or region on TelecomsXchange, install them with a QR code or LPA code, check the data left and top up from My eSIMs.",
   "summary": "Go to eSIMs \u2192 Market View, search by country, region or Global, click Purchase on a package, choose the account to pay from and click Confirm Purchase. The eSIM is issued at once with a QR code and LPA code to install it. My eSIMs shows the data and days left and lets you top up.",
   "url": "https://help.telecomsxchange.com/buyers/esims/",
   "markdown_url": "https://help.telecomsxchange.com/buyers/esims.md",
   "updated": "2026-10-23",
   "keywords": [
    "esim",
    "esim marketplace",
    "data package",
    "travel data",
    "roaming data",
    "qr code",
    "lpa",
    "iccid",
    "top up esim",
    "esim order"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "How do I pay for an eSIM?",
     "a": "From the balance of the account you choose at checkout, at the price shown. The account's balance plus credit limit must cover it. There is no card checkout for eSIM purchases."
    },
    {
     "q": "When do I get the eSIM?",
     "a": "Immediately. The QR code and LPA code appear as soon as the purchase is confirmed, and you can open them again any time from My eSIMs."
    },
    {
     "q": "Can I cancel or refund an eSIM?",
     "a": "No. eSIM purchases and top-ups are final and can't be cancelled in the portal. Check the countries, data and validity in Step 1 before you confirm."
    },
    {
     "q": "Does a top-up give me a new QR code?",
     "a": "No. A top-up adds data to the eSIM you already installed, so there's nothing new to scan."
    },
    {
     "q": "Why does My eSIMs show -- for data remaining?",
     "a": "Usage is fetched live from the seller every time the page loads. If the provider doesn't answer in time, the card shows -- until you reload."
    }
   ],
   "text": "How an eSIM gets onto a device 1. eSIM Market View: Country, region and global data packages 2. Your balance (via Purchase): Pays the price shown; no card checkout 3. Seller (eSIM provider) (via Confirm Purchase): Checks stock live and issues the eSIM 4. Your eSIM (via issued at once): QR code, LPA code and ICCID 5. Device (via QR or Quick Install): Uses the data; top up from My eSIMs eSIM providers selling on TelecomsXchange, such as Airalo and eSimplified, list their prepaid data packages for single countries, regions and the whole world in the eSIM marketplace. You buy a package from your prepaid balance and get an eSIM to install straight away, for your own team's travel or to resell to your customers. The eSIMs menu appears when the marketplace is switched on for the platform. Before you start - Add funds to the account you'll pay from. Packages are paid from the balance at the price shown; there is no card checkout. - Have the device the eSIM is for to hand. It must support eSIM, and an iPhone needs iOS 17.4 or later for one-tap install. How do I find a package? 1. Go to eSIMs \u2192 Market View. 2. Under Search Packages, choose the Search Type: Country, Region or Global. 3. Enter the Country or Region name; suggestions appear as you type. For Global there's nothing to enter. 4. Narrow the results if you like with Vendor, Data Amount, Validity Period and Max Price (USD). 5. Click Search eSIMs. Each result shows the package name, the Vendor, Data in GB, Validity in days, the Networks it uses (All means any network in the country), the Countries it covers and the Price in USD. A country search also lists regional packages that cover that country. Results are sorted with exact matches for the country first, then by price. Switch between List, Grid and Cover Flow with the buttons above the results. Hover over a truncated Countries list to see every country a regional package covers. How do I buy an eSIM? 1. Click Purchase on the package. Stock and price are checked live with the seller. 2. Step 1 of 3 - Package Details shows the data, days valid, network, countries and Total Price. Click Continue to Payment. 3. Step 2 of 3 - Payment Details shows the account you're paying from under Using; click Change to pick another. Check Current Balance, Purchase Amount and Remaining Balance, then click Confirm Purchase. 4. Purchase Successful shows your Order #, the last four digits of the ICCID, the QR code and the LPA code. The price is charged to the account at once. If the account uses another account's balance, that balance is charged. The charge appears in Payment History with the note \"Esim order\", the order number and the last four digits of the ICCID. Keep the eSIM details before you close the window: - Download QR saves the QR code as esim_qr_code.png. - Copy LPA copies the activation code to paste on the device. - Email eSIM sends an \"ESIM purchase\" email with the package details, the LPA code and the QR code attached to your account's email address. You can also open the QR code again later from My eSIMs. How do I install the eSIM? - iPhone (iOS 17.4 or later): tap Quick Install on the phone itself; the eSIM is added without scanning. - Any phone: open Settings \u2192 Cellular or Mobile Data, tap Add Cellular Plan or Add eSIM, scan the QR code with the phone's camera or enter the LPA code manually, and follow the on-screen steps. The eSIM is ready to use once installed. Data and validity count down as the seller defines; see the package's Days Valid in Step 1. How do I check my eSIMs and the data left? Go to eSIMs \u2192 My eSIMs. Each eSIM shows: - its status badge, such as ENABLED, INSTALLED, RELEASED or DISABLED; - the last four digits of the ICCID; - Data Remaining in GB and Days Left; - Network, Countries and the Purchased date. Status and usage are fetched live from the seller when the page loads, so it can take a few seconds. Search by the full ICCID to find one eSIM. The buttons on each eSIM: - QR shows the QR code again. - Install opens the Quick Install link for iPhones. - Details shows the Status, Status Message, Last Operation Date, Assigned Account, Countries and the activation QR code. - Top Up adds data; see below. How do I top up an eSIM? 1. In My eSIMs, click Top Up on the eSIM. 2. Step 1 of 3 - Select TopUp package lists the packages the seller offers for that eSIM with their prices. Choose one and click Next Step. 3. Step 2 of 3 - Payment Details: choose the account under Using and click Confirm Purchase. 4. Purchase Successful shows the Order #. The top-up applies to the installed eSIM; there's no new QR code. The charge appears in Payment History with the note \"Esim Top-Up order\" and the package name. Where do I see my orders? eSIMs \u2192 Order History lists every purchase and top-up with Order Date, Package, Country, Account, Type (purchase or top-up), Amount and Status. It opens on the last 24 hours; set Date From and Date To and click Search Orders for an earlier period. Can I buy eSIMs from my own system? Yes. The API has /buyers/esim/market to search, /buyers/esim/purchase to buy, /buyers/esim/list for your eSIMs, /buyers/esim/topup/list and /buyers/esim/topup/purchase for top-ups, and /buyers/esim/orders. See Use the API. What if something goes wrong? You see What to do Country/Region is required Enter a country or region name, or choose Global. No Packages Found Widen the filters, or try the region the country is in. Package Unavailable, or \"Package is not available anymore, please repeat your search\" The seller has no stock or has changed the package. Search again for the current list. Insufficient available funds The account's balance plus credit limit doesn't cover the price. Add funds or choose another account. Purchase Failed: \"Package purchase has failed due to unexpected error\" The provider didn't issue the eSIM. You aren't charged; try again or pick another package. TopUp packages are not available for this eSIM The seller offers no top-ups for that package. Buy a new package instead. API Error, please try again later The seller didn't answer. Wait a minute and try again. Email sending failed Use Download QR or Copy LPA instead, or open the QR code from My eSIMs.",
   "sections": [
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "- Add funds to the account you'll pay from. Packages are paid from the balance at the price shown; there is no card checkout. - Have the device the eSIM is for to hand. It must support eSIM, and an iPhone needs iOS 17.4 or later for one-tap install."
    },
    {
     "id": "how-do-i-find-a-package",
     "title": "How do I find a package?",
     "text": "1. Go to eSIMs \u2192 Market View. 2. Under Search Packages, choose the Search Type: Country, Region or Global. 3. Enter the Country or Region name; suggestions appear as you type. For Global there's nothing to enter. 4. Narrow the results if you like with Vendor, Data Amount, Validity Period and Max Price (USD). 5. Click Search eSIMs. Each result shows the package name, the Vendor, Data in GB, Validity in days, the Networks it uses (All means any network in the country), the Countries it covers and the Price in USD. A country search also lists regional packages that cover that country. Results are sorted with exact matches for the country first, then by price. Switch between List, Grid and Cover Flow with the buttons above the results. Hover over a truncated Countries list to see every country a regional package covers."
    },
    {
     "id": "how-do-i-buy-an-esim",
     "title": "How do I buy an eSIM?",
     "text": "1. Click Purchase on the package. Stock and price are checked live with the seller. 2. Step 1 of 3 - Package Details shows the data, days valid, network, countries and Total Price. Click Continue to Payment. 3. Step 2 of 3 - Payment Details shows the account you're paying from under Using; click Change to pick another. Check Current Balance, Purchase Amount and Remaining Balance, then click Confirm Purchase. 4. Purchase Successful shows your Order #, the last four digits of the ICCID, the QR code and the LPA code. The price is charged to the account at once. If the account uses another account's balance, that balance is charged. The charge appears in Payment History with the note \"Esim order\", the order number and the last four digits of the ICCID. Keep the eSIM details before you close the window: - Download QR saves the QR code as esim_qr_code.png. - Copy LPA copies the activation code to paste on the device. - Email eSIM sends an \"ESIM purchase\" email with the package details, the LPA code and the QR code attached to your account's email address. You can also open the QR code again later from My eSIMs."
    },
    {
     "id": "how-do-i-install-the-esim",
     "title": "How do I install the eSIM?",
     "text": "- iPhone (iOS 17.4 or later): tap Quick Install on the phone itself; the eSIM is added without scanning. - Any phone: open Settings \u2192 Cellular or Mobile Data, tap Add Cellular Plan or Add eSIM, scan the QR code with the phone's camera or enter the LPA code manually, and follow the on-screen steps. The eSIM is ready to use once installed. Data and validity count down as the seller defines; see the package's Days Valid in Step 1."
    },
    {
     "id": "how-do-i-check-my-esims-and-the-data-left",
     "title": "How do I check my eSIMs and the data left?",
     "text": "Go to eSIMs \u2192 My eSIMs. Each eSIM shows: - its status badge, such as ENABLED, INSTALLED, RELEASED or DISABLED; - the last four digits of the ICCID; - Data Remaining in GB and Days Left; - Network, Countries and the Purchased date. Status and usage are fetched live from the seller when the page loads, so it can take a few seconds. Search by the full ICCID to find one eSIM. The buttons on each eSIM: - QR shows the QR code again. - Install opens the Quick Install link for iPhones. - Details shows the Status, Status Message, Last Operation Date, Assigned Account, Countries and the activation QR code. - Top Up adds data; see below."
    },
    {
     "id": "how-do-i-top-up-an-esim",
     "title": "How do I top up an eSIM?",
     "text": "1. In My eSIMs, click Top Up on the eSIM. 2. Step 1 of 3 - Select TopUp package lists the packages the seller offers for that eSIM with their prices. Choose one and click Next Step. 3. Step 2 of 3 - Payment Details: choose the account under Using and click Confirm Purchase. 4. Purchase Successful shows the Order #. The top-up applies to the installed eSIM; there's no new QR code. The charge appears in Payment History with the note \"Esim Top-Up order\" and the package name."
    },
    {
     "id": "where-do-i-see-my-orders",
     "title": "Where do I see my orders?",
     "text": "eSIMs \u2192 Order History lists every purchase and top-up with Order Date, Package, Country, Account, Type (purchase or top-up), Amount and Status. It opens on the last 24 hours; set Date From and Date To and click Search Orders for an earlier period."
    },
    {
     "id": "can-i-buy-esims-from-my-own-system",
     "title": "Can I buy eSIMs from my own system?",
     "text": "Yes. The API has /buyers/esim/market to search, /buyers/esim/purchase to buy, /buyers/esim/list for your eSIMs, /buyers/esim/topup/list and /buyers/esim/topup/purchase for top-ups, and /buyers/esim/orders. See Use the API."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do Country/Region is required Enter a country or region name, or choose Global. No Packages Found Widen the filters, or try the region the country is in. Package Unavailable, or \"Package is not available anymore, please repeat your search\" The seller has no stock or has changed the package. Search again for the current list. Insufficient available funds The account's balance plus credit limit doesn't cover the price. Add funds or choose another account. Purchase Failed: \"Package purchase has failed due to unexpected error\" The provider didn't issue the eSIM. You aren't charged; try again or pick another package. TopUp packages are not available for this eSIM The seller offers no top-ups for that package. Buy a new package instead. API Error, please try again later The seller didn't answer. Wait a minute and try again. Email sending failed Use Download QR or Copy LPA instead, or open the QR code from My eSIMs."
    }
   ]
  },
  {
   "slug": "hlr-lookup",
   "section": "buyers",
   "title": "Check a phone number with HLR Lookup",
   "description": "Use HLR Lookup on TelecomsXchange to see a mobile number's carrier, MCC/MNC, ported status and roaming status for $0.05 per lookup, from the portal or the API.",
   "summary": "Go to Routing \u2192 HLR Lookup, enter the number in international format without + (for example 14155551234), choose the billing account and click Perform Lookup. Each lookup costs $0.05 from that account and shows the country, carrier, MCC/MNC, ported status and roaming status.",
   "url": "https://help.telecomsxchange.com/buyers/hlr-lookup/",
   "markdown_url": "https://help.telecomsxchange.com/buyers/hlr-lookup.md",
   "updated": "2026-10-21",
   "keywords": [
    "hlr",
    "hlr lookup",
    "number lookup",
    "carrier lookup",
    "mcc mnc",
    "ported number",
    "roaming",
    "number validation",
    "network query"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "How much does a lookup cost?",
     "a": "$0.05 per number, charged to the billing account you choose. The account's balance plus credit limit must cover it."
    },
    {
     "q": "What does the result tell me?",
     "a": "The number's country, current carrier and network type, its MCC/MNC code, whether it has been ported away from its original network, and whether it is currently roaming. The raw response also has the number in international and national format and the original carrier."
    },
    {
     "q": "Am I charged when the lookup finds nothing?",
     "a": "Yes. A lookup is charged once it has been sent, even when the network returns no data for the number. Check the number format before you run it."
    },
    {
     "q": "Can I look up many numbers at once?",
     "a": "Not in the portal: it takes one number at a time. Use the API, /buyers/hlr/lookup/{number}, from your own system to run lookups in bulk."
    },
    {
     "q": "Where can I see my past lookups?",
     "a": "Each lookup is a \u2212$0.05 line in Payment History with the note \"HLR Lookup\" and the number. The results themselves aren't stored for you, so copy the JSON if you need to keep it."
    }
   ],
   "text": "What one HLR lookup returns 1. Phone number: International format, digits only 2. TelecomsXchange (via Perform Lookup): Charges $0.05 to the billing account 3. Mobile networks (via HLR query): Report who serves the number right now 4. Lookup result (via Raw API Response): Carrier, MCC/MNC, ported and roaming status An HLR lookup asks the mobile networks about a number right now: which carrier serves it, whether it has been ported, and whether the phone is roaming. Use it to clean a dialling list, check why calls to a number fail, or pick the right route before you send traffic. Before you start - Add funds to the account you'll bill the lookups to. Each lookup costs $0.05, and the account's balance plus credit limit must cover it. - Have the number in international format with the country code, digits only: 14155551234, not +1 (415) 555-1234. How do I look up a number? 1. Go to Routing \u2192 HLR Lookup. 2. Under Perform Lookup, enter the number in Phone Number. 3. Choose the Billing Account. The list shows each account with its balance. 4. Click Perform Lookup. The cost is shown next to the button, Cost per lookup: $0.05, and is charged to the billing account as soon as the lookup is sent. On the CDR and SDR pages, click a destination number and choose HLR Lookup: &lt;number&gt;. HLR Lookup opens with that number filled in; pick the billing account and click Perform Lookup. What does the result show? Lookup Results has two parts: - Country: the flag and name of the number's country. - Network Information: - Carrier Name: the network that serves the number now, with its network type (such as mobile or landline) as a badge. - MCC/MNC Code: the carrier's mobile country and network code. Copy MCC/MNC copies it. - Ported Status: Ported when the number has moved from the network it was issued on, Original Network when it hasn't, otherwise Unknown. - Roaming Status: Roaming or Home Network, otherwise Unknown. - Lookup Cost: $0.05 USD. Open Raw API Response for the full answer as JSON, and Copy JSON to keep it. It also includes the number in international and national format, the country's ISO codes and the original carrier. If every field says Unknown or N/A, the networks returned no data for that number. The reason is in Raw API Response under status_message. The lookup is still charged. Where do I see what I've spent? Every lookup is a \u2212$0.05 line in Payment History with the note HLR Lookup &lt;number&gt; and the billing account. Filter Notes by HLR Lookup to see them all. The results aren't stored for you: copy the JSON if you need a record. Can I run lookups from my own system? Yes. Call GET /buyers/hlr/lookup/{number}?i_account={account id} on the API with HTTP Digest authentication: your portal login as the username and your API Key as the password. Turn on Allow API Access in Profile & Preferences first. See Use the API for the setup and the full endpoint list. The reply is {\"status\": \"success\", \"response\": {...}} with the same fields as Raw API Response, and each call is charged $0.05 to the account you name. What if something goes wrong? You see What to do Account balance insufficient to run query Add funds to the billing account or choose another one. CLD missing, or wrong format (only digits are supported) Enter the number with the country code and digits only: no +, spaces or dashes. Every field shows Unknown or N/A The networks have no data for the number. Check it in Raw API Response; the lookup is still charged. Account error (API) Add i_account with the ID of one of your accounts to the request. This API expects parameter add=1 for HLR requests Use the /buyers/hlr/lookup/{number} path, which sets it for you.",
   "sections": [
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "- Add funds to the account you'll bill the lookups to. Each lookup costs $0.05, and the account's balance plus credit limit must cover it. - Have the number in international format with the country code, digits only: 14155551234, not +1 (415) 555-1234."
    },
    {
     "id": "how-do-i-look-up-a-number",
     "title": "How do I look up a number?",
     "text": "1. Go to Routing \u2192 HLR Lookup. 2. Under Perform Lookup, enter the number in Phone Number. 3. Choose the Billing Account. The list shows each account with its balance. 4. Click Perform Lookup. The cost is shown next to the button, Cost per lookup: $0.05, and is charged to the billing account as soon as the lookup is sent. On the CDR and SDR pages, click a destination number and choose HLR Lookup: &lt;number&gt;. HLR Lookup opens with that number filled in; pick the billing account and click Perform Lookup."
    },
    {
     "id": "what-does-the-result-show",
     "title": "What does the result show?",
     "text": "Lookup Results has two parts: - Country: the flag and name of the number's country. - Network Information: - Carrier Name: the network that serves the number now, with its network type (such as mobile or landline) as a badge. - MCC/MNC Code: the carrier's mobile country and network code. Copy MCC/MNC copies it. - Ported Status: Ported when the number has moved from the network it was issued on, Original Network when it hasn't, otherwise Unknown. - Roaming Status: Roaming or Home Network, otherwise Unknown. - Lookup Cost: $0.05 USD. Open Raw API Response for the full answer as JSON, and Copy JSON to keep it. It also includes the number in international and national format, the country's ISO codes and the original carrier. If every field says Unknown or N/A, the networks returned no data for that number. The reason is in Raw API Response under status_message. The lookup is still charged."
    },
    {
     "id": "where-do-i-see-what-ive-spent",
     "title": "Where do I see what I've spent?",
     "text": "Every lookup is a \u2212$0.05 line in Payment History with the note HLR Lookup &lt;number&gt; and the billing account. Filter Notes by HLR Lookup to see them all. The results aren't stored for you: copy the JSON if you need a record."
    },
    {
     "id": "can-i-run-lookups-from-my-own-system",
     "title": "Can I run lookups from my own system?",
     "text": "Yes. Call GET /buyers/hlr/lookup/{number}?i_account={account id} on the API with HTTP Digest authentication: your portal login as the username and your API Key as the password. Turn on Allow API Access in Profile & Preferences first. See Use the API for the setup and the full endpoint list. The reply is {\"status\": \"success\", \"response\": {...}} with the same fields as Raw API Response, and each call is charged $0.05 to the account you name."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do Account balance insufficient to run query Add funds to the billing account or choose another one. CLD missing, or wrong format (only digits are supported) Enter the number with the country code and digits only: no +, spaces or dashes. Every field shows Unknown or N/A The networks have no data for the number. Check it in Raw API Response; the lookup is still charged. Account error (API) Add i_account with the ID of one of your accounts to the request. This API expects parameter add=1 for HLR requests Use the /buyers/hlr/lookup/{number} path, which sets it for you."
    }
   ]
  },
  {
   "slug": "api",
   "section": "buyers",
   "title": "Get started with the API",
   "description": "A quickstart for the TelecomsXchange buyer API: turn on access, authenticate with HTTP Digest, check your balance, find and buy a route, and pull your call records, with full requests and responses.",
   "summary": "Tick Allow API Access in Profile & Preferences and copy your API key. Call https://apiv2.telecomsxchange.com with HTTP Digest authentication (your username, and the API key as the password). In four calls you can read your balances, search Market View, buy a route and pull your call records. The API reference documents every endpoint.",
   "url": "https://help.telecomsxchange.com/buyers/api/",
   "markdown_url": "https://help.telecomsxchange.com/buyers/api.md",
   "updated": "2026-10-22",
   "keywords": [
    "api",
    "api key",
    "rest api",
    "quickstart",
    "digest authentication",
    "integration",
    "automation",
    "apiv2",
    "curl",
    "python",
    "php",
    "mcp server",
    "rate limit"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Where do I find my API key?",
     "a": "In Profile & Preferences, under API Key. Once Allow API Access is on, the dashboard also shows an API Keys card with your API Login and the key."
    },
    {
     "q": "Is there a sandbox?",
     "a": "No. Calls run against your live account, and calls that spend money charge it exactly as the portal does. Try purchases on an account with a small balance first."
    },
    {
     "q": "Which languages are supported?",
     "a": "Any language with an HTTP client that supports Digest authentication. The API reference shows every call in cURL, Python and PHP."
    },
    {
     "q": "Is there a request limit?",
     "a": "Yes. Each account has an hourly quota and a per-second cap. Above either you get HTTP 429 with the message \"Rate limit exceeded\". Contact support if you need more."
    },
    {
     "q": "Can my AI assistant use the API?",
     "a": "Yes. TelecomsXchange publishes an MCP server at telecomsxchange.com/mcp-server that gives assistants such as Claude access to the same endpoints with your API key."
    }
   ],
   "text": "How an API call is authenticated 1. API key: Enabled with Allow API Access in preferences 2. Your code (via key as password): cURL, Python or PHP with Digest support 3. TelecomsXchange API (via POST /buyers/balance): Checks credentials, account and rate limit 4. JSON reply (via status: success): Balances, routes, tech prefix or call records This quickstart takes you from no key to buying a route and reading its call records in five steps, in about ten minutes. Every request and response below is real in shape; your IDs and prices will differ. For every endpoint and parameter, see the API reference. Before you start - A buyer login with at least one account that has funds. - curl, or Python with requests, or PHP with the curl extension. The examples use cURL; the reference shows each call in all three. Turn on API access 1. Go to Settings \u2192 Profile & Preferences. 2. Tick Allow API Access. 3. Copy the API Key and click Save. Regenerate replaces the key at once; the old one stops working. Keep the key out of source code. The examples read it from the environment: bash export TCXC_USERNAME=\"your-portal-username\" export TCXC_API_KEY=\"the-key-from-preferences\" Make your first call Read the balance of every account. Each call uses HTTP Digest authentication: your username, and the API key as the password. bash curl --digest -u \"$TCXC_USERNAME:$TCXC_API_KEY\" -X POST \\ https://apiv2.telecomsxchange.com/buyers/balance json { \"status\": \"success\", \"accounts\": [ { \"i_account\": \"1022\", \"name\": \"Northwind\", \"currency\": \"USD\", \"balance\": \"4106.06\", \"credit_limit\": \"0\", \"smpp\": \"0\", \"blocked\": \"0\" } ] } Note the i_account of the account you'll send traffic from: most buyer calls take it. An account that shares another account's balance shows that account in use_balance and its balance in parent_balance. {\"status\": \"fail\", \"error\": \"authorization error\"} means the username or key is wrong, or Allow API Access is off. See Errors. Find a route Search Market View for a destination prefix. Leave smpp out for voice routes, or set it to 1 for SMS. bash curl --digest -u \"$TCXC_USERNAME:$TCXC_API_KEY\" -X POST \\ https://apiv2.telecomsxchange.com/marketview/search \\ -d searchform=1 -d prefix=4477 -d type=CLI -d pager=20 -d off=0 Each route in rates carries its seller, price per minute (price_1, price_n with the billing intervals), daily and weekly ASR and ACD, and its i_connection: the ID you buy it with. Prices already include the platform commission, as in the portal. See Search Market View for every filter. Buy the route Purchasing creates an interconnect between your account and the seller's route. It costs nothing; you pay per minute or message as traffic flows. bash curl --digest -u \"$TCXC_USERNAME:$TCXC_API_KEY\" -X POST \\ https://apiv2.telecomsxchange.com/buyers/interconnect \\ -d add=1 -d i_account=1022 -d id=38 -d agree=yes json { \"status\": \"success\", \"message\": \"Interconnection with TATA Communications completed\", \"rates_url\": \"https://members.telecomsxchange.com/accounts.php?download=38\", \"tech_prefix\": \"33270#\", \"route_type\": \"voice\" } Send calls to sip01.telecomsxchange.com, port 5060, with the tech_prefix in front of the number in E.164 format: 33270#447700900123. See Send your first call. Read your call records Fetch the call detail records for a time range. show=good returns answered calls, bad failed ones, all both. bash curl --digest -u \"$TCXC_USERNAME:$TCXC_API_KEY\" -X POST \\ https://apiv2.telecomsxchange.com/buyers/callhistory \\ -d show=all -d \"date_from=2026-10-21 00:00:00\" -d \"date_to=2026-10-21 23:59:59\" Each record has the number dialled (CLD), caller (CLI), connect_time, billed_duration, the price, the amount charged (customer_amount), the seller and route, and the SIP disconnect_code with its reason. Where next To Use Create accounts and authorise IP addresses Accounts Route through several sellers with failover or load balancing Routing groups Test a route with a callback call Start a route test call Buy phone numbers or eSIMs Phone numbers, eSIMs Check a number's carrier before you dial HLR lookups Reconcile spend Balances and payments, Reports Talk to a seller Messages What if something goes wrong? You see What to do HTTP 401, authorization required Send Digest credentials. Most clients need Digest switched on explicitly, such as --digest in cURL. authorization error Check the username and key, and that Allow API Access is ticked in Profile & Preferences. Account error The i_account isn't one of your accounts. Read the IDs from /buyers/balance. Rate limit exceeded (HTTP 429) Slow down and retry with backoff. A call works in the portal but not in the API Compare the fields with the API reference; they match the portal's form fields.",
   "sections": [
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "- A buyer login with at least one account that has funds. - curl, or Python with requests, or PHP with the curl extension. The examples use cURL; the reference shows each call in all three."
    },
    {
     "id": "turn-on-api-access",
     "title": "Turn on API access",
     "text": "1. Go to Settings \u2192 Profile & Preferences. 2. Tick Allow API Access. 3. Copy the API Key and click Save. Regenerate replaces the key at once; the old one stops working. Keep the key out of source code. The examples read it from the environment: bash export TCXC_USERNAME=\"your-portal-username\" export TCXC_API_KEY=\"the-key-from-preferences\""
    },
    {
     "id": "make-your-first-call",
     "title": "Make your first call",
     "text": "Read the balance of every account. Each call uses HTTP Digest authentication: your username, and the API key as the password. bash curl --digest -u \"$TCXC_USERNAME:$TCXC_API_KEY\" -X POST \\ https://apiv2.telecomsxchange.com/buyers/balance json { \"status\": \"success\", \"accounts\": [ { \"i_account\": \"1022\", \"name\": \"Northwind\", \"currency\": \"USD\", \"balance\": \"4106.06\", \"credit_limit\": \"0\", \"smpp\": \"0\", \"blocked\": \"0\" } ] } Note the i_account of the account you'll send traffic from: most buyer calls take it. An account that shares another account's balance shows that account in use_balance and its balance in parent_balance. {\"status\": \"fail\", \"error\": \"authorization error\"} means the username or key is wrong, or Allow API Access is off. See Errors."
    },
    {
     "id": "find-a-route",
     "title": "Find a route",
     "text": "Search Market View for a destination prefix. Leave smpp out for voice routes, or set it to 1 for SMS. bash curl --digest -u \"$TCXC_USERNAME:$TCXC_API_KEY\" -X POST \\ https://apiv2.telecomsxchange.com/marketview/search \\ -d searchform=1 -d prefix=4477 -d type=CLI -d pager=20 -d off=0 Each route in rates carries its seller, price per minute (price_1, price_n with the billing intervals), daily and weekly ASR and ACD, and its i_connection: the ID you buy it with. Prices already include the platform commission, as in the portal. See Search Market View for every filter."
    },
    {
     "id": "buy-the-route",
     "title": "Buy the route",
     "text": "Purchasing creates an interconnect between your account and the seller's route. It costs nothing; you pay per minute or message as traffic flows. bash curl --digest -u \"$TCXC_USERNAME:$TCXC_API_KEY\" -X POST \\ https://apiv2.telecomsxchange.com/buyers/interconnect \\ -d add=1 -d i_account=1022 -d id=38 -d agree=yes json { \"status\": \"success\", \"message\": \"Interconnection with TATA Communications completed\", \"rates_url\": \"https://members.telecomsxchange.com/accounts.php?download=38\", \"tech_prefix\": \"33270#\", \"route_type\": \"voice\" } Send calls to sip01.telecomsxchange.com, port 5060, with the tech_prefix in front of the number in E.164 format: 33270#447700900123. See Send your first call."
    },
    {
     "id": "read-your-call-records",
     "title": "Read your call records",
     "text": "Fetch the call detail records for a time range. show=good returns answered calls, bad failed ones, all both. bash curl --digest -u \"$TCXC_USERNAME:$TCXC_API_KEY\" -X POST \\ https://apiv2.telecomsxchange.com/buyers/callhistory \\ -d show=all -d \"date_from=2026-10-21 00:00:00\" -d \"date_to=2026-10-21 23:59:59\" Each record has the number dialled (CLD), caller (CLI), connect_time, billed_duration, the price, the amount charged (customer_amount), the seller and route, and the SIP disconnect_code with its reason."
    },
    {
     "id": "where-next",
     "title": "Where next",
     "text": "To Use Create accounts and authorise IP addresses Accounts Route through several sellers with failover or load balancing Routing groups Test a route with a callback call Start a route test call Buy phone numbers or eSIMs Phone numbers, eSIMs Check a number's carrier before you dial HLR lookups Reconcile spend Balances and payments, Reports Talk to a seller Messages"
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do HTTP 401, authorization required Send Digest credentials. Most clients need Digest switched on explicitly, such as --digest in cURL. authorization error Check the username and key, and that Allow API Access is ticked in Profile & Preferences. Account error The i_account isn't one of your accounts. Read the IDs from /buyers/balance. Rate limit exceeded (HTTP 429) Slow down and retry with backoff. A call works in the portal but not in the API Compare the fields with the API reference; they match the portal's form fields."
    }
   ]
  },
  {
   "slug": "call-records-and-live-calls",
   "section": "buyers",
   "title": "Call records (CDRs), live calls and daily stats",
   "description": "Search and download your TelecomsXchange call detail records, watch and disconnect live calls, and download or email daily and weekly CDR and statistics files.",
   "summary": "Go to Logs \u2192 CDR (Voice), set the prefix, call status and dates, and click Search CDRs; click Download to export them as CSV. Live Calls shows calls in progress, and Calls Stats (Voice) has daily files, plus weekly files every Monday.",
   "url": "https://help.telecomsxchange.com/buyers/call-records-and-live-calls/",
   "markdown_url": "https://help.telecomsxchange.com/buyers/call-records-and-live-calls.md",
   "updated": "2026-10-21",
   "keywords": [
    "cdr",
    "call detail records",
    "download cdr",
    "csv",
    "live calls",
    "disconnect call",
    "call stats",
    "daily statistics",
    "weekly statistics",
    "sip code",
    "disconnect reason",
    "billed duration",
    "hlr lookup",
    "sdr",
    "idr"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "How do I download my CDRs?",
     "a": "Open Logs \u2192 CDR (Voice), set the prefix, call status and dates, click Search CDRs, then click Download N CDRs. You get the matching records as a CSV file."
    },
    {
     "q": "Why don't I see my failed calls?",
     "a": "The CDR page opens on Successful Only. Set Call Status to Failed Only or All Calls and search again."
    },
    {
     "q": "What period does the CDR page show by default?",
     "a": "The last 24 hours. Change From Date and To Date to search further back."
    },
    {
     "q": "Is the Duration column the real call length?",
     "a": "No. Duration in the CDR list is the billed duration, rounded up to the route's billing interval. The downloaded CSV has both Duration and Billed Duration."
    },
    {
     "q": "Can I end a call that's stuck?",
     "a": "Yes. In Live Calls, click DISCONNECT on the call's row."
    },
    {
     "q": "Can I get my statistics by email?",
     "a": "Yes. Turn on Send Daily Statistics Email in Settings \u2192 Profile & Preferences to get your daily CDR report and daily statistics file by email. On Mondays you also get the weekly files."
    }
   ],
   "text": "Where each call's record ends up 1. Your calls: Every call sent from your accounts 2. TelecomsXchange: Records numbers, duration, cost and SIP code 3. Live Calls (via while up): Calls in progress, refreshed every 60 seconds 4. CDR (Voice) (via when it ends): Searchable list, downloads as cdrs.csv 5. Calls Stats (Voice) (via midnight UTC): Daily CDRS and STATS zips, optionally emailed Every call you send leaves a record you can search, download and reconcile. You can also watch calls while they happen and get a file of each day's traffic. How do I find a call in the CDRs? 1. Go to Logs \u2192 CDR (Voice). 2. In Prefix, enter the dialed number or its first digits, if you need to. 3. Choose the Call Status: All Calls, Successful Only or Failed Only. The page opens on Successful Only. 4. Set From Date and To Date. By default the page shows the last 24 hours. 5. Click Search CDRs. Clear Filters takes you back to the defaults. You'll see each call's Account, CLD (dialed number), CLI (caller ID), Destination (country and description), Duration, Date, Amount, Rate, Seller, Route, Disconnect Reason and SIP Code. - Duration is the billed duration, rounded up to the route's billing interval, not the time the call was connected. - Rate is the per-minute price after the first interval; hover over it to see First and Next prices. - Seller links to the seller's profile. Routes sold anonymously show Anonymous; clicking it opens a message to the seller. - Calls received on your virtual numbers show Inbound as the route. Hover over a CLD and click HLR Lookup: <number> to check whether that number is live and which network it belongs to. See HLR lookup. Failed calls are as useful as answered ones. The SIP Code and Disconnect Reason tell you whether the destination was busy (486), not found (404) or rejected by the route. How do I download my CDRs? 1. Search for the calls you need, as above. The button only appears when the search found records. 2. Click Download N CDRs. You get a cdrs.csv file with these columns: Account, CLD, CLI, Country, Description, Duration, Seller, Route, Billed Duration, Amount, Billing Price 1, Billing Price N, Setup Time, Connect Time, Disconnect Time, SIP Call-Id, Disconnect Reason and SIP Code. How do I see calls happening right now? 1. Click Live Calls in the menu. 2. To narrow the list, enter a Prefix or choose a Call Type: All Calls, Connected Only or Routing Only. 3. Click Search Calls. Clear Filters shows everything again. You'll see the Total Calls, Connected and Routing counts, and each call's Account, CLD, CLI, Country, Description, Setup Time, Connect Time, Status, Duration, Seller and Route. The route shows a type badge (CLI, NON-CLI, TDM); calls arriving on your virtual numbers show Inbound with a DID badge. A call that is still Routing shows - as its duration. The page refreshes every 60 seconds. You can switch between List, Card and Cover Flow views, and click Download N Calls to save the list as live_calls.csv (Account, CLD, CLI, Country, Description, Seller, Route, Type, Authorized Amount, Authorized Duration, Setup Time, Connect Time, SIP Call-Id). To end a call, click DISCONNECT in its Command column. You'll see \"Disconnect command was successfull\" when it worked. How do I get daily statistics? 1. Go to Logs \u2192 Calls Stats (Voice). The page is titled Statistics & Reports. 2. Under Select Date for CDR Download, find the day in the calendar. Use the month and year dropdowns or Today to move around. 3. Click CDRS for that day's call records or STATS for its statistics file. Files are built at midnight UTC for the previous day and are zipped CSV files: - CDRS (cdrs-daily-YYYY-MM-DD.csv.zip): every call of the day, failed calls included, with Country, Description, Account, CLD, CLI, SIP call_id, Duration, Billed Duration, Connect Time, Prefix, Price1, PriceN, Interval1, IntervalN, Amount, Partner, Route and Disconnect Code. - STATS (daily-YYYY-MM-DD.csv.zip): one row per prefix and route with Duration (min), Successful Calls, Amount, Failed Calls, ASR (%) and ACD (sec), a SUBTOTAL row per seller route and a TOTAL row at the end. Every Monday the same two files are also built for the previous seven days (cdrs-weekly-\u2026 and weekly-\u2026). They appear in the first column of the calendar row. View Live CDRs at the top of the page takes you back to the searchable CDR list. To get the files by email instead, turn on Send Daily Statistics Email in Settings \u2192 Profile & Preferences. Each day you receive \"Buyer's Daily CDR Report\" and \"Buyer's Daily Statistics File\" with the files attached; on Mondays you receive the weekly pair as well, so four emails in all. Where are SMS and IoT logs? - Logs \u2192 SDR (SMS): your SMS delivery records, with the sender-ID settings for your SMPP accounts. See send SMS. - Logs \u2192 IDR (MQTT): the messages your IoT accounts published and received. See IoT and MQTT. - Logs \u2192 Web Access: who logged in to your account and when (main user only). What if something goes wrong? You see What to do No Call Records Found Check the dates and the Call Status. Failed calls only appear with Failed Only or All Calls. No Download button on the CDR page The button only appears after a search that found records. Widen the dates or change the Call Status. Disconnect command has failed The call could not be ended. Refresh Live Calls; if it's still listed, try DISCONNECT again. Call not found The call has already ended. Refresh Live Calls.",
   "sections": [
    {
     "id": "how-do-i-find-a-call-in-the-cdrs",
     "title": "How do I find a call in the CDRs?",
     "text": "1. Go to Logs \u2192 CDR (Voice). 2. In Prefix, enter the dialed number or its first digits, if you need to. 3. Choose the Call Status: All Calls, Successful Only or Failed Only. The page opens on Successful Only. 4. Set From Date and To Date. By default the page shows the last 24 hours. 5. Click Search CDRs. Clear Filters takes you back to the defaults. You'll see each call's Account, CLD (dialed number), CLI (caller ID), Destination (country and description), Duration, Date, Amount, Rate, Seller, Route, Disconnect Reason and SIP Code. - Duration is the billed duration, rounded up to the route's billing interval, not the time the call was connected. - Rate is the per-minute price after the first interval; hover over it to see First and Next prices. - Seller links to the seller's profile. Routes sold anonymously show Anonymous; clicking it opens a message to the seller. - Calls received on your virtual numbers show Inbound as the route. Hover over a CLD and click HLR Lookup: <number> to check whether that number is live and which network it belongs to. See HLR lookup. Failed calls are as useful as answered ones. The SIP Code and Disconnect Reason tell you whether the destination was busy (486), not found (404) or rejected by the route."
    },
    {
     "id": "how-do-i-download-my-cdrs",
     "title": "How do I download my CDRs?",
     "text": "1. Search for the calls you need, as above. The button only appears when the search found records. 2. Click Download N CDRs. You get a cdrs.csv file with these columns: Account, CLD, CLI, Country, Description, Duration, Seller, Route, Billed Duration, Amount, Billing Price 1, Billing Price N, Setup Time, Connect Time, Disconnect Time, SIP Call-Id, Disconnect Reason and SIP Code."
    },
    {
     "id": "how-do-i-see-calls-happening-right-now",
     "title": "How do I see calls happening right now?",
     "text": "1. Click Live Calls in the menu. 2. To narrow the list, enter a Prefix or choose a Call Type: All Calls, Connected Only or Routing Only. 3. Click Search Calls. Clear Filters shows everything again. You'll see the Total Calls, Connected and Routing counts, and each call's Account, CLD, CLI, Country, Description, Setup Time, Connect Time, Status, Duration, Seller and Route. The route shows a type badge (CLI, NON-CLI, TDM); calls arriving on your virtual numbers show Inbound with a DID badge. A call that is still Routing shows - as its duration. The page refreshes every 60 seconds. You can switch between List, Card and Cover Flow views, and click Download N Calls to save the list as live_calls.csv (Account, CLD, CLI, Country, Description, Seller, Route, Type, Authorized Amount, Authorized Duration, Setup Time, Connect Time, SIP Call-Id). To end a call, click DISCONNECT in its Command column. You'll see \"Disconnect command was successfull\" when it worked."
    },
    {
     "id": "how-do-i-get-daily-statistics",
     "title": "How do I get daily statistics?",
     "text": "1. Go to Logs \u2192 Calls Stats (Voice). The page is titled Statistics & Reports. 2. Under Select Date for CDR Download, find the day in the calendar. Use the month and year dropdowns or Today to move around. 3. Click CDRS for that day's call records or STATS for its statistics file. Files are built at midnight UTC for the previous day and are zipped CSV files: - CDRS (cdrs-daily-YYYY-MM-DD.csv.zip): every call of the day, failed calls included, with Country, Description, Account, CLD, CLI, SIP call_id, Duration, Billed Duration, Connect Time, Prefix, Price1, PriceN, Interval1, IntervalN, Amount, Partner, Route and Disconnect Code. - STATS (daily-YYYY-MM-DD.csv.zip): one row per prefix and route with Duration (min), Successful Calls, Amount, Failed Calls, ASR (%) and ACD (sec), a SUBTOTAL row per seller route and a TOTAL row at the end. Every Monday the same two files are also built for the previous seven days (cdrs-weekly-\u2026 and weekly-\u2026). They appear in the first column of the calendar row. View Live CDRs at the top of the page takes you back to the searchable CDR list. To get the files by email instead, turn on Send Daily Statistics Email in Settings \u2192 Profile & Preferences. Each day you receive \"Buyer's Daily CDR Report\" and \"Buyer's Daily Statistics File\" with the files attached; on Mondays you receive the weekly pair as well, so four emails in all."
    },
    {
     "id": "where-are-sms-and-iot-logs",
     "title": "Where are SMS and IoT logs?",
     "text": "- Logs \u2192 SDR (SMS): your SMS delivery records, with the sender-ID settings for your SMPP accounts. See send SMS. - Logs \u2192 IDR (MQTT): the messages your IoT accounts published and received. See IoT and MQTT. - Logs \u2192 Web Access: who logged in to your account and when (main user only)."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do No Call Records Found Check the dates and the Call Status. Failed calls only appear with Failed Only or All Calls. No Download button on the CDR page The button only appears after a search that found records. Widen the dates or change the Call Status. Disconnect command has failed The call could not be ended. Refresh Live Calls; if it's still listed, try DISCONNECT again. Call not found The call has already ended. Refresh Live Calls."
    }
   ]
  },
  {
   "slug": "preferences-notifications-messages",
   "section": "buyers",
   "title": "Preferences, email notifications and messaging sellers",
   "description": "Set your TelecomsXchange buyer preferences: rates and billing emails, rate-update subject, two-step login, login timeout and API access. Message sellers and leave reviews.",
   "summary": "Go to Settings \u2192 Profile & Preferences, change your login, security, API and email settings, and click Update Preferences. Login Timeout is the idle auto-logout in minutes (0 = never). To contact a seller, open their profile, click Send Message, and read replies under the envelope icon.",
   "url": "https://help.telecomsxchange.com/buyers/preferences-notifications-messages/",
   "markdown_url": "https://help.telecomsxchange.com/buyers/preferences-notifications-messages.md",
   "updated": "2026-10-21",
   "keywords": [
    "preferences",
    "profile",
    "profile picture",
    "rates email",
    "billing email",
    "noc email",
    "notifications",
    "rate updates",
    "rates subject template",
    "login timeout",
    "auto logout",
    "api access",
    "api key",
    "regenerate api key",
    "two-step verification",
    "rmd number",
    "messages",
    "inbox",
    "seller profile",
    "review",
    "web users",
    "team"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Where do rate change notifications go?",
     "a": "To your main email and your Rates Email, for every purchased route you haven't blocked. Each email has the changed rates attached as a zipped CSV file named <seller>_<route>_rates_update.csv.zip."
    },
    {
     "q": "Can I customize the subject of rate update emails?",
     "a": "Yes. Set Rates Subject Template in Settings \u2192 Profile & Preferences. You can use {{seller}}, {{route}} and {{product}} as variables."
    },
    {
     "q": "What does Login Timeout do?",
     "a": "It is the idle auto-logout in minutes: after that long without opening a page, you are signed out. Enter 0 to never be logged out automatically. The new value applies as soon as you save."
    },
    {
     "q": "Who receives low-balance alerts?",
     "a": "Your main email and every address in Billing / Accounting Email. The alert is sent when an account's balance drops below its Notify if balance lower than value."
    },
    {
     "q": "How do I message a seller?",
     "a": "Click the seller's name in Market View or My Interconnections to open their profile, then click Send Message. You can message anonymous sellers too; their identity stays hidden."
    },
    {
     "q": "How do I give colleagues access?",
     "a": "The main user goes to Settings \u2192 Web Users and clicks Invite New User. Each colleague gets their own login, so nobody shares the main password. See the Web Users guide for roles and the access log."
    }
   ],
   "text": "How a seller's rate change reaches you 1. Seller: Changes rates on a route you bought 2. TelecomsXchange (via new rate deck): Skips routes you have blocked 3. Your inboxes (via Rates Subject Template): Main email and every Rates Email address 4. Rate update CSV (via zipped attachment): Prices, intervals and Change Status per row Profile & Preferences controls how you sign in, whether the API is on, and which addresses get rate sheets and balance alerts. You can also message sellers and review them from their profile. How do I change my preferences? 1. Go to Settings \u2192 Profile & Preferences, or click your avatar in the top bar. 2. Change the fields you need (see the table below). 3. Click Update Preferences. You'll see \"Your profile has been updated.\" If you changed your Public, NOC, Rates or Billing email, TelecomsXchange also sends a \"TCXC Email change notification\" to your main email. These are the sections on the page: Section What you can set Profile Image Upload New Photo: PNG only, 278x278 px recommended. Until you upload one, your avatar shows the first letter of your login Login Settings New Password and Confirm Password (at least 8 characters; leave blank to keep the current one). Login Username, Email Address, SMS Phone and RMD Number are shown for reference; ask support@telecomsxchange.com to change them. Security Settings Enable Two-Step Verification (a texted code at sign-in) and Login Timeout (minutes): the idle time after which you're logged out. 0 means never. The new value applies to your current session as soon as you save. System Settings Send Daily Statistics Email, Max Allowed Price, your API Key and Allow API Access. Clicking Regenerate replaces the key immediately, without Update Preferences; update any integration that uses the old one. See Use the API. Company Profile Company and contact details, Public Email, NOC Email, Rates Email, Billing / Accounting Email and Rates Subject Template To put several addresses in Rates Email, NOC Email or Billing / Accounting Email, separate them with commas and no spaces, for example rates@example.com,noc@example.com. Web users (team members) see a shorter page: they can change their own password and two-step verification only. The photo, Login Timeout and company settings belong to the main account. Which emails will TelecomsXchange send me? Email Sent to When Purchased Route Confirmation (\"You're Interconnected!\") Main email A few minutes after you buy a route. It includes the host, tech prefix, codecs and rate sheet. Rate updates Main email and Rates Email When a seller changes rates on a route you bought. Not sent for routes you've blocked. The attached CSV lists Country, Description, Prefix, Effective From, the prices and intervals (SMS: MCCMNC and Price) and a Change Status per row. Account Low Balance Notification (\"Low Balance Alert\") Main email and Billing / Accounting Email When an account's balance drops below its Notify if balance lower than value. Has a Top up balance button. Daily report Main email Every day, if Send Daily Statistics Email is on. The report is attached. Phone Numbers Renewal Reminder Main email When your numbers renew within the next 7 days Important Alert! Main email (and SMS) When an account, authorized IP or login is added (\"New origination account registered\" / \"New origination IP registered\"), and when an additional IP is removed or changed (\"Origination IP address has been removed\") TCXC Email change notification Main email When you change your Public, NOC, Rates or Billing email Use Rates Subject Template to make rate emails easy to filter, for example [TCXC rates] {{seller}} / {{route}}. The variables are {{seller}}, {{route}} and {{product}} (Voice or SMS). How do I message a seller? 1. Click a seller's name in Market View or My Interconnections. Their Vendor Profile opens, with company information, Member Since, an Available Routes table (each route with its capacity, a Download Tariff icon and a Purchase Route icon) and Reviews with the average rating, for example \"4.5/5.0 (12 reviews)\". 2. Click Send Message. 3. Enter a Subject and your message. 4. Click Send Message. The seller gets an email about your message, and you'll see it in your Sent messages. If the seller is anonymous, the message still reaches them and their name stays hidden; in your inbox they appear as \"Anonymous Owner of Route name\" (or \"Anonymous Owner of DID Number n\"). How do I read and answer messages? 1. Click the envelope icon in the top bar. A red badge shows how many messages are unread. 2. Choose Inbox or Sent. 3. Click Read next to a message. Messages from TelecomsXchange staff show the sender TelecomsXchange, and a reply shows an In Reply To link to the message it answers. 4. Type your answer under Reply to this Message and click Send Reply. You can reply only to messages addressed to you (not to your own sent messages). The seller gets an email about your reply; replies to TelecomsXchange staff stay in the portal. Replies to an anonymous seller are marked \"(Anonymously)\". How do I review a seller? 1. Open the seller's Vendor Profile. 2. Under Leave Feedback, choose a Rating from 5 - Excellent to 1 - Poor. 3. Write Your Review (more than 3 characters). 4. Click Submit Review. Your review appears under Reviews on the seller's profile, where other buyers can read it. How do I add team members? The main user goes to Settings \u2192 Web Users and clicks Invite New User; roles, blocking users and the Logs \u2192 Web Access log are covered in Invite your team and review who logged in. What if something goes wrong? You see What to do ERROR! 'Password' should be at least 8 chars Use a password of 8 or more characters. ERROR!'Passwords' don't match Type the same password in New Password and Confirm Password. ERROR! Enter valid Rates Email address! Check each address. Separate several addresses with commas and no spaces. The same applies to the NOC and Billing email errors. ERROR! The uploaded profile picture is not a valid image. The file isn't a readable PNG. Export the picture again as PNG and upload it. Empty subject is not allowed Enter a Subject before you send the message. Empty message is not allowed Type a message before you send it.",
   "sections": [
    {
     "id": "how-do-i-change-my-preferences",
     "title": "How do I change my preferences?",
     "text": "1. Go to Settings \u2192 Profile & Preferences, or click your avatar in the top bar. 2. Change the fields you need (see the table below). 3. Click Update Preferences. You'll see \"Your profile has been updated.\" If you changed your Public, NOC, Rates or Billing email, TelecomsXchange also sends a \"TCXC Email change notification\" to your main email. These are the sections on the page: Section What you can set Profile Image Upload New Photo: PNG only, 278x278 px recommended. Until you upload one, your avatar shows the first letter of your login Login Settings New Password and Confirm Password (at least 8 characters; leave blank to keep the current one). Login Username, Email Address, SMS Phone and RMD Number are shown for reference; ask support@telecomsxchange.com to change them. Security Settings Enable Two-Step Verification (a texted code at sign-in) and Login Timeout (minutes): the idle time after which you're logged out. 0 means never. The new value applies to your current session as soon as you save. System Settings Send Daily Statistics Email, Max Allowed Price, your API Key and Allow API Access. Clicking Regenerate replaces the key immediately, without Update Preferences; update any integration that uses the old one. See Use the API. Company Profile Company and contact details, Public Email, NOC Email, Rates Email, Billing / Accounting Email and Rates Subject Template To put several addresses in Rates Email, NOC Email or Billing / Accounting Email, separate them with commas and no spaces, for example rates@example.com,noc@example.com. Web users (team members) see a shorter page: they can change their own password and two-step verification only. The photo, Login Timeout and company settings belong to the main account."
    },
    {
     "id": "which-emails-will-telecomsxchange-send-me",
     "title": "Which emails will TelecomsXchange send me?",
     "text": "Email Sent to When Purchased Route Confirmation (\"You're Interconnected!\") Main email A few minutes after you buy a route. It includes the host, tech prefix, codecs and rate sheet. Rate updates Main email and Rates Email When a seller changes rates on a route you bought. Not sent for routes you've blocked. The attached CSV lists Country, Description, Prefix, Effective From, the prices and intervals (SMS: MCCMNC and Price) and a Change Status per row. Account Low Balance Notification (\"Low Balance Alert\") Main email and Billing / Accounting Email When an account's balance drops below its Notify if balance lower than value. Has a Top up balance button. Daily report Main email Every day, if Send Daily Statistics Email is on. The report is attached. Phone Numbers Renewal Reminder Main email When your numbers renew within the next 7 days Important Alert! Main email (and SMS) When an account, authorized IP or login is added (\"New origination account registered\" / \"New origination IP registered\"), and when an additional IP is removed or changed (\"Origination IP address has been removed\") TCXC Email change notification Main email When you change your Public, NOC, Rates or Billing email Use Rates Subject Template to make rate emails easy to filter, for example [TCXC rates] {{seller}} / {{route}}. The variables are {{seller}}, {{route}} and {{product}} (Voice or SMS)."
    },
    {
     "id": "how-do-i-message-a-seller",
     "title": "How do I message a seller?",
     "text": "1. Click a seller's name in Market View or My Interconnections. Their Vendor Profile opens, with company information, Member Since, an Available Routes table (each route with its capacity, a Download Tariff icon and a Purchase Route icon) and Reviews with the average rating, for example \"4.5/5.0 (12 reviews)\". 2. Click Send Message. 3. Enter a Subject and your message. 4. Click Send Message. The seller gets an email about your message, and you'll see it in your Sent messages. If the seller is anonymous, the message still reaches them and their name stays hidden; in your inbox they appear as \"Anonymous Owner of Route name\" (or \"Anonymous Owner of DID Number n\")."
    },
    {
     "id": "how-do-i-read-and-answer-messages",
     "title": "How do I read and answer messages?",
     "text": "1. Click the envelope icon in the top bar. A red badge shows how many messages are unread. 2. Choose Inbox or Sent. 3. Click Read next to a message. Messages from TelecomsXchange staff show the sender TelecomsXchange, and a reply shows an In Reply To link to the message it answers. 4. Type your answer under Reply to this Message and click Send Reply. You can reply only to messages addressed to you (not to your own sent messages). The seller gets an email about your reply; replies to TelecomsXchange staff stay in the portal. Replies to an anonymous seller are marked \"(Anonymously)\"."
    },
    {
     "id": "how-do-i-review-a-seller",
     "title": "How do I review a seller?",
     "text": "1. Open the seller's Vendor Profile. 2. Under Leave Feedback, choose a Rating from 5 - Excellent to 1 - Poor. 3. Write Your Review (more than 3 characters). 4. Click Submit Review. Your review appears under Reviews on the seller's profile, where other buyers can read it."
    },
    {
     "id": "how-do-i-add-team-members",
     "title": "How do I add team members?",
     "text": "The main user goes to Settings \u2192 Web Users and clicks Invite New User; roles, blocking users and the Logs \u2192 Web Access log are covered in Invite your team and review who logged in."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do ERROR! 'Password' should be at least 8 chars Use a password of 8 or more characters. ERROR!'Passwords' don't match Type the same password in New Password and Confirm Password. ERROR! Enter valid Rates Email address! Check each address. Separate several addresses with commas and no spaces. The same applies to the NOC and Billing email errors. ERROR! The uploaded profile picture is not a valid image. The file isn't a readable PNG. Export the picture again as PNG and upload it. Empty subject is not allowed Enter a Subject before you send the message. Empty message is not allowed Type a message before you send it."
    }
   ]
  },
  {
   "slug": "web-users-and-access-logs",
   "section": "buyers",
   "title": "Invite your team and review who logged in",
   "description": "Give colleagues their own TelecomsXchange logins with Web Users: invite by email, choose a Default, Finance or Seller Access role, block or reactivate users, and check the Web Access log.",
   "summary": "Go to Settings \u2192 Web Users and click Invite New User. Enter the email, a phone number for two-step verification, a name and the role, and click Send Invitation. The person gets a \"Welcome to TCXC\" email with a link to choose their own username and password. Logs \u2192 Web Access shows every page request made on your account for the last 30 days.",
   "url": "https://help.telecomsxchange.com/buyers/web-users-and-access-logs/",
   "markdown_url": "https://help.telecomsxchange.com/buyers/web-users-and-access-logs.md",
   "updated": "2026-10-21",
   "keywords": [
    "web users",
    "team",
    "sub-user",
    "invite user",
    "roles",
    "finance role",
    "block user",
    "web access log",
    "audit log",
    "switch to seller panel",
    "two-step verification"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Who can invite users?",
     "a": "Only the main account. Invited users don't see Web Users or the Web Access log."
    },
    {
     "q": "What can a Finance user not do?",
     "a": "Manage routing groups. Everything else in the buyer portal, including accounts, Market View, purchases, top-ups and records, works as for the main account."
    },
    {
     "q": "A colleague left. How do I remove their access?",
     "a": "In Web Users, click Deactivate on their row. They can't log in until you click Activate again."
    },
    {
     "q": "How does two-step verification work for invited users?",
     "a": "Each user turns it on for themselves under Profile & Preferences \u2192 Enable Two-Step Verification. A 4-digit code is then sent by SMS to the phone number from the invitation at every login, and a browser that passed the check is remembered for 7 days."
    },
    {
     "q": "How long is the Web Access log kept?",
     "a": "30 days. Download it as CSV if you need to keep it longer."
    }
   ],
   "text": "How a colleague gets their own login 1. Main user: Invites from Settings \u2192 Web Users 2. Colleague (via Welcome to TCXC email): Chooses their own username and password 3. Access role (via signs in): Default, Finance or Seller Access limits 4. Web Access log (via logged): Every page request, kept 30 days Sharing one login makes it impossible to tell who changed a route or ordered a top-up. Web Users gives each colleague their own username and password on your account, with a role, and the Web Access log shows what everyone did. How do I invite a colleague? 1. Go to Settings \u2192 Web Users. The My Team page lists your users. 2. Click Invite New User. 3. Fill in: - Email Address: where the invitation goes. It must not already be used by another TelecomsXchange user. - Phone Number (For 2FA): with the country code, such as +19542405411. It is used for two-step verification. - Friendly Name: the name shown in the list and in logs. - Access Role: Default - Standard Access, Finance - Financial Management or, when your buyer account is linked to a seller account, Seller Access - Vendor Management. 4. Click Send Invitation. You'll see \"Web User has been added\", and the user appears as Pending Invite until they finish. They get a \"Welcome to TCXC\" email with a Create your login button that opens Create Web User, where they choose a Username and a Password of at least 8 characters. After \"User Created Successfully\" they sign in at the normal login page with their own username and password. Each invitation link works once; choose Resend Invite from a pending user's \u22ee menu to send a fresh one. When an invited user is signed in, the portal shows the account as \"your login via their login\", so your Messages and settings are shared while the activity is theirs. What can each role do? Every invited user can use the buyer portal like the main account: accounts, Market View and purchases, interconnections, top-ups, DIDs, records and HLR lookups. The differences: Default Finance Seller Access Invite or edit web users No No No Web Access log No No No Login timeout and profile photo No No No Routing Groups Yes No Yes Switch to the linked seller panel No No Yes Seller Access appears only when TelecomsXchange has linked your buyer account to a seller account. Such a user, like the main account, gets a Switch to Seller Panel button on the dashboard. Ask support to link accounts. How do I change or remove a user? In Web Users, each user's row has a \u22ee menu under Actions: - Edit User changes the user's Role. Username, name and email can't be changed; invite a new user instead. - Deactivate blocks the user at once; Activate lets them back in. A user who enters a wrong two-step code more than four times is blocked automatically and shows as Blocked: choose Activate to unblock them. - Resend Invite sends a new invitation link to a user whose status is Invite Pending. How does two-step verification work for my team? Each user turns it on for themselves: Settings \u2192 Profile & Preferences \u2192 Enable Two-Step Verification. From then on, every login sends a 4-digit code by SMS to the phone number from their invitation, which they enter on the Enter OTP screen. A browser that has passed the check isn't asked again for 7 days. Users can also change their own password there. How do I see who did what? 1. Go to Logs \u2192 Web Access. 2. Set From Date and To Date; the page opens on the last 24 hours. 3. Click Search Logs. Every page request made on your account is listed with the Username (the invited user's login, or yours), Source IP Address, Request URI, Request Details (the form fields sent, with passwords masked) and Date/Time. Click Download &lt;n&gt; Entries for a CSV. Entries are kept for 30 days. Use it to confirm who placed an order, changed an account or logged in from an unexpected address. What if something goes wrong? You see What to do Invalid email format Enter a full address such as name@company.com. This email is already in use The address already belongs to a TelecomsXchange user. Use another one. Invalid SMS Number format Enter 8 to 14 digits with the country code, such as +19542405411. The link is used up or broken The invitation was already used or replaced. Choose Resend Invite from the user's \u22ee menu. This login is already used, please choose another one The username is taken. The user should pick another. The password should contain at least 8 characters Choose a longer password. Your account has been blocked More than four wrong two-step codes. The main account clicks Activate on the user.",
   "sections": [
    {
     "id": "how-do-i-invite-a-colleague",
     "title": "How do I invite a colleague?",
     "text": "1. Go to Settings \u2192 Web Users. The My Team page lists your users. 2. Click Invite New User. 3. Fill in: - Email Address: where the invitation goes. It must not already be used by another TelecomsXchange user. - Phone Number (For 2FA): with the country code, such as +19542405411. It is used for two-step verification. - Friendly Name: the name shown in the list and in logs. - Access Role: Default - Standard Access, Finance - Financial Management or, when your buyer account is linked to a seller account, Seller Access - Vendor Management. 4. Click Send Invitation. You'll see \"Web User has been added\", and the user appears as Pending Invite until they finish. They get a \"Welcome to TCXC\" email with a Create your login button that opens Create Web User, where they choose a Username and a Password of at least 8 characters. After \"User Created Successfully\" they sign in at the normal login page with their own username and password. Each invitation link works once; choose Resend Invite from a pending user's \u22ee menu to send a fresh one. When an invited user is signed in, the portal shows the account as \"your login via their login\", so your Messages and settings are shared while the activity is theirs."
    },
    {
     "id": "what-can-each-role-do",
     "title": "What can each role do?",
     "text": "Every invited user can use the buyer portal like the main account: accounts, Market View and purchases, interconnections, top-ups, DIDs, records and HLR lookups. The differences: Default Finance Seller Access Invite or edit web users No No No Web Access log No No No Login timeout and profile photo No No No Routing Groups Yes No Yes Switch to the linked seller panel No No Yes Seller Access appears only when TelecomsXchange has linked your buyer account to a seller account. Such a user, like the main account, gets a Switch to Seller Panel button on the dashboard. Ask support to link accounts."
    },
    {
     "id": "how-do-i-change-or-remove-a-user",
     "title": "How do I change or remove a user?",
     "text": "In Web Users, each user's row has a \u22ee menu under Actions: - Edit User changes the user's Role. Username, name and email can't be changed; invite a new user instead. - Deactivate blocks the user at once; Activate lets them back in. A user who enters a wrong two-step code more than four times is blocked automatically and shows as Blocked: choose Activate to unblock them. - Resend Invite sends a new invitation link to a user whose status is Invite Pending."
    },
    {
     "id": "how-does-two-step-verification-work-for-my-team",
     "title": "How does two-step verification work for my team?",
     "text": "Each user turns it on for themselves: Settings \u2192 Profile & Preferences \u2192 Enable Two-Step Verification. From then on, every login sends a 4-digit code by SMS to the phone number from their invitation, which they enter on the Enter OTP screen. A browser that has passed the check isn't asked again for 7 days. Users can also change their own password there."
    },
    {
     "id": "how-do-i-see-who-did-what",
     "title": "How do I see who did what?",
     "text": "1. Go to Logs \u2192 Web Access. 2. Set From Date and To Date; the page opens on the last 24 hours. 3. Click Search Logs. Every page request made on your account is listed with the Username (the invited user's login, or yours), Source IP Address, Request URI, Request Details (the form fields sent, with passwords masked) and Date/Time. Click Download &lt;n&gt; Entries for a CSV. Entries are kept for 30 days. Use it to confirm who placed an order, changed an account or logged in from an unexpected address."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do Invalid email format Enter a full address such as name@company.com. This email is already in use The address already belongs to a TelecomsXchange user. Use another one. Invalid SMS Number format Enter 8 to 14 digits with the country code, such as +19542405411. The link is used up or broken The invitation was already used or replaced. Choose Resend Invite from the user's \u22ee menu. This login is already used, please choose another one The username is taken. The user should pick another. The password should contain at least 8 characters Choose a longer password. Your account has been blocked More than four wrong two-step codes. The main account clicks Activate on the user."
    }
   ]
  },
  {
   "slug": "connect-sip-platforms",
   "section": "integrations",
   "title": "Connect a SIP platform to TelecomsXchange",
   "description": "Every value to connect a softswitch, SIP proxy, PBX or CPaaS to TelecomsXchange: host, port, tech prefix, IP or digest auth, and inbound whitelisting.",
   "summary": "TelecomsXchange is SIP peering only: it never accepts REGISTER. To buy, send INVITEs over UDP to sip01.telecomsxchange.com port 5060 from an authorised IP, or answer the digest challenge with the account's VoIP login, and dial the tech prefix before the E.164 number (80039#447700900123). To sell or receive numbers, accept SIP over UDP from 174.136.44.213, source ports 5060 to 5072.",
   "url": "https://help.telecomsxchange.com/integrations/connect-sip-platforms/",
   "markdown_url": "https://help.telecomsxchange.com/integrations/connect-sip-platforms.md",
   "updated": "2026-10-23",
   "keywords": [
    "sip trunk",
    "sip peering",
    "interconnection",
    "ip authentication",
    "digest authentication",
    "no registration",
    "register",
    "tech prefix",
    "sip01",
    "174.136.44.213",
    "whitelist",
    "acl",
    "firewall",
    "asterisk",
    "freeswitch",
    "kamailio",
    "opensips",
    "sippy",
    "portaswitch",
    "twilio",
    "telnyx",
    "3cx",
    "freepbx",
    "yeastar",
    "grandstream",
    "cisco cube",
    "vicidial",
    "genesys",
    "amazon connect",
    "microsoft teams",
    "zoom phone",
    "vos3000",
    "voipswitch",
    "mor",
    "audiocodes",
    "ribbon"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Can my platform register to TelecomsXchange?",
     "a": "No. TelecomsXchange is peering only and does not accept SIP REGISTER. Your account is recognised by the source IP of each INVITE, or by digest authentication on the INVITE with the account's VoIP login and password."
    },
    {
     "q": "Which host and port do I send calls to?",
     "a": "sip01.telecomsxchange.com, port 5060, SIP over UDP."
    },
    {
     "q": "What do I dial?",
     "a": "The purchased route's tech prefix, then the number in E.164 without + or 00, for example 80039#447700900123. A routing group's prefix starts with 444, for example 444101#447700900123."
    },
    {
     "q": "Which IP do I whitelist for calls from TelecomsXchange?",
     "a": "174.136.44.213, SIP over UDP from source ports 5060 to 5072. It sends calls on the routes you sell and on phone numbers you bought."
    },
    {
     "q": "Does TelecomsXchange transcode?",
     "a": "No. Codecs are passed through unchanged, so the two ends must share a codec."
    }
   ],
   "text": "Both directions through TelecomsXchange 1. Your platform: Authorised IP or digest login; no REGISTER 2. TelecomsXchange (via 80039#447700900123): sip01.telecomsxchange.com, UDP 5060 3. Seller's switch (via 447700900123): Receives from 174.136.44.213, ports 5060-5072 TelecomsXchange connects to your platform as a SIP peer. This page collects every value an engineer needs, in both directions, and links to step-by-step guides for the most common platforms. TelecomsXchange does not support SIP REGISTER. There is no registration to configure on any platform. Your account is recognised by the source IP address of each INVITE, or by digest authentication on the INVITE with the account's VoIP login and password. Turn registration off on the trunk or gateway that points at TelecomsXchange. Before you start - A SIP account with your platform's public IP address, a VoIP login and password, or both. - To send calls: a purchased route and its tech prefix from My Interconnections, and funds on the account. - To receive calls on routes you sell: a route whose IP Address:Port points at your platform, and the values in Interconnect Info. - To receive calls on numbers you bought: a phone number with its SIP endpoint set to your platform. How do I send calls to TelecomsXchange? Setting Value SIP host sip01.telecomsxchange.com Port and transport 5060, UDP Registration None. Peering only. Authentication Source IP authorised on the account, and/or digest authentication on the INVITE Digest credentials The account's VoIP Login and VoIP Password (Edit Account \u2192 Add SIP Digest Auth) Extra source IPs Edit Account \u2192 (Additional: n) \u2192 Add New IP Dialled number Tech prefix + E.164 without + or 00, for example 80039#447700900123 Routing group Group prefix starting with 444, for example 444101#447700900123 Call rate 10 calls per second per authorised IP Codecs on SIP routes G.729, G.723 and G.711, as listed in the Purchased Route Confirmation email Every platform guide below does the same three things: 1. Define a peer, trunk or gateway pointing at sip01.telecomsxchange.com:5060 over UDP, with registration off. 2. Authenticate it: either send from the IP address authorised on the account, or add the VoIP login and password so the platform answers TelecomsXchange's 401 or 407 challenge. 3. Rewrite the number: strip + or 00 and put the tech prefix in front, so +44 7700 900123 leaves as 80039#447700900123. Use one tech prefix per destination or route. If you buy several routes to the same country, a routing group lets your platform dial one 444\u2026# prefix while TelecomsXchange picks the route. Some SIP stacks, and CPaaS platforms such as Twilio and Telnyx, write # as %23 in the Request-URI. TelecomsXchange accepts both: it decodes %23 back to # before matching the tech prefix. If calls fail with 404, check the dialled number in the CDR first. When TelecomsXchange challenges an INVITE for digest authentication, the realm is its platform IP, 174.136.44.213. It answers SIP OPTIONS only within a call, so leave keepalive pings (qualify) off for the trunk. How do I receive calls from TelecomsXchange? TelecomsXchange delivers calls on the routes you sell, and on phone numbers you bought, from its platform IP. Setting Value Source IP 174.136.44.213 Transport SIP over UDP Source ports 5060 to 5072 Codecs Passed through, no transcoding Number format E.164 international without +, for example 14165551234 Destination The host and port on your route (IP Address:Port), or the SIP endpoint on your number 1. Allow 174.136.44.213 on your firewall for SIP (UDP, source ports 5060 to 5072) and for RTP to your media ports. 2. Add 174.136.44.213 to your platform's ACL, trusted peer list or IP authentication rule, and send those calls into a dedicated inbound context or route. 3. Route the E.164 number. If your route has an Outgoing Prefix or strips digits (Edit Route \u2192 Outgoing Number Translation Parameters), match the number in that format instead. Accept calls only from 174.136.44.213 on the context that receives TelecomsXchange traffic. An open inbound context on a public IP gets scanned and abused within hours. How do I receive calls on numbers I bought? TelecomsXchange delivers each voice number to the SIP Endpoint (Primary) set on the number, in the form sip:user@host:port, for example sip:14165551234@203.0.113.10:5060, with an optional SIP Endpoint (Secondary) for failover. Change it in the number's DID Settings or in bulk by CSV. Whitelist 174.136.44.213 as above. If you sell numbers, point them at sip01.telecomsxchange.com, UDP port 5060, and add your sending IP or VoIP login on the Incoming DIDs Authentication page. See Sell virtual numbers. Which guide do I follow? Platform Guide Send to TCXC Receive from TCXC Asterisk (PJSIP) Connect Asterisk Yes Yes FreeSWITCH Connect FreeSWITCH Yes Yes Kamailio Connect Kamailio Yes Yes OpenSIPS Connect OpenSIPS Yes Yes Sippy Softswitch Connect Sippy Yes Yes PortaSwitch Connect PortaSwitch Yes Yes Twilio Connect Twilio <Dial><Sip> with digest Phone numbers you bought Telnyx Connect Telnyx TeXML or Call Control with digest Phone numbers you bought 3CX Connect 3CX Yes, IP authentication Yes, and numbers you bought FreePBX Connect FreePBX Yes Yes Yeastar P-Series Connect Yeastar Yes, IP authentication Yes Grandstream UCM Connect Grandstream UCM Yes, IP authentication Yes Cisco CUBE and CUCM Connect Cisco CUBE Yes Yes VICIdial Connect VICIdial Yes Inbound numbers Genesys Cloud Connect Genesys Cloud Yes, BYOC Cloud trunk Inbound numbers Amazon Connect Connect Amazon Connect Through your own SIP server Through your own SIP server Microsoft Teams Connect Microsoft Teams Through a certified SBC Through a certified SBC Zoom Phone Connect Zoom Phone Through a certified SBC Through a certified SBC VOS3000 Connect VOS3000 Yes Yes VoipSwitch Connect VoipSwitch Yes Yes MOR (Kolmisoft) Connect MOR Yes Yes AudioCodes Mediant SBC Connect AudioCodes Yes Yes Ribbon SBC Connect Ribbon Yes Yes How do I test it? 1. Place a call to a number covered by the route, dialled as TECH_PREFIX + E.164. 2. Watch it in Live Calls while it rings. 3. When it ends, find it in Logs \u2192 CDR (Voice) with its SIP code and cost. See call records and live calls. 4. On your side, capture the SIP exchange with sngrep or tcpdump -n -i any udp port 5060 to see the exact INVITE and reply. What if something goes wrong? You see What to do 401 or 407 that never completes The platform isn't answering the digest challenge. Check the VoIP login and password on Edit Account, and that the trunk has outbound authentication enabled. 403 Forbidden The source IP isn't authorised and no valid digest credentials were sent. Check your public (NAT) IP against the account's IP Address and Additional Allowed IPs, and that the account isn't blocked or out of balance. 404 Not Found Missing or wrong tech prefix, or the number isn't E.164. Copy the prefix again from My Interconnections and strip + or 00. 408 Request Timeout, or no reply Outbound UDP 5060 to sip01 is blocked, or DNS doesn't resolve on your platform. Test with sngrep and check your firewall. 503 Service Unavailable The route can't carry the call: blocked by you or the seller, out of capacity, or the seller's side failed. Check the route status in My Interconnections and try another route or a routing group. One-way or no audio Your platform advertises a private IP in SDP, or the firewall blocks RTP. Set your platform's external media address to its public IP and open your RTP port range on the firewall. No inbound calls 174.136.44.213 isn't allowed on the firewall or in the platform's ACL, or the route's IP Address:Port or the number's SIP endpoint is wrong. Calls arrive but fail to set up The caller's codec isn't enabled on your platform; TelecomsXchange doesn't transcode.",
   "sections": [
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "- A SIP account with your platform's public IP address, a VoIP login and password, or both. - To send calls: a purchased route and its tech prefix from My Interconnections, and funds on the account. - To receive calls on routes you sell: a route whose IP Address:Port points at your platform, and the values in Interconnect Info. - To receive calls on numbers you bought: a phone number with its SIP endpoint set to your platform."
    },
    {
     "id": "how-do-i-send-calls-to-telecomsxchange",
     "title": "How do I send calls to TelecomsXchange?",
     "text": "Setting Value SIP host sip01.telecomsxchange.com Port and transport 5060, UDP Registration None. Peering only. Authentication Source IP authorised on the account, and/or digest authentication on the INVITE Digest credentials The account's VoIP Login and VoIP Password (Edit Account \u2192 Add SIP Digest Auth) Extra source IPs Edit Account \u2192 (Additional: n) \u2192 Add New IP Dialled number Tech prefix + E.164 without + or 00, for example 80039#447700900123 Routing group Group prefix starting with 444, for example 444101#447700900123 Call rate 10 calls per second per authorised IP Codecs on SIP routes G.729, G.723 and G.711, as listed in the Purchased Route Confirmation email Every platform guide below does the same three things: 1. Define a peer, trunk or gateway pointing at sip01.telecomsxchange.com:5060 over UDP, with registration off. 2. Authenticate it: either send from the IP address authorised on the account, or add the VoIP login and password so the platform answers TelecomsXchange's 401 or 407 challenge. 3. Rewrite the number: strip + or 00 and put the tech prefix in front, so +44 7700 900123 leaves as 80039#447700900123. Use one tech prefix per destination or route. If you buy several routes to the same country, a routing group lets your platform dial one 444\u2026# prefix while TelecomsXchange picks the route. Some SIP stacks, and CPaaS platforms such as Twilio and Telnyx, write # as %23 in the Request-URI. TelecomsXchange accepts both: it decodes %23 back to # before matching the tech prefix. If calls fail with 404, check the dialled number in the CDR first. When TelecomsXchange challenges an INVITE for digest authentication, the realm is its platform IP, 174.136.44.213. It answers SIP OPTIONS only within a call, so leave keepalive pings (qualify) off for the trunk."
    },
    {
     "id": "how-do-i-receive-calls-from-telecomsxchange",
     "title": "How do I receive calls from TelecomsXchange?",
     "text": "TelecomsXchange delivers calls on the routes you sell, and on phone numbers you bought, from its platform IP. Setting Value Source IP 174.136.44.213 Transport SIP over UDP Source ports 5060 to 5072 Codecs Passed through, no transcoding Number format E.164 international without +, for example 14165551234 Destination The host and port on your route (IP Address:Port), or the SIP endpoint on your number 1. Allow 174.136.44.213 on your firewall for SIP (UDP, source ports 5060 to 5072) and for RTP to your media ports. 2. Add 174.136.44.213 to your platform's ACL, trusted peer list or IP authentication rule, and send those calls into a dedicated inbound context or route. 3. Route the E.164 number. If your route has an Outgoing Prefix or strips digits (Edit Route \u2192 Outgoing Number Translation Parameters), match the number in that format instead. Accept calls only from 174.136.44.213 on the context that receives TelecomsXchange traffic. An open inbound context on a public IP gets scanned and abused within hours."
    },
    {
     "id": "how-do-i-receive-calls-on-numbers-i-bought",
     "title": "How do I receive calls on numbers I bought?",
     "text": "TelecomsXchange delivers each voice number to the SIP Endpoint (Primary) set on the number, in the form sip:user@host:port, for example sip:14165551234@203.0.113.10:5060, with an optional SIP Endpoint (Secondary) for failover. Change it in the number's DID Settings or in bulk by CSV. Whitelist 174.136.44.213 as above. If you sell numbers, point them at sip01.telecomsxchange.com, UDP port 5060, and add your sending IP or VoIP login on the Incoming DIDs Authentication page. See Sell virtual numbers."
    },
    {
     "id": "which-guide-do-i-follow",
     "title": "Which guide do I follow?",
     "text": "Platform Guide Send to TCXC Receive from TCXC Asterisk (PJSIP) Connect Asterisk Yes Yes FreeSWITCH Connect FreeSWITCH Yes Yes Kamailio Connect Kamailio Yes Yes OpenSIPS Connect OpenSIPS Yes Yes Sippy Softswitch Connect Sippy Yes Yes PortaSwitch Connect PortaSwitch Yes Yes Twilio Connect Twilio <Dial><Sip> with digest Phone numbers you bought Telnyx Connect Telnyx TeXML or Call Control with digest Phone numbers you bought 3CX Connect 3CX Yes, IP authentication Yes, and numbers you bought FreePBX Connect FreePBX Yes Yes Yeastar P-Series Connect Yeastar Yes, IP authentication Yes Grandstream UCM Connect Grandstream UCM Yes, IP authentication Yes Cisco CUBE and CUCM Connect Cisco CUBE Yes Yes VICIdial Connect VICIdial Yes Inbound numbers Genesys Cloud Connect Genesys Cloud Yes, BYOC Cloud trunk Inbound numbers Amazon Connect Connect Amazon Connect Through your own SIP server Through your own SIP server Microsoft Teams Connect Microsoft Teams Through a certified SBC Through a certified SBC Zoom Phone Connect Zoom Phone Through a certified SBC Through a certified SBC VOS3000 Connect VOS3000 Yes Yes VoipSwitch Connect VoipSwitch Yes Yes MOR (Kolmisoft) Connect MOR Yes Yes AudioCodes Mediant SBC Connect AudioCodes Yes Yes Ribbon SBC Connect Ribbon Yes Yes"
    },
    {
     "id": "how-do-i-test-it",
     "title": "How do I test it?",
     "text": "1. Place a call to a number covered by the route, dialled as TECH_PREFIX + E.164. 2. Watch it in Live Calls while it rings. 3. When it ends, find it in Logs \u2192 CDR (Voice) with its SIP code and cost. See call records and live calls. 4. On your side, capture the SIP exchange with sngrep or tcpdump -n -i any udp port 5060 to see the exact INVITE and reply."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do 401 or 407 that never completes The platform isn't answering the digest challenge. Check the VoIP login and password on Edit Account, and that the trunk has outbound authentication enabled. 403 Forbidden The source IP isn't authorised and no valid digest credentials were sent. Check your public (NAT) IP against the account's IP Address and Additional Allowed IPs, and that the account isn't blocked or out of balance. 404 Not Found Missing or wrong tech prefix, or the number isn't E.164. Copy the prefix again from My Interconnections and strip + or 00. 408 Request Timeout, or no reply Outbound UDP 5060 to sip01 is blocked, or DNS doesn't resolve on your platform. Test with sngrep and check your firewall. 503 Service Unavailable The route can't carry the call: blocked by you or the seller, out of capacity, or the seller's side failed. Check the route status in My Interconnections and try another route or a routing group. One-way or no audio Your platform advertises a private IP in SDP, or the firewall blocks RTP. Set your platform's external media address to its public IP and open your RTP port range on the firewall. No inbound calls 174.136.44.213 isn't allowed on the firewall or in the platform's ACL, or the route's IP Address:Port or the number's SIP endpoint is wrong. Calls arrive but fail to set up The caller's codec isn't enabled on your platform; TelecomsXchange doesn't transcode."
    }
   ]
  },
  {
   "slug": "asterisk",
   "section": "integrations",
   "title": "Connect Asterisk to TelecomsXchange",
   "description": "Configure an Asterisk PJSIP trunk to send calls to TelecomsXchange with a tech prefix, by IP or digest authentication, and to accept calls from 174.136.44.213.",
   "summary": "Create a PJSIP endpoint, aor and identify for sip01.telecomsxchange.com on UDP 5060 with no registration, matching 174.136.44.213 for inbound. Authorise your public IP on the TelecomsXchange account or add an outbound_auth with the VoIP login, and dial PJSIP/TECH_PREFIX + E.164 number.",
   "url": "https://help.telecomsxchange.com/integrations/asterisk/",
   "markdown_url": "https://help.telecomsxchange.com/integrations/asterisk.md",
   "updated": "2026-10-23",
   "keywords": [
    "asterisk",
    "pjsip",
    "pjsip.conf",
    "extensions.conf",
    "sip trunk",
    "endpoint",
    "identify",
    "outbound_auth",
    "tech prefix",
    "ip authentication",
    "digest authentication",
    "no registration",
    "sngrep",
    "pjsip set logger"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Can Asterisk register to TelecomsXchange?",
     "a": "No. TelecomsXchange is peering only and does not accept REGISTER, so don't add a registration section. Asterisk is recognised by its source IP, or by answering the digest challenge with outbound_auth."
    },
    {
     "q": "Which Asterisk versions does this cover?",
     "a": "The PJSIP configuration shown works on the current long-term-support releases, Asterisk 20 and 22. The legacy chan_sip driver has been removed from Asterisk."
    },
    {
     "q": "Do I need a separate endpoint for inbound calls?",
     "a": "No. One endpoint named tcxc can carry both directions: the identify section matches 174.136.44.213 and puts inbound calls in the endpoint's context."
    },
    {
     "q": "Where does the tech prefix go?",
     "a": "In the Dial() string, before the number: Dial(PJSIP/80039#447700900123@tcxc). Each purchased route has its own prefix in My Interconnections."
    }
   ],
   "text": "Asterisk to a purchased route 1. Your Asterisk: PJSIP endpoint, identified by IP 2. TelecomsXchange (via 80039#447700900123): sip01, UDP 5060 3. Seller's route: The route you purchased This guide connects Asterisk's PJSIP channel driver to TelecomsXchange: outbound calls to a purchased route, and inbound calls on routes you sell or numbers you bought. For the full list of TelecomsXchange values, see Connect a SIP platform. TelecomsXchange does not accept SIP REGISTER. Don't create a type=registration section for it. Asterisk is recognised by its source IP or by digest authentication on the INVITE. Before you start - A SIP account with Asterisk's public IP, for example 203.0.113.10, or a VoIP login and password from Edit Account \u2192 Add SIP Digest Auth. - A purchased route and its tech prefix from My Interconnections, for example 80039#. - Asterisk 20 or 22 with res_pjsip loaded, and a public IP (or a known NAT address). - To sell: a route with IP Address:Port set to your Asterisk, for example 203.0.113.10:5060, and the values in Interconnect Info. How do I send calls to TelecomsXchange? 1. Add a UDP transport, if you don't already have one. Behind NAT, set the external addresses so the SDP carries your public IP: ini ; /etc/asterisk/pjsip.conf [transport-udp] type=transport protocol=udp bind=0.0.0.0:5060 ; only behind NAT: your public IP and your private network external_media_address=203.0.113.10 external_signaling_address=203.0.113.10 local_net=10.0.0.0/8 2. Add the TelecomsXchange trunk. There is no registration section: ini ; /etc/asterisk/pjsip.conf [tcxc] type=aor contact=sip:sip01.telecomsxchange.com:5060 [tcxc] type=endpoint transport=transport-udp aors=tcxc context=from-tcxc ; inbound calls from TelecomsXchange land here disallow=all allow=g729,ulaw,alaw ; TCXC passes codecs through: offer what the route supports direct_media=no rtp_symmetric=yes force_rport=yes rewrite_contact=yes ;outbound_auth=tcxc-auth ; uncomment for digest authentication (below) [tcxc] type=identify endpoint=tcxc match=174.136.44.213 ; TelecomsXchange platform IP (sip01 resolves to it) 3. Add the dial plan. TECH_PREFIX is the route's prefix from My Interconnections; Asterisk dials it in front of the E.164 number: ini ; /etc/asterisk/extensions.conf [globals] TECH_PREFIX=80039# [to-tcxc] ; 00 + international number exten => _00X.,1,Dial(PJSIP/${TECH_PREFIX}${EXTEN:2}@tcxc,60) same => n,Hangup() ; international number without 00, e.g. 447700900123 exten => _[1-9]X.,1,Dial(PJSIP/${TECH_PREFIX}${EXTEN}@tcxc,60) same => n,Hangup() Include to-tcxc in the context your phones or customers dial from, then run core reload (or module reload res_pjsip.so and dialplan reload). Digest variant. If you send from an IP that isn't on the account, use the account's VoIP login and password. Asterisk answers TelecomsXchange's 401 or 407 challenge with them: ini ; /etc/asterisk/pjsip.conf [tcxc-auth] type=auth auth_type=userpass username=VOIP_LOGIN ; Edit Account \u2192 VoIP Login password=VOIP_PASSWORD ; Edit Account \u2192 VoIP Password Then uncomment outbound_auth=tcxc-auth on the tcxc endpoint. To pick routes per destination, use one TECH_PREFIX variable per route, or dial a routing group prefix such as 444101# and let TelecomsXchange choose. How do I receive calls from TelecomsXchange? Calls on routes you sell, and on numbers you bought, 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 your firewall for UDP 5060, and open your RTP range (rtp.conf, by default 10000 to 20000). 2. The identify section above maps that IP to the tcxc endpoint, so calls enter the from-tcxc context. Route them there: ini ; /etc/asterisk/extensions.conf [from-tcxc] ; number you bought, delivered to sip:14165551234@203.0.113.10:5060 exten => 14165551234,1,Dial(PJSIP/reception,30) same => n,Hangup() ; seller route: send everything on to your own carrier or gateway exten => _X.,1,Dial(PJSIP/${EXTEN}@my-upstream,60) same => n,Hangup() 3. If your route has an Outgoing Prefix or strips digits (Edit Route \u2192 Outgoing Number Translation Parameters), match the number in that format. Keep from-tcxc separate from the context your phones use. Only calls matched by identify should reach it; unmatched INVITEs are challenged or rejected, unless you have defined an anonymous endpoint. How do I receive calls on numbers I bought? Set the number's SIP Endpoint (Primary) in DID Settings to your Asterisk, for example sip:14165551234@203.0.113.10:5060. TelecomsXchange sends the INVITE from 174.136.44.213, which the identify section matches, so the call arrives in from-tcxc with ${EXTEN} set to the user part. How do I test it? 1. In the Asterisk CLI, turn on SIP logging: pjsip set logger on. Check the trunk with pjsip show endpoint tcxc. 2. Place a test call, for example channel originate Local/447700900123@to-tcxc application Playback demo-congrats. 3. In the log, look for the INVITE to 80039#447700900123 (or 80039%23447700900123) and the reply. On the shell, sngrep port 5060 shows the same flow as a ladder. 4. In the portal, watch the call in Live Calls and find its SIP code in Logs \u2192 CDR (Voice). What if something goes wrong? You see What to do 401 or 407 repeated, then the call fails Asterisk isn't answering the challenge. Add the tcxc-auth section, set outbound_auth=tcxc-auth, and check the VoIP login and password on Edit Account. 403 Forbidden Asterisk's public IP isn't authorised and no credentials were sent. Compare the IP in pjsip set logger with the account's IP Address and Additional Allowed IPs; 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 TECH_PREFIX and the Request-URI in the log. 408 Request Timeout No reply from sip01. Check outbound UDP 5060 on your firewall and that sip01.telecomsxchange.com resolves on the server. 503 Service Unavailable The route is blocked or failed on the seller's side. Check My Interconnections; try another route or a routing group. One-way or no audio Set external_media_address and local_net on the transport, keep rtp_symmetric=yes, and open the RTP range on your firewall. Inbound calls rejected with 401 or 403 The identify doesn't match: check match=174.136.44.213 with pjsip show identifies, and the firewall. Inbound call arrives but goes nowhere No extension in from-tcxc matches the E.164 number; check the number format and any Outgoing Prefix on your route. References - Asterisk PJSIP configuration sections and relationships - Asterisk res_pjsip configuration reference - Configuring res_pjsip to work through NAT - Asterisk versions and support lifecycle",
   "sections": [
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "- A SIP account with Asterisk's public IP, for example 203.0.113.10, or a VoIP login and password from Edit Account \u2192 Add SIP Digest Auth. - A purchased route and its tech prefix from My Interconnections, for example 80039#. - Asterisk 20 or 22 with res_pjsip loaded, and a public IP (or a known NAT address). - To sell: a route with IP Address:Port set to your Asterisk, for example 203.0.113.10:5060, and the values in Interconnect Info."
    },
    {
     "id": "how-do-i-send-calls-to-telecomsxchange",
     "title": "How do I send calls to TelecomsXchange?",
     "text": "1. Add a UDP transport, if you don't already have one. Behind NAT, set the external addresses so the SDP carries your public IP: ini ; /etc/asterisk/pjsip.conf [transport-udp] type=transport protocol=udp bind=0.0.0.0:5060 ; only behind NAT: your public IP and your private network external_media_address=203.0.113.10 external_signaling_address=203.0.113.10 local_net=10.0.0.0/8 2. Add the TelecomsXchange trunk. There is no registration section: ini ; /etc/asterisk/pjsip.conf [tcxc] type=aor contact=sip:sip01.telecomsxchange.com:5060 [tcxc] type=endpoint transport=transport-udp aors=tcxc context=from-tcxc ; inbound calls from TelecomsXchange land here disallow=all allow=g729,ulaw,alaw ; TCXC passes codecs through: offer what the route supports direct_media=no rtp_symmetric=yes force_rport=yes rewrite_contact=yes ;outbound_auth=tcxc-auth ; uncomment for digest authentication (below) [tcxc] type=identify endpoint=tcxc match=174.136.44.213 ; TelecomsXchange platform IP (sip01 resolves to it) 3. Add the dial plan. TECH_PREFIX is the route's prefix from My Interconnections; Asterisk dials it in front of the E.164 number: ini ; /etc/asterisk/extensions.conf [globals] TECH_PREFIX=80039# [to-tcxc] ; 00 + international number exten => _00X.,1,Dial(PJSIP/${TECH_PREFIX}${EXTEN:2}@tcxc,60) same => n,Hangup() ; international number without 00, e.g. 447700900123 exten => _[1-9]X.,1,Dial(PJSIP/${TECH_PREFIX}${EXTEN}@tcxc,60) same => n,Hangup() Include to-tcxc in the context your phones or customers dial from, then run core reload (or module reload res_pjsip.so and dialplan reload). Digest variant. If you send from an IP that isn't on the account, use the account's VoIP login and password. Asterisk answers TelecomsXchange's 401 or 407 challenge with them: ini ; /etc/asterisk/pjsip.conf [tcxc-auth] type=auth auth_type=userpass username=VOIP_LOGIN ; Edit Account \u2192 VoIP Login password=VOIP_PASSWORD ; Edit Account \u2192 VoIP Password Then uncomment outbound_auth=tcxc-auth on the tcxc endpoint. To pick routes per destination, use one TECH_PREFIX variable per route, or dial a routing group prefix such as 444101# and let TelecomsXchange choose."
    },
    {
     "id": "how-do-i-receive-calls-from-telecomsxchange",
     "title": "How do I receive calls from TelecomsXchange?",
     "text": "Calls on routes you sell, and on numbers you bought, 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 your firewall for UDP 5060, and open your RTP range (rtp.conf, by default 10000 to 20000). 2. The identify section above maps that IP to the tcxc endpoint, so calls enter the from-tcxc context. Route them there: ini ; /etc/asterisk/extensions.conf [from-tcxc] ; number you bought, delivered to sip:14165551234@203.0.113.10:5060 exten => 14165551234,1,Dial(PJSIP/reception,30) same => n,Hangup() ; seller route: send everything on to your own carrier or gateway exten => _X.,1,Dial(PJSIP/${EXTEN}@my-upstream,60) same => n,Hangup() 3. If your route has an Outgoing Prefix or strips digits (Edit Route \u2192 Outgoing Number Translation Parameters), match the number in that format. Keep from-tcxc separate from the context your phones use. Only calls matched by identify should reach it; unmatched INVITEs are challenged or rejected, unless you have defined an anonymous endpoint."
    },
    {
     "id": "how-do-i-receive-calls-on-numbers-i-bought",
     "title": "How do I receive calls on numbers I bought?",
     "text": "Set the number's SIP Endpoint (Primary) in DID Settings to your Asterisk, for example sip:14165551234@203.0.113.10:5060. TelecomsXchange sends the INVITE from 174.136.44.213, which the identify section matches, so the call arrives in from-tcxc with ${EXTEN} set to the user part."
    },
    {
     "id": "how-do-i-test-it",
     "title": "How do I test it?",
     "text": "1. In the Asterisk CLI, turn on SIP logging: pjsip set logger on. Check the trunk with pjsip show endpoint tcxc. 2. Place a test call, for example channel originate Local/447700900123@to-tcxc application Playback demo-congrats. 3. In the log, look for the INVITE to 80039#447700900123 (or 80039%23447700900123) and the reply. On the shell, sngrep port 5060 shows the same flow as a ladder. 4. In the portal, watch the call in Live Calls and find its SIP code in Logs \u2192 CDR (Voice)."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do 401 or 407 repeated, then the call fails Asterisk isn't answering the challenge. Add the tcxc-auth section, set outbound_auth=tcxc-auth, and check the VoIP login and password on Edit Account. 403 Forbidden Asterisk's public IP isn't authorised and no credentials were sent. Compare the IP in pjsip set logger with the account's IP Address and Additional Allowed IPs; 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 TECH_PREFIX and the Request-URI in the log. 408 Request Timeout No reply from sip01. Check outbound UDP 5060 on your firewall and that sip01.telecomsxchange.com resolves on the server. 503 Service Unavailable The route is blocked or failed on the seller's side. Check My Interconnections; try another route or a routing group. One-way or no audio Set external_media_address and local_net on the transport, keep rtp_symmetric=yes, and open the RTP range on your firewall. Inbound calls rejected with 401 or 403 The identify doesn't match: check match=174.136.44.213 with pjsip show identifies, and the firewall. Inbound call arrives but goes nowhere No extension in from-tcxc matches the E.164 number; check the number format and any Outgoing Prefix on your route."
    },
    {
     "id": "references",
     "title": "References",
     "text": "- Asterisk PJSIP configuration sections and relationships - Asterisk res_pjsip configuration reference - Configuring res_pjsip to work through NAT - Asterisk versions and support lifecycle"
    }
   ]
  },
  {
   "slug": "freeswitch",
   "section": "integrations",
   "title": "Connect FreeSWITCH to TelecomsXchange",
   "description": "Configure a FreeSWITCH Sofia gateway without registration to send calls to TelecomsXchange with a tech prefix, and an ACL to accept calls from 174.136.44.213.",
   "summary": "Add a Sofia gateway on the external profile with proxy sip01.telecomsxchange.com:5060 and register=false, then bridge to sofia/gateway/tcxc/TECH_PREFIX followed by the E.164 number. Authorise FreeSWITCH's public IP on the account, or put the VoIP login and password on the gateway; accept inbound calls only from 174.136.44.213.",
   "url": "https://help.telecomsxchange.com/integrations/freeswitch/",
   "markdown_url": "https://help.telecomsxchange.com/integrations/freeswitch.md",
   "updated": "2026-10-23",
   "keywords": [
    "freeswitch",
    "sofia",
    "gateway",
    "external profile",
    "register false",
    "acl.conf.xml",
    "apply-inbound-acl",
    "bridge",
    "dialplan",
    "tech prefix",
    "ip authentication",
    "digest authentication",
    "no registration",
    "siptrace",
    "sngrep"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Can FreeSWITCH register to TelecomsXchange?",
     "a": "No. TelecomsXchange is peering only and does not accept REGISTER. Set register=false on the gateway; FreeSWITCH still answers a digest challenge with the gateway's username and password."
    },
    {
     "q": "Which profile should the gateway go on?",
     "a": "The external profile (port 5080 in the default configuration) or any profile bound to your public IP. Calls from TelecomsXchange arrive on the profile that listens on the port in your route or number, usually 5060 or 5080."
    },
    {
     "q": "Where does the tech prefix go?",
     "a": "In the bridge string, before the number: sofia/gateway/tcxc/80039#447700900123. Each purchased route has its own prefix in My Interconnections."
    },
    {
     "q": "Does TelecomsXchange transcode?",
     "a": "No. Codecs pass through, so make sure the profile's codec preferences include what the route or caller uses, such as PCMA, PCMU or G729."
    }
   ],
   "text": "FreeSWITCH to a purchased route 1. Your FreeSWITCH: Sofia gateway, register=false 2. TelecomsXchange (via 80039#447700900123): sip01, UDP 5060 3. Seller's route: The route you purchased This guide connects FreeSWITCH to TelecomsXchange with a Sofia gateway for outbound calls and an ACL for inbound calls on routes you sell or numbers you bought. For every TelecomsXchange value in one place, see Connect a SIP platform. TelecomsXchange does not accept SIP REGISTER. Set register to false on the gateway. FreeSWITCH is recognised by its source IP or by digest authentication on the INVITE. Before you start - A SIP account with FreeSWITCH's public IP, for example 203.0.113.10, or a VoIP login and password from Edit Account \u2192 Add SIP Digest Auth. - A purchased route and its tech prefix from My Interconnections, for example 80039#. - The external Sofia profile running with ext-sip-ip and ext-rtp-ip set to your public IP if you are behind NAT. - To sell: a route with IP Address:Port pointing at FreeSWITCH, for example 203.0.113.10:5080, and the values in Interconnect Info. How do I send calls to TelecomsXchange? 1. Create the gateway file: xml <!-- conf/sip_profiles/external/tcxc.xml --> <include> <gateway name=\"tcxc\"> <param name=\"proxy\" value=\"sip01.telecomsxchange.com:5060\"/> <param name=\"register\" value=\"false\"/> <!-- TCXC is peering only --> <param name=\"register-transport\" value=\"udp\"/> <param name=\"caller-id-in-from\" value=\"true\"/> <!-- put the caller ID in From --> <!-- IP authentication: username and password are not checked; digest authentication: the account's VoIP Login and VoIP Password --> <param name=\"username\" value=\"VOIP_LOGIN\"/> <param name=\"password\" value=\"VOIP_PASSWORD\"/> </gateway> </include> With IP authentication, leave any placeholder values in username and password; TelecomsXchange recognises FreeSWITCH by its source IP. With digest authentication, use the real VoIP Login and VoIP Password: FreeSWITCH answers the 401 or 407 challenge with them without registering. 2. Load it: in fs_cli, run sofia profile external rescan, then sofia status gateway tcxc. 3. Add a dialplan extension that strips + or 00 and puts the tech prefix in front. TECH_PREFIX is the route's prefix from My Interconnections: xml <!-- conf/dialplan/default/90_tcxc.xml --> <include> <extension name=\"to-tcxc\"> <condition field=\"destination_number\" expression=\"^(?:\\+ 00)?([1-9]\\d{6,14})$\"> <action application=\"set\" data=\"tcxc_prefix=80039#\"/> <!-- TECH_PREFIX --> <action application=\"set\" data=\"hangup_after_bridge=true\"/> <action application=\"bridge\" data=\"sofia/gateway/tcxc/${tcxc_prefix}$1\"/> </condition> </extension> </include> Run reloadxml. Put the extension in the context your users or customers dial from, after any local extensions it would otherwise catch. For several routes, set a different tcxc_prefix per destination pattern, or dial a routing group prefix such as 444101# and let TelecomsXchange choose the route. How do I receive calls from TelecomsXchange? Calls on routes you sell, and on numbers you bought, 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 your firewall for SIP to the profile's port, and open your RTP range (by default 16384 to 32768). 2. Add an ACL list: xml <!-- conf/autoload_configs/acl.conf.xml, inside <network-lists> --> <list name=\"tcxc\" default=\"deny\"> <node type=\"allow\" cidr=\"174.136.44.213/32\"/> </list> 3. Apply it to the profile that receives the calls, then run reloadacl and restart that profile (sofia profile external restart): xml <!-- conf/sip_profiles/external.xml, in <settings> --> <param name=\"apply-inbound-acl\" value=\"tcxc\"/> If the profile already applies an inbound ACL, add the node to that list instead. 4. Calls on the external profile enter the public context. Route only TelecomsXchange calls onward: xml <!-- conf/dialplan/public/10_from_tcxc.xml --> <include> <extension name=\"from-tcxc\"> <condition field=\"network_addr\" expression=\"^174\\.136\\.44\\.213$\"/> <condition field=\"destination_number\" expression=\"^(\\d+)$\"> <action application=\"transfer\" data=\"$1 XML from-tcxc\"/> </condition> </extension> </include> In the from-tcxc context, bridge each number to an extension, or for a seller route to your upstream gateway. If your route has an Outgoing Prefix or strips digits, match the number in that format. How do I receive calls on numbers I bought? Set the number's SIP Endpoint (Primary) in DID Settings to FreeSWITCH, for example sip:14165551234@203.0.113.10:5080 for the external profile. The call arrives from 174.136.44.213, passes the ACL, and the from-tcxc extension above transfers it by destination_number. How do I test it? 1. In fs_cli, run sofia global siptrace on (and sofia loglevel all 9 for more detail), or capture with sngrep port 5060 or port 5080. 2. Place a call: originate sofia/gateway/tcxc/80039#447700900123 &echo. 3. Check the INVITE's Request-URI starts with the tech prefix, and read the reply code. 4. In the portal, watch the call in Live Calls and find its SIP code in Logs \u2192 CDR (Voice). Turn tracing off with sofia global siptrace off. What if something goes wrong? You see What to do 401 or 407, then the call fails The gateway's username or password don't match Edit Account. Correct them and run sofia profile external killgw tcxc then rescan. 403 Forbidden FreeSWITCH's public IP isn't authorised and no valid credentials were sent. Check the source IP in the trace against IP Address and Additional Allowed IPs; 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 tcxc_prefix and the Request-URI in the trace. 408 Request Timeout No reply from sip01. Check outbound UDP 5060 on the firewall and DNS on the server. 503 Service Unavailable The route is blocked or failed on the seller's side. Check My Interconnections; try another route or a routing group. One-way or no audio Set ext-rtp-ip and ext-sip-ip on the profile to your public IP and open the RTP range. No inbound calls 174.136.44.213 isn't allowed on the firewall or in the ACL, or the route or number points at the wrong port. Check with sofia status profile external and a trace. Inbound call lands in public and is dropped No extension in public matched. Check the from-tcxc extension and the number format. References - FreeSWITCH gateways configuration - Sofia gateway authentication parameters - FreeSWITCH access control lists - mod_sofia",
   "sections": [
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "- A SIP account with FreeSWITCH's public IP, for example 203.0.113.10, or a VoIP login and password from Edit Account \u2192 Add SIP Digest Auth. - A purchased route and its tech prefix from My Interconnections, for example 80039#. - The external Sofia profile running with ext-sip-ip and ext-rtp-ip set to your public IP if you are behind NAT. - To sell: a route with IP Address:Port pointing at FreeSWITCH, for example 203.0.113.10:5080, and the values in Interconnect Info."
    },
    {
     "id": "how-do-i-send-calls-to-telecomsxchange",
     "title": "How do I send calls to TelecomsXchange?",
     "text": "1. Create the gateway file: xml <!-- conf/sip_profiles/external/tcxc.xml --> <include> <gateway name=\"tcxc\"> <param name=\"proxy\" value=\"sip01.telecomsxchange.com:5060\"/> <param name=\"register\" value=\"false\"/> <!-- TCXC is peering only --> <param name=\"register-transport\" value=\"udp\"/> <param name=\"caller-id-in-from\" value=\"true\"/> <!-- put the caller ID in From --> <!-- IP authentication: username and password are not checked; digest authentication: the account's VoIP Login and VoIP Password --> <param name=\"username\" value=\"VOIP_LOGIN\"/> <param name=\"password\" value=\"VOIP_PASSWORD\"/> </gateway> </include> With IP authentication, leave any placeholder values in username and password; TelecomsXchange recognises FreeSWITCH by its source IP. With digest authentication, use the real VoIP Login and VoIP Password: FreeSWITCH answers the 401 or 407 challenge with them without registering. 2. Load it: in fs_cli, run sofia profile external rescan, then sofia status gateway tcxc. 3. Add a dialplan extension that strips + or 00 and puts the tech prefix in front. TECH_PREFIX is the route's prefix from My Interconnections: xml <!-- conf/dialplan/default/90_tcxc.xml --> <include> <extension name=\"to-tcxc\"> <condition field=\"destination_number\" expression=\"^(?:\\+ 00)?([1-9]\\d{6,14})$\"> <action application=\"set\" data=\"tcxc_prefix=80039#\"/> <!-- TECH_PREFIX --> <action application=\"set\" data=\"hangup_after_bridge=true\"/> <action application=\"bridge\" data=\"sofia/gateway/tcxc/${tcxc_prefix}$1\"/> </condition> </extension> </include> Run reloadxml. Put the extension in the context your users or customers dial from, after any local extensions it would otherwise catch. For several routes, set a different tcxc_prefix per destination pattern, or dial a routing group prefix such as 444101# and let TelecomsXchange choose the route."
    },
    {
     "id": "how-do-i-receive-calls-from-telecomsxchange",
     "title": "How do I receive calls from TelecomsXchange?",
     "text": "Calls on routes you sell, and on numbers you bought, 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 your firewall for SIP to the profile's port, and open your RTP range (by default 16384 to 32768). 2. Add an ACL list: xml <!-- conf/autoload_configs/acl.conf.xml, inside <network-lists> --> <list name=\"tcxc\" default=\"deny\"> <node type=\"allow\" cidr=\"174.136.44.213/32\"/> </list> 3. Apply it to the profile that receives the calls, then run reloadacl and restart that profile (sofia profile external restart): xml <!-- conf/sip_profiles/external.xml, in <settings> --> <param name=\"apply-inbound-acl\" value=\"tcxc\"/> If the profile already applies an inbound ACL, add the node to that list instead. 4. Calls on the external profile enter the public context. Route only TelecomsXchange calls onward: xml <!-- conf/dialplan/public/10_from_tcxc.xml --> <include> <extension name=\"from-tcxc\"> <condition field=\"network_addr\" expression=\"^174\\.136\\.44\\.213$\"/> <condition field=\"destination_number\" expression=\"^(\\d+)$\"> <action application=\"transfer\" data=\"$1 XML from-tcxc\"/> </condition> </extension> </include> In the from-tcxc context, bridge each number to an extension, or for a seller route to your upstream gateway. If your route has an Outgoing Prefix or strips digits, match the number in that format."
    },
    {
     "id": "how-do-i-receive-calls-on-numbers-i-bought",
     "title": "How do I receive calls on numbers I bought?",
     "text": "Set the number's SIP Endpoint (Primary) in DID Settings to FreeSWITCH, for example sip:14165551234@203.0.113.10:5080 for the external profile. The call arrives from 174.136.44.213, passes the ACL, and the from-tcxc extension above transfers it by destination_number."
    },
    {
     "id": "how-do-i-test-it",
     "title": "How do I test it?",
     "text": "1. In fs_cli, run sofia global siptrace on (and sofia loglevel all 9 for more detail), or capture with sngrep port 5060 or port 5080. 2. Place a call: originate sofia/gateway/tcxc/80039#447700900123 &echo. 3. Check the INVITE's Request-URI starts with the tech prefix, and read the reply code. 4. In the portal, watch the call in Live Calls and find its SIP code in Logs \u2192 CDR (Voice). Turn tracing off with sofia global siptrace off."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do 401 or 407, then the call fails The gateway's username or password don't match Edit Account. Correct them and run sofia profile external killgw tcxc then rescan. 403 Forbidden FreeSWITCH's public IP isn't authorised and no valid credentials were sent. Check the source IP in the trace against IP Address and Additional Allowed IPs; 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 tcxc_prefix and the Request-URI in the trace. 408 Request Timeout No reply from sip01. Check outbound UDP 5060 on the firewall and DNS on the server. 503 Service Unavailable The route is blocked or failed on the seller's side. Check My Interconnections; try another route or a routing group. One-way or no audio Set ext-rtp-ip and ext-sip-ip on the profile to your public IP and open the RTP range. No inbound calls 174.136.44.213 isn't allowed on the firewall or in the ACL, or the route or number points at the wrong port. Check with sofia status profile external and a trace. Inbound call lands in public and is dropped No extension in public matched. Check the from-tcxc extension and the number format."
    },
    {
     "id": "references",
     "title": "References",
     "text": "- FreeSWITCH gateways configuration - Sofia gateway authentication parameters - FreeSWITCH access control lists - mod_sofia"
    }
   ]
  },
  {
   "slug": "kamailio",
   "section": "integrations",
   "title": "Connect Kamailio to TelecomsXchange",
   "description": "Route calls from Kamailio to TelecomsXchange with dispatcher and a tech prefix, answer digest challenges with uac, and accept 174.136.44.213 with permissions.",
   "summary": "Put sip:sip01.telecomsxchange.com:5060 in a dispatcher set, rewrite the Request-URI user to TECH_PREFIX plus the E.164 number, and relay. Authorise Kamailio's public IP on the account, or answer 401/407 in a failure route with uac_auth() and the VoIP login. Accept inbound calls with allow_source_address() for 174.136.44.213.",
   "url": "https://help.telecomsxchange.com/integrations/kamailio/",
   "markdown_url": "https://help.telecomsxchange.com/integrations/kamailio.md",
   "updated": "2026-10-23",
   "keywords": [
    "kamailio",
    "dispatcher",
    "ds_select_dst",
    "uac",
    "uac_auth",
    "permissions",
    "allow_source_address",
    "address table",
    "sip proxy",
    "tech prefix",
    "ip authentication",
    "digest authentication",
    "no registration",
    "kamcmd",
    "sngrep"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Can Kamailio register to TelecomsXchange?",
     "a": "No. TelecomsXchange is peering only and does not accept REGISTER, so don't use the uac module's remote registration. Kamailio is recognised by its source IP, or by answering the digest challenge with uac_auth()."
    },
    {
     "q": "Does Kamailio need to handle media?",
     "a": "Kamailio only relays signalling. Media flows between the endpoints in the SDP, so if your media servers are behind NAT, add rtpengine or set their public IP. TelecomsXchange doesn't transcode."
    },
    {
     "q": "How do I use several purchased routes?",
     "a": "Choose the tech prefix per destination in the script, for example from an htable or a database lookup, or dial a routing group prefix starting with 444 and let TelecomsXchange choose."
    },
    {
     "q": "Which Kamailio version is this for?",
     "a": "The modules and functions used, dispatcher, permissions and uac, are the same in Kamailio 5.8 and 6.0."
    }
   ],
   "text": "Kamailio to a purchased route 1. Your Kamailio: dispatcher set, identified by IP 2. TelecomsXchange (via 80039#447700900123): sip01, UDP 5060 3. Seller's route: The route you purchased Kamailio usually sits in front of your media servers as an SBC or routing proxy. This guide sends calls from it to TelecomsXchange and accepts TelecomsXchange's calls for routes you sell or numbers you bought. For every TelecomsXchange value in one place, see Connect a SIP platform. TelecomsXchange does not accept SIP REGISTER. Don't use uac_reg for it. Kamailio is recognised by its source IP or by digest authentication on the INVITE. Before you start - A SIP account with Kamailio's public IP, for example 203.0.113.10, or a VoIP login and password from Edit Account \u2192 Add SIP Digest Auth. - A purchased route and its tech prefix from My Interconnections, for example 80039#. - Kamailio with the tm, dispatcher, permissions and uac modules available. - To sell: a route with IP Address:Port set to Kamailio, for example 203.0.113.10:5060, and the values in Interconnect Info. How do I send calls to TelecomsXchange? 1. Add TelecomsXchange as dispatcher set 1, and your own media servers as set 2 for inbound calls: text /etc/kamailio/dispatcher.list setid destination 1 sip:sip01.telecomsxchange.com:5060 2 sip:10.0.0.21:5060 2. Load the modules and set their parameters in kamailio.cfg: text loadmodule \"dispatcher.so\" loadmodule \"permissions.so\" loadmodule \"uac.so\" modparam(\"dispatcher\", \"list_file\", \"/etc/kamailio/dispatcher.list\") modparam(\"permissions\", \"address_file\", \"address.list\") # next to kamailio.cfg digest credentials are read from these AVPs in the failure route modparam(\"uac\", \"auth_username_avp\", \"$avp(auser)\") modparam(\"uac\", \"auth_password_avp\", \"$avp(apass)\") modparam(\"uac\", \"auth_realm_avp\", \"$avp(arealm)\") 3. Rewrite the number and relay. 80039# is the TECH_PREFIX from My Interconnections: text route[TO_TCXC] { strip + or 00 so the number is plain E.164 if ($(rU{s.substr,0,1}) == \"+\") { $rU = $(rU{s.substr,1,0}); } else if ($(rU{s.substr,0,2}) == \"00\") { $rU = $(rU{s.substr,2,0}); } $rU = \"80039#\" + $rU; # TECH_PREFIX + E.164 if (!ds_select_dst(\"1\", \"4\")) { send_reply(\"503\", \"TelecomsXchange unavailable\"); exit; } t_on_failure(\"TCXC_AUTH\"); route(RELAY); exit; } failure_route[TCXC_AUTH] { if (t_is_canceled()) exit; digest variant: answer TCXC's challenge with the account's VoIP login if (t_check_status(\"401 407\")) { $avp(auser) = \"VOIP_LOGIN\"; $avp(apass) = \"VOIP_PASSWORD\"; $avp(arealm) = $null; # empty: use the realm from the challenge if (uac_auth()) { t_relay(); } exit; } } Call route(TO_TCXC) from request_route for the INVITEs your customers send to international numbers, after your own authentication of those customers. With IP authentication only, TelecomsXchange doesn't challenge and the failure route is never used for auth; keep it anyway, so adding a VoIP login later needs no script change. sip01 is a single host, so set 1 has one destination. To fail over between purchased routes, dial a routing group prefix such as 444101# and let TelecomsXchange pick the route. How do I receive calls from TelecomsXchange? Calls on routes you sell, and on numbers you bought, 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 your firewall for UDP 5060. 2. Add it to the permissions address file as group 10: text /etc/kamailio/address.list group address mask port tag 10 174.136.44.213 32 0 tcxc 3. Near the top of request_route, before your customer authentication, send TelecomsXchange's INVITEs to your media servers: text if (is_method(\"INVITE\") && allow_source_address(\"10\")) { route sold: E.164 number in $rU, e.g. 14165551234 if (!ds_select_dst(\"2\", \"4\")) { send_reply(\"503\", \"No media server\"); exit; } route(RELAY); exit; } 4. Reload with kamcmd permissions.addressReload and kamcmd dispatcher.reload. If your route has an Outgoing Prefix or strips digits (Edit Route \u2192 Outgoing Number Translation Parameters), expect the number in that format. How do I receive calls on numbers I bought? Set the number's SIP Endpoint (Primary) in DID Settings to Kamailio, for example sip:14165551234@203.0.113.10:5060. The INVITE comes from 174.136.44.213, matches allow_source_address(\"10\"), and goes to your media servers with the number in $rU. How do I test it? 1. Check the configuration: kamailio -c -f /etc/kamailio/kamailio.cfg, then kamcmd dispatcher.list and kamcmd permissions.addressDump. 2. Start a capture: sngrep port 5060. 3. Place a call from one of your customers and check the INVITE to sip01 carries 80039#447700900123 (or 80039%23447700900123) and the reply code. 4. In the portal, watch the call in Live Calls and find its SIP code in Logs \u2192 CDR (Voice). What if something goes wrong? You see What to do 401 or 407 passed back to your customer The failure route isn't armed or uac_auth() failed. Check t_on_failure(\"TCXC_AUTH\") runs before the relay, and the VoIP login and password. 403 Forbidden Kamailio's public IP isn't authorised and no valid credentials were sent. Check the source IP in sngrep against IP Address and Additional Allowed IPs; check the account isn't blocked or out of balance. 404 Not Found Missing or wrong tech prefix, or +/00 left in the number. Log $rU before ds_select_dst(). 408 Request Timeout No reply from sip01. Check outbound UDP 5060, and that Kamailio resolved the hostname (kamcmd dispatcher.list). 503 Service Unavailable From TelecomsXchange: the route is blocked or failed; check My Interconnections. From Kamailio: the dispatcher set has no active destination. One-way or no audio Your media servers advertise private IPs. Add rtpengine or set their external address, and open the RTP range. No inbound calls 174.136.44.213 isn't allowed on the firewall or not in address.list, or the route or number points at the wrong host or port. References - Kamailio dispatcher module - Kamailio permissions module - Kamailio uac module - Kamailio core cookbook: transformations",
   "sections": [
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "- A SIP account with Kamailio's public IP, for example 203.0.113.10, or a VoIP login and password from Edit Account \u2192 Add SIP Digest Auth. - A purchased route and its tech prefix from My Interconnections, for example 80039#. - Kamailio with the tm, dispatcher, permissions and uac modules available. - To sell: a route with IP Address:Port set to Kamailio, for example 203.0.113.10:5060, and the values in Interconnect Info."
    },
    {
     "id": "how-do-i-send-calls-to-telecomsxchange",
     "title": "How do I send calls to TelecomsXchange?",
     "text": "1. Add TelecomsXchange as dispatcher set 1, and your own media servers as set 2 for inbound calls: text /etc/kamailio/dispatcher.list setid destination 1 sip:sip01.telecomsxchange.com:5060 2 sip:10.0.0.21:5060 2. Load the modules and set their parameters in kamailio.cfg: text loadmodule \"dispatcher.so\" loadmodule \"permissions.so\" loadmodule \"uac.so\" modparam(\"dispatcher\", \"list_file\", \"/etc/kamailio/dispatcher.list\") modparam(\"permissions\", \"address_file\", \"address.list\") # next to kamailio.cfg digest credentials are read from these AVPs in the failure route modparam(\"uac\", \"auth_username_avp\", \"$avp(auser)\") modparam(\"uac\", \"auth_password_avp\", \"$avp(apass)\") modparam(\"uac\", \"auth_realm_avp\", \"$avp(arealm)\") 3. Rewrite the number and relay. 80039# is the TECH_PREFIX from My Interconnections: text route[TO_TCXC] { strip + or 00 so the number is plain E.164 if ($(rU{s.substr,0,1}) == \"+\") { $rU = $(rU{s.substr,1,0}); } else if ($(rU{s.substr,0,2}) == \"00\") { $rU = $(rU{s.substr,2,0}); } $rU = \"80039#\" + $rU; # TECH_PREFIX + E.164 if (!ds_select_dst(\"1\", \"4\")) { send_reply(\"503\", \"TelecomsXchange unavailable\"); exit; } t_on_failure(\"TCXC_AUTH\"); route(RELAY); exit; } failure_route[TCXC_AUTH] { if (t_is_canceled()) exit; digest variant: answer TCXC's challenge with the account's VoIP login if (t_check_status(\"401 407\")) { $avp(auser) = \"VOIP_LOGIN\"; $avp(apass) = \"VOIP_PASSWORD\"; $avp(arealm) = $null; # empty: use the realm from the challenge if (uac_auth()) { t_relay(); } exit; } } Call route(TO_TCXC) from request_route for the INVITEs your customers send to international numbers, after your own authentication of those customers. With IP authentication only, TelecomsXchange doesn't challenge and the failure route is never used for auth; keep it anyway, so adding a VoIP login later needs no script change. sip01 is a single host, so set 1 has one destination. To fail over between purchased routes, dial a routing group prefix such as 444101# and let TelecomsXchange pick the route."
    },
    {
     "id": "how-do-i-receive-calls-from-telecomsxchange",
     "title": "How do I receive calls from TelecomsXchange?",
     "text": "Calls on routes you sell, and on numbers you bought, 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 your firewall for UDP 5060. 2. Add it to the permissions address file as group 10: text /etc/kamailio/address.list group address mask port tag 10 174.136.44.213 32 0 tcxc 3. Near the top of request_route, before your customer authentication, send TelecomsXchange's INVITEs to your media servers: text if (is_method(\"INVITE\") && allow_source_address(\"10\")) { route sold: E.164 number in $rU, e.g. 14165551234 if (!ds_select_dst(\"2\", \"4\")) { send_reply(\"503\", \"No media server\"); exit; } route(RELAY); exit; } 4. Reload with kamcmd permissions.addressReload and kamcmd dispatcher.reload. If your route has an Outgoing Prefix or strips digits (Edit Route \u2192 Outgoing Number Translation Parameters), expect the number in that format."
    },
    {
     "id": "how-do-i-receive-calls-on-numbers-i-bought",
     "title": "How do I receive calls on numbers I bought?",
     "text": "Set the number's SIP Endpoint (Primary) in DID Settings to Kamailio, for example sip:14165551234@203.0.113.10:5060. The INVITE comes from 174.136.44.213, matches allow_source_address(\"10\"), and goes to your media servers with the number in $rU."
    },
    {
     "id": "how-do-i-test-it",
     "title": "How do I test it?",
     "text": "1. Check the configuration: kamailio -c -f /etc/kamailio/kamailio.cfg, then kamcmd dispatcher.list and kamcmd permissions.addressDump. 2. Start a capture: sngrep port 5060. 3. Place a call from one of your customers and check the INVITE to sip01 carries 80039#447700900123 (or 80039%23447700900123) and the reply code. 4. In the portal, watch the call in Live Calls and find its SIP code in Logs \u2192 CDR (Voice)."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do 401 or 407 passed back to your customer The failure route isn't armed or uac_auth() failed. Check t_on_failure(\"TCXC_AUTH\") runs before the relay, and the VoIP login and password. 403 Forbidden Kamailio's public IP isn't authorised and no valid credentials were sent. Check the source IP in sngrep against IP Address and Additional Allowed IPs; check the account isn't blocked or out of balance. 404 Not Found Missing or wrong tech prefix, or +/00 left in the number. Log $rU before ds_select_dst(). 408 Request Timeout No reply from sip01. Check outbound UDP 5060, and that Kamailio resolved the hostname (kamcmd dispatcher.list). 503 Service Unavailable From TelecomsXchange: the route is blocked or failed; check My Interconnections. From Kamailio: the dispatcher set has no active destination. One-way or no audio Your media servers advertise private IPs. Add rtpengine or set their external address, and open the RTP range. No inbound calls 174.136.44.213 isn't allowed on the firewall or not in address.list, or the route or number points at the wrong host or port."
    },
    {
     "id": "references",
     "title": "References",
     "text": "- Kamailio dispatcher module - Kamailio permissions module - Kamailio uac module - Kamailio core cookbook: transformations"
    }
   ]
  },
  {
   "slug": "opensips",
   "section": "integrations",
   "title": "Connect OpenSIPS to TelecomsXchange",
   "description": "Route OpenSIPS calls to TelecomsXchange with drouting and a tech prefix, answer digest challenges with uac_auth, and accept 174.136.44.213 with permissions.",
   "summary": "Add sip01.telecomsxchange.com:5060 as a drouting gateway whose pri_prefix is the route's tech prefix, normalise the number to E.164 and call do_routing(). Authorise OpenSIPS's public IP on the account, or answer 401/407 in a failure route with uac_auth() and the VoIP login. Accept inbound calls with check_source_address() for 174.136.44.213.",
   "url": "https://help.telecomsxchange.com/integrations/opensips/",
   "markdown_url": "https://help.telecomsxchange.com/integrations/opensips.md",
   "updated": "2026-10-23",
   "keywords": [
    "opensips",
    "drouting",
    "dr_gateways",
    "dr_rules",
    "pri_prefix",
    "do_routing",
    "dispatcher",
    "uac",
    "uac_auth",
    "permissions",
    "check_source_address",
    "address table",
    "sip proxy",
    "tech prefix",
    "ip authentication",
    "digest authentication",
    "no registration",
    "opensips-cli"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Can OpenSIPS register to TelecomsXchange?",
     "a": "No. TelecomsXchange is peering only and does not accept REGISTER, so don't use uac_registrant for it. OpenSIPS is recognised by its source IP, or by answering the digest challenge with uac_auth()."
    },
    {
     "q": "Should I use drouting or dispatcher?",
     "a": "drouting, if you buy several TelecomsXchange routes: each route becomes a gateway with its own pri_prefix, and rules pick it by destination prefix. dispatcher works for a single route, with the tech prefix added in the script."
    },
    {
     "q": "Which realm goes in the uac_auth credential?",
     "a": "TelecomsXchange challenges with its platform IP as the realm: 174.136.44.213, the address sip01.telecomsxchange.com resolves to. If you send through another TelecomsXchange address, copy the realm from one captured challenge."
    },
    {
     "q": "Which OpenSIPS version is this for?",
     "a": "OpenSIPS 3.x. The examples follow the 3.6 module documentation; drouting, uac, uac_auth and permissions work the same way in 3.4."
    }
   ],
   "text": "OpenSIPS to a purchased route 1. Your OpenSIPS: drouting gateway, identified by IP 2. TelecomsXchange (via 80039#447700900123): sip01, UDP 5060 3. Seller's route: The route you purchased OpenSIPS often fronts a voice network as an SBC or least-cost router. This guide sends calls from it to TelecomsXchange and accepts TelecomsXchange's calls for routes you sell or numbers you bought. For every TelecomsXchange value in one place, see Connect a SIP platform. TelecomsXchange does not accept SIP REGISTER. Don't use uac_registrant for it. OpenSIPS is recognised by its source IP or by digest authentication on the INVITE. Before you start - A SIP account with OpenSIPS's public IP, for example 203.0.113.10, or a VoIP login and password from Edit Account \u2192 Add SIP Digest Auth. - One or more purchased routes and their tech prefixes from My Interconnections, for example 80039#. - OpenSIPS 3.x with a database (db_mysql or db_postgres) and the tm, drouting, uac, uac_auth and permissions modules. - To sell: a route with IP Address:Port set to OpenSIPS, for example 203.0.113.10:5060, and the values in Interconnect Info. How do I send calls to TelecomsXchange? 1. Add one gateway per purchased route. They share the address and differ in pri_prefix, the tech prefix that drouting puts in front of the number: sql -- type 1 is a label of your choice for TCXC gateways INSERT INTO dr_gateways (gwid, type, address, strip, pri_prefix, description) VALUES ('tcxc_80039', 1, 'sip01.telecomsxchange.com:5060', 0, '80039#', 'TCXC route 80039'); -- send UK numbers (44...) in routing group 1 to that gateway INSERT INTO dr_rules (groupid, prefix, timerec, priority, gwlist, description) VALUES ('1', '44', '', 0, 'tcxc_80039', 'UK via TCXC'); 2. Load the modules in opensips.cfg: text loadmodule \"drouting.so\" loadmodule \"uac_auth.so\" loadmodule \"uac.so\" loadmodule \"permissions.so\" modparam(\"drouting\", \"db_url\", \"mysql://opensips:PASSWORD@localhost/opensips\") modparam(\"drouting\", \"use_domain\", 0) modparam(\"permissions\", \"db_url\", \"mysql://opensips:PASSWORD@localhost/opensips\") digest variant: the account's VoIP login, the realm TCXC challenges with (its platform IP), the VoIP password modparam(\"uac_auth\", \"credential\", \"VOIP_LOGIN:174.136.44.213:VOIP_PASSWORD\") 3. Normalise the number, route, and handle the challenge: text route[to_tcxc] { strip + or 00 so the rules see plain E.164 if ($rU =~ \"^\\+\") { $rU = $(rU{s.substr,1,0}); } else if ($rU =~ \"^00\") { $rU = $(rU{s.substr,2,0}); } do_routing() picks the gateway and prepends its pri_prefix: 80039#447700900123 if (!do_routing(1)) { send_reply(404, \"No TCXC route\"); exit; } t_on_failure(\"tcxc_auth\"); t_relay(); exit; } failure_route[tcxc_auth] { if (t_was_cancelled()) exit; if (t_check_status(\"401 407\")) { if (uac_auth()) { # adds Authorization / Proxy-Authorization t_relay(); } exit; } } Call route(to_tcxc) from your main route for INVITEs your customers send to international numbers, after authenticating those customers. Reload rules with opensips-cli -x mi dr_reload. With IP authentication only, TelecomsXchange doesn't challenge and uac_auth() is never called; leave the credential line out. Using dispatcher instead. For a single route, put sip:sip01.telecomsxchange.com:5060 in a dispatcher set, set $rU = \"80039#\" + $rU; after normalising, then ds_select_dst(1, 4) and relay with the same failure route. To let TelecomsXchange choose between your routes, make one gateway with pri_prefix set to a routing group prefix such as 444101#. How do I receive calls from TelecomsXchange? Calls on routes you sell, and on numbers you bought, 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 your firewall for UDP 5060. 2. Add it to the address table as group 10, then run opensips-cli -x mi address_reload: sql INSERT INTO address (grp, ip, mask, port, proto, context_info) VALUES (10, '174.136.44.213', 32, 0, 'any', 'tcxc'); 3. Near the top of your main route, before customer authentication: text if (is_method(\"INVITE\") && check_source_address(10)) { from TelecomsXchange: E.164 number in $rU, e.g. 14165551234 send it to your media servers, here drouting group 2 if (!do_routing(2)) { send_reply(404, \"Not here\"); exit; } t_relay(); exit; } If your route has an Outgoing Prefix or strips digits (Edit Route \u2192 Outgoing Number Translation Parameters), expect the number in that format. How do I receive calls on numbers I bought? Set the number's SIP Endpoint (Primary) in DID Settings to OpenSIPS, for example sip:14165551234@203.0.113.10:5060. The INVITE comes from 174.136.44.213, matches check_source_address(10), and is routed by the number in $rU. How do I test it? 1. Check the gateways and addresses are loaded: opensips-cli -x mi dr_gw_status and opensips-cli -x mi address_dump. 2. Start a capture: sngrep port 5060. 3. Place a call and check the INVITE to sip01 carries 80039#447700900123 (or 80039%23447700900123) and the reply code. If you see a 401 or 407, note its realm for the credential line. 4. In the portal, watch the call in Live Calls and find its SIP code in Logs \u2192 CDR (Voice). What if something goes wrong? You see What to do 401 or 407 passed back to your customer uac_auth() found no matching credential. Check the credential realm matches the challenge, and the VoIP login and password on Edit Account. 403 Forbidden OpenSIPS's public IP isn't authorised and no valid credentials were sent. Check the source IP against IP Address and Additional Allowed IPs; check the account isn't blocked or out of balance. 404 Not Found from TelecomsXchange Missing or wrong tech prefix, or +/00 left in the number. Check pri_prefix and strip on the gateway. 404 No TCXC route from OpenSIPS No dr_rules prefix matched the number. Add a rule or reload with dr_reload. 408 Request Timeout No reply from sip01. Check outbound UDP 5060 and DNS on the server. 503 Service Unavailable The route is blocked or failed on the seller's side. Check My Interconnections; try another route or a routing group. One-way or no audio Your media servers advertise private IPs. Add rtpengine or set their external address, and open the RTP range. No inbound calls 174.136.44.213 isn't allowed on the firewall or not in the address table, or the route or number points at the wrong host or port. References - OpenSIPS drouting module - OpenSIPS dispatcher module - OpenSIPS uac module - OpenSIPS uac_auth module - OpenSIPS permissions module",
   "sections": [
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "- A SIP account with OpenSIPS's public IP, for example 203.0.113.10, or a VoIP login and password from Edit Account \u2192 Add SIP Digest Auth. - One or more purchased routes and their tech prefixes from My Interconnections, for example 80039#. - OpenSIPS 3.x with a database (db_mysql or db_postgres) and the tm, drouting, uac, uac_auth and permissions modules. - To sell: a route with IP Address:Port set to OpenSIPS, for example 203.0.113.10:5060, and the values in Interconnect Info."
    },
    {
     "id": "how-do-i-send-calls-to-telecomsxchange",
     "title": "How do I send calls to TelecomsXchange?",
     "text": "1. Add one gateway per purchased route. They share the address and differ in pri_prefix, the tech prefix that drouting puts in front of the number: sql -- type 1 is a label of your choice for TCXC gateways INSERT INTO dr_gateways (gwid, type, address, strip, pri_prefix, description) VALUES ('tcxc_80039', 1, 'sip01.telecomsxchange.com:5060', 0, '80039#', 'TCXC route 80039'); -- send UK numbers (44...) in routing group 1 to that gateway INSERT INTO dr_rules (groupid, prefix, timerec, priority, gwlist, description) VALUES ('1', '44', '', 0, 'tcxc_80039', 'UK via TCXC'); 2. Load the modules in opensips.cfg: text loadmodule \"drouting.so\" loadmodule \"uac_auth.so\" loadmodule \"uac.so\" loadmodule \"permissions.so\" modparam(\"drouting\", \"db_url\", \"mysql://opensips:PASSWORD@localhost/opensips\") modparam(\"drouting\", \"use_domain\", 0) modparam(\"permissions\", \"db_url\", \"mysql://opensips:PASSWORD@localhost/opensips\") digest variant: the account's VoIP login, the realm TCXC challenges with (its platform IP), the VoIP password modparam(\"uac_auth\", \"credential\", \"VOIP_LOGIN:174.136.44.213:VOIP_PASSWORD\") 3. Normalise the number, route, and handle the challenge: text route[to_tcxc] { strip + or 00 so the rules see plain E.164 if ($rU =~ \"^\\+\") { $rU = $(rU{s.substr,1,0}); } else if ($rU =~ \"^00\") { $rU = $(rU{s.substr,2,0}); } do_routing() picks the gateway and prepends its pri_prefix: 80039#447700900123 if (!do_routing(1)) { send_reply(404, \"No TCXC route\"); exit; } t_on_failure(\"tcxc_auth\"); t_relay(); exit; } failure_route[tcxc_auth] { if (t_was_cancelled()) exit; if (t_check_status(\"401 407\")) { if (uac_auth()) { # adds Authorization / Proxy-Authorization t_relay(); } exit; } } Call route(to_tcxc) from your main route for INVITEs your customers send to international numbers, after authenticating those customers. Reload rules with opensips-cli -x mi dr_reload. With IP authentication only, TelecomsXchange doesn't challenge and uac_auth() is never called; leave the credential line out. Using dispatcher instead. For a single route, put sip:sip01.telecomsxchange.com:5060 in a dispatcher set, set $rU = \"80039#\" + $rU; after normalising, then ds_select_dst(1, 4) and relay with the same failure route. To let TelecomsXchange choose between your routes, make one gateway with pri_prefix set to a routing group prefix such as 444101#."
    },
    {
     "id": "how-do-i-receive-calls-from-telecomsxchange",
     "title": "How do I receive calls from TelecomsXchange?",
     "text": "Calls on routes you sell, and on numbers you bought, 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 your firewall for UDP 5060. 2. Add it to the address table as group 10, then run opensips-cli -x mi address_reload: sql INSERT INTO address (grp, ip, mask, port, proto, context_info) VALUES (10, '174.136.44.213', 32, 0, 'any', 'tcxc'); 3. Near the top of your main route, before customer authentication: text if (is_method(\"INVITE\") && check_source_address(10)) { from TelecomsXchange: E.164 number in $rU, e.g. 14165551234 send it to your media servers, here drouting group 2 if (!do_routing(2)) { send_reply(404, \"Not here\"); exit; } t_relay(); exit; } If your route has an Outgoing Prefix or strips digits (Edit Route \u2192 Outgoing Number Translation Parameters), expect the number in that format."
    },
    {
     "id": "how-do-i-receive-calls-on-numbers-i-bought",
     "title": "How do I receive calls on numbers I bought?",
     "text": "Set the number's SIP Endpoint (Primary) in DID Settings to OpenSIPS, for example sip:14165551234@203.0.113.10:5060. The INVITE comes from 174.136.44.213, matches check_source_address(10), and is routed by the number in $rU."
    },
    {
     "id": "how-do-i-test-it",
     "title": "How do I test it?",
     "text": "1. Check the gateways and addresses are loaded: opensips-cli -x mi dr_gw_status and opensips-cli -x mi address_dump. 2. Start a capture: sngrep port 5060. 3. Place a call and check the INVITE to sip01 carries 80039#447700900123 (or 80039%23447700900123) and the reply code. If you see a 401 or 407, note its realm for the credential line. 4. In the portal, watch the call in Live Calls and find its SIP code in Logs \u2192 CDR (Voice)."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do 401 or 407 passed back to your customer uac_auth() found no matching credential. Check the credential realm matches the challenge, and the VoIP login and password on Edit Account. 403 Forbidden OpenSIPS's public IP isn't authorised and no valid credentials were sent. Check the source IP against IP Address and Additional Allowed IPs; check the account isn't blocked or out of balance. 404 Not Found from TelecomsXchange Missing or wrong tech prefix, or +/00 left in the number. Check pri_prefix and strip on the gateway. 404 No TCXC route from OpenSIPS No dr_rules prefix matched the number. Add a rule or reload with dr_reload. 408 Request Timeout No reply from sip01. Check outbound UDP 5060 and DNS on the server. 503 Service Unavailable The route is blocked or failed on the seller's side. Check My Interconnections; try another route or a routing group. One-way or no audio Your media servers advertise private IPs. Add rtpengine or set their external address, and open the RTP range. No inbound calls 174.136.44.213 isn't allowed on the firewall or not in the address table, or the route or number points at the wrong host or port."
    },
    {
     "id": "references",
     "title": "References",
     "text": "- OpenSIPS drouting module - OpenSIPS dispatcher module - OpenSIPS uac module - OpenSIPS uac_auth module - OpenSIPS permissions module"
    }
   ]
  },
  {
   "slug": "sippy",
   "section": "integrations",
   "title": "Connect Sippy Softswitch to TelecomsXchange",
   "description": "Set up TelecomsXchange in Sippy Softswitch as a vendor connection with a tech-prefix translation rule, and as a customer account authenticated by IP.",
   "summary": "In Sippy, add a vendor TelecomsXchange with a connection to sip01.telecomsxchange.com port 5060 and the CLD translation rule s/^/80039#/, then add it to a routing group. Authorise Sippy's public IP on the TelecomsXchange account or fill the connection's username and password with the VoIP login. To sell, create an account with an authentication rule for remote IP 174.136.44.213.",
   "url": "https://help.telecomsxchange.com/integrations/sippy/",
   "markdown_url": "https://help.telecomsxchange.com/integrations/sippy.md",
   "updated": "2026-10-23",
   "keywords": [
    "sippy",
    "sippy softswitch",
    "vendor",
    "connection",
    "translation rule",
    "cld translation",
    "authentication rules",
    "remote ip",
    "routing group",
    "tariff",
    "sippy rate format",
    "tech prefix",
    "ip authentication",
    "digest authentication",
    "no registration"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Can Sippy register to TelecomsXchange?",
     "a": "No. TelecomsXchange is peering only and does not accept REGISTER. Sippy sends calls through a vendor connection, recognised by its source IP or by digest credentials on the connection."
    },
    {
     "q": "Where do I put the tech prefix?",
     "a": "In the connection's CLD translation rule, as a sed-style substitution: s/^/80039#/ turns 447700900123 into 80039#447700900123. Use one connection per purchased route."
    },
    {
     "q": "Can I import TelecomsXchange rates into Sippy?",
     "a": "Yes. On TelecomsXchange, Edit Account lists the account's purchased routes with a rates download in Sippy format. Load the file into the vendor tariff used by the connection."
    },
    {
     "q": "How does TelecomsXchange appear when I sell to it?",
     "a": "As one customer account, authenticated by remote IP 174.136.44.213. Calls arrive in E.164 format such as 14165551234."
    }
   ],
   "text": "Sippy to a purchased route 1. Your Sippy: Vendor connection, identified by IP 2. TelecomsXchange (via 80039#447700900123): sip01, UDP 5060 3. Seller's route: The route you purchased Sippy Softswitch models carriers as vendors with connections, and customers as accounts with authentication rules. TelecomsXchange is a vendor when you buy routes and a customer account when you sell them. For every TelecomsXchange value in one place, see Connect a SIP platform. TelecomsXchange does not accept SIP REGISTER. There is no registration to set up on the vendor side. Sippy is recognised by its source IP or by digest authentication on the INVITE, using the connection's username and password. Before you start - A SIP account on TelecomsXchange with Sippy's public signalling IP, for example 203.0.113.10, or a VoIP login and password from Edit Account \u2192 Add SIP Digest Auth. - A purchased route and its tech prefix from My Interconnections, for example 80039#. - Admin access to the Sippy web interface. - To sell: a route with IP Address:Port set to Sippy, for example 203.0.113.10:5060, and the values in Interconnect Info. How do I send calls to TelecomsXchange? 1. Go to Vendors \u2192 My Vendors and add a vendor, for example TelecomsXchange. 2. Open the vendor's Connections and add a connection, one per purchased route: - Connection Name: for example TCXC 80039 UK. - Destination: sip01.telecomsxchange.com, port 5060. It currently resolves to 174.136.44.213; enter that IP if your release only accepts an address. - Username and Password: leave empty for IP authentication, or enter the account's VoIP Login and VoIP Password for digest authentication. - CLD Translation Rule: the tech prefix as a substitution, s/^/80039#/. Sippy passes numbers to routing in E.164 format, so 447700900123 leaves as 80039#447700900123. If your customers dial with + or 00, normalise the number to E.164 in their account's CLD translation rule, for example s/^00//. 3. Save the connection. 4. On TelecomsXchange, open Accounts \u2192 Edit Account and download the route's rates in Sippy format from Purchased Routes. Load them into the tariff that the vendor connection uses. 5. Add the connection to the Routing Group your customers' accounts use, so destinations covered by the tariff route to it. One connection per tech prefix lets Sippy's routing choose between your TelecomsXchange routes by price. To let TelecomsXchange choose instead, add a single connection with a routing group prefix such as s/^/444101#/. How do I receive calls from TelecomsXchange? When you sell a route, TelecomsXchange is your customer. Its calls 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 your firewall for SIP and media. 2. Create a customer, for example TelecomsXchange, and an account under it with the tariff and routing group you want to apply. 3. On the account, open Action \u2192 Authentication Rules and click Add Authentication Rule. 4. Enter 174.136.44.213 in Remote IP, then click Save and Close. 5. If your TelecomsXchange route adds an Outgoing Prefix (Edit Route \u2192 Outgoing Number Translation Parameters), match it with Incoming CLD on the rule and remove it with the rule's CLD translation, for example s/^77#//. Calls that match the rule are billed to that account and routed through its routing group. Calls from other IPs fall through to Sippy's other rules or are challenged for digest authentication. How do I receive calls on numbers I bought? Set the number's SIP Endpoint (Primary) in DID Settings on TelecomsXchange to Sippy, for example sip:14165551234@203.0.113.10:5060. In Sippy, add the number under DIDs and assign it to the account or IVR that should answer it. The call arrives from 174.136.44.213; if your Sippy authenticates incoming DID calls by vendor, add that IP to the DID's authentication as well. How do I test it? 1. Place a call from a test account to a number covered by the route. 2. In Sippy, open the call's CDR to see the connection used, the translated CLD (80039#447700900123) and the result code. 3. If you have shell access to the Sippy host, sngrep port 5060 shows the INVITE and the reply from sip01. 4. On TelecomsXchange, watch the call in Live Calls and find its SIP code in Logs \u2192 CDR (Voice). What if something goes wrong? You see What to do 401 or 407, then the call fails The connection's Username and Password are empty or wrong while your IP isn't authorised. Enter the VoIP login and password from Edit Account. 403 Forbidden Sippy's public IP isn't authorised and no valid credentials were sent. Check the IP against IP Address and Additional Allowed IPs; check the account isn't blocked or out of balance. 404 Not Found Missing or wrong tech prefix. Check the connection's CLD Translation Rule and that the number reaches it in E.164 without + or 00. 408 Request Timeout No reply from sip01. Check the connection's destination and port, and outbound UDP 5060. 503 Service Unavailable The route is blocked or failed on the seller's side. Check My Interconnections, and give the routing group a second connection to fail over to. One-way or no audio Sippy's media relay or NAT settings advertise a private IP. Check the media IP in the SDP and open the RTP range. No inbound calls, or calls rejected with 401 The authentication rule doesn't match. Check Remote IP is 174.136.44.213, any Incoming CLD pattern, and the firewall. Inbound calls rejected for no route or no rate The account's tariff or routing group doesn't cover the E.164 destination. References - Sippy: IP to IP authentication (vendors and accounts) - Sippy: understanding number translation - Sippy: set up tech prefixes and send traffic to vendors with tech prefixes - Sippy: understanding authentication - Sippy: create a DID and assign it to an account or IVR",
   "sections": [
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "- A SIP account on TelecomsXchange with Sippy's public signalling IP, for example 203.0.113.10, or a VoIP login and password from Edit Account \u2192 Add SIP Digest Auth. - A purchased route and its tech prefix from My Interconnections, for example 80039#. - Admin access to the Sippy web interface. - To sell: a route with IP Address:Port set to Sippy, for example 203.0.113.10:5060, and the values in Interconnect Info."
    },
    {
     "id": "how-do-i-send-calls-to-telecomsxchange",
     "title": "How do I send calls to TelecomsXchange?",
     "text": "1. Go to Vendors \u2192 My Vendors and add a vendor, for example TelecomsXchange. 2. Open the vendor's Connections and add a connection, one per purchased route: - Connection Name: for example TCXC 80039 UK. - Destination: sip01.telecomsxchange.com, port 5060. It currently resolves to 174.136.44.213; enter that IP if your release only accepts an address. - Username and Password: leave empty for IP authentication, or enter the account's VoIP Login and VoIP Password for digest authentication. - CLD Translation Rule: the tech prefix as a substitution, s/^/80039#/. Sippy passes numbers to routing in E.164 format, so 447700900123 leaves as 80039#447700900123. If your customers dial with + or 00, normalise the number to E.164 in their account's CLD translation rule, for example s/^00//. 3. Save the connection. 4. On TelecomsXchange, open Accounts \u2192 Edit Account and download the route's rates in Sippy format from Purchased Routes. Load them into the tariff that the vendor connection uses. 5. Add the connection to the Routing Group your customers' accounts use, so destinations covered by the tariff route to it. One connection per tech prefix lets Sippy's routing choose between your TelecomsXchange routes by price. To let TelecomsXchange choose instead, add a single connection with a routing group prefix such as s/^/444101#/."
    },
    {
     "id": "how-do-i-receive-calls-from-telecomsxchange",
     "title": "How do I receive calls from TelecomsXchange?",
     "text": "When you sell a route, TelecomsXchange is your customer. Its calls 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 your firewall for SIP and media. 2. Create a customer, for example TelecomsXchange, and an account under it with the tariff and routing group you want to apply. 3. On the account, open Action \u2192 Authentication Rules and click Add Authentication Rule. 4. Enter 174.136.44.213 in Remote IP, then click Save and Close. 5. If your TelecomsXchange route adds an Outgoing Prefix (Edit Route \u2192 Outgoing Number Translation Parameters), match it with Incoming CLD on the rule and remove it with the rule's CLD translation, for example s/^77#//. Calls that match the rule are billed to that account and routed through its routing group. Calls from other IPs fall through to Sippy's other rules or are challenged for digest authentication."
    },
    {
     "id": "how-do-i-receive-calls-on-numbers-i-bought",
     "title": "How do I receive calls on numbers I bought?",
     "text": "Set the number's SIP Endpoint (Primary) in DID Settings on TelecomsXchange to Sippy, for example sip:14165551234@203.0.113.10:5060. In Sippy, add the number under DIDs and assign it to the account or IVR that should answer it. The call arrives from 174.136.44.213; if your Sippy authenticates incoming DID calls by vendor, add that IP to the DID's authentication as well."
    },
    {
     "id": "how-do-i-test-it",
     "title": "How do I test it?",
     "text": "1. Place a call from a test account to a number covered by the route. 2. In Sippy, open the call's CDR to see the connection used, the translated CLD (80039#447700900123) and the result code. 3. If you have shell access to the Sippy host, sngrep port 5060 shows the INVITE and the reply from sip01. 4. On TelecomsXchange, watch the call in Live Calls and find its SIP code in Logs \u2192 CDR (Voice)."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do 401 or 407, then the call fails The connection's Username and Password are empty or wrong while your IP isn't authorised. Enter the VoIP login and password from Edit Account. 403 Forbidden Sippy's public IP isn't authorised and no valid credentials were sent. Check the IP against IP Address and Additional Allowed IPs; check the account isn't blocked or out of balance. 404 Not Found Missing or wrong tech prefix. Check the connection's CLD Translation Rule and that the number reaches it in E.164 without + or 00. 408 Request Timeout No reply from sip01. Check the connection's destination and port, and outbound UDP 5060. 503 Service Unavailable The route is blocked or failed on the seller's side. Check My Interconnections, and give the routing group a second connection to fail over to. One-way or no audio Sippy's media relay or NAT settings advertise a private IP. Check the media IP in the SDP and open the RTP range. No inbound calls, or calls rejected with 401 The authentication rule doesn't match. Check Remote IP is 174.136.44.213, any Incoming CLD pattern, and the firewall. Inbound calls rejected for no route or no rate The account's tariff or routing group doesn't cover the E.164 destination."
    },
    {
     "id": "references",
     "title": "References",
     "text": "- Sippy: IP to IP authentication (vendors and accounts) - Sippy: understanding number translation - Sippy: set up tech prefixes and send traffic to vendors with tech prefixes - Sippy: understanding authentication - Sippy: create a DID and assign it to an account or IVR"
    }
   ]
  },
  {
   "slug": "portaswitch",
   "section": "integrations",
   "title": "Connect PortaSwitch to TelecomsXchange",
   "description": "Set up TelecomsXchange in PortaBilling and PortaSIP: a To vendor connection with the tech prefix, and a customer account authenticated by IP.",
   "summary": "In PortaBilling, add a vendor TelecomsXchange and a SIP connection, direction To vendor, remote IP 174.136.44.213 (sip01) port 5060 UDP, with tech prefix 80039# or the CLD translation s/^/80039#/. Authorise PortaSIP's public IP on the TelecomsXchange account, or attach a vendor authorization with the VoIP login. To sell, create a customer account whose ID is 174.136.44.213 for IP authentication.",
   "url": "https://help.telecomsxchange.com/integrations/portaswitch/",
   "markdown_url": "https://help.telecomsxchange.com/integrations/portaswitch.md",
   "updated": "2026-10-23",
   "keywords": [
    "portaswitch",
    "portabilling",
    "portasip",
    "portaone",
    "vendor",
    "connection",
    "to vendor",
    "from vendor",
    "translation rule",
    "translate cld",
    "tech prefix",
    "vendor authorization",
    "ip authentication",
    "account id ip address",
    "digest authentication",
    "no registration",
    "xdr"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Can PortaSIP register to TelecomsXchange?",
     "a": "No. TelecomsXchange is peering only and does not accept REGISTER. PortaSIP sends calls through a To vendor connection, recognised by its source IP or by digest credentials from a vendor authorization."
    },
    {
     "q": "Should I use the connection's Tech prefix field or a translation rule?",
     "a": "Either. The Tech prefix field adjusts the connection's translation rules so the prefix is added on the way out and removed when CDRs are processed. A Translate CLD rule such as s/^/80039#/ does the same explicitly."
    },
    {
     "q": "How do I tell several TelecomsXchange routes apart?",
     "a": "Create one connection per purchased route. They share the remote IP and differ in tech prefix, which is exactly what PortaBilling's Tech prefix field is for."
    },
    {
     "q": "How does PortaSIP recognise calls from TelecomsXchange?",
     "a": "By IP: PortaSIP passes the remote IP 174.136.44.213 to PortaBilling as the account ID, so the account's ID must be that IP and PortaSIP must be set to authorise by IP rather than challenge."
    }
   ],
   "text": "PortaSwitch to a purchased route 1. Your PortaSwitch: Vendor connection, identified by IP 2. TelecomsXchange (via 80039#447700900123): sip01, UDP 5060 3. Seller's route: The route you purchased PortaSwitch splits the work between PortaBilling, where vendors, connections, customers and accounts live, and PortaSIP, which handles the SIP. TelecomsXchange is a vendor when you buy routes and a customer when you sell them. For every TelecomsXchange value in one place, see Connect a SIP platform. TelecomsXchange does not accept SIP REGISTER. There is no registration to configure. PortaSIP is recognised by its source IP or by digest authentication on the INVITE. Before you start - A SIP account on TelecomsXchange with PortaSIP's public IP, for example 203.0.113.10, or a VoIP login and password from Edit Account \u2192 Add SIP Digest Auth. - A purchased route and its tech prefix from My Interconnections, for example 80039#. - Administrator access to PortaBilling. Menu names below follow the current admin interface (Infrastructure \u2192 Vendors); older releases use the same objects under Vendors and Connections. - To sell: a route with IP Address:Port set to PortaSIP, for example 203.0.113.10:5060, and the values in Interconnect Info. How do I send calls to TelecomsXchange? 1. Go to Infrastructure \u2192 Vendors and add a vendor, for example TelecomsXchange. 2. Digest variant only: open the vendor's Authorization, click Add and enter a Name, the account's VoIP Login as Login and its VoIP Password as Password. You assign this authorization to the connection later. 3. Create a connection (Create connection), one per purchased route: Field Value Description TCXC 80039 UK Service type Voice calls Type of connections SIP Direction To vendor Tariff A tariff with the route's TelecomsXchange rates Identify gateway by IP Remote IP 174.136.44.213 (the address of sip01.telecomsxchange.com) Port 5060 Protocol UDP Tech prefix 80039# 4. Instead of the Tech prefix field, you can set the number translation in the connection's service configuration under Translate CLD, as a Perl substitution: perl s/^/80039#/ PortaBilling works in E.164, so 447700900123 leaves as 80039#447700900123. 5. For the digest variant, attach the vendor authorization from step 2 to the connection. 6. Include the connection in the routing plan your customers' products use. Download each route's rates from TelecomsXchange (Accounts \u2192 Edit Account \u2192 Purchased Routes) and load them into the connection's tariff, so PortaBilling's least-cost routing compares TelecomsXchange with your other vendors. How do I receive calls from TelecomsXchange? When you sell a route, TelecomsXchange is your customer. Its calls 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 your firewall for SIP and media. 2. Create a customer, for example TelecomsXchange, with the product and routing plan you want to sell on. 3. Add an account under it with ID 174.136.44.213. With IP authentication, PortaSIP doesn't challenge the INVITE: it sends the remote IP to PortaBilling as the account ID and skips the password check. 4. Make sure your PortaSIP is configured for authorisation by IP address for this traffic. See PortaOne's IP-based authorisation documentation for your release. 5. If your TelecomsXchange route adds an Outgoing Prefix (Edit Route \u2192 Outgoing Number Translation Parameters), remove it with the customer's dialing rules so PortaBilling sees E.164. How do I receive calls on numbers I bought? Set the number's SIP Endpoint (Primary) in DID Settings on TelecomsXchange to PortaSIP, for example sip:14165551234@203.0.113.10:5060. In PortaBilling: 1. Add a connection under the TelecomsXchange vendor with Direction From vendor, Remote IP 174.136.44.213, and a tariff for what TelecomsXchange charges you for the number's traffic. 2. Provision the number on the account, IP Centrex extension or service that should answer it, in E.164 format. How do I test it? 1. Place a call from a test account to a number covered by the route. 2. In PortaBilling, open the xDRs of the account and of the vendor connection to see the connection used, the translated number and the disconnect reason. 3. Use PortaSIP's SIP log viewer, or sngrep on the PortaSIP host, to see the INVITE to 174.136.44.213 and the reply. 4. On TelecomsXchange, watch the call in Live Calls and find its SIP code in Logs \u2192 CDR (Voice). What if something goes wrong? You see What to do 401 or 407, then the call fails No vendor authorization on the connection while your IP isn't authorised. Add one with the VoIP login and password from Edit Account. 403 Forbidden PortaSIP's public IP isn't authorised and no valid credentials were sent. Check the source IP against IP Address and Additional Allowed IPs; check the account isn't blocked or out of balance. 404 Not Found Missing or wrong tech prefix. Check the connection's Tech prefix or Translate CLD, and that the number is E.164 without + or 00. 408 Request Timeout No reply from TelecomsXchange. Check the connection's remote IP, port and protocol, and outbound UDP 5060. 503 Service Unavailable The route is blocked or failed on the seller's side. Check My Interconnections; your routing plan can fail over to the next vendor. One-way or no audio Check RTP proxying on the connection and the media IP in the SDP, and open the RTP range. No inbound calls, or 403 on inbound No account with ID 174.136.44.213, or PortaSIP challenges instead of authorising by IP. Check the account and the firewall. Inbound calls rejected as not allowed The customer's product or routing plan doesn't cover the destination. References - PortaOne: vendor authorization - PortaOne: create connection - PortaOne: connection service configuration - PortaOne: number translation - PortaOne: authorization based on IP address",
   "sections": [
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "- A SIP account on TelecomsXchange with PortaSIP's public IP, for example 203.0.113.10, or a VoIP login and password from Edit Account \u2192 Add SIP Digest Auth. - A purchased route and its tech prefix from My Interconnections, for example 80039#. - Administrator access to PortaBilling. Menu names below follow the current admin interface (Infrastructure \u2192 Vendors); older releases use the same objects under Vendors and Connections. - To sell: a route with IP Address:Port set to PortaSIP, for example 203.0.113.10:5060, and the values in Interconnect Info."
    },
    {
     "id": "how-do-i-send-calls-to-telecomsxchange",
     "title": "How do I send calls to TelecomsXchange?",
     "text": "1. Go to Infrastructure \u2192 Vendors and add a vendor, for example TelecomsXchange. 2. Digest variant only: open the vendor's Authorization, click Add and enter a Name, the account's VoIP Login as Login and its VoIP Password as Password. You assign this authorization to the connection later. 3. Create a connection (Create connection), one per purchased route: Field Value Description TCXC 80039 UK Service type Voice calls Type of connections SIP Direction To vendor Tariff A tariff with the route's TelecomsXchange rates Identify gateway by IP Remote IP 174.136.44.213 (the address of sip01.telecomsxchange.com) Port 5060 Protocol UDP Tech prefix 80039# 4. Instead of the Tech prefix field, you can set the number translation in the connection's service configuration under Translate CLD, as a Perl substitution: perl s/^/80039#/ PortaBilling works in E.164, so 447700900123 leaves as 80039#447700900123. 5. For the digest variant, attach the vendor authorization from step 2 to the connection. 6. Include the connection in the routing plan your customers' products use. Download each route's rates from TelecomsXchange (Accounts \u2192 Edit Account \u2192 Purchased Routes) and load them into the connection's tariff, so PortaBilling's least-cost routing compares TelecomsXchange with your other vendors."
    },
    {
     "id": "how-do-i-receive-calls-from-telecomsxchange",
     "title": "How do I receive calls from TelecomsXchange?",
     "text": "When you sell a route, TelecomsXchange is your customer. Its calls 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 your firewall for SIP and media. 2. Create a customer, for example TelecomsXchange, with the product and routing plan you want to sell on. 3. Add an account under it with ID 174.136.44.213. With IP authentication, PortaSIP doesn't challenge the INVITE: it sends the remote IP to PortaBilling as the account ID and skips the password check. 4. Make sure your PortaSIP is configured for authorisation by IP address for this traffic. See PortaOne's IP-based authorisation documentation for your release. 5. If your TelecomsXchange route adds an Outgoing Prefix (Edit Route \u2192 Outgoing Number Translation Parameters), remove it with the customer's dialing rules so PortaBilling sees E.164."
    },
    {
     "id": "how-do-i-receive-calls-on-numbers-i-bought",
     "title": "How do I receive calls on numbers I bought?",
     "text": "Set the number's SIP Endpoint (Primary) in DID Settings on TelecomsXchange to PortaSIP, for example sip:14165551234@203.0.113.10:5060. In PortaBilling: 1. Add a connection under the TelecomsXchange vendor with Direction From vendor, Remote IP 174.136.44.213, and a tariff for what TelecomsXchange charges you for the number's traffic. 2. Provision the number on the account, IP Centrex extension or service that should answer it, in E.164 format."
    },
    {
     "id": "how-do-i-test-it",
     "title": "How do I test it?",
     "text": "1. Place a call from a test account to a number covered by the route. 2. In PortaBilling, open the xDRs of the account and of the vendor connection to see the connection used, the translated number and the disconnect reason. 3. Use PortaSIP's SIP log viewer, or sngrep on the PortaSIP host, to see the INVITE to 174.136.44.213 and the reply. 4. On TelecomsXchange, watch the call in Live Calls and find its SIP code in Logs \u2192 CDR (Voice)."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do 401 or 407, then the call fails No vendor authorization on the connection while your IP isn't authorised. Add one with the VoIP login and password from Edit Account. 403 Forbidden PortaSIP's public IP isn't authorised and no valid credentials were sent. Check the source IP against IP Address and Additional Allowed IPs; check the account isn't blocked or out of balance. 404 Not Found Missing or wrong tech prefix. Check the connection's Tech prefix or Translate CLD, and that the number is E.164 without + or 00. 408 Request Timeout No reply from TelecomsXchange. Check the connection's remote IP, port and protocol, and outbound UDP 5060. 503 Service Unavailable The route is blocked or failed on the seller's side. Check My Interconnections; your routing plan can fail over to the next vendor. One-way or no audio Check RTP proxying on the connection and the media IP in the SDP, and open the RTP range. No inbound calls, or 403 on inbound No account with ID 174.136.44.213, or PortaSIP challenges instead of authorising by IP. Check the account and the firewall. Inbound calls rejected as not allowed The customer's product or routing plan doesn't cover the destination."
    },
    {
     "id": "references",
     "title": "References",
     "text": "- PortaOne: vendor authorization - PortaOne: create connection - PortaOne: connection service configuration - PortaOne: number translation - PortaOne: authorization based on IP address"
    }
   ]
  },
  {
   "slug": "twilio",
   "section": "integrations",
   "title": "Connect Twilio to TelecomsXchange",
   "description": "Send Twilio Programmable Voice calls to TelecomsXchange routes with Dial and Sip plus digest auth, and deliver TelecomsXchange numbers to a Twilio SIP domain.",
   "summary": "Twilio isn't a switch you point at TelecomsXchange as a trunk. To buy, return TwiML <Dial><Sip> to sip:TECH_PREFIX%23NUMBER@sip01.telecomsxchange.com with the account's VoIP login and password as username and password. To receive TelecomsXchange phone numbers, create a Twilio SIP domain with an IP access control list for 174.136.44.213 and set it as the number's SIP endpoint.",
   "url": "https://help.telecomsxchange.com/integrations/twilio/",
   "markdown_url": "https://help.telecomsxchange.com/integrations/twilio.md",
   "updated": "2026-10-23",
   "keywords": [
    "twilio",
    "programmable voice",
    "twiml",
    "dial",
    "sip noun",
    "sip domain",
    "ip access control list",
    "byoc",
    "elastic sip trunking",
    "digest authentication",
    "tech prefix",
    "cpaas",
    "no registration",
    "phone numbers",
    "did"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Can Twilio register to TelecomsXchange?",
     "a": "No. TelecomsXchange is peering only and does not accept REGISTER. Twilio's <Sip> noun sends the INVITE and answers TelecomsXchange's digest challenge with the username and password you give it."
    },
    {
     "q": "Why not authorise Twilio's IP addresses on my account?",
     "a": "Twilio's SIP signalling addresses are shared by all Twilio customers. Authorising them would let any Twilio user send calls on your account. Use digest credentials instead."
    },
    {
     "q": "Can I use a Twilio BYOC trunk to send calls to TelecomsXchange?",
     "a": "Not well. Twilio doesn't authenticate to the carrier with credentials on BYOC origination, so you'd have to authorise Twilio's shared IPs, and BYOC dials E.164 numbers, which leaves no place for the tech prefix. Use <Dial><Sip>."
    },
    {
     "q": "Can I sell Twilio termination on TelecomsXchange?",
     "a": "This guide doesn't cover it. Pointing a TelecomsXchange seller route at a Twilio Elastic SIP Trunk is technically possible, but check Twilio's terms for wholesale resale first."
    }
   ],
   "text": "Twilio to a purchased route 1. Your Twilio app: TwiML <Dial><Sip> with username and password 2. TelecomsXchange (via 80039%23447700900123): sip01, UDP 5060, digest auth 3. Seller's route: The route you purchased Twilio is a CPaaS carrier, not a switch you configure as a trunk to TelecomsXchange. You can combine them in two ways: your Twilio application sends calls to a purchased TelecomsXchange route with <Dial><Sip>, and TelecomsXchange delivers phone numbers you bought into a Twilio SIP domain. For every TelecomsXchange value in one place, see Connect a SIP platform. TelecomsXchange does not accept SIP REGISTER. Twilio reaches it with a plain INVITE and digest authentication on the INVITE, using the account's VoIP login and password. Don't authorise Twilio's shared IP ranges on your account. Before you start - A SIP account on TelecomsXchange with a VoIP login and password: Edit Account \u2192 Add SIP Digest Auth. - A purchased route and its tech prefix from My Interconnections, for example 80039#. - A Twilio account with a voice webhook (your own app, a TwiML Bin or a Studio flow) that can return TwiML. - For numbers: a phone number bought on TelecomsXchange. How do I send calls to TelecomsXchange? Return TwiML that dials a SIP URI on sip01. Put the tech prefix in front of the E.164 number and write # as %23: a raw # isn't allowed in the user part of a SIP URI. xml <?xml version=\"1.0\" encoding=\"UTF-8\"?> <Response> <Dial callerId=\"+14155550100\" timeout=\"60\"> <!-- TECH_PREFIX 80039# written as 80039%23, then the E.164 number without + --> <Sip username=\"VOIP_LOGIN\" password=\"VOIP_PASSWORD\">sip:80039%23447700900123@sip01.telecomsxchange.com:5060;transport=udp</Sip> </Dial> </Response> - VOIP_LOGIN and VOIP_PASSWORD are the VoIP Login and VoIP Password from Edit Account. Twilio answers TelecomsXchange's 401 or 407 challenge with them. - transport=udp is Twilio's default; keep it explicit. TelecomsXchange takes SIP over UDP on port 5060. - Twilio sends SIP from its North America (Virginia) edge unless you add a region parameter to the URI, such as ;region=ie1. - callerId is the caller ID the route receives. In your webhook code, build the URI from the number your caller dialled: strip + or 00, then prepend TECH_PREFIX with # encoded as %23. Twilio bills its own leg of the call on top of the TelecomsXchange route price. Dial a routing group prefix such as 444101%23 to let TelecomsXchange pick the route, so your TwiML doesn't need a prefix per destination. How do I receive calls on numbers I bought? TelecomsXchange delivers each number to its SIP endpoint from 174.136.44.213. A Twilio SIP domain can accept those calls and run your voice webhook. 1. In the Twilio Console, go to Voice \u2192 Manage \u2192 SIP domains and create a domain, for example yourco.sip.twilio.com. 2. Under the domain's authentication, create an IP access control list with 174.136.44.213. Twilio requires a full address; there are no wildcards. 3. Set the domain's voice A call comes in URL to the webhook or TwiML that should handle the call. 4. On TelecomsXchange, open the number's DID Settings and set SIP Endpoint (Primary) to: text sip:14165551234@yourco.sip.twilio.com:5060 Your webhook receives the user part (14165551234) in the To parameter. 174.136.44.213 is TelecomsXchange's shared platform IP, and Twilio itself warns that IP authentication alone doesn't separate tenants of a multi-tenant carrier. In your webhook, accept only the numbers you own and reject everything else. A Twilio BYOC trunk with the same IP access control list also works if you prefer to manage the numbers as BYOC numbers. Either way, TelecomsXchange passes codecs through, and Twilio accepts G.711. Can TelecomsXchange send calls to Twilio as a seller route? Not covered here. Twilio isn't a destination you sell on TelecomsXchange: an Elastic SIP Trunk terminates your own traffic, and reselling it as a wholesale route depends on Twilio's terms. How do I test it? 1. Call your Twilio number, or create a call with the REST API, so the webhook returns the <Dial><Sip>. 2. In the Twilio Console, open Monitor \u2192 Logs \u2192 Calls, select the call and check the SIP leg's response code and the SIP URI dialled. 3. On TelecomsXchange, watch the call in Live Calls and find its SIP code in Logs \u2192 CDR (Voice). 4. For numbers, call the TelecomsXchange number and check the Twilio call log for the SIP domain call. What if something goes wrong? You see What to do 401 or 407 in the Twilio log Wrong username or password on <Sip>, or digest auth isn't enabled on the account. Copy them again from Edit Account. 403 Forbidden No valid credentials, or the account is blocked or out of balance. Twilio's source IP is never authorised on its own. 404 Not Found Missing or wrong tech prefix, a raw # in the URI, or + left in the number. Use 80039%23 followed by the E.164 number. 408 Request Timeout, or no answer Twilio couldn't reach sip01. Check the URI host and port, and transport=udp. 503 Service Unavailable The route is blocked or failed on the seller's side. Check My Interconnections; try another route or a routing group. One-way or no audio Codec mismatch: TelecomsXchange doesn't transcode, so the route must accept G.711 from Twilio. Number calls never reach Twilio 174.136.44.213 isn't in the SIP domain's IP access control list, or the number's SIP endpoint has a typo in the domain. Number calls reach Twilio but play an error The SIP domain has no voice URL, or the webhook rejects the To number. References - Twilio TwiML <Sip> noun - Twilio: receiving SIP from Twilio (SIP-out) - Twilio: sending SIP to Twilio (SIP domains) - Twilio SIP security: IP access control lists and credential lists - Twilio Bring Your Own Carrier (BYOC)",
   "sections": [
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "- A SIP account on TelecomsXchange with a VoIP login and password: Edit Account \u2192 Add SIP Digest Auth. - A purchased route and its tech prefix from My Interconnections, for example 80039#. - A Twilio account with a voice webhook (your own app, a TwiML Bin or a Studio flow) that can return TwiML. - For numbers: a phone number bought on TelecomsXchange."
    },
    {
     "id": "how-do-i-send-calls-to-telecomsxchange",
     "title": "How do I send calls to TelecomsXchange?",
     "text": "Return TwiML that dials a SIP URI on sip01. Put the tech prefix in front of the E.164 number and write # as %23: a raw # isn't allowed in the user part of a SIP URI. xml <?xml version=\"1.0\" encoding=\"UTF-8\"?> <Response> <Dial callerId=\"+14155550100\" timeout=\"60\"> <!-- TECH_PREFIX 80039# written as 80039%23, then the E.164 number without + --> <Sip username=\"VOIP_LOGIN\" password=\"VOIP_PASSWORD\">sip:80039%23447700900123@sip01.telecomsxchange.com:5060;transport=udp</Sip> </Dial> </Response> - VOIP_LOGIN and VOIP_PASSWORD are the VoIP Login and VoIP Password from Edit Account. Twilio answers TelecomsXchange's 401 or 407 challenge with them. - transport=udp is Twilio's default; keep it explicit. TelecomsXchange takes SIP over UDP on port 5060. - Twilio sends SIP from its North America (Virginia) edge unless you add a region parameter to the URI, such as ;region=ie1. - callerId is the caller ID the route receives. In your webhook code, build the URI from the number your caller dialled: strip + or 00, then prepend TECH_PREFIX with # encoded as %23. Twilio bills its own leg of the call on top of the TelecomsXchange route price. Dial a routing group prefix such as 444101%23 to let TelecomsXchange pick the route, so your TwiML doesn't need a prefix per destination."
    },
    {
     "id": "how-do-i-receive-calls-on-numbers-i-bought",
     "title": "How do I receive calls on numbers I bought?",
     "text": "TelecomsXchange delivers each number to its SIP endpoint from 174.136.44.213. A Twilio SIP domain can accept those calls and run your voice webhook. 1. In the Twilio Console, go to Voice \u2192 Manage \u2192 SIP domains and create a domain, for example yourco.sip.twilio.com. 2. Under the domain's authentication, create an IP access control list with 174.136.44.213. Twilio requires a full address; there are no wildcards. 3. Set the domain's voice A call comes in URL to the webhook or TwiML that should handle the call. 4. On TelecomsXchange, open the number's DID Settings and set SIP Endpoint (Primary) to: text sip:14165551234@yourco.sip.twilio.com:5060 Your webhook receives the user part (14165551234) in the To parameter. 174.136.44.213 is TelecomsXchange's shared platform IP, and Twilio itself warns that IP authentication alone doesn't separate tenants of a multi-tenant carrier. In your webhook, accept only the numbers you own and reject everything else. A Twilio BYOC trunk with the same IP access control list also works if you prefer to manage the numbers as BYOC numbers. Either way, TelecomsXchange passes codecs through, and Twilio accepts G.711."
    },
    {
     "id": "can-telecomsxchange-send-calls-to-twilio-as-a-seller-route",
     "title": "Can TelecomsXchange send calls to Twilio as a seller route?",
     "text": "Not covered here. Twilio isn't a destination you sell on TelecomsXchange: an Elastic SIP Trunk terminates your own traffic, and reselling it as a wholesale route depends on Twilio's terms."
    },
    {
     "id": "how-do-i-test-it",
     "title": "How do I test it?",
     "text": "1. Call your Twilio number, or create a call with the REST API, so the webhook returns the <Dial><Sip>. 2. In the Twilio Console, open Monitor \u2192 Logs \u2192 Calls, select the call and check the SIP leg's response code and the SIP URI dialled. 3. On TelecomsXchange, watch the call in Live Calls and find its SIP code in Logs \u2192 CDR (Voice). 4. For numbers, call the TelecomsXchange number and check the Twilio call log for the SIP domain call."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do 401 or 407 in the Twilio log Wrong username or password on <Sip>, or digest auth isn't enabled on the account. Copy them again from Edit Account. 403 Forbidden No valid credentials, or the account is blocked or out of balance. Twilio's source IP is never authorised on its own. 404 Not Found Missing or wrong tech prefix, a raw # in the URI, or + left in the number. Use 80039%23 followed by the E.164 number. 408 Request Timeout, or no answer Twilio couldn't reach sip01. Check the URI host and port, and transport=udp. 503 Service Unavailable The route is blocked or failed on the seller's side. Check My Interconnections; try another route or a routing group. One-way or no audio Codec mismatch: TelecomsXchange doesn't transcode, so the route must accept G.711 from Twilio. Number calls never reach Twilio 174.136.44.213 isn't in the SIP domain's IP access control list, or the number's SIP endpoint has a typo in the domain. Number calls reach Twilio but play an error The SIP domain has no voice URL, or the webhook rejects the To number."
    },
    {
     "id": "references",
     "title": "References",
     "text": "- Twilio TwiML <Sip> noun - Twilio: receiving SIP from Twilio (SIP-out) - Twilio: sending SIP to Twilio (SIP domains) - Twilio SIP security: IP access control lists and credential lists - Twilio Bring Your Own Carrier (BYOC)"
    }
   ]
  },
  {
   "slug": "telnyx",
   "section": "integrations",
   "title": "Connect Telnyx to TelecomsXchange",
   "description": "Send Telnyx TeXML or Call Control calls to TelecomsXchange routes with digest credentials, and deliver TelecomsXchange numbers to a Telnyx SIP connection.",
   "summary": "Telnyx isn't a switch you point at TelecomsXchange as a trunk. To buy, dial sip:TECH_PREFIX%23NUMBER@sip01.telecomsxchange.com from TeXML <Dial><Sip> or the Call Control dial command, with the account's VoIP login and password as the SIP credentials. To receive TelecomsXchange phone numbers, give a Telnyx IP or FQDN connection a SIP subdomain that accepts calls from anyone, and set it as the number's SIP endpoint.",
   "url": "https://help.telecomsxchange.com/integrations/telnyx/",
   "markdown_url": "https://help.telecomsxchange.com/integrations/telnyx.md",
   "updated": "2026-10-23",
   "keywords": [
    "telnyx",
    "texml",
    "call control",
    "dial",
    "sip uri",
    "sip_auth_username",
    "sip subdomain",
    "sip uri calling",
    "ip connection",
    "fqdn connection",
    "credential connection",
    "digest authentication",
    "tech prefix",
    "cpaas",
    "no registration",
    "phone numbers",
    "did"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Can Telnyx register to TelecomsXchange?",
     "a": "No. TelecomsXchange is peering only and does not accept REGISTER. Telnyx sends an INVITE to the SIP URI and answers the digest challenge with the credentials you pass."
    },
    {
     "q": "Can I authorise Telnyx's IP addresses on my account instead?",
     "a": "Don't. Telnyx's signalling addresses are shared by all Telnyx customers, so authorising them would let others send calls on your account. Use digest credentials."
    },
    {
     "q": "Why is the # written as %23?",
     "a": "A raw # isn't allowed in the user part of a SIP URI, so the tech prefix 80039# is written 80039%23 in the URI. It is the same character once decoded."
    },
    {
     "q": "Can I sell Telnyx termination on TelecomsXchange?",
     "a": "This guide doesn't cover it. Pointing a TelecomsXchange seller route at your Telnyx connection would resell Telnyx termination; check Telnyx's terms first."
    }
   ],
   "text": "Telnyx to a purchased route 1. Your Telnyx app: TeXML or Call Control, with SIP credentials 2. TelecomsXchange (via 80039%23447700900123): sip01, UDP 5060, digest auth 3. Seller's route: The route you purchased Telnyx is a CPaaS carrier, not a switch you configure as a trunk to TelecomsXchange. You can combine them in two ways: your Telnyx voice application dials a purchased TelecomsXchange route as a SIP URI, and TelecomsXchange delivers phone numbers you bought to a Telnyx SIP connection. For every TelecomsXchange value in one place, see Connect a SIP platform. TelecomsXchange does not accept SIP REGISTER. Telnyx reaches it with a plain INVITE and digest authentication on the INVITE, using the account's VoIP login and password. Don't authorise Telnyx's shared IP ranges on your account. Before you start - A SIP account on TelecomsXchange with a VoIP login and password: Edit Account \u2192 Add SIP Digest Auth. - A purchased route and its tech prefix from My Interconnections, for example 80039#. - A Telnyx TeXML application or Call Control application handling your calls. - For numbers: a phone number bought on TelecomsXchange, and a Telnyx IP or FQDN connection pointing at your own PBX. How do I send calls to TelecomsXchange? Put the tech prefix in front of the E.164 number and write # as %23 in the SIP URI. With TeXML, return a <Dial> with a <Sip> noun: xml <?xml version=\"1.0\" encoding=\"UTF-8\"?> <Response> <Dial callerId=\"+14155550100\"> <!-- TECH_PREFIX 80039# written as 80039%23, then the E.164 number without + --> <Sip username=\"VOIP_LOGIN\" password=\"VOIP_PASSWORD\">sip:80039%23447700900123@sip01.telecomsxchange.com:5060</Sip> </Dial> </Response> The <Dial> verb's sipRegion attribute picks the Telnyx region that sends the call (US by default, or Europe, Canada, Australia, Middle East). With Call Control, dial the URI and pass the credentials: bash curl -X POST https://api.telnyx.com/v2/calls \\ -H \"Authorization: Bearer $TELNYX_API_KEY\" \\ -H \"Content-Type: application/json\" \\ -d '{ \"connection_id\": \"YOUR_CALL_CONTROL_APP_ID\", \"to\": \"sip:80039%23447700900123@sip01.telecomsxchange.com:5060\", \"from\": \"+14155550100\", \"sip_auth_username\": \"VOIP_LOGIN\", \"sip_auth_password\": \"VOIP_PASSWORD\", \"sip_transport_protocol\": \"UDP\" }' VOIP_LOGIN and VOIP_PASSWORD are the VoIP Login and VoIP Password from Edit Account; Telnyx uses them to answer TelecomsXchange's 401 or 407 challenge. In your application, build the URI from the dialled number: strip + or 00, then prepend TECH_PREFIX with # encoded as %23. Telnyx bills its own leg on top of the TelecomsXchange route price. Dial a routing group prefix such as 444101%23 to let TelecomsXchange pick the route, so your application doesn't need a prefix per destination. How do I receive calls on numbers I bought? TelecomsXchange delivers each number to its SIP endpoint from 174.136.44.213. Telnyx can accept SIP URI calls on a connection and pass them on to the PBX behind it. 1. In the Telnyx Portal, open your IP or FQDN SIP connection. 2. In its inbound settings, set a SIP Subdomain, for example yourco, so the connection answers at yourco.sip.telnyx.com. 3. Set Receive SIP Subdomain Calls to From anyone. TelecomsXchange is outside your Telnyx account, so Only my connections would reject it. 4. On TelecomsXchange, open the number's DID Settings and set SIP Endpoint (Primary) to: text sip:14165551234@yourco.sip.telnyx.com:5060 Telnyx routes the call to the connection by subdomain and doesn't check the user part. Place a test call to see how the number reaches your PBX, and adjust the connection's Number Format (DNIS / ANI) or your PBX's inbound rule if needed. SIP subdomains don't accept TLS, which matches TelecomsXchange's UDP delivery. A credential connection works too: turn on Receive SIP URI Calls with the Unrestricted setting and use sip:yourusername@sip.telnyx.com:5060 as the endpoint. The call then rings the device registered to that connection. Telnyx may bill SIP URI calls from outside your account. From anyone and Unrestricted accept SIP from the whole internet, not just 174.136.44.213. Filter on your PBX: accept only the numbers you own. Can TelecomsXchange send calls to Telnyx as a seller route? Not covered here. A Telnyx connection carries your own traffic; reselling it as a wholesale route on TelecomsXchange depends on Telnyx's terms. How do I test it? 1. Trigger your TeXML or Call Control application, for example by calling your Telnyx number. 2. In the Telnyx Portal, open the call in the debugging or call logs view and check the SIP URI dialled and the response code. 3. On TelecomsXchange, watch the call in Live Calls and find its SIP code in Logs \u2192 CDR (Voice). 4. For numbers, call the TelecomsXchange number and check that the call reaches the Telnyx connection and your PBX. What if something goes wrong? You see What to do 401 or 407 in the Telnyx logs Wrong username/password (TeXML) or sip_auth_username/sip_auth_password (Call Control), or digest auth isn't on the account. Copy them again from Edit Account. 403 Forbidden No valid credentials, or the account is blocked or out of balance. Telnyx's source IP is never authorised on its own. 404 Not Found Missing or wrong tech prefix, a raw # in the URI, or + left in the number. Use 80039%23 followed by the E.164 number. 408 Request Timeout, or no answer Telnyx couldn't reach sip01. Check the URI host and port, and use UDP. 503 Service Unavailable The route is blocked or failed on the seller's side. Check My Interconnections; try another route or a routing group. One-way or no audio Codec mismatch: TelecomsXchange doesn't transcode, so the route must accept a codec Telnyx offers, such as G.711. Number calls rejected by Telnyx with 403 Receive SIP Subdomain Calls is Only my connections, or SIP URI calling is disabled. Telnyx reports this as D30 in its response codes. Number calls never arrive The SIP endpoint on the number has a typo in the subdomain, or the Telnyx connection can't reach your PBX. References - Telnyx TeXML <Dial> verb - Telnyx Call Control: dial - Telnyx SIP URI calling - Telnyx SIP connection inbound and outbound settings - Telnyx SIP response codes",
   "sections": [
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "- A SIP account on TelecomsXchange with a VoIP login and password: Edit Account \u2192 Add SIP Digest Auth. - A purchased route and its tech prefix from My Interconnections, for example 80039#. - A Telnyx TeXML application or Call Control application handling your calls. - For numbers: a phone number bought on TelecomsXchange, and a Telnyx IP or FQDN connection pointing at your own PBX."
    },
    {
     "id": "how-do-i-send-calls-to-telecomsxchange",
     "title": "How do I send calls to TelecomsXchange?",
     "text": "Put the tech prefix in front of the E.164 number and write # as %23 in the SIP URI. With TeXML, return a <Dial> with a <Sip> noun: xml <?xml version=\"1.0\" encoding=\"UTF-8\"?> <Response> <Dial callerId=\"+14155550100\"> <!-- TECH_PREFIX 80039# written as 80039%23, then the E.164 number without + --> <Sip username=\"VOIP_LOGIN\" password=\"VOIP_PASSWORD\">sip:80039%23447700900123@sip01.telecomsxchange.com:5060</Sip> </Dial> </Response> The <Dial> verb's sipRegion attribute picks the Telnyx region that sends the call (US by default, or Europe, Canada, Australia, Middle East). With Call Control, dial the URI and pass the credentials: bash curl -X POST https://api.telnyx.com/v2/calls \\ -H \"Authorization: Bearer $TELNYX_API_KEY\" \\ -H \"Content-Type: application/json\" \\ -d '{ \"connection_id\": \"YOUR_CALL_CONTROL_APP_ID\", \"to\": \"sip:80039%23447700900123@sip01.telecomsxchange.com:5060\", \"from\": \"+14155550100\", \"sip_auth_username\": \"VOIP_LOGIN\", \"sip_auth_password\": \"VOIP_PASSWORD\", \"sip_transport_protocol\": \"UDP\" }' VOIP_LOGIN and VOIP_PASSWORD are the VoIP Login and VoIP Password from Edit Account; Telnyx uses them to answer TelecomsXchange's 401 or 407 challenge. In your application, build the URI from the dialled number: strip + or 00, then prepend TECH_PREFIX with # encoded as %23. Telnyx bills its own leg on top of the TelecomsXchange route price. Dial a routing group prefix such as 444101%23 to let TelecomsXchange pick the route, so your application doesn't need a prefix per destination."
    },
    {
     "id": "how-do-i-receive-calls-on-numbers-i-bought",
     "title": "How do I receive calls on numbers I bought?",
     "text": "TelecomsXchange delivers each number to its SIP endpoint from 174.136.44.213. Telnyx can accept SIP URI calls on a connection and pass them on to the PBX behind it. 1. In the Telnyx Portal, open your IP or FQDN SIP connection. 2. In its inbound settings, set a SIP Subdomain, for example yourco, so the connection answers at yourco.sip.telnyx.com. 3. Set Receive SIP Subdomain Calls to From anyone. TelecomsXchange is outside your Telnyx account, so Only my connections would reject it. 4. On TelecomsXchange, open the number's DID Settings and set SIP Endpoint (Primary) to: text sip:14165551234@yourco.sip.telnyx.com:5060 Telnyx routes the call to the connection by subdomain and doesn't check the user part. Place a test call to see how the number reaches your PBX, and adjust the connection's Number Format (DNIS / ANI) or your PBX's inbound rule if needed. SIP subdomains don't accept TLS, which matches TelecomsXchange's UDP delivery. A credential connection works too: turn on Receive SIP URI Calls with the Unrestricted setting and use sip:yourusername@sip.telnyx.com:5060 as the endpoint. The call then rings the device registered to that connection. Telnyx may bill SIP URI calls from outside your account. From anyone and Unrestricted accept SIP from the whole internet, not just 174.136.44.213. Filter on your PBX: accept only the numbers you own."
    },
    {
     "id": "can-telecomsxchange-send-calls-to-telnyx-as-a-seller-route",
     "title": "Can TelecomsXchange send calls to Telnyx as a seller route?",
     "text": "Not covered here. A Telnyx connection carries your own traffic; reselling it as a wholesale route on TelecomsXchange depends on Telnyx's terms."
    },
    {
     "id": "how-do-i-test-it",
     "title": "How do I test it?",
     "text": "1. Trigger your TeXML or Call Control application, for example by calling your Telnyx number. 2. In the Telnyx Portal, open the call in the debugging or call logs view and check the SIP URI dialled and the response code. 3. On TelecomsXchange, watch the call in Live Calls and find its SIP code in Logs \u2192 CDR (Voice). 4. For numbers, call the TelecomsXchange number and check that the call reaches the Telnyx connection and your PBX."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do 401 or 407 in the Telnyx logs Wrong username/password (TeXML) or sip_auth_username/sip_auth_password (Call Control), or digest auth isn't on the account. Copy them again from Edit Account. 403 Forbidden No valid credentials, or the account is blocked or out of balance. Telnyx's source IP is never authorised on its own. 404 Not Found Missing or wrong tech prefix, a raw # in the URI, or + left in the number. Use 80039%23 followed by the E.164 number. 408 Request Timeout, or no answer Telnyx couldn't reach sip01. Check the URI host and port, and use UDP. 503 Service Unavailable The route is blocked or failed on the seller's side. Check My Interconnections; try another route or a routing group. One-way or no audio Codec mismatch: TelecomsXchange doesn't transcode, so the route must accept a codec Telnyx offers, such as G.711. Number calls rejected by Telnyx with 403 Receive SIP Subdomain Calls is Only my connections, or SIP URI calling is disabled. Telnyx reports this as D30 in its response codes. Number calls never arrive The SIP endpoint on the number has a typo in the subdomain, or the Telnyx connection can't reach your PBX."
    },
    {
     "id": "references",
     "title": "References",
     "text": "- Telnyx TeXML <Dial> verb - Telnyx Call Control: dial - Telnyx SIP URI calling - Telnyx SIP connection inbound and outbound settings - Telnyx SIP response codes"
    }
   ]
  },
  {
   "slug": "connect-smpp-platforms",
   "section": "integrations",
   "title": "Connect an SMPP platform to TelecomsXchange",
   "description": "Every value an SMS engineer needs to connect an SMPP gateway or SMSC to TelecomsXchange, to buy SMS routes, sell them or carry SMS for phone numbers.",
   "summary": "To send SMS, bind as a transceiver to smpp01.telecomsxchange.com, TCP 2776, SMPP 3.4, with your account's SMPP System Id and SMPP Password, and put the route's tech prefix before the number (80039#447700900123). To sell SMS, let TelecomsXchange bind to your SMSC as a transceiver from 174.136.44.213 with the system ID and password you set on your route.",
   "url": "https://help.telecomsxchange.com/integrations/connect-smpp-platforms/",
   "markdown_url": "https://help.telecomsxchange.com/integrations/connect-smpp-platforms.md",
   "updated": "2026-10-23",
   "keywords": [
    "smpp",
    "smsc",
    "esme",
    "sms gateway",
    "integration",
    "bind_transceiver",
    "system id",
    "tech prefix",
    "delivery receipt",
    "kannel",
    "jasmin",
    "restcomm",
    "smpp01",
    "2776",
    "174.136.44.213"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Which host and port do I bind to?",
     "a": "smpp01.telecomsxchange.com, TCP port 2776, as a transceiver (bind_transceiver), SMPP 3.4, with the SMPP System Id and SMPP Password of your SMPP account."
    },
    {
     "q": "How does my platform choose a route?",
     "a": "Through destination_addr: the route's tech prefix, a #, then the number in E.164 without + (80039#447700900123). A routing group uses its 444 prefix; a plain number uses the account's Default Routing Group or default SMS route."
    },
    {
     "q": "Does TelecomsXchange connect to me when I sell SMS?",
     "a": "Yes. TelecomsXchange binds to your SMSC as a transceiver from 174.136.44.213 with the system ID and password you set on your SMS route. Your platform must be able to accept an SMPP bind."
    },
    {
     "q": "Can I send SMS over HTTP instead?",
     "a": "Not to TelecomsXchange: sending is SMPP only. Your own gateway can still take HTTP from your applications and forward over SMPP, which is how the Kannel and Jasmin guides are set up."
    }
   ],
   "text": "Both directions through one exchange 1. Your platform: Kannel, Jasmin, Restcomm SMSC or any ESME 2. TelecomsXchange (via 80039#447700900123): smpp01, TCP 2776; binds out from 174.136.44.213 3. Seller's SMSC (via submit_sm): Or your SMSC, when you sell the route 4. Delivery receipt (via stat:DELIVRD): Relayed back to the open bind TelecomsXchange speaks plain SMPP, so any SMS gateway or SMSC that can bind as an ESME can buy SMS routes, and any that can accept a bind can sell them. This page puts every value in one place for both directions; the platform guides show the exact configuration for Kannel, Jasmin and Restcomm SMSC. Before you start - To buy: an account with Protocol Type SMPP, an SMS route bought from SMS Market, and funds on the account. - To sell: an SMS route under Routes \u2192 My Routes with your SMSC's IP and port and the credentials TelecomsXchange binds with. - Your platform's public IP address, for example 203.0.113.10, and access to its firewall. How do I send SMS through TelecomsXchange? Configure one SMPP client connection on your platform: Setting Value Host smpp01.telecomsxchange.com Port TCP 2776 Bind type bind_transceiver SMPP version 3.4 (interface_version 0x34) System ID the account's SMPP System Id Password the account's SMPP Password Source IP the account's IP Address or one of its Additional Allowed IPs, if set Throughput at most the account's SMPP Rate Limit (req/sec) Keep-alive enquire_link, for example every 30 seconds Then make sure every message carries: - destination_addr: the route's tech prefix, #, and the number in E.164 without + or 00: 80039#447700900123. A routing group's prefix works the same way: 444123#447700900123. A plain 447700900123 goes to the account's Default Routing Group, or its default SMS route if no group is set. - source_addr: a sender ID registered on your account. Others are blocked or replaced by your default sender ID, according to the account setting shown under Sender Settings on Logs \u2192 SDR (SMS). - registered_delivery set to 1 if your platform wants delivery receipts. Most gateways can't type a # into every request, so do it once in the routing layer: Kannel rewrites the number with unified-prefix, Jasmin with an MT interceptor, Restcomm SMSC with an mproc rule. Each platform guide shows how. Each segment is billed at the route's price: up to 160 GSM or 70 UCS-2 characters is one segment, longer texts are billed per part at 153 or 67 characters. The submit_sm_resp carries the TelecomsXchange TLVs 0x1520 billing_price and 0x1521 billed_msgs_cnt. Split long texts into UDH parts on your side; some routes accept only single messages. How do I receive delivery receipts? TelecomsXchange requests a receipt from the seller for every message. When the seller reports delivery, the receipt reaches your bind as a deliver_sm with id:<message_id> and stat:DELIVRD, where message_id is the one returned in your submit_sm_resp. Your platform matches it to the message it sent. Receipts are relayed only while your bind is open. Keep the transceiver bind up permanently; if it was down, read the status from Logs \u2192 SDR (SMS) instead. How do I receive SMS from TelecomsXchange as a seller? When you sell an SMS route, TelecomsXchange is the client and your SMSC is the server: Setting Value Who connects TelecomsXchange binds to your SMSC From IP 174.136.44.213 Bind type transceiver SMPP version 3.4 or 5.0, as set by SMPP Version on the route Credentials the SMPP System Id and SMPP Password you set on the route TLS only if TLS is Yes on the route Message text in short_message or message_payload, per Field for Messages Sessions up to Allowed BIND Sessions; Keep BIND Always Online keeps one up Your platform must: 1. Accept a bind_transceiver from 174.136.44.213 on the port you entered on the route, with that system ID and password. 2. Answer each submit_sm with submit_sm_resp within the route's SubmitSM Timeout: status 0 and your message_id to accept, any other status to refuse. 3. Send a deliver_sm receipt with id:<your message_id> and stat:DELIVRD when the handset confirms delivery. Run Test Bind from the route's \u22ee menu in My Routes to check the connection. Interconnect Info shows the exact credentials for each route. Not every gateway can accept a bind. Kannel needs the opensmppbox add-on for this direction; Jasmin and Restcomm SMSC accept binds natively. What about SMS to phone numbers? - You sell numbers: your SMSC binds to smpp01.telecomsxchange.com, TCP 2776, with login did and password did (or your custom credentials under DIDs \u2192 My DIDs \u2192 Authentication) and submits each inbound SMS to the number, without a tech prefix. See Sell phone numbers. - You buy numbers: TelecomsXchange binds out to the SMPP Endpoint you set on the number, written smpp:login:password:number@host:port, so your platform must accept that bind. See Buy virtual phone numbers. How do I test it? 1. Check the bind: the Accounts page shows Bind Status ONLINE; click it for the SMPP BIND history. 2. Send one message to a test handset with an approved sender ID and the route's prefix: 80039#447700900123. 3. Confirm your platform logged a submit_sm_resp with status 0 and, a few seconds later, a deliver_sm with stat:DELIVRD. 4. Go to Logs \u2192 SDR (SMS), set Status to All Messages and click Search SMS. The message shows its Route, Amount, SMS Count and Status. Platform guides Platform Sends to TelecomsXchange with Tech prefix Accepts TelecomsXchange's bind (selling) Kannel group = smsc, smsc = smpp, transceiver-mode = true unified-prefix on the smsc group Only with the opensmppbox add-on Jasmin jCli smppccm connector MT interceptor script Yes: SMPP Server API and a jCli user Restcomm SMSC smpp esme create \u2026 TRANSCEIVER CLIENT mproc rule adddestdigprefix Yes: an ESME of type SERVER What if something goes wrong? You see What to do Bind refused, status 0x0D Check the SMPP System Id and SMPP Password, and that your platform binds from the account's IP address or an additional allowed IP. Status 0x45 (69) on submit_sm The message was refused: no route or rate for that prefix, a blocked route or account, insufficient funds, a sender ID that isn't allowed, or your rate limit. Failed Only in the SDR shows the reason. Status 0x01 The text is longer than one segment and the route takes single messages only. Split it into UDH parts. Status 0xFE (254) The seller didn't answer in time. Retry, or send through a routing group with a failover route. Status 0x08 A platform error while forwarding. Retry after a moment. Messages go to the wrong route destination_addr arrives without the tech prefix. Check your platform's rewrite rule in its log. No receipts on your platform Your bind was closed when the receipt arrived, or registered_delivery was 0. Keep the bind up and read the status in the SDR. Selling: Test Bind \"host/port is probably unreachable\" Allow 174.136.44.213 on your firewall and check the IP and port on the route. Selling: Test Bind \"has FAILED\" Your SMSC refused the credentials or version. Match the system ID, password and SMPP Version on the route.",
   "sections": [
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "- To buy: an account with Protocol Type SMPP, an SMS route bought from SMS Market, and funds on the account. - To sell: an SMS route under Routes \u2192 My Routes with your SMSC's IP and port and the credentials TelecomsXchange binds with. - Your platform's public IP address, for example 203.0.113.10, and access to its firewall."
    },
    {
     "id": "how-do-i-send-sms-through-telecomsxchange",
     "title": "How do I send SMS through TelecomsXchange?",
     "text": "Configure one SMPP client connection on your platform: Setting Value Host smpp01.telecomsxchange.com Port TCP 2776 Bind type bind_transceiver SMPP version 3.4 (interface_version 0x34) System ID the account's SMPP System Id Password the account's SMPP Password Source IP the account's IP Address or one of its Additional Allowed IPs, if set Throughput at most the account's SMPP Rate Limit (req/sec) Keep-alive enquire_link, for example every 30 seconds Then make sure every message carries: - destination_addr: the route's tech prefix, #, and the number in E.164 without + or 00: 80039#447700900123. A routing group's prefix works the same way: 444123#447700900123. A plain 447700900123 goes to the account's Default Routing Group, or its default SMS route if no group is set. - source_addr: a sender ID registered on your account. Others are blocked or replaced by your default sender ID, according to the account setting shown under Sender Settings on Logs \u2192 SDR (SMS). - registered_delivery set to 1 if your platform wants delivery receipts. Most gateways can't type a # into every request, so do it once in the routing layer: Kannel rewrites the number with unified-prefix, Jasmin with an MT interceptor, Restcomm SMSC with an mproc rule. Each platform guide shows how. Each segment is billed at the route's price: up to 160 GSM or 70 UCS-2 characters is one segment, longer texts are billed per part at 153 or 67 characters. The submit_sm_resp carries the TelecomsXchange TLVs 0x1520 billing_price and 0x1521 billed_msgs_cnt. Split long texts into UDH parts on your side; some routes accept only single messages."
    },
    {
     "id": "how-do-i-receive-delivery-receipts",
     "title": "How do I receive delivery receipts?",
     "text": "TelecomsXchange requests a receipt from the seller for every message. When the seller reports delivery, the receipt reaches your bind as a deliver_sm with id:<message_id> and stat:DELIVRD, where message_id is the one returned in your submit_sm_resp. Your platform matches it to the message it sent. Receipts are relayed only while your bind is open. Keep the transceiver bind up permanently; if it was down, read the status from Logs \u2192 SDR (SMS) instead."
    },
    {
     "id": "how-do-i-receive-sms-from-telecomsxchange-as-a-seller",
     "title": "How do I receive SMS from TelecomsXchange as a seller?",
     "text": "When you sell an SMS route, TelecomsXchange is the client and your SMSC is the server: Setting Value Who connects TelecomsXchange binds to your SMSC From IP 174.136.44.213 Bind type transceiver SMPP version 3.4 or 5.0, as set by SMPP Version on the route Credentials the SMPP System Id and SMPP Password you set on the route TLS only if TLS is Yes on the route Message text in short_message or message_payload, per Field for Messages Sessions up to Allowed BIND Sessions; Keep BIND Always Online keeps one up Your platform must: 1. Accept a bind_transceiver from 174.136.44.213 on the port you entered on the route, with that system ID and password. 2. Answer each submit_sm with submit_sm_resp within the route's SubmitSM Timeout: status 0 and your message_id to accept, any other status to refuse. 3. Send a deliver_sm receipt with id:<your message_id> and stat:DELIVRD when the handset confirms delivery. Run Test Bind from the route's \u22ee menu in My Routes to check the connection. Interconnect Info shows the exact credentials for each route. Not every gateway can accept a bind. Kannel needs the opensmppbox add-on for this direction; Jasmin and Restcomm SMSC accept binds natively."
    },
    {
     "id": "what-about-sms-to-phone-numbers",
     "title": "What about SMS to phone numbers?",
     "text": "- You sell numbers: your SMSC binds to smpp01.telecomsxchange.com, TCP 2776, with login did and password did (or your custom credentials under DIDs \u2192 My DIDs \u2192 Authentication) and submits each inbound SMS to the number, without a tech prefix. See Sell phone numbers. - You buy numbers: TelecomsXchange binds out to the SMPP Endpoint you set on the number, written smpp:login:password:number@host:port, so your platform must accept that bind. See Buy virtual phone numbers."
    },
    {
     "id": "how-do-i-test-it",
     "title": "How do I test it?",
     "text": "1. Check the bind: the Accounts page shows Bind Status ONLINE; click it for the SMPP BIND history. 2. Send one message to a test handset with an approved sender ID and the route's prefix: 80039#447700900123. 3. Confirm your platform logged a submit_sm_resp with status 0 and, a few seconds later, a deliver_sm with stat:DELIVRD. 4. Go to Logs \u2192 SDR (SMS), set Status to All Messages and click Search SMS. The message shows its Route, Amount, SMS Count and Status."
    },
    {
     "id": "platform-guides",
     "title": "Platform guides",
     "text": "Platform Sends to TelecomsXchange with Tech prefix Accepts TelecomsXchange's bind (selling) Kannel group = smsc, smsc = smpp, transceiver-mode = true unified-prefix on the smsc group Only with the opensmppbox add-on Jasmin jCli smppccm connector MT interceptor script Yes: SMPP Server API and a jCli user Restcomm SMSC smpp esme create \u2026 TRANSCEIVER CLIENT mproc rule adddestdigprefix Yes: an ESME of type SERVER"
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do Bind refused, status 0x0D Check the SMPP System Id and SMPP Password, and that your platform binds from the account's IP address or an additional allowed IP. Status 0x45 (69) on submit_sm The message was refused: no route or rate for that prefix, a blocked route or account, insufficient funds, a sender ID that isn't allowed, or your rate limit. Failed Only in the SDR shows the reason. Status 0x01 The text is longer than one segment and the route takes single messages only. Split it into UDH parts. Status 0xFE (254) The seller didn't answer in time. Retry, or send through a routing group with a failover route. Status 0x08 A platform error while forwarding. Retry after a moment. Messages go to the wrong route destination_addr arrives without the tech prefix. Check your platform's rewrite rule in its log. No receipts on your platform Your bind was closed when the receipt arrived, or registered_delivery was 0. Keep the bind up and read the status in the SDR. Selling: Test Bind \"host/port is probably unreachable\" Allow 174.136.44.213 on your firewall and check the IP and port on the route. Selling: Test Bind \"has FAILED\" Your SMSC refused the credentials or version. Match the system ID, password and SMPP Version on the route."
    }
   ]
  },
  {
   "slug": "kannel",
   "section": "integrations",
   "title": "Connect Kannel to TelecomsXchange",
   "description": "Configure a Kannel smsc group to bind to TelecomsXchange over SMPP, add the route's tech prefix with unified-prefix, get receipts, and sell SMS with opensmppbox.",
   "summary": "Add a group = smsc with smsc = smpp, host = smpp01.telecomsxchange.com, port = 2776, transceiver-mode = true and your account's SMPP System Id and SMPP Password as smsc-username and smsc-password. Set unified-prefix = \"TECH_PREFIX#,+,00\" on that group so +447700900123 leaves as 80039#447700900123. To sell SMS, Kannel needs the opensmppbox add-on to accept TelecomsXchange's bind.",
   "url": "https://help.telecomsxchange.com/integrations/kannel/",
   "markdown_url": "https://help.telecomsxchange.com/integrations/kannel.md",
   "updated": "2026-10-23",
   "keywords": [
    "kannel",
    "bearerbox",
    "smsbox",
    "smsc group",
    "smpp",
    "transceiver-mode",
    "unified-prefix",
    "sendsms",
    "dlr-mask",
    "dlr-url",
    "opensmppbox",
    "sms gateway"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Can I put 80039#447700900123 straight into the sendsms to parameter?",
     "a": "Only if you add # to sendsms-chars in the smsbox group; by default Kannel accepts only 0123456789+- in to. The unified-prefix rewrite avoids that and keeps your applications sending plain numbers."
    },
    {
     "q": "Can Kannel sell SMS routes on TelecomsXchange?",
     "a": "Not on its own: bearerbox only connects out to SMSCs. To accept TelecomsXchange's SMPP bind you need opensmppbox, a separate Kannel add-on that listens for SMPP clients and hands their messages to bearerbox."
    },
    {
     "q": "Which dlr-mask should I use?",
     "a": "3 (delivered plus non-delivered to phone) is enough. TelecomsXchange relays the seller's final receipt to your bind as stat:DELIVRD."
    },
    {
     "q": "Does Kannel split long messages?",
     "a": "Yes, if the sendsms-user allows it: set max-messages above 1 and concatenation = true. Each part is billed as one segment."
    }
   ],
   "text": "Kannel to TelecomsXchange over SMPP 1. Your application: HTTP sendsms to smsbox, to=+447700900123 2. Your Kannel (via smsc=tcxc): bearerbox smsc group, transceiver bind 3. TelecomsXchange (via 80039#447700900123): smpp01, TCP 2776 4. Seller's SMSC: The SMS route you purchased Kannel connects to TelecomsXchange like to any SMSC: one smsc group in bearerbox makes the transceiver bind, and smsbox takes your applications' HTTP requests. This guide adds the TelecomsXchange link, prefixes every number with your route's tech prefix, wires up delivery receipts and covers the selling direction, which needs the opensmppbox add-on. For the values themselves, see Connect an SMPP platform. Before you start - An SMPP account with its SMPP System Id and SMPP Password. Set its IP Address to your Kannel server's public IP, for example 203.0.113.10. - An SMS route and its tech prefix from My Interconnections, for example 80039. Below, TECH_PREFIX stands for it. - A sender ID registered on the account (see Sender Settings on Logs \u2192 SDR (SMS)). - Kannel 1.4 or later with a working core and smsbox group. How do I send SMS through TelecomsXchange? 1. Add an smsc group to kannel.conf: ini TelecomsXchange: one transceiver bind group = smsc smsc = smpp smsc-id = tcxc host = smpp01.telecomsxchange.com port = 2776 transceiver-mode = true # bind_transceiver on 'port'; no receive-port smsc-username = SYSTEM_ID # account's SMPP System Id smsc-password = PASSWORD # account's SMPP Password interface-version = 34 # SMPP 3.4 enquire-link-interval = 30 reconnect-delay = 10 max-pending-submits = 10 throughput = 10 # keep at or below the account's SMPP Rate Limit (req/sec) Put the tech prefix in front of every number sent on this link: +447700900123 or 00447700900123 becomes 80039#447700900123 unified-prefix = \"TECH_PREFIX#,+,00\" SYSTEM_ID and PASSWORD are the account's credentials; replace TECH_PREFIX with the route's prefix, keeping the #: unified-prefix = \"80039#,+,00\". 2. Send messages to this link only. Either force it on the sendsms user: ini group = sendsms-user username = app password = APP_PASSWORD forced-smsc = tcxc default-sender = MyBrand # a sender ID registered on your account max-messages = 10 # allow long messages to be split concatenation = true or pass smsc=tcxc on each request. 3. Restart bearerbox and smsbox. 4. Have your applications send numbers in international format with + or 00, so the unified-prefix rule matches: bash curl -G \"http://127.0.0.1:13013/cgi-bin/sendsms\" \\ --data-urlencode \"username=app\" \\ --data-urlencode \"password=APP_PASSWORD\" \\ --data-urlencode \"to=+447700900123\" \\ --data-urlencode \"from=MyBrand\" \\ --data-urlencode \"text=Test from Kannel\" \\ --data-urlencode \"dlr-mask=3\" \\ --data-urlencode \"dlr-url=http://127.0.0.1/dlr?id=42&status=%d\" unified-prefix replaces the leading + or 00 with TECH_PREFIX#, so the submit_sm leaves with destination_addr 80039#447700900123. A number sent without + or 00 doesn't match the rule and goes out plain, which TelecomsXchange sends through your account's default route. To use a routing group instead of one route, put the group's prefix in the rule: unified-prefix = \"444123#,+,00\". To send through two different routes, define two smsc groups with different smsc-id values and prefixes and choose with smsc= per request. How do I receive delivery receipts? Ask for a receipt with dlr-mask (1 delivered, 2 not delivered; 3 for both) and a dlr-url. Kannel sets registered_delivery on the submit_sm, stores the message_id from the submit_sm_resp, and when TelecomsXchange sends the deliver_sm with id:<message_id> and stat:DELIVRD on the same bind, it calls your dlr-url with %d set to the delivery state. Keep the link up: receipts are relayed only to an open bind. If a receipt arrives that Kannel can't match, set msg-id-type on the smsc group to the number base the IDs use (see References). How do I receive SMS from TelecomsXchange as a seller? Kannel's bearerbox only connects out to SMSCs; it doesn't accept SMPP binds. To let TelecomsXchange bind to you, install opensmppbox, a separate Kannel add-on that listens for SMPP clients and passes their messages to bearerbox, which delivers them through your own smsc links. 1. In kannel.conf, make sure the core group has smsbox-port set (for example 13001) and a DLR store; opensmppbox connects to bearerbox on that port. 2. Create opensmppbox.conf: ini group = opensmppbox opensmppbox-id = tcxc-in opensmppbox-port = 2775 # the port you enter on your TelecomsXchange SMS route bearerbox-host = 127.0.0.1 bearerbox-port = 13001 # bearerbox smsbox-port our-system-id = MYSMSC route-to-smsc = my-operator-link # smsc-id of the link that delivers the traffic use-systemid-as-smsboxid = true # match logins on system ID and password only smpp-logins = /etc/kannel/smpplogins.txt log-file = /var/log/kannel/opensmppbox.log 3. Add TelecomsXchange to /etc/kannel/smpplogins.txt: system ID, password, system type and the allowed source IP: text TCXC_SYSTEM_ID TCXC_PASSWORD tcxc 174.136.44.213 Use the same SMPP System Id and SMPP Password you set on your SMS route under Routes \u2192 My Routes. 4. Start opensmppbox, allow 174.136.44.213 to port 2775 on your firewall, and on the route enter your server as IP:2775, SMPP Version 3.4, TLS No. Without use-systemid-as-smsboxid = true, opensmppbox also compares the bind's system_type with the third column of smpplogins.txt, and a mismatch refuses the bind. Leave it on. opensmppbox answers each submit_sm and sends receipts back to the bind as deliver_sm when the message was submitted with registered_delivery, which TelecomsXchange always sets. Inbound SMS for numbers you sell: add a second smsc group with smsc-id = tcxc-did, the same host and port, smsc-username = did and smsc-password = did (or your custom DID credentials), no unified-prefix, and route messages for those numbers to it. Buying numbers works the other way round: TelecomsXchange binds to the SMPP Endpoint on your number, so it also needs opensmppbox. How do I test it? 1. Open the bearerbox status page: http://127.0.0.1:13000/status?password=STATUS_PASSWORD. The tcxc link should show online. On TelecomsXchange, the account's Bind Status shows ONLINE. 2. Send the curl request above to a test handset. 3. In the bearerbox log, find the submit_sm with destination_addr: \"80039#447700900123\" and its submit_sm_resp with status 0, then the deliver_sm receipt. Use log-level = 0 while testing. 4. Go to Logs \u2192 SDR (SMS), choose All Messages and click Search SMS. What if something goes wrong? You see What to do Link never goes online; log shows bind status 0x0D Check smsc-username and smsc-password, and that Kannel binds from the account's IP address or an additional allowed IP. submit_sm_resp status 0x45 (69) The message was refused: no route or rate for the prefix, blocked route, low balance, sender ID not allowed or rate limit. Check Failed Only in the SDR. Lower throughput if you hit the rate limit. Messages go to the default route destination_addr has no prefix: the number wasn't sent with + or 00, or unified-prefix is on another group. sendsms rejects the to number You put # in to, which isn't in the default sendsms-chars. Send +447700900123 and let unified-prefix add the prefix, or add # to sendsms-chars. Status 0x01 The route takes single messages only. Enable concatenation so Kannel sends UDH parts. Status 0xFE (254) or 0x08 The seller timed out or the platform failed to forward. Kannel retries according to its queue; use a routing group with a failover route. No DLR reaches your dlr-url Check dlr-mask, that the link stayed online, and msg-id-type. The SDR still shows the delivered status. Selling: Test Bind \"has FAILED\" The system ID or password don't match smpplogins.txt, or use-systemid-as-smsboxid is off. Selling: \"host/port is probably unreachable\" opensmppbox isn't listening on that port or 174.136.44.213 is blocked. References - Kannel user guide: SMPP smsc group, unified-prefix, sendsms, DLRs and HTTP administration - opensmppbox user guide (Kannel add-on) - opensmppbox example configuration and smpplogins.txt",
   "sections": [
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "- An SMPP account with its SMPP System Id and SMPP Password. Set its IP Address to your Kannel server's public IP, for example 203.0.113.10. - An SMS route and its tech prefix from My Interconnections, for example 80039. Below, TECH_PREFIX stands for it. - A sender ID registered on the account (see Sender Settings on Logs \u2192 SDR (SMS)). - Kannel 1.4 or later with a working core and smsbox group."
    },
    {
     "id": "how-do-i-send-sms-through-telecomsxchange",
     "title": "How do I send SMS through TelecomsXchange?",
     "text": "1. Add an smsc group to kannel.conf: ini TelecomsXchange: one transceiver bind group = smsc smsc = smpp smsc-id = tcxc host = smpp01.telecomsxchange.com port = 2776 transceiver-mode = true # bind_transceiver on 'port'; no receive-port smsc-username = SYSTEM_ID # account's SMPP System Id smsc-password = PASSWORD # account's SMPP Password interface-version = 34 # SMPP 3.4 enquire-link-interval = 30 reconnect-delay = 10 max-pending-submits = 10 throughput = 10 # keep at or below the account's SMPP Rate Limit (req/sec) Put the tech prefix in front of every number sent on this link: +447700900123 or 00447700900123 becomes 80039#447700900123 unified-prefix = \"TECH_PREFIX#,+,00\" SYSTEM_ID and PASSWORD are the account's credentials; replace TECH_PREFIX with the route's prefix, keeping the #: unified-prefix = \"80039#,+,00\". 2. Send messages to this link only. Either force it on the sendsms user: ini group = sendsms-user username = app password = APP_PASSWORD forced-smsc = tcxc default-sender = MyBrand # a sender ID registered on your account max-messages = 10 # allow long messages to be split concatenation = true or pass smsc=tcxc on each request. 3. Restart bearerbox and smsbox. 4. Have your applications send numbers in international format with + or 00, so the unified-prefix rule matches: bash curl -G \"http://127.0.0.1:13013/cgi-bin/sendsms\" \\ --data-urlencode \"username=app\" \\ --data-urlencode \"password=APP_PASSWORD\" \\ --data-urlencode \"to=+447700900123\" \\ --data-urlencode \"from=MyBrand\" \\ --data-urlencode \"text=Test from Kannel\" \\ --data-urlencode \"dlr-mask=3\" \\ --data-urlencode \"dlr-url=http://127.0.0.1/dlr?id=42&status=%d\" unified-prefix replaces the leading + or 00 with TECH_PREFIX#, so the submit_sm leaves with destination_addr 80039#447700900123. A number sent without + or 00 doesn't match the rule and goes out plain, which TelecomsXchange sends through your account's default route. To use a routing group instead of one route, put the group's prefix in the rule: unified-prefix = \"444123#,+,00\". To send through two different routes, define two smsc groups with different smsc-id values and prefixes and choose with smsc= per request."
    },
    {
     "id": "how-do-i-receive-delivery-receipts",
     "title": "How do I receive delivery receipts?",
     "text": "Ask for a receipt with dlr-mask (1 delivered, 2 not delivered; 3 for both) and a dlr-url. Kannel sets registered_delivery on the submit_sm, stores the message_id from the submit_sm_resp, and when TelecomsXchange sends the deliver_sm with id:<message_id> and stat:DELIVRD on the same bind, it calls your dlr-url with %d set to the delivery state. Keep the link up: receipts are relayed only to an open bind. If a receipt arrives that Kannel can't match, set msg-id-type on the smsc group to the number base the IDs use (see References)."
    },
    {
     "id": "how-do-i-receive-sms-from-telecomsxchange-as-a-seller",
     "title": "How do I receive SMS from TelecomsXchange as a seller?",
     "text": "Kannel's bearerbox only connects out to SMSCs; it doesn't accept SMPP binds. To let TelecomsXchange bind to you, install opensmppbox, a separate Kannel add-on that listens for SMPP clients and passes their messages to bearerbox, which delivers them through your own smsc links. 1. In kannel.conf, make sure the core group has smsbox-port set (for example 13001) and a DLR store; opensmppbox connects to bearerbox on that port. 2. Create opensmppbox.conf: ini group = opensmppbox opensmppbox-id = tcxc-in opensmppbox-port = 2775 # the port you enter on your TelecomsXchange SMS route bearerbox-host = 127.0.0.1 bearerbox-port = 13001 # bearerbox smsbox-port our-system-id = MYSMSC route-to-smsc = my-operator-link # smsc-id of the link that delivers the traffic use-systemid-as-smsboxid = true # match logins on system ID and password only smpp-logins = /etc/kannel/smpplogins.txt log-file = /var/log/kannel/opensmppbox.log 3. Add TelecomsXchange to /etc/kannel/smpplogins.txt: system ID, password, system type and the allowed source IP: text TCXC_SYSTEM_ID TCXC_PASSWORD tcxc 174.136.44.213 Use the same SMPP System Id and SMPP Password you set on your SMS route under Routes \u2192 My Routes. 4. Start opensmppbox, allow 174.136.44.213 to port 2775 on your firewall, and on the route enter your server as IP:2775, SMPP Version 3.4, TLS No. Without use-systemid-as-smsboxid = true, opensmppbox also compares the bind's system_type with the third column of smpplogins.txt, and a mismatch refuses the bind. Leave it on. opensmppbox answers each submit_sm and sends receipts back to the bind as deliver_sm when the message was submitted with registered_delivery, which TelecomsXchange always sets. Inbound SMS for numbers you sell: add a second smsc group with smsc-id = tcxc-did, the same host and port, smsc-username = did and smsc-password = did (or your custom DID credentials), no unified-prefix, and route messages for those numbers to it. Buying numbers works the other way round: TelecomsXchange binds to the SMPP Endpoint on your number, so it also needs opensmppbox."
    },
    {
     "id": "how-do-i-test-it",
     "title": "How do I test it?",
     "text": "1. Open the bearerbox status page: http://127.0.0.1:13000/status?password=STATUS_PASSWORD. The tcxc link should show online. On TelecomsXchange, the account's Bind Status shows ONLINE. 2. Send the curl request above to a test handset. 3. In the bearerbox log, find the submit_sm with destination_addr: \"80039#447700900123\" and its submit_sm_resp with status 0, then the deliver_sm receipt. Use log-level = 0 while testing. 4. Go to Logs \u2192 SDR (SMS), choose All Messages and click Search SMS."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do Link never goes online; log shows bind status 0x0D Check smsc-username and smsc-password, and that Kannel binds from the account's IP address or an additional allowed IP. submit_sm_resp status 0x45 (69) The message was refused: no route or rate for the prefix, blocked route, low balance, sender ID not allowed or rate limit. Check Failed Only in the SDR. Lower throughput if you hit the rate limit. Messages go to the default route destination_addr has no prefix: the number wasn't sent with + or 00, or unified-prefix is on another group. sendsms rejects the to number You put # in to, which isn't in the default sendsms-chars. Send +447700900123 and let unified-prefix add the prefix, or add # to sendsms-chars. Status 0x01 The route takes single messages only. Enable concatenation so Kannel sends UDH parts. Status 0xFE (254) or 0x08 The seller timed out or the platform failed to forward. Kannel retries according to its queue; use a routing group with a failover route. No DLR reaches your dlr-url Check dlr-mask, that the link stayed online, and msg-id-type. The SDR still shows the delivered status. Selling: Test Bind \"has FAILED\" The system ID or password don't match smpplogins.txt, or use-systemid-as-smsboxid is off. Selling: \"host/port is probably unreachable\" opensmppbox isn't listening on that port or 174.136.44.213 is blocked."
    },
    {
     "id": "references",
     "title": "References",
     "text": "- Kannel user guide: SMPP smsc group, unified-prefix, sendsms, DLRs and HTTP administration - opensmppbox user guide (Kannel add-on) - opensmppbox example configuration and smpplogins.txt"
    }
   ]
  },
  {
   "slug": "jasmin",
   "section": "integrations",
   "title": "Connect Jasmin SMS Gateway to TelecomsXchange",
   "description": "Add a Jasmin SMPP client connector for TelecomsXchange with jCli, prepend the route's tech prefix with an MT interceptor, get receipts, and accept TelecomsXchange's bind to sell SMS.",
   "summary": "In jCli, add an smppccm connector with host smpp01.telecomsxchange.com, port 2776, bind transceiver and your account's SMPP System Id and SMPP Password, then route to it with an MT route. Jasmin's HTTP API accepts only digits in to, so add the tech prefix with an MT interceptor script that rewrites destination_addr to 80039#447700900123. To sell SMS, create a Jasmin user with TelecomsXchange's credentials and let it bind to the SMPP Server API.",
   "url": "https://help.telecomsxchange.com/integrations/jasmin/",
   "markdown_url": "https://help.telecomsxchange.com/integrations/jasmin.md",
   "updated": "2026-10-23",
   "keywords": [
    "jasmin",
    "jasmin sms gateway",
    "jcli",
    "smppccm",
    "smpp client connector",
    "mtrouter",
    "mtinterceptor",
    "interception",
    "http api",
    "smpp server api",
    "user",
    "group",
    "smpps_cred",
    "sms gateway"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Why not put 80039#447700900123 in the HTTP API's to parameter?",
     "a": "Jasmin's /send endpoint validates to against ^\\+?\\d+$, so a # is rejected. The MT interceptor adds the prefix after validation, for HTTP and SMPP clients alike."
    },
    {
     "q": "Can Jasmin sell SMS routes on TelecomsXchange?",
     "a": "Yes. Jasmin's SMPP Server API accepts binds from users created in jCli. Create a user with the system ID and password you set on your TelecomsXchange route; its messages are routed to your own connectors by your MT routes."
    },
    {
     "q": "What submit_throughput should I set?",
     "a": "Jasmin's default is 1 message per second. Raise it to your account's SMPP Rate Limit (req/sec), not above."
    },
    {
     "q": "Do long messages work?",
     "a": "Yes. Jasmin splits long content into UDH parts; each part is billed as one segment. The interceptor script below prefixes every part."
    }
   ],
   "text": "Jasmin to TelecomsXchange over SMPP 1. Your application: HTTP API /send or SMPP Server API 2. Jasmin (via to=447700900123): MT interceptor, MT route, smppcc connector 3. TelecomsXchange (via 80039#447700900123): smpp01, TCP 2776 4. Seller's SMSC: The SMS route you purchased Jasmin sends to TelecomsXchange through an SMPP client connector and takes your traffic over its HTTP API or SMPP Server API. Everything is configured in jCli, Jasmin's management console. This guide adds the connector, puts the route's tech prefix on every number with an MT interceptor, sets up receipts, and lets TelecomsXchange bind to Jasmin when you sell SMS. For the values themselves, see Connect an SMPP platform. Before you start - An SMPP account with its SMPP System Id and SMPP Password. Set its IP Address to your Jasmin server's public IP, for example 203.0.113.10. - An SMS route and its tech prefix, for example 80039. Below, TECH_PREFIX stands for it. - A sender ID registered on the account. - Jasmin 0.10 or later with the interceptor service (interceptord) running, and jCli access: telnet 127.0.0.1 8990. How do I send SMS through TelecomsXchange? 1. Add the SMPP client connector: text jcli : smppccm -a cid tcxc host smpp01.telecomsxchange.com port 2776 username SYSTEM_ID password PASSWORD bind transceiver elink_interval 30 submit_throughput 10 ok Successfully added connector [tcxc] jcli : smppccm -1 tcxc SYSTEM_ID and PASSWORD are the account's SMPP System Id and SMPP Password. Set submit_throughput (messages per second; Jasmin's default is 1) to your account's SMPP Rate Limit (req/sec) or lower. 2. Write the interceptor script, for example /opt/jasmin-scripts/tcxc-prefix.py. Jasmin runs it for every MT message before routing: python Prepend the TelecomsXchange tech prefix to destination_addr. 447700900123 or +447700900123 becomes 80039#447700900123. TECH_PREFIX = b\"80039#\" # your route's prefix, then '#' pdu = routable.pdu while pdu is not None: # every part of a long message dst = pdu.params[\"destination_addr\"] if isinstance(dst, str): dst = dst.encode() dst = dst.lstrip(b\"+\") if not dst.startswith(TECH_PREFIX): pdu.params[\"destination_addr\"] = TECH_PREFIX + dst pdu = getattr(pdu, \"nextPdu\", None) 3. Register it. A DefaultInterceptor runs for all MT traffic; use a StaticMTInterceptor with filters if only some traffic goes to TelecomsXchange: text jcli : mtinterceptor -a type DefaultInterceptor script python3(/opt/jasmin-scripts/tcxc-prefix.py) ok Successfully added MTInterceptor [DefaultInterceptor] with order:0 4. Route MT traffic to the connector. Interception runs before routing, so a route filter sees the prefixed number: text jcli : mtrouter -a type DefaultRoute connector smppc(tcxc) rate 0.0 ok Successfully added MTRoute [DefaultRoute] with order:0 5. Create a group and a user for your application, then save everything: text jcli : group -a gid apps ok jcli : user -a username app password APP_PASS uid app gid apps ok jcli : persist 6. Send through the HTTP API (port 1401 by default) with a plain number: bash curl -G \"http://127.0.0.1:1401/send\" \\ --data-urlencode \"username=app\" \\ --data-urlencode \"password=APP_PASS\" \\ --data-urlencode \"to=447700900123\" \\ --data-urlencode \"from=MyBrand\" \\ --data-urlencode \"content=Test from Jasmin\" \\ --data-urlencode \"dlr=yes\" \\ --data-urlencode \"dlr-url=http://127.0.0.1/dlr\" \\ --data-urlencode \"dlr-level=3\" Applications can also bind to Jasmin's SMPP Server API (port 2775 by default) with the same user and send submit_sm; the interceptor applies to both. After editing the script, add the interceptor again: Jasmin copies the script into its core when the rule is created, so changes to the file have no effect until then. How do I receive delivery receipts? Request receipts per message: dlr=yes with a dlr-url and dlr-level on the HTTP API (3 for both SMSC and terminal level), or registered_delivery on submit_sm from SMPP clients. Jasmin stores the message_id from TelecomsXchange's submit_sm_resp; when the deliver_sm with id:<message_id> and stat:DELIVRD arrives on the tcxc connector, it calls your dlr-url or sends a deliver_sm to your bound SMPP client. Jasmin keeps unacknowledged messages for dlr_expiry seconds (86400 by default). Receipts reach Jasmin only while the connector is bound; keep con_loss_retry at its default yes. How do I receive SMS from TelecomsXchange as a seller? Jasmin's SMPP Server API accepts binds natively. TelecomsXchange binds to it as a transceiver from 174.136.44.213, as a Jasmin user. 1. Create a group and a user whose username and password are the SMPP System Id and SMPP Password you set on your TelecomsXchange SMS route: text jcli : group -a gid tcxc ok jcli : user -a username TCXC_SYSTEM_ID password TCXC_PASSWORD uid tcxc gid tcxc smpps_cred authorization bind yes smpps_cred quota max_bindings 4 mt_messaging_cred authorization smpps_send yes ok jcli : persist A Jasmin username is 1 to 15 letters, digits, _ or -, and a password at most 16 characters, so choose route credentials that fit. 2. Route the traffic TelecomsXchange sends you to your own connectors with MT routes, for example a StaticMTRoute with a UserFilter for uid tcxc and connector smppc(my_operator). If you use the prefix interceptor above, give it a filter so it doesn't touch this user's traffic. 3. Allow 174.136.44.213 to the SMPP Server API port (2775 by default) on your firewall. Jasmin users have no IP restriction of their own. 4. On your route in Routes \u2192 My Routes, enter IP:2775, SMPP Version 3.4, Field for Messages short_message, TLS No, and Allowed BIND Sessions no higher than max_bindings. Jasmin answers each submit_sm with its own message_id and sends the receipt back to TelecomsXchange's bind when your operator connector reports delivery. Inbound SMS for numbers you sell: add a second connector (cid tcxc_did) to the same host and port with username did and password did (or your custom DID credentials), and route messages for those numbers to it without the prefix interceptor. When you buy numbers, set the number's SMPP Endpoint to a Jasmin user, smpp:USER:PASS:number@203.0.113.10:2775; TelecomsXchange binds to it and delivers the SMS as MO. How do I test it? 1. In jCli, smppccm -l lists the tcxc connector; its Session should be BOUND_TRX. On TelecomsXchange, the account's Bind Status shows ONLINE. 2. Send the curl request above. Jasmin answers Success \"<message id>\". 3. Check the connector log (for example /var/log/jasmin/default-tcxc.log) for the SubmitSM with destination_addr: b'80039#447700900123', its response with status ESME_ROK, and the DeliverSM receipt. 4. Go to Logs \u2192 SDR (SMS), choose All Messages and click Search SMS. What if something goes wrong? You see What to do Connector never reaches BOUND_TRX; log shows ESME_RBINDFAIL (0x0D) Check username and password on the connector, and that Jasmin binds from the account's IP address or an additional allowed IP. ESME_RSUBMITFAIL (0x45, 69) in the connector log TelecomsXchange refused the message: no route or rate for the prefix, blocked route, low balance, sender ID not allowed or rate limit. Check Failed Only in the SDR. HTTP API answers Argument [to] has an invalid value You put # or another symbol in to. Send digits only and let the interceptor add the prefix. Messages go to the default route The interceptor didn't run: check mtinterceptor -l, that interceptord is running, and its log. ESME_RINVMSGLEN (0x01) The route takes single messages only. Let Jasmin split long content into parts. Status 0xFE (254) or ESME_RSYSERR (0x08) The seller timed out or the platform failed to forward. Retry, or send through a routing group with a failover route. Throttled sending Raise submit_throughput up to your account's rate limit. Selling: Test Bind \"has FAILED\" The user's credentials don't match the route, or smpps_cred authorization bind is no. Selling: \"host/port is probably unreachable\" Jasmin's SMPP server isn't listening on that port or 174.136.44.213 is blocked. References - Jasmin jCli modules: smppccm, user, group, mtrouter, mtinterceptor, filters - Jasmin message interception - Jasmin HTTP API - Jasmin SMPP Server API - Jasmin source: HTTP /send parameter validation",
   "sections": [
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "- An SMPP account with its SMPP System Id and SMPP Password. Set its IP Address to your Jasmin server's public IP, for example 203.0.113.10. - An SMS route and its tech prefix, for example 80039. Below, TECH_PREFIX stands for it. - A sender ID registered on the account. - Jasmin 0.10 or later with the interceptor service (interceptord) running, and jCli access: telnet 127.0.0.1 8990."
    },
    {
     "id": "how-do-i-send-sms-through-telecomsxchange",
     "title": "How do I send SMS through TelecomsXchange?",
     "text": "1. Add the SMPP client connector: text jcli : smppccm -a cid tcxc host smpp01.telecomsxchange.com port 2776 username SYSTEM_ID password PASSWORD bind transceiver elink_interval 30 submit_throughput 10 ok Successfully added connector [tcxc] jcli : smppccm -1 tcxc SYSTEM_ID and PASSWORD are the account's SMPP System Id and SMPP Password. Set submit_throughput (messages per second; Jasmin's default is 1) to your account's SMPP Rate Limit (req/sec) or lower. 2. Write the interceptor script, for example /opt/jasmin-scripts/tcxc-prefix.py. Jasmin runs it for every MT message before routing: python Prepend the TelecomsXchange tech prefix to destination_addr. 447700900123 or +447700900123 becomes 80039#447700900123. TECH_PREFIX = b\"80039#\" # your route's prefix, then '#' pdu = routable.pdu while pdu is not None: # every part of a long message dst = pdu.params[\"destination_addr\"] if isinstance(dst, str): dst = dst.encode() dst = dst.lstrip(b\"+\") if not dst.startswith(TECH_PREFIX): pdu.params[\"destination_addr\"] = TECH_PREFIX + dst pdu = getattr(pdu, \"nextPdu\", None) 3. Register it. A DefaultInterceptor runs for all MT traffic; use a StaticMTInterceptor with filters if only some traffic goes to TelecomsXchange: text jcli : mtinterceptor -a type DefaultInterceptor script python3(/opt/jasmin-scripts/tcxc-prefix.py) ok Successfully added MTInterceptor [DefaultInterceptor] with order:0 4. Route MT traffic to the connector. Interception runs before routing, so a route filter sees the prefixed number: text jcli : mtrouter -a type DefaultRoute connector smppc(tcxc) rate 0.0 ok Successfully added MTRoute [DefaultRoute] with order:0 5. Create a group and a user for your application, then save everything: text jcli : group -a gid apps ok jcli : user -a username app password APP_PASS uid app gid apps ok jcli : persist 6. Send through the HTTP API (port 1401 by default) with a plain number: bash curl -G \"http://127.0.0.1:1401/send\" \\ --data-urlencode \"username=app\" \\ --data-urlencode \"password=APP_PASS\" \\ --data-urlencode \"to=447700900123\" \\ --data-urlencode \"from=MyBrand\" \\ --data-urlencode \"content=Test from Jasmin\" \\ --data-urlencode \"dlr=yes\" \\ --data-urlencode \"dlr-url=http://127.0.0.1/dlr\" \\ --data-urlencode \"dlr-level=3\" Applications can also bind to Jasmin's SMPP Server API (port 2775 by default) with the same user and send submit_sm; the interceptor applies to both. After editing the script, add the interceptor again: Jasmin copies the script into its core when the rule is created, so changes to the file have no effect until then."
    },
    {
     "id": "how-do-i-receive-delivery-receipts",
     "title": "How do I receive delivery receipts?",
     "text": "Request receipts per message: dlr=yes with a dlr-url and dlr-level on the HTTP API (3 for both SMSC and terminal level), or registered_delivery on submit_sm from SMPP clients. Jasmin stores the message_id from TelecomsXchange's submit_sm_resp; when the deliver_sm with id:<message_id> and stat:DELIVRD arrives on the tcxc connector, it calls your dlr-url or sends a deliver_sm to your bound SMPP client. Jasmin keeps unacknowledged messages for dlr_expiry seconds (86400 by default). Receipts reach Jasmin only while the connector is bound; keep con_loss_retry at its default yes."
    },
    {
     "id": "how-do-i-receive-sms-from-telecomsxchange-as-a-seller",
     "title": "How do I receive SMS from TelecomsXchange as a seller?",
     "text": "Jasmin's SMPP Server API accepts binds natively. TelecomsXchange binds to it as a transceiver from 174.136.44.213, as a Jasmin user. 1. Create a group and a user whose username and password are the SMPP System Id and SMPP Password you set on your TelecomsXchange SMS route: text jcli : group -a gid tcxc ok jcli : user -a username TCXC_SYSTEM_ID password TCXC_PASSWORD uid tcxc gid tcxc smpps_cred authorization bind yes smpps_cred quota max_bindings 4 mt_messaging_cred authorization smpps_send yes ok jcli : persist A Jasmin username is 1 to 15 letters, digits, _ or -, and a password at most 16 characters, so choose route credentials that fit. 2. Route the traffic TelecomsXchange sends you to your own connectors with MT routes, for example a StaticMTRoute with a UserFilter for uid tcxc and connector smppc(my_operator). If you use the prefix interceptor above, give it a filter so it doesn't touch this user's traffic. 3. Allow 174.136.44.213 to the SMPP Server API port (2775 by default) on your firewall. Jasmin users have no IP restriction of their own. 4. On your route in Routes \u2192 My Routes, enter IP:2775, SMPP Version 3.4, Field for Messages short_message, TLS No, and Allowed BIND Sessions no higher than max_bindings. Jasmin answers each submit_sm with its own message_id and sends the receipt back to TelecomsXchange's bind when your operator connector reports delivery. Inbound SMS for numbers you sell: add a second connector (cid tcxc_did) to the same host and port with username did and password did (or your custom DID credentials), and route messages for those numbers to it without the prefix interceptor. When you buy numbers, set the number's SMPP Endpoint to a Jasmin user, smpp:USER:PASS:number@203.0.113.10:2775; TelecomsXchange binds to it and delivers the SMS as MO."
    },
    {
     "id": "how-do-i-test-it",
     "title": "How do I test it?",
     "text": "1. In jCli, smppccm -l lists the tcxc connector; its Session should be BOUND_TRX. On TelecomsXchange, the account's Bind Status shows ONLINE. 2. Send the curl request above. Jasmin answers Success \"<message id>\". 3. Check the connector log (for example /var/log/jasmin/default-tcxc.log) for the SubmitSM with destination_addr: b'80039#447700900123', its response with status ESME_ROK, and the DeliverSM receipt. 4. Go to Logs \u2192 SDR (SMS), choose All Messages and click Search SMS."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do Connector never reaches BOUND_TRX; log shows ESME_RBINDFAIL (0x0D) Check username and password on the connector, and that Jasmin binds from the account's IP address or an additional allowed IP. ESME_RSUBMITFAIL (0x45, 69) in the connector log TelecomsXchange refused the message: no route or rate for the prefix, blocked route, low balance, sender ID not allowed or rate limit. Check Failed Only in the SDR. HTTP API answers Argument [to] has an invalid value You put # or another symbol in to. Send digits only and let the interceptor add the prefix. Messages go to the default route The interceptor didn't run: check mtinterceptor -l, that interceptord is running, and its log. ESME_RINVMSGLEN (0x01) The route takes single messages only. Let Jasmin split long content into parts. Status 0xFE (254) or ESME_RSYSERR (0x08) The seller timed out or the platform failed to forward. Retry, or send through a routing group with a failover route. Throttled sending Raise submit_throughput up to your account's rate limit. Selling: Test Bind \"has FAILED\" The user's credentials don't match the route, or smpps_cred authorization bind is no. Selling: \"host/port is probably unreachable\" Jasmin's SMPP server isn't listening on that port or 174.136.44.213 is blocked."
    },
    {
     "id": "references",
     "title": "References",
     "text": "- Jasmin jCli modules: smppccm, user, group, mtrouter, mtinterceptor, filters - Jasmin message interception - Jasmin HTTP API - Jasmin SMPP Server API - Jasmin source: HTTP /send parameter validation"
    }
   ]
  },
  {
   "slug": "restcomm-smsc",
   "section": "integrations",
   "title": "Connect Restcomm SMSC to TelecomsXchange",
   "description": "Create a Restcomm (Telestax) SMSC Gateway client ESME that binds to TelecomsXchange, add the tech prefix with an mproc rule, route receipts, and accept TelecomsXchange's bind as a server ESME.",
   "summary": "In the SMSC CLI, create a CLIENT ESME of bind type TRANSCEIVER to smpp01.telecomsxchange.com port 2776 with your account's SMPP System Id and SMPP Password, in its own networkId. An mproc rule moves your applications' messages into that networkId and adds the tech prefix with adddestdigprefix 80039#. To sell SMS, create a SERVER ESME for host 174.136.44.213 with the credentials you set on your TelecomsXchange route.",
   "url": "https://help.telecomsxchange.com/integrations/restcomm-smsc/",
   "markdown_url": "https://help.telecomsxchange.com/integrations/restcomm-smsc.md",
   "updated": "2026-10-23",
   "keywords": [
    "restcomm",
    "telestax",
    "restcomm smsc",
    "smsc gateway",
    "esme",
    "smpp esme create",
    "client esme",
    "server esme",
    "mproc",
    "adddestdigprefix",
    "networkid",
    "routing-range",
    "ss7-cli",
    "cloudhopper"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Is Restcomm SMSC built on jSMPP?",
     "a": "No. The Restcomm (Telestax) SMSC Gateway uses the Cloudhopper SMPP library. It binds to TelecomsXchange as a client ESME and accepts TelecomsXchange's bind as a server ESME."
    },
    {
     "q": "How do I add the tech prefix?",
     "a": "With an mproc rule: adddestdigprefix adds digits to the start of the destination address when the message arrives, for example adddestdigprefix 80039# turns 447700900123 into 80039#447700900123."
    },
    {
     "q": "Can TelecomsXchange bind to Restcomm over TLS?",
     "a": "No. Restcomm enables SSL only on CLIENT ESMEs, so set TLS to No on your TelecomsXchange SMS route when it binds to a SERVER ESME."
    },
    {
     "q": "Which port does Restcomm listen on for TelecomsXchange's bind?",
     "a": "The SMPP server port, 2776 by default; change it with smpp smppserver set port. Enter that port on your TelecomsXchange route."
    }
   ],
   "text": "Restcomm SMSC to TelecomsXchange 1. Your applications: ESMEs or HTTP in networkId 1 2. Restcomm SMSC (via adddestdigprefix 80039#): mproc rule, then CLIENT ESME tcxc 3. TelecomsXchange (via 80039#447700900123): smpp01, TCP 2776 4. Seller's SMSC: The SMS route you purchased The Restcomm SMSC Gateway (Telestax, built on the Cloudhopper SMPP library) defines every SMPP connection as an ESME: a CLIENT ESME binds out to TelecomsXchange to send, a SERVER ESME accepts TelecomsXchange's bind when you sell. Routing between them uses networkIds and mproc rules. This guide sets up both directions from the CLI (ss7-cli.sh); the same settings are under ESMEs and mproc rules in the management GUI. For the values themselves, see Connect an SMPP platform. Before you start - An SMPP account with its SMPP System Id and SMPP Password. Set its IP Address to your SMSC's public IP, for example 203.0.113.10. - An SMS route and its tech prefix, for example 80039. Below, TECH_PREFIX stands for it. - A sender ID registered on the account. - A shell connected to your SMSC instance: start ./ss7-cli.sh from the server's bin directory and connect to it. How do I send SMS through TelecomsXchange? The layout below keeps your applications' ESMEs in networkId 1 and the TelecomsXchange link alone in networkId 2, so an mproc rule decides what goes to TelecomsXchange. 1. Create the client ESME: text smpp esme create tcxc SYSTEM_ID SMPP01_IP 2776 TRANSCEIVER CLIENT password PASSWORD networkid 2 interface-version 3.4 enquire-link-delay 30000 window-size 10 routing-ton -1 routing-npi -1 routing-range ^. smpp esme start tcxc - tcxc is the ESME's name; SYSTEM_ID and PASSWORD are the account's SMPP System Id and SMPP Password. - SMPP01_IP is the address of smpp01.telecomsxchange.com. Resolve it with dig +short smpp01.telecomsxchange.com if your version only takes an IP here. - routing-range ^. lets this ESME carry any destination, including the # the prefix adds; the default ^[0-9a-zA-Z] doesn't allow #. 2. Make sure your applications' ESMEs are in networkId 1 (networkid 1 when you create them, or smpp esme modify <name> networkid 1). 3. Add the mproc rule that moves their messages to TelecomsXchange and adds the prefix: text smsc mproc add mproc 1 networkidmask 1 newnetworkid 2 adddestdigprefix TECH_PREFIX# With TECH_PREFIX = 80039, a message to 447700900123 leaves as 80039#447700900123. To send only some destinations, add destdigmask with a regular expression, for example destdigmask ^44.. Messages from the HTTP connector get the networkId given in the request, or the configured default; set it to 1 so the same rule applies. adddestdigprefix runs at the Arrival trigger, before routing, so the TelecomsXchange ESME's routing-range sees the prefixed number. Have your applications send numbers in E.164 without + or 00. How do I receive delivery receipts? Your applications ask for a receipt with registered_delivery as usual. TelecomsXchange returns deliver_sm with id:<message_id> and stat:DELIVRD on the tcxc bind; the SMSC Gateway recognises it as a receipt for the original message. Because the receipt arrives in networkId 2, tell the SMSC to route receipts to the networkId the original message came from: text smsc set orignetworkidforreceipts true Check the result with one test message and swap the value if receipts don't reach the originating ESME: the admin guide describes the option both ways. Receipts are relayed by TelecomsXchange only while the tcxc bind is up. How do I receive SMS from TelecomsXchange as a seller? Create a SERVER ESME that accepts TelecomsXchange's bind, in a networkId of its own: text smpp esme create tcxc-in TCXC_SYSTEM_ID 174.136.44.213 -1 TRANSCEIVER SERVER password TCXC_PASSWORD networkid 3 smpp esme start tcxc-in - TCXC_SYSTEM_ID and TCXC_PASSWORD are the SMPP System Id and SMPP Password you set on your SMS route under Routes \u2192 My Routes. - 174.136.44.213 -1 accepts the bind from TelecomsXchange's IP on any source port. To accept several sessions, create one ESME per session with the same system ID and a different name, up to your route's Allowed BIND Sessions. - Add an mproc rule that moves this traffic to the networkId of your delivery path, for example smsc mproc add mproc 2 networkidmask 3 newnetworkid 0 for SS7 in networkId 0, and keep orignetworkidforreceipts so receipts return to tcxc-in. On the route, enter your SMSC as IP:2776 (the SMPP server port; change it with smpp smppserver set port), SMPP Version 3.4, and TLS No: Restcomm enables SSL only on CLIENT ESMEs. Inbound SMS for numbers you sell: create another CLIENT ESME to smpp01.telecomsxchange.com port 2776 with system ID did and password did (or your custom DID credentials), with a routing-range that matches your numbers and no prefix rule. When you buy numbers, TelecomsXchange binds to the number's SMPP Endpoint, so point it at a SERVER ESME: smpp:LOGIN:PASSWORD:number@203.0.113.10:2776. How do I test it? 1. Run smpp esme show tcxc; the ESME should be started and bound. On TelecomsXchange, the account's Bind Status shows ONLINE. 2. Send a test message from one of your ESMEs in networkId 1 to 447700900123. 3. Check cdr.log in the server's log directory: the record shows the destination 80039#447700900123, the ESME tcxc and the delivery status; smsc stat get shows messages in process. 4. Go to Logs \u2192 SDR (SMS), choose All Messages and click Search SMS. What if something goes wrong? You see What to do ESME tcxc never binds; bind status 0x0D Check the system ID and password, and that the SMSC binds from the account's IP address or an additional allowed IP. submit_sm_resp status 0x45 (69) TelecomsXchange refused the message: no route or rate for the prefix, blocked route, low balance, sender ID not allowed or rate limit. Check Failed Only in the SDR, and lower the ESME's window or rate. Messages don't reach the tcxc ESME The mproc rule didn't match (check networkidmask and destdigmask) or routing-range excludes #. Messages arrive without the prefix adddestdigprefix is missing or on a rule that didn't match. Status 0x01 The route takes single messages only. Send long texts as UDH parts. Status 0xFE (254) or 0x08 The seller timed out or the platform failed to forward; the SMSC reschedules temporary failures. Use a routing group with a failover route. Receipts don't reach your application Check orignetworkidforreceipts and that the tcxc bind stayed up. The SDR still shows the delivered status. Selling: Test Bind \"has FAILED\" The SERVER ESME's system ID or password don't match the route, the ESME isn't started, or TLS is on. Selling: \"host/port is probably unreachable\" The SMPP server isn't on that port or 174.136.44.213 is blocked. References - Restcomm SMSC Gateway admin guide: ESME settings - Restcomm SMSC Gateway admin guide: mproc rules and routing fundamentals - Restcomm SMSC Gateway admin guide: SMPP server settings - Restcomm SMSC Gateway admin guide: server settings (receipt routing) - Restcomm SMSC Gateway admin guide: monitoring and CDR log",
   "sections": [
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "- An SMPP account with its SMPP System Id and SMPP Password. Set its IP Address to your SMSC's public IP, for example 203.0.113.10. - An SMS route and its tech prefix, for example 80039. Below, TECH_PREFIX stands for it. - A sender ID registered on the account. - A shell connected to your SMSC instance: start ./ss7-cli.sh from the server's bin directory and connect to it."
    },
    {
     "id": "how-do-i-send-sms-through-telecomsxchange",
     "title": "How do I send SMS through TelecomsXchange?",
     "text": "The layout below keeps your applications' ESMEs in networkId 1 and the TelecomsXchange link alone in networkId 2, so an mproc rule decides what goes to TelecomsXchange. 1. Create the client ESME: text smpp esme create tcxc SYSTEM_ID SMPP01_IP 2776 TRANSCEIVER CLIENT password PASSWORD networkid 2 interface-version 3.4 enquire-link-delay 30000 window-size 10 routing-ton -1 routing-npi -1 routing-range ^. smpp esme start tcxc - tcxc is the ESME's name; SYSTEM_ID and PASSWORD are the account's SMPP System Id and SMPP Password. - SMPP01_IP is the address of smpp01.telecomsxchange.com. Resolve it with dig +short smpp01.telecomsxchange.com if your version only takes an IP here. - routing-range ^. lets this ESME carry any destination, including the # the prefix adds; the default ^[0-9a-zA-Z] doesn't allow #. 2. Make sure your applications' ESMEs are in networkId 1 (networkid 1 when you create them, or smpp esme modify <name> networkid 1). 3. Add the mproc rule that moves their messages to TelecomsXchange and adds the prefix: text smsc mproc add mproc 1 networkidmask 1 newnetworkid 2 adddestdigprefix TECH_PREFIX# With TECH_PREFIX = 80039, a message to 447700900123 leaves as 80039#447700900123. To send only some destinations, add destdigmask with a regular expression, for example destdigmask ^44.. Messages from the HTTP connector get the networkId given in the request, or the configured default; set it to 1 so the same rule applies. adddestdigprefix runs at the Arrival trigger, before routing, so the TelecomsXchange ESME's routing-range sees the prefixed number. Have your applications send numbers in E.164 without + or 00."
    },
    {
     "id": "how-do-i-receive-delivery-receipts",
     "title": "How do I receive delivery receipts?",
     "text": "Your applications ask for a receipt with registered_delivery as usual. TelecomsXchange returns deliver_sm with id:<message_id> and stat:DELIVRD on the tcxc bind; the SMSC Gateway recognises it as a receipt for the original message. Because the receipt arrives in networkId 2, tell the SMSC to route receipts to the networkId the original message came from: text smsc set orignetworkidforreceipts true Check the result with one test message and swap the value if receipts don't reach the originating ESME: the admin guide describes the option both ways. Receipts are relayed by TelecomsXchange only while the tcxc bind is up."
    },
    {
     "id": "how-do-i-receive-sms-from-telecomsxchange-as-a-seller",
     "title": "How do I receive SMS from TelecomsXchange as a seller?",
     "text": "Create a SERVER ESME that accepts TelecomsXchange's bind, in a networkId of its own: text smpp esme create tcxc-in TCXC_SYSTEM_ID 174.136.44.213 -1 TRANSCEIVER SERVER password TCXC_PASSWORD networkid 3 smpp esme start tcxc-in - TCXC_SYSTEM_ID and TCXC_PASSWORD are the SMPP System Id and SMPP Password you set on your SMS route under Routes \u2192 My Routes. - 174.136.44.213 -1 accepts the bind from TelecomsXchange's IP on any source port. To accept several sessions, create one ESME per session with the same system ID and a different name, up to your route's Allowed BIND Sessions. - Add an mproc rule that moves this traffic to the networkId of your delivery path, for example smsc mproc add mproc 2 networkidmask 3 newnetworkid 0 for SS7 in networkId 0, and keep orignetworkidforreceipts so receipts return to tcxc-in. On the route, enter your SMSC as IP:2776 (the SMPP server port; change it with smpp smppserver set port), SMPP Version 3.4, and TLS No: Restcomm enables SSL only on CLIENT ESMEs. Inbound SMS for numbers you sell: create another CLIENT ESME to smpp01.telecomsxchange.com port 2776 with system ID did and password did (or your custom DID credentials), with a routing-range that matches your numbers and no prefix rule. When you buy numbers, TelecomsXchange binds to the number's SMPP Endpoint, so point it at a SERVER ESME: smpp:LOGIN:PASSWORD:number@203.0.113.10:2776."
    },
    {
     "id": "how-do-i-test-it",
     "title": "How do I test it?",
     "text": "1. Run smpp esme show tcxc; the ESME should be started and bound. On TelecomsXchange, the account's Bind Status shows ONLINE. 2. Send a test message from one of your ESMEs in networkId 1 to 447700900123. 3. Check cdr.log in the server's log directory: the record shows the destination 80039#447700900123, the ESME tcxc and the delivery status; smsc stat get shows messages in process. 4. Go to Logs \u2192 SDR (SMS), choose All Messages and click Search SMS."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do ESME tcxc never binds; bind status 0x0D Check the system ID and password, and that the SMSC binds from the account's IP address or an additional allowed IP. submit_sm_resp status 0x45 (69) TelecomsXchange refused the message: no route or rate for the prefix, blocked route, low balance, sender ID not allowed or rate limit. Check Failed Only in the SDR, and lower the ESME's window or rate. Messages don't reach the tcxc ESME The mproc rule didn't match (check networkidmask and destdigmask) or routing-range excludes #. Messages arrive without the prefix adddestdigprefix is missing or on a rule that didn't match. Status 0x01 The route takes single messages only. Send long texts as UDH parts. Status 0xFE (254) or 0x08 The seller timed out or the platform failed to forward; the SMSC reschedules temporary failures. Use a routing group with a failover route. Receipts don't reach your application Check orignetworkidforreceipts and that the tcxc bind stayed up. The SDR still shows the delivered status. Selling: Test Bind \"has FAILED\" The SERVER ESME's system ID or password don't match the route, the ESME isn't started, or TLS is on. Selling: \"host/port is probably unreachable\" The SMPP server isn't on that port or 174.136.44.213 is blocked."
    },
    {
     "id": "references",
     "title": "References",
     "text": "- Restcomm SMSC Gateway admin guide: ESME settings - Restcomm SMSC Gateway admin guide: mproc rules and routing fundamentals - Restcomm SMSC Gateway admin guide: SMPP server settings - Restcomm SMSC Gateway admin guide: server settings (receipt routing) - Restcomm SMSC Gateway admin guide: monitoring and CDR log"
    }
   ]
  },
  {
   "slug": "3cx",
   "section": "integrations",
   "title": "Connect 3CX to TelecomsXchange",
   "description": "Set up a 3CX V20 generic SIP trunk with IP authentication to send calls to TelecomsXchange with a tech prefix, and receive calls from 174.136.44.213.",
   "summary": "In 3CX V20, add a Generic SIP Trunk pointing at sip01.telecomsxchange.com port 5060 with authentication set to Do not require (IP based), and authorise 3CX's public IP on your TelecomsXchange account. Add an outbound rule that strips + or 00 and prepends the route's tech prefix, so calls leave as 80039#447700900123.",
   "url": "https://help.telecomsxchange.com/integrations/3cx/",
   "markdown_url": "https://help.telecomsxchange.com/integrations/3cx.md",
   "updated": "2026-10-23",
   "keywords": [
    "3cx",
    "3cx v20",
    "generic sip trunk",
    "ip based",
    "do not require",
    "outbound rules",
    "prepend",
    "strip digits",
    "dids",
    "tech prefix",
    "ip authentication",
    "no registration",
    "sip trunk",
    "pbx"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Can 3CX register to TelecomsXchange?",
     "a": "No. TelecomsXchange is peering only and does not accept REGISTER. Set the trunk's authentication to Do not require (IP based); the Register/Account based option makes 3CX send REGISTER, which TelecomsXchange rejects."
    },
    {
     "q": "Can 3CX use the VoIP login and password instead of its IP?",
     "a": "Use IP authentication with 3CX. Its IP-based trunk type is built for providers that recognise the PBX by source IP, and the account-based type registers. If 3CX's public IP changes, add the new one under Additional Allowed IPs."
    },
    {
     "q": "Why do my call logs show the tech prefix?",
     "a": "3CX applies the outbound rule's Prepend before the call is logged, so call history shows 80039#447700900123. It's cosmetic; the call is routed correctly."
    },
    {
     "q": "Which 3CX edition do I need?",
     "a": "Generic, non-template SIP trunks are limited on some 3CX editions. Check that your licence allows a generic SIP trunk before you start."
    }
   ],
   "text": "3CX to a purchased route 1. Your 3CX: Generic SIP trunk, IP based, no registration 2. TelecomsXchange (via 80039#447700900123): sip01, UDP 5060 3. Seller's route: The route you purchased This guide connects 3CX V20 to TelecomsXchange with a generic 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. TelecomsXchange does not accept SIP REGISTER. Don't pick Register/Account based authentication on the trunk. 3CX is recognised by its source IP, so set authentication to Do not require (IP based). Before you start - A SIP account with 3CX's public IP, for example 203.0.113.10, in IP Address or Additional Allowed IPs. - A purchased route and its tech prefix from My Interconnections, for example 80039#. In this guide TECH_PREFIX stands for that value. - 3CX V20 with a static public IP (or a fixed NAT address) and a licence that allows a generic SIP trunk. - To receive calls on numbers you bought: a phone number whose SIP endpoint points at 3CX, for example sip:14165551234@203.0.113.10:5060. How do I send calls to TelecomsXchange? 1. In the 3CX Admin Console, go to Voice & Chat and click Add Trunk. Choose the Generic country and Generic SIP Trunk as the provider, enter a Main Trunk No (any number you will present, for example one you bought), and click OK. 2. On the trunk's General tab, enter: Field Value Name TelecomsXchange Registrar/Server/Gateway Hostname or IP sip01.telecomsxchange.com Port 5060 Outbound Proxy Leave empty Type of Authentication Do not require (IP based) Authentication ID / Password Leave empty, or any placeholder if the form requires a value Number of SIM calls The number of concurrent calls you expect 3. Under the trunk's options, keep the codecs your route supports (G.729 and G.711, as listed in the Purchased Route Confirmation email). TelecomsXchange doesn't transcode, so the route and 3CX must share a codec. Save the trunk. 4. Go to Outbound Rules and click Add. Create one rule for numbers dialled with 00 and one for numbers dialled with +: Field Rule for 00 Rule for + Rule Name TCXC 00 TCXC plus Calls to numbers starting with prefix 00 + Calls from extension(s) The extensions or groups allowed to call out Same Route 1 The TelecomsXchange trunk Same Strip Digits 2 1 Prepend 80039# (your TECH_PREFIX) 80039# With these rules, a user who dials 00447700900123 or +447700900123 sends 80039#447700900123 to TelecomsXchange. 3CX may write the # as %23 in the Request-URI; TelecomsXchange decodes it. 5. Move the rules above any other rule that matches the same numbers. 3CX checks outbound rules from the top and uses the first match. To send different destinations to different routes, add one rule per destination prefix (for example 0044) with that route's tech prefix in Prepend. Or prepend a routing group prefix such as 444101# and let TelecomsXchange choose the route. 3CX records the number after Prepend, so call history and reports show 80039#447700900123. That is cosmetic: the call is routed correctly. 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 3CX for UDP 5060, and forward the 3CX RTP range (by default UDP 9000 to 10999) to 3CX. 2. 3CX matches an incoming INVITE to a trunk by comparing its source IP with the trunk's host. sip01.telecomsxchange.com resolves to 174.136.44.213, so calls from TelecomsXchange land on the TelecomsXchange trunk. If they don't, enter 174.136.44.213 as the trunk's Registrar/Server/Gateway Hostname or IP. 3. On the trunk's DIDs tab, add each number TelecomsXchange delivers, in the E.164 format it arrives in, for example 14165551234. 4. Assign each DID to its destination: a user, a ring group, a queue or an IVR, in that object's DID settings. In V20 there is no separate inbound rules page; the DID is routed by the object it's assigned to, and unassigned DIDs follow the trunk's default route. 3CX is a PBX, not a softswitch. As a seller, it can terminate calls to its own users 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 3CX, for example sip:14165551234@203.0.113.10:5060. TelecomsXchange sends the INVITE from 174.136.44.213 with 14165551234 in the Request-URI, which 3CX matches against the trunk's DIDs tab. How do I test it? 1. Place a call from a 3CX extension to an international number covered by the route, for example 00447700900123. 2. In the Admin Console, open Advanced \u2192 Activity Log and look for the call: the outbound rule that matched, the trunk it used and the SIP reply. 3. For the full SIP exchange, run a capture from Advanced \u2192 Troubleshooting (or tcpdump -n -i any udp port 5060 on a Linux install) and look for the INVITE to 80039#447700900123 (or 80039%23447700900123). 4. In the TelecomsXchange portal, watch the call in Live Calls and find its SIP code in Logs \u2192 CDR (Voice). What if something goes wrong? You see What to do 401 or 407 from TelecomsXchange, then the call fails 3CX's source IP isn't authorised, so TelecomsXchange asks for credentials. Add 3CX's public IP to the account's IP Address or Additional Allowed IPs. 403 Forbidden The source IP isn't authorised. Compare the public IP in your 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 Digits 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 3CX 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. One-way or no audio 3CX's public IP is wrong in its network settings, or the RTP range isn't forwarded. Check the public IP 3CX advertises and open UDP 9000 to 10999. Inbound calls rejected with 407 3CX didn't match the call to the trunk, so it challenged it; TelecomsXchange doesn't answer challenges. Set the trunk host to 174.136.44.213 and check the firewall. Inbound call arrives but goes nowhere The number isn't on the trunk's DIDs tab in the format it arrives in, or the DID isn't assigned to a destination. References - 3CX: SIP trunk registration and authentication types - 3CX: Configuring SIP trunks - 3CX: Outbound call routing - 3CX community: V20 inbound rules replaced by DID assignment",
   "sections": [
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "- A SIP account with 3CX's public IP, for example 203.0.113.10, in IP Address or Additional Allowed IPs. - A purchased route and its tech prefix from My Interconnections, for example 80039#. In this guide TECH_PREFIX stands for that value. - 3CX V20 with a static public IP (or a fixed NAT address) and a licence that allows a generic SIP trunk. - To receive calls on numbers you bought: a phone number whose SIP endpoint points at 3CX, for example sip:14165551234@203.0.113.10:5060."
    },
    {
     "id": "how-do-i-send-calls-to-telecomsxchange",
     "title": "How do I send calls to TelecomsXchange?",
     "text": "1. In the 3CX Admin Console, go to Voice & Chat and click Add Trunk. Choose the Generic country and Generic SIP Trunk as the provider, enter a Main Trunk No (any number you will present, for example one you bought), and click OK. 2. On the trunk's General tab, enter: Field Value Name TelecomsXchange Registrar/Server/Gateway Hostname or IP sip01.telecomsxchange.com Port 5060 Outbound Proxy Leave empty Type of Authentication Do not require (IP based) Authentication ID / Password Leave empty, or any placeholder if the form requires a value Number of SIM calls The number of concurrent calls you expect 3. Under the trunk's options, keep the codecs your route supports (G.729 and G.711, as listed in the Purchased Route Confirmation email). TelecomsXchange doesn't transcode, so the route and 3CX must share a codec. Save the trunk. 4. Go to Outbound Rules and click Add. Create one rule for numbers dialled with 00 and one for numbers dialled with +: Field Rule for 00 Rule for + Rule Name TCXC 00 TCXC plus Calls to numbers starting with prefix 00 + Calls from extension(s) The extensions or groups allowed to call out Same Route 1 The TelecomsXchange trunk Same Strip Digits 2 1 Prepend 80039# (your TECH_PREFIX) 80039# With these rules, a user who dials 00447700900123 or +447700900123 sends 80039#447700900123 to TelecomsXchange. 3CX may write the # as %23 in the Request-URI; TelecomsXchange decodes it. 5. Move the rules above any other rule that matches the same numbers. 3CX checks outbound rules from the top and uses the first match. To send different destinations to different routes, add one rule per destination prefix (for example 0044) with that route's tech prefix in Prepend. Or prepend a routing group prefix such as 444101# and let TelecomsXchange choose the route. 3CX records the number after Prepend, so call history and reports show 80039#447700900123. That is cosmetic: the call is routed correctly."
    },
    {
     "id": "how-do-i-receive-calls-from-telecomsxchange",
     "title": "How do I receive calls from TelecomsXchange?",
     "text": "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 3CX for UDP 5060, and forward the 3CX RTP range (by default UDP 9000 to 10999) to 3CX. 2. 3CX matches an incoming INVITE to a trunk by comparing its source IP with the trunk's host. sip01.telecomsxchange.com resolves to 174.136.44.213, so calls from TelecomsXchange land on the TelecomsXchange trunk. If they don't, enter 174.136.44.213 as the trunk's Registrar/Server/Gateway Hostname or IP. 3. On the trunk's DIDs tab, add each number TelecomsXchange delivers, in the E.164 format it arrives in, for example 14165551234. 4. Assign each DID to its destination: a user, a ring group, a queue or an IVR, in that object's DID settings. In V20 there is no separate inbound rules page; the DID is routed by the object it's assigned to, and unassigned DIDs follow the trunk's default route. 3CX is a PBX, not a softswitch. As a seller, it can terminate calls to its own users and numbers, but it isn't designed to carry wholesale transit traffic on to another carrier."
    },
    {
     "id": "how-do-i-receive-calls-on-numbers-i-bought",
     "title": "How do I receive calls on numbers I bought?",
     "text": "Set the number's SIP Endpoint (Primary) in DID Settings to 3CX, for example sip:14165551234@203.0.113.10:5060. TelecomsXchange sends the INVITE from 174.136.44.213 with 14165551234 in the Request-URI, which 3CX matches against the trunk's DIDs tab."
    },
    {
     "id": "how-do-i-test-it",
     "title": "How do I test it?",
     "text": "1. Place a call from a 3CX extension to an international number covered by the route, for example 00447700900123. 2. In the Admin Console, open Advanced \u2192 Activity Log and look for the call: the outbound rule that matched, the trunk it used and the SIP reply. 3. For the full SIP exchange, run a capture from Advanced \u2192 Troubleshooting (or tcpdump -n -i any udp port 5060 on a Linux install) and look for the INVITE to 80039#447700900123 (or 80039%23447700900123). 4. In the TelecomsXchange portal, watch the call in Live Calls and find its SIP code in Logs \u2192 CDR (Voice)."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do 401 or 407 from TelecomsXchange, then the call fails 3CX's source IP isn't authorised, so TelecomsXchange asks for credentials. Add 3CX's public IP to the account's IP Address or Additional Allowed IPs. 403 Forbidden The source IP isn't authorised. Compare the public IP in your 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 Digits 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 3CX 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. One-way or no audio 3CX's public IP is wrong in its network settings, or the RTP range isn't forwarded. Check the public IP 3CX advertises and open UDP 9000 to 10999. Inbound calls rejected with 407 3CX didn't match the call to the trunk, so it challenged it; TelecomsXchange doesn't answer challenges. Set the trunk host to 174.136.44.213 and check the firewall. Inbound call arrives but goes nowhere The number isn't on the trunk's DIDs tab in the format it arrives in, or the DID isn't assigned to a destination."
    },
    {
     "id": "references",
     "title": "References",
     "text": "- 3CX: SIP trunk registration and authentication types - 3CX: Configuring SIP trunks - 3CX: Outbound call routing - 3CX community: V20 inbound rules replaced by DID assignment"
    }
   ]
  },
  {
   "slug": "freepbx",
   "section": "integrations",
   "title": "Connect FreePBX to TelecomsXchange",
   "description": "Set up a FreePBX 17 PJSIP trunk with no registration to send calls to TelecomsXchange with a tech prefix, and accept inbound calls from 174.136.44.213.",
   "summary": "In FreePBX 17, add a chan_pjsip trunk to sip01.telecomsxchange.com port 5060 with Registration set to None and Authentication set to None (IP) or Outbound (VoIP login and password), and Match (Permit) 174.136.44.213. Add an outbound route that prepends the tech prefix, so calls leave as 80039#447700900123, and inbound routes for your E.164 numbers.",
   "url": "https://help.telecomsxchange.com/integrations/freepbx/",
   "markdown_url": "https://help.telecomsxchange.com/integrations/freepbx.md",
   "updated": "2026-10-23",
   "keywords": [
    "freepbx",
    "freepbx 17",
    "pjsip",
    "chan_pjsip",
    "sip trunk",
    "outbound routes",
    "prepend",
    "dial patterns",
    "inbound routes",
    "match permit",
    "qualify frequency",
    "asterisk sip settings",
    "nat",
    "tech prefix",
    "ip authentication",
    "digest authentication",
    "no registration"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Can FreePBX register to TelecomsXchange?",
     "a": "No. TelecomsXchange is peering only and does not accept REGISTER. Set Registration to None on the trunk. FreePBX is recognised by its source IP, or by answering the digest challenge when Authentication is Outbound."
    },
    {
     "q": "Which Authentication setting do I choose?",
     "a": "None if TelecomsXchange recognises FreePBX by its IP address. Outbound if you use the account's VoIP login and password; FreePBX then answers TelecomsXchange's 401 or 407 challenge without registering."
    },
    {
     "q": "Why does the trunk show as Unavailable?",
     "a": "With Qualify Frequency set to 0, FreePBX doesn't ping the trunk, so its status can't be checked; that's expected. TelecomsXchange answers OPTIONS only within a call, so leave qualify off."
    },
    {
     "q": "Where does the tech prefix go?",
     "a": "In the outbound route's Dial Patterns, in the prepend field: (80039#) + 00 | X. turns 00447700900123 into 80039#447700900123."
    }
   ],
   "text": "FreePBX to a purchased route 1. Your FreePBX: PJSIP trunk, Registration None 2. TelecomsXchange (via 80039#447700900123): sip01, UDP 5060 3. Seller's route: The route you purchased This guide connects FreePBX 17 to TelecomsXchange with a PJSIP trunk: outbound calls to a purchased route, and inbound calls on numbers you bought or routes you sell. FreePBX writes the Asterisk configuration for you, so every setting here is in the web GUI. For the full list of TelecomsXchange values, see Connect a SIP platform; for the underlying Asterisk configuration, see Connect Asterisk. TelecomsXchange does not accept SIP REGISTER. Set Registration to None on the trunk. FreePBX is recognised by its source IP or by digest authentication on the INVITE. Before you start - A SIP account with FreePBX's public IP, for example 203.0.113.10, or a VoIP login and password from Edit Account \u2192 Add SIP Digest Auth. In this guide VOIP_LOGIN and VOIP_PASSWORD stand for them. - A purchased route and its tech prefix from My Interconnections, for example 80039#. In this guide TECH_PREFIX stands for that value. - FreePBX 17 with the PJSIP driver on UDP port 5060 (Settings \u2192 Asterisk SIP Settings \u2192 SIP Settings [chan_pjsip]). - To sell: a route with IP Address:Port set to FreePBX, for example 203.0.113.10:5060, and the values in Interconnect Info. How do I send calls to TelecomsXchange? 1. Go to Connectivity \u2192 Trunks \u2192 Add Trunk \u2192 Add SIP (chan_pjsip) Trunk. On the General tab, set Trunk Name to tcxc and, if you want, Maximum Channels to the concurrent calls you bought. 2. On pjsip Settings \u2192 General, enter: Field IP authentication Digest authentication Username Leave empty VOIP_LOGIN Auth username Leave empty VOIP_LOGIN Secret Leave empty VOIP_PASSWORD Authentication None Outbound Registration None None SIP Server sip01.telecomsxchange.com Same SIP Server Port 5060 Same Context from-pstn Same Transport 0.0.0.0-udp Same 3. On pjsip Settings \u2192 Advanced, set: Field Value Why Qualify Frequency 0 TelecomsXchange answers OPTIONS only within a call Match (Permit) 174.136.44.213/32 Maps inbound calls from TelecomsXchange to this trunk Direct Media No Keeps RTP through FreePBX Rewrite Contact Yes Helps behind NAT RTP Symmetric Yes Sends RTP back where it came from Force rport Yes Replies to the port the request came from 4. On pjsip Settings \u2192 Codecs, enable the codecs your route supports (g729, ulaw, alaw, as listed in the Purchased Route Confirmation email). TelecomsXchange doesn't transcode. Click Submit. 5. Go to Connectivity \u2192 Outbound Routes \u2192 Add Outbound Route. On Route Settings, name it TCXC and put tcxc in Trunk Sequence for Matched Routes. On Dial Patterns, add one row per way users dial an international number: prepend prefix match pattern Dialled Sent to TelecomsXchange 80039# 00 X. 00447700900123 80039#447700900123 80039# + X. +447700900123 80039#447700900123 FreePBX checks the prefix and match pattern, removes the prefix, then adds the prepend. Click Submit, then Apply Config. To pick routes per destination, create one outbound route per destination (for example prefix 0044) with that route's tech prefix, ordered above a catch-all route. Or prepend a routing group prefix such as 444101# and let TelecomsXchange choose. Digest variant. If FreePBX sends from an IP that isn't on the account, use the digest column in step 2. With Authentication set to Outbound and Registration set to None, FreePBX sends no REGISTER and answers TelecomsXchange's 401 or 407 challenge on each INVITE with VOIP_LOGIN and VOIP_PASSWORD. The challenge realm is 174.136.44.213. NAT. If FreePBX is behind NAT, go to Settings \u2192 Asterisk SIP Settings \u2192 General SIP Settings and set External Address to your public IP (203.0.113.10) and Local Networks to your private range (for example 10.0.0.0/8). The RTP Settings on the same page show the RTP port range to forward (by default 10000 to 20000). How do I receive calls from TelecomsXchange? Calls on routes you sell, and on numbers you bought, 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 through the firewall in front of FreePBX for UDP 5060 and your RTP range. If you use the FreePBX firewall, go to Connectivity \u2192 Firewall \u2192 Networks, add 174.136.44.213/32 and set it to Trusted. 2. The trunk's Match (Permit) maps that IP to the tcxc trunk, so calls enter from-pstn and are routed by Inbound Routes. 3. Go to Connectivity \u2192 Inbound Routes \u2192 Add Inbound Route. Set DID Number to the number as it arrives, for example 14165551234, and Set Destination to an extension, ring group, queue or IVR. Click Submit and Apply Config. 4. If your route has an Outgoing Prefix or strips digits (Edit Route \u2192 Outgoing Number Translation Parameters), enter the DID Number in that format. Without Match (Permit), FreePBX doesn't recognise calls from 174.136.44.213 and challenges them with 401. TelecomsXchange doesn't answer that challenge, so the call fails. FreePBX is a PBX. As a seller, it can terminate calls to its own extensions and numbers; to carry wholesale transit traffic on to another carrier, use a softswitch such as Asterisk or FreeSWITCH configured directly. How do I receive calls on numbers I bought? Set the number's SIP Endpoint (Primary) in DID Settings to FreePBX, for example sip:14165551234@203.0.113.10:5060. TelecomsXchange sends the INVITE from 174.136.44.213, the trunk matches it, and the inbound route for 14165551234 sends it on. How do I test it? 1. On the FreePBX shell, open the Asterisk CLI with asterisk -rvvv and turn on SIP logging: pjsip set logger on. Check the trunk with pjsip show endpoint tcxc. 2. Place a call from an extension to 00447700900123. 3. In the log, look for the INVITE to 80039#447700900123 (or 80039%23447700900123), any 401 or 407 challenge, and the reply. sngrep port 5060 shows the same flow as a ladder. 4. In FreePBX, check Reports \u2192 CDR Reports. In the TelecomsXchange portal, watch the call in Live Calls and find its SIP code in Logs \u2192 CDR (Voice). What if something goes wrong? You see What to do 401 or 407 repeated, then the call fails FreePBX isn't answering the challenge. Set Authentication to Outbound and check Username, Auth username and Secret against the VoIP login and password on Edit Account. 403 Forbidden FreePBX's public IP isn't authorised and no credentials were sent. Compare the IP in pjsip set logger with the account's IP Address and Additional Allowed IPs; 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 the outbound route's prepend and prefix and the Request-URI in the log. 408 Request Timeout No reply from sip01. Check outbound UDP 5060 on your firewall and that FreePBX 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. One-way or no audio Set External Address and Local Networks in Asterisk SIP Settings, keep RTP Symmetric on, and forward the RTP range. Inbound calls rejected with 401 or 403 Match (Permit) is missing or wrong, or the FreePBX firewall blocks 174.136.44.213. Check with pjsip show identifies. Inbound call arrives but goes nowhere No inbound route matches the number as it arrives; check the DID Number format and any Outgoing Prefix on your route. References - Sangoma: PBX GUI Trunks Module user guide - Sangoma: PBX GUI Trunks Module - FreePBX community: PJSIP trunk with no registration or authentication - Asterisk: Configuring res_pjsip to work through NAT",
   "sections": [
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "- A SIP account with FreePBX's public IP, for example 203.0.113.10, or a VoIP login and password from Edit Account \u2192 Add SIP Digest Auth. In this guide VOIP_LOGIN and VOIP_PASSWORD stand for them. - A purchased route and its tech prefix from My Interconnections, for example 80039#. In this guide TECH_PREFIX stands for that value. - FreePBX 17 with the PJSIP driver on UDP port 5060 (Settings \u2192 Asterisk SIP Settings \u2192 SIP Settings [chan_pjsip]). - To sell: a route with IP Address:Port set to FreePBX, for example 203.0.113.10:5060, and the values in Interconnect Info."
    },
    {
     "id": "how-do-i-send-calls-to-telecomsxchange",
     "title": "How do I send calls to TelecomsXchange?",
     "text": "1. Go to Connectivity \u2192 Trunks \u2192 Add Trunk \u2192 Add SIP (chan_pjsip) Trunk. On the General tab, set Trunk Name to tcxc and, if you want, Maximum Channels to the concurrent calls you bought. 2. On pjsip Settings \u2192 General, enter: Field IP authentication Digest authentication Username Leave empty VOIP_LOGIN Auth username Leave empty VOIP_LOGIN Secret Leave empty VOIP_PASSWORD Authentication None Outbound Registration None None SIP Server sip01.telecomsxchange.com Same SIP Server Port 5060 Same Context from-pstn Same Transport 0.0.0.0-udp Same 3. On pjsip Settings \u2192 Advanced, set: Field Value Why Qualify Frequency 0 TelecomsXchange answers OPTIONS only within a call Match (Permit) 174.136.44.213/32 Maps inbound calls from TelecomsXchange to this trunk Direct Media No Keeps RTP through FreePBX Rewrite Contact Yes Helps behind NAT RTP Symmetric Yes Sends RTP back where it came from Force rport Yes Replies to the port the request came from 4. On pjsip Settings \u2192 Codecs, enable the codecs your route supports (g729, ulaw, alaw, as listed in the Purchased Route Confirmation email). TelecomsXchange doesn't transcode. Click Submit. 5. Go to Connectivity \u2192 Outbound Routes \u2192 Add Outbound Route. On Route Settings, name it TCXC and put tcxc in Trunk Sequence for Matched Routes. On Dial Patterns, add one row per way users dial an international number: prepend prefix match pattern Dialled Sent to TelecomsXchange 80039# 00 X. 00447700900123 80039#447700900123 80039# + X. +447700900123 80039#447700900123 FreePBX checks the prefix and match pattern, removes the prefix, then adds the prepend. Click Submit, then Apply Config. To pick routes per destination, create one outbound route per destination (for example prefix 0044) with that route's tech prefix, ordered above a catch-all route. Or prepend a routing group prefix such as 444101# and let TelecomsXchange choose. Digest variant. If FreePBX sends from an IP that isn't on the account, use the digest column in step 2. With Authentication set to Outbound and Registration set to None, FreePBX sends no REGISTER and answers TelecomsXchange's 401 or 407 challenge on each INVITE with VOIP_LOGIN and VOIP_PASSWORD. The challenge realm is 174.136.44.213. NAT. If FreePBX is behind NAT, go to Settings \u2192 Asterisk SIP Settings \u2192 General SIP Settings and set External Address to your public IP (203.0.113.10) and Local Networks to your private range (for example 10.0.0.0/8). The RTP Settings on the same page show the RTP port range to forward (by default 10000 to 20000)."
    },
    {
     "id": "how-do-i-receive-calls-from-telecomsxchange",
     "title": "How do I receive calls from TelecomsXchange?",
     "text": "Calls on routes you sell, and on numbers you bought, 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 through the firewall in front of FreePBX for UDP 5060 and your RTP range. If you use the FreePBX firewall, go to Connectivity \u2192 Firewall \u2192 Networks, add 174.136.44.213/32 and set it to Trusted. 2. The trunk's Match (Permit) maps that IP to the tcxc trunk, so calls enter from-pstn and are routed by Inbound Routes. 3. Go to Connectivity \u2192 Inbound Routes \u2192 Add Inbound Route. Set DID Number to the number as it arrives, for example 14165551234, and Set Destination to an extension, ring group, queue or IVR. Click Submit and Apply Config. 4. If your route has an Outgoing Prefix or strips digits (Edit Route \u2192 Outgoing Number Translation Parameters), enter the DID Number in that format. Without Match (Permit), FreePBX doesn't recognise calls from 174.136.44.213 and challenges them with 401. TelecomsXchange doesn't answer that challenge, so the call fails. FreePBX is a PBX. As a seller, it can terminate calls to its own extensions and numbers; to carry wholesale transit traffic on to another carrier, use a softswitch such as Asterisk or FreeSWITCH configured directly."
    },
    {
     "id": "how-do-i-receive-calls-on-numbers-i-bought",
     "title": "How do I receive calls on numbers I bought?",
     "text": "Set the number's SIP Endpoint (Primary) in DID Settings to FreePBX, for example sip:14165551234@203.0.113.10:5060. TelecomsXchange sends the INVITE from 174.136.44.213, the trunk matches it, and the inbound route for 14165551234 sends it on."
    },
    {
     "id": "how-do-i-test-it",
     "title": "How do I test it?",
     "text": "1. On the FreePBX shell, open the Asterisk CLI with asterisk -rvvv and turn on SIP logging: pjsip set logger on. Check the trunk with pjsip show endpoint tcxc. 2. Place a call from an extension to 00447700900123. 3. In the log, look for the INVITE to 80039#447700900123 (or 80039%23447700900123), any 401 or 407 challenge, and the reply. sngrep port 5060 shows the same flow as a ladder. 4. In FreePBX, check Reports \u2192 CDR Reports. In the TelecomsXchange portal, watch the call in Live Calls and find its SIP code in Logs \u2192 CDR (Voice)."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do 401 or 407 repeated, then the call fails FreePBX isn't answering the challenge. Set Authentication to Outbound and check Username, Auth username and Secret against the VoIP login and password on Edit Account. 403 Forbidden FreePBX's public IP isn't authorised and no credentials were sent. Compare the IP in pjsip set logger with the account's IP Address and Additional Allowed IPs; 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 the outbound route's prepend and prefix and the Request-URI in the log. 408 Request Timeout No reply from sip01. Check outbound UDP 5060 on your firewall and that FreePBX 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. One-way or no audio Set External Address and Local Networks in Asterisk SIP Settings, keep RTP Symmetric on, and forward the RTP range. Inbound calls rejected with 401 or 403 Match (Permit) is missing or wrong, or the FreePBX firewall blocks 174.136.44.213. Check with pjsip show identifies. Inbound call arrives but goes nowhere No inbound route matches the number as it arrives; check the DID Number format and any Outgoing Prefix on your route."
    },
    {
     "id": "references",
     "title": "References",
     "text": "- Sangoma: PBX GUI Trunks Module user guide - Sangoma: PBX GUI Trunks Module - FreePBX community: PJSIP trunk with no registration or authentication - Asterisk: Configuring res_pjsip to work through NAT"
    }
   ]
  },
  {
   "slug": "yeastar",
   "section": "integrations",
   "title": "Connect Yeastar P-Series to TelecomsXchange",
   "description": "Set up a Yeastar P-Series peer trunk to send calls to TelecomsXchange with a tech prefix by IP authentication, and route inbound calls from 174.136.44.213.",
   "summary": "On a Yeastar P-Series PBX, add a SIP trunk of type Peer Trunk (not a register trunk) to sip01.telecomsxchange.com port 5060 over UDP, and authorise the PBX's public IP on your TelecomsXchange account. Add an outbound route that strips 00 and prepends the tech prefix, so calls leave as 80039#447700900123, and inbound routes for your E.164 numbers.",
   "url": "https://help.telecomsxchange.com/integrations/yeastar/",
   "markdown_url": "https://help.telecomsxchange.com/integrations/yeastar.md",
   "updated": "2026-10-23",
   "keywords": [
    "yeastar",
    "yeastar p-series",
    "p550",
    "p560",
    "p570",
    "peer trunk",
    "sip trunk",
    "outbound route",
    "dial pattern",
    "strip",
    "prepend",
    "inbound route",
    "did pattern",
    "tech prefix",
    "ip authentication",
    "no registration",
    "pbx"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Can Yeastar register to TelecomsXchange?",
     "a": "No. TelecomsXchange is peering only and does not accept REGISTER, so use a Peer Trunk, not a Register Trunk. The PBX is recognised by its public IP address."
    },
    {
     "q": "Can a Yeastar peer trunk use the VoIP login and password?",
     "a": "Use IP authentication. A Yeastar peer trunk is IP based and carries no credentials, and a register trunk would send REGISTER, which TelecomsXchange rejects. If your public IP changes, add the new one under Additional Allowed IPs."
    },
    {
     "q": "Which trunk type do I pick on Yeastar P-Series Cloud Edition?",
     "a": "Peer Trunk (DID Based). Give TelecomsXchange the static IP address shown on the trunk page: put it in the account's IP Address or Additional Allowed IPs."
    },
    {
     "q": "Where does the tech prefix go?",
     "a": "In the outbound route's dial pattern, in Prepend: Pattern 00. with Strip 2 and Prepend 80039# turns 00447700900123 into 80039#447700900123."
    }
   ],
   "text": "Yeastar P-Series to a purchased route 1. Your Yeastar PBX: Peer trunk, identified by IP 2. TelecomsXchange (via 80039#447700900123): sip01, UDP 5060 3. Seller's route: The route you purchased This guide connects a Yeastar P-Series PBX (Appliance, Software or Cloud Edition) to TelecomsXchange with a peer 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. TelecomsXchange does not accept SIP REGISTER. Create a Peer Trunk, not a Register Trunk. The PBX is recognised by its source IP address. Before you start - A SIP account with the PBX's public IP, for example 203.0.113.10, in IP Address or Additional Allowed IPs. On Cloud Edition, use the static IP address the trunk page shows. - A purchased route and its tech prefix from My Interconnections, for example 80039#. In this guide TECH_PREFIX stands for that value. - A Yeastar P-Series PBX 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 whose SIP endpoint points at the PBX, for example sip:14165551234@203.0.113.10:5060. How do I send calls to TelecomsXchange? 1. Go to Extension and Trunk \u2192 Trunk and click Add. 2. Under Basic, enter a Name such as TelecomsXchange, set Trunk Status to Enabled, and set Select ITSP Template to General. 3. Under Detailed Configuration, enter: Field Value Trunk Type Peer Trunk (Cloud Edition: Peer Trunk (DID Based)) Transport UDP Hostname/IP sip01.telecomsxchange.com Port 5060 Domain sip01.telecomsxchange.com 4. On the Codec tab, keep only the codecs your route supports (G.729, u-law, a-law, as listed in the Purchased Route Confirmation email). TelecomsXchange doesn't transcode. 5. On the Advanced tab, leave Qualify off. TelecomsXchange answers SIP OPTIONS only within a call. Click Save and Apply. 6. Go to Call Control \u2192 Outbound Route and click Add. Enter a Name, then add one Dial Pattern per way users dial an international number: Pattern Strip Prepend Dialled Sent to TelecomsXchange 00. 2 80039# 00447700900123 80039#447700900123 +. 1 80039# +447700900123 80039#447700900123 7. Under Trunk, move TelecomsXchange to Selected. Under Extension/Extension Group, select who may use the route. Click Save and Apply, and move the route above any other route that matches the same numbers: Yeastar checks routes from the top. Yeastar may send the # as %23 in the Request-URI; TelecomsXchange decodes it. To pick routes per destination, add one outbound route per destination pattern (for example 0044.) with that route's tech prefix in Prepend. Or prepend a routing group prefix such as 444101# and let TelecomsXchange choose. NAT. If the PBX is behind NAT, set its public IP and forward the SIP port and RTP range in the PBX's network settings (System \u2192 Network \u2192 Public IP and Ports on Appliance and Software Edition), so the SDP carries 203.0.113.10 instead of a private address. 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 PBX for UDP 5060 and the RTP range, and in the PBX's own security rules if you restrict SIP by IP. 2. Yeastar matches an incoming INVITE to the peer trunk by its source IP. sip01.telecomsxchange.com resolves to 174.136.44.213, so calls land on the TelecomsXchange trunk. If they don't, set the trunk's Hostname/IP to 174.136.44.213. 3. On the trunk's Advanced tab, keep the DID taken from the Request-URI (the default), where TelecomsXchange puts the number. 4. Go to Call Control \u2192 Inbound Route and click Add. Set Name, DID Pattern to the number as it arrives (for example 14165551234), select the TelecomsXchange trunk, and choose a Default Destination such as an extension, ring group or IVR. Click Save and Apply. 5. If your route has an Outgoing Prefix or strips digits (Edit Route \u2192 Outgoing Number Translation Parameters), enter the DID Pattern in that format. Yeastar P-Series 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 PBX, 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 route for that DID sends it on. How do I test it? 1. Check the trunk under Extension and Trunk \u2192 Trunk. 2. Start a packet capture under Maintenance \u2192 Troubleshooting, then place a call from an extension to 00447700900123. 3. In the capture, look for the INVITE to 80039#447700900123 (or 80039%23447700900123) and the reply. 4. On the PBX, check the call in the call detail records. In the TelecomsXchange portal, watch it in Live Calls and find its SIP code in Logs \u2192 CDR (Voice). What if something goes wrong? You see What to do 401 or 407 from TelecomsXchange, then the call fails The PBX'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 dial pattern and the Request-URI in the capture. 408 Request Timeout No reply from sip01. Check outbound UDP 5060 on your firewall and that the PBX 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. One-way or no audio The PBX advertises a private IP, or RTP isn't forwarded. Set the public IP in the network settings and forward the RTP range. Inbound calls rejected The call isn't matched to the peer trunk. Set Hostname/IP to 174.136.44.213 and check the firewall and security rules. Inbound call arrives but goes nowhere No inbound route's DID Pattern matches the number as it arrives; check the format and any Outgoing Prefix on your route. References - Yeastar P-Series: Create a SIP peer trunk - Yeastar P-Series: SIP trunk settings - Yeastar P-Series: Set up an outbound route - Yeastar P-Series: Route inbound calls based on DID numbers - Yeastar P-Series Cloud Edition: Create a SIP peer trunk",
   "sections": [
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "- A SIP account with the PBX's public IP, for example 203.0.113.10, in IP Address or Additional Allowed IPs. On Cloud Edition, use the static IP address the trunk page shows. - A purchased route and its tech prefix from My Interconnections, for example 80039#. In this guide TECH_PREFIX stands for that value. - A Yeastar P-Series PBX 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 whose SIP endpoint points at the PBX, for example sip:14165551234@203.0.113.10:5060."
    },
    {
     "id": "how-do-i-send-calls-to-telecomsxchange",
     "title": "How do I send calls to TelecomsXchange?",
     "text": "1. Go to Extension and Trunk \u2192 Trunk and click Add. 2. Under Basic, enter a Name such as TelecomsXchange, set Trunk Status to Enabled, and set Select ITSP Template to General. 3. Under Detailed Configuration, enter: Field Value Trunk Type Peer Trunk (Cloud Edition: Peer Trunk (DID Based)) Transport UDP Hostname/IP sip01.telecomsxchange.com Port 5060 Domain sip01.telecomsxchange.com 4. On the Codec tab, keep only the codecs your route supports (G.729, u-law, a-law, as listed in the Purchased Route Confirmation email). TelecomsXchange doesn't transcode. 5. On the Advanced tab, leave Qualify off. TelecomsXchange answers SIP OPTIONS only within a call. Click Save and Apply. 6. Go to Call Control \u2192 Outbound Route and click Add. Enter a Name, then add one Dial Pattern per way users dial an international number: Pattern Strip Prepend Dialled Sent to TelecomsXchange 00. 2 80039# 00447700900123 80039#447700900123 +. 1 80039# +447700900123 80039#447700900123 7. Under Trunk, move TelecomsXchange to Selected. Under Extension/Extension Group, select who may use the route. Click Save and Apply, and move the route above any other route that matches the same numbers: Yeastar checks routes from the top. Yeastar may send the # as %23 in the Request-URI; TelecomsXchange decodes it. To pick routes per destination, add one outbound route per destination pattern (for example 0044.) with that route's tech prefix in Prepend. Or prepend a routing group prefix such as 444101# and let TelecomsXchange choose. NAT. If the PBX is behind NAT, set its public IP and forward the SIP port and RTP range in the PBX's network settings (System \u2192 Network \u2192 Public IP and Ports on Appliance and Software Edition), so the SDP carries 203.0.113.10 instead of a private address."
    },
    {
     "id": "how-do-i-receive-calls-from-telecomsxchange",
     "title": "How do I receive calls from TelecomsXchange?",
     "text": "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 PBX for UDP 5060 and the RTP range, and in the PBX's own security rules if you restrict SIP by IP. 2. Yeastar matches an incoming INVITE to the peer trunk by its source IP. sip01.telecomsxchange.com resolves to 174.136.44.213, so calls land on the TelecomsXchange trunk. If they don't, set the trunk's Hostname/IP to 174.136.44.213. 3. On the trunk's Advanced tab, keep the DID taken from the Request-URI (the default), where TelecomsXchange puts the number. 4. Go to Call Control \u2192 Inbound Route and click Add. Set Name, DID Pattern to the number as it arrives (for example 14165551234), select the TelecomsXchange trunk, and choose a Default Destination such as an extension, ring group or IVR. Click Save and Apply. 5. If your route has an Outgoing Prefix or strips digits (Edit Route \u2192 Outgoing Number Translation Parameters), enter the DID Pattern in that format. Yeastar P-Series 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."
    },
    {
     "id": "how-do-i-receive-calls-on-numbers-i-bought",
     "title": "How do I receive calls on numbers I bought?",
     "text": "Set the number's SIP Endpoint (Primary) in DID Settings to the PBX, 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 route for that DID sends it on."
    },
    {
     "id": "how-do-i-test-it",
     "title": "How do I test it?",
     "text": "1. Check the trunk under Extension and Trunk \u2192 Trunk. 2. Start a packet capture under Maintenance \u2192 Troubleshooting, then place a call from an extension to 00447700900123. 3. In the capture, look for the INVITE to 80039#447700900123 (or 80039%23447700900123) and the reply. 4. On the PBX, check the call in the call detail records. In the TelecomsXchange portal, watch it in Live Calls and find its SIP code in Logs \u2192 CDR (Voice)."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do 401 or 407 from TelecomsXchange, then the call fails The PBX'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 dial pattern and the Request-URI in the capture. 408 Request Timeout No reply from sip01. Check outbound UDP 5060 on your firewall and that the PBX 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. One-way or no audio The PBX advertises a private IP, or RTP isn't forwarded. Set the public IP in the network settings and forward the RTP range. Inbound calls rejected The call isn't matched to the peer trunk. Set Hostname/IP to 174.136.44.213 and check the firewall and security rules. Inbound call arrives but goes nowhere No inbound route's DID Pattern matches the number as it arrives; check the format and any Outgoing Prefix on your route."
    },
    {
     "id": "references",
     "title": "References",
     "text": "- Yeastar P-Series: Create a SIP peer trunk - Yeastar P-Series: SIP trunk settings - Yeastar P-Series: Set up an outbound route - Yeastar P-Series: Route inbound calls based on DID numbers - Yeastar P-Series Cloud Edition: Create a SIP peer trunk"
    }
   ]
  },
  {
   "slug": "grandstream-ucm",
   "section": "integrations",
   "title": "Connect Grandstream UCM to TelecomsXchange",
   "description": "Set up a Grandstream UCM6300 or UCM63xx peer SIP trunk to send calls to TelecomsXchange with a tech prefix, and route inbound calls from 174.136.44.213.",
   "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.",
   "url": "https://help.telecomsxchange.com/integrations/grandstream-ucm/",
   "markdown_url": "https://help.telecomsxchange.com/integrations/grandstream-ucm.md",
   "updated": "2026-10-23",
   "keywords": [
    "grandstream",
    "ucm",
    "ucm6300",
    "ucm6301",
    "ucm6302",
    "ucm6304",
    "ucm6308",
    "ucm63xx",
    "peer sip trunk",
    "voip trunks",
    "outbound routes",
    "strip",
    "prepend",
    "inbound routes",
    "did pattern",
    "heartbeat detection",
    "tech prefix",
    "ip authentication",
    "no registration",
    "pbx"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "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."
    }
   ],
   "text": "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. 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 with the UCM's public IP, for example 203.0.113.10, in IP Address or Additional Allowed IPs. - A purchased route 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 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 \u2192 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 \u2192 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. 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 prefix such as 444101# and let TelecomsXchange choose. NAT. If the UCM is behind NAT, go to PBX Settings \u2192 SIP Settings \u2192 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 \u2192 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 \u2192 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 \u2192 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 \u2192 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 \u2192 Troubleshooting \u2192 Ethernet Capture and start a capture. 2. Place a call from an extension to 00447700900123. 3. Stop the capture, open it in Wireshark (Telephony \u2192 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 \u2192 CDR. In the TelecomsXchange portal, watch it in Live Calls and find its SIP code in Logs \u2192 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 - Grandstream: UCM6xxx SIP Trunk Guide (PDF) - Grandstream: IP PBX Account Trunk Guide",
   "sections": [
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "- A SIP account with the UCM's public IP, for example 203.0.113.10, in IP Address or Additional Allowed IPs. - A purchased route 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 whose SIP endpoint points at the UCM, for example sip:14165551234@203.0.113.10:5060."
    },
    {
     "id": "how-do-i-send-calls-to-telecomsxchange",
     "title": "How do I send calls to TelecomsXchange?",
     "text": "1. Go to Extension/Trunk \u2192 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 \u2192 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. 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 prefix such as 444101# and let TelecomsXchange choose. NAT. If the UCM is behind NAT, go to PBX Settings \u2192 SIP Settings \u2192 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 \u2192 RTP Settings)."
    },
    {
     "id": "how-do-i-receive-calls-from-telecomsxchange",
     "title": "How do I receive calls from TelecomsXchange?",
     "text": "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 \u2192 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 \u2192 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 \u2192 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."
    },
    {
     "id": "how-do-i-receive-calls-on-numbers-i-bought",
     "title": "How do I receive calls on numbers I bought?",
     "text": "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."
    },
    {
     "id": "how-do-i-test-it",
     "title": "How do I test it?",
     "text": "1. Go to Maintenance \u2192 Troubleshooting \u2192 Ethernet Capture and start a capture. 2. Place a call from an extension to 00447700900123. 3. Stop the capture, open it in Wireshark (Telephony \u2192 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 \u2192 CDR. In the TelecomsXchange portal, watch it in Live Calls and find its SIP code in Logs \u2192 CDR (Voice)."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "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."
    },
    {
     "id": "references",
     "title": "References",
     "text": "- Grandstream: UCM SIP Trunks Guide - Grandstream: UCM6xxx SIP Trunk Guide (PDF) - Grandstream: IP PBX Account Trunk Guide"
    }
   ]
  },
  {
   "slug": "cisco-cube",
   "section": "integrations",
   "title": "Connect Cisco CUBE to TelecomsXchange",
   "description": "Configure Cisco CUBE on IOS XE to send CUCM calls to TelecomsXchange with a tech prefix, by IP or digest authentication, and accept calls from 174.136.44.213.",
   "summary": "On CUBE, add an outbound dial-peer to dns:sip01.telecomsxchange.com:5060 over UDP with a translation profile that replaces + or 00 with the tech prefix, and authorise CUBE's public IP or add authentication username VOIP_LOGIN on the dial-peer. Trust 174.136.44.213, match it with voice class uri and incoming uri via, and route those calls to CUCM.",
   "url": "https://help.telecomsxchange.com/integrations/cisco-cube/",
   "markdown_url": "https://help.telecomsxchange.com/integrations/cisco-cube.md",
   "updated": "2026-10-23",
   "keywords": [
    "cisco",
    "cube",
    "cisco unified border element",
    "ios xe",
    "cucm",
    "call manager",
    "dial-peer",
    "voice translation-rule",
    "translation-profile",
    "session target",
    "voice class uri",
    "incoming uri via",
    "ip address trusted list",
    "authentication username",
    "sip trunk",
    "tech prefix",
    "digest authentication",
    "debug ccsip messages"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Can CUBE register to TelecomsXchange?",
     "a": "No. TelecomsXchange is peering only and does not accept REGISTER, so don't configure credentials or a registrar under sip-ua for it. CUBE is recognised by its source IP, or by answering the digest challenge with authentication username on the dial-peer."
    },
    {
     "q": "Does CUBE send the # as %23?",
     "a": "It may. TelecomsXchange accepts the tech prefix either way: it decodes %23 back to # before matching the prefix."
    },
    {
     "q": "Do I need SIP OPTIONS keepalive on the dial-peer?",
     "a": "No. TelecomsXchange answers OPTIONS only within a call, so leave voice-class sip options-keepalive off the TelecomsXchange dial-peer or CUBE will mark it busied out."
    },
    {
     "q": "Does TelecomsXchange support TLS or SRTP to CUBE?",
     "a": "No. TelecomsXchange uses SIP over UDP with RTP. Keep TLS and SRTP on the CUCM side of CUBE if you need them, and use UDP and RTP towards TelecomsXchange."
    }
   ],
   "text": "CUCM through CUBE to a purchased route 1. CUCM: Route pattern to the CUBE SIP trunk 2. Cisco CUBE (via +447700900123): Dial-peer with translation profile 3. TelecomsXchange (via 80039#447700900123): sip01, UDP 5060 4. Seller's route: The route you purchased This guide connects Cisco Unified Communications Manager (CUCM) to TelecomsXchange through a Cisco Unified Border Element (CUBE) on IOS XE: CUCM sends calls to CUBE, CUBE rewrites the number and sends it to a purchased route, and calls from TelecomsXchange come back through CUBE to CUCM. For the full list of TelecomsXchange values, see Connect a SIP platform. TelecomsXchange does not accept SIP REGISTER. Don't add a registrar or credentials line for it under sip-ua. CUBE is recognised by its source IP or by digest authentication on the INVITE. Before you start - A SIP account with CUBE's public IP, for example 203.0.113.10, or a VoIP login and password from Edit Account \u2192 Add SIP Digest Auth. In this guide VOIP_LOGIN and VOIP_PASSWORD stand for them. - A purchased route and its tech prefix from My Interconnections, for example 80039#. In this guide TECH_PREFIX stands for that value. - A CUBE-licensed router on IOS XE (ISR 1000, ISR 4000, Catalyst 8000 or CSR 1000v/Catalyst 8000V) with a public interface, here GigabitEthernet0/0/0, and an internal interface towards CUCM, here GigabitEthernet0/0/1. The CUCM node in the examples is 10.1.1.10. - To sell: a route with IP Address:Port set to CUBE, for example 203.0.113.10:5060, and the values in Interconnect Info. How do I send calls to TelecomsXchange? 1. Set the global voice settings. The trusted list is CUBE's toll-fraud protection: it only accepts SIP from addresses listed here. text voice service voip ip address trusted list ipv4 174.136.44.213 255.255.255.255 ipv4 10.1.1.10 255.255.255.255 allow-connections sip to sip sip early-offer forced ! voice class codec 1 codec preference 1 g729r8 codec preference 2 g711ulaw codec preference 3 g711alaw TelecomsXchange passes codecs through without transcoding, so list the codecs your route supports (as in the Purchased Route Confirmation email). 2. Add the translation rule that turns the E.164 number into TECH_PREFIX + number. Each rule replaces a leading + or 00 with the tech prefix: text voice translation-rule 100 rule 1 /^\\+/ /80039#/ rule 2 /^00/ /80039#/ ! voice translation-profile TCXC-OUT translate called 100 Check it before you use it. The output should show 80039#447700900123: text test voice translation-rule 100 +447700900123 3. Add the outbound dial-peer to TelecomsXchange. It matches E.164 numbers from CUCM (\\+T), applies the translation after it's selected, and sends the INVITE to sip01 over UDP: text dial-peer voice 100 voip description Outbound to TelecomsXchange destination-pattern \\+T session protocol sipv2 session target dns:sip01.telecomsxchange.com:5060 session transport udp translation-profile outgoing TCXC-OUT voice-class codec 1 voice-class sip bind control source-interface GigabitEthernet0/0/0 voice-class sip bind media source-interface GigabitEthernet0/0/0 dtmf-relay rtp-nte no vad If CUCM sends international numbers with 00 instead of +, change the destination pattern to 00T. Don't add voice-class sip options-keepalive to this dial-peer: TelecomsXchange answers OPTIONS only within a call. Digest variant. If CUBE sends from an IP that isn't on the account, add the VoIP login and password to the dial-peer. CUBE answers TelecomsXchange's 401 or 407 challenge with them; the challenge realm is 174.136.44.213: text dial-peer voice 100 voip authentication username VOIP_LOGIN password 0 VOIP_PASSWORD realm 174.136.44.213 On older releases without per-dial-peer authentication, put the same authentication username ... password 0 ... realm 174.136.44.213 line under sip-ua instead. To pick routes per destination, add one dial-peer and translation rule per route, for example destination-pattern \\+44T with rule 1 /^\\+/ /80039#/, and a catch-all dial-peer with a routing group prefix such as 444101#. 4. Add the inbound dial-peer for calls from CUCM, so CUBE applies the right settings on that leg: text voice class uri CUCM sip host ipv4:10.1.1.10 ! dial-peer voice 110 voip description Inbound from CUCM session protocol sipv2 incoming uri via CUCM voice-class codec 1 voice-class sip bind control source-interface GigabitEthernet0/0/1 voice-class sip bind media source-interface GigabitEthernet0/0/1 dtmf-relay rtp-nte no vad 5. In CUCM Administration, point calls at CUBE: - Device \u2192 Trunk \u2192 Add New, type SIP Trunk, with Destination Address 10.1.1.20 (CUBE's inside address) and port 5060. - Call Routing \u2192 Route/Hunt \u2192 Route Pattern: add \\+! (or 00! if your dial plan isn't globalised) pointing at the CUBE trunk or a route list containing it. - Send the called number as E.164 with +, so it matches destination-pattern \\+T on CUBE. How do I receive calls from TelecomsXchange? Calls on routes you sell, and on numbers you bought, come from 174.136.44.213 over UDP, from source ports 5060 to 5072, with the number in E.164 format without +, such as 14165551234. 1. Allow 174.136.44.213 on any firewall or ACL in front of CUBE for UDP 5060 and the RTP range (CUBE uses UDP 8000 to 48198 by default). 174.136.44.213 is already in the trusted list from step 1. 2. Match TelecomsXchange with a URI class on the Via header, and send those calls to CUCM: text voice class uri TCXC sip host ipv4:174.136.44.213 ! dial-peer voice 200 voip description Inbound from TelecomsXchange session protocol sipv2 incoming uri via TCXC voice-class codec 1 voice-class sip bind control source-interface GigabitEthernet0/0/0 voice-class sip bind media source-interface GigabitEthernet0/0/0 dtmf-relay rtp-nte no vad ! dial-peer voice 210 voip description Outbound to CUCM destination-pattern [1-9]T session protocol sipv2 session target ipv4:10.1.1.10:5060 session transport udp voice-class codec 1 voice-class sip bind control source-interface GigabitEthernet0/0/1 voice-class sip bind media source-interface GigabitEthernet0/0/1 dtmf-relay rtp-nte no vad 3. On the CUCM SIP trunk to CUBE, set the Calling Search Space for inbound calls to one that reaches your directory numbers, and use Significant Digits or a called-party transformation to map 14165551234 to the extension. If your route has an Outgoing Prefix or strips digits (Edit Route \u2192 Outgoing Number Translation Parameters), match the number in that format. Keep 174.136.44.213 and your CUCM nodes as the only entries in ip address trusted list. Calls from any other address are rejected before they reach a dial-peer, which stops toll fraud on CUBE's public interface. How do I receive calls on numbers I bought? Set the number's SIP Endpoint (Primary) in DID Settings to CUBE, for example sip:14165551234@203.0.113.10:5060. TelecomsXchange sends the INVITE from 174.136.44.213, dial-peer 200 matches it, and dial-peer 210 sends it to CUCM. How do I test it? 1. Turn on SIP debugging: debug ccsip messages (with terminal monitor on an SSH session). Add debug voice translation to see the rewrite. 2. Place a call from a CUCM phone to +447700900123. 3. In the debug, look for the INVITE to 80039#447700900123 (or 80039%23447700900123) and the reply. show call active voice brief shows the call legs and the dial-peers used; show dial-peer voice summary shows whether dial-peer 100 is up. 4. In the TelecomsXchange portal, watch the call in Live Calls and find its SIP code in Logs \u2192 CDR (Voice). Turn debugging off with undebug all. What if something goes wrong? You see What to do 401 or 407 repeated, then the call fails CUBE isn't answering the challenge. Add authentication username VOIP_LOGIN password 0 VOIP_PASSWORD realm 174.136.44.213 to the dial-peer and check the login on Edit Account. 403 Forbidden CUBE's public IP isn't authorised and no credentials were sent. Compare the source IP in the debug with the account's IP Address and Additional Allowed IPs; check the account isn't blocked or out of balance. 404 Not Found Missing or wrong tech prefix. Run test voice translation-rule 100 +447700900123, and check translation-profile outgoing TCXC-OUT is on dial-peer 100. 408 Request Timeout No reply from sip01. Check outbound UDP 5060 and that the router resolves the name (ip name-server and ip domain lookup). 503 Service Unavailable The route is blocked or failed on the seller's side. Check My Interconnections; try another route or a routing group. One-way or no audio Media isn't bound to the public interface, or RTP is blocked. Check voice-class sip bind media on both dial-peers and the RTP range on the firewall. Inbound calls rejected with 403 174.136.44.213 isn't in ip address trusted list. Inbound call matches the wrong dial-peer Check show voice class uri TCXC and that dial-peer 200 has incoming uri via TCXC; the default dial-peer 0 doesn't apply your codec and DTMF settings. References - Cisco: CUBE configuration guide - Cisco: Number translation using voice translation profiles - Cisco: Voice translation rules - Cisco: CUBE configuration guide, Configure Dial Peers (IOS XE 17.6 onwards)",
   "sections": [
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "- A SIP account with CUBE's public IP, for example 203.0.113.10, or a VoIP login and password from Edit Account \u2192 Add SIP Digest Auth. In this guide VOIP_LOGIN and VOIP_PASSWORD stand for them. - A purchased route and its tech prefix from My Interconnections, for example 80039#. In this guide TECH_PREFIX stands for that value. - A CUBE-licensed router on IOS XE (ISR 1000, ISR 4000, Catalyst 8000 or CSR 1000v/Catalyst 8000V) with a public interface, here GigabitEthernet0/0/0, and an internal interface towards CUCM, here GigabitEthernet0/0/1. The CUCM node in the examples is 10.1.1.10. - To sell: a route with IP Address:Port set to CUBE, for example 203.0.113.10:5060, and the values in Interconnect Info."
    },
    {
     "id": "how-do-i-send-calls-to-telecomsxchange",
     "title": "How do I send calls to TelecomsXchange?",
     "text": "1. Set the global voice settings. The trusted list is CUBE's toll-fraud protection: it only accepts SIP from addresses listed here. text voice service voip ip address trusted list ipv4 174.136.44.213 255.255.255.255 ipv4 10.1.1.10 255.255.255.255 allow-connections sip to sip sip early-offer forced ! voice class codec 1 codec preference 1 g729r8 codec preference 2 g711ulaw codec preference 3 g711alaw TelecomsXchange passes codecs through without transcoding, so list the codecs your route supports (as in the Purchased Route Confirmation email). 2. Add the translation rule that turns the E.164 number into TECH_PREFIX + number. Each rule replaces a leading + or 00 with the tech prefix: text voice translation-rule 100 rule 1 /^\\+/ /80039#/ rule 2 /^00/ /80039#/ ! voice translation-profile TCXC-OUT translate called 100 Check it before you use it. The output should show 80039#447700900123: text test voice translation-rule 100 +447700900123 3. Add the outbound dial-peer to TelecomsXchange. It matches E.164 numbers from CUCM (\\+T), applies the translation after it's selected, and sends the INVITE to sip01 over UDP: text dial-peer voice 100 voip description Outbound to TelecomsXchange destination-pattern \\+T session protocol sipv2 session target dns:sip01.telecomsxchange.com:5060 session transport udp translation-profile outgoing TCXC-OUT voice-class codec 1 voice-class sip bind control source-interface GigabitEthernet0/0/0 voice-class sip bind media source-interface GigabitEthernet0/0/0 dtmf-relay rtp-nte no vad If CUCM sends international numbers with 00 instead of +, change the destination pattern to 00T. Don't add voice-class sip options-keepalive to this dial-peer: TelecomsXchange answers OPTIONS only within a call. Digest variant. If CUBE sends from an IP that isn't on the account, add the VoIP login and password to the dial-peer. CUBE answers TelecomsXchange's 401 or 407 challenge with them; the challenge realm is 174.136.44.213: text dial-peer voice 100 voip authentication username VOIP_LOGIN password 0 VOIP_PASSWORD realm 174.136.44.213 On older releases without per-dial-peer authentication, put the same authentication username ... password 0 ... realm 174.136.44.213 line under sip-ua instead. To pick routes per destination, add one dial-peer and translation rule per route, for example destination-pattern \\+44T with rule 1 /^\\+/ /80039#/, and a catch-all dial-peer with a routing group prefix such as 444101#. 4. Add the inbound dial-peer for calls from CUCM, so CUBE applies the right settings on that leg: text voice class uri CUCM sip host ipv4:10.1.1.10 ! dial-peer voice 110 voip description Inbound from CUCM session protocol sipv2 incoming uri via CUCM voice-class codec 1 voice-class sip bind control source-interface GigabitEthernet0/0/1 voice-class sip bind media source-interface GigabitEthernet0/0/1 dtmf-relay rtp-nte no vad 5. In CUCM Administration, point calls at CUBE: - Device \u2192 Trunk \u2192 Add New, type SIP Trunk, with Destination Address 10.1.1.20 (CUBE's inside address) and port 5060. - Call Routing \u2192 Route/Hunt \u2192 Route Pattern: add \\+! (or 00! if your dial plan isn't globalised) pointing at the CUBE trunk or a route list containing it. - Send the called number as E.164 with +, so it matches destination-pattern \\+T on CUBE."
    },
    {
     "id": "how-do-i-receive-calls-from-telecomsxchange",
     "title": "How do I receive calls from TelecomsXchange?",
     "text": "Calls on routes you sell, and on numbers you bought, come from 174.136.44.213 over UDP, from source ports 5060 to 5072, with the number in E.164 format without +, such as 14165551234. 1. Allow 174.136.44.213 on any firewall or ACL in front of CUBE for UDP 5060 and the RTP range (CUBE uses UDP 8000 to 48198 by default). 174.136.44.213 is already in the trusted list from step 1. 2. Match TelecomsXchange with a URI class on the Via header, and send those calls to CUCM: text voice class uri TCXC sip host ipv4:174.136.44.213 ! dial-peer voice 200 voip description Inbound from TelecomsXchange session protocol sipv2 incoming uri via TCXC voice-class codec 1 voice-class sip bind control source-interface GigabitEthernet0/0/0 voice-class sip bind media source-interface GigabitEthernet0/0/0 dtmf-relay rtp-nte no vad ! dial-peer voice 210 voip description Outbound to CUCM destination-pattern [1-9]T session protocol sipv2 session target ipv4:10.1.1.10:5060 session transport udp voice-class codec 1 voice-class sip bind control source-interface GigabitEthernet0/0/1 voice-class sip bind media source-interface GigabitEthernet0/0/1 dtmf-relay rtp-nte no vad 3. On the CUCM SIP trunk to CUBE, set the Calling Search Space for inbound calls to one that reaches your directory numbers, and use Significant Digits or a called-party transformation to map 14165551234 to the extension. If your route has an Outgoing Prefix or strips digits (Edit Route \u2192 Outgoing Number Translation Parameters), match the number in that format. Keep 174.136.44.213 and your CUCM nodes as the only entries in ip address trusted list. Calls from any other address are rejected before they reach a dial-peer, which stops toll fraud on CUBE's public interface."
    },
    {
     "id": "how-do-i-receive-calls-on-numbers-i-bought",
     "title": "How do I receive calls on numbers I bought?",
     "text": "Set the number's SIP Endpoint (Primary) in DID Settings to CUBE, for example sip:14165551234@203.0.113.10:5060. TelecomsXchange sends the INVITE from 174.136.44.213, dial-peer 200 matches it, and dial-peer 210 sends it to CUCM."
    },
    {
     "id": "how-do-i-test-it",
     "title": "How do I test it?",
     "text": "1. Turn on SIP debugging: debug ccsip messages (with terminal monitor on an SSH session). Add debug voice translation to see the rewrite. 2. Place a call from a CUCM phone to +447700900123. 3. In the debug, look for the INVITE to 80039#447700900123 (or 80039%23447700900123) and the reply. show call active voice brief shows the call legs and the dial-peers used; show dial-peer voice summary shows whether dial-peer 100 is up. 4. In the TelecomsXchange portal, watch the call in Live Calls and find its SIP code in Logs \u2192 CDR (Voice). Turn debugging off with undebug all."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do 401 or 407 repeated, then the call fails CUBE isn't answering the challenge. Add authentication username VOIP_LOGIN password 0 VOIP_PASSWORD realm 174.136.44.213 to the dial-peer and check the login on Edit Account. 403 Forbidden CUBE's public IP isn't authorised and no credentials were sent. Compare the source IP in the debug with the account's IP Address and Additional Allowed IPs; check the account isn't blocked or out of balance. 404 Not Found Missing or wrong tech prefix. Run test voice translation-rule 100 +447700900123, and check translation-profile outgoing TCXC-OUT is on dial-peer 100. 408 Request Timeout No reply from sip01. Check outbound UDP 5060 and that the router resolves the name (ip name-server and ip domain lookup). 503 Service Unavailable The route is blocked or failed on the seller's side. Check My Interconnections; try another route or a routing group. One-way or no audio Media isn't bound to the public interface, or RTP is blocked. Check voice-class sip bind media on both dial-peers and the RTP range on the firewall. Inbound calls rejected with 403 174.136.44.213 isn't in ip address trusted list. Inbound call matches the wrong dial-peer Check show voice class uri TCXC and that dial-peer 200 has incoming uri via TCXC; the default dial-peer 0 doesn't apply your codec and DTMF settings."
    },
    {
     "id": "references",
     "title": "References",
     "text": "- Cisco: CUBE configuration guide - Cisco: Number translation using voice translation profiles - Cisco: Voice translation rules - Cisco: CUBE configuration guide, Configure Dial Peers (IOS XE 17.6 onwards)"
    }
   ]
  },
  {
   "slug": "vicidial",
   "section": "integrations",
   "title": "Connect VICIdial to TelecomsXchange",
   "description": "Add TelecomsXchange as a VICIdial carrier with no registration, prepend the tech prefix in the dialplan entry, and keep outbound dialing within 10 CPS per IP.",
   "summary": "In Admin \u2192 Carriers, add a carrier with a blank Registration String, an account entry for sip01.telecomsxchange.com on UDP 5060, and a dialplan entry that strips the campaign Dial Prefix and dials TECH_PREFIX + E.164 number. Authorise the dialer's public IP on the TelecomsXchange account (10 calls per second per IP), and route numbers you bought with Admin \u2192 Inbound DIDs.",
   "url": "https://help.telecomsxchange.com/integrations/vicidial/",
   "markdown_url": "https://help.telecomsxchange.com/integrations/vicidial.md",
   "updated": "2026-10-23",
   "keywords": [
    "vicidial",
    "vicibox",
    "asterisk",
    "carrier",
    "account entry",
    "dialplan entry",
    "globals string",
    "registration string",
    "dial prefix",
    "campaign",
    "predictive dialer",
    "auto dial level",
    "cps",
    "calls per second",
    "inbound did",
    "trunkinbound",
    "tech prefix",
    "ip authentication",
    "no registration"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Can VICIdial register to TelecomsXchange?",
     "a": "No. TelecomsXchange is peering only and does not accept REGISTER, so leave the carrier's Registration String blank. VICIdial is recognised by the server's source IP, or by digest credentials in the account entry."
    },
    {
     "q": "How many calls per second can VICIdial send?",
     "a": "10 calls per second for each authorised IP address. Edit Account shows it as IP CPS Limit. Pace the dialer below it, or authorise more dialer servers' IPs; contact support@telecomsxchange.com to raise it."
    },
    {
     "q": "Where does the tech prefix go?",
     "a": "In the carrier's Dialplan Entry, in the Dial() string: the campaign dials 9447700900123, and the entry strips the 9 and dials SIP/80039#447700900123@tcxc."
    },
    {
     "q": "I have several dialer servers. Do I need several carriers?",
     "a": "No. Set the carrier's Server IP to 0.0.0.0 so it is loaded on all servers, and authorise every server's public IP on the account under Additional Allowed IPs."
    }
   ],
   "text": "VICIdial campaign to a purchased route 1. VICIdial campaign: Dial Prefix 9, auto-dial 2. Carrier entry (via 9447700900123): Dialplan entry adds the tech prefix 3. TelecomsXchange (via 80039#447700900123): sip01, UDP 5060, 10 CPS per IP 4. Seller's route: The route you purchased This guide connects VICIdial, the open-source contact-centre suite that runs on Asterisk, to TelecomsXchange: outbound campaign and manual calls to a purchased route, and inbound calls on numbers you bought. For the full list of TelecomsXchange values, see Connect a SIP platform. VICIdial writes the carrier into Asterisk for you; the underlying Asterisk settings are the same as in Connect Asterisk. TelecomsXchange does not accept SIP REGISTER. Leave the carrier's Registration String empty. VICIdial is recognised by its server's source IP or by digest authentication on the INVITE. Before you start - A SIP account with the public IP of each VICIdial server that places calls, for example 203.0.113.10 (extra servers go under Additional Allowed IPs), or a VoIP login and password from Edit Account \u2192 Add SIP Digest Auth. - A purchased route and its tech prefix from My Interconnections, for example 80039#. - VICIdial admin access with permission to modify carriers, and leads loaded with a country phone code so VICIdial dials full international numbers. - The examples use the SIP/ channel driver that ViciBox installs. If your build uses PJSIP for carriers, use the endpoint, aor and identify sections from the Asterisk guide in the account entry instead. How do I send calls to TelecomsXchange? 1. Go to Admin \u2192 Carriers \u2192 Add A New Carrier. Set Carrier ID to TCXC, Carrier Name to TelecomsXchange, Protocol to SIP, Server IP to your dialer (or 0.0.0.0 for all servers), and Active to Y. Leave Registration String blank. 2. In Account Entry, define the peer. There is no register line: ini [tcxc] type=peer host=sip01.telecomsxchange.com port=5060 transport=udp disallow=all allow=g729 allow=ulaw allow=alaw ; TCXC passes codecs through: offer what the route supports dtmfmode=rfc2833 context=trunkinbound ; VICIdial's inbound DID context insecure=port,invite ; TCXC sends from source ports 5060-5072 nat=force_rport,comedia canreinvite=no qualify=no ; TCXC answers OPTIONS only within a call ;defaultuser=VOIP_LOGIN ; digest variant (below) ;secret=VOIP_PASSWORD 3. In Globals String, name the trunk: ini TCXC=SIP/tcxc 4. In Dialplan Entry, match the campaign's Dial Prefix (9 here), strip it, and dial the tech prefix in front of the number. VICIdial dials the Dial Prefix, then the lead's phone code, then the phone number, so 9 + 44 + 7700900123 arrives as 9447700900123. Replace 80039# with your route's TECH_PREFIX: ini exten => _9X.,1,AGI(agi://127.0.0.1:4577/call_log) exten => _9X.,n,Dial(${TCXC}/80039#${EXTEN:1},60,tTo) exten => _9X.,n,Hangup() If your campaigns dial 011 before non-North-American numbers, add a pattern that strips it too: exten => _9011X.,n,Dial(${TCXC}/80039#${EXTEN:4},60,tTo) with the same AGI and Hangup lines. 5. Open the campaign (Campaigns \u2192 Campaign ID \u2192 Detail) and set Dial Prefix to 9. Use a different prefix digit, and a second carrier dialplan entry, for each route or routing group such as 444101# you want campaigns to choose between. Digest variant. If a dialer sends from an IP that isn't on the account, uncomment defaultuser and secret in the account entry and fill in the account's VoIP Login and VoIP Password. Asterisk answers TelecomsXchange's 401 or 407 challenge with them. How fast can the dialer send? TelecomsXchange accepts 10 calls per second per authorised IP; Edit Account shows it as IP CPS Limit (read-only). Predictive campaigns burst well above that when many agents go ready at once, and the excess is rejected. - Pace each server: cap simultaneous calls with Max VICIDIAL Trunks in Admin \u2192 Servers and Max Trunks in the campaign, and raise the Auto Dial Level gradually. Trunk caps limit concurrent calls rather than the rate, so check the attempt rate in Live Calls while a campaign ramps up. - Agents \u00d7 Auto Dial Level is roughly the number of lines VICIdial tries to keep ringing; when many agents go ready together, it places those calls in a burst. - To go beyond 10 calls per second, spread campaigns over several dialer servers, each with its own public IP added under Additional Allowed IPs, or ask support@telecomsxchange.com to raise the limit. See Create your first account. How do I receive calls from TelecomsXchange? Calls on numbers you bought (and on any route 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 dialer's firewall for UDP 5060, and open the RTP range (by default 10000 to 20000). 2. The account entry above matches that IP (host=sip01.telecomsxchange.com resolves to it) and puts calls in trunkinbound, where VICIdial looks up the dialled number in its DID list. How do I receive calls on numbers I bought? 1. On TelecomsXchange, set the number's SIP Endpoint (Primary) in DID Settings to the dialer, for example sip:14165551234@203.0.113.10:5060. 2. In VICIdial, go to Admin \u2192 Inbound \u2192 Add A New DID. Set DID Extension to the number exactly as it arrives, 14165551234, and choose the DID Route: IN_GROUP to queue it to agents, or EXTEN, VOICEMAIL, PHONE or AGENT. 3. If you use in-groups, assign the in-group to the campaign under Allowed Inbound Groups so agents receive the calls. How do I test it? 1. Log in an agent and place a Manual Dial call to a number covered by the route. 2. On the dialer, run asterisk -rvvv and sip set debug peer tcxc (or sngrep port 5060 on the shell). Look for the INVITE to 80039#447700900123 (or 80039%23447700900123) and the reply. 3. In the portal, watch the call in Live Calls and find its SIP code in Logs \u2192 CDR (Voice). 4. In VICIdial, the carrier log (Reports, when enabled under System Settings) shows the SIP hangup cause for each attempt. What if something goes wrong? You see What to do 401 or 407 repeated, then the call fails The dialer isn't sending credentials. Fill in defaultuser and secret in the account entry and check them against Edit Account. 403 Forbidden The server's public IP isn't authorised. Compare the source IP in sip set debug with the account's IP Address and Additional Allowed IPs; check the account isn't blocked or out of balance. 404 Not Found Missing or wrong tech prefix, or the Dial Prefix or 011 was left in the number. Check the Request-URI in the trace against the dialplan entry. Many calls fail at once during a campaign The dialer is above 10 calls per second for that IP. Lower the Auto Dial Level or Max Trunks, or add servers with their own authorised IPs. 408 Request Timeout No reply from sip01. Check outbound UDP 5060 on the firewall and DNS on the dialer. 503 Service Unavailable The route is blocked or failed on the seller's side. Check My Interconnections; try another route or a routing group. One-way or no audio Set externip and localnet in sip.conf (or the PJSIP transport) behind NAT, and open the RTP range. Inbound call goes to the wrong place No DID matches the E.164 number, so VICIdial uses the default DID. Add the number in Admin \u2192 Inbound. References - VICIdial Manager Manual (vicidial.org) - VICIdial documentation index and ViciBox - Telnyx: configure a VICIdial carrier - Asterisk chan_sip / sip.conf reference",
   "sections": [
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "- A SIP account with the public IP of each VICIdial server that places calls, for example 203.0.113.10 (extra servers go under Additional Allowed IPs), or a VoIP login and password from Edit Account \u2192 Add SIP Digest Auth. - A purchased route and its tech prefix from My Interconnections, for example 80039#. - VICIdial admin access with permission to modify carriers, and leads loaded with a country phone code so VICIdial dials full international numbers. - The examples use the SIP/ channel driver that ViciBox installs. If your build uses PJSIP for carriers, use the endpoint, aor and identify sections from the Asterisk guide in the account entry instead."
    },
    {
     "id": "how-do-i-send-calls-to-telecomsxchange",
     "title": "How do I send calls to TelecomsXchange?",
     "text": "1. Go to Admin \u2192 Carriers \u2192 Add A New Carrier. Set Carrier ID to TCXC, Carrier Name to TelecomsXchange, Protocol to SIP, Server IP to your dialer (or 0.0.0.0 for all servers), and Active to Y. Leave Registration String blank. 2. In Account Entry, define the peer. There is no register line: ini [tcxc] type=peer host=sip01.telecomsxchange.com port=5060 transport=udp disallow=all allow=g729 allow=ulaw allow=alaw ; TCXC passes codecs through: offer what the route supports dtmfmode=rfc2833 context=trunkinbound ; VICIdial's inbound DID context insecure=port,invite ; TCXC sends from source ports 5060-5072 nat=force_rport,comedia canreinvite=no qualify=no ; TCXC answers OPTIONS only within a call ;defaultuser=VOIP_LOGIN ; digest variant (below) ;secret=VOIP_PASSWORD 3. In Globals String, name the trunk: ini TCXC=SIP/tcxc 4. In Dialplan Entry, match the campaign's Dial Prefix (9 here), strip it, and dial the tech prefix in front of the number. VICIdial dials the Dial Prefix, then the lead's phone code, then the phone number, so 9 + 44 + 7700900123 arrives as 9447700900123. Replace 80039# with your route's TECH_PREFIX: ini exten => _9X.,1,AGI(agi://127.0.0.1:4577/call_log) exten => _9X.,n,Dial(${TCXC}/80039#${EXTEN:1},60,tTo) exten => _9X.,n,Hangup() If your campaigns dial 011 before non-North-American numbers, add a pattern that strips it too: exten => _9011X.,n,Dial(${TCXC}/80039#${EXTEN:4},60,tTo) with the same AGI and Hangup lines. 5. Open the campaign (Campaigns \u2192 Campaign ID \u2192 Detail) and set Dial Prefix to 9. Use a different prefix digit, and a second carrier dialplan entry, for each route or routing group such as 444101# you want campaigns to choose between. Digest variant. If a dialer sends from an IP that isn't on the account, uncomment defaultuser and secret in the account entry and fill in the account's VoIP Login and VoIP Password. Asterisk answers TelecomsXchange's 401 or 407 challenge with them. How fast can the dialer send? TelecomsXchange accepts 10 calls per second per authorised IP; Edit Account shows it as IP CPS Limit (read-only). Predictive campaigns burst well above that when many agents go ready at once, and the excess is rejected. - Pace each server: cap simultaneous calls with Max VICIDIAL Trunks in Admin \u2192 Servers and Max Trunks in the campaign, and raise the Auto Dial Level gradually. Trunk caps limit concurrent calls rather than the rate, so check the attempt rate in Live Calls while a campaign ramps up. - Agents \u00d7 Auto Dial Level is roughly the number of lines VICIdial tries to keep ringing; when many agents go ready together, it places those calls in a burst. - To go beyond 10 calls per second, spread campaigns over several dialer servers, each with its own public IP added under Additional Allowed IPs, or ask support@telecomsxchange.com to raise the limit. See Create your first account."
    },
    {
     "id": "how-do-i-receive-calls-from-telecomsxchange",
     "title": "How do I receive calls from TelecomsXchange?",
     "text": "Calls on numbers you bought (and on any route 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 dialer's firewall for UDP 5060, and open the RTP range (by default 10000 to 20000). 2. The account entry above matches that IP (host=sip01.telecomsxchange.com resolves to it) and puts calls in trunkinbound, where VICIdial looks up the dialled number in its DID list."
    },
    {
     "id": "how-do-i-receive-calls-on-numbers-i-bought",
     "title": "How do I receive calls on numbers I bought?",
     "text": "1. On TelecomsXchange, set the number's SIP Endpoint (Primary) in DID Settings to the dialer, for example sip:14165551234@203.0.113.10:5060. 2. In VICIdial, go to Admin \u2192 Inbound \u2192 Add A New DID. Set DID Extension to the number exactly as it arrives, 14165551234, and choose the DID Route: IN_GROUP to queue it to agents, or EXTEN, VOICEMAIL, PHONE or AGENT. 3. If you use in-groups, assign the in-group to the campaign under Allowed Inbound Groups so agents receive the calls."
    },
    {
     "id": "how-do-i-test-it",
     "title": "How do I test it?",
     "text": "1. Log in an agent and place a Manual Dial call to a number covered by the route. 2. On the dialer, run asterisk -rvvv and sip set debug peer tcxc (or sngrep port 5060 on the shell). Look for the INVITE to 80039#447700900123 (or 80039%23447700900123) and the reply. 3. In the portal, watch the call in Live Calls and find its SIP code in Logs \u2192 CDR (Voice). 4. In VICIdial, the carrier log (Reports, when enabled under System Settings) shows the SIP hangup cause for each attempt."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do 401 or 407 repeated, then the call fails The dialer isn't sending credentials. Fill in defaultuser and secret in the account entry and check them against Edit Account. 403 Forbidden The server's public IP isn't authorised. Compare the source IP in sip set debug with the account's IP Address and Additional Allowed IPs; check the account isn't blocked or out of balance. 404 Not Found Missing or wrong tech prefix, or the Dial Prefix or 011 was left in the number. Check the Request-URI in the trace against the dialplan entry. Many calls fail at once during a campaign The dialer is above 10 calls per second for that IP. Lower the Auto Dial Level or Max Trunks, or add servers with their own authorised IPs. 408 Request Timeout No reply from sip01. Check outbound UDP 5060 on the firewall and DNS on the dialer. 503 Service Unavailable The route is blocked or failed on the seller's side. Check My Interconnections; try another route or a routing group. One-way or no audio Set externip and localnet in sip.conf (or the PJSIP transport) behind NAT, and open the RTP range. Inbound call goes to the wrong place No DID matches the E.164 number, so VICIdial uses the default DID. Add the number in Admin \u2192 Inbound."
    },
    {
     "id": "references",
     "title": "References",
     "text": "- VICIdial Manager Manual (vicidial.org) - VICIdial documentation index and ViciBox - Telnyx: configure a VICIdial carrier - Asterisk chan_sip / sip.conf reference"
    }
   ]
  },
  {
   "slug": "genesys-cloud",
   "section": "integrations",
   "title": "Connect Genesys Cloud to TelecomsXchange",
   "description": "Create a Genesys Cloud BYOC Cloud external trunk over UDP to TelecomsXchange, with digest authentication, a tech-prefix transformation and an outbound route.",
   "summary": "Create a Generic BYOC Carrier external trunk with Protocol UDP, SIP server sip01.telecomsxchange.com port 5060, Digest Authentication with the account's VoIP login and password, and a called-address transformation that turns +447700900123 into TECH_PREFIX + 447700900123. Add it to a site's outbound route; for inbound, allow 174.136.44.213 and point numbers you bought at the trunk's inbound FQDN.",
   "url": "https://help.telecomsxchange.com/integrations/genesys-cloud/",
   "markdown_url": "https://help.telecomsxchange.com/integrations/genesys-cloud.md",
   "updated": "2026-10-23",
   "keywords": [
    "genesys cloud",
    "purecloud",
    "byoc cloud",
    "bring your own carrier",
    "external trunk",
    "generic byoc carrier",
    "sip trunk",
    "digest authentication",
    "inbound sip termination identifier",
    "outbound route",
    "number plan",
    "address transformation",
    "sip access control",
    "tech prefix",
    "no registration",
    "udp"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Can Genesys Cloud register to TelecomsXchange?",
     "a": "No. TelecomsXchange is peering only and does not accept REGISTER. A BYOC Cloud trunk doesn't register either: it sends INVITEs and answers the 401 or 407 challenge with the digest credentials you enter."
    },
    {
     "q": "Does Genesys Cloud need TLS for BYOC Cloud?",
     "a": "No. A BYOC Cloud trunk can use UDP, TCP or TLS, and Genesys says UDP is the usual choice. TelecomsXchange supports only UDP, so set Protocol to UDP; the trunk to TelecomsXchange is not encrypted."
    },
    {
     "q": "Should I use IP authentication or digest?",
     "a": "Digest. Genesys Cloud sends calls from a range of regional addresses, so a VoIP login and password is simpler than keeping every address under Additional Allowed IPs."
    },
    {
     "q": "Where does the tech prefix go?",
     "a": "In the trunk's called-address transformation: Genesys sends +447700900123, and the transformation rewrites it to 80039#447700900123 before the INVITE leaves."
    }
   ],
   "text": "Genesys Cloud to a purchased route 1. Genesys Cloud: Site outbound route 2. BYOC Cloud trunk (via +447700900123): Generic BYOC Carrier, UDP, digest 3. TelecomsXchange (via 80039#447700900123): sip01, UDP 5060 4. Seller's route: The route you purchased This guide connects Genesys Cloud CX to TelecomsXchange with a BYOC Cloud (Bring Your Own Carrier) external trunk: outbound calls from your contact centre to a purchased route, and inbound calls on numbers you bought. For the full list of TelecomsXchange values, see Connect a SIP platform. TelecomsXchange does not accept SIP REGISTER, and supports SIP over UDP only: no TCP, TLS or SRTP. Genesys Cloud BYOC Cloud accepts UDP, so it connects directly. If your security policy requires TLS on every carrier trunk, put an SBC you run between the two: Genesys Cloud \u2192 TLS \u2192 your SBC \u2192 UDP \u2192 TelecomsXchange. TelecomsXchange can't be the TLS endpoint. Before you start - A SIP account with a VoIP login and password from Edit Account \u2192 Add SIP Digest Auth. Genesys Cloud has no fixed source IP for you to authorise, so digest is the practical choice. - A purchased route and its tech prefix from My Interconnections, for example 80039#. - A Genesys Cloud org with a BYOC Cloud entitlement and the Telephony > Plugin > All permission, and a site with a number plan (BYOC Cloud orgs get a default cloud site). - To receive calls: phone numbers bought on TelecomsXchange, added to Genesys Cloud as BYOC numbers. How do I send calls to TelecomsXchange? 1. In Genesys Cloud admin, go to Telephony \u2192 Trunks \u2192 External Trunks and choose Create New. Enter a name, for example TelecomsXchange, and set Type to BYOC Carrier \u2192 Generic BYOC Carrier. Leave Trunk State as In-Service. 2. Set Protocol to UDP. 3. Under Inbound / Termination, enter an Inbound SIP Termination Identifier, for example acme-tcxc. Genesys builds the trunk's inbound FQDN from it; you need it for inbound calls below. 4. Under Outbound, in SIP Servers or Proxies, add Hostname or IP address sip01.telecomsxchange.com and Port 5060. 5. Turn Digest Authentication on and fill in: Field Value Realm 174.136.44.213 (the realm TelecomsXchange uses in its challenge) User Name VOIP_LOGIN, the account's VoIP Login Password VOIP_PASSWORD, the account's VoIP Password 6. Under Calling, set the Caller Address (in E.164) and Caller Name you want to present when a call has none. 7. Add the tech prefix. Under the trunk's called-address Address Transformation, keep Address Omit + Prefix enabled (the default) so the + is dropped, and add an entry that puts TECH_PREFIX in front of the number: Field Value Match Regular Expression ^\\+?([0-9]+)$ Format Regular Expression 80039#$1 With it, +447700900123 leaves as 80039#447700900123. Confirm the result on your first test call: the dialled number in Logs \u2192 CDR (Voice) should start with the tech prefix. 8. Under Media, make sure the Preferred Codec List includes a codec your route supports, such as G.729 or G.711 (audio/PCMU, audio/PCMA): TelecomsXchange passes codecs through without transcoding. Leave SRTP off. 9. Save the trunk, then go to Telephony \u2192 Sites, open your site, and in Outbound Routes add a route (or edit the default one): choose the classifications to send to TelecomsXchange, such as International and National, and add the TelecomsXchange trunk under External Trunks. To send different destinations to different routes, create one external trunk per tech prefix (or per routing group prefix such as 444101#) and map number-plan classifications to them with separate outbound routes. How do I receive calls from TelecomsXchange? TelecomsXchange delivers numbers you bought from 174.136.44.213, over UDP, from source ports 5060 to 5072, with the number in E.164 without +, such as 14165551234. 1. On the trunk, under SIP Access Control, add 174.136.44.213/32 to Allow the Following Addresses. 2. Note the trunk's inbound FQDN: Genesys shows it next to the Inbound SIP Termination Identifier, for example acme-tcxc.byoc.usw2.pure.cloud. Genesys uses it to find your org and trunk. 3. Add each number to Genesys Cloud as a BYOC number (Telephony \u2192 DID Numbers) and assign it to an inbound call flow in Architect \u2192 Call Routing. 4. Genesys matches inbound numbers in E.164. If a number doesn't match because it arrives without +, set the trunk's Inbound number handling (for example DNIS Replacement Routing) or ask Genesys support how to normalise it for your org. Selling routes into Genesys Cloud isn't a supported pattern: a BYOC Cloud trunk is for calls to and from your own Genesys org, so point seller routes at a softswitch instead. How do I receive calls on numbers I bought? Set the number's SIP Endpoint (Primary) in DID Settings on TelecomsXchange to the trunk's inbound FQDN on UDP 5060, for example sip:14165551234@acme-tcxc.byoc.usw2.pure.cloud:5060. The call arrives from 174.136.44.213, which SIP Access Control allows, and goes to the call flow assigned to the number. How do I test it? 1. In Genesys Cloud, open Telephony \u2192 Trunks \u2192 External Trunks and check that the trunk shows as connected. 2. Place an outbound call from a user's softphone (or a test campaign) to a number covered by the route. 3. In the TelecomsXchange portal, watch the call in Live Calls and find its SIP code in Logs \u2192 CDR (Voice): the dialled number should read 80039#447700900123. 4. Genesys Cloud's Protocol Capture (PCAP) diagnostic is available only on Premises trunks; for a SIP trace of a BYOC Cloud call, open a case with Genesys Cloud support with the conversation ID. What if something goes wrong? You see What to do 401 or 407 repeated, then the call fails Digest credentials are wrong or Digest Authentication is off. Re-enter the VoIP Login and VoIP Password from Edit Account; leave Realm as 174.136.44.213 or empty. 403 Forbidden No credentials were sent and the Genesys source IP isn't on the account. Turn on Digest Authentication; check the account isn't blocked or out of balance. 404 Not Found The tech prefix is missing or + is still in the number. Check the address transformation against the dialled number in Logs \u2192 CDR (Voice). 408 Request Timeout or no response Protocol isn't UDP, or the SIP server or port is wrong. Set Protocol to UDP and Port to 5060. 503 Service Unavailable The route is blocked or failed on the seller's side. Check My Interconnections; try another route or a routing group. Call connects with no audio No common codec: add G.711 or G.729 to the trunk's codec list, and make sure SRTP is off. Inbound calls rejected 174.136.44.213 isn't under SIP Access Control, or the number's SIP endpoint doesn't use the trunk's inbound FQDN. Inbound call reaches Genesys but isn't routed The number isn't in Genesys as a BYOC number or has no call flow, or doesn't match because it arrives without +. References - Genesys Cloud: Create a trunk under BYOC Cloud - Genesys Cloud: External trunk settings - Genesys Cloud: About BYOC Cloud - Genesys Cloud: Configure SIP routing for a BYOC Cloud trunk",
   "sections": [
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "- A SIP account with a VoIP login and password from Edit Account \u2192 Add SIP Digest Auth. Genesys Cloud has no fixed source IP for you to authorise, so digest is the practical choice. - A purchased route and its tech prefix from My Interconnections, for example 80039#. - A Genesys Cloud org with a BYOC Cloud entitlement and the Telephony > Plugin > All permission, and a site with a number plan (BYOC Cloud orgs get a default cloud site). - To receive calls: phone numbers bought on TelecomsXchange, added to Genesys Cloud as BYOC numbers."
    },
    {
     "id": "how-do-i-send-calls-to-telecomsxchange",
     "title": "How do I send calls to TelecomsXchange?",
     "text": "1. In Genesys Cloud admin, go to Telephony \u2192 Trunks \u2192 External Trunks and choose Create New. Enter a name, for example TelecomsXchange, and set Type to BYOC Carrier \u2192 Generic BYOC Carrier. Leave Trunk State as In-Service. 2. Set Protocol to UDP. 3. Under Inbound / Termination, enter an Inbound SIP Termination Identifier, for example acme-tcxc. Genesys builds the trunk's inbound FQDN from it; you need it for inbound calls below. 4. Under Outbound, in SIP Servers or Proxies, add Hostname or IP address sip01.telecomsxchange.com and Port 5060. 5. Turn Digest Authentication on and fill in: Field Value Realm 174.136.44.213 (the realm TelecomsXchange uses in its challenge) User Name VOIP_LOGIN, the account's VoIP Login Password VOIP_PASSWORD, the account's VoIP Password 6. Under Calling, set the Caller Address (in E.164) and Caller Name you want to present when a call has none. 7. Add the tech prefix. Under the trunk's called-address Address Transformation, keep Address Omit + Prefix enabled (the default) so the + is dropped, and add an entry that puts TECH_PREFIX in front of the number: Field Value Match Regular Expression ^\\+?([0-9]+)$ Format Regular Expression 80039#$1 With it, +447700900123 leaves as 80039#447700900123. Confirm the result on your first test call: the dialled number in Logs \u2192 CDR (Voice) should start with the tech prefix. 8. Under Media, make sure the Preferred Codec List includes a codec your route supports, such as G.729 or G.711 (audio/PCMU, audio/PCMA): TelecomsXchange passes codecs through without transcoding. Leave SRTP off. 9. Save the trunk, then go to Telephony \u2192 Sites, open your site, and in Outbound Routes add a route (or edit the default one): choose the classifications to send to TelecomsXchange, such as International and National, and add the TelecomsXchange trunk under External Trunks. To send different destinations to different routes, create one external trunk per tech prefix (or per routing group prefix such as 444101#) and map number-plan classifications to them with separate outbound routes."
    },
    {
     "id": "how-do-i-receive-calls-from-telecomsxchange",
     "title": "How do I receive calls from TelecomsXchange?",
     "text": "TelecomsXchange delivers numbers you bought from 174.136.44.213, over UDP, from source ports 5060 to 5072, with the number in E.164 without +, such as 14165551234. 1. On the trunk, under SIP Access Control, add 174.136.44.213/32 to Allow the Following Addresses. 2. Note the trunk's inbound FQDN: Genesys shows it next to the Inbound SIP Termination Identifier, for example acme-tcxc.byoc.usw2.pure.cloud. Genesys uses it to find your org and trunk. 3. Add each number to Genesys Cloud as a BYOC number (Telephony \u2192 DID Numbers) and assign it to an inbound call flow in Architect \u2192 Call Routing. 4. Genesys matches inbound numbers in E.164. If a number doesn't match because it arrives without +, set the trunk's Inbound number handling (for example DNIS Replacement Routing) or ask Genesys support how to normalise it for your org. Selling routes into Genesys Cloud isn't a supported pattern: a BYOC Cloud trunk is for calls to and from your own Genesys org, so point seller routes at a softswitch instead."
    },
    {
     "id": "how-do-i-receive-calls-on-numbers-i-bought",
     "title": "How do I receive calls on numbers I bought?",
     "text": "Set the number's SIP Endpoint (Primary) in DID Settings on TelecomsXchange to the trunk's inbound FQDN on UDP 5060, for example sip:14165551234@acme-tcxc.byoc.usw2.pure.cloud:5060. The call arrives from 174.136.44.213, which SIP Access Control allows, and goes to the call flow assigned to the number."
    },
    {
     "id": "how-do-i-test-it",
     "title": "How do I test it?",
     "text": "1. In Genesys Cloud, open Telephony \u2192 Trunks \u2192 External Trunks and check that the trunk shows as connected. 2. Place an outbound call from a user's softphone (or a test campaign) to a number covered by the route. 3. In the TelecomsXchange portal, watch the call in Live Calls and find its SIP code in Logs \u2192 CDR (Voice): the dialled number should read 80039#447700900123. 4. Genesys Cloud's Protocol Capture (PCAP) diagnostic is available only on Premises trunks; for a SIP trace of a BYOC Cloud call, open a case with Genesys Cloud support with the conversation ID."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do 401 or 407 repeated, then the call fails Digest credentials are wrong or Digest Authentication is off. Re-enter the VoIP Login and VoIP Password from Edit Account; leave Realm as 174.136.44.213 or empty. 403 Forbidden No credentials were sent and the Genesys source IP isn't on the account. Turn on Digest Authentication; check the account isn't blocked or out of balance. 404 Not Found The tech prefix is missing or + is still in the number. Check the address transformation against the dialled number in Logs \u2192 CDR (Voice). 408 Request Timeout or no response Protocol isn't UDP, or the SIP server or port is wrong. Set Protocol to UDP and Port to 5060. 503 Service Unavailable The route is blocked or failed on the seller's side. Check My Interconnections; try another route or a routing group. Call connects with no audio No common codec: add G.711 or G.729 to the trunk's codec list, and make sure SRTP is off. Inbound calls rejected 174.136.44.213 isn't under SIP Access Control, or the number's SIP endpoint doesn't use the trunk's inbound FQDN. Inbound call reaches Genesys but isn't routed The number isn't in Genesys as a BYOC number or has no call flow, or doesn't match because it arrives without +."
    },
    {
     "id": "references",
     "title": "References",
     "text": "- Genesys Cloud: Create a trunk under BYOC Cloud - Genesys Cloud: External trunk settings - Genesys Cloud: About BYOC Cloud - Genesys Cloud: Configure SIP routing for a BYOC Cloud trunk"
    }
   ]
  },
  {
   "slug": "amazon-connect",
   "section": "integrations",
   "title": "Use TelecomsXchange with Amazon Connect",
   "description": "Amazon Connect has no bring-your-own-carrier SIP trunk. What works with TelecomsXchange: a SIP server you run in front of Connect, over UDP.",
   "summary": "Amazon Connect can't use an outside carrier as its trunk: its inbound and outbound PSTN calls go through numbers claimed or ported into Connect, and the Chime SDK Voice Connector is AWS's own SIP trunk, not a bridge to another carrier. To use TelecomsXchange numbers, deliver them to a SIP server you run (Asterisk, FreeSWITCH or an SBC) and forward each call to a number claimed in Connect, through a TelecomsXchange route over UDP.",
   "url": "https://help.telecomsxchange.com/integrations/amazon-connect/",
   "markdown_url": "https://help.telecomsxchange.com/integrations/amazon-connect.md",
   "updated": "2026-10-23",
   "keywords": [
    "amazon connect",
    "aws",
    "contact center",
    "byoc",
    "bring your own carrier",
    "sip trunk",
    "amazon chime sdk voice connector",
    "voice connector",
    "external voice transfer connector",
    "sbc",
    "origination",
    "termination",
    "claimed number",
    "call forwarding",
    "udp",
    "tls",
    "srtp",
    "no registration"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Can Amazon Connect register to TelecomsXchange?",
     "a": "No. TelecomsXchange is peering only and does not accept REGISTER, and Amazon Connect has no SIP trunk that could register or peer with an outside carrier in the first place."
    },
    {
     "q": "Can I use TelecomsXchange as the carrier for Amazon Connect's outbound calls?",
     "a": "Not directly. Amazon Connect places outbound PSTN calls through its own telephony with numbers claimed in Connect. There is no setting to send them to another carrier's SIP trunk."
    },
    {
     "q": "Can the Amazon Chime SDK Voice Connector connect TelecomsXchange to Amazon Connect?",
     "a": "No. A Voice Connector is AWS's own SIP trunk to the phone network, with AWS phone numbers, for your PBX or SBC. It doesn't let another carrier's numbers or routes act as Connect's telephony."
    },
    {
     "q": "Does this need TLS?",
     "a": "Not for the TelecomsXchange side: your SIP server talks to TelecomsXchange over UDP, the only transport TelecomsXchange supports. The hop into Amazon Connect is an ordinary call over the phone network to a Connect number."
    }
   ],
   "text": "TelecomsXchange numbers into Amazon Connect 1. Caller: Dials a number bought on TCXC 2. TelecomsXchange (via 14165551234): From 174.136.44.213, UDP 3. Your SIP server (via sip:14165551234@203.0.113.10): Asterisk, FreeSWITCH or SBC 4. Amazon Connect (via 80039#18005550100): Number claimed in Connect Amazon Connect is a cloud contact centre with its own telephony. Unlike Genesys Cloud or Twilio, it has no bring-your-own-carrier SIP trunk: you can't point it at sip01, and TelecomsXchange can't deliver a SIP call straight into a Connect instance. This page explains what does work with TelecomsXchange, which only speaks SIP over UDP. For the full list of TelecomsXchange values, see Connect a SIP platform. TelecomsXchange does not accept SIP REGISTER, and supports SIP over UDP only: no TCP, TLS or SRTP. It can't be the TLS endpoint for any AWS voice service. Every pattern below keeps a SIP server you run between TelecomsXchange and AWS. How do Amazon Connect, Voice Connector and TelecomsXchange fit together? AWS service What it is Can it carry TelecomsXchange traffic? Amazon Connect telephony Numbers you claim or port into Connect; Connect places and receives the PSTN calls Only as a phone-network destination: TelecomsXchange can call a Connect number Amazon Chime SDK Voice Connector AWS's SIP trunking service for your PBX or SBC: AWS numbers, Origination (calls to your SIP hosts) and Termination (calls from your allowed hosts to the PSTN) No. It's another carrier, not a bridge from TelecomsXchange into Connect Amazon Connect external voice transfer connector Lets a Connect flow hand a live call and its data to your on-premises voice system (an SBC or PBX) without going through the PSTN Only after a call is already in Connect; it isn't Connect's carrier trunk So the working pattern is: TelecomsXchange \u2194 your SIP server over UDP, and your SIP server \u2194 Amazon Connect over the phone network, using numbers claimed in Connect. Before you start - A SIP account with your SIP server's public IP, for example 203.0.113.10, or a VoIP login and password from Edit Account \u2192 Add SIP Digest Auth. - A purchased route that reaches the country of your Connect number, and its tech prefix from My Interconnections, for example 80039#. - A SIP server you run on a public IP: Asterisk, FreeSWITCH, Kamailio or a commercial SBC. The Asterisk and FreeSWITCH guides cover the TelecomsXchange side in full. - An Amazon Connect instance with a claimed number, for example +18005550100, attached to a contact flow. - Phone numbers bought on TelecomsXchange, if callers should dial TelecomsXchange numbers. How do I send calls to TelecomsXchange? Amazon Connect itself can't. Its outbound calls, agent calls and outbound campaigns use Connect telephony and the numbers claimed in Connect. What you can do is send calls towards Connect through TelecomsXchange: your SIP server dials a Connect number through a purchased route, exactly as it dials any other number (TECH_PREFIX + the Connect number in E.164 without +). In Asterisk, with the tcxc endpoint from the Asterisk guide, define both as globals; the dial plan in the next section uses them: ini ; /etc/asterisk/extensions.conf [globals] TECH_PREFIX=80039# ; route from My Interconnections CONNECT_NUMBER=18005550100 ; number claimed in Amazon Connect, E.164 without + If a Connect flow transfers calls to your own voice system with the external voice transfer connector, the receiving SBC or PBX can route those calls on to TelecomsXchange like any other outbound call. The Connect-to-SBC leg follows AWS's requirements (AWS recommends turning on encryption for it); the SBC-to-TelecomsXchange leg is plain SIP over UDP to sip01.telecomsxchange.com:5060. How do I receive calls from TelecomsXchange? Calls come from 174.136.44.213 over UDP, from source ports 5060 to 5072, with the number in E.164 without +, such as 14165551234. They go to your SIP server, never to Connect directly. 1. Allow 174.136.44.213 on your SIP server's firewall for UDP 5060 and your RTP range, and match it to the TelecomsXchange trunk (the identify section in Asterisk, an ACL in FreeSWITCH). 2. Send the calls into a dedicated inbound context and forward them to Amazon Connect, as below. Selling routes to TelecomsXchange that terminate in Amazon Connect isn't possible: Connect doesn't accept SIP from carriers. How do I receive calls on numbers I bought? 1. On TelecomsXchange, set the number's SIP Endpoint (Primary) in DID Settings to your SIP server, for example sip:14165551234@203.0.113.10:5060. 2. On the SIP server, forward the call to the Connect number through a TelecomsXchange route, keeping the caller's number. In Asterisk: ini ; /etc/asterisk/extensions.conf [from-tcxc] ; TCXC number 14165551234 -> Amazon Connect +18005550100, via a purchased route exten => 14165551234,1,Dial(PJSIP/${TECH_PREFIX}${CONNECT_NUMBER}@tcxc,60) same => n,Hangup() 3. In Amazon Connect, the call arrives on the claimed number and runs its contact flow. Calls on several TelecomsXchange numbers can share one Connect number; to tell them apart, forward each to its own claimed number. This adds a second call leg: you pay the TelecomsXchange number's inbound rate, the route to the Connect number, and Connect's own inbound charges. Whether the original caller ID survives depends on the route; check it on a test call. Where a route doesn't keep it, buy a CLI route in Market View. How do I test it? 1. Call the TelecomsXchange number from a mobile phone. 2. On the SIP server, watch the inbound INVITE from 174.136.44.213 and the outbound INVITE to 80039#18005550100 with pjsip set logger on or sngrep port 5060. 3. In the TelecomsXchange portal, both legs appear in Live Calls while the call is up, and in Logs \u2192 CDR (Voice) afterwards. 4. In Amazon Connect, find the contact under Analytics and optimization \u2192 Contact search and check the caller number and flow. What if something goes wrong? You see What to do 403 Forbidden on the leg to Connect Your SIP server's public IP isn't authorised and no digest credentials were sent. Check IP Address, Additional Allowed IPs and the VoIP login on Edit Account. 404 Not Found on the leg to Connect Missing or wrong tech prefix, or + left in the Connect number. Dial TECH_PREFIX + 18005550100. 401 or 407 repeated Wrong VoIP login or password in the SIP server's outbound authentication. 408 or 503 Firewall or DNS blocks sip01, or the route can't reach the Connect number's country. Check My Interconnections or try another route. No inbound calls on the SIP server 174.136.44.213 isn't allowed on the firewall or matched to the trunk, or the number's SIP endpoint is wrong. Connect shows the wrong caller number The route doesn't pass the caller ID. Test another route or a CLI route. One-way or no audio Your SIP server advertises a private IP in SDP, or RTP is blocked. Set the external media address and open the RTP range. References - Amazon Connect: Set up external voice transfer to an on-premises voice system - Amazon Connect: Claim a phone number - Amazon Chime SDK: Editing Voice Connector settings (termination, origination, encryption) - Amazon Chime SDK: Voice Connectors",
   "sections": [
    {
     "id": "how-do-amazon-connect-voice-connector-and-telecomsxchange-fit-together",
     "title": "How do Amazon Connect, Voice Connector and TelecomsXchange fit together?",
     "text": "AWS service What it is Can it carry TelecomsXchange traffic? Amazon Connect telephony Numbers you claim or port into Connect; Connect places and receives the PSTN calls Only as a phone-network destination: TelecomsXchange can call a Connect number Amazon Chime SDK Voice Connector AWS's SIP trunking service for your PBX or SBC: AWS numbers, Origination (calls to your SIP hosts) and Termination (calls from your allowed hosts to the PSTN) No. It's another carrier, not a bridge from TelecomsXchange into Connect Amazon Connect external voice transfer connector Lets a Connect flow hand a live call and its data to your on-premises voice system (an SBC or PBX) without going through the PSTN Only after a call is already in Connect; it isn't Connect's carrier trunk So the working pattern is: TelecomsXchange \u2194 your SIP server over UDP, and your SIP server \u2194 Amazon Connect over the phone network, using numbers claimed in Connect."
    },
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "- A SIP account with your SIP server's public IP, for example 203.0.113.10, or a VoIP login and password from Edit Account \u2192 Add SIP Digest Auth. - A purchased route that reaches the country of your Connect number, and its tech prefix from My Interconnections, for example 80039#. - A SIP server you run on a public IP: Asterisk, FreeSWITCH, Kamailio or a commercial SBC. The Asterisk and FreeSWITCH guides cover the TelecomsXchange side in full. - An Amazon Connect instance with a claimed number, for example +18005550100, attached to a contact flow. - Phone numbers bought on TelecomsXchange, if callers should dial TelecomsXchange numbers."
    },
    {
     "id": "how-do-i-send-calls-to-telecomsxchange",
     "title": "How do I send calls to TelecomsXchange?",
     "text": "Amazon Connect itself can't. Its outbound calls, agent calls and outbound campaigns use Connect telephony and the numbers claimed in Connect. What you can do is send calls towards Connect through TelecomsXchange: your SIP server dials a Connect number through a purchased route, exactly as it dials any other number (TECH_PREFIX + the Connect number in E.164 without +). In Asterisk, with the tcxc endpoint from the Asterisk guide, define both as globals; the dial plan in the next section uses them: ini ; /etc/asterisk/extensions.conf [globals] TECH_PREFIX=80039# ; route from My Interconnections CONNECT_NUMBER=18005550100 ; number claimed in Amazon Connect, E.164 without + If a Connect flow transfers calls to your own voice system with the external voice transfer connector, the receiving SBC or PBX can route those calls on to TelecomsXchange like any other outbound call. The Connect-to-SBC leg follows AWS's requirements (AWS recommends turning on encryption for it); the SBC-to-TelecomsXchange leg is plain SIP over UDP to sip01.telecomsxchange.com:5060."
    },
    {
     "id": "how-do-i-receive-calls-from-telecomsxchange",
     "title": "How do I receive calls from TelecomsXchange?",
     "text": "Calls come from 174.136.44.213 over UDP, from source ports 5060 to 5072, with the number in E.164 without +, such as 14165551234. They go to your SIP server, never to Connect directly. 1. Allow 174.136.44.213 on your SIP server's firewall for UDP 5060 and your RTP range, and match it to the TelecomsXchange trunk (the identify section in Asterisk, an ACL in FreeSWITCH). 2. Send the calls into a dedicated inbound context and forward them to Amazon Connect, as below. Selling routes to TelecomsXchange that terminate in Amazon Connect isn't possible: Connect doesn't accept SIP from carriers."
    },
    {
     "id": "how-do-i-receive-calls-on-numbers-i-bought",
     "title": "How do I receive calls on numbers I bought?",
     "text": "1. On TelecomsXchange, set the number's SIP Endpoint (Primary) in DID Settings to your SIP server, for example sip:14165551234@203.0.113.10:5060. 2. On the SIP server, forward the call to the Connect number through a TelecomsXchange route, keeping the caller's number. In Asterisk: ini ; /etc/asterisk/extensions.conf [from-tcxc] ; TCXC number 14165551234 -> Amazon Connect +18005550100, via a purchased route exten => 14165551234,1,Dial(PJSIP/${TECH_PREFIX}${CONNECT_NUMBER}@tcxc,60) same => n,Hangup() 3. In Amazon Connect, the call arrives on the claimed number and runs its contact flow. Calls on several TelecomsXchange numbers can share one Connect number; to tell them apart, forward each to its own claimed number. This adds a second call leg: you pay the TelecomsXchange number's inbound rate, the route to the Connect number, and Connect's own inbound charges. Whether the original caller ID survives depends on the route; check it on a test call. Where a route doesn't keep it, buy a CLI route in Market View."
    },
    {
     "id": "how-do-i-test-it",
     "title": "How do I test it?",
     "text": "1. Call the TelecomsXchange number from a mobile phone. 2. On the SIP server, watch the inbound INVITE from 174.136.44.213 and the outbound INVITE to 80039#18005550100 with pjsip set logger on or sngrep port 5060. 3. In the TelecomsXchange portal, both legs appear in Live Calls while the call is up, and in Logs \u2192 CDR (Voice) afterwards. 4. In Amazon Connect, find the contact under Analytics and optimization \u2192 Contact search and check the caller number and flow."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do 403 Forbidden on the leg to Connect Your SIP server's public IP isn't authorised and no digest credentials were sent. Check IP Address, Additional Allowed IPs and the VoIP login on Edit Account. 404 Not Found on the leg to Connect Missing or wrong tech prefix, or + left in the Connect number. Dial TECH_PREFIX + 18005550100. 401 or 407 repeated Wrong VoIP login or password in the SIP server's outbound authentication. 408 or 503 Firewall or DNS blocks sip01, or the route can't reach the Connect number's country. Check My Interconnections or try another route. No inbound calls on the SIP server 174.136.44.213 isn't allowed on the firewall or matched to the trunk, or the number's SIP endpoint is wrong. Connect shows the wrong caller number The route doesn't pass the caller ID. Test another route or a CLI route. One-way or no audio Your SIP server advertises a private IP in SDP, or RTP is blocked. Set the external media address and open the RTP range."
    },
    {
     "id": "references",
     "title": "References",
     "text": "- Amazon Connect: Set up external voice transfer to an on-premises voice system - Amazon Connect: Claim a phone number - Amazon Chime SDK: Editing Voice Connector settings (termination, origination, encryption) - Amazon Chime SDK: Voice Connectors"
    }
   ]
  },
  {
   "slug": "microsoft-teams",
   "section": "integrations",
   "title": "Connect Microsoft Teams Direct Routing to TelecomsXchange",
   "description": "Use Teams Direct Routing with TelecomsXchange through a certified SBC: TLS and SRTP to Teams, plain SIP over UDP with a tech prefix to sip01.",
   "summary": "Teams Direct Routing talks only TLS and SRTP to a Microsoft-certified SBC, so TelecomsXchange can't connect to Teams directly. Run an SBC such as AudioCodes Mediant or Ribbon: pair it with Teams using New-CsOnlinePSTNGateway, a PSTN usage, voice route and voice routing policy, and point its carrier side at sip01.telecomsxchange.com over UDP 5060, adding TECH_PREFIX and authenticating by IP or digest.",
   "url": "https://help.telecomsxchange.com/integrations/microsoft-teams/",
   "markdown_url": "https://help.telecomsxchange.com/integrations/microsoft-teams.md",
   "updated": "2026-10-23",
   "keywords": [
    "microsoft teams",
    "teams direct routing",
    "direct routing",
    "teams phone",
    "sbc",
    "session border controller",
    "certified sbc",
    "audiocodes",
    "mediant",
    "ribbon",
    "new-csonlinepstngateway",
    "set-csonlinepstngateway",
    "voice route",
    "pstn usage",
    "voice routing policy",
    "set-csphonenumberassignment",
    "tls",
    "srtp",
    "tech prefix",
    "no registration",
    "udp"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Can Microsoft Teams register to TelecomsXchange?",
     "a": "No. TelecomsXchange is peering only and does not accept REGISTER. Teams doesn't connect to carriers at all: it pairs with your SBC, and the SBC peers with TelecomsXchange by IP or digest authentication."
    },
    {
     "q": "Can Teams connect to TelecomsXchange without an SBC?",
     "a": "No. Direct Routing requires TLS for signalling and SRTP for media to a certified SBC with a public certificate. TelecomsXchange supports only SIP over UDP, so it can't be that endpoint."
    },
    {
     "q": "Which SBC should I use?",
     "a": "Any SBC on Microsoft's certified list for Direct Routing. AudioCodes Mediant and Ribbon SBC SWe are common; see the AudioCodes and Ribbon guides for the carrier-side settings."
    },
    {
     "q": "Where does the tech prefix go?",
     "a": "On the SBC, in the number manipulation for calls from Teams to TelecomsXchange. Teams sends +447700900123; the SBC sends 80039#447700900123 to sip01."
    }
   ],
   "text": "Teams to a purchased route, through your SBC 1. Microsoft Teams: Direct Routing voice route 2. Your certified SBC (via TLS 5061, SRTP, +447700900123): AudioCodes or Ribbon 3. TelecomsXchange (via 80039#447700900123): sip01, UDP 5060 4. Seller's route: The route you purchased This guide connects Microsoft Teams Phone to TelecomsXchange with Direct Routing: Teams users call out through a purchased route, and numbers bought on TelecomsXchange ring in Teams. Teams never talks to TelecomsXchange directly; a certified SBC that you run sits between them. For the full list of TelecomsXchange values, see Connect a SIP platform. Direct Routing requires TLS signalling and SRTP media between Teams and a Microsoft-certified SBC. TelecomsXchange supports SIP over UDP only, no TLS or SRTP, and does not accept REGISTER, so it can't be the Direct Routing endpoint. The SBC terminates TLS and SRTP towards Teams and talks plain SIP and RTP over UDP to TelecomsXchange. How does the call flow? Leg From \u2192 to Transport Number format Teams side Teams SIP proxies (sip.pstnhub.microsoft.com, sip2.pstnhub.microsoft.com, sip3.pstnhub.microsoft.com) \u2194 your SBC's FQDN, for example sbc.contoso.com:5061 TLS, SRTP E.164 with +: +447700900123 Carrier side Your SBC, for example 203.0.113.10 \u2194 sip01.telecomsxchange.com:5060 UDP, RTP Tech prefix + E.164 without +: 80039#447700900123 Before you start - A SIP account with the SBC's public IP, for example 203.0.113.10, or a VoIP login and password from Edit Account \u2192 Add SIP Digest Auth. - A purchased route and its tech prefix from My Interconnections, for example 80039#. - An SBC on Microsoft's certified list for Direct Routing, with a public IP, an FQDN in a domain verified in your Microsoft 365 tenant (for example sbc.contoso.com), and a certificate from a public CA trusted by Microsoft. - Users with a Teams Phone licence, and Teams PowerShell (Install-Module MicrosoftTeams, then Connect-MicrosoftTeams). - Firewall rules for both sides: the Microsoft 365 signalling and media ranges (52.112.0.0/14, 52.122.0.0/15) on TLS 5061 and the SBC's media ports, and 174.136.44.213 on UDP 5060 and your RTP range. How do I connect Teams to the SBC? Run these in Teams PowerShell. They're the minimum for one SBC and one route; see Microsoft's Direct Routing documentation for the full options. 1. Add the SBC as a PSTN gateway: powershell New-CsOnlinePSTNGateway -Fqdn sbc.contoso.com -SipSignalingPort 5061 -MaxConcurrentSessions 100 -ForwardCallHistory $true -ForwardPai $true -Enabled $true Use Set-CsOnlinePSTNGateway -Identity sbc.contoso.com \u2026 to change it later. 2. Create a PSTN usage and a voice route that sends all numbers to the SBC: powershell Set-CsOnlinePstnUsage -Identity Global -Usage @{Add=\"TCXC\"} New-CsOnlineVoiceRoute -Identity \"TCXC-All\" -NumberPattern \"^\\+\\d+$\" -OnlinePstnGatewayList sbc.contoso.com -OnlinePstnUsages \"TCXC\" -Priority 1 3. Create a voice routing policy and grant it to users: powershell New-CsOnlineVoiceRoutingPolicy -Identity \"TCXC\" -OnlinePstnUsages \"TCXC\" Grant-CsOnlineVoiceRoutingPolicy -Identity user@contoso.com -PolicyName \"TCXC\" 4. Give each user a Direct Routing number (one you bought on TelecomsXchange, below): powershell Set-CsPhoneNumberAssignment -Identity user@contoso.com -PhoneNumber +14165551234 -PhoneNumberType DirectRouting Check pairing with Get-CsOnlinePSTNGateway and, after a few minutes, the SBC's health in the Teams admin center \u2192 Voice \u2192 Direct Routing. How do I send calls to TelecomsXchange? On the SBC, the carrier side is an ordinary UDP peer. The AudioCodes SBC and Ribbon SBC guides give the exact menus; the settings are: SBC setting Value Carrier peer (AudioCodes: Proxy Set and IP Group; Ribbon: SIP Server Table and Signaling Group) sip01.telecomsxchange.com, port 5060, transport UDP Registration Off. TelecomsXchange is peering only Keepalive (OPTIONS) Off. TelecomsXchange answers OPTIONS only within a call Authentication Send from the SBC's IP authorised on the account, or answer the 401/407 challenge with VOIP_LOGIN and VOIP_PASSWORD (the account's VoIP Login and VoIP Password) Media RTP, no SRTP; G.711 or G.729 as your route supports. TelecomsXchange doesn't transcode, so let the SBC transcode if Teams and the route share no codec NAT The SBC's public IP in SIP and SDP on the carrier interface Add the tech prefix in the number manipulation for calls from the Teams side to TelecomsXchange: remove the leading +, then add TECH_PREFIX in front. +447700900123 must leave the SBC as 80039#447700900123. Then add the routing rule: calls from the Teams IP Group (or signalling group) go to the TelecomsXchange one. For several routes, add one manipulation and routing rule per destination prefix, each with its own tech prefix, or dial a routing group prefix such as 444101# and let TelecomsXchange choose. How do I receive calls from TelecomsXchange? Calls come from 174.136.44.213 over UDP, from source ports 5060 to 5072, with the number in E.164 without +, such as 14165551234. 1. On the SBC, classify 174.136.44.213 as the TelecomsXchange peer, and allow it on the firewall for UDP 5060 and the RTP range. 2. Add a number manipulation for calls from TelecomsXchange to Teams that adds +, so 14165551234 reaches Teams as +14165551234. 3. Route those calls to the Teams IP Group. Teams rings the user assigned that number with Set-CsPhoneNumberAssignment. Selling routes that terminate in Teams isn't a use case for Direct Routing: Teams only rings numbers assigned to your own users. How do I receive calls on numbers I bought? Set each number's SIP Endpoint (Primary) in DID Settings on TelecomsXchange to the SBC's carrier side, for example sip:14165551234@203.0.113.10:5060, and assign the same number, with +, to a Teams user, resource account (auto attendant or call queue) as a Direct Routing number. How do I test it? 1. In Teams, call a number covered by the route from a user with the voice routing policy. 2. On the SBC, follow the call in its trace tool (AudioCodes Syslog Viewer or Wireshark; Ribbon's Monitoring and trace logs): the TLS INVITE from Teams with +447700900123, then the UDP INVITE to 80039#447700900123 (or 80039%23447700900123) and TelecomsXchange's reply. 3. In the TelecomsXchange portal, watch the call in Live Calls and find its SIP code in Logs \u2192 CDR (Voice). 4. In the Teams admin center \u2192 Analytics & reports \u2192 PSTN usage report (Direct Routing tab), and in Call Quality Dashboard, check the Teams leg. What if something goes wrong? You see What to do SBC shows inactive in the Teams admin center TLS problem on the Teams side: certificate, FQDN not in a verified domain, or port 5061 blocked from Microsoft's ranges. This is between Teams and the SBC, not TelecomsXchange. 401 or 407 repeated, then the call fails The SBC isn't answering TelecomsXchange's challenge. Check the VoIP login and password in its account or authentication settings. 403 Forbidden The SBC's public IP isn't authorised and no credentials were sent. Compare with IP Address and Additional Allowed IPs on Edit Account; check balance. 404 Not Found Tech prefix missing or + still in the number. Check the outbound number manipulation in the SBC trace. 408 or 503 from TelecomsXchange The SBC can't reach sip01 on UDP 5060, or the route is blocked or failed. Check the firewall and My Interconnections. One-way audio The SBC advertises a private IP on the carrier side, or RTP from 174.136.44.213 is blocked. Check NAT and media settings on the carrier interface. Inbound calls don't ring in Teams No + on the number, the number isn't assigned with -PhoneNumberType DirectRouting, or 174.136.44.213 isn't classified to the TelecomsXchange peer. References - Microsoft: Plan Direct Routing - Microsoft: Connect your SBC to Direct Routing - Microsoft: Configure call routing for Direct Routing - Microsoft: Enable users for Direct Routing - Microsoft: Session border controllers certified for Direct Routing - Microsoft: New-CsOnlinePSTNGateway",
   "sections": [
    {
     "id": "how-does-the-call-flow",
     "title": "How does the call flow?",
     "text": "Leg From \u2192 to Transport Number format Teams side Teams SIP proxies (sip.pstnhub.microsoft.com, sip2.pstnhub.microsoft.com, sip3.pstnhub.microsoft.com) \u2194 your SBC's FQDN, for example sbc.contoso.com:5061 TLS, SRTP E.164 with +: +447700900123 Carrier side Your SBC, for example 203.0.113.10 \u2194 sip01.telecomsxchange.com:5060 UDP, RTP Tech prefix + E.164 without +: 80039#447700900123"
    },
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "- A SIP account with the SBC's public IP, for example 203.0.113.10, or a VoIP login and password from Edit Account \u2192 Add SIP Digest Auth. - A purchased route and its tech prefix from My Interconnections, for example 80039#. - An SBC on Microsoft's certified list for Direct Routing, with a public IP, an FQDN in a domain verified in your Microsoft 365 tenant (for example sbc.contoso.com), and a certificate from a public CA trusted by Microsoft. - Users with a Teams Phone licence, and Teams PowerShell (Install-Module MicrosoftTeams, then Connect-MicrosoftTeams). - Firewall rules for both sides: the Microsoft 365 signalling and media ranges (52.112.0.0/14, 52.122.0.0/15) on TLS 5061 and the SBC's media ports, and 174.136.44.213 on UDP 5060 and your RTP range."
    },
    {
     "id": "how-do-i-connect-teams-to-the-sbc",
     "title": "How do I connect Teams to the SBC?",
     "text": "Run these in Teams PowerShell. They're the minimum for one SBC and one route; see Microsoft's Direct Routing documentation for the full options. 1. Add the SBC as a PSTN gateway: powershell New-CsOnlinePSTNGateway -Fqdn sbc.contoso.com -SipSignalingPort 5061 -MaxConcurrentSessions 100 -ForwardCallHistory $true -ForwardPai $true -Enabled $true Use Set-CsOnlinePSTNGateway -Identity sbc.contoso.com \u2026 to change it later. 2. Create a PSTN usage and a voice route that sends all numbers to the SBC: powershell Set-CsOnlinePstnUsage -Identity Global -Usage @{Add=\"TCXC\"} New-CsOnlineVoiceRoute -Identity \"TCXC-All\" -NumberPattern \"^\\+\\d+$\" -OnlinePstnGatewayList sbc.contoso.com -OnlinePstnUsages \"TCXC\" -Priority 1 3. Create a voice routing policy and grant it to users: powershell New-CsOnlineVoiceRoutingPolicy -Identity \"TCXC\" -OnlinePstnUsages \"TCXC\" Grant-CsOnlineVoiceRoutingPolicy -Identity user@contoso.com -PolicyName \"TCXC\" 4. Give each user a Direct Routing number (one you bought on TelecomsXchange, below): powershell Set-CsPhoneNumberAssignment -Identity user@contoso.com -PhoneNumber +14165551234 -PhoneNumberType DirectRouting Check pairing with Get-CsOnlinePSTNGateway and, after a few minutes, the SBC's health in the Teams admin center \u2192 Voice \u2192 Direct Routing."
    },
    {
     "id": "how-do-i-send-calls-to-telecomsxchange",
     "title": "How do I send calls to TelecomsXchange?",
     "text": "On the SBC, the carrier side is an ordinary UDP peer. The AudioCodes SBC and Ribbon SBC guides give the exact menus; the settings are: SBC setting Value Carrier peer (AudioCodes: Proxy Set and IP Group; Ribbon: SIP Server Table and Signaling Group) sip01.telecomsxchange.com, port 5060, transport UDP Registration Off. TelecomsXchange is peering only Keepalive (OPTIONS) Off. TelecomsXchange answers OPTIONS only within a call Authentication Send from the SBC's IP authorised on the account, or answer the 401/407 challenge with VOIP_LOGIN and VOIP_PASSWORD (the account's VoIP Login and VoIP Password) Media RTP, no SRTP; G.711 or G.729 as your route supports. TelecomsXchange doesn't transcode, so let the SBC transcode if Teams and the route share no codec NAT The SBC's public IP in SIP and SDP on the carrier interface Add the tech prefix in the number manipulation for calls from the Teams side to TelecomsXchange: remove the leading +, then add TECH_PREFIX in front. +447700900123 must leave the SBC as 80039#447700900123. Then add the routing rule: calls from the Teams IP Group (or signalling group) go to the TelecomsXchange one. For several routes, add one manipulation and routing rule per destination prefix, each with its own tech prefix, or dial a routing group prefix such as 444101# and let TelecomsXchange choose."
    },
    {
     "id": "how-do-i-receive-calls-from-telecomsxchange",
     "title": "How do I receive calls from TelecomsXchange?",
     "text": "Calls come from 174.136.44.213 over UDP, from source ports 5060 to 5072, with the number in E.164 without +, such as 14165551234. 1. On the SBC, classify 174.136.44.213 as the TelecomsXchange peer, and allow it on the firewall for UDP 5060 and the RTP range. 2. Add a number manipulation for calls from TelecomsXchange to Teams that adds +, so 14165551234 reaches Teams as +14165551234. 3. Route those calls to the Teams IP Group. Teams rings the user assigned that number with Set-CsPhoneNumberAssignment. Selling routes that terminate in Teams isn't a use case for Direct Routing: Teams only rings numbers assigned to your own users."
    },
    {
     "id": "how-do-i-receive-calls-on-numbers-i-bought",
     "title": "How do I receive calls on numbers I bought?",
     "text": "Set each number's SIP Endpoint (Primary) in DID Settings on TelecomsXchange to the SBC's carrier side, for example sip:14165551234@203.0.113.10:5060, and assign the same number, with +, to a Teams user, resource account (auto attendant or call queue) as a Direct Routing number."
    },
    {
     "id": "how-do-i-test-it",
     "title": "How do I test it?",
     "text": "1. In Teams, call a number covered by the route from a user with the voice routing policy. 2. On the SBC, follow the call in its trace tool (AudioCodes Syslog Viewer or Wireshark; Ribbon's Monitoring and trace logs): the TLS INVITE from Teams with +447700900123, then the UDP INVITE to 80039#447700900123 (or 80039%23447700900123) and TelecomsXchange's reply. 3. In the TelecomsXchange portal, watch the call in Live Calls and find its SIP code in Logs \u2192 CDR (Voice). 4. In the Teams admin center \u2192 Analytics & reports \u2192 PSTN usage report (Direct Routing tab), and in Call Quality Dashboard, check the Teams leg."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do SBC shows inactive in the Teams admin center TLS problem on the Teams side: certificate, FQDN not in a verified domain, or port 5061 blocked from Microsoft's ranges. This is between Teams and the SBC, not TelecomsXchange. 401 or 407 repeated, then the call fails The SBC isn't answering TelecomsXchange's challenge. Check the VoIP login and password in its account or authentication settings. 403 Forbidden The SBC's public IP isn't authorised and no credentials were sent. Compare with IP Address and Additional Allowed IPs on Edit Account; check balance. 404 Not Found Tech prefix missing or + still in the number. Check the outbound number manipulation in the SBC trace. 408 or 503 from TelecomsXchange The SBC can't reach sip01 on UDP 5060, or the route is blocked or failed. Check the firewall and My Interconnections. One-way audio The SBC advertises a private IP on the carrier side, or RTP from 174.136.44.213 is blocked. Check NAT and media settings on the carrier interface. Inbound calls don't ring in Teams No + on the number, the number isn't assigned with -PhoneNumberType DirectRouting, or 174.136.44.213 isn't classified to the TelecomsXchange peer."
    },
    {
     "id": "references",
     "title": "References",
     "text": "- Microsoft: Plan Direct Routing - Microsoft: Connect your SBC to Direct Routing - Microsoft: Configure call routing for Direct Routing - Microsoft: Enable users for Direct Routing - Microsoft: Session border controllers certified for Direct Routing - Microsoft: New-CsOnlinePSTNGateway"
    }
   ]
  },
  {
   "slug": "zoom-phone",
   "section": "integrations",
   "title": "Connect Zoom Phone BYOC to TelecomsXchange",
   "description": "Use Zoom Phone Bring Your Own Carrier (Premise Peering) with TelecomsXchange through a supported SBC: TLS to Zoom, SIP over UDP with a tech prefix to sip01.",
   "summary": "Zoom Phone Premise Peering (BYOC-P) peers Zoom's data centres with an SBC you run, over TLS on port 5061 with SRTP, so TelecomsXchange can't connect to Zoom directly. Add the SBC, a route group and a SIP group in the Zoom web portal and assign BYOC numbers; on the SBC's carrier side, send SIP over UDP to sip01.telecomsxchange.com port 5060 with TECH_PREFIX in front of the E.164 number, authorised by IP or digest.",
   "url": "https://help.telecomsxchange.com/integrations/zoom-phone/",
   "markdown_url": "https://help.telecomsxchange.com/integrations/zoom-phone.md",
   "updated": "2026-10-23",
   "keywords": [
    "zoom phone",
    "zoom",
    "byoc",
    "bring your own carrier",
    "premise peering",
    "byoc-p",
    "sbc",
    "session border controller",
    "route group",
    "sip group",
    "audiocodes",
    "ribbon",
    "tls",
    "srtp",
    "digicert",
    "tech prefix",
    "no registration",
    "udp"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Can Zoom Phone register to TelecomsXchange?",
     "a": "No. TelecomsXchange is peering only and does not accept REGISTER. Zoom Phone doesn't connect to carriers in Premise Peering anyway: it peers with your SBC, and the SBC peers with TelecomsXchange by IP or digest authentication."
    },
    {
     "q": "Can Zoom Phone connect to TelecomsXchange without an SBC?",
     "a": "No. Premise Peering connects Zoom's data centres to an SBC you run, over TLS with Zoom's certificates. TelecomsXchange supports only SIP over UDP and isn't a Zoom BYOC Cloud Peering partner, so the SBC is required."
    },
    {
     "q": "Which SBC can I use?",
     "a": "One Zoom supports for Premise Peering, such as AudioCodes Mediant, Ribbon or Oracle. Check with your Zoom account team; see the AudioCodes and Ribbon guides for the TelecomsXchange side."
    },
    {
     "q": "Where does the tech prefix go?",
     "a": "On the SBC, in the number manipulation for calls from Zoom to TelecomsXchange: Zoom sends +447700900123 and the SBC sends 80039#447700900123 to sip01."
    }
   ],
   "text": "Zoom Phone to a route via your SBC 1. Zoom Phone: SIP group \u2192 route group 2. Your SBC (via TLS 5061, SRTP): AudioCodes, Ribbon or other supported SBC 3. TelecomsXchange (via 80039#447700900123): sip01, UDP 5060 4. Seller's route: The route you purchased This guide connects Zoom Phone to TelecomsXchange with Bring Your Own Carrier, Premise Peering (BYOC-P): Zoom Phone users call out through a purchased route, and numbers bought on TelecomsXchange ring in Zoom. Zoom's data centres peer with an SBC you run, and the SBC peers with TelecomsXchange. For the full list of TelecomsXchange values, see Connect a SIP platform. Zoom Phone Premise Peering connects to a supported SBC over TLS (port 5061, Zoom's DigiCert certificates) with encrypted media. TelecomsXchange supports SIP over UDP only, with no TLS or SRTP, and does not accept REGISTER, so it can't peer with Zoom directly. The SBC terminates TLS towards Zoom and talks plain SIP and RTP over UDP to TelecomsXchange. How does the call flow? Leg From \u2192 to Transport Number format Zoom side Zoom Phone data centres \u2194 your SBC's public IP, for example 203.0.113.10:5061 TLS, SRTP (as Zoom specifies at onboarding) E.164 with +: +447700900123 Carrier side Your SBC \u2194 sip01.telecomsxchange.com:5060 UDP, RTP Tech prefix + E.164 without +: 80039#447700900123 Premise Peering needs connectivity in both directions between the SBC and Zoom's data centres. Zoom gives you its signalling and media addresses, and the ports to open, for your region when it enables BYOC. Before you start - A SIP account with the SBC's public IP, for example 203.0.113.10, or a VoIP login and password from Edit Account \u2192 Add SIP Digest Auth. - A purchased route and its tech prefix from My Interconnections, for example 80039#. - A Zoom Phone account with Premise Peering (BYOC) enabled by Zoom, and an admin role with BYOC permissions. - An SBC that Zoom supports for Premise Peering (AudioCodes Mediant, Ribbon, Oracle and others), with a public IPv4 address and Zoom's DigiCert root and intermediate certificates installed. - Phone numbers bought on TelecomsXchange, to use as BYOC numbers. How do I connect Zoom Phone to the SBC? In the Zoom web portal, as an admin: 1. Go to Phone System Management \u2192 Company Info, choose the account (or a site), open Settings \u2192 Routing, and next to Session Border Controllers choose Add. Enter a display name and the SBC's public IPv4 address and port (TLS 5061), and save. 2. Under Routing \u2192 Route Groups, add a route group containing the SBC (add a second SBC for failover or load sharing). 3. Under Routing \u2192 SIP Groups, add a SIP group and assign the route group to it. Outbound calls from numbers in the SIP group go to its route group. 4. Under Phone System Management \u2192 Phone Numbers \u2192 BYOC, add the numbers you bought on TelecomsXchange (in E.164 with +), select the SIP group, and assign them to users, auto receptionists or call queues. If you can't add BYOC numbers yourself, Zoom support adds them. The SBC vendor's Zoom configuration note covers the Zoom-facing side: the TLS context and certificates, Zoom's IP addresses, SRTP and codecs. The AudioCodes and Oracle notes are linked under References. How do I send calls to TelecomsXchange? On the SBC, the carrier side is an ordinary UDP peer. The AudioCodes SBC and Ribbon SBC guides give the exact menus; the settings are: SBC setting Value Carrier peer sip01.telecomsxchange.com, port 5060, transport UDP Registration Off. TelecomsXchange is peering only Keepalive (OPTIONS) Off towards TelecomsXchange, which answers OPTIONS only within a call. Keep OPTIONS on towards Zoom if your SBC's Zoom note says so Authentication Send from the SBC's IP authorised on the account, or answer the 401/407 challenge with VOIP_LOGIN and VOIP_PASSWORD (the account's VoIP Login and VoIP Password) Media RTP, no SRTP; G.711 or G.729 as your route supports. TelecomsXchange doesn't transcode, so let the SBC transcode if Zoom and the route share no codec NAT The SBC's public IP in SIP and SDP on the carrier interface Add the tech prefix in the number manipulation for calls from Zoom to TelecomsXchange: remove the leading +, then add TECH_PREFIX in front, so +447700900123 leaves the SBC as 80039#447700900123. Then route calls from the Zoom peer to the TelecomsXchange peer. For several routes, add one manipulation and routing rule per destination prefix, each with its own tech prefix, or dial a routing group prefix such as 444101# and let TelecomsXchange choose. How do I receive calls from TelecomsXchange? Calls come from 174.136.44.213 over UDP, from source ports 5060 to 5072, with the number in E.164 without +, such as 14165551234. 1. On the SBC, classify 174.136.44.213 as the TelecomsXchange peer, and allow it on the firewall for UDP 5060 and the RTP range. 2. Add a number manipulation for calls from TelecomsXchange to Zoom that adds +, so 14165551234 reaches Zoom as +14165551234. 3. Route those calls to the Zoom peer. Zoom rings whatever the BYOC number is assigned to. Selling routes that terminate in Zoom Phone isn't a use case for Premise Peering: Zoom only accepts calls to BYOC numbers on your own account. How do I receive calls on numbers I bought? Set each number's SIP Endpoint (Primary) in DID Settings on TelecomsXchange to the SBC's carrier side, for example sip:14165551234@203.0.113.10:5060, optionally with a second SBC as SIP Endpoint (Secondary). Add the same number in Zoom as a BYOC number in the SIP group and assign it. How do I test it? 1. From the Zoom Phone app, call a number covered by the route. 2. On the SBC, follow the call in its trace tool (AudioCodes Syslog Viewer, Ribbon trace logs, or Wireshark): the TLS leg from Zoom with +447700900123, then the UDP INVITE to 80039#447700900123 (or 80039%23447700900123) and TelecomsXchange's reply. 3. In the TelecomsXchange portal, watch the call in Live Calls and find its SIP code in Logs \u2192 CDR (Voice). 4. In the Zoom web portal, check the call in Phone System Management \u2192 Call Logs. What if something goes wrong? You see What to do Zoom can't reach the SBC, or calls from Zoom never arrive TLS or connectivity problem on the Zoom side: certificates, the SBC's public IP and port in Session Border Controllers, or Zoom's addresses blocked on the firewall. This is between Zoom and the SBC, not TelecomsXchange. 401 or 407 repeated, then the call fails The SBC isn't answering TelecomsXchange's challenge. Check the VoIP login and password in its authentication settings. 403 Forbidden The SBC's public IP isn't authorised and no credentials were sent. Compare with IP Address and Additional Allowed IPs on Edit Account; check balance. 404 Not Found Tech prefix missing or + still in the number. Check the outbound number manipulation in the SBC trace. 408 or 503 from TelecomsXchange The SBC can't reach sip01 on UDP 5060, or the route is blocked or failed. Check the firewall and My Interconnections. One-way audio The SBC advertises a private IP on the carrier side, or RTP from 174.136.44.213 is blocked. Check NAT and media settings on the carrier interface. Inbound calls don't ring in Zoom No + on the number, the number isn't a BYOC number in the right SIP group, or 174.136.44.213 isn't classified to the TelecomsXchange peer. References - Zoom: Bring Your Own Carrier, Premises Peering (BYOC-P), Zoom Phone bluepaper - Zoom: Integrate ZPLS with PSTN (adding a Session Border Controller in the web portal) - AudioCodes: SBC with Zoom Phone Premise Peering configuration note - Oracle: Zoom Premise Peering with Oracle Enterprise SBC - anynode: Zoom Phone Premise Peering, Zoom web portal configuration",
   "sections": [
    {
     "id": "how-does-the-call-flow",
     "title": "How does the call flow?",
     "text": "Leg From \u2192 to Transport Number format Zoom side Zoom Phone data centres \u2194 your SBC's public IP, for example 203.0.113.10:5061 TLS, SRTP (as Zoom specifies at onboarding) E.164 with +: +447700900123 Carrier side Your SBC \u2194 sip01.telecomsxchange.com:5060 UDP, RTP Tech prefix + E.164 without +: 80039#447700900123 Premise Peering needs connectivity in both directions between the SBC and Zoom's data centres. Zoom gives you its signalling and media addresses, and the ports to open, for your region when it enables BYOC."
    },
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "- A SIP account with the SBC's public IP, for example 203.0.113.10, or a VoIP login and password from Edit Account \u2192 Add SIP Digest Auth. - A purchased route and its tech prefix from My Interconnections, for example 80039#. - A Zoom Phone account with Premise Peering (BYOC) enabled by Zoom, and an admin role with BYOC permissions. - An SBC that Zoom supports for Premise Peering (AudioCodes Mediant, Ribbon, Oracle and others), with a public IPv4 address and Zoom's DigiCert root and intermediate certificates installed. - Phone numbers bought on TelecomsXchange, to use as BYOC numbers."
    },
    {
     "id": "how-do-i-connect-zoom-phone-to-the-sbc",
     "title": "How do I connect Zoom Phone to the SBC?",
     "text": "In the Zoom web portal, as an admin: 1. Go to Phone System Management \u2192 Company Info, choose the account (or a site), open Settings \u2192 Routing, and next to Session Border Controllers choose Add. Enter a display name and the SBC's public IPv4 address and port (TLS 5061), and save. 2. Under Routing \u2192 Route Groups, add a route group containing the SBC (add a second SBC for failover or load sharing). 3. Under Routing \u2192 SIP Groups, add a SIP group and assign the route group to it. Outbound calls from numbers in the SIP group go to its route group. 4. Under Phone System Management \u2192 Phone Numbers \u2192 BYOC, add the numbers you bought on TelecomsXchange (in E.164 with +), select the SIP group, and assign them to users, auto receptionists or call queues. If you can't add BYOC numbers yourself, Zoom support adds them. The SBC vendor's Zoom configuration note covers the Zoom-facing side: the TLS context and certificates, Zoom's IP addresses, SRTP and codecs. The AudioCodes and Oracle notes are linked under References."
    },
    {
     "id": "how-do-i-send-calls-to-telecomsxchange",
     "title": "How do I send calls to TelecomsXchange?",
     "text": "On the SBC, the carrier side is an ordinary UDP peer. The AudioCodes SBC and Ribbon SBC guides give the exact menus; the settings are: SBC setting Value Carrier peer sip01.telecomsxchange.com, port 5060, transport UDP Registration Off. TelecomsXchange is peering only Keepalive (OPTIONS) Off towards TelecomsXchange, which answers OPTIONS only within a call. Keep OPTIONS on towards Zoom if your SBC's Zoom note says so Authentication Send from the SBC's IP authorised on the account, or answer the 401/407 challenge with VOIP_LOGIN and VOIP_PASSWORD (the account's VoIP Login and VoIP Password) Media RTP, no SRTP; G.711 or G.729 as your route supports. TelecomsXchange doesn't transcode, so let the SBC transcode if Zoom and the route share no codec NAT The SBC's public IP in SIP and SDP on the carrier interface Add the tech prefix in the number manipulation for calls from Zoom to TelecomsXchange: remove the leading +, then add TECH_PREFIX in front, so +447700900123 leaves the SBC as 80039#447700900123. Then route calls from the Zoom peer to the TelecomsXchange peer. For several routes, add one manipulation and routing rule per destination prefix, each with its own tech prefix, or dial a routing group prefix such as 444101# and let TelecomsXchange choose."
    },
    {
     "id": "how-do-i-receive-calls-from-telecomsxchange",
     "title": "How do I receive calls from TelecomsXchange?",
     "text": "Calls come from 174.136.44.213 over UDP, from source ports 5060 to 5072, with the number in E.164 without +, such as 14165551234. 1. On the SBC, classify 174.136.44.213 as the TelecomsXchange peer, and allow it on the firewall for UDP 5060 and the RTP range. 2. Add a number manipulation for calls from TelecomsXchange to Zoom that adds +, so 14165551234 reaches Zoom as +14165551234. 3. Route those calls to the Zoom peer. Zoom rings whatever the BYOC number is assigned to. Selling routes that terminate in Zoom Phone isn't a use case for Premise Peering: Zoom only accepts calls to BYOC numbers on your own account."
    },
    {
     "id": "how-do-i-receive-calls-on-numbers-i-bought",
     "title": "How do I receive calls on numbers I bought?",
     "text": "Set each number's SIP Endpoint (Primary) in DID Settings on TelecomsXchange to the SBC's carrier side, for example sip:14165551234@203.0.113.10:5060, optionally with a second SBC as SIP Endpoint (Secondary). Add the same number in Zoom as a BYOC number in the SIP group and assign it."
    },
    {
     "id": "how-do-i-test-it",
     "title": "How do I test it?",
     "text": "1. From the Zoom Phone app, call a number covered by the route. 2. On the SBC, follow the call in its trace tool (AudioCodes Syslog Viewer, Ribbon trace logs, or Wireshark): the TLS leg from Zoom with +447700900123, then the UDP INVITE to 80039#447700900123 (or 80039%23447700900123) and TelecomsXchange's reply. 3. In the TelecomsXchange portal, watch the call in Live Calls and find its SIP code in Logs \u2192 CDR (Voice). 4. In the Zoom web portal, check the call in Phone System Management \u2192 Call Logs."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do Zoom can't reach the SBC, or calls from Zoom never arrive TLS or connectivity problem on the Zoom side: certificates, the SBC's public IP and port in Session Border Controllers, or Zoom's addresses blocked on the firewall. This is between Zoom and the SBC, not TelecomsXchange. 401 or 407 repeated, then the call fails The SBC isn't answering TelecomsXchange's challenge. Check the VoIP login and password in its authentication settings. 403 Forbidden The SBC's public IP isn't authorised and no credentials were sent. Compare with IP Address and Additional Allowed IPs on Edit Account; check balance. 404 Not Found Tech prefix missing or + still in the number. Check the outbound number manipulation in the SBC trace. 408 or 503 from TelecomsXchange The SBC can't reach sip01 on UDP 5060, or the route is blocked or failed. Check the firewall and My Interconnections. One-way audio The SBC advertises a private IP on the carrier side, or RTP from 174.136.44.213 is blocked. Check NAT and media settings on the carrier interface. Inbound calls don't ring in Zoom No + on the number, the number isn't a BYOC number in the right SIP group, or 174.136.44.213 isn't classified to the TelecomsXchange peer."
    },
    {
     "id": "references",
     "title": "References",
     "text": "- Zoom: Bring Your Own Carrier, Premises Peering (BYOC-P), Zoom Phone bluepaper - Zoom: Integrate ZPLS with PSTN (adding a Session Border Controller in the web portal) - AudioCodes: SBC with Zoom Phone Premise Peering configuration note - Oracle: Zoom Premise Peering with Oracle Enterprise SBC - anynode: Zoom Phone Premise Peering, Zoom web portal configuration"
    }
   ]
  },
  {
   "slug": "vos3000",
   "section": "integrations",
   "title": "Connect VOS3000 to TelecomsXchange",
   "description": "Set up TelecomsXchange in VOS3000 as a static routing gateway with a callee rewrite rule for the tech prefix, and as a static mapping gateway when you sell.",
   "summary": "In VOS3000, add a static SIP routing gateway for sip01.telecomsxchange.com port 5060 and a routing callee rewrite rule with original prefix * and target prefix 80039#*, so 447700900123 leaves as 80039#447700900123. Authorise VOS3000's public IP on the TelecomsXchange account. To sell, add a static mapping gateway for IP 174.136.44.213 tied to a billing account with your rate group.",
   "url": "https://help.telecomsxchange.com/integrations/vos3000/",
   "markdown_url": "https://help.telecomsxchange.com/integrations/vos3000.md",
   "updated": "2026-10-23",
   "keywords": [
    "vos3000",
    "vos",
    "kunshi",
    "softswitch",
    "routing gateway",
    "mapping gateway",
    "static gateway",
    "callee rewrite rule",
    "routing callee rewrite rule",
    "gateway prefix",
    "clearing account",
    "rate group",
    "tech prefix",
    "ip authentication",
    "no registration"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Can VOS3000 register to TelecomsXchange?",
     "a": "No. TelecomsXchange is peering only and does not accept REGISTER. Set the routing gateway's Gateway type to Static, not Registration, and authorise VOS3000's public IP on the TelecomsXchange account."
    },
    {
     "q": "Where does the tech prefix go in VOS3000?",
     "a": "In the routing gateway's Routing callee rewrite rule: original prefix * and target prefix 80039#*. That adds 80039# in front of every number sent through the gateway. Use one routing gateway per purchased route."
    },
    {
     "q": "What is the difference between a routing gateway and a mapping gateway?",
     "a": "A routing gateway is where VOS3000 sends calls, so TelecomsXchange is a routing gateway when you buy. A mapping gateway is where calls come from, so TelecomsXchange is a mapping gateway, IP 174.136.44.213, when you sell."
    },
    {
     "q": "Can I import TelecomsXchange rates into VOS3000?",
     "a": "Edit Account offers each purchased route's rates in Default, Cloud Softswitch and Sippy formats. Convert the Default file into a VOS3000 rate group and assign it to the routing gateway's clearing account to track cost."
    }
   ],
   "text": "VOS3000 to a purchased route 1. Your VOS3000: Static routing gateway, no registration 2. TelecomsXchange (via 80039#447700900123): sip01, UDP 5060 3. Seller's route: The route you purchased VOS3000 models carriers as gateways. A routing gateway is a destination VOS3000 sends calls to; a mapping gateway is a source it accepts calls from and bills to an account. TelecomsXchange is a routing gateway when you buy routes and a mapping gateway when you sell them. For every TelecomsXchange value in one place, see Connect a SIP platform. TelecomsXchange does not accept SIP REGISTER. Set the routing gateway's Gateway type to Static, never Registration, and don't add an entry in Registration management for TelecomsXchange. VOS3000 is recognised by its source IP. Before you start - A SIP account on TelecomsXchange with VOS3000's public signalling IP, for example 203.0.113.10. Add other VOS3000 servers under Edit Account \u2192 (Additional: n) \u2192 Add New IP. - A purchased route and its tech prefix from My Interconnections, for example 80039#. In this guide, TECH_PREFIX stands for that value. - Access to the VOS3000 client (the desktop management console) with rights to Operation management. - To sell: a route with IP Address:Port set to VOS3000, for example 203.0.113.10:5060, and the values in Interconnect Info. How do I send calls to TelecomsXchange? 1. Open Navigation \u2192 Operation management \u2192 Gateway operation \u2192 Routing gateway and add a gateway, one per purchased route: - Gateway name: for example TCXC-80039-UK. For a static gateway it only has to be unique. - Gateway prefix: the destination prefixes this route covers, separated by commas, for example 44. Leave it empty if you select the gateway by routing groups instead. 2. Open the gateway's Additional settings \u2192 Normal and set: - Gateway type: Static (no registration). - Protocol: SIP. - Ip: 174.136.44.213, which sip01.telecomsxchange.com resolves to. Recent releases also accept the host name. - Signaling port: 5060. - Media proxy: Auto, or On if your customers sit behind NAT. 3. Open Additional settings \u2192 Routing prefix and add a Routing callee rewrite rule: Original prefix Target prefix Number in Number out 80039# 447700900123 80039#447700900123 The original prefix matches every number, and in the target keeps the number after the added prefix. Replace 80039# with your TECH_PREFIX. 4. Make sure the number reaches the routing gateway in E.164 format, without + or 00. If your customers dial 00, strip it on their mapping gateway's callee rewrite rule (original prefix 00, target prefix empty), or add a second rule here: original 00, target 80039#. 5. Leave SIP OPTIONS keepalive off for this gateway. TelecomsXchange answers OPTIONS only within a call. 6. Set Routing clearing account to the account that tracks your TelecomsXchange cost, with a rate group built from the route's rates (see below). Digest variant. VOS3000 static routing gateways are normally authenticated by IP, and that is the setup we recommend. If you have to send from an IP that isn't on the account, add the IP under Additional Allowed IPs instead; the digest fields VOS3000 offers on routing gateways vary by release, so check yours (Additional settings \u2192 Protocol \u2192 SIP \u2192 Authentication user) before relying on them. One routing gateway per tech prefix lets VOS3000 sort your TelecomsXchange routes by priority or cost. To let TelecomsXchange choose instead, add a single gateway whose rewrite target is a routing group prefix, for example 444101#. How do I bill the cost? On TelecomsXchange, open Accounts \u2192 Edit Account and download the route's rates from Purchased Routes. VOS3000 has no direct import for the TelecomsXchange formats, so take the Default file and load its prefixes and rates into a rate group in Rate group management. Assign that rate group to the clearing account set on the routing gateway; VOS3000's clearing reports then show your cost per gateway, and Lowest profit rate limit can stop a route being used below a margin. How do I receive calls from TelecomsXchange? When you sell a route, TelecomsXchange is your customer. Its calls 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 your firewall for SIP (UDP) and your media port range. 2. Create a billing account for TelecomsXchange in Account management, with the rate group you sell at. 3. Open Navigation \u2192 Operation management \u2192 Gateway operation \u2192 Mapping gateway and add a gateway: - Gateway name: for example TCXC-IN. - Account id: the billing account from step 2. 4. In its Additional settings \u2192 Normal, set Gateway type to Static and Ip to 174.136.44.213. VOS3000 matches calls by source IP; because TelecomsXchange sends from several source ports, use Call authentication mode: IP, not IP Address and Port. 5. Set which routing gateways this mapping gateway may use (Routing gateway group, or Routing gateway name allow list). 6. If your TelecomsXchange route adds an Outgoing Prefix (Edit Route \u2192 Outgoing Number Translation Parameters), remove it with the mapping gateway's callee rewrite rule, for example original prefix 77#, target prefix empty. If you also buy from TelecomsXchange, the same IP, 174.136.44.213, is both a routing gateway and a mapping gateway. That is normal in VOS3000: the routing gateway is used for calls you send, the mapping gateway for calls you receive. Don't give the mapping gateway permission to route back to the TelecomsXchange routing gateway, or a misrouted call can loop. How do I receive calls on numbers I bought? Set the number's SIP Endpoint (Primary) in DID Settings on TelecomsXchange to VOS3000, for example sip:14165551234@203.0.113.10:5060. The call arrives from 174.136.44.213 and is matched by the mapping gateway above. Route the number to the phone or gateway that should answer it; for example, register the number as a phone in VOS3000 or add a routing gateway whose Gateway prefix is 14165551234. How do I test it? 1. Place a call from a test mapping gateway or phone to a number covered by the route. 2. Watch it in Operation management \u2192 Current call, then open the CDR (Data query \u2192 CDR) to see the routing gateway used, the callee after rewrite (80039#447700900123) and the end reason. 3. On the VOS3000 server shell, sngrep port 5060 or tcpdump -n -i any udp port 5060 shows the INVITE and the reply from sip01. 4. On TelecomsXchange, watch the call in Live Calls and find its SIP code in Logs \u2192 CDR (Voice). What if something goes wrong? You see What to do 401 or 407, then the call fails VOS3000's source IP isn't authorised, so TelecomsXchange challenges for a login. Add the IP that actually sends (check the server's public NAT IP) to IP Address or Additional Allowed IPs on Edit Account. 403 Forbidden VOS3000's public IP isn't authorised and no credentials were sent, or the account is blocked or out of balance. 404 Not Found Missing or wrong tech prefix, or 00 left in the number. Check the Routing callee rewrite rule and the callee after rewrite in the CDR. 408 Request Timeout No reply from sip01. Check the gateway Ip and Signaling port, the Local ip VOS3000 sends from, and outbound UDP 5060. 503 Service Unavailable The route is blocked or failed on the seller's side. Check My Interconnections, and give the call a second routing gateway to fail over to. One-way or no audio VOS3000 advertises a private IP, or RTP is blocked. Set Media proxy to On for NAT customers, and open the media port range on the firewall. Inbound calls rejected No mapping gateway matches 174.136.44.213, or it is set to Dynamic. Check Gateway type: Static, the Ip field and the firewall. Inbound call rejected for no route or no rate The mapping gateway's account rate group, or its allowed routing gateways, don't cover the E.164 destination. References - VOS3000 manual (V2.1.8): Routing Gateway, Mapping Gateway, Rewrite Rule, Registration Management - VOS3000 knowledge hub: vendor failover with gateway prefixes",
   "sections": [
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "- A SIP account on TelecomsXchange with VOS3000's public signalling IP, for example 203.0.113.10. Add other VOS3000 servers under Edit Account \u2192 (Additional: n) \u2192 Add New IP. - A purchased route and its tech prefix from My Interconnections, for example 80039#. In this guide, TECH_PREFIX stands for that value. - Access to the VOS3000 client (the desktop management console) with rights to Operation management. - To sell: a route with IP Address:Port set to VOS3000, for example 203.0.113.10:5060, and the values in Interconnect Info."
    },
    {
     "id": "how-do-i-send-calls-to-telecomsxchange",
     "title": "How do I send calls to TelecomsXchange?",
     "text": "1. Open Navigation \u2192 Operation management \u2192 Gateway operation \u2192 Routing gateway and add a gateway, one per purchased route: - Gateway name: for example TCXC-80039-UK. For a static gateway it only has to be unique. - Gateway prefix: the destination prefixes this route covers, separated by commas, for example 44. Leave it empty if you select the gateway by routing groups instead. 2. Open the gateway's Additional settings \u2192 Normal and set: - Gateway type: Static (no registration). - Protocol: SIP. - Ip: 174.136.44.213, which sip01.telecomsxchange.com resolves to. Recent releases also accept the host name. - Signaling port: 5060. - Media proxy: Auto, or On if your customers sit behind NAT. 3. Open Additional settings \u2192 Routing prefix and add a Routing callee rewrite rule: Original prefix Target prefix Number in Number out 80039# 447700900123 80039#447700900123 The original prefix matches every number, and in the target keeps the number after the added prefix. Replace 80039# with your TECH_PREFIX. 4. Make sure the number reaches the routing gateway in E.164 format, without + or 00. If your customers dial 00, strip it on their mapping gateway's callee rewrite rule (original prefix 00, target prefix empty), or add a second rule here: original 00, target 80039#. 5. Leave SIP OPTIONS keepalive off for this gateway. TelecomsXchange answers OPTIONS only within a call. 6. Set Routing clearing account to the account that tracks your TelecomsXchange cost, with a rate group built from the route's rates (see below). Digest variant. VOS3000 static routing gateways are normally authenticated by IP, and that is the setup we recommend. If you have to send from an IP that isn't on the account, add the IP under Additional Allowed IPs instead; the digest fields VOS3000 offers on routing gateways vary by release, so check yours (Additional settings \u2192 Protocol \u2192 SIP \u2192 Authentication user) before relying on them. One routing gateway per tech prefix lets VOS3000 sort your TelecomsXchange routes by priority or cost. To let TelecomsXchange choose instead, add a single gateway whose rewrite target is a routing group prefix, for example 444101#. How do I bill the cost? On TelecomsXchange, open Accounts \u2192 Edit Account and download the route's rates from Purchased Routes. VOS3000 has no direct import for the TelecomsXchange formats, so take the Default file and load its prefixes and rates into a rate group in Rate group management. Assign that rate group to the clearing account set on the routing gateway; VOS3000's clearing reports then show your cost per gateway, and Lowest profit rate limit can stop a route being used below a margin."
    },
    {
     "id": "how-do-i-receive-calls-from-telecomsxchange",
     "title": "How do I receive calls from TelecomsXchange?",
     "text": "When you sell a route, TelecomsXchange is your customer. Its calls 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 your firewall for SIP (UDP) and your media port range. 2. Create a billing account for TelecomsXchange in Account management, with the rate group you sell at. 3. Open Navigation \u2192 Operation management \u2192 Gateway operation \u2192 Mapping gateway and add a gateway: - Gateway name: for example TCXC-IN. - Account id: the billing account from step 2. 4. In its Additional settings \u2192 Normal, set Gateway type to Static and Ip to 174.136.44.213. VOS3000 matches calls by source IP; because TelecomsXchange sends from several source ports, use Call authentication mode: IP, not IP Address and Port. 5. Set which routing gateways this mapping gateway may use (Routing gateway group, or Routing gateway name allow list). 6. If your TelecomsXchange route adds an Outgoing Prefix (Edit Route \u2192 Outgoing Number Translation Parameters), remove it with the mapping gateway's callee rewrite rule, for example original prefix 77#, target prefix empty. If you also buy from TelecomsXchange, the same IP, 174.136.44.213, is both a routing gateway and a mapping gateway. That is normal in VOS3000: the routing gateway is used for calls you send, the mapping gateway for calls you receive. Don't give the mapping gateway permission to route back to the TelecomsXchange routing gateway, or a misrouted call can loop."
    },
    {
     "id": "how-do-i-receive-calls-on-numbers-i-bought",
     "title": "How do I receive calls on numbers I bought?",
     "text": "Set the number's SIP Endpoint (Primary) in DID Settings on TelecomsXchange to VOS3000, for example sip:14165551234@203.0.113.10:5060. The call arrives from 174.136.44.213 and is matched by the mapping gateway above. Route the number to the phone or gateway that should answer it; for example, register the number as a phone in VOS3000 or add a routing gateway whose Gateway prefix is 14165551234."
    },
    {
     "id": "how-do-i-test-it",
     "title": "How do I test it?",
     "text": "1. Place a call from a test mapping gateway or phone to a number covered by the route. 2. Watch it in Operation management \u2192 Current call, then open the CDR (Data query \u2192 CDR) to see the routing gateway used, the callee after rewrite (80039#447700900123) and the end reason. 3. On the VOS3000 server shell, sngrep port 5060 or tcpdump -n -i any udp port 5060 shows the INVITE and the reply from sip01. 4. On TelecomsXchange, watch the call in Live Calls and find its SIP code in Logs \u2192 CDR (Voice)."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do 401 or 407, then the call fails VOS3000's source IP isn't authorised, so TelecomsXchange challenges for a login. Add the IP that actually sends (check the server's public NAT IP) to IP Address or Additional Allowed IPs on Edit Account. 403 Forbidden VOS3000's public IP isn't authorised and no credentials were sent, or the account is blocked or out of balance. 404 Not Found Missing or wrong tech prefix, or 00 left in the number. Check the Routing callee rewrite rule and the callee after rewrite in the CDR. 408 Request Timeout No reply from sip01. Check the gateway Ip and Signaling port, the Local ip VOS3000 sends from, and outbound UDP 5060. 503 Service Unavailable The route is blocked or failed on the seller's side. Check My Interconnections, and give the call a second routing gateway to fail over to. One-way or no audio VOS3000 advertises a private IP, or RTP is blocked. Set Media proxy to On for NAT customers, and open the media port range on the firewall. Inbound calls rejected No mapping gateway matches 174.136.44.213, or it is set to Dynamic. Check Gateway type: Static, the Ip field and the firewall. Inbound call rejected for no route or no rate The mapping gateway's account rate group, or its allowed routing gateways, don't cover the E.164 destination."
    },
    {
     "id": "references",
     "title": "References",
     "text": "- VOS3000 manual (V2.1.8): Routing Gateway, Mapping Gateway, Rewrite Rule, Registration Management - VOS3000 knowledge hub: vendor failover with gateway prefixes"
    }
   ]
  },
  {
   "slug": "voipswitch",
   "section": "integrations",
   "title": "Connect VoipSwitch to TelecomsXchange",
   "description": "Add TelecomsXchange to VoipSwitch as a gateway with the tech prefix as its dialed number prefix, and as a wholesale client authenticated by IP 174.136.44.213.",
   "summary": "In VoipSwitch (VSM), add a gateway for sip01.telecomsxchange.com port 5060 over UDP with Ping off, put the tech prefix (80039#) in its Dialed number prefix field, and point a routing plan entry at it. Authorise VoipSwitch's public IP on the TelecomsXchange account, or fill the gateway's User name and User password with the VoIP login. To sell, add a wholesale client with IP 174.136.44.213.",
   "url": "https://help.telecomsxchange.com/integrations/voipswitch/",
   "markdown_url": "https://help.telecomsxchange.com/integrations/voipswitch.md",
   "updated": "2026-10-23",
   "keywords": [
    "voipswitch",
    "vsm",
    "vsm4",
    "voiceserve",
    "gateway",
    "routing plan",
    "dialed number prefix",
    "dialing plan prefix",
    "wholesale client",
    "ip numbers",
    "tariff",
    "tech prefix",
    "ip authentication",
    "digest authentication",
    "no registration"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Can VoipSwitch register to TelecomsXchange?",
     "a": "No. TelecomsXchange is peering only and does not accept REGISTER. A VoipSwitch gateway sends calls without registering; it is recognised by its source IP or answers the digest challenge with the gateway's User name and User password."
    },
    {
     "q": "Where does the tech prefix go?",
     "a": "In the gateway's Dialed number prefix field, for example 80039#. VoipSwitch adds it in front of the number sent to that gateway. Use one gateway per purchased route."
    },
    {
     "q": "Should I turn on Ping for the gateway?",
     "a": "No. TelecomsXchange answers SIP OPTIONS only within a call, so with Ping on the gateway can be marked down. With Ping off, VoipSwitch treats the gateway as up."
    },
    {
     "q": "How does TelecomsXchange appear when I sell to it?",
     "a": "As one wholesale client authenticated by IP 174.136.44.213. Calls arrive in E.164 format such as 14165551234 and are billed with the client's tariff."
    }
   ],
   "text": "VoipSwitch to a purchased route 1. Your VoipSwitch: Gateway, Ping off, no registration 2. TelecomsXchange (via 80039#447700900123): sip01, UDP 5060 3. Seller's route: The route you purchased VoipSwitch (VoipSwitch Manager, VSM) sends calls to carriers through gateways chosen by a routing plan, and accepts calls from carriers and resellers as wholesale clients. TelecomsXchange is a gateway when you buy routes and a wholesale client when you sell them. For every TelecomsXchange value in one place, see Connect a SIP platform. TelecomsXchange does not accept SIP REGISTER. A VoipSwitch gateway doesn't register, so there is nothing to turn off, but don't configure TelecomsXchange as a registration or SIP account anywhere else. VoipSwitch is recognised by its source IP or by digest authentication on the INVITE. Before you start - A SIP account on TelecomsXchange with VoipSwitch's public signalling IP, for example 203.0.113.10, or a VoIP login and password from Edit Account \u2192 Add SIP Digest Auth. - A purchased route and its tech prefix from My Interconnections, for example 80039#. In this guide, TECH_PREFIX stands for that value, and VOIP_LOGIN and VOIP_PASSWORD for the account's VoIP Login and VoIP Password. - Admin access to VSM. - To sell: a route with IP Address:Port set to VoipSwitch, for example 203.0.113.10:5060, and the values in Interconnect Info. How do I send calls to TelecomsXchange? 1. In VSM, go to Calls routing \u2192 Gateways and click Add. Add one gateway per purchased route. 2. On the General tab, set: - Name: for example TCXC 80039 UK. It is only a label. - IP number: sip01.telecomsxchange.com. VoipSwitch accepts a domain name here; it resolves to 174.136.44.213. - Port: 5060. - Protocol: UDP. - Ping: off. TelecomsXchange answers OPTIONS only within a call; with Ping off, the gateway status stays up. - User name and User password: leave empty for IP authentication, or enter VOIP_LOGIN and VOIP_PASSWORD for digest authentication. 3. Put the tech prefix in the gateway's Dialed number prefix field: 80039#. VoipSwitch adds it in front of the number, so 447700900123 leaves as 80039#447700900123. 4. Enable the codecs the route supports (G.729 and G.711 are typical; the Purchased Route Confirmation email lists them). TelecomsXchange passes codecs through and doesn't transcode. 5. Go to Calls routing \u2192 Routing plan and add an entry for the destinations the route covers, for example prefix 44, with the TelecomsXchange gateway as its route. Numbers must reach the gateway in E.164 format, without + or 00. If your clients dial 00, strip it with the client's Dialing plan prefix rule 00->, and copy the same rule to the Tariff prefix if your tariffs are in E.164. Prefix syntax. VoipSwitch's prefix fields take a small rule language: a plain value such as 80039# is added in front, 00-> removes a leading 00, and 00->80039# replaces 00 with the tech prefix in one step. If a dialing plan rule and a gateway rule both apply, the dialing plan rule wins. To let TelecomsXchange pick the route, use a single gateway whose Dialed number prefix is a routing group prefix such as 444101#. How do I bill the cost? On TelecomsXchange, open Accounts \u2192 Edit Account and download the route's rates from Purchased Routes in Default format. Import them into a VoipSwitch tariff (3.2 How to add/import tariff rates) and set it as the gateway's tariff, so VoipSwitch records your cost per call. How do I receive calls from TelecomsXchange? When you sell a route, TelecomsXchange is your customer. Its calls 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 your firewall for SIP (UDP) and your RTP range. 2. In VSM, add a client of the Wholesale type, for example TelecomsXchange. 3. On its IP Numbers tab, add 174.136.44.213. Wholesale clients are authenticated by IP address, and calls from that IP are billed to this client. 4. Assign the tariff you sell at; every client account needs one, even if you only use it to accept calls. 5. Make sure your routing plan sends the E.164 destinations onward to your own gateways. 6. If your TelecomsXchange route adds an Outgoing Prefix (Edit Route \u2192 Outgoing Number Translation Parameters), strip it with the client's Dialing plan prefix, for example 77#->. If you also buy from TelecomsXchange, don't let the wholesale client's calls route back to the TelecomsXchange gateway. Restrict that client's routing so a misrouted call can't loop. How do I receive calls on numbers I bought? Set the number's SIP Endpoint (Primary) in DID Settings on TelecomsXchange to VoipSwitch, for example sip:14165551234@203.0.113.10:5060. VoipSwitch authenticates DID sources as wholesale clients, so the same client with IP 174.136.44.213 accepts the call; then assign the number in VoipSwitch's DID settings to the retail client, PBX or IVR that should answer it. How do I test it? 1. Place a call from a test client to a number covered by the route. 2. In VSM, check the active calls and the call history for the gateway used, the dialed number sent (80039#447700900123) and the result. 3. On the VoipSwitch server, sngrep port 5060 or Wireshark shows the INVITE and the reply from sip01. 4. On TelecomsXchange, watch the call in Live Calls and find its SIP code in Logs \u2192 CDR (Voice). What if something goes wrong? You see What to do 401 or 407, then the call fails VoipSwitch's IP isn't authorised and the gateway's User name and User password are empty or wrong. Enter VOIP_LOGIN and VOIP_PASSWORD from Edit Account. 403 Forbidden VoipSwitch's public IP isn't authorised and no valid credentials were sent, or the account is blocked or out of balance. 404 Not Found Missing or wrong tech prefix, or 00 left in the number. Check the gateway's Dialed number prefix and the client's dialing plan rules. 408 Request Timeout No reply from sip01. Check the gateway's IP number, Port and Protocol, and outbound UDP 5060. 503 Service Unavailable The route is blocked or failed on the seller's side. Check My Interconnections, and give the routing plan entry a second gateway. Gateway shown as down Ping is on. Turn it off for the TelecomsXchange gateway. One-way or no audio VoipSwitch advertises a private IP, or RTP is blocked. Check the media IP in the SDP and open the RTP range. Inbound calls rejected 174.136.44.213 isn't on the wholesale client's IP Numbers tab, the client has no tariff, or the firewall blocks it. References - VoipSwitch: How to add gateway - VoipSwitch: How to handle prefix modifications - VoipSwitch: How to route a client call to a specific gateway - VoipSwitch: Routing plan - VoipSwitch: Wholesale clients - VoipSwitch: Inbound DIDs flow - VoipSwitch: How to add/import tariff rates",
   "sections": [
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "- A SIP account on TelecomsXchange with VoipSwitch's public signalling IP, for example 203.0.113.10, or a VoIP login and password from Edit Account \u2192 Add SIP Digest Auth. - A purchased route and its tech prefix from My Interconnections, for example 80039#. In this guide, TECH_PREFIX stands for that value, and VOIP_LOGIN and VOIP_PASSWORD for the account's VoIP Login and VoIP Password. - Admin access to VSM. - To sell: a route with IP Address:Port set to VoipSwitch, for example 203.0.113.10:5060, and the values in Interconnect Info."
    },
    {
     "id": "how-do-i-send-calls-to-telecomsxchange",
     "title": "How do I send calls to TelecomsXchange?",
     "text": "1. In VSM, go to Calls routing \u2192 Gateways and click Add. Add one gateway per purchased route. 2. On the General tab, set: - Name: for example TCXC 80039 UK. It is only a label. - IP number: sip01.telecomsxchange.com. VoipSwitch accepts a domain name here; it resolves to 174.136.44.213. - Port: 5060. - Protocol: UDP. - Ping: off. TelecomsXchange answers OPTIONS only within a call; with Ping off, the gateway status stays up. - User name and User password: leave empty for IP authentication, or enter VOIP_LOGIN and VOIP_PASSWORD for digest authentication. 3. Put the tech prefix in the gateway's Dialed number prefix field: 80039#. VoipSwitch adds it in front of the number, so 447700900123 leaves as 80039#447700900123. 4. Enable the codecs the route supports (G.729 and G.711 are typical; the Purchased Route Confirmation email lists them). TelecomsXchange passes codecs through and doesn't transcode. 5. Go to Calls routing \u2192 Routing plan and add an entry for the destinations the route covers, for example prefix 44, with the TelecomsXchange gateway as its route. Numbers must reach the gateway in E.164 format, without + or 00. If your clients dial 00, strip it with the client's Dialing plan prefix rule 00->, and copy the same rule to the Tariff prefix if your tariffs are in E.164. Prefix syntax. VoipSwitch's prefix fields take a small rule language: a plain value such as 80039# is added in front, 00-> removes a leading 00, and 00->80039# replaces 00 with the tech prefix in one step. If a dialing plan rule and a gateway rule both apply, the dialing plan rule wins. To let TelecomsXchange pick the route, use a single gateway whose Dialed number prefix is a routing group prefix such as 444101#. How do I bill the cost? On TelecomsXchange, open Accounts \u2192 Edit Account and download the route's rates from Purchased Routes in Default format. Import them into a VoipSwitch tariff (3.2 How to add/import tariff rates) and set it as the gateway's tariff, so VoipSwitch records your cost per call."
    },
    {
     "id": "how-do-i-receive-calls-from-telecomsxchange",
     "title": "How do I receive calls from TelecomsXchange?",
     "text": "When you sell a route, TelecomsXchange is your customer. Its calls 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 your firewall for SIP (UDP) and your RTP range. 2. In VSM, add a client of the Wholesale type, for example TelecomsXchange. 3. On its IP Numbers tab, add 174.136.44.213. Wholesale clients are authenticated by IP address, and calls from that IP are billed to this client. 4. Assign the tariff you sell at; every client account needs one, even if you only use it to accept calls. 5. Make sure your routing plan sends the E.164 destinations onward to your own gateways. 6. If your TelecomsXchange route adds an Outgoing Prefix (Edit Route \u2192 Outgoing Number Translation Parameters), strip it with the client's Dialing plan prefix, for example 77#->. If you also buy from TelecomsXchange, don't let the wholesale client's calls route back to the TelecomsXchange gateway. Restrict that client's routing so a misrouted call can't loop."
    },
    {
     "id": "how-do-i-receive-calls-on-numbers-i-bought",
     "title": "How do I receive calls on numbers I bought?",
     "text": "Set the number's SIP Endpoint (Primary) in DID Settings on TelecomsXchange to VoipSwitch, for example sip:14165551234@203.0.113.10:5060. VoipSwitch authenticates DID sources as wholesale clients, so the same client with IP 174.136.44.213 accepts the call; then assign the number in VoipSwitch's DID settings to the retail client, PBX or IVR that should answer it."
    },
    {
     "id": "how-do-i-test-it",
     "title": "How do I test it?",
     "text": "1. Place a call from a test client to a number covered by the route. 2. In VSM, check the active calls and the call history for the gateway used, the dialed number sent (80039#447700900123) and the result. 3. On the VoipSwitch server, sngrep port 5060 or Wireshark shows the INVITE and the reply from sip01. 4. On TelecomsXchange, watch the call in Live Calls and find its SIP code in Logs \u2192 CDR (Voice)."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do 401 or 407, then the call fails VoipSwitch's IP isn't authorised and the gateway's User name and User password are empty or wrong. Enter VOIP_LOGIN and VOIP_PASSWORD from Edit Account. 403 Forbidden VoipSwitch's public IP isn't authorised and no valid credentials were sent, or the account is blocked or out of balance. 404 Not Found Missing or wrong tech prefix, or 00 left in the number. Check the gateway's Dialed number prefix and the client's dialing plan rules. 408 Request Timeout No reply from sip01. Check the gateway's IP number, Port and Protocol, and outbound UDP 5060. 503 Service Unavailable The route is blocked or failed on the seller's side. Check My Interconnections, and give the routing plan entry a second gateway. Gateway shown as down Ping is on. Turn it off for the TelecomsXchange gateway. One-way or no audio VoipSwitch advertises a private IP, or RTP is blocked. Check the media IP in the SDP and open the RTP range. Inbound calls rejected 174.136.44.213 isn't on the wholesale client's IP Numbers tab, the client has no tariff, or the firewall blocks it."
    },
    {
     "id": "references",
     "title": "References",
     "text": "- VoipSwitch: How to add gateway - VoipSwitch: How to handle prefix modifications - VoipSwitch: How to route a client call to a specific gateway - VoipSwitch: Routing plan - VoipSwitch: Wholesale clients - VoipSwitch: Inbound DIDs flow - VoipSwitch: How to add/import tariff rates"
    }
   ]
  },
  {
   "slug": "mor-kolmisoft",
   "section": "integrations",
   "title": "Connect MOR (Kolmisoft) to TelecomsXchange",
   "description": "Add TelecomsXchange to Kolmisoft MOR as a SIP provider authenticated by IP with a provider rule for the tech prefix, and accept it as an IP-authenticated device.",
   "summary": "In MOR, add a SIP provider with Hostname sip01.telecomsxchange.com, Server IP 174.136.44.213, Port 5060, Authenticate by IP on and Register off, then add a provider rule that adds the tech prefix (80039#) and put the provider in an LCR. To sell, accept 174.136.44.213 as an IP-authenticated device for a user with your tariff, or assign the TelecomsXchange provider to that user if you also buy.",
   "url": "https://help.telecomsxchange.com/integrations/mor-kolmisoft/",
   "markdown_url": "https://help.telecomsxchange.com/integrations/mor-kolmisoft.md",
   "updated": "2026-10-23",
   "keywords": [
    "mor",
    "kolmisoft",
    "mor billing",
    "mor switch",
    "provider",
    "provider rules",
    "lcr",
    "tariff",
    "localization",
    "device",
    "ip authentication",
    "authenticate by ip",
    "register",
    "call tracing",
    "tech prefix",
    "digest authentication",
    "no registration"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Can MOR register to TelecomsXchange?",
     "a": "No. TelecomsXchange is peering only and does not accept REGISTER. Leave Register unticked on the provider and use Authenticate by IP, or Login and Password for digest authentication on the INVITE."
    },
    {
     "q": "Where does the tech prefix go in MOR?",
     "a": "In a Provider Rule (destination rule) that adds the prefix, for example Add 80039#. MOR keeps numbers in E.164 internally and Provider Rules convert them to the provider's format, so 447700900123 leaves as 80039#447700900123."
    },
    {
     "q": "I buy and sell with TelecomsXchange. Do I need two entries for 174.136.44.213?",
     "a": "Kolmisoft recommends one provider for both directions when a carrier uses the same IP. Assign the TelecomsXchange provider to a user, and calls it sends are billed to that user."
    },
    {
     "q": "How do I check why a call fails before it reaches TelecomsXchange?",
     "a": "Use Call Tracing in SETTINGS, Billing, Functions. It shows missing tariffs, rates, LCR entries and whether Provider Rules turned the number into 80039#447700900123."
    }
   ],
   "text": "MOR to a purchased route 1. Your MOR: SIP provider, Register off 2. TelecomsXchange (via 80039#447700900123): sip01, UDP 5060 3. Seller's route: The route you purchased MOR (Kolmisoft's softswitch and billing platform) sends calls through providers, chosen by an LCR, and accepts calls from devices that belong to users. TelecomsXchange is a provider when you buy routes and a user's device (or a provider assigned to a user) when you sell them. For every TelecomsXchange value in one place, see Connect a SIP platform. TelecomsXchange does not accept SIP REGISTER. Leave Register unticked on the provider. MOR is recognised by its source IP or by digest authentication on the INVITE, using the provider's Login and Password. Before you start - A SIP account on TelecomsXchange with MOR's public signalling IP (each Asterisk server that sends calls), for example 203.0.113.10, or a VoIP login and password from Edit Account \u2192 Add SIP Digest Auth. - A purchased route and its tech prefix from My Interconnections, for example 80039#. In this guide, TECH_PREFIX stands for that value, and VOIP_LOGIN and VOIP_PASSWORD for the account's VoIP Login and VoIP Password. - An admin login to MOR, and a provider tariff (MOR won't create a provider without one). - To sell: a route with IP Address:Port set to MOR, for example 203.0.113.10:5060, and the values in Interconnect Info. How do I send calls to TelecomsXchange? 1. Create a provider tariff for the route. On TelecomsXchange, download the route's rates from Accounts \u2192 Edit Account \u2192 Purchased Routes in Default format and import them into it. 2. Go to SETTINGS \u2192 Billing \u2192 Providers and click New Provider. Enter a Name such as TCXC 80039 UK, choose Technology: SIP, the tariff, and the Asterisk server, then click Create. 3. Edit the provider and set: - Authentication: tick Authenticate by IP; leave Register unticked. For digest authentication, untick Authenticate by IP and enter VOIP_LOGIN in Login and VOIP_PASSWORD in Password (MOR can't combine IP and login authentication on one provider). - Network related: Hostname sip01.telecomsxchange.com, Server IP 174.136.44.213, Port 5060, Qualify off. TelecomsXchange answers OPTIONS only within a call. - Codecs: the codecs the route supports, for example G.729 and G.711. TelecomsXchange doesn't transcode. - Advanced \u2192 Transport: UDP. 4. Click the Provider Rules icon next to the provider and add a Destination Rule that adds the tech prefix: Name Cut Add Min len Max len TCXC prefix (empty) 80039# 1 100 MOR works in E.164, so 447700900123 leaves as 80039#447700900123. Check that your users' Localization turns what they dial into E.164 (for example, cut 00) before this rule runs. 5. Go to SETTINGS \u2192 Billing \u2192 LCR, open your LCR (or create one By Price or By priority), click the number in the Providers column and add the TelecomsXchange provider. 6. Make sure the users who should reach TelecomsXchange use that LCR, and that their tariff has rates for the destinations. One provider per tech prefix lets MOR's LCR choose between your TelecomsXchange routes by price. To let TelecomsXchange choose instead, add a single provider whose rule adds a routing group prefix such as 444101#. How do I receive calls from TelecomsXchange? When you sell a route, TelecomsXchange is your customer. Its calls 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 your firewall for SIP (UDP) and the Asterisk RTP range. 2. Create a user for TelecomsXchange in SETTINGS \u2192 Users, with the tariff you sell at and the LCR that routes to your own carriers. Make it postpaid with a credit limit, or keep its balance funded. 3. Choose how MOR recognises the calls: - If you only sell to TelecomsXchange: add a SIP device to that user (SETTINGS \u2192 Users \u2192 Devices). Under IP Authentication, set IP Address to 174.136.44.213. Keep Insecure at port, invite (the default for IP-authenticated devices), because TelecomsXchange sends from several source ports. - If you also buy from TelecomsXchange: don't create a second entry for the same IP. Assign the TelecomsXchange provider from the previous section to the user, as Kolmisoft recommends for a carrier that sends and receives from one IP. 4. If your TelecomsXchange route adds an Outgoing Prefix (Edit Route \u2192 Outgoing Number Translation Parameters), cut it with a Localization rule on the device's or provider's Location, for example Cut 77#. If you also buy from TelecomsXchange, make sure the LCR used for calls from TelecomsXchange doesn't include the TelecomsXchange provider, or a misrouted call can loop. How do I receive calls on numbers I bought? Set the number's SIP Endpoint (Primary) in DID Settings on TelecomsXchange to MOR, for example sip:14165551234@203.0.113.10:5060. In MOR, add the number under DIDs in E.164 format with TelecomsXchange as its provider, and assign it to the device that should answer. The call arrives from 174.136.44.213; MOR localizes the number with the provider's Location to find the DID, and TelecomsXchange already sends it in E.164. How do I test it? 1. Open SETTINGS \u2192 Billing \u2192 Functions \u2192 Call Tracing, pick a test user and device, and trace a call to 447700900123. It flags missing rates, LCR entries and devices, and shows the number after Provider Rules. 2. Place the call. On the Asterisk server, asterisk -rx \"sip set debug on\" (or pjsip set logger on, depending on your MOR version) or sngrep port 5060 shows the INVITE to 80039#447700900123 and the reply. 3. In MOR, check the call in the calls statistics with its hangup cause. 4. On TelecomsXchange, watch the call in Live Calls and find its SIP code in Logs \u2192 CDR (Voice). What if something goes wrong? You see What to do 401 or 407, then the call fails MOR's IP isn't authorised and no login was sent. Add the IP, or untick Authenticate by IP and enter the VoIP login and password. 403 Forbidden MOR's public IP isn't authorised and no valid credentials were sent, or the account is blocked or out of balance. With several Asterisk servers, authorise each one. 404 Not Found Missing or wrong tech prefix, or the number wasn't E.164. Check the Provider Rules and the user's Localization in Call Tracing. 408 Request Timeout No reply from sip01. Check Server IP, Port and outbound UDP 5060. 503 Service Unavailable The route is blocked or failed on the seller's side. Check My Interconnections, and give the LCR a second provider. Provider marked unreachable Qualify is on. Turn it off. One-way or no audio MOR advertises a private IP, or RTP is blocked. Check the Asterisk external IP settings and open the RTP range. Inbound calls rejected No device or assigned provider matches 174.136.44.213, or two entries share it. Keep one, and check the firewall. Inbound call rejected for no rate The TelecomsXchange user's tariff or LCR doesn't cover the E.164 destination. Trace it with Call Tracing. References - Kolmisoft: Providers - Kolmisoft: MOR Provider Rules - Kolmisoft: MOR Number Manipulation - Kolmisoft: LCR - Kolmisoft: Device settings - Kolmisoft: Authentication - Kolmisoft: Configure Provider which can make calls - Kolmisoft: DID handling by Localization - Kolmisoft: Call Tracing",
   "sections": [
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "- A SIP account on TelecomsXchange with MOR's public signalling IP (each Asterisk server that sends calls), for example 203.0.113.10, or a VoIP login and password from Edit Account \u2192 Add SIP Digest Auth. - A purchased route and its tech prefix from My Interconnections, for example 80039#. In this guide, TECH_PREFIX stands for that value, and VOIP_LOGIN and VOIP_PASSWORD for the account's VoIP Login and VoIP Password. - An admin login to MOR, and a provider tariff (MOR won't create a provider without one). - To sell: a route with IP Address:Port set to MOR, for example 203.0.113.10:5060, and the values in Interconnect Info."
    },
    {
     "id": "how-do-i-send-calls-to-telecomsxchange",
     "title": "How do I send calls to TelecomsXchange?",
     "text": "1. Create a provider tariff for the route. On TelecomsXchange, download the route's rates from Accounts \u2192 Edit Account \u2192 Purchased Routes in Default format and import them into it. 2. Go to SETTINGS \u2192 Billing \u2192 Providers and click New Provider. Enter a Name such as TCXC 80039 UK, choose Technology: SIP, the tariff, and the Asterisk server, then click Create. 3. Edit the provider and set: - Authentication: tick Authenticate by IP; leave Register unticked. For digest authentication, untick Authenticate by IP and enter VOIP_LOGIN in Login and VOIP_PASSWORD in Password (MOR can't combine IP and login authentication on one provider). - Network related: Hostname sip01.telecomsxchange.com, Server IP 174.136.44.213, Port 5060, Qualify off. TelecomsXchange answers OPTIONS only within a call. - Codecs: the codecs the route supports, for example G.729 and G.711. TelecomsXchange doesn't transcode. - Advanced \u2192 Transport: UDP. 4. Click the Provider Rules icon next to the provider and add a Destination Rule that adds the tech prefix: Name Cut Add Min len Max len TCXC prefix (empty) 80039# 1 100 MOR works in E.164, so 447700900123 leaves as 80039#447700900123. Check that your users' Localization turns what they dial into E.164 (for example, cut 00) before this rule runs. 5. Go to SETTINGS \u2192 Billing \u2192 LCR, open your LCR (or create one By Price or By priority), click the number in the Providers column and add the TelecomsXchange provider. 6. Make sure the users who should reach TelecomsXchange use that LCR, and that their tariff has rates for the destinations. One provider per tech prefix lets MOR's LCR choose between your TelecomsXchange routes by price. To let TelecomsXchange choose instead, add a single provider whose rule adds a routing group prefix such as 444101#."
    },
    {
     "id": "how-do-i-receive-calls-from-telecomsxchange",
     "title": "How do I receive calls from TelecomsXchange?",
     "text": "When you sell a route, TelecomsXchange is your customer. Its calls 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 your firewall for SIP (UDP) and the Asterisk RTP range. 2. Create a user for TelecomsXchange in SETTINGS \u2192 Users, with the tariff you sell at and the LCR that routes to your own carriers. Make it postpaid with a credit limit, or keep its balance funded. 3. Choose how MOR recognises the calls: - If you only sell to TelecomsXchange: add a SIP device to that user (SETTINGS \u2192 Users \u2192 Devices). Under IP Authentication, set IP Address to 174.136.44.213. Keep Insecure at port, invite (the default for IP-authenticated devices), because TelecomsXchange sends from several source ports. - If you also buy from TelecomsXchange: don't create a second entry for the same IP. Assign the TelecomsXchange provider from the previous section to the user, as Kolmisoft recommends for a carrier that sends and receives from one IP. 4. If your TelecomsXchange route adds an Outgoing Prefix (Edit Route \u2192 Outgoing Number Translation Parameters), cut it with a Localization rule on the device's or provider's Location, for example Cut 77#. If you also buy from TelecomsXchange, make sure the LCR used for calls from TelecomsXchange doesn't include the TelecomsXchange provider, or a misrouted call can loop."
    },
    {
     "id": "how-do-i-receive-calls-on-numbers-i-bought",
     "title": "How do I receive calls on numbers I bought?",
     "text": "Set the number's SIP Endpoint (Primary) in DID Settings on TelecomsXchange to MOR, for example sip:14165551234@203.0.113.10:5060. In MOR, add the number under DIDs in E.164 format with TelecomsXchange as its provider, and assign it to the device that should answer. The call arrives from 174.136.44.213; MOR localizes the number with the provider's Location to find the DID, and TelecomsXchange already sends it in E.164."
    },
    {
     "id": "how-do-i-test-it",
     "title": "How do I test it?",
     "text": "1. Open SETTINGS \u2192 Billing \u2192 Functions \u2192 Call Tracing, pick a test user and device, and trace a call to 447700900123. It flags missing rates, LCR entries and devices, and shows the number after Provider Rules. 2. Place the call. On the Asterisk server, asterisk -rx \"sip set debug on\" (or pjsip set logger on, depending on your MOR version) or sngrep port 5060 shows the INVITE to 80039#447700900123 and the reply. 3. In MOR, check the call in the calls statistics with its hangup cause. 4. On TelecomsXchange, watch the call in Live Calls and find its SIP code in Logs \u2192 CDR (Voice)."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do 401 or 407, then the call fails MOR's IP isn't authorised and no login was sent. Add the IP, or untick Authenticate by IP and enter the VoIP login and password. 403 Forbidden MOR's public IP isn't authorised and no valid credentials were sent, or the account is blocked or out of balance. With several Asterisk servers, authorise each one. 404 Not Found Missing or wrong tech prefix, or the number wasn't E.164. Check the Provider Rules and the user's Localization in Call Tracing. 408 Request Timeout No reply from sip01. Check Server IP, Port and outbound UDP 5060. 503 Service Unavailable The route is blocked or failed on the seller's side. Check My Interconnections, and give the LCR a second provider. Provider marked unreachable Qualify is on. Turn it off. One-way or no audio MOR advertises a private IP, or RTP is blocked. Check the Asterisk external IP settings and open the RTP range. Inbound calls rejected No device or assigned provider matches 174.136.44.213, or two entries share it. Keep one, and check the firewall. Inbound call rejected for no rate The TelecomsXchange user's tariff or LCR doesn't cover the E.164 destination. Trace it with Call Tracing."
    },
    {
     "id": "references",
     "title": "References",
     "text": "- Kolmisoft: Providers - Kolmisoft: MOR Provider Rules - Kolmisoft: MOR Number Manipulation - Kolmisoft: LCR - Kolmisoft: Device settings - Kolmisoft: Authentication - Kolmisoft: Configure Provider which can make calls - Kolmisoft: DID handling by Localization - Kolmisoft: Call Tracing"
    }
   ]
  },
  {
   "slug": "audiocodes-sbc",
   "section": "integrations",
   "title": "Connect an AudioCodes Mediant SBC to TelecomsXchange",
   "description": "Configure an AudioCodes Mediant SBC for TelecomsXchange: a UDP proxy set to sip01, an IP Group, a manipulation that adds the tech prefix, and classification for 174.136.44.213.",
   "summary": "On the Mediant SBC, add a Proxy Set with sip01.telecomsxchange.com:5060 over UDP and Proxy Keep-Alive disabled, a Server-type IP Group for TelecomsXchange, an IP-to-IP routing rule to it, and an outbound manipulation that adds the tech prefix (80039#) to the destination URI. Authorise the SBC's public IP on the account, or add an Account with the VoIP login and Register set to No. Classify calls from 174.136.44.213 to the same IP Group.",
   "url": "https://help.telecomsxchange.com/integrations/audiocodes-sbc/",
   "markdown_url": "https://help.telecomsxchange.com/integrations/audiocodes-sbc.md",
   "updated": "2026-10-23",
   "keywords": [
    "audiocodes",
    "mediant",
    "mediant sbc",
    "mediant ve",
    "mediant 800",
    "mediant 4000",
    "sbc",
    "proxy set",
    "ip group",
    "sip interface",
    "ip-to-ip routing",
    "outbound manipulation",
    "classification",
    "accounts",
    "tech prefix",
    "ip authentication",
    "digest authentication",
    "no registration",
    "microsoft teams",
    "zoom phone"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Can the AudioCodes SBC register to TelecomsXchange?",
     "a": "No. TelecomsXchange is peering only and does not accept REGISTER. If you add an Account for digest credentials, set Register to No: the SBC then only answers the challenge on INVITEs."
    },
    {
     "q": "Where does the tech prefix go?",
     "a": "In an outbound manipulation rule (SBC, Manipulation, Outbound Manipulations) with Destination IP Group TCXC, Manipulated Item Destination URI, and Prefix to Add 80039#."
    },
    {
     "q": "Can I connect Microsoft Teams or Zoom Phone to TelecomsXchange through the SBC?",
     "a": "Yes. Teams Direct Routing and Zoom Phone BYOC need TLS and SRTP, which TelecomsXchange doesn't offer. The SBC terminates TLS and SRTP on the Teams or Zoom side and talks to TelecomsXchange over UDP and RTP."
    },
    {
     "q": "Should I enable Proxy Keep-Alive?",
     "a": "No. TelecomsXchange answers SIP OPTIONS only within a call, so keep-alive would mark the proxy set down. Leave Proxy Keep-Alive at Disable."
    }
   ],
   "text": "Your SBC to a purchased route 1. PBX, Teams or Zoom: Behind your Mediant SBC 2. AudioCodes SBC: IP Group TCXC, UDP, prefix added 3. TelecomsXchange (via 80039#447700900123): sip01, UDP 5060 4. Seller's route: The route you purchased An AudioCodes Mediant SBC (Mediant 500 to 9000, and Mediant VE or Software SBC) connects to TelecomsXchange as a SIP peer: one Proxy Set and IP Group for TelecomsXchange, routing rules in each direction, and a manipulation for the tech prefix. The steps use the Web interface of firmware 7.4 and later; the same tables exist in the CLI and INI file. For every TelecomsXchange value in one place, see Connect a SIP platform. TelecomsXchange does not accept SIP REGISTER, and it supports SIP over UDP only, with RTP (no TLS or SRTP). Use UDP on the TelecomsXchange leg, don't enable registration toward it, and leave Proxy Keep-Alive disabled. The SBC is recognised by its source IP or by digest authentication on the INVITE. Before you start - A SIP account on TelecomsXchange with the SBC's public WAN IP, for example 203.0.113.10, or a VoIP login and password from Edit Account \u2192 Add SIP Digest Auth. - A purchased route and its tech prefix from My Interconnections, for example 80039#. In this guide, TECH_PREFIX stands for that value, and VOIP_LOGIN and VOIP_PASSWORD for the account's VoIP Login and VoIP Password. - The SBC's WAN IP interface, a Media Realm for it, and a working connection to your PBX, Teams or Zoom on the other side. - To sell: a route with IP Address:Port set to the SBC, for example 203.0.113.10:5060, and the values in Interconnect Info. How do I send calls to TelecomsXchange? All tables are under Setup \u2192 Signaling & Media. 1. SIP Interface (Core Entities \u2192 SIP Interfaces): use or add an interface on the WAN network interface with UDP Port 5060 and Application Type SBC, for example WAN-UDP. Give it the WAN Media Realm. 2. Proxy Set (Core Entities \u2192 Proxy Sets): add one named TCXC: - SBC IPv4 SIP Interface: WAN-UDP. - Proxy Keep-Alive: Disable. TelecomsXchange answers OPTIONS only within a call. - In its Proxy Address child table, add sip01.telecomsxchange.com:5060 with Transport Type UDP. It resolves to 174.136.44.213. 3. IP Group (Core Entities \u2192 IP Groups): add one named TCXC: - Type: Server. - Proxy Set: TCXC. Media Realm: the WAN realm. - IP Profile: a profile with the codecs the route supports (G.729, G.711) and no SRTP (SBC Media Security Mode Not Secured). - Classify By Proxy Set: Enable is fine when only this IP Group uses 174.136.44.213; otherwise use the Classification table below. 4. Routing (SBC \u2192 Routing \u2192 IP-to-IP Routing): add a rule from your PBX, Teams or Zoom IP Group, matching the destinations the route covers (for example Destination Username Pattern 44), with Destination Type IP Group and Destination IP Group TCXC. 5. Tech prefix (SBC \u2192 Manipulation \u2192 Outbound Manipulations): add a rule: Field Value Name TCXC tech prefix Destination IP Group TCXC Destination Username Pattern Request Type INVITE Manipulated Item Destination URI Remove From Left 0 (or 2 to strip a leading 00) Prefix to Add 80039# The Request-URI leaves the SBC as sip:80039#447700900123@sip01.telecomsxchange.com. Numbers must reach this rule in E.164 without + or 00; strip + with an inbound manipulation on the source IP Group (for Teams, numbers arrive as +447700900123). Digest variant. If the SBC sends from an IP that isn't on the account, add an Account (SIP Definitions \u2192 Accounts): Field Value Served IP Group your PBX, Teams or Zoom IP Group Serving IP Group TCXC User Name VOIP_LOGIN Password VOIP_PASSWORD Register No With Register: No, the SBC doesn't register; it answers TelecomsXchange's 401 or 407 challenge on the INVITE with these credentials. For several routes, add one Outbound Manipulation per tech prefix, each matching its destinations with Destination Username Pattern, or dial a routing group prefix such as 444101# and let TelecomsXchange choose. How do I receive calls from TelecomsXchange? Calls on routes you sell, and on numbers you bought, 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 your firewall for UDP 5060 and the WAN Media Realm's port range. On the SBC, a Firewall (access list) rule can restrict SIP on the WAN interface to it. 2. Classification (SBC \u2192 Classification Table): unless Classify By Proxy Set is on, add a rule with Source SIP Interface WAN-UDP, Source IP Address 174.136.44.213, Action Type Allow and Source IP Group TCXC. Calls from other addresses on that interface fall through to your other rules or are rejected. 3. Routing (SBC \u2192 Routing \u2192 IP-to-IP Routing): add a rule with Source IP Group TCXC to the IP Group of your PBX, carrier, Teams or Zoom. Route by Destination Username Pattern if different numbers go to different places. 4. Teams expects numbers in +E.164; add + with an outbound manipulation toward the Teams IP Group (Prefix to Add +). 5. If your TelecomsXchange route adds an Outgoing Prefix (Edit Route \u2192 Outgoing Number Translation Parameters), remove it with an Inbound Manipulation on IP Group TCXC (Remove From Left). How do I receive calls on numbers I bought? Set the number's SIP Endpoint (Primary) in DID Settings on TelecomsXchange to the SBC, for example sip:14165551234@203.0.113.10:5060. The call is classified into IP Group TCXC and routed by the IP-to-IP rule above to the PBX, Teams user or Zoom user that owns the number. How do I use it with Microsoft Teams or Zoom Phone? Microsoft Teams Direct Routing and Zoom Phone BYOC (Bring Your Own Carrier) only connect to a certified SBC over SIP TLS with SRTP. TelecomsXchange doesn't offer TLS or SRTP, so it can't be the TLS endpoint for Teams or Zoom. The Mediant SBC sits in between: - Teams or Zoom side: TLS on port 5061, SRTP, a certificate for your SBC's FQDN, and the vendor's own IP Group and IP Profile, as in AudioCodes' configuration notes. - TelecomsXchange side: the UDP Proxy Set and IP Group in this guide, with RTP. The SBC converts SRTP to RTP between the two IP Profiles. See Connect Microsoft Teams and Connect Zoom Phone for the Teams and Zoom side. How do I test it? 1. Send the SBC's syslog to the Syslog Viewer (or open the Web interface's Message Log under Troubleshoot) and enable SIP debug; or start a Debug Recording and open it in Wireshark. 2. Place a call to a number covered by the route. 3. In the log, look for the INVITE to 80039#447700900123 toward 174.136.44.213 and the reply. The Monitor tab's active calls view shows calls in progress. 4. On TelecomsXchange, watch the call in Live Calls and find its SIP code in Logs \u2192 CDR (Voice). What if something goes wrong? You see What to do 401 or 407 repeated, then the call fails The SBC isn't answering the challenge. Add the Account with Serving IP Group TCXC, Register: No, and the VoIP login and password from Edit Account. 403 Forbidden The SBC's public IP isn't authorised and no credentials were sent, or the account is blocked or out of balance. Behind NAT, authorise the public address. 404 Not Found Missing or wrong tech prefix, or +/00 left in the number. Check the Outbound Manipulation and the Request-URI in the log. 408 Request Timeout No reply from sip01. Check the Proxy Address, Transport Type: UDP, DNS on the SBC, and outbound UDP 5060. Proxy Set shown as down, calls not routed Proxy Keep-Alive is on. Set it to Disable. 503 Service Unavailable The route is blocked or failed on the seller's side. Check My Interconnections; add an alternative routing rule. One-way or no audio The WAN Media Realm advertises a private IP, or RTP is blocked. Set the NAT translation for the WAN interface and open the media port range. On Teams or Zoom calls, check the SRTP-to-RTP IP Profiles. Inbound calls rejected No classification matches 174.136.44.213, or the call has no IP-to-IP route from TCXC. Check the Classification Table and the firewall. References - AudioCodes: Configuring Proxy Sets - AudioCodes: Configuring Classification Rules - AudioCodes: Configuring SBC IP-to-IP Routing Rules - AudioCodes: Configuring IP-to-IP Outbound Manipulations - AudioCodes: Configuring Registration Accounts",
   "sections": [
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "- A SIP account on TelecomsXchange with the SBC's public WAN IP, for example 203.0.113.10, or a VoIP login and password from Edit Account \u2192 Add SIP Digest Auth. - A purchased route and its tech prefix from My Interconnections, for example 80039#. In this guide, TECH_PREFIX stands for that value, and VOIP_LOGIN and VOIP_PASSWORD for the account's VoIP Login and VoIP Password. - The SBC's WAN IP interface, a Media Realm for it, and a working connection to your PBX, Teams or Zoom on the other side. - To sell: a route with IP Address:Port set to the SBC, for example 203.0.113.10:5060, and the values in Interconnect Info."
    },
    {
     "id": "how-do-i-send-calls-to-telecomsxchange",
     "title": "How do I send calls to TelecomsXchange?",
     "text": "All tables are under Setup \u2192 Signaling & Media. 1. SIP Interface (Core Entities \u2192 SIP Interfaces): use or add an interface on the WAN network interface with UDP Port 5060 and Application Type SBC, for example WAN-UDP. Give it the WAN Media Realm. 2. Proxy Set (Core Entities \u2192 Proxy Sets): add one named TCXC: - SBC IPv4 SIP Interface: WAN-UDP. - Proxy Keep-Alive: Disable. TelecomsXchange answers OPTIONS only within a call. - In its Proxy Address child table, add sip01.telecomsxchange.com:5060 with Transport Type UDP. It resolves to 174.136.44.213. 3. IP Group (Core Entities \u2192 IP Groups): add one named TCXC: - Type: Server. - Proxy Set: TCXC. Media Realm: the WAN realm. - IP Profile: a profile with the codecs the route supports (G.729, G.711) and no SRTP (SBC Media Security Mode Not Secured). - Classify By Proxy Set: Enable is fine when only this IP Group uses 174.136.44.213; otherwise use the Classification table below. 4. Routing (SBC \u2192 Routing \u2192 IP-to-IP Routing): add a rule from your PBX, Teams or Zoom IP Group, matching the destinations the route covers (for example Destination Username Pattern 44), with Destination Type IP Group and Destination IP Group TCXC. 5. Tech prefix (SBC \u2192 Manipulation \u2192 Outbound Manipulations): add a rule: Field Value Name TCXC tech prefix Destination IP Group TCXC Destination Username Pattern Request Type INVITE Manipulated Item Destination URI Remove From Left 0 (or 2 to strip a leading 00) Prefix to Add 80039# The Request-URI leaves the SBC as sip:80039#447700900123@sip01.telecomsxchange.com. Numbers must reach this rule in E.164 without + or 00; strip + with an inbound manipulation on the source IP Group (for Teams, numbers arrive as +447700900123). Digest variant. If the SBC sends from an IP that isn't on the account, add an Account (SIP Definitions \u2192 Accounts): Field Value Served IP Group your PBX, Teams or Zoom IP Group Serving IP Group TCXC User Name VOIP_LOGIN Password VOIP_PASSWORD Register No With Register: No, the SBC doesn't register; it answers TelecomsXchange's 401 or 407 challenge on the INVITE with these credentials. For several routes, add one Outbound Manipulation per tech prefix, each matching its destinations with Destination Username Pattern, or dial a routing group prefix such as 444101# and let TelecomsXchange choose."
    },
    {
     "id": "how-do-i-receive-calls-from-telecomsxchange",
     "title": "How do I receive calls from TelecomsXchange?",
     "text": "Calls on routes you sell, and on numbers you bought, 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 your firewall for UDP 5060 and the WAN Media Realm's port range. On the SBC, a Firewall (access list) rule can restrict SIP on the WAN interface to it. 2. Classification (SBC \u2192 Classification Table): unless Classify By Proxy Set is on, add a rule with Source SIP Interface WAN-UDP, Source IP Address 174.136.44.213, Action Type Allow and Source IP Group TCXC. Calls from other addresses on that interface fall through to your other rules or are rejected. 3. Routing (SBC \u2192 Routing \u2192 IP-to-IP Routing): add a rule with Source IP Group TCXC to the IP Group of your PBX, carrier, Teams or Zoom. Route by Destination Username Pattern if different numbers go to different places. 4. Teams expects numbers in +E.164; add + with an outbound manipulation toward the Teams IP Group (Prefix to Add +). 5. If your TelecomsXchange route adds an Outgoing Prefix (Edit Route \u2192 Outgoing Number Translation Parameters), remove it with an Inbound Manipulation on IP Group TCXC (Remove From Left)."
    },
    {
     "id": "how-do-i-receive-calls-on-numbers-i-bought",
     "title": "How do I receive calls on numbers I bought?",
     "text": "Set the number's SIP Endpoint (Primary) in DID Settings on TelecomsXchange to the SBC, for example sip:14165551234@203.0.113.10:5060. The call is classified into IP Group TCXC and routed by the IP-to-IP rule above to the PBX, Teams user or Zoom user that owns the number."
    },
    {
     "id": "how-do-i-use-it-with-microsoft-teams-or-zoom-phone",
     "title": "How do I use it with Microsoft Teams or Zoom Phone?",
     "text": "Microsoft Teams Direct Routing and Zoom Phone BYOC (Bring Your Own Carrier) only connect to a certified SBC over SIP TLS with SRTP. TelecomsXchange doesn't offer TLS or SRTP, so it can't be the TLS endpoint for Teams or Zoom. The Mediant SBC sits in between: - Teams or Zoom side: TLS on port 5061, SRTP, a certificate for your SBC's FQDN, and the vendor's own IP Group and IP Profile, as in AudioCodes' configuration notes. - TelecomsXchange side: the UDP Proxy Set and IP Group in this guide, with RTP. The SBC converts SRTP to RTP between the two IP Profiles. See Connect Microsoft Teams and Connect Zoom Phone for the Teams and Zoom side."
    },
    {
     "id": "how-do-i-test-it",
     "title": "How do I test it?",
     "text": "1. Send the SBC's syslog to the Syslog Viewer (or open the Web interface's Message Log under Troubleshoot) and enable SIP debug; or start a Debug Recording and open it in Wireshark. 2. Place a call to a number covered by the route. 3. In the log, look for the INVITE to 80039#447700900123 toward 174.136.44.213 and the reply. The Monitor tab's active calls view shows calls in progress. 4. On TelecomsXchange, watch the call in Live Calls and find its SIP code in Logs \u2192 CDR (Voice)."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do 401 or 407 repeated, then the call fails The SBC isn't answering the challenge. Add the Account with Serving IP Group TCXC, Register: No, and the VoIP login and password from Edit Account. 403 Forbidden The SBC's public IP isn't authorised and no credentials were sent, or the account is blocked or out of balance. Behind NAT, authorise the public address. 404 Not Found Missing or wrong tech prefix, or +/00 left in the number. Check the Outbound Manipulation and the Request-URI in the log. 408 Request Timeout No reply from sip01. Check the Proxy Address, Transport Type: UDP, DNS on the SBC, and outbound UDP 5060. Proxy Set shown as down, calls not routed Proxy Keep-Alive is on. Set it to Disable. 503 Service Unavailable The route is blocked or failed on the seller's side. Check My Interconnections; add an alternative routing rule. One-way or no audio The WAN Media Realm advertises a private IP, or RTP is blocked. Set the NAT translation for the WAN interface and open the media port range. On Teams or Zoom calls, check the SRTP-to-RTP IP Profiles. Inbound calls rejected No classification matches 174.136.44.213, or the call has no IP-to-IP route from TCXC. Check the Classification Table and the firewall."
    },
    {
     "id": "references",
     "title": "References",
     "text": "- AudioCodes: Configuring Proxy Sets - AudioCodes: Configuring Classification Rules - AudioCodes: Configuring SBC IP-to-IP Routing Rules - AudioCodes: Configuring IP-to-IP Outbound Manipulations - AudioCodes: Configuring Registration Accounts"
    }
   ]
  },
  {
   "slug": "ribbon-sbc",
   "section": "integrations",
   "title": "Connect a Ribbon SBC to TelecomsXchange",
   "description": "Configure a Ribbon SBC Edge or SWe Lite for TelecomsXchange: a UDP SIP server table to sip01, a signaling group, a transformation that adds the tech prefix, and call routes.",
   "summary": "On a Ribbon SBC Edge (SBC 1000/2000) or SBC SWe Lite, add a SIP Server Table entry for sip01.telecomsxchange.com port 5060 over UDP with Monitor set to None, a SIP signaling group that uses it with 174.136.44.213 as its Federated IP, a transformation table that turns (.*) into 80039#\\1, and a call route to that signaling group. Authorise the SBC's public IP on the account, or add a Remote Authorization Table with the VoIP login.",
   "url": "https://help.telecomsxchange.com/integrations/ribbon-sbc/",
   "markdown_url": "https://help.telecomsxchange.com/integrations/ribbon-sbc.md",
   "updated": "2026-10-23",
   "keywords": [
    "ribbon",
    "sonus",
    "sbc edge",
    "sbc 1000",
    "sbc 2000",
    "sbc swe lite",
    "sbc core",
    "sip server table",
    "signaling group",
    "federated ip",
    "transformation table",
    "call routing table",
    "remote authorization table",
    "tech prefix",
    "ip authentication",
    "digest authentication",
    "no registration",
    "microsoft teams",
    "zoom phone"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Can the Ribbon SBC register to TelecomsXchange?",
     "a": "No. TelecomsXchange is peering only and does not accept REGISTER. Don't attach a Contact Registrant Table to the TelecomsXchange SIP server; use IP authentication or a Remote Authorization Table for digest on the INVITE."
    },
    {
     "q": "Where does the tech prefix go?",
     "a": "In a transformation table on the call route to TelecomsXchange: input Called Address/Number (.*), output Called Address/Number 80039#\\1. Each purchased route can have its own transformation and route entry."
    },
    {
     "q": "Can I connect Microsoft Teams or Zoom Phone to TelecomsXchange through the SBC?",
     "a": "Yes. Teams Direct Routing and Zoom Phone BYOC need TLS and SRTP, which TelecomsXchange doesn't offer. The Ribbon SBC terminates TLS and SRTP toward Teams or Zoom and talks to TelecomsXchange over UDP and RTP."
    },
    {
     "q": "Does this work on Ribbon SBC Core?",
     "a": "The same design applies on SBC Core (SBC 5400, 7000 and SWe): a zone, an IP peer for sip01 on UDP 5060, a SIP trunk group that accepts 174.136.44.213, and a number manipulation that adds the prefix. The steps below use the SBC Edge Web UI."
    }
   ],
   "text": "Your SBC to a purchased route 1. PBX, Teams or Zoom: Behind your Ribbon SBC 2. Ribbon SBC: Signaling group TCXC, UDP 3. TelecomsXchange (via 80039#447700900123): sip01, UDP 5060 4. Seller's route: The route you purchased A Ribbon SBC Edge (SBC 1000 or 2000) or SBC SWe Lite connects to TelecomsXchange as a SIP peer: a SIP Server Table that points at sip01, a SIP signaling group that sends and accepts calls, a transformation table that adds the tech prefix, and entries in a call routing table. For every TelecomsXchange value in one place, see Connect a SIP platform. TelecomsXchange does not accept SIP REGISTER, and it supports SIP over UDP only, with RTP (no TLS or SRTP). Use UDP toward it, don't attach a Contact Registrant Table, and set Monitor to None. The SBC is recognised by its source IP or by digest authentication on the INVITE. Before you start - A SIP account on TelecomsXchange with the SBC's public IP, for example 203.0.113.10, or a VoIP login and password from Edit Account \u2192 Add SIP Digest Auth. - A purchased route and its tech prefix from My Interconnections, for example 80039#. In this guide, TECH_PREFIX stands for that value, and VOIP_LOGIN and VOIP_PASSWORD for the account's VoIP Login and VoIP Password. - The SBC's WAN port configured, DNS servers set (so it can resolve sip01), and a working signaling group toward your PBX, Teams or Zoom. - To sell: a route with IP Address:Port set to the SBC, for example 203.0.113.10:5060, and the values in Interconnect Info. How do I send calls to TelecomsXchange? All tables are on the Web UI's Settings tab. 1. Media List (Media \u2192 Media List): make sure the list you'll use for TelecomsXchange contains the route's codecs (G.729, G.711) and no SDES-SRTP crypto profile. 2. Remote Authorization Table (SIP \u2192 Remote Authorization Tables), only for the digest variant: add a table TCXC-Auth with an entry Realm 174.136.44.213, Authentication ID VOIP_LOGIN and Password VOIP_PASSWORD. Skip it for IP authentication. 3. SIP Server Table (SIP \u2192 SIP Server Tables): add a table TCXC and an entry: Field Value Server Lookup IP/FQDN Priority 1 Host FQDN/IP sip01.telecomsxchange.com Port 5060 Protocol UDP Monitor None (TelecomsXchange answers OPTIONS only within a call) Remote Authorization Table TCXC-Auth for digest, otherwise none Contact Registrant Table none (no registration) 4. Signaling Group (Signaling Groups \u2192 Create Signaling Group \u2192 SIP Signaling Group): add one named TCXC: - SIP Mode: Basic Call. Agent Type: Back-to-Back User Agent. - SIP Server Table: TCXC. Media List ID: the list from step 1. - Signaling/Media Source IP: the WAN interface. Behind NAT, set Static NAT - Outbound with your public IP. - Listen Ports: 5060, UDP. - Federated IP/FQDN: 174.136.44.213, netmask 255.255.255.255, so the group accepts calls only from TelecomsXchange. - Call Routing Table: the table for calls coming from TelecomsXchange (see below). 5. Transformation Table (Call Routing \u2192 Transformation): add a table To-TCXC-80039 with one entry: Field Value Input Field Type Called Address/Number Input Field Value \\+?(00)?(.) Output Field Type Called Address/Number Output Field Value 80039#\\2 The regular expression strips a leading + or 00, then puts the tech prefix in front, so +447700900123 leaves as 80039#447700900123. If your numbers already arrive in E.164 without +, (.) \u2192 80039#\\1 is enough. 6. Call Routing Table (Call Routing \u2192 Call Routing Table): in the table used by your PBX, Teams or Zoom signaling group, add an entry with Transformation Table To-TCXC-80039, Destination Signaling Groups TCXC, and a Priority below any more specific routes. On the SBC Edge a route entry is only used when its transformation table matches, so to send only some destinations here, narrow the input, for example \\+?(00)?(44.) for UK numbers. For several routes, add one transformation table and routing entry per tech prefix, or dial a routing group prefix such as 444101# and let TelecomsXchange choose. How do I receive calls from TelecomsXchange? Calls on routes you sell, and on numbers you bought, 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 your firewall for UDP 5060 and the SBC's media port range. 2. The TCXC signaling group's Federated IP/FQDN already admits 174.136.44.213. Calls from other addresses are not accepted on it. 3. Create a call routing table From-TCXC and set it as the TCXC signaling group's Call Routing Table. Add entries to your PBX, carrier, Teams or Zoom signaling groups. 4. Teams expects numbers in +E.164; on the route to Teams, use a transformation (.) \u2192 +\\1. 5. If your TelecomsXchange route adds an Outgoing Prefix (Edit Route \u2192 Outgoing Number Translation Parameters), strip it with a transformation on the From-TCXC routes, for example 77#(.) \u2192 \\1. How do I receive calls on numbers I bought? Set the number's SIP Endpoint (Primary) in DID Settings on TelecomsXchange to the SBC, for example sip:14165551234@203.0.113.10:5060. The call arrives on the TCXC signaling group and follows the From-TCXC routing table to the PBX, Teams user or Zoom user that owns the number. How do I use it with Microsoft Teams or Zoom Phone? Microsoft Teams Direct Routing and Zoom Phone BYOC (Bring Your Own Carrier) only connect to a certified SBC over SIP TLS with SRTP. TelecomsXchange doesn't offer TLS or SRTP, so it can't be the TLS endpoint for Teams or Zoom. The Ribbon SBC sits in between: - Teams or Zoom side: a signaling group on TLS port 5061 with a TLS Profile, an SRTP crypto profile in its media list, and a certificate for your SBC's FQDN, as in Ribbon's Teams and Zoom configuration guides. - TelecomsXchange side: the UDP signaling group in this guide, with RTP. The SBC converts SRTP to RTP between the two signaling groups. See Connect Microsoft Teams and Connect Zoom Phone for the Teams and Zoom side. How do I test it? 1. Turn on SIP and call-routing logging on the SBC and send it to a syslog server; open the logs in Ribbon LX to see each call's ladder and routing decision. 2. Place a call to a number covered by the route. 3. In the log, look for the INVITE to 80039#447700900123 toward 174.136.44.213 and the reply. The Monitor tab shows the signaling group's state and active calls. 4. On TelecomsXchange, watch the call in Live Calls and find its SIP code in Logs \u2192 CDR (Voice). What if something goes wrong? You see What to do 401 or 407 repeated, then the call fails The SBC isn't answering the challenge. Attach a Remote Authorization Table with the VoIP login and password to the SIP server entry, with realm 174.136.44.213. 403 Forbidden The SBC's public IP isn't authorised and no credentials were sent, or the account is blocked or out of balance. Behind NAT, authorise the public address. 404 Not Found Missing or wrong tech prefix, or +/00 left in the number. Check the transformation table's output in Ribbon LX. 408 Request Timeout No reply from sip01. Check the SIP server entry (host, port 5060, UDP), DNS on the SBC and outbound UDP 5060. Signaling group or server shown down Monitor is set to SIP Options. Set it to None. 503 Service Unavailable The route is blocked or failed on the seller's side. Check My Interconnections; add a second route entry. One-way or no audio The SBC advertises a private IP, or RTP is blocked. Set Static NAT - Outbound and open the media port range. On Teams or Zoom calls, check that SRTP is only on that side. Inbound calls rejected 174.136.44.213 isn't in the signaling group's Federated IP/FQDN, the listen port isn't UDP 5060, or the From-TCXC table has no matching route. References - Ribbon SBC Edge: Creating and modifying SIP signaling groups - Ribbon SBC Edge: Managing SIP signaling groups - Ribbon SBC Edge: SIP server tables - Ribbon SBC Edge interoperability guide (table order: Remote Authorization, SIP Server, Signaling Group, Transformation, Call Routing) - Ribbon SBC SWe Lite with Microsoft Teams Direct Routing (Twilio interop guide)",
   "sections": [
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "- A SIP account on TelecomsXchange with the SBC's public IP, for example 203.0.113.10, or a VoIP login and password from Edit Account \u2192 Add SIP Digest Auth. - A purchased route and its tech prefix from My Interconnections, for example 80039#. In this guide, TECH_PREFIX stands for that value, and VOIP_LOGIN and VOIP_PASSWORD for the account's VoIP Login and VoIP Password. - The SBC's WAN port configured, DNS servers set (so it can resolve sip01), and a working signaling group toward your PBX, Teams or Zoom. - To sell: a route with IP Address:Port set to the SBC, for example 203.0.113.10:5060, and the values in Interconnect Info."
    },
    {
     "id": "how-do-i-send-calls-to-telecomsxchange",
     "title": "How do I send calls to TelecomsXchange?",
     "text": "All tables are on the Web UI's Settings tab. 1. Media List (Media \u2192 Media List): make sure the list you'll use for TelecomsXchange contains the route's codecs (G.729, G.711) and no SDES-SRTP crypto profile. 2. Remote Authorization Table (SIP \u2192 Remote Authorization Tables), only for the digest variant: add a table TCXC-Auth with an entry Realm 174.136.44.213, Authentication ID VOIP_LOGIN and Password VOIP_PASSWORD. Skip it for IP authentication. 3. SIP Server Table (SIP \u2192 SIP Server Tables): add a table TCXC and an entry: Field Value Server Lookup IP/FQDN Priority 1 Host FQDN/IP sip01.telecomsxchange.com Port 5060 Protocol UDP Monitor None (TelecomsXchange answers OPTIONS only within a call) Remote Authorization Table TCXC-Auth for digest, otherwise none Contact Registrant Table none (no registration) 4. Signaling Group (Signaling Groups \u2192 Create Signaling Group \u2192 SIP Signaling Group): add one named TCXC: - SIP Mode: Basic Call. Agent Type: Back-to-Back User Agent. - SIP Server Table: TCXC. Media List ID: the list from step 1. - Signaling/Media Source IP: the WAN interface. Behind NAT, set Static NAT - Outbound with your public IP. - Listen Ports: 5060, UDP. - Federated IP/FQDN: 174.136.44.213, netmask 255.255.255.255, so the group accepts calls only from TelecomsXchange. - Call Routing Table: the table for calls coming from TelecomsXchange (see below). 5. Transformation Table (Call Routing \u2192 Transformation): add a table To-TCXC-80039 with one entry: Field Value Input Field Type Called Address/Number Input Field Value \\+?(00)?(.) Output Field Type Called Address/Number Output Field Value 80039#\\2 The regular expression strips a leading + or 00, then puts the tech prefix in front, so +447700900123 leaves as 80039#447700900123. If your numbers already arrive in E.164 without +, (.) \u2192 80039#\\1 is enough. 6. Call Routing Table (Call Routing \u2192 Call Routing Table): in the table used by your PBX, Teams or Zoom signaling group, add an entry with Transformation Table To-TCXC-80039, Destination Signaling Groups TCXC, and a Priority below any more specific routes. On the SBC Edge a route entry is only used when its transformation table matches, so to send only some destinations here, narrow the input, for example \\+?(00)?(44.) for UK numbers. For several routes, add one transformation table and routing entry per tech prefix, or dial a routing group prefix such as 444101# and let TelecomsXchange choose."
    },
    {
     "id": "how-do-i-receive-calls-from-telecomsxchange",
     "title": "How do I receive calls from TelecomsXchange?",
     "text": "Calls on routes you sell, and on numbers you bought, 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 your firewall for UDP 5060 and the SBC's media port range. 2. The TCXC signaling group's Federated IP/FQDN already admits 174.136.44.213. Calls from other addresses are not accepted on it. 3. Create a call routing table From-TCXC and set it as the TCXC signaling group's Call Routing Table. Add entries to your PBX, carrier, Teams or Zoom signaling groups. 4. Teams expects numbers in +E.164; on the route to Teams, use a transformation (.) \u2192 +\\1. 5. If your TelecomsXchange route adds an Outgoing Prefix (Edit Route \u2192 Outgoing Number Translation Parameters), strip it with a transformation on the From-TCXC routes, for example 77#(.) \u2192 \\1."
    },
    {
     "id": "how-do-i-receive-calls-on-numbers-i-bought",
     "title": "How do I receive calls on numbers I bought?",
     "text": "Set the number's SIP Endpoint (Primary) in DID Settings on TelecomsXchange to the SBC, for example sip:14165551234@203.0.113.10:5060. The call arrives on the TCXC signaling group and follows the From-TCXC routing table to the PBX, Teams user or Zoom user that owns the number."
    },
    {
     "id": "how-do-i-use-it-with-microsoft-teams-or-zoom-phone",
     "title": "How do I use it with Microsoft Teams or Zoom Phone?",
     "text": "Microsoft Teams Direct Routing and Zoom Phone BYOC (Bring Your Own Carrier) only connect to a certified SBC over SIP TLS with SRTP. TelecomsXchange doesn't offer TLS or SRTP, so it can't be the TLS endpoint for Teams or Zoom. The Ribbon SBC sits in between: - Teams or Zoom side: a signaling group on TLS port 5061 with a TLS Profile, an SRTP crypto profile in its media list, and a certificate for your SBC's FQDN, as in Ribbon's Teams and Zoom configuration guides. - TelecomsXchange side: the UDP signaling group in this guide, with RTP. The SBC converts SRTP to RTP between the two signaling groups. See Connect Microsoft Teams and Connect Zoom Phone for the Teams and Zoom side."
    },
    {
     "id": "how-do-i-test-it",
     "title": "How do I test it?",
     "text": "1. Turn on SIP and call-routing logging on the SBC and send it to a syslog server; open the logs in Ribbon LX to see each call's ladder and routing decision. 2. Place a call to a number covered by the route. 3. In the log, look for the INVITE to 80039#447700900123 toward 174.136.44.213 and the reply. The Monitor tab shows the signaling group's state and active calls. 4. On TelecomsXchange, watch the call in Live Calls and find its SIP code in Logs \u2192 CDR (Voice)."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do 401 or 407 repeated, then the call fails The SBC isn't answering the challenge. Attach a Remote Authorization Table with the VoIP login and password to the SIP server entry, with realm 174.136.44.213. 403 Forbidden The SBC's public IP isn't authorised and no credentials were sent, or the account is blocked or out of balance. Behind NAT, authorise the public address. 404 Not Found Missing or wrong tech prefix, or +/00 left in the number. Check the transformation table's output in Ribbon LX. 408 Request Timeout No reply from sip01. Check the SIP server entry (host, port 5060, UDP), DNS on the SBC and outbound UDP 5060. Signaling group or server shown down Monitor is set to SIP Options. Set it to None. 503 Service Unavailable The route is blocked or failed on the seller's side. Check My Interconnections; add a second route entry. One-way or no audio The SBC advertises a private IP, or RTP is blocked. Set Static NAT - Outbound and open the media port range. On Teams or Zoom calls, check that SRTP is only on that side. Inbound calls rejected 174.136.44.213 isn't in the signaling group's Federated IP/FQDN, the listen port isn't UDP 5060, or the From-TCXC table has no matching route."
    },
    {
     "id": "references",
     "title": "References",
     "text": "- Ribbon SBC Edge: Creating and modifying SIP signaling groups - Ribbon SBC Edge: Managing SIP signaling groups - Ribbon SBC Edge: SIP server tables - Ribbon SBC Edge interoperability guide (table order: Remote Authorization, SIP Server, Signaling Group, Transformation, Call Routing) - Ribbon SBC SWe Lite with Microsoft Teams Direct Routing (Twilio interop guide)"
    }
   ]
  },
  {
   "slug": "getting-started",
   "section": "sellers",
   "title": "Getting started as a seller on TelecomsXchange",
   "description": "Sign in to TelecomsXchange as a seller, recover a lost password, use two-step verification, and find your way around the seller dashboard and menus.",
   "summary": "Open the Seller Account login, enter your Seller Login and Password and click Sign In. The Dashboard shows your balance, last payout, live calls and API keys; Settings \u2192 Profile & Preferences is where you finish your profile.",
   "url": "https://help.telecomsxchange.com/sellers/getting-started/",
   "markdown_url": "https://help.telecomsxchange.com/sellers/getting-started.md",
   "updated": "2026-10-21",
   "keywords": [
    "seller login",
    "vendor login",
    "seller dashboard",
    "sell routes",
    "two-step verification",
    "password recovery",
    "forgot password",
    "web users",
    "dark mode",
    "light mode",
    "login timeout",
    "login as buyer",
    "interconnect info"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "How do I become a seller on TelecomsXchange?",
     "a": "Click Need to create an account? on the login page to sign up on the TelecomsXchange website. Once your seller account is active, you sign in at the Seller Account login."
    },
    {
     "q": "How do I reset my seller password?",
     "a": "Click Forgot ID or Password? on the seller login, confirm your registered phone number and the texted code, then open the link in the recovery email. You can recover a password once every 24 hours."
    },
    {
     "q": "Can my finance team log in without full access?",
     "a": "Yes. The main user creates web users under Settings \u2192 Web Users. A finance user can see payouts and request withdrawals but cannot open My Routes. See Web users and access logs."
    },
    {
     "q": "Why was I logged out after a while?",
     "a": "Login Timeout (minutes) in Settings \u2192 Profile & Preferences logs you out after that many minutes without activity. Set it to 0 to stay signed in until you log out."
    },
    {
     "q": "How do I switch between light and dark mode?",
     "a": "Click the moon icon in the top bar for dark mode, or the sun icon for light mode. Your browser remembers the choice."
    },
    {
     "q": "I also buy traffic. Do I need a second login?",
     "a": "If your seller and buyer accounts are linked, the Dashboard shows a Switch to Buyer Panel button. The seller login page also has a Login as Buyer link for a separate buyer login."
    }
   ],
   "text": "From seller login to first route 1. Seller login: Seller Login, password, optional SMS code 2. Dashboard (via Sign In): Balance, last payout, live calls, API keys 3. Preferences (via set up first): Logo, company profile and payout method 4. My Routes (via Add New Route): Add your first route, then upload rates As a seller you list voice routes, SMS routes and phone numbers on the TelecomsXchange marketplace. You set the prices and rules, TelecomsXchange handles interconnection and billing, and you withdraw what you earn from your balance. How do I sign in as a seller? 1. Open the Seller Account login (\"Access your seller dashboard\"). 2. Enter your Seller Login and Password. 3. Click Sign In. You'll see your Dashboard. New to TelecomsXchange? Click Need to create an account? to sign up on the website. If you have a buyer login instead, click Login as Buyer under \"Looking for a different account type?\". After 3 failed attempts, the login page also asks you to type the text from a picture (Enter the text shown below:). Web users sign in on the same page with their own login. How do I sign in with two-step verification? If Enable Two-Step Verification is on in your preferences, the SMS verification page opens after you click Sign In. 1. If TelecomsXchange has no phone number for you, enter it and click SEND SMS. The number is saved to your profile. Otherwise the code is texted to your registered number. 2. Type the code in Enter OTP. 3. Click Verify. Your browser is then trusted for 7 days, so you won't need a code there again until it expires. How do I recover my login or password? 1. On the seller login, click Forgot ID or Password?. 2. Enter your Email or Login and click Continue to Next Step. 3. Enter your registered Phone Number and click Send Verification Code. 4. Enter the Verification Code from the SMS and click Verify & Reset Password. 5. Open the link in the \"TCXC PASSWORD RECOVERY\" email. You'll see Password Reset Complete with Your Login and Your New Password. Sign in with them, then set your own password in Settings \u2192 Profile & Preferences. You can recover a password once every 24 hours. What's on the seller dashboard? - Account Summary: your company, address and logo, Profile Login, Last Login, Payment Type, Account Balance, and your last payout (Last Payout Amount, Last Payout Method, Last Payout Date). Request Payout takes you to Withdraw Funds, and Edit Preferences opens your preferences. - Live Calls: the number of calls on your routes right now. View Details lists them. - API Keys: your API Login and API Key (click the eye icon to reveal it) with a View API Documentation button. While Allow API Access is off in your preferences, the card says \"API access is currently disabled. You can enable it in your Preferences\". See the seller API. - Switch to Buyer Panel: shown if your seller account is linked to a buyer account. Where is everything? The sidebar holds these menus: Menu What you do there Routes \u2192 My Routes Add and edit the routes you sell, and upload rate decks Routes \u2192 Future Rate Changes See rate changes scheduled to take effect Routes \u2192 Interconnect Info The platform IP addresses to whitelist. See Interconnect info Routes \u2192 My Buyers See who purchased your routes and numbers Market View See the market, including competitors' prices HLR Lookup Run HLR lookups on phone numbers. See HLR Lookup Money Payout History and Withdraw Funds eSIMS Config and Sales, shown when eSIM selling is enabled for your account. See Sell eSIMs DIDs My DIDs, Market View and Subscription Logs for the phone numbers you sell Logs CDR (Voice), SDR (SMS), Call Stats (Voice) and Web Access Live Calls Calls in progress on your routes Settings Profile & Preferences and Web Users. See Web users and access logs The top bar has your messages (envelope icon, with a badge for unread messages), your balance (click it for Payout History, or the + next to it to request a payout), and your avatar with your login and \"Seller\". It also has the light/dark mode switcher: click the moon for dark mode or the sun for light mode. Your browser remembers the choice. Logout sits at the bottom of the sidebar. Web users see less than the main user. Web Users and Logs \u2192 Web Access are for the main user only. Finance web users don't see My Routes but can use Withdraw Funds; other web users see My Routes but not Withdraw Funds. Inviting and managing web users is covered in Web users and access logs. Login Timeout (minutes) in Settings \u2192 Profile & Preferences signs you out after that many minutes without activity. Set it to 0 to stay signed in until you log out. Web users inherit the main user's setting. What should I set up first? 1. Go to Settings \u2192 Profile & Preferences. Upload your logo (it appears on your profile and in buyers' rate update emails), complete your Company Profile, and enter your Payout Method details. 2. Add your first route. 3. Upload your rate deck. What if something goes wrong? You see What to do Wrong Login or Password Check your Seller Login and Password, or use Forgot ID or Password?. Invalid captcha Type the text from the picture again. Invalid SMS Password Type the code from the latest SMS. Send SMS failed The code couldn't be texted to that number. Check the number and try again, or contact support. Please retry in 10 seconds Wait 10 seconds and sign in again. Your account has been blocked. Please contact support@telecomsxchange.com to unblock your account. Too many SMS code attempts failed. Email support@telecomsxchange.com to unblock your access. You have reached the maximum number of password retries, your web access is blocked please contact system admin Your web access is blocked. Contact TelecomsXchange support. Recovery allowed only once each 24h Wait 24 hours after your last password recovery. Incorrect SMS phone number The number you entered isn't the one registered on your account. Enter the registered number. Please contact system administrator to set up your SMS phone number Password recovery needs a phone number on your account. Contact TelecomsXchange support.",
   "sections": [
    {
     "id": "how-do-i-sign-in-as-a-seller",
     "title": "How do I sign in as a seller?",
     "text": "1. Open the Seller Account login (\"Access your seller dashboard\"). 2. Enter your Seller Login and Password. 3. Click Sign In. You'll see your Dashboard. New to TelecomsXchange? Click Need to create an account? to sign up on the website. If you have a buyer login instead, click Login as Buyer under \"Looking for a different account type?\". After 3 failed attempts, the login page also asks you to type the text from a picture (Enter the text shown below:). Web users sign in on the same page with their own login."
    },
    {
     "id": "how-do-i-sign-in-with-two-step-verification",
     "title": "How do I sign in with two-step verification?",
     "text": "If Enable Two-Step Verification is on in your preferences, the SMS verification page opens after you click Sign In. 1. If TelecomsXchange has no phone number for you, enter it and click SEND SMS. The number is saved to your profile. Otherwise the code is texted to your registered number. 2. Type the code in Enter OTP. 3. Click Verify. Your browser is then trusted for 7 days, so you won't need a code there again until it expires."
    },
    {
     "id": "how-do-i-recover-my-login-or-password",
     "title": "How do I recover my login or password?",
     "text": "1. On the seller login, click Forgot ID or Password?. 2. Enter your Email or Login and click Continue to Next Step. 3. Enter your registered Phone Number and click Send Verification Code. 4. Enter the Verification Code from the SMS and click Verify & Reset Password. 5. Open the link in the \"TCXC PASSWORD RECOVERY\" email. You'll see Password Reset Complete with Your Login and Your New Password. Sign in with them, then set your own password in Settings \u2192 Profile & Preferences. You can recover a password once every 24 hours."
    },
    {
     "id": "whats-on-the-seller-dashboard",
     "title": "What's on the seller dashboard?",
     "text": "- Account Summary: your company, address and logo, Profile Login, Last Login, Payment Type, Account Balance, and your last payout (Last Payout Amount, Last Payout Method, Last Payout Date). Request Payout takes you to Withdraw Funds, and Edit Preferences opens your preferences. - Live Calls: the number of calls on your routes right now. View Details lists them. - API Keys: your API Login and API Key (click the eye icon to reveal it) with a View API Documentation button. While Allow API Access is off in your preferences, the card says \"API access is currently disabled. You can enable it in your Preferences\". See the seller API. - Switch to Buyer Panel: shown if your seller account is linked to a buyer account."
    },
    {
     "id": "where-is-everything",
     "title": "Where is everything?",
     "text": "The sidebar holds these menus: Menu What you do there Routes \u2192 My Routes Add and edit the routes you sell, and upload rate decks Routes \u2192 Future Rate Changes See rate changes scheduled to take effect Routes \u2192 Interconnect Info The platform IP addresses to whitelist. See Interconnect info Routes \u2192 My Buyers See who purchased your routes and numbers Market View See the market, including competitors' prices HLR Lookup Run HLR lookups on phone numbers. See HLR Lookup Money Payout History and Withdraw Funds eSIMS Config and Sales, shown when eSIM selling is enabled for your account. See Sell eSIMs DIDs My DIDs, Market View and Subscription Logs for the phone numbers you sell Logs CDR (Voice), SDR (SMS), Call Stats (Voice) and Web Access Live Calls Calls in progress on your routes Settings Profile & Preferences and Web Users. See Web users and access logs The top bar has your messages (envelope icon, with a badge for unread messages), your balance (click it for Payout History, or the + next to it to request a payout), and your avatar with your login and \"Seller\". It also has the light/dark mode switcher: click the moon for dark mode or the sun for light mode. Your browser remembers the choice. Logout sits at the bottom of the sidebar. Web users see less than the main user. Web Users and Logs \u2192 Web Access are for the main user only. Finance web users don't see My Routes but can use Withdraw Funds; other web users see My Routes but not Withdraw Funds. Inviting and managing web users is covered in Web users and access logs. Login Timeout (minutes) in Settings \u2192 Profile & Preferences signs you out after that many minutes without activity. Set it to 0 to stay signed in until you log out. Web users inherit the main user's setting."
    },
    {
     "id": "what-should-i-set-up-first",
     "title": "What should I set up first?",
     "text": "1. Go to Settings \u2192 Profile & Preferences. Upload your logo (it appears on your profile and in buyers' rate update emails), complete your Company Profile, and enter your Payout Method details. 2. Add your first route. 3. Upload your rate deck."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do Wrong Login or Password Check your Seller Login and Password, or use Forgot ID or Password?. Invalid captcha Type the text from the picture again. Invalid SMS Password Type the code from the latest SMS. Send SMS failed The code couldn't be texted to that number. Check the number and try again, or contact support. Please retry in 10 seconds Wait 10 seconds and sign in again. Your account has been blocked. Please contact support@telecomsxchange.com to unblock your account. Too many SMS code attempts failed. Email support@telecomsxchange.com to unblock your access. You have reached the maximum number of password retries, your web access is blocked please contact system admin Your web access is blocked. Contact TelecomsXchange support. Recovery allowed only once each 24h Wait 24 hours after your last password recovery. Incorrect SMS phone number The number you entered isn't the one registered on your account. Enter the registered number. Please contact system administrator to set up your SMS phone number Password recovery needs a phone number on your account. Contact TelecomsXchange support."
    }
   ]
  },
  {
   "slug": "add-your-first-route",
   "section": "sellers",
   "title": "Add your first route to sell",
   "description": "Create a voice (SIP) or SMS (SMPP) route on TelecomsXchange: termination IP and port, capacity, route type, public or anonymous listing, the Buyers Prefix, OBR, CLI management and caller ID policy.",
   "summary": "Go to Routes \u2192 My Routes, click Add New Route, choose VOICE (SIP) or SMS (SMPP), fill in the name, IP Address:Port, capacity and route type, and click Add Route. The route starts with an empty tariff, so upload your rates next. Edit Route holds number translation, OBR, caller ID policy and your subscribed buyers.",
   "url": "https://help.telecomsxchange.com/sellers/add-your-first-route/",
   "markdown_url": "https://help.telecomsxchange.com/sellers/add-your-first-route.md",
   "updated": "2026-10-21",
   "keywords": [
    "add route",
    "sell route",
    "connection",
    "termination ip",
    "route type",
    "cli",
    "nocli",
    "tdm",
    "anonymous",
    "capacity",
    "smpp route",
    "buyers prefix",
    "tech prefix",
    "block route",
    "edit route",
    "obr",
    "cli management",
    "clid policy",
    "caller id allow list",
    "deny list",
    "bind status",
    "hide blocked routes"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Can I set my own tech prefix?",
     "a": "No. TelecomsXchange generates a unique Buyers Prefix, such as 80039#, for every route. Calls reach you without it; you can add your own prefix with Outgoing Prefix in Edit Route."
    },
    {
     "q": "What's the difference between Public and Anonymous?",
     "a": "A Public route shows your company name in Market View; an Anonymous route hides it. An Anonymous route costs a monthly fee, shown on the Add New Route form and taken from your balance. You can't switch a route between Public and Anonymous after you add it."
    },
    {
     "q": "Can I use a hostname instead of an IP?",
     "a": "On a voice route, only if you also set a VoIP Login (on Edit Route, an Outgoing Prefix also counts). Hostnames ending in restcomm.com are always accepted, and SMS routes have no restriction. Otherwise use an IP address such as 203.0.113.10 or an IP and port such as 203.0.113.10:5060."
    },
    {
     "q": "How do I stop selling a route temporarily?",
     "a": "In Routes \u2192 My Routes, open the route's action menu and click Block Route. Click Unblock Route in the same menu to sell it again."
    },
    {
     "q": "Can I offer a route to only some buyers?",
     "a": "Yes. Turn on Private Exchange in Edit Route, save, and allow the buyers you choose. See Manage your buyers and make private offers."
    },
    {
     "q": "Where are the SMPP bind settings?",
     "a": "On the Edit Route page of an SMS route: SMPP version, bind sessions, rate limit, keep-alive and TLS. The Routes list shows each SMS route's Bind Status, and the action menu has Test Bind. See Sell SMS routes."
    }
   ],
   "text": "How buyer traffic reaches your route 1. Market View: Buyers find and purchase your route 2. Buyer's switch (via Purchase): Dials your Buyers Prefix before the number 3. TelecomsXchange (via 80039#18661234567): Selects your route, applies number translation 4. Your switch (via 18661234567): Your IP Address:Port, without the prefix A route (also called a connection) is a path for traffic into your network, with its own prices, capacity and quality rules. Buyers find it in Market View, buy it, and send traffic that TelecomsXchange delivers to your IP address. How do I add a route? 1. Go to Routes \u2192 My Routes. You'll see your routes with their publicity, protocol, IP address, capacity and type, Buyers Prefix, status and, for SMS routes, Bind Status. 2. Click Add New Route. 3. Under Protocol, choose VOICE (SIP) or SMS (SMPP). 4. Fill in the route fields (see the table below). 5. Click Add Route. You'll see \"Route has been added. Proceed to the route list or add more.\" The route starts with an empty tariff, so it won't sell until you upload your rate deck. These are the fields on the Add New Route form: Field What to enter Name A short name buyers will see, for example Platinum. It must be different from your other routes' names. IP Address:Port Where TelecomsXchange sends traffic, for example 203.0.113.10:5060 Secondary IP Address:Port Optional failover endpoint. It must be different from the primary. Publicity Public, or Anonymous to hide your company name (monthly fee). You can't change this later. VoIP Login (optional) / VoIP Password (optional) Credentials, if your switch needs them. If you set a login, you must set a password too. Don't use : or ;. Route Capacity The maximum number of simultaneous calls, as a number Route Type (QoS) NA, NoCLI, TDM or CLI. Choose the type that matches your route; buyers rely on it. For an SMS (SMPP) route, the form changes: Field What to enter SMPP System Id / SMPP Password Both are required. The system ID can't be one another seller already uses. SMPP Sessions Number of sessions, from 1 to 100 SMPP Session Timeout Seconds, from 1 to 300 Field for Messages short_message or message_payload SMPP Enquire Link Interval (0 = disable) Seconds, from 10 to 600, and less than the session timeout. Use 0 to turn it off. The rest of an SMS route's settings (SMPP version, bind sessions, rate limit, keep-alive, TLS, the MCCMNC tariff and Test Bind) live on Edit Route. See Sell SMS routes. An Anonymous route is charged the monthly fee from your balance as soon as you add it. The form shows the amount. If your balance is too low, the route isn't added. What is the Buyers Prefix? TelecomsXchange generates a unique Buyers Prefix for every route: 5 digits followed by #, for example 80039#. Buyers put it in front of the number they dial to select your route. You can't change it. Calls reach you without the prefix. TelecomsXchange sends numbers in international format, for example 18661234567. How do I change a route's settings? 1. In Routes \u2192 My Routes, open the route's action menu and click Edit Route. 2. Change the settings you need (see the list below). 3. Click Update Settings. You'll see \"Route information updated successfully.\" These are the settings on the Edit Route page: - Required Settings: Route Name, IP addresses, credentials, Route Capacity, Route Type, and the Buyers Prefix (read only). - OBR Enabled (voice routes): switch on origin-based (OBR) handling, which matches the caller's number against your prefixes. With it on, choose OBR Prefix Match (Exact Prefix Match Only, or Fallback to parent prefixes for match to try shorter prefixes when there's no exact match) and OBR Source Match (Match Only P-Asserted-Identity, or Fallback to From to use the From header when there's no P-Asserted-Identity). The route then takes a second, origin-based tariff under Upload OBR Tariff; see Upload your rate deck. - Blocked and Private Exchange switches. With Private Exchange on, only the buyers you allow can buy the route. See Manage your buyers and make private offers. On an anonymous route, Blocked also controls the monthly fee (\"Block/unblock to control anonymous billing\"), and Anonymous Billed To shows the date the route is paid up to. - Upload Tariff: Download current rates (CSV), then upload your edited file. Upload Tariff Help at the top of the page explains each column. See Upload your rate deck. - Short Memo for Buyers: a short note displayed in Market View. The form suggests 150 characters. - Outgoing Number Translation Parameters (voice): Strip First X Digits, Strip Prefixes (a comma-separated list such as 31,7,44) and Outgoing Prefix (digits, + or #, up to 15 characters), to match your switch's dialing format. - CLI Management (voice; shown only when TelecomsXchange has enabled it for your account): CLI Method Pass-Through (keep the original caller ID), Empty (clear it), Random (generate one from CLI Prefix and CLI Total Length) or Dictionary (use caller IDs from a list you upload). Upload Dictionary takes a CSV with a header row and two columns, an action (A to add, D to delete) and the CLI; click Download to get the current dictionary. - Minimum Traffic Requirements (voice): Block if ASR Goes Lower Than (%), Block if ACD Goes Lower Than (sec) and Traffic Type (Retail or No Restriction). Compliance is calculated on daily traffic. See quality thresholds. - Subscribed Buyers: who uses the route, with Daily ASR, Daily ACD and Daily Minutes, and Block or Unblock for each buyer. Blocking sends the buyer an inbox message. - Block/Allow Caller IDs (CLID) Policy (voice): see below. How do I allow or block caller IDs on a route? At the bottom of Edit Route on a voice route, Block/Allow Caller IDs (CLID) Policy holds a list of caller ID prefixes and a policy that says what the list means. 1. Check Current Policy: Deny listed (Allow all others) or Allow listed (Deny all others). Click Switch to Allow List or Switch to Deny List to change it. 2. Under Add CLI Prefix, type a numeric prefix, or EMPTY to match calls with no caller ID, and click Add. The prefix appears in the table with its Add Date. Click Remove to delete it. Prefixes must be digits only; a prefix that's already in the list gives \"Duplicate prefix detected.\" How do I stop selling a route? 1. Go to Routes \u2192 My Routes. 2. Open the route's action menu and click Block Route. The route's status changes to Blocked. To sell it again, click Unblock Route in the same menu. Blocked routes are hidden from the list until you click Show Blocked Routes; click Hide Blocked Routes to hide them again. In the list, an anonymous route shows \u2713 Billed or \u26a0 Unbilled under its publicity, an SMS route with TLS shows a lock icon, and the Bind Status icon of an SMS route opens its bind log. Web users with the Finance role can't open My Routes or Edit Route. What if something goes wrong? You see What to do IP should be either IP address, say 1.2.3.4 or host:port like 1.2.3.4:5060 Enter an IP such as 203.0.113.10 or an IP and port such as 203.0.113.10:5060. Secondary IP should be either IP address, say 1.2.3.4 or host:port like 1.2.3.4:5060 Fix the Secondary IP Address:Port the same way, or leave it empty. IP:port is not unique / Secondary IP:port is not unique Another seller's route already uses that destination. Use a different IP or port. Same Primary and Secondary hostport are not allowed Use a different secondary, or leave it empty. DNS names only allowed with VoIP Login or Tech prefix Use an IP address, set a VoIP Login and password, or (on Edit Route) set an Outgoing Prefix. 'Route Capacity' parameter must be a number Enter digits only. VoIP password should not be empty when VoIP login is set Enter both a login and a password, or neither. Name is not available, choose another name You already have a route with that name. Pick another. Not enough balance to pay for anonymous monthly fee Add to your balance, or choose Public. 'Strip first X digits' parameter expects integer Enter a whole number in Strip First X Digits, or 0. 'Strip prefixes' parameter expects comma separated list of integers, for example '1,1800,1866' Use digits and commas only in Strip Prefixes. 'Add Prefix' parameter expects integer or + or # sign Use only digits, + and # in Outgoing Prefix, up to 15 characters. 'Block ASR' / 'Block ACD' parameter expects numeric value Enter numbers only, or leave the field empty. OBR Prefix Match can be only \u2026 Pick one of the options in OBR Prefix Match and OBR Source Match and save again. SMPP system id and password should not be empty Enter both the SMPP System Id and the SMPP Password. SMPP system id is not unique Use a different SMPP System Id. Allowed SMPP Sessions expected values are between 1 and 100 Enter a number of SMPP Sessions from 1 to 100. SMPP Session Timeout value should be between 1 and 300 Enter a timeout from 1 to 300 seconds. SMPP Session Enquire Link value should be between 10 and 600 (0 to disable) Enter an interval from 10 to 600 seconds, or 0. SMPP Session Enquire Link value should be less than SMPP Session Timeout Make the enquire link interval shorter than the session timeout.",
   "sections": [
    {
     "id": "how-do-i-add-a-route",
     "title": "How do I add a route?",
     "text": "1. Go to Routes \u2192 My Routes. You'll see your routes with their publicity, protocol, IP address, capacity and type, Buyers Prefix, status and, for SMS routes, Bind Status. 2. Click Add New Route. 3. Under Protocol, choose VOICE (SIP) or SMS (SMPP). 4. Fill in the route fields (see the table below). 5. Click Add Route. You'll see \"Route has been added. Proceed to the route list or add more.\" The route starts with an empty tariff, so it won't sell until you upload your rate deck. These are the fields on the Add New Route form: Field What to enter Name A short name buyers will see, for example Platinum. It must be different from your other routes' names. IP Address:Port Where TelecomsXchange sends traffic, for example 203.0.113.10:5060 Secondary IP Address:Port Optional failover endpoint. It must be different from the primary. Publicity Public, or Anonymous to hide your company name (monthly fee). You can't change this later. VoIP Login (optional) / VoIP Password (optional) Credentials, if your switch needs them. If you set a login, you must set a password too. Don't use : or ;. Route Capacity The maximum number of simultaneous calls, as a number Route Type (QoS) NA, NoCLI, TDM or CLI. Choose the type that matches your route; buyers rely on it. For an SMS (SMPP) route, the form changes: Field What to enter SMPP System Id / SMPP Password Both are required. The system ID can't be one another seller already uses. SMPP Sessions Number of sessions, from 1 to 100 SMPP Session Timeout Seconds, from 1 to 300 Field for Messages short_message or message_payload SMPP Enquire Link Interval (0 = disable) Seconds, from 10 to 600, and less than the session timeout. Use 0 to turn it off. The rest of an SMS route's settings (SMPP version, bind sessions, rate limit, keep-alive, TLS, the MCCMNC tariff and Test Bind) live on Edit Route. See Sell SMS routes. An Anonymous route is charged the monthly fee from your balance as soon as you add it. The form shows the amount. If your balance is too low, the route isn't added."
    },
    {
     "id": "what-is-the-buyers-prefix",
     "title": "What is the Buyers Prefix?",
     "text": "TelecomsXchange generates a unique Buyers Prefix for every route: 5 digits followed by #, for example 80039#. Buyers put it in front of the number they dial to select your route. You can't change it. Calls reach you without the prefix. TelecomsXchange sends numbers in international format, for example 18661234567."
    },
    {
     "id": "how-do-i-change-a-routes-settings",
     "title": "How do I change a route's settings?",
     "text": "1. In Routes \u2192 My Routes, open the route's action menu and click Edit Route. 2. Change the settings you need (see the list below). 3. Click Update Settings. You'll see \"Route information updated successfully.\" These are the settings on the Edit Route page: - Required Settings: Route Name, IP addresses, credentials, Route Capacity, Route Type, and the Buyers Prefix (read only). - OBR Enabled (voice routes): switch on origin-based (OBR) handling, which matches the caller's number against your prefixes. With it on, choose OBR Prefix Match (Exact Prefix Match Only, or Fallback to parent prefixes for match to try shorter prefixes when there's no exact match) and OBR Source Match (Match Only P-Asserted-Identity, or Fallback to From to use the From header when there's no P-Asserted-Identity). The route then takes a second, origin-based tariff under Upload OBR Tariff; see Upload your rate deck. - Blocked and Private Exchange switches. With Private Exchange on, only the buyers you allow can buy the route. See Manage your buyers and make private offers. On an anonymous route, Blocked also controls the monthly fee (\"Block/unblock to control anonymous billing\"), and Anonymous Billed To shows the date the route is paid up to. - Upload Tariff: Download current rates (CSV), then upload your edited file. Upload Tariff Help at the top of the page explains each column. See Upload your rate deck. - Short Memo for Buyers: a short note displayed in Market View. The form suggests 150 characters. - Outgoing Number Translation Parameters (voice): Strip First X Digits, Strip Prefixes (a comma-separated list such as 31,7,44) and Outgoing Prefix (digits, + or #, up to 15 characters), to match your switch's dialing format. - CLI Management (voice; shown only when TelecomsXchange has enabled it for your account): CLI Method Pass-Through (keep the original caller ID), Empty (clear it), Random (generate one from CLI Prefix and CLI Total Length) or Dictionary (use caller IDs from a list you upload). Upload Dictionary takes a CSV with a header row and two columns, an action (A to add, D to delete) and the CLI; click Download to get the current dictionary. - Minimum Traffic Requirements (voice): Block if ASR Goes Lower Than (%), Block if ACD Goes Lower Than (sec) and Traffic Type (Retail or No Restriction). Compliance is calculated on daily traffic. See quality thresholds. - Subscribed Buyers: who uses the route, with Daily ASR, Daily ACD and Daily Minutes, and Block or Unblock for each buyer. Blocking sends the buyer an inbox message. - Block/Allow Caller IDs (CLID) Policy (voice): see below."
    },
    {
     "id": "how-do-i-allow-or-block-caller-ids-on-a-route",
     "title": "How do I allow or block caller IDs on a route?",
     "text": "At the bottom of Edit Route on a voice route, Block/Allow Caller IDs (CLID) Policy holds a list of caller ID prefixes and a policy that says what the list means. 1. Check Current Policy: Deny listed (Allow all others) or Allow listed (Deny all others). Click Switch to Allow List or Switch to Deny List to change it. 2. Under Add CLI Prefix, type a numeric prefix, or EMPTY to match calls with no caller ID, and click Add. The prefix appears in the table with its Add Date. Click Remove to delete it. Prefixes must be digits only; a prefix that's already in the list gives \"Duplicate prefix detected.\""
    },
    {
     "id": "how-do-i-stop-selling-a-route",
     "title": "How do I stop selling a route?",
     "text": "1. Go to Routes \u2192 My Routes. 2. Open the route's action menu and click Block Route. The route's status changes to Blocked. To sell it again, click Unblock Route in the same menu. Blocked routes are hidden from the list until you click Show Blocked Routes; click Hide Blocked Routes to hide them again. In the list, an anonymous route shows \u2713 Billed or \u26a0 Unbilled under its publicity, an SMS route with TLS shows a lock icon, and the Bind Status icon of an SMS route opens its bind log. Web users with the Finance role can't open My Routes or Edit Route."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do IP should be either IP address, say 1.2.3.4 or host:port like 1.2.3.4:5060 Enter an IP such as 203.0.113.10 or an IP and port such as 203.0.113.10:5060. Secondary IP should be either IP address, say 1.2.3.4 or host:port like 1.2.3.4:5060 Fix the Secondary IP Address:Port the same way, or leave it empty. IP:port is not unique / Secondary IP:port is not unique Another seller's route already uses that destination. Use a different IP or port. Same Primary and Secondary hostport are not allowed Use a different secondary, or leave it empty. DNS names only allowed with VoIP Login or Tech prefix Use an IP address, set a VoIP Login and password, or (on Edit Route) set an Outgoing Prefix. 'Route Capacity' parameter must be a number Enter digits only. VoIP password should not be empty when VoIP login is set Enter both a login and a password, or neither. Name is not available, choose another name You already have a route with that name. Pick another. Not enough balance to pay for anonymous monthly fee Add to your balance, or choose Public. 'Strip first X digits' parameter expects integer Enter a whole number in Strip First X Digits, or 0. 'Strip prefixes' parameter expects comma separated list of integers, for example '1,1800,1866' Use digits and commas only in Strip Prefixes. 'Add Prefix' parameter expects integer or + or # sign Use only digits, + and # in Outgoing Prefix, up to 15 characters. 'Block ASR' / 'Block ACD' parameter expects numeric value Enter numbers only, or leave the field empty. OBR Prefix Match can be only \u2026 Pick one of the options in OBR Prefix Match and OBR Source Match and save again. SMPP system id and password should not be empty Enter both the SMPP System Id and the SMPP Password. SMPP system id is not unique Use a different SMPP System Id. Allowed SMPP Sessions expected values are between 1 and 100 Enter a number of SMPP Sessions from 1 to 100. SMPP Session Timeout value should be between 1 and 300 Enter a timeout from 1 to 300 seconds. SMPP Session Enquire Link value should be between 10 and 600 (0 to disable) Enter an interval from 10 to 600 seconds, or 0. SMPP Session Enquire Link value should be less than SMPP Session Timeout Make the enquire link interval shorter than the session timeout."
    }
   ]
  },
  {
   "slug": "upload-your-rate-deck",
   "section": "sellers",
   "title": "Upload your rate deck (tariff CSV)",
   "description": "Download, edit and upload your TelecomsXchange tariff CSV: columns, effective dates, the 6-day rule for voice rate increases, origin-based (OBR) tariffs, the MCCMNC upload for SMS routes, upload errors and buyer emails.",
   "summary": "In Routes \u2192 My Routes, open Edit Route, click Download current rates (CSV), edit it in a spreadsheet, choose it under Upload Tariff and click Update Settings. Voice rate increases take effect 6 days after upload; buyers get the changes by email. SMS routes can also take an MCCMNC price file.",
   "url": "https://help.telecomsxchange.com/sellers/upload-your-rate-deck/",
   "markdown_url": "https://help.telecomsxchange.com/sellers/upload-your-rate-deck.md",
   "updated": "2026-10-21",
   "keywords": [
    "rate deck",
    "tariff",
    "upload rates",
    "csv",
    "price change",
    "rate increase",
    "effective date",
    "asap",
    "interval",
    "future rate changes",
    "future rates",
    "upload_errors.csv",
    "mccmnc",
    "upload tariff mccmnc",
    "force mccmnc update",
    "obr",
    "origin based rating",
    "cli prefix",
    "upload obr tariff"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "How much notice do buyers get for a rate increase?",
     "a": "On voice routes, an increase takes effect at least 6 days after upload. New prefixes, decreases and unchanged rates can take effect at once, and SMS rate changes have no waiting period. The help text on the page still says 48 hours; the 6-day rule is what applies."
    },
    {
     "q": "What does ASAP mean in Effective from?",
     "a": "Apply the rate as soon as possible. A voice rate increase marked ASAP takes effect 6 days after upload; everything else takes effect at once."
    },
    {
     "q": "What happens if some rows have errors?",
     "a": "Nothing is saved. Your browser downloads upload_errors.csv, with an Error column explaining each problem. Fix the rows and upload the file again."
    },
    {
     "q": "Do I have to upload my whole deck every time?",
     "a": "No. Each row is applied as an update to your tariff, so you can upload only the prefixes you're changing. Remove the rows you're not changing: re-uploading an unchanged row with the same date gives a duplicate error."
    },
    {
     "q": "Can I upload SMS prices by operator instead of by prefix?",
     "a": "Yes. On an SMS route, Upload Tariff MCCMNC takes a file with MCCMNC, Price and Effective_from per row and expands each operator code to its prefixes."
    },
    {
     "q": "Are buyers told about my rate changes?",
     "a": "Yes. Every buyer with a purchase of the route receives an email with the changed rates attached, at their main and rates email addresses."
    }
   ],
   "text": "How a rate change reaches buyers 1. Tariff CSV: Downloaded, edited and uploaded in Edit Route 2. TelecomsXchange (via Update Settings): Validates rows; errors return upload_errors.csv 3. Effective date (via ASAP or a date): Voice increases wait 6 days; others apply at once 4. Buyers' inboxes (via rate update email): Zipped CSV with Change Status per row Your rate deck (tariff) is what buyers see in Market View: one price per destination prefix. You manage it as a CSV file that you download, edit in a spreadsheet and upload again. Before you start - Add a route. A new route starts with an empty tariff. How do I upload rates? 1. Go to Routes \u2192 My Routes, open the route's action menu and click Edit Route. 2. Under Upload Tariff, click Download current rates (CSV). The file is named <your login>_route_<route name>.csv and holds every rate row in your tariff, including past, scheduled and discontinued ones, or an empty template if the route has no rates yet. 3. Open the file in Excel or any spreadsheet and edit the rows (see the column table below). Keep the header row and the column order, and delete the rows you aren't changing. 4. Under Upload Tariff, choose the edited CSV file (up to 50 MB). 5. Click Update Settings. The file is applied when you save. You'll see \"Tariff has been uploaded. N Rows processed.\" The number is the position of the last line read, not a count of changed rates. If the file raised any voice rates, the message adds \"Increased rates will be effective in 6 days.\"; otherwise it adds \"Check Market View.\" For a reminder of the columns, open Upload Tariff Help at the top of the page or click Column guide. You don't need to upload the whole deck. Every row is applied as an update, so a file with only the prefixes you're changing is enough. Empty rows are skipped, and a negative price is read as positive. Upload Tariff Help says rates \"can only be updated after 48 hours\". The rule the platform actually applies to voice rate increases is 6 days, as described below. What's in the CSV? The upload reads columns by position, so keep them in this order: Column What to put in it Country, Description For reference only. Ignored on upload. Prefix The destination prefix in E.164 format, for example 4477. Required. Effective from YYYY-MM-DD hh:mm:ss, for example 2026-11-01 00:00:00, or ASAP Rate Id For reference only. Ignored on upload. Forbidden 1 to block traffic to this prefix, 0 to allow it Discontinued 1 to stop selling this prefix, 0 to keep it Price 1 Price per minute for the first billing interval, for example 0.0523 Price N Price per minute for the following intervals Interval 1 Length of the first billing interval in whole seconds, from 1 to 60 Interval N Length of the following intervals in whole seconds. Use 1 to 60 like Interval 1; the upload checks only that it's a whole number. The download also has statistics columns (Last Day ASR, Last Week ASR, Last Day ACD, Last Week ACD, Last Day Minutes, Last Week Minutes, Statistics Time). They are for your information and ignored on upload. How do I upload SMS prices by operator (MCCMNC)? On an SMS route, Edit Route has a second file picker, Upload Tariff MCCMNC, for pricing by mobile operator code. 1. Prepare a CSV with no header row and three columns per line: MCCMNC, Price and Effective_from (a date or ASAP). 2. Choose the file under Upload Tariff MCCMNC. Tick Force MCCMNC Update (\"Update even if errors are found\") if you want the valid rows applied even when some rows fail. 3. Click Update Settings. Each MCCMNC is expanded to all of its prefixes, with the price used for both Price 1 and Price N and 1-second intervals. There is no 6-day wait for SMS. You'll see \"Tariff has been uploaded. N rates updated.\" Without Force MCCMNC Update, any error stops the whole upload and your browser downloads upload_errors_mccmnc.csv; with it, the message adds \"M errors detected. Download Error File\". How do I price by the caller's origin (OBR)? With OBR Enabled switched on for a voice route (see Add your first route), the route gets a second tariff whose price depends on both the destination and the caller's number. Edit Route then shows Upload OBR Tariff below Upload Tariff, and Upload Tariff Help gains a download OBR link and a CLI Prefix column. 1. Under Upload OBR Tariff, click Download current rates (CSV). The file is named <your login>_route_<route name>_obr.csv. 2. Edit it as you would the main deck. The columns are the same, plus CLI Prefix after Prefix: the prefix the caller's number must start with. Three special values cover callers no prefix matches: OBR_INVALID_CLI_RATE for a caller ID that isn't a valid number, OBR_UNKNOWN_COUNTRY_RATE for a number whose country isn't recognised, and OBR_GLOBAL_DEFAULT_RATE for everything else. 3. Choose the file under Upload OBR Tariff and click Update Settings. The same rules apply as for the main deck: ASAP or a date in Effective from, the 6-day wait for increases, and upload_errors.csv when a row is invalid. A row is identified by its prefix, CLI prefix and date together, so the same pair can't appear twice with one date. Buyers of the route receive the OBR changes by email as <seller>_<route>_rates_update_obr.csv, with the CLI Prefix column included. When do new prices take effect? A row counts as an increase when Price 1, Price N, Interval 1 or Interval N is higher than the rate in effect now. A prefix whose current rate is forbidden or discontinued counts as new. Change Takes effect New prefix, decrease, unchanged rate At once with ASAP, or on your date Forbidden or discontinued prefix At once with ASAP, or on your date Voice rate increase with ASAP 6 days after upload Voice rate increase with a date On your date, which must be at least 6 days after upload Any SMS rate change At once with ASAP, or on your date To see scheduled changes, go to Routes \u2192 Future Rate Changes. The Future Rates page lists Route, Prefix, Country [Description], Price 1/N, Interval 1/N and Effective From. Filter by Prefix, Route, Country and Description, choose Results Per Page, and click Search; Clear empties the filters. Click Download Results to save the list as future_rates.csv. What if something goes wrong? If any row is invalid, nothing is saved. Your browser downloads upload_errors.csv: your file with an Error column added. Fix the rows it marks and upload again. You see What to do 'Prefix' value should be not be empty. Give every row a prefix. 'Interval 1' value should be integer from 1 to 60. Use whole seconds from 1 to 60. 'Interval N' value should be integer from 1 to 60. Use whole seconds in Interval N. 'Price 1' value should be floating point number. Use plain numbers such as 0.0082, with no currency symbol. The same applies to 'Price N'. Effective from value can be either date/time 'YYYY-MM-DD hh:mm:ss' or special value 'ASAP' Use a date such as 2026-11-01 00:00:00, or ASAP. Duplicate prefix-effective_from pairs are not allowed in single tariff The same prefix and date appear twice in the file, or already exist in your tariff (the download includes every existing row). Remove the row, or change its date. Duplicate prefix-cliprefix-effective_from triplets are not allowed in single tariff The same prefix, CLI prefix and date appear twice in the OBR file, or already exist. Remove the row, or change its date. 'CLI Prefix' value should be not be empty. Give every OBR row a CLI prefix, or one of the special values. 'CLI Prefix' value should be only digits or special values: OBR_INVALID_CLI_RATE OBR_UNKNOWN_COUNTRY_RATE OBR_GLOBAL_DEFAULT_RATE Use digits only, or one of those three values exactly. Rate increase only allowed effective 6 or more days after upload Move the increase's date at least 6 days out, or use ASAP. 'MCCMNC' value should be not be empty. Give every row in the MCCMNC file an operator code. 'MCC' value should be not be empty. Give every row in the MCCMNC file a price. No matching MCC MCN prefixes found TelecomsXchange has no prefixes for that MCCMNC. Check the code, or contact support. How are buyers notified? Every buyer with a purchase of the route automatically receives a rate update email. It goes to their main email and their rates email. Buyers who have blocked the route themselves don't receive it; buyers you have blocked still do. - The changes are attached as a zipped CSV named <seller>_<route>_rates_update.csv.zip with Country, Description, Prefix, Effective From, Forbidden, Discontinued, Price 1, Price N, Interval 1, Interval N and Change Status (new, increase, decrease or unchanged). - For SMS routes, the CSV has Country, Description, Prefix, Effective From, MCCMNC, Price and Change Status. - If the route is anonymous, the email shows \"Anonymous\" instead of your name.",
   "sections": [
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "- Add a route. A new route starts with an empty tariff."
    },
    {
     "id": "how-do-i-upload-rates",
     "title": "How do I upload rates?",
     "text": "1. Go to Routes \u2192 My Routes, open the route's action menu and click Edit Route. 2. Under Upload Tariff, click Download current rates (CSV). The file is named <your login>_route_<route name>.csv and holds every rate row in your tariff, including past, scheduled and discontinued ones, or an empty template if the route has no rates yet. 3. Open the file in Excel or any spreadsheet and edit the rows (see the column table below). Keep the header row and the column order, and delete the rows you aren't changing. 4. Under Upload Tariff, choose the edited CSV file (up to 50 MB). 5. Click Update Settings. The file is applied when you save. You'll see \"Tariff has been uploaded. N Rows processed.\" The number is the position of the last line read, not a count of changed rates. If the file raised any voice rates, the message adds \"Increased rates will be effective in 6 days.\"; otherwise it adds \"Check Market View.\" For a reminder of the columns, open Upload Tariff Help at the top of the page or click Column guide. You don't need to upload the whole deck. Every row is applied as an update, so a file with only the prefixes you're changing is enough. Empty rows are skipped, and a negative price is read as positive. Upload Tariff Help says rates \"can only be updated after 48 hours\". The rule the platform actually applies to voice rate increases is 6 days, as described below."
    },
    {
     "id": "whats-in-the-csv",
     "title": "What's in the CSV?",
     "text": "The upload reads columns by position, so keep them in this order: Column What to put in it Country, Description For reference only. Ignored on upload. Prefix The destination prefix in E.164 format, for example 4477. Required. Effective from YYYY-MM-DD hh:mm:ss, for example 2026-11-01 00:00:00, or ASAP Rate Id For reference only. Ignored on upload. Forbidden 1 to block traffic to this prefix, 0 to allow it Discontinued 1 to stop selling this prefix, 0 to keep it Price 1 Price per minute for the first billing interval, for example 0.0523 Price N Price per minute for the following intervals Interval 1 Length of the first billing interval in whole seconds, from 1 to 60 Interval N Length of the following intervals in whole seconds. Use 1 to 60 like Interval 1; the upload checks only that it's a whole number. The download also has statistics columns (Last Day ASR, Last Week ASR, Last Day ACD, Last Week ACD, Last Day Minutes, Last Week Minutes, Statistics Time). They are for your information and ignored on upload."
    },
    {
     "id": "how-do-i-upload-sms-prices-by-operator-mccmnc",
     "title": "How do I upload SMS prices by operator (MCCMNC)?",
     "text": "On an SMS route, Edit Route has a second file picker, Upload Tariff MCCMNC, for pricing by mobile operator code. 1. Prepare a CSV with no header row and three columns per line: MCCMNC, Price and Effective_from (a date or ASAP). 2. Choose the file under Upload Tariff MCCMNC. Tick Force MCCMNC Update (\"Update even if errors are found\") if you want the valid rows applied even when some rows fail. 3. Click Update Settings. Each MCCMNC is expanded to all of its prefixes, with the price used for both Price 1 and Price N and 1-second intervals. There is no 6-day wait for SMS. You'll see \"Tariff has been uploaded. N rates updated.\" Without Force MCCMNC Update, any error stops the whole upload and your browser downloads upload_errors_mccmnc.csv; with it, the message adds \"M errors detected. Download Error File\"."
    },
    {
     "id": "how-do-i-price-by-the-callers-origin-obr",
     "title": "How do I price by the caller's origin (OBR)?",
     "text": "With OBR Enabled switched on for a voice route (see Add your first route), the route gets a second tariff whose price depends on both the destination and the caller's number. Edit Route then shows Upload OBR Tariff below Upload Tariff, and Upload Tariff Help gains a download OBR link and a CLI Prefix column. 1. Under Upload OBR Tariff, click Download current rates (CSV). The file is named <your login>_route_<route name>_obr.csv. 2. Edit it as you would the main deck. The columns are the same, plus CLI Prefix after Prefix: the prefix the caller's number must start with. Three special values cover callers no prefix matches: OBR_INVALID_CLI_RATE for a caller ID that isn't a valid number, OBR_UNKNOWN_COUNTRY_RATE for a number whose country isn't recognised, and OBR_GLOBAL_DEFAULT_RATE for everything else. 3. Choose the file under Upload OBR Tariff and click Update Settings. The same rules apply as for the main deck: ASAP or a date in Effective from, the 6-day wait for increases, and upload_errors.csv when a row is invalid. A row is identified by its prefix, CLI prefix and date together, so the same pair can't appear twice with one date. Buyers of the route receive the OBR changes by email as <seller>_<route>_rates_update_obr.csv, with the CLI Prefix column included."
    },
    {
     "id": "when-do-new-prices-take-effect",
     "title": "When do new prices take effect?",
     "text": "A row counts as an increase when Price 1, Price N, Interval 1 or Interval N is higher than the rate in effect now. A prefix whose current rate is forbidden or discontinued counts as new. Change Takes effect New prefix, decrease, unchanged rate At once with ASAP, or on your date Forbidden or discontinued prefix At once with ASAP, or on your date Voice rate increase with ASAP 6 days after upload Voice rate increase with a date On your date, which must be at least 6 days after upload Any SMS rate change At once with ASAP, or on your date To see scheduled changes, go to Routes \u2192 Future Rate Changes. The Future Rates page lists Route, Prefix, Country [Description], Price 1/N, Interval 1/N and Effective From. Filter by Prefix, Route, Country and Description, choose Results Per Page, and click Search; Clear empties the filters. Click Download Results to save the list as future_rates.csv."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "If any row is invalid, nothing is saved. Your browser downloads upload_errors.csv: your file with an Error column added. Fix the rows it marks and upload again. You see What to do 'Prefix' value should be not be empty. Give every row a prefix. 'Interval 1' value should be integer from 1 to 60. Use whole seconds from 1 to 60. 'Interval N' value should be integer from 1 to 60. Use whole seconds in Interval N. 'Price 1' value should be floating point number. Use plain numbers such as 0.0082, with no currency symbol. The same applies to 'Price N'. Effective from value can be either date/time 'YYYY-MM-DD hh:mm:ss' or special value 'ASAP' Use a date such as 2026-11-01 00:00:00, or ASAP. Duplicate prefix-effective_from pairs are not allowed in single tariff The same prefix and date appear twice in the file, or already exist in your tariff (the download includes every existing row). Remove the row, or change its date. Duplicate prefix-cliprefix-effective_from triplets are not allowed in single tariff The same prefix, CLI prefix and date appear twice in the OBR file, or already exist. Remove the row, or change its date. 'CLI Prefix' value should be not be empty. Give every OBR row a CLI prefix, or one of the special values. 'CLI Prefix' value should be only digits or special values: OBR_INVALID_CLI_RATE OBR_UNKNOWN_COUNTRY_RATE OBR_GLOBAL_DEFAULT_RATE Use digits only, or one of those three values exactly. Rate increase only allowed effective 6 or more days after upload Move the increase's date at least 6 days out, or use ASAP. 'MCCMNC' value should be not be empty. Give every row in the MCCMNC file an operator code. 'MCC' value should be not be empty. Give every row in the MCCMNC file a price. No matching MCC MCN prefixes found TelecomsXchange has no prefixes for that MCCMNC. Check the code, or contact support."
    },
    {
     "id": "how-are-buyers-notified",
     "title": "How are buyers notified?",
     "text": "Every buyer with a purchase of the route automatically receives a rate update email. It goes to their main email and their rates email. Buyers who have blocked the route themselves don't receive it; buyers you have blocked still do. - The changes are attached as a zipped CSV named <seller>_<route>_rates_update.csv.zip with Country, Description, Prefix, Effective From, Forbidden, Discontinued, Price 1, Price N, Interval 1, Interval N and Change Status (new, increase, decrease or unchanged). - For SMS routes, the CSV has Country, Description, Prefix, Effective From, MCCMNC, Price and Change Status. - If the route is anonymous, the email shows \"Anonymous\" instead of your name."
    }
   ]
  },
  {
   "slug": "interconnect-info",
   "section": "sellers",
   "title": "Whitelist TelecomsXchange on your switch (Interconnect Info)",
   "description": "Find the TelecomsXchange platform IP, SIP source ports, codec policy and SMPP bind details to whitelist on your firewall so your routes receive traffic.",
   "summary": "Go to Routes \u2192 Interconnect Info. Whitelist the TelecomsXchange platform IP, 174.136.44.213, on your firewall and switch. Voice arrives by SIP over UDP from source ports 5060\u20135072 with all codecs passed through; SMS arrives by an SMPP transceiver bind to your server. Each of your routes has a card with its exact destination, tech prefix and SMPP system ID.",
   "url": "https://help.telecomsxchange.com/sellers/interconnect-info/",
   "markdown_url": "https://help.telecomsxchange.com/sellers/interconnect-info.md",
   "updated": "2026-10-21",
   "keywords": [
    "interconnect info",
    "whitelist",
    "platform ip",
    "firewall",
    "sip source ports",
    "codecs",
    "smpp bind",
    "system id",
    "acl",
    "trunk"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Which IP address sends me traffic?",
     "a": "174.136.44.213, the TelecomsXchange platform IP, for both SIP and SMPP. Click Copy on the page to copy it."
    },
    {
     "q": "Which codecs do I need to support?",
     "a": "Whatever the buyer sends: TelecomsXchange passes all codecs through and doesn't transcode."
    },
    {
     "q": "In which format do numbers arrive?",
     "a": "E.164 international format without +, for example 14165551234, after your route's tech prefix if it has one."
    },
    {
     "q": "How does SMS reach my SMPP server?",
     "a": "TelecomsXchange binds to your server as a transceiver with the system ID and password shown on the route's card, using SMPP 3.4 or 5.0, with TLS if your route has it enabled."
    }
   ],
   "text": "What your network must let in 1. TelecomsXchange: Sends from platform IP 174.136.44.213 2. Your firewall (via SIP UDP 5060\u20135072): Allows the platform IP and source ports 3. Switch or SMSC (via 14165551234): Codecs pass through; SMPP binds as transceiver Your routes only carry traffic once your switch accepts calls and messages from TelecomsXchange. Interconnect Info lists everything your network team needs to whitelist. Where do I find it? Go to Routes \u2192 Interconnect Info. The page, Whitelist Configuration, has three parts: general SIP information, general SMPP information, and a card for each of your routes. What do I whitelist for voice? TCXC Platform IP 174.136.44.213 Protocol SIP over UDP Source Port Range 5060 to 5072 Codec Support Pass-through: no transcoding Number format E.164 international, such as 14165551234 Allow the platform IP on your firewall and in your switch's access list, and accept SIP from source ports 5060 to 5072 to the host and port you set on the route. Media follows the SIP session; whatever codec the buyer offers is passed to you unchanged, so support the codecs you want to receive. What do I whitelist for SMS? TCXC Platform IP 174.136.44.213 Bind Type Transceiver SMPP Version 3.4 or 5.0 TLS Support Optional TelecomsXchange connects to your SMPP server, not the other way round: it binds as a transceiver with the system ID and password you configured on the route. Allow the platform IP on the SMPP port you gave. What does each route's card show? Under Your Routes - Specific Configuration, click a route to expand it. A SIP route shows the platform IP, Your Destination (the host and port you set), the Source Port Range, the route's Tech Prefix (or None (default)), the protocol and the Route Status, Active or Blocked. An SMPP route shows Your SMPP Server, the TCXC System ID and TCXC Password TelecomsXchange binds with, whether TLS Encryption is enabled, the SMPP Version, and the enquire-link interval and throughput limit if you set them on the route. Change any of these values on the route itself: see Add your first route. The SMPP password is shown in full on this page. Treat it like any other credential and don't paste the page into tickets or chats. What if something goes wrong? Problem What to check No calls arrive on a new route The platform IP is allowed on the firewall and ACL, the route's host and port match your switch, and the route isn't Blocked. Calls arrive but fail to set up Your switch accepts the codec the buyer sends; TelecomsXchange doesn't transcode. No SMPP bind from TelecomsXchange Your server accepts a transceiver bind from the platform IP with the system ID and password on the card, and TLS matches the route setting. No routes configured yet Click Add Your First Route; the cards appear once a route exists.",
   "sections": [
    {
     "id": "where-do-i-find-it",
     "title": "Where do I find it?",
     "text": "Go to Routes \u2192 Interconnect Info. The page, Whitelist Configuration, has three parts: general SIP information, general SMPP information, and a card for each of your routes."
    },
    {
     "id": "what-do-i-whitelist-for-voice",
     "title": "What do I whitelist for voice?",
     "text": "TCXC Platform IP 174.136.44.213 Protocol SIP over UDP Source Port Range 5060 to 5072 Codec Support Pass-through: no transcoding Number format E.164 international, such as 14165551234 Allow the platform IP on your firewall and in your switch's access list, and accept SIP from source ports 5060 to 5072 to the host and port you set on the route. Media follows the SIP session; whatever codec the buyer offers is passed to you unchanged, so support the codecs you want to receive."
    },
    {
     "id": "what-do-i-whitelist-for-sms",
     "title": "What do I whitelist for SMS?",
     "text": "TCXC Platform IP 174.136.44.213 Bind Type Transceiver SMPP Version 3.4 or 5.0 TLS Support Optional TelecomsXchange connects to your SMPP server, not the other way round: it binds as a transceiver with the system ID and password you configured on the route. Allow the platform IP on the SMPP port you gave."
    },
    {
     "id": "what-does-each-routes-card-show",
     "title": "What does each route's card show?",
     "text": "Under Your Routes - Specific Configuration, click a route to expand it. A SIP route shows the platform IP, Your Destination (the host and port you set), the Source Port Range, the route's Tech Prefix (or None (default)), the protocol and the Route Status, Active or Blocked. An SMPP route shows Your SMPP Server, the TCXC System ID and TCXC Password TelecomsXchange binds with, whether TLS Encryption is enabled, the SMPP Version, and the enquire-link interval and throughput limit if you set them on the route. Change any of these values on the route itself: see Add your first route. The SMPP password is shown in full on this page. Treat it like any other credential and don't paste the page into tickets or chats."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "Problem What to check No calls arrive on a new route The platform IP is allowed on the firewall and ACL, the route's host and port match your switch, and the route isn't Blocked. Calls arrive but fail to set up Your switch accepts the codec the buyer sends; TelecomsXchange doesn't transcode. No SMPP bind from TelecomsXchange Your server accepts a transceiver bind from the platform IP with the system ID and password on the card, and TLS matches the route setting. No routes configured yet Click Add Your First Route; the cards appear once a route exists."
    }
   ]
  },
  {
   "slug": "manage-buyers-and-private-offers",
   "section": "sellers",
   "title": "Manage your buyers and make private offers",
   "description": "See who buys your TelecomsXchange routes and numbers, message or review a buyer, reply to buyer messages, block a buyer on one route, and offer a route privately to chosen buyers.",
   "summary": "Go to Routes \u2192 My Buyers to see who bought your routes or DIDs and message them. Replies arrive in your Messages inbox. To block a buyer or sell a route privately, open the route's Edit Route page and use Subscribed Buyers or Private Exchange.",
   "url": "https://help.telecomsxchange.com/sellers/manage-buyers-and-private-offers/",
   "markdown_url": "https://help.telecomsxchange.com/sellers/manage-buyers-and-private-offers.md",
   "updated": "2026-10-21",
   "keywords": [
    "my buyers",
    "customers",
    "message buyer",
    "reply to buyer",
    "send reply anonymously",
    "block buyer",
    "unblock buyer",
    "private exchange",
    "private offer",
    "buyer profile",
    "review",
    "feedback",
    "subscribed buyers",
    "allow buyer",
    "disallow buyer"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Can I block a buyer from all my routes at once?",
     "a": "No. Blocking works per route. Open each route's Edit Route page and click Block next to the buyer in Subscribed Buyers."
    },
    {
     "q": "Is the buyer told when I block them?",
     "a": "Yes. The buyer gets an inbox message from TelecomsXchange saying their purchased route has been blocked by the seller. No email is sent, and unblocking sends nothing."
    },
    {
     "q": "How does a private offer work?",
     "a": "Turn on Private Exchange for the route, then allow buyers by their exact login. Only allowed buyers see the route in Market View, and each one gets an email offer with the rate sheet attached."
    },
    {
     "q": "What happens when I disallow a buyer?",
     "a": "The buyer loses access to the private route, and their existing purchase of that route is removed. They are not notified."
    },
    {
     "q": "How do I reply to a buyer anonymously?",
     "a": "Open the message in your inbox. If the buyer wrote to you about an anonymous route or DID, the reply button reads Send Reply Anonymously and the buyer sees you as the anonymous owner of that route or number."
    }
   ],
   "text": "How a private offer reaches a buyer 1. Your route: Private Exchange switched on in Edit Route 2. Allowed buyers (via Allow by exact login): Only they see the route in Market View 3. Offer email (via sent automatically): Rate sheet attached, with Log in to accept 4. Buyer's purchase (via accepts offer): Disallow removes it and stops traffic See who buys from you, talk to them, and control who can use each route. Who is buying from me? 1. Go to Routes \u2192 My Buyers. 2. Under Type, choose Routes or DIDs. To find one buyer, type part of their login or email in Buyer or Email. 3. Click Search. Reset clears the filters. You'll see Buyers (N) with each buyer and the routes or DIDs they bought from you (a card shows the first four and \"+N more\"). Switch between card and list view with the buttons above the results. Each buyer has Message and View profile buttons. Searching by email can also list buyers who haven't bought from you. How do I message or review a buyer? 1. On Routes \u2192 My Buyers, click Message next to the buyer, or click View profile and then Send A Message. 2. Fill in Subject and Message, and click Send Message (Cancel takes you back to the profile). 3. To leave a review, open the buyer's profile, choose a Rating under Leave Feedback (1 is bad, 5 is good), write your Review, and click Add Review. The buyer gets your message in their inbox and by email with the subject \"TCXC Message: [your subject]\", and you land on your Outbox. A review appears under Reviews on the buyer's profile, together with reviews from other sellers and the buyer's average rating. A review shorter than 4 characters is not saved. The profile also shows the buyer's Company Profile details and when they became a member. How do I reply to a buyer? 1. Click the envelope icon in the top bar. Your Inbox lists each message's sender, subject, date and a preview; unread ones carry a New badge, and messages about an anonymous route or DID carry an Anonymous badge. 2. Click Read on the message. 3. Type Your Reply and click Send Reply. On a message about one of your anonymous routes or DIDs, the button reads Send Reply Anonymously. The reply goes to the buyer's inbox and by email. On an anonymous reply, the buyer sees you as \"Anonymous Owner of Route [name]\" or \"Anonymous Owner of DID Number [number]\". Use Mailbox to switch between Inbox and Outbox. You can only reply to messages addressed to you. How do I see how a buyer's traffic is doing? 1. Go to Routes \u2192 My Routes and choose Edit Route for the route. 2. Scroll to Subscribed Buyers. You'll see each buyer on that route with their Daily ASR, Daily ACD and Daily Minutes for the previous day. How do I block a buyer? 1. Go to Routes \u2192 My Routes and choose Edit Route for the route. 2. In Subscribed Buyers, click Block next to the buyer. The buyer can no longer use this route and gets an inbox message from TelecomsXchange with the subject \"Purchased route has been blocked for seller:[your login]\". No email is sent. The block applies to this route only. To undo it, click Unblock next to the buyer; the buyer is not notified of the unblock. Instead of blocking by hand, set Minimum Traffic Requirements on the route. Buyers whose daily traffic falls below them are blocked automatically. See quality thresholds. How do I offer a route privately? A private route is visible only to buyers you allow, for example to give one carrier a special price. 1. Go to Routes \u2192 My Routes and choose Edit Route for the route. 2. Switch on Private Exchange and click Update Settings. Buyers who already bought the route are added to the allowed list automatically. 3. In the Private Exchange Buyers panel, start typing the buyer's login in Buyer name and pick it from the suggestions. 4. Click Allow. The buyer appears in the Private Exchange Buyers list. They receive an email with the subject \"Private Exchange Offer: [route] has been offered to you by Seller [your name]\", the seller, route and offer date, a Log in to accept offer button and your rate sheet attached as [your login]_route_[route].csv. The route now shows for them in Market View. If the route is anonymous, the email shows your name as Anonymous. Allowing a buyer who is already on the list sends the offer email again. Clicking Disallow next to a buyer removes their access and deletes their existing purchase of the route. Their traffic on it stops, and they are not notified. Web users with the Finance role can't open Edit Route, so they can't block buyers or manage private offers. What if something goes wrong? You see What to do Buyer not found Check the login. Allow needs the buyer's exact login, not their company name or email. Empty subject is not allowed Fill in Subject before you click Send Message. Empty message is not allowed Fill in Message (or Your Reply) before you send.",
   "sections": [
    {
     "id": "who-is-buying-from-me",
     "title": "Who is buying from me?",
     "text": "1. Go to Routes \u2192 My Buyers. 2. Under Type, choose Routes or DIDs. To find one buyer, type part of their login or email in Buyer or Email. 3. Click Search. Reset clears the filters. You'll see Buyers (N) with each buyer and the routes or DIDs they bought from you (a card shows the first four and \"+N more\"). Switch between card and list view with the buttons above the results. Each buyer has Message and View profile buttons. Searching by email can also list buyers who haven't bought from you."
    },
    {
     "id": "how-do-i-message-or-review-a-buyer",
     "title": "How do I message or review a buyer?",
     "text": "1. On Routes \u2192 My Buyers, click Message next to the buyer, or click View profile and then Send A Message. 2. Fill in Subject and Message, and click Send Message (Cancel takes you back to the profile). 3. To leave a review, open the buyer's profile, choose a Rating under Leave Feedback (1 is bad, 5 is good), write your Review, and click Add Review. The buyer gets your message in their inbox and by email with the subject \"TCXC Message: [your subject]\", and you land on your Outbox. A review appears under Reviews on the buyer's profile, together with reviews from other sellers and the buyer's average rating. A review shorter than 4 characters is not saved. The profile also shows the buyer's Company Profile details and when they became a member."
    },
    {
     "id": "how-do-i-reply-to-a-buyer",
     "title": "How do I reply to a buyer?",
     "text": "1. Click the envelope icon in the top bar. Your Inbox lists each message's sender, subject, date and a preview; unread ones carry a New badge, and messages about an anonymous route or DID carry an Anonymous badge. 2. Click Read on the message. 3. Type Your Reply and click Send Reply. On a message about one of your anonymous routes or DIDs, the button reads Send Reply Anonymously. The reply goes to the buyer's inbox and by email. On an anonymous reply, the buyer sees you as \"Anonymous Owner of Route [name]\" or \"Anonymous Owner of DID Number [number]\". Use Mailbox to switch between Inbox and Outbox. You can only reply to messages addressed to you."
    },
    {
     "id": "how-do-i-see-how-a-buyers-traffic-is-doing",
     "title": "How do I see how a buyer's traffic is doing?",
     "text": "1. Go to Routes \u2192 My Routes and choose Edit Route for the route. 2. Scroll to Subscribed Buyers. You'll see each buyer on that route with their Daily ASR, Daily ACD and Daily Minutes for the previous day."
    },
    {
     "id": "how-do-i-block-a-buyer",
     "title": "How do I block a buyer?",
     "text": "1. Go to Routes \u2192 My Routes and choose Edit Route for the route. 2. In Subscribed Buyers, click Block next to the buyer. The buyer can no longer use this route and gets an inbox message from TelecomsXchange with the subject \"Purchased route has been blocked for seller:[your login]\". No email is sent. The block applies to this route only. To undo it, click Unblock next to the buyer; the buyer is not notified of the unblock. Instead of blocking by hand, set Minimum Traffic Requirements on the route. Buyers whose daily traffic falls below them are blocked automatically. See quality thresholds."
    },
    {
     "id": "how-do-i-offer-a-route-privately",
     "title": "How do I offer a route privately?",
     "text": "A private route is visible only to buyers you allow, for example to give one carrier a special price. 1. Go to Routes \u2192 My Routes and choose Edit Route for the route. 2. Switch on Private Exchange and click Update Settings. Buyers who already bought the route are added to the allowed list automatically. 3. In the Private Exchange Buyers panel, start typing the buyer's login in Buyer name and pick it from the suggestions. 4. Click Allow. The buyer appears in the Private Exchange Buyers list. They receive an email with the subject \"Private Exchange Offer: [route] has been offered to you by Seller [your name]\", the seller, route and offer date, a Log in to accept offer button and your rate sheet attached as [your login]_route_[route].csv. The route now shows for them in Market View. If the route is anonymous, the email shows your name as Anonymous. Allowing a buyer who is already on the list sends the offer email again. Clicking Disallow next to a buyer removes their access and deletes their existing purchase of the route. Their traffic on it stops, and they are not notified. Web users with the Finance role can't open Edit Route, so they can't block buyers or manage private offers."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do Buyer not found Check the login. Allow needs the buyer's exact login, not their company name or email. Empty subject is not allowed Fill in Subject before you click Send Message. Empty message is not allowed Fill in Message (or Your Reply) before you send."
    }
   ]
  },
  {
   "slug": "quality-thresholds-and-anonymous-routes",
   "section": "sellers",
   "title": "Quality thresholds, automatic blocks and anonymous routes",
   "description": "Set minimum ASR, ACD and traffic type on your TelecomsXchange voice routes, learn how buyers are blocked automatically, and how the monthly anonymous fee is charged.",
   "summary": "In Edit Route, fill in Minimum Traffic Requirements and click Update Settings. Each day TelecomsXchange checks every buyer's previous-day traffic on the route and blocks buyers below your ASR or ACD limits. Anonymous routes and DIDs cost a monthly fee taken from your balance.",
   "url": "https://help.telecomsxchange.com/sellers/quality-thresholds-and-anonymous-routes/",
   "markdown_url": "https://help.telecomsxchange.com/sellers/quality-thresholds-and-anonymous-routes.md",
   "updated": "2026-10-21",
   "keywords": [
    "asr",
    "acd",
    "minimum traffic requirements",
    "block buyer automatically",
    "retail traffic",
    "traffic type",
    "anonymous route",
    "anonymous fee",
    "anonymous billed to",
    "unbilled",
    "call stats",
    "quality",
    "thresholds email"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "When are buyers blocked automatically?",
     "a": "Once a day, based on the previous day's traffic. If a buyer made at least 10 calls on your route and their ASR or ACD is below your limits, their purchase of the route is blocked and you both get an inbox message."
    },
    {
     "q": "What does Traffic Type 'Retail' mean?",
     "a": "It tells buyers your route accepts only retail traffic. Buyers see it in the terms they must accept before they can buy the route."
    },
    {
     "q": "Why do I get emails about a buyer's own thresholds?",
     "a": "Buyers can set their own ASR and ACD warning and block limits on a purchased route. When one is crossed, the email (TCXC Notification Tresholds met or TCXC BLOCK Tresholds met) goes to the buyer and to you."
    },
    {
     "q": "How much does anonymous listing cost?",
     "a": "A monthly fee per anonymous route and a separate monthly fee per anonymous DID, set for your account by TelecomsXchange. The amount is shown when you choose Anonymous under Publicity."
    },
    {
     "q": "What happens if I can't pay the anonymous fee?",
     "a": "You get a reminder email in the 3 days before it's due if your balance is too low. If it still can't be charged, the route is blocked (or the DID set to Blocked) until you top up and unblock it."
    },
    {
     "q": "How do I stop paying for an anonymous route?",
     "a": "Switch on Blocked for the route in Edit Route. The monthly fee is only charged for routes that are not blocked. You can't turn an anonymous route into a public one."
    }
   ],
   "text": "How buyers are blocked automatically 1. Buyer traffic: At least 10 calls on the previous UTC day 2. Daily check (via midnight UTC): Compares ASR and ACD with your limits 3. Blocked purchase (via below a limit): Buyer and you both get an inbox message 4. Subscribed Buyers (via your review): Unblock; the next day's check runs again Short calls and floods of unanswered calls cost you money and hurt your standing with your own carriers. Set minimum quality limits on a voice route, and TelecomsXchange blocks buyers who fall below them. How do I set quality requirements? 1. Go to Routes \u2192 My Routes and choose Edit Route for a voice route. 2. Scroll to Minimum Traffic Requirements. 3. Enter Block if ASR Goes Lower Than (%) and Block if ACD Goes Lower Than (sec) (see the table below). 4. Choose a Traffic Type. 5. Click Update Settings. You'll see \"Route information updated successfully.\" On the purchase page, buyers now see \"This route has minimum traffic requirements\" with the lines that apply: \"Only Retail traffic accepted\", \"Minimum ACD N sec\" and \"Minimum ASR N %\". They must tick I agree with the terms and conditions of the seller before they can buy. The notice and the checkbox appear only when Traffic Type is Retail or a limit is above 0. Setting What it means Block if ASR Goes Lower Than (%) Lowest answer-seizure ratio you accept: answered calls as a share of all calls. Block if ACD Goes Lower Than (sec) Lowest average call duration you accept, in seconds, across answered calls. Traffic Type Retail (only retail traffic accepted) or No Restriction. Leave a value empty, or set it to 0, if you have no requirement for it. SMS routes have no traffic requirements. Start with moderate limits (for example ASR 15, ACD 20) and tighten them once you know your normal traffic. Limits that are too strict block good buyers on a bad day. How do automatic blocks work? Every day TelecomsXchange checks each buyer's traffic on your route for the previous day (midnight to midnight UTC): - Buyers who have blocked the route themselves, and buyers with fewer than 10 calls (answered and failed together), are skipped. - For the others, ASR is answered calls as a percentage of all calls, and ACD is the total duration of answered calls divided by their number. If either is below your limit, the buyer's purchase of the route is blocked. - The buyer gets an inbox message \"Purchased route has been blocked for seller:[your login]\" saying the route was blocked because traffic requirements were not met. You get an inbox message \"Purchased route has been blocked for buyer:[buyer login]\". The same daily check updates Daily ASR, Daily ACD and Daily Minutes in Edit Route \u2192 Subscribed Buyers. For buyers with fewer than 10 calls, only Daily Minutes is filled in. To let a blocked buyer back in, click Unblock next to them in Subscribed Buyers. The check runs again the next day, so a buyer who is still below your limits is blocked again. Buyers can also set their own warning and block limits on a purchased route. When the daily check finds one crossed, the email, \"TCXC Notification Tresholds met for [your name]-[route]\" or \"TCXC BLOCK Tresholds met for [your name]-[route]\", goes to the buyer and to you. A buyer-side block stops that buyer's traffic until the buyer activates the route again. Where do I see daily statistics? Go to Logs \u2192 Call Stats (Voice). The Statistics & Reports page has a calendar: pick a day to download its CDR and statistics files. Daily statistics are generated at midnight UTC. More in reports and preferences. How does anonymous listing work? When you add a route or a DID, choosing Anonymous under Publicity hides your company name from buyers. Market View, private offer emails and messages show Anonymous instead. The form shows the monthly fee for your account; routes and DIDs have separate fees. You can't change a route's publicity after you add it. - The first month is charged from your balance when you create the anonymous route or DID. If your balance is too low you'll see \"Not enough balance to pay for anonymous monthly fee\" followed by the amount (for a DID, \"Not enough balance to pay for DID anonymous fee\"). - After that, the fee is taken from your balance each month, within minutes of the paid-up date, and appears in Money \u2192 Payout History as \"Anonymous feature for route [id]\" or \"Anonymous feature for DID [id]\". - If your balance is too low in the 3 days before the next charge, you get a reminder email with the subject \"TCXC Anonymous Route Billing issue! Route: [name]\" (or \"TCXC Anonymous DID Billing issue!\") that says when the route or DID Blocks on. - Edit Route shows Anonymous Billed To: the date the route is paid up to. In Routes \u2192 My Routes, a paid anonymous route shows \u2713 Billed and an unpaid one \u26a0 Unbilled. In DIDs \u2192 My DIDs, a paid anonymous DID shows OK and an unpaid one shows Unbilled. If the monthly fee can't be charged, the route is blocked (or the DID set to Blocked) and traffic on it stops. You get an email with the same subject, \"TCXC Anonymous Route Billing issue! Route: [name]\" (or \"TCXC Anonymous DID Billing issue!\"), saying the route or DID has been blocked. Top up your balance, then switch off Blocked on the route or set the DID back to Idle. The fee is only charged for routes and DIDs that are not blocked. To stop paying for an anonymous route, switch on Blocked in Edit Route. For a DID, set its status to Blocked. What if something goes wrong? You see What to do 'Block ASR' parameter expects numeric value Enter a number only, for example 15, without the % sign. 'Block ACD' parameter expects numeric value Enter a number of seconds only, for example 20. Not enough balance to pay for anonymous monthly fee Top up your balance so it covers one month's fee, or choose Public. Not enough balance to pay for DID anonymous fee The same, for an anonymous DID.",
   "sections": [
    {
     "id": "how-do-i-set-quality-requirements",
     "title": "How do I set quality requirements?",
     "text": "1. Go to Routes \u2192 My Routes and choose Edit Route for a voice route. 2. Scroll to Minimum Traffic Requirements. 3. Enter Block if ASR Goes Lower Than (%) and Block if ACD Goes Lower Than (sec) (see the table below). 4. Choose a Traffic Type. 5. Click Update Settings. You'll see \"Route information updated successfully.\" On the purchase page, buyers now see \"This route has minimum traffic requirements\" with the lines that apply: \"Only Retail traffic accepted\", \"Minimum ACD N sec\" and \"Minimum ASR N %\". They must tick I agree with the terms and conditions of the seller before they can buy. The notice and the checkbox appear only when Traffic Type is Retail or a limit is above 0. Setting What it means Block if ASR Goes Lower Than (%) Lowest answer-seizure ratio you accept: answered calls as a share of all calls. Block if ACD Goes Lower Than (sec) Lowest average call duration you accept, in seconds, across answered calls. Traffic Type Retail (only retail traffic accepted) or No Restriction. Leave a value empty, or set it to 0, if you have no requirement for it. SMS routes have no traffic requirements. Start with moderate limits (for example ASR 15, ACD 20) and tighten them once you know your normal traffic. Limits that are too strict block good buyers on a bad day."
    },
    {
     "id": "how-do-automatic-blocks-work",
     "title": "How do automatic blocks work?",
     "text": "Every day TelecomsXchange checks each buyer's traffic on your route for the previous day (midnight to midnight UTC): - Buyers who have blocked the route themselves, and buyers with fewer than 10 calls (answered and failed together), are skipped. - For the others, ASR is answered calls as a percentage of all calls, and ACD is the total duration of answered calls divided by their number. If either is below your limit, the buyer's purchase of the route is blocked. - The buyer gets an inbox message \"Purchased route has been blocked for seller:[your login]\" saying the route was blocked because traffic requirements were not met. You get an inbox message \"Purchased route has been blocked for buyer:[buyer login]\". The same daily check updates Daily ASR, Daily ACD and Daily Minutes in Edit Route \u2192 Subscribed Buyers. For buyers with fewer than 10 calls, only Daily Minutes is filled in. To let a blocked buyer back in, click Unblock next to them in Subscribed Buyers. The check runs again the next day, so a buyer who is still below your limits is blocked again. Buyers can also set their own warning and block limits on a purchased route. When the daily check finds one crossed, the email, \"TCXC Notification Tresholds met for [your name]-[route]\" or \"TCXC BLOCK Tresholds met for [your name]-[route]\", goes to the buyer and to you. A buyer-side block stops that buyer's traffic until the buyer activates the route again."
    },
    {
     "id": "where-do-i-see-daily-statistics",
     "title": "Where do I see daily statistics?",
     "text": "Go to Logs \u2192 Call Stats (Voice). The Statistics & Reports page has a calendar: pick a day to download its CDR and statistics files. Daily statistics are generated at midnight UTC. More in reports and preferences."
    },
    {
     "id": "how-does-anonymous-listing-work",
     "title": "How does anonymous listing work?",
     "text": "When you add a route or a DID, choosing Anonymous under Publicity hides your company name from buyers. Market View, private offer emails and messages show Anonymous instead. The form shows the monthly fee for your account; routes and DIDs have separate fees. You can't change a route's publicity after you add it. - The first month is charged from your balance when you create the anonymous route or DID. If your balance is too low you'll see \"Not enough balance to pay for anonymous monthly fee\" followed by the amount (for a DID, \"Not enough balance to pay for DID anonymous fee\"). - After that, the fee is taken from your balance each month, within minutes of the paid-up date, and appears in Money \u2192 Payout History as \"Anonymous feature for route [id]\" or \"Anonymous feature for DID [id]\". - If your balance is too low in the 3 days before the next charge, you get a reminder email with the subject \"TCXC Anonymous Route Billing issue! Route: [name]\" (or \"TCXC Anonymous DID Billing issue!\") that says when the route or DID Blocks on. - Edit Route shows Anonymous Billed To: the date the route is paid up to. In Routes \u2192 My Routes, a paid anonymous route shows \u2713 Billed and an unpaid one \u26a0 Unbilled. In DIDs \u2192 My DIDs, a paid anonymous DID shows OK and an unpaid one shows Unbilled. If the monthly fee can't be charged, the route is blocked (or the DID set to Blocked) and traffic on it stops. You get an email with the same subject, \"TCXC Anonymous Route Billing issue! Route: [name]\" (or \"TCXC Anonymous DID Billing issue!\"), saying the route or DID has been blocked. Top up your balance, then switch off Blocked on the route or set the DID back to Idle. The fee is only charged for routes and DIDs that are not blocked. To stop paying for an anonymous route, switch on Blocked in Edit Route. For a DID, set its status to Blocked."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do 'Block ASR' parameter expects numeric value Enter a number only, for example 15, without the % sign. 'Block ACD' parameter expects numeric value Enter a number of seconds only, for example 20. Not enough balance to pay for anonymous monthly fee Top up your balance so it covers one month's fee, or choose Public. Not enough balance to pay for DID anonymous fee The same, for an anonymous DID."
    }
   ]
  },
  {
   "slug": "sell-sms-routes",
   "section": "sellers",
   "title": "Sell SMS routes over SMPP",
   "description": "Add an SMS (SMPP) route on TelecomsXchange: the SMSC details TelecomsXchange binds to, session and throughput settings, TLS, rates, bind status and Test Bind, delivery receipts, the SMS Detail Records and inbound SMS for numbers you sell.",
   "summary": "Add a route with Protocol SMS (SMPP), enter your SMSC's IP and port and the system ID and password TelecomsXchange should bind with, and set the session timeout, enquire-link interval and the field your SMSC reads messages from. TelecomsXchange binds to you as a transceiver from 174.136.44.213. Upload a per-message rate deck, then watch Bind Status and the SDR (SMS) page.",
   "url": "https://help.telecomsxchange.com/sellers/sell-sms-routes/",
   "markdown_url": "https://help.telecomsxchange.com/sellers/sell-sms-routes.md",
   "updated": "2026-10-21",
   "keywords": [
    "sms route",
    "smpp",
    "smsc",
    "bind",
    "transceiver",
    "system id",
    "tls",
    "enquire link",
    "submit_sm timeout",
    "message_payload",
    "dlr",
    "delivery receipt",
    "sdr",
    "test bind",
    "mccmnc"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Who binds to whom?",
     "a": "TelecomsXchange binds to your SMSC as a transceiver, from 174.136.44.213, using the system ID and password you set on the route. Your SMSC doesn't connect to TelecomsXchange for outbound routes."
    },
    {
     "q": "How many binds will TelecomsXchange open?",
     "a": "Up to the route's Allowed BIND Sessions (1 to 100). Set Keep BIND Always Online to keep a bind up between messages."
    },
    {
     "q": "How is a message priced?",
     "a": "Per segment at the route's price for the longest matching prefix. Your balance is credited the price times the number of segments for every message you accept."
    },
    {
     "q": "Do SMS rate increases wait 6 days?",
     "a": "No. For SMS routes every uploaded change, increases included, applies at once unless you set a later Effective From date."
    },
    {
     "q": "How do buyers' messages reach me when I sell phone numbers?",
     "a": "The other way round: your SMSC binds to smpp01.telecomsxchange.com, TCP 2776, with login did and password did, or the custom login you set under DIDs \u2192 Authentication."
    }
   ],
   "text": "How a buyer's SMS reaches your SMSC 1. Buyer's platform: Submits with your route's Buyers Prefix 2. TelecomsXchange (via submit_sm): Binds to you from 174.136.44.213 3. Your SMSC (via transceiver bind): Status 0 accepts; you earn per segment 4. Delivery receipt (via stat:DELIVRD): Marked Delivered and relayed to the buyer An SMS route works like a voice route: you list it, buyers purchase it and send traffic, and you're paid per message. The difference is the connection: TelecomsXchange binds to your SMSC over SMPP and submits each message to you. Before you start - Know your SMSC's IP address and port and decide the system ID and password TelecomsXchange will bind with. - Allow the TelecomsXchange platform IP, 174.136.44.213, on your firewall. See Whitelist TelecomsXchange. How do I add an SMS route? 1. Go to Routes \u2192 My Routes and click Add Route. 2. Under Protocol, choose SMS (SMPP). 3. Fill in: - Name and Short Memo, as for a voice route. - IP Address and port of your SMSC, as 1.2.3.4:2775. - SMPP System Id and SMPP Password: the credentials TelecomsXchange binds with. The system ID must be unique on the platform. - SMPP Sessions: how many binds TelecomsXchange may open at once, 1 to 100. - SMPP Session Timeout: seconds before an idle session is dropped, 1 to 300. - SMPP Enquire Link Interval: seconds between keep-alives, 10 to 600, or 0 to disable. It must be shorter than the session timeout. - Field for Messages: short_message or message_payload, whichever your SMSC reads the text from. TelecomsXchange moves the text into that field for you. - Route Type (QoS), Publicity and the other options described in Add your first route. 4. Click Add Route. The route gets a Buyers Prefix, the tech prefix buyers put in front of destination numbers; it is shown read-only on the route's edit page. What else can I set on the route? On Edit Route: - SMPP Version: 5.0 or 3.4, to match your SMSC. - Allowed BIND Sessions: the number of binds, 1 to 100. - SMPP Rate Limit (req/sec): the most messages per second TelecomsXchange sends you; messages above it are refused to the buyer. - SubmitSM Timeout: seconds TelecomsXchange waits for your submit_sm_resp, 1 to 300. After it, the buyer gets a failure and the next route in their routing group is tried. - Keep BIND Always Online, with Always Online BIND Retry After (sec) (1 to 300) and Always Online BIND Max Retries (1 to 10000): keep a bind up permanently and reconnect when it drops. - TLS: Yes to bind over TLS. - Upload Tariff MCCMNC: upload rates by mobile network code instead of prefix; see Upload your rate deck. Changing the bind settings reconnects: you'll see \"Existing BIND will be disconnected, new BIND will be set up with new settings\". How do I price the route? Upload a rate deck as for a voice route; Price 1 is the price per message and intervals are ignored. Every change you upload for an SMS route, increases included, applies at once unless you set a later Effective From date. For each message you accept, your balance is credited the price times the number of segments. Long messages are billed per part: 153 GSM or 67 Unicode characters each. How do I check the bind? - Test Bind: in My Routes, open the route's \u22ee menu and choose Test Bind. TelecomsXchange tries a bind_transceiver for 5 seconds and reports \"bind_transceiver was SUCCESSFULL\" or \"has FAILED\" with the PDU, or \"Was not able to complete in 5 secs, host/port is probably unreachable\". - Bind Status: the icon in My Routes shows ONLINE or OFFLINE. Click it for the SMPP BIND History: each bind's BIND Date, UNBIND Date, Remote IP and Session ID, kept for 30 days. What does my SMSC receive? - A submit_sm for each message, with the text in the field you chose, concatenated parts with their UDH, and registered_delivery set: TelecomsXchange always asks for a receipt. - Answer with submit_sm_resp. Status 0 with your message_id accepts the message and bills the buyer; any other status refuses it and the buyer's next route is tried. - Send a deliver_sm receipt with id:<your message_id> and stat:DELIVRD when the handset confirms. TelecomsXchange marks the message Delivered and relays the receipt to the buyer. Receipts are matched for one day. How do I see the messages I carried? Go to Logs \u2192 SDR (SMS). Filter by CLD (Destination Number), Status (Sent, the default, Any or Failed) and From Date and To Date; the page opens on the last 24 hours. Each row shows the To Number (hover for HLR Lookup Number), From Number, Country, Buyer, Route, Amount (your earnings), Billed SMS, Time, Delivered, Delivery Time and, for failures, the Error Text; click to reveal the Message. Download &lt;n&gt; SMS saves them as sms.csv. The badge at the top shows the SMPP Rate Limit TelecomsXchange has set for your account as a whole. What about SMS to numbers I sell? Messages to phone numbers you sell arrive at TelecomsXchange from your side: your SMSC binds to smpp01.telecomsxchange.com, TCP 2776, with login did and password did, and submits each message to the number. TelecomsXchange forwards it to the buyer's SMPP endpoint and credits you the number's SMS rate. To use your own credentials instead, go to DIDs \u2192 My DIDs \u2192 Authentication \u2192 SMPP DID Authentication, enter an SMPP Login and SMPP Password and click Update Credentials. See Sell phone numbers. What if something goes wrong? You see What to do SMPP system id is not unique Another route on the platform uses that system ID. Choose a different one. SMPP system id and password should not be empty Enter both. IP should be either IP address, say 1.2.3.4 or host:port like 1.2.3.4:5060 Enter your SMSC as ip:port. SMPP Session Timeout value should be between 1 and 300 Pick a value in that range. SMPP Session Enquire Link value should be between 10 and 600 (0 to disable) Pick a value in that range, or 0. SMPP Session Enquire Link value should be less than SMPP Session Timeout Lower the interval or raise the timeout. Allowed SMPP Sessions expected values are between 1 and 100 Pick a value in that range. SubmitSM Timeout allows values between 1 and 300 Pick a value in that range. Test Bind: \"has FAILED\" Your SMSC refused the bind. Check the system ID, password and SMPP version. Test Bind: \"host/port is probably unreachable\" Check the IP and port, and that 174.136.44.213 is allowed on your firewall. Buyers report \"route is down\" TelecomsXchange couldn't bind. Run Test Bind and check your SMSC. SMPP DID Login cannot be empty Enter both the login and the password for DID authentication.",
   "sections": [
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "- Know your SMSC's IP address and port and decide the system ID and password TelecomsXchange will bind with. - Allow the TelecomsXchange platform IP, 174.136.44.213, on your firewall. See Whitelist TelecomsXchange."
    },
    {
     "id": "how-do-i-add-an-sms-route",
     "title": "How do I add an SMS route?",
     "text": "1. Go to Routes \u2192 My Routes and click Add Route. 2. Under Protocol, choose SMS (SMPP). 3. Fill in: - Name and Short Memo, as for a voice route. - IP Address and port of your SMSC, as 1.2.3.4:2775. - SMPP System Id and SMPP Password: the credentials TelecomsXchange binds with. The system ID must be unique on the platform. - SMPP Sessions: how many binds TelecomsXchange may open at once, 1 to 100. - SMPP Session Timeout: seconds before an idle session is dropped, 1 to 300. - SMPP Enquire Link Interval: seconds between keep-alives, 10 to 600, or 0 to disable. It must be shorter than the session timeout. - Field for Messages: short_message or message_payload, whichever your SMSC reads the text from. TelecomsXchange moves the text into that field for you. - Route Type (QoS), Publicity and the other options described in Add your first route. 4. Click Add Route. The route gets a Buyers Prefix, the tech prefix buyers put in front of destination numbers; it is shown read-only on the route's edit page."
    },
    {
     "id": "what-else-can-i-set-on-the-route",
     "title": "What else can I set on the route?",
     "text": "On Edit Route: - SMPP Version: 5.0 or 3.4, to match your SMSC. - Allowed BIND Sessions: the number of binds, 1 to 100. - SMPP Rate Limit (req/sec): the most messages per second TelecomsXchange sends you; messages above it are refused to the buyer. - SubmitSM Timeout: seconds TelecomsXchange waits for your submit_sm_resp, 1 to 300. After it, the buyer gets a failure and the next route in their routing group is tried. - Keep BIND Always Online, with Always Online BIND Retry After (sec) (1 to 300) and Always Online BIND Max Retries (1 to 10000): keep a bind up permanently and reconnect when it drops. - TLS: Yes to bind over TLS. - Upload Tariff MCCMNC: upload rates by mobile network code instead of prefix; see Upload your rate deck. Changing the bind settings reconnects: you'll see \"Existing BIND will be disconnected, new BIND will be set up with new settings\"."
    },
    {
     "id": "how-do-i-price-the-route",
     "title": "How do I price the route?",
     "text": "Upload a rate deck as for a voice route; Price 1 is the price per message and intervals are ignored. Every change you upload for an SMS route, increases included, applies at once unless you set a later Effective From date. For each message you accept, your balance is credited the price times the number of segments. Long messages are billed per part: 153 GSM or 67 Unicode characters each."
    },
    {
     "id": "how-do-i-check-the-bind",
     "title": "How do I check the bind?",
     "text": "- Test Bind: in My Routes, open the route's \u22ee menu and choose Test Bind. TelecomsXchange tries a bind_transceiver for 5 seconds and reports \"bind_transceiver was SUCCESSFULL\" or \"has FAILED\" with the PDU, or \"Was not able to complete in 5 secs, host/port is probably unreachable\". - Bind Status: the icon in My Routes shows ONLINE or OFFLINE. Click it for the SMPP BIND History: each bind's BIND Date, UNBIND Date, Remote IP and Session ID, kept for 30 days."
    },
    {
     "id": "what-does-my-smsc-receive",
     "title": "What does my SMSC receive?",
     "text": "- A submit_sm for each message, with the text in the field you chose, concatenated parts with their UDH, and registered_delivery set: TelecomsXchange always asks for a receipt. - Answer with submit_sm_resp. Status 0 with your message_id accepts the message and bills the buyer; any other status refuses it and the buyer's next route is tried. - Send a deliver_sm receipt with id:<your message_id> and stat:DELIVRD when the handset confirms. TelecomsXchange marks the message Delivered and relays the receipt to the buyer. Receipts are matched for one day."
    },
    {
     "id": "how-do-i-see-the-messages-i-carried",
     "title": "How do I see the messages I carried?",
     "text": "Go to Logs \u2192 SDR (SMS). Filter by CLD (Destination Number), Status (Sent, the default, Any or Failed) and From Date and To Date; the page opens on the last 24 hours. Each row shows the To Number (hover for HLR Lookup Number), From Number, Country, Buyer, Route, Amount (your earnings), Billed SMS, Time, Delivered, Delivery Time and, for failures, the Error Text; click to reveal the Message. Download &lt;n&gt; SMS saves them as sms.csv. The badge at the top shows the SMPP Rate Limit TelecomsXchange has set for your account as a whole."
    },
    {
     "id": "what-about-sms-to-numbers-i-sell",
     "title": "What about SMS to numbers I sell?",
     "text": "Messages to phone numbers you sell arrive at TelecomsXchange from your side: your SMSC binds to smpp01.telecomsxchange.com, TCP 2776, with login did and password did, and submits each message to the number. TelecomsXchange forwards it to the buyer's SMPP endpoint and credits you the number's SMS rate. To use your own credentials instead, go to DIDs \u2192 My DIDs \u2192 Authentication \u2192 SMPP DID Authentication, enter an SMPP Login and SMPP Password and click Update Credentials. See Sell phone numbers."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do SMPP system id is not unique Another route on the platform uses that system ID. Choose a different one. SMPP system id and password should not be empty Enter both. IP should be either IP address, say 1.2.3.4 or host:port like 1.2.3.4:5060 Enter your SMSC as ip:port. SMPP Session Timeout value should be between 1 and 300 Pick a value in that range. SMPP Session Enquire Link value should be between 10 and 600 (0 to disable) Pick a value in that range, or 0. SMPP Session Enquire Link value should be less than SMPP Session Timeout Lower the interval or raise the timeout. Allowed SMPP Sessions expected values are between 1 and 100 Pick a value in that range. SubmitSM Timeout allows values between 1 and 300 Pick a value in that range. Test Bind: \"has FAILED\" Your SMSC refused the bind. Check the system ID, password and SMPP version. Test Bind: \"host/port is probably unreachable\" Check the IP and port, and that 174.136.44.213 is allowed on your firewall. Buyers report \"route is down\" TelecomsXchange couldn't bind. Run Test Bind and check your SMSC. SMPP DID Login cannot be empty Enter both the login and the password for DID authentication."
    }
   ]
  },
  {
   "slug": "sell-virtual-numbers",
   "section": "sellers",
   "title": "Sell virtual phone numbers (DIDs)",
   "description": "List DIDs for sale on TelecomsXchange: point your numbers, set per-minute, SMS, recurring and setup prices, update numbers in bulk by CSV, manage price changes, verify buyer documents and read the DID logs.",
   "summary": "Point your numbers to sip01.telecomsxchange.com (UDP 5060) or smpp01.telecomsxchange.com (TCP 2776). Then go to DIDs \u2192 My DIDs \u2192 Sell New DID, enter the number, prices and features, and click Publish DID. Update listed numbers in bulk with Upload CSV File.",
   "url": "https://help.telecomsxchange.com/sellers/sell-virtual-numbers/",
   "markdown_url": "https://help.telecomsxchange.com/sellers/sell-virtual-numbers.md",
   "updated": "2026-10-21",
   "keywords": [
    "sell did",
    "virtual numbers",
    "publish did",
    "did pricing",
    "recurring fee",
    "setup fee",
    "billing cycle",
    "kyc",
    "documents verified",
    "did authentication",
    "subscription logs",
    "did logs",
    "export dids",
    "upload csv",
    "bulk update dids",
    "smpp did login",
    "delete did"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Which billing cycles are supported?",
     "a": "Monthly, Quarterly and Annual. The buyer is charged the Recurring Fee once per cycle, and the fee is added to your balance."
    },
    {
     "q": "How does document verification (KYC) work?",
     "a": "Tick Documents Verification Required when you list the number. After a buyer purchases it, check their documents, then edit the DID and tick Documents Verified. The buyer is emailed that the number now works."
    },
    {
     "q": "What happens when I raise the price of a sold DID?",
     "a": "An increase of Price per Minute, SMS Price or Recurring Fee on a purchased DID takes effect after 30 days. The buyer is emailed about the change. Decreases, setup fee changes and other edits apply straight away."
    },
    {
     "q": "Can I change the status of a purchased DID?",
     "a": "No. A purchased DID's status and number can't be changed. It becomes Idle again when the buyer cancels it."
    },
    {
     "q": "How do I know when a number is sold or cancelled?",
     "a": "You get an email when a buyer purchases a number (TCXC DID purchase Notification) and when a buyer cancels one (Number Cancelation Alert). A number dropped because the buyer's balance ran out shows in DIDs \u2192 Subscription Logs as balance_unsubscribe, with no email to you."
    },
    {
     "q": "Can I update many numbers at once?",
     "a": "Yes. Export all from My DIDs, edit the rows in a spreadsheet, and upload the file with Upload CSV File. The upload updates numbers you have already listed; add new numbers with Sell New DID."
    }
   ],
   "text": "How calls to your numbers reach buyers 1. Your switch: Sends DID traffic; SMS via smpp01, TCP 2776 2. TelecomsXchange (via sip01.telecomsxchange.com:5060): Checks your authentication rule, bills the buyer 3. Buyer (via purchased number): Receives the call or SMS on the number 4. Your balance (via your share): Setup, recurring and per-use earnings Selling numbers works like selling routes. You list numbers with prices, buyers purchase them in the DIDs Marketplace, and TelecomsXchange bills them and pays you. Before you start Calls and messages to your numbers must reach TelecomsXchange. The same details are shown at the top of DIDs \u2192 My DIDs: - Voice: point your SIP DIDs to sip01.telecomsxchange.com, UDP port 5060. - SMS: point your SMPP DIDs to smpp01.telecomsxchange.com, TCP port 2776, login did, password did. To use your own SMPP login and password instead, click custom SMPP DID login/password on the Authentication Rules page; see Sell SMS routes. How do I let my switch send calls to my DIDs? 1. Go to DIDs \u2192 My DIDs and click Authentication Rules. 2. Click Add New DID Authentication. 3. Enter the Remote IP Address your calls come from, IPv4 or IPv6 (leave it blank for any IP). 4. If you authenticate with a login, enter VoIP Login and VoIP Password. 5. Click Add Authentication. You'll see \"The DID Authentication has been successfully added.\" The rule appears under Authentication Rules on the Incoming DIDs Authentication page, with ANY as the IP when you left it blank, and Edit and Delete actions (Delete asks you to confirm). How do I list a number? 1. Go to DIDs \u2192 My DIDs and click Sell New DID. 2. Fill in the Sell Single DID form (see the table below). Prices are in USD. 3. Under Features Supported, tick at least one of Voice, SMS, Fax or Video. 4. Click Publish DID. You'll see \"The DID has been successfully added.\" The number appears in My DIDs with status Idle (for sale), unless you chose Blocked. Field What to enter Phone Number (E.164) Digits only, 4 to 15 digits, for example 12125551234. Publicity Public, or Anonymous to hide your name. Anonymous has a monthly fee, charged from your balance when you publish and then every month; an unpaid anonymous number disappears from the market. DID Type Grey, National, Toll Free or Mobile. Local Requirements Any or Local Only. Status Idle (for sale) or Blocked. Documents Verification Required Tick for numbers that need the buyer's documents (KYC). Price per Minute / SMS Price What the buyer pays per minute of incoming calls and per incoming SMS. Billing Interval (seconds) 1 to 300. Recurring Fee + Billing Cycle Fee charged every Monthly, Quarterly or Annual cycle. Setup Fee One-time fee. Capacity Maximum simultaneous calls. Notes for Buyers Extra information shown to buyers. Buyers see your prices plus the TelecomsXchange commission for your account. They pay the setup fee and the first recurring fee up front. Your share arrives on your balance and shows in Money \u2192 Payout History as \"Setup fee for DID [number]\", \"[cycle] Fee for DID [number]\" and, on each renewal, \"[fee] earning for DID [number]\". How do I manage my numbers? DIDs \u2192 My DIDs lists your numbers with country, description, Publicity (an anonymous number also shows OK or Unbilled), prices, fees, Status and Billed To. Filter by Prefix, Country, Description or Status (Purchased, Idle, Blocked), choose Results Per Page and click Search DIDs; Clear filters resets them. A purchased number shows \"by [buyer]\" with a link to the buyer's profile. Download N DIDs saves the current search, and Export all downloads all your numbers as a CSV file. To change a number: 1. In the number's actions menu, click Edit DID. 2. Change the prices, features or notes. On a purchased number the Phone Number field is locked; an anonymous number shows \"Anonymous billed to: [date] (use blocked status to stop billing)\". 3. Click Save Changes (Back to DIDs returns without saving). You'll see \"DID entry has been updated.\" - An increase of Price per Minute, SMS Price or Recurring Fee on a purchased number takes effect after 30 days. You'll see \"Price increase changes will become effective in 30 days.\" and the number shows a Price change badge with the date. - The buyer of a purchased number is emailed about every price change. - Price decreases, Setup Fee changes, other edits, and changes to numbers that aren't purchased, apply straight away. - You can't change the number or the status of a purchased DID. - The actions menu of an idle number also offers Delete DID. It asks you to confirm but leaves the number in your list; to take a number off the market, edit it and set Status to Blocked. When a save on a purchased number includes a deferred price increase, the Notes for Buyers and Local Requirements from that same save are not kept. Change them in a separate save. How do I update numbers in bulk? 1. On DIDs \u2192 My DIDs, click Export all to download your numbers as a CSV. 2. Edit the rows in a spreadsheet. Keep the header row and the columns: Number, Anonymous, Country, Description, Price, SMS Price, Interval, Recurring Fee, Billing Cycle, Setup Fee, Documents Verification Required, Documents Verified, Status, Type, Billed To, Voice, SMS, Fax, Video, Capacity, Notes, Local Requirements. 3. Choose the file under Upload CSV File and click Search DIDs. Each row updates the matching number you have already listed: prices, fees, features, notes, status (idle or blocked; leave a purchased number's status as purchased) and document verification. Use the upload to update existing numbers; add new numbers one at a time with Sell New DID. If any row is invalid, nothing is saved and your browser downloads did_upload_errors.csv with an Error column, for example \"Periodic Interval should be one of Monthly, Quarterly or Annual\", \"DID Type can be only one of: unknown, national, mobile or tollfree\", \"Local Requirements can only be 'Any' or 'Local Only'\" or \"you can not change status of purchased DID\". Where do I see purchases and cancellations? DIDs \u2192 Subscription Logs opens the DID Logs page. Filter by Number or Buyer and click Search. The Activity Log shows each number, the buyer, the Action and When, 50 per page. The action reads subscribe when a buyer purchased the number, manual_unsubscribe when the buyer cancelled it, and balance_unsubscribe when TelecomsXchange released it because the buyer's balance didn't cover the renewal. You're emailed when a buyer purchases a number (\"TCXC DID purchase Notification\") and when a buyer cancels one (\"Number Cancelation Alert ([number])\"). A release for low balance emails the buyer only. A cancelled number becomes Idle straight away. How does document verification (KYC) work? 1. When you list the number, tick Documents Verification Required. 2. When a buyer purchases it, you both get an email saying the number works only after you verify the buyer's documents. 3. Collect and check the buyer's documents, for example through Messages. 4. In My DIDs, click Edit DID for the number, tick Documents Verified and click Save Changes. The buyer receives a \"TCXC DID documents verified notification\" email and the number starts working. Documents Verified then shows ticked and greyed out, but any later Save Changes on that number clears it again. After every later edit of a verified number, tick Documents Verified once more and save. If the same save also raises a price on the purchased number, the whole change waits 30 days and the verification is not saved. Tick Documents Verified in a save of its own. You can't turn on Documents Verification Required for a number that is already purchased. What if something goes wrong? You see What to do DID number should contain only digits Remove +, spaces and dashes from Phone Number (E.164). DID number should be of length 4..15 digits Enter the full number with country code, 4 to 15 digits. This DID number already exists in the system The number is already listed with that publicity. Find it in My DIDs and edit it instead. Price should be numeric / SMS Price should be numeric Enter plain numbers, for example 0.01, with no currency symbol. Interval should be between 1 and 300 seconds Set Billing Interval (seconds) between 1 and 300. Voice SMS Fax or Video access should be enabled Tick at least one feature under Features Supported. Only idle or blocked status allowed Choose Idle or Blocked under Status. Not enough balance to pay for DID anonymous fee [amount] Your balance must cover one month's anonymous fee. Choose Public, or wait until your balance covers it. DID has not been added. DB ERROR. Please check all fields below. A field holds a value the system can't store. Check every field and publish again. You can not change number of purchased DID The number is sold. Wait until the buyer cancels it. You can not verify documents for DIDs which do not have it enabled, enable verification first Tick Documents Verification Required first. This is only possible before the number is purchased. DID not found. The number isn't in your list any more. Go back to My DIDs. Wrong Remote IP format Enter a single IPv4 or IPv6 address, for example 203.0.113.10, or leave it blank for any IP. VoIP password can not be empty if VoIP login set Enter a VoIP Password, or clear VoIP Login. SMPP DID Login connot be empty Fill in both the SMPP Login and the SMPP Password on the DID SMPP Authentication page.",
   "sections": [
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "Calls and messages to your numbers must reach TelecomsXchange. The same details are shown at the top of DIDs \u2192 My DIDs: - Voice: point your SIP DIDs to sip01.telecomsxchange.com, UDP port 5060. - SMS: point your SMPP DIDs to smpp01.telecomsxchange.com, TCP port 2776, login did, password did. To use your own SMPP login and password instead, click custom SMPP DID login/password on the Authentication Rules page; see Sell SMS routes."
    },
    {
     "id": "how-do-i-let-my-switch-send-calls-to-my-dids",
     "title": "How do I let my switch send calls to my DIDs?",
     "text": "1. Go to DIDs \u2192 My DIDs and click Authentication Rules. 2. Click Add New DID Authentication. 3. Enter the Remote IP Address your calls come from, IPv4 or IPv6 (leave it blank for any IP). 4. If you authenticate with a login, enter VoIP Login and VoIP Password. 5. Click Add Authentication. You'll see \"The DID Authentication has been successfully added.\" The rule appears under Authentication Rules on the Incoming DIDs Authentication page, with ANY as the IP when you left it blank, and Edit and Delete actions (Delete asks you to confirm)."
    },
    {
     "id": "how-do-i-list-a-number",
     "title": "How do I list a number?",
     "text": "1. Go to DIDs \u2192 My DIDs and click Sell New DID. 2. Fill in the Sell Single DID form (see the table below). Prices are in USD. 3. Under Features Supported, tick at least one of Voice, SMS, Fax or Video. 4. Click Publish DID. You'll see \"The DID has been successfully added.\" The number appears in My DIDs with status Idle (for sale), unless you chose Blocked. Field What to enter Phone Number (E.164) Digits only, 4 to 15 digits, for example 12125551234. Publicity Public, or Anonymous to hide your name. Anonymous has a monthly fee, charged from your balance when you publish and then every month; an unpaid anonymous number disappears from the market. DID Type Grey, National, Toll Free or Mobile. Local Requirements Any or Local Only. Status Idle (for sale) or Blocked. Documents Verification Required Tick for numbers that need the buyer's documents (KYC). Price per Minute / SMS Price What the buyer pays per minute of incoming calls and per incoming SMS. Billing Interval (seconds) 1 to 300. Recurring Fee + Billing Cycle Fee charged every Monthly, Quarterly or Annual cycle. Setup Fee One-time fee. Capacity Maximum simultaneous calls. Notes for Buyers Extra information shown to buyers. Buyers see your prices plus the TelecomsXchange commission for your account. They pay the setup fee and the first recurring fee up front. Your share arrives on your balance and shows in Money \u2192 Payout History as \"Setup fee for DID [number]\", \"[cycle] Fee for DID [number]\" and, on each renewal, \"[fee] earning for DID [number]\"."
    },
    {
     "id": "how-do-i-manage-my-numbers",
     "title": "How do I manage my numbers?",
     "text": "DIDs \u2192 My DIDs lists your numbers with country, description, Publicity (an anonymous number also shows OK or Unbilled), prices, fees, Status and Billed To. Filter by Prefix, Country, Description or Status (Purchased, Idle, Blocked), choose Results Per Page and click Search DIDs; Clear filters resets them. A purchased number shows \"by [buyer]\" with a link to the buyer's profile. Download N DIDs saves the current search, and Export all downloads all your numbers as a CSV file. To change a number: 1. In the number's actions menu, click Edit DID. 2. Change the prices, features or notes. On a purchased number the Phone Number field is locked; an anonymous number shows \"Anonymous billed to: [date] (use blocked status to stop billing)\". 3. Click Save Changes (Back to DIDs returns without saving). You'll see \"DID entry has been updated.\" - An increase of Price per Minute, SMS Price or Recurring Fee on a purchased number takes effect after 30 days. You'll see \"Price increase changes will become effective in 30 days.\" and the number shows a Price change badge with the date. - The buyer of a purchased number is emailed about every price change. - Price decreases, Setup Fee changes, other edits, and changes to numbers that aren't purchased, apply straight away. - You can't change the number or the status of a purchased DID. - The actions menu of an idle number also offers Delete DID. It asks you to confirm but leaves the number in your list; to take a number off the market, edit it and set Status to Blocked. When a save on a purchased number includes a deferred price increase, the Notes for Buyers and Local Requirements from that same save are not kept. Change them in a separate save."
    },
    {
     "id": "how-do-i-update-numbers-in-bulk",
     "title": "How do I update numbers in bulk?",
     "text": "1. On DIDs \u2192 My DIDs, click Export all to download your numbers as a CSV. 2. Edit the rows in a spreadsheet. Keep the header row and the columns: Number, Anonymous, Country, Description, Price, SMS Price, Interval, Recurring Fee, Billing Cycle, Setup Fee, Documents Verification Required, Documents Verified, Status, Type, Billed To, Voice, SMS, Fax, Video, Capacity, Notes, Local Requirements. 3. Choose the file under Upload CSV File and click Search DIDs. Each row updates the matching number you have already listed: prices, fees, features, notes, status (idle or blocked; leave a purchased number's status as purchased) and document verification. Use the upload to update existing numbers; add new numbers one at a time with Sell New DID. If any row is invalid, nothing is saved and your browser downloads did_upload_errors.csv with an Error column, for example \"Periodic Interval should be one of Monthly, Quarterly or Annual\", \"DID Type can be only one of: unknown, national, mobile or tollfree\", \"Local Requirements can only be 'Any' or 'Local Only'\" or \"you can not change status of purchased DID\"."
    },
    {
     "id": "where-do-i-see-purchases-and-cancellations",
     "title": "Where do I see purchases and cancellations?",
     "text": "DIDs \u2192 Subscription Logs opens the DID Logs page. Filter by Number or Buyer and click Search. The Activity Log shows each number, the buyer, the Action and When, 50 per page. The action reads subscribe when a buyer purchased the number, manual_unsubscribe when the buyer cancelled it, and balance_unsubscribe when TelecomsXchange released it because the buyer's balance didn't cover the renewal. You're emailed when a buyer purchases a number (\"TCXC DID purchase Notification\") and when a buyer cancels one (\"Number Cancelation Alert ([number])\"). A release for low balance emails the buyer only. A cancelled number becomes Idle straight away."
    },
    {
     "id": "how-does-document-verification-kyc-work",
     "title": "How does document verification (KYC) work?",
     "text": "1. When you list the number, tick Documents Verification Required. 2. When a buyer purchases it, you both get an email saying the number works only after you verify the buyer's documents. 3. Collect and check the buyer's documents, for example through Messages. 4. In My DIDs, click Edit DID for the number, tick Documents Verified and click Save Changes. The buyer receives a \"TCXC DID documents verified notification\" email and the number starts working. Documents Verified then shows ticked and greyed out, but any later Save Changes on that number clears it again. After every later edit of a verified number, tick Documents Verified once more and save. If the same save also raises a price on the purchased number, the whole change waits 30 days and the verification is not saved. Tick Documents Verified in a save of its own. You can't turn on Documents Verification Required for a number that is already purchased."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do DID number should contain only digits Remove +, spaces and dashes from Phone Number (E.164). DID number should be of length 4..15 digits Enter the full number with country code, 4 to 15 digits. This DID number already exists in the system The number is already listed with that publicity. Find it in My DIDs and edit it instead. Price should be numeric / SMS Price should be numeric Enter plain numbers, for example 0.01, with no currency symbol. Interval should be between 1 and 300 seconds Set Billing Interval (seconds) between 1 and 300. Voice SMS Fax or Video access should be enabled Tick at least one feature under Features Supported. Only idle or blocked status allowed Choose Idle or Blocked under Status. Not enough balance to pay for DID anonymous fee [amount] Your balance must cover one month's anonymous fee. Choose Public, or wait until your balance covers it. DID has not been added. DB ERROR. Please check all fields below. A field holds a value the system can't store. Check every field and publish again. You can not change number of purchased DID The number is sold. Wait until the buyer cancels it. You can not verify documents for DIDs which do not have it enabled, enable verification first Tick Documents Verification Required first. This is only possible before the number is purchased. DID not found. The number isn't in your list any more. Go back to My DIDs. Wrong Remote IP format Enter a single IPv4 or IPv6 address, for example 203.0.113.10, or leave it blank for any IP. VoIP password can not be empty if VoIP login set Enter a VoIP Password, or clear VoIP Login. SMPP DID Login connot be empty Fill in both the SMPP Login and the SMPP Password on the DID SMPP Authentication page."
    }
   ]
  },
  {
   "slug": "sell-esims",
   "section": "sellers",
   "title": "Sell eSIMs",
   "description": "For eSIM providers such as Airalo and eSimplified: connect your eSIM platform's API to TelecomsXchange to list your prepaid data packages in the eSIM marketplace, and track your sales and earnings.",
   "summary": "eSIM providers sell their own inventory on TelecomsXchange. Once eSIM selling is enabled on your seller account, go to eSIMs \u2192 Config, choose the Provider Type your platform's API uses (eSimplified or Airalo), enter its API base URL, client ID and client secret, click Save Configuration, then Test Connection. Your packages are listed automatically at your price plus the platform commission, and eSIMs \u2192 Sales shows each order.",
   "url": "https://help.telecomsxchange.com/sellers/sell-esims/",
   "markdown_url": "https://help.telecomsxchange.com/sellers/sell-esims.md",
   "updated": "2026-10-23",
   "keywords": [
    "esim",
    "sell esim",
    "esim provider",
    "esim marketplace",
    "esimplified",
    "airalo",
    "esim inventory",
    "esim config",
    "esim sales",
    "esim commission",
    "api credentials"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Where does the eSIM inventory come from?",
     "a": "From the eSIM providers selling on TelecomsXchange, such as Airalo and eSimplified. Each provider connects its own eSIM platform's API, and TelecomsXchange lists that provider's packages, issues its eSIMs and sells its top-ups through it."
    },
    {
     "q": "Can I set my own prices?",
     "a": "Your prices come from your eSIM platform: change them there and they follow at the next refresh. Buyers see your price plus the platform commission, a percentage TelecomsXchange sets on your account. The Sales page shows both parts of every order."
    },
    {
     "q": "When am I paid?",
     "a": "Your seller balance is credited with your price the moment a buyer completes a purchase or top-up. Withdraw it like any other earnings."
    },
    {
     "q": "Do I need to do anything when someone buys?",
     "a": "No. The eSIM is issued through your platform's API instantly, and the buyer gets the QR code and LPA code in the portal."
    },
    {
     "q": "Can a buyer cancel or get a refund?",
     "a": "There is no cancellation or refund flow in the portal. A buyer who has a problem will message you."
    }
   ],
   "text": "How an eSIM sale is split 1. Buyer: Pays your price plus commission from balance 2. TelecomsXchange (via Purchase): Issues the eSIM via your API, keeps the Fee Amount 3. Your eSIM platform (via your API): Checks stock and issues the eSIM 4. Seller balance (via your price): Credited your price at once The eSIM marketplace is stocked by eSIM providers, such as Airalo and eSimplified, selling their own prepaid data packages to every buyer on TelecomsXchange. As a provider, you connect your eSIM platform's API once; your packages are then listed automatically, each sale is issued through your API on the spot, and your seller balance is credited at once. Before you start - Your eSIM platform's API credentials. TelecomsXchange connects to two API types: eSimplified and Airalo. You need your platform's base URL, a client ID and a client secret, plus, for the eSimplified type, its extra secret header. - eSIM selling enabled on your account. Ask support to switch it on. The eSIMs menu, with Config and Sales, appears once it is. Support also sets your commission percentage and how long package lists are cached. How do I connect my eSIM platform? 1. Go to eSIMs \u2192 Config. 2. Under API Credentials, choose the Provider Type: the API your platform uses, eSimplified or Airalo. 3. Enter the API Base URL. It must be on that API's own domain: partners-api.airalo.com for Airalo, or an esimplified.io or esimplified.com address for eSimplified. 4. Enter the Client ID and Client Secret. 5. For eSimplified, enter the Secret Header:Value exactly as Header-Name: Header-Value. The field is hidden for Airalo. 6. Click Save Configuration. You'll see \"Settings have been updated\". 7. Click Test Connection. TelecomsXchange requests a token from your platform and shows API Connection Successful or API Connection Failed with the time of the test. Configuration Status below the form shows the Provider Type, the API Endpoint, the Authentication token with whether it is Valid or Expired, and Product Sync with the time your packages were last cached. How are my packages listed? - When a buyer searches a country, region or the world, TelecomsXchange fetches your matching packages from your platform and caches them. The cache is refreshed on the schedule set for your account (1, 6, 12 or 24 hours). Airalo-type catalogues are also resynced every hour. - Only packages priced in USD are listed. - Buyers see the package name, data in GB, validity in days, networks, countries covered, your login as the Vendor and the price: your price plus the platform commission. - When a buyer clicks Purchase, stock and price are checked live with your platform before the buyer pays, so the buyer always sees the current price. - Top-ups for an eSIM are fetched live from your platform when the buyer opens Top Up. You can't edit the catalogue in the portal: change packages and prices on your platform and they follow at the next refresh. What do I earn? For every purchase and top-up: - the buyer pays the Buyer Amount: your price plus the commission; - your seller balance is credited with your price straight away; - the commission is the Fee Amount, kept by TelecomsXchange. Each credit appears in Money \u2192 Payout History with the note \"Esim order\" or \"Esim Top-Up order\", the order number and the last four digits of the ICCID. Withdraw your balance as usual; see Get paid. How do I see my sales? eSIMs \u2192 Sales lists every order with Order Date, Buyer, Package, Country, Type (purchase or top-up), Buyer Amount, Fee Amount and Status. It opens on the last 24 hours; set Date From and Date To and click Search Orders for an earlier period. What if something goes wrong? You see What to do Unsupported provider Choose eSimplified or Airalo as the Provider Type. Invalid API URL Enter the full URL, starting with https://. API URL must be a known eSIM provider domain Use that API's own domain: partners-api.airalo.com, or an esimplified.io / esimplified.com address. Empty Client ID not allowed / Empty Client Secret not allowed Enter both credentials for your platform's API. Empty Secret Header:Value not allowed for eSimplified provider Enter the header as Header-Name: Header-Value. API Connection Failed Check the credentials and URL, save and test again. Until the test passes, your packages aren't listed. Authentication shows Expired The token couldn't be refreshed. Click Test Connection; if it fails, check your credentials. A buyer reports \"Package is not available anymore\" Your platform reported no stock or a changed package. Check the package on your platform.",
   "sections": [
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "- Your eSIM platform's API credentials. TelecomsXchange connects to two API types: eSimplified and Airalo. You need your platform's base URL, a client ID and a client secret, plus, for the eSimplified type, its extra secret header. - eSIM selling enabled on your account. Ask support to switch it on. The eSIMs menu, with Config and Sales, appears once it is. Support also sets your commission percentage and how long package lists are cached."
    },
    {
     "id": "how-do-i-connect-my-esim-platform",
     "title": "How do I connect my eSIM platform?",
     "text": "1. Go to eSIMs \u2192 Config. 2. Under API Credentials, choose the Provider Type: the API your platform uses, eSimplified or Airalo. 3. Enter the API Base URL. It must be on that API's own domain: partners-api.airalo.com for Airalo, or an esimplified.io or esimplified.com address for eSimplified. 4. Enter the Client ID and Client Secret. 5. For eSimplified, enter the Secret Header:Value exactly as Header-Name: Header-Value. The field is hidden for Airalo. 6. Click Save Configuration. You'll see \"Settings have been updated\". 7. Click Test Connection. TelecomsXchange requests a token from your platform and shows API Connection Successful or API Connection Failed with the time of the test. Configuration Status below the form shows the Provider Type, the API Endpoint, the Authentication token with whether it is Valid or Expired, and Product Sync with the time your packages were last cached."
    },
    {
     "id": "how-are-my-packages-listed",
     "title": "How are my packages listed?",
     "text": "- When a buyer searches a country, region or the world, TelecomsXchange fetches your matching packages from your platform and caches them. The cache is refreshed on the schedule set for your account (1, 6, 12 or 24 hours). Airalo-type catalogues are also resynced every hour. - Only packages priced in USD are listed. - Buyers see the package name, data in GB, validity in days, networks, countries covered, your login as the Vendor and the price: your price plus the platform commission. - When a buyer clicks Purchase, stock and price are checked live with your platform before the buyer pays, so the buyer always sees the current price. - Top-ups for an eSIM are fetched live from your platform when the buyer opens Top Up. You can't edit the catalogue in the portal: change packages and prices on your platform and they follow at the next refresh."
    },
    {
     "id": "what-do-i-earn",
     "title": "What do I earn?",
     "text": "For every purchase and top-up: - the buyer pays the Buyer Amount: your price plus the commission; - your seller balance is credited with your price straight away; - the commission is the Fee Amount, kept by TelecomsXchange. Each credit appears in Money \u2192 Payout History with the note \"Esim order\" or \"Esim Top-Up order\", the order number and the last four digits of the ICCID. Withdraw your balance as usual; see Get paid."
    },
    {
     "id": "how-do-i-see-my-sales",
     "title": "How do I see my sales?",
     "text": "eSIMs \u2192 Sales lists every order with Order Date, Buyer, Package, Country, Type (purchase or top-up), Buyer Amount, Fee Amount and Status. It opens on the last 24 hours; set Date From and Date To and click Search Orders for an earlier period."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do Unsupported provider Choose eSimplified or Airalo as the Provider Type. Invalid API URL Enter the full URL, starting with https://. API URL must be a known eSIM provider domain Use that API's own domain: partners-api.airalo.com, or an esimplified.io / esimplified.com address. Empty Client ID not allowed / Empty Client Secret not allowed Enter both credentials for your platform's API. Empty Secret Header:Value not allowed for eSimplified provider Enter the header as Header-Name: Header-Value. API Connection Failed Check the credentials and URL, save and test again. Until the test passes, your packages aren't listed. Authentication shows Expired The token couldn't be refreshed. Click Test Connection; if it fails, check your credentials. A buyer reports \"Package is not available anymore\" Your platform reported no stock or a changed package. Check the package on your platform."
    }
   ]
  },
  {
   "slug": "get-paid",
   "section": "sellers",
   "title": "Get paid: request a payout",
   "description": "Withdraw your TelecomsXchange seller balance by ACH, wire, PayPal or a transfer to a buyer account, with each option's fee, the invoice you must send, request statuses and where to track payouts.",
   "summary": "Go to Money \u2192 Withdraw Funds, choose how you want to be paid, enter the amount, click Send Payout Request and confirm. The fee is taken from your balance straight away and you're asked to email an invoice to billing@telecomsxchange.com; a transfer to your own buyer account arrives instantly.",
   "url": "https://help.telecomsxchange.com/sellers/get-paid/",
   "markdown_url": "https://help.telecomsxchange.com/sellers/get-paid.md",
   "updated": "2026-10-21",
   "keywords": [
    "payout",
    "withdraw funds",
    "get paid",
    "ach",
    "wire transfer",
    "paypal",
    "payout fee",
    "seller balance",
    "payout history",
    "transfer to buyer account",
    "invoice",
    "payout status",
    "in review"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "How much does a payout cost?",
     "a": "US Bank Transfer is $0 for 3 Business Days ACH, $15 for Next Business Day ACH and $25 for Same Business Day Wire. International Wire is $45, PayPal is $0 from TelecomsXchange (shown as Fee varies), and a transfer to a TCXC buyer account is $5."
    },
    {
     "q": "Do I need to send an invoice?",
     "a": "Yes. After you submit a request, the confirmation asks you to send an invoice for the requested amount to billing@telecomsxchange.com."
    },
    {
     "q": "Is there a minimum payout?",
     "a": "No fixed minimum, but the amount must be more than $0 and the amount plus the fee can't be more than your balance."
    },
    {
     "q": "How fast is a transfer to my buyer account?",
     "a": "Instant. Every other method is sent by TelecomsXchange finance after you submit the request."
    },
    {
     "q": "Who can request a payout?",
     "a": "The main seller user, and web users with the finance role. Other web users don't see Withdraw Funds."
    },
    {
     "q": "Where do I see my past payouts?",
     "a": "In Money \u2192 Payout History, and in Recent Payout Requests at the bottom of the Withdraw Funds page, which shows each request's status."
    }
   ],
   "text": "How earnings become a payout 1. Buyer traffic: Billed on your routes and numbers 2. Seller balance (via earnings): Payout fee deducted when you request 3. Payout request (via Withdraw Funds): Plus an invoice to billing@telecomsxchange.com 4. TelecomsXchange finance (via New \u2192 In Review): Sends the money and updates the status 5. Bank or PayPal (via ACH, wire or PayPal): Or $5 instantly to your buyer account Your seller balance grows as buyers use your routes and numbers. You can withdraw it at any time. Before you start - Add your bank or payment details under Payout Method in Settings \u2192 Profile & Preferences. Finance uses them to send your money. Only the main user or a web user with the finance role can do this. How do I request a payout? 1. Go to Money \u2192 Withdraw Funds. 2. Under Delivery Type, choose how you want to be paid. For US Bank Transfer, also choose a Delivery Speed (fees in the table below). 3. Enter the Amount (USD). It starts out as your full balance. For PayPal, also enter your PayPal ID. For a buyer account, start typing the buyer login in Buyer Account and pick the account from the list (it appears as BUYERLOGIN-ACCOUNTNAME). 4. Check the Request Summary: it shows the amount, the delivery method, the fee and what you'll receive. 5. Click Send Payout Request and click OK in the \"Are you sure you want to submit this payout request?\" dialog. You'll see \"Thank you! Your payout request has been received. Kindly send an invoice with requested payout amount to billing@telecomsxchange.com\". Email that invoice; finance needs it to release the money. The fee is taken from your balance as soon as you send the request. A transfer to a TCXC buyer account completes instantly; the buyer account must use its own balance, not a parent balance. Other requests go to TelecomsXchange finance, who send the money and update the status. These are the delivery options and what TelecomsXchange charges for each: Delivery type Speed Fee US Bank Transfer 3 Business Days ACH $0 US Bank Transfer Next Business Day ACH $15 US Bank Transfer Same Business Day Wire $25 International Wire $45 PayPal Shown as \"Fee varies\": TelecomsXchange deducts nothing, PayPal may charge its own fee TCXC Buyer Account Instant $5 If you also buy traffic, move money to your own buyer account. It arrives instantly and costs $5. What if something goes wrong? You see What to do Please enter a valid amount greater than $0. Type an amount above zero before you send. The amount + fee can not be higher than balance Request a smaller amount, so the amount plus the fee fits within your balance. You do not have enough funds to rise such a request Your balance doesn't cover the fee for this delivery type yet. Wait for more traffic, or pick a cheaper option. Please specify valid Paypal id Enter the email or ID of your PayPal account. Please specify valid buyer account in format BUYERLOGIN-BUYERACCOUNTNAME Pick the account from the suggestions. Only accounts with their own balance are listed. Where do I see my payouts? - Recent Payout Requests at the bottom of the Withdraw Funds page shows each request with its status, Created date and a Details link to the message thread. A new request shows New; finance then moves it to In Review, Pending, Completed or Rejected. - Money \u2192 Payout History lists every transaction on your seller balance, not only payouts: payout fees appear as their own lines (\"USA ACH 1 business day payout request fee\", \"International payout request fee\", \"TCXC Buyer Account payout fee\"), a buyer-account transfer as \"Payout to TCXC Buyer Account\", and you'll also see anonymous route and DID fees and your DID earnings. The page shows the last 24 hours by default; filter by Amount, Notes Search, From Date and To Date, click Search (Reset clears the filters), and click Download N Entries to save payouthistory.csv with Date, Amount, Notes and Currency. Clicking your balance in the top bar opens this page. - The Dashboard shows your last payout amount and date.",
   "sections": [
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "- Add your bank or payment details under Payout Method in Settings \u2192 Profile & Preferences. Finance uses them to send your money. Only the main user or a web user with the finance role can do this."
    },
    {
     "id": "how-do-i-request-a-payout",
     "title": "How do I request a payout?",
     "text": "1. Go to Money \u2192 Withdraw Funds. 2. Under Delivery Type, choose how you want to be paid. For US Bank Transfer, also choose a Delivery Speed (fees in the table below). 3. Enter the Amount (USD). It starts out as your full balance. For PayPal, also enter your PayPal ID. For a buyer account, start typing the buyer login in Buyer Account and pick the account from the list (it appears as BUYERLOGIN-ACCOUNTNAME). 4. Check the Request Summary: it shows the amount, the delivery method, the fee and what you'll receive. 5. Click Send Payout Request and click OK in the \"Are you sure you want to submit this payout request?\" dialog. You'll see \"Thank you! Your payout request has been received. Kindly send an invoice with requested payout amount to billing@telecomsxchange.com\". Email that invoice; finance needs it to release the money. The fee is taken from your balance as soon as you send the request. A transfer to a TCXC buyer account completes instantly; the buyer account must use its own balance, not a parent balance. Other requests go to TelecomsXchange finance, who send the money and update the status. These are the delivery options and what TelecomsXchange charges for each: Delivery type Speed Fee US Bank Transfer 3 Business Days ACH $0 US Bank Transfer Next Business Day ACH $15 US Bank Transfer Same Business Day Wire $25 International Wire $45 PayPal Shown as \"Fee varies\": TelecomsXchange deducts nothing, PayPal may charge its own fee TCXC Buyer Account Instant $5 If you also buy traffic, move money to your own buyer account. It arrives instantly and costs $5."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do Please enter a valid amount greater than $0. Type an amount above zero before you send. The amount + fee can not be higher than balance Request a smaller amount, so the amount plus the fee fits within your balance. You do not have enough funds to rise such a request Your balance doesn't cover the fee for this delivery type yet. Wait for more traffic, or pick a cheaper option. Please specify valid Paypal id Enter the email or ID of your PayPal account. Please specify valid buyer account in format BUYERLOGIN-BUYERACCOUNTNAME Pick the account from the suggestions. Only accounts with their own balance are listed."
    },
    {
     "id": "where-do-i-see-my-payouts",
     "title": "Where do I see my payouts?",
     "text": "- Recent Payout Requests at the bottom of the Withdraw Funds page shows each request with its status, Created date and a Details link to the message thread. A new request shows New; finance then moves it to In Review, Pending, Completed or Rejected. - Money \u2192 Payout History lists every transaction on your seller balance, not only payouts: payout fees appear as their own lines (\"USA ACH 1 business day payout request fee\", \"International payout request fee\", \"TCXC Buyer Account payout fee\"), a buyer-account transfer as \"Payout to TCXC Buyer Account\", and you'll also see anonymous route and DID fees and your DID earnings. The page shows the last 24 hours by default; filter by Amount, Notes Search, From Date and To Date, click Search (Reset clears the filters), and click Download N Entries to save payouthistory.csv with Date, Amount, Notes and Currency. Clicking your balance in the top bar opens this page. - The Dashboard shows your last payout amount and date."
    }
   ]
  },
  {
   "slug": "hlr-lookup",
   "section": "sellers",
   "title": "Check a phone number with HLR Lookup",
   "description": "Sellers can use HLR Lookup on TelecomsXchange to check a mobile number's carrier, MCC/MNC, ported and roaming status for $0.05 per lookup, charged to the seller balance.",
   "summary": "Go to HLR Lookup in the sidebar, enter the number in international format without + (for example 14155551234) and click Perform Lookup. Each lookup costs $0.05 from your seller balance and shows the country, carrier, MCC/MNC, ported status and roaming status.",
   "url": "https://help.telecomsxchange.com/sellers/hlr-lookup/",
   "markdown_url": "https://help.telecomsxchange.com/sellers/hlr-lookup.md",
   "updated": "2026-10-21",
   "keywords": [
    "hlr",
    "hlr lookup",
    "number lookup",
    "carrier lookup",
    "mcc mnc",
    "ported number",
    "roaming",
    "seller tools"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "How much does a lookup cost?",
     "a": "$0.05 per number, taken from your seller balance. You need at least $0.05 in the balance."
    },
    {
     "q": "Can I sell HLR lookups?",
     "a": "No. HLR Lookup is a tool TelecomsXchange provides to buyers and sellers; it isn't a route type you can list in Market View."
    },
    {
     "q": "Am I charged when the lookup finds nothing?",
     "a": "Yes. A lookup is charged once it has been sent, even when the network returns no data. Check the number format before you run it."
    },
    {
     "q": "Where do the charges show?",
     "a": "In Payout History, as a $0.05 line with the note \"HLR Lookup\" and the number."
    }
   ],
   "text": "How a seller checks a number 1. CDR or SDR: Click a destination number to prefill 2. HLR Lookup (via HLR Lookup Number): Charges $0.05 to your seller balance 3. Mobile networks (via lookup sent): Answer for the number right now 4. Result (via Raw API Response): Carrier, MCC/MNC, ported and roaming status An HLR lookup asks the mobile networks about a number right now: which carrier serves it, whether it has been ported, and whether the phone is roaming. As a seller, use it to investigate a buyer's complaint about a destination or to check numbers before you test a route. HLR Lookup is a platform tool, not a product you sell: it isn't a route type in Market View. Before you start You need at least $0.05 in your seller balance; each lookup costs that much. Have the number in international format with the country code, digits only: 14155551234, not +1 (415) 555-1234. How do I look up a number? 1. Click HLR Lookup in the sidebar. 2. Under Perform Lookup, enter the number in Phone Number. 3. Click Perform Lookup. The cost is shown next to the button, Cost per lookup: $0.05, and is taken from your balance as soon as the lookup is sent. On the CDR and SDR pages, click a destination number and choose HLR Lookup Number &lt;number&gt;. HLR Lookup opens with that number filled in; click Perform Lookup. What does the result show? Lookup Results has two parts: - Country: the flag and name of the number's country. - Network Information: - Carrier Name: the network that serves the number now, with its network type as a badge. - MCC/MNC Code: the carrier's mobile country and network code. Copy MCC/MNC copies it. - Ported Status: Ported when the number has moved from the network it was issued on, Original Network when it hasn't, otherwise Unknown. - Roaming Status: Roaming or Home Network, otherwise Unknown. - Lookup Cost: $0.05 USD. Open Raw API Response for the full answer as JSON, and Copy JSON to keep it. If every field says Unknown or N/A, the networks returned no data for that number; the reason is under status_message, and the lookup is still charged. Where do the charges show? Each lookup is a $0.05 line in Money \u2192 Payout History with the note HLR Lookup &lt;number&gt;. The results aren't stored for you: copy the JSON if you need a record. Can I run lookups from my own system? Yes. Call GET /sellers/hlr/lookup/{number} on the API with HTTP Digest authentication: your portal login as the username and your API Key as the password, with Allow API Access turned on in Profile & Preferences. See Use the API for the setup. The reply is {\"status\": \"success\", \"response\": {...}} with the same fields as Raw API Response. What if something goes wrong? You see What to do Seller balance insufficient to run query Your balance is below $0.05. It grows as buyers' traffic on your routes is billed. CLD missing, or wrong format (only digits are supported) Enter the number with the country code and digits only: no +, spaces or dashes. Every field shows Unknown or N/A The networks have no data for the number. Check status_message in Raw API Response; the lookup is still charged.",
   "sections": [
    {
     "id": "before-you-start",
     "title": "Before you start",
     "text": "You need at least $0.05 in your seller balance; each lookup costs that much. Have the number in international format with the country code, digits only: 14155551234, not +1 (415) 555-1234."
    },
    {
     "id": "how-do-i-look-up-a-number",
     "title": "How do I look up a number?",
     "text": "1. Click HLR Lookup in the sidebar. 2. Under Perform Lookup, enter the number in Phone Number. 3. Click Perform Lookup. The cost is shown next to the button, Cost per lookup: $0.05, and is taken from your balance as soon as the lookup is sent. On the CDR and SDR pages, click a destination number and choose HLR Lookup Number &lt;number&gt;. HLR Lookup opens with that number filled in; click Perform Lookup."
    },
    {
     "id": "what-does-the-result-show",
     "title": "What does the result show?",
     "text": "Lookup Results has two parts: - Country: the flag and name of the number's country. - Network Information: - Carrier Name: the network that serves the number now, with its network type as a badge. - MCC/MNC Code: the carrier's mobile country and network code. Copy MCC/MNC copies it. - Ported Status: Ported when the number has moved from the network it was issued on, Original Network when it hasn't, otherwise Unknown. - Roaming Status: Roaming or Home Network, otherwise Unknown. - Lookup Cost: $0.05 USD. Open Raw API Response for the full answer as JSON, and Copy JSON to keep it. If every field says Unknown or N/A, the networks returned no data for that number; the reason is under status_message, and the lookup is still charged."
    },
    {
     "id": "where-do-the-charges-show",
     "title": "Where do the charges show?",
     "text": "Each lookup is a $0.05 line in Money \u2192 Payout History with the note HLR Lookup &lt;number&gt;. The results aren't stored for you: copy the JSON if you need a record."
    },
    {
     "id": "can-i-run-lookups-from-my-own-system",
     "title": "Can I run lookups from my own system?",
     "text": "Yes. Call GET /sellers/hlr/lookup/{number} on the API with HTTP Digest authentication: your portal login as the username and your API Key as the password, with Allow API Access turned on in Profile & Preferences. See Use the API for the setup. The reply is {\"status\": \"success\", \"response\": {...}} with the same fields as Raw API Response."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do Seller balance insufficient to run query Your balance is below $0.05. It grows as buyers' traffic on your routes is billed. CLD missing, or wrong format (only digits are supported) Enter the number with the country code and digits only: no +, spaces or dashes. Every field shows Unknown or N/A The networks have no data for the number. Check status_message in Raw API Response; the lookup is still charged."
    }
   ]
  },
  {
   "slug": "api",
   "section": "sellers",
   "title": "Get started with the API",
   "description": "A quickstart for the TelecomsXchange seller API: turn on access, authenticate with HTTP Digest, read your balance and payouts, list and add the phone numbers you sell, and message your buyers, with full requests and responses.",
   "summary": "Tick Allow API Access in Profile & Preferences and copy your API key. Call https://apiv2.telecomsxchange.com with HTTP Digest authentication (your username, and the API key as the password). Read your balance and payout history, manage the numbers you sell and message your buyers. The API reference documents every endpoint.",
   "url": "https://help.telecomsxchange.com/sellers/api/",
   "markdown_url": "https://help.telecomsxchange.com/sellers/api.md",
   "updated": "2026-10-22",
   "keywords": [
    "api",
    "api key",
    "rest api",
    "quickstart",
    "digest authentication",
    "integration",
    "automation",
    "apiv2",
    "seller api",
    "did api",
    "curl",
    "python",
    "php",
    "rate limit"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Where do I find my API key?",
     "a": "In Profile & Preferences, under API Key. Once Allow API Access is on, the dashboard also shows an API Keys card with your API Login and the key."
    },
    {
     "q": "Can I upload my rate deck through the API?",
     "a": "Not yet. Rate decks are uploaded in the portal; see Upload your rate deck. The seller API covers your balance, payouts, phone numbers, buyers, messages and HLR lookups."
    },
    {
     "q": "Is there a request limit?",
     "a": "Yes. Each account has an hourly quota and a per-second cap. Above either you get HTTP 429 with the message \"Rate limit exceeded\". Contact support if you need more."
    }
   ],
   "text": "What the seller API gives you 1. Your code: Username, with the API key as password 2. TelecomsXchange API (via POST /sellers/balance): Digest auth, hourly quota and per-second cap 3. JSON reply (via status: success): Balance, payouts, numbers and buyers 4. Your buyers (via /sellers/buyers/message): Get your message in inbox and email This quickstart takes you from no key to reading your earnings and managing the numbers you sell. Every request and response below is real in shape; your figures will differ. For every endpoint and parameter, see the API reference. Turn on API access 1. Go to Settings \u2192 Profile & Preferences. 2. Tick Allow API Access. 3. Copy the API Key and click Save. Regenerate replaces the key at once; the old one stops working. The examples read your credentials from the environment: bash export TCXC_USERNAME=\"your-portal-username\" export TCXC_API_KEY=\"the-key-from-preferences\" Read your balance Your seller balance is what buyers' traffic has earned you, less payouts and fees. bash curl --digest -u \"$TCXC_USERNAME:$TCXC_API_KEY\" -X POST \\ https://apiv2.telecomsxchange.com/sellers/balance json {\"status\": \"success\", \"balance\": \"22631.26\"} {\"status\": \"fail\", \"error\": \"authorization error\"} means the username or key is wrong, or Allow API Access is off. See Errors. Check your payouts Payout History, as in the portal: payouts, their fees, HLR lookups and anonymous-listing fees. bash curl --digest -u \"$TCXC_USERNAME:$TCXC_API_KEY\" -X POST \\ https://apiv2.telecomsxchange.com/sellers/payhistory \\ -d \"date_from=2026-10-01 00:00:00\" -d \"date_to=2026-10-31 23:59:59\" json { \"status\": \"success\", \"transactions\": [ {\"i_payout\": \"2873\", \"amount\": \"500\", \"ts\": \"2026-10-14 22:14:41\", \"notepad\": \"Bank Wire\"} ] } Manage the numbers you sell List your numbers, optionally from a prefix: bash curl --digest -u \"$TCXC_USERNAME:$TCXC_API_KEY\" -X POST \\ https://apiv2.telecomsxchange.com/sellers/did/list -d prefix=380 Each number shows its rates (price_1, smpp_price), setup_fee and monthly_fee, its status (idle until a buyer purchases it), capabilities (voice, sms, fax, video) and whether it needs KYC (verification_required). Add a number with /sellers/did/add and change one with /sellers/did/edit/{i_did}; see Phone numbers for every field. Message your buyers List the buyers who use your routes, then write to one or all of them. Messages land in their portal inbox and by email. bash curl --digest -u \"$TCXC_USERNAME:$TCXC_API_KEY\" -X POST \\ https://apiv2.telecomsxchange.com/sellers/buyers/list See Messages for sending, replying and reading your inbox. Where next To Use Check a number's carrier, ported and roaming status HLR lookups See the busiest destinations on the exchange Voice and SMS market Read the same records your buyers see Reports What if something goes wrong? You see What to do HTTP 401, authorization required Send Digest credentials. Most clients need Digest switched on explicitly, such as --digest in cURL. authorization error Check the username and key, and that Allow API Access is ticked in Profile & Preferences. Rate limit exceeded (HTTP 429) Slow down and retry with backoff. A call works in the portal but not in the API Compare the fields with the API reference; they match the portal's form fields.",
   "sections": [
    {
     "id": "turn-on-api-access",
     "title": "Turn on API access",
     "text": "1. Go to Settings \u2192 Profile & Preferences. 2. Tick Allow API Access. 3. Copy the API Key and click Save. Regenerate replaces the key at once; the old one stops working. The examples read your credentials from the environment: bash export TCXC_USERNAME=\"your-portal-username\" export TCXC_API_KEY=\"the-key-from-preferences\""
    },
    {
     "id": "read-your-balance",
     "title": "Read your balance",
     "text": "Your seller balance is what buyers' traffic has earned you, less payouts and fees. bash curl --digest -u \"$TCXC_USERNAME:$TCXC_API_KEY\" -X POST \\ https://apiv2.telecomsxchange.com/sellers/balance json {\"status\": \"success\", \"balance\": \"22631.26\"} {\"status\": \"fail\", \"error\": \"authorization error\"} means the username or key is wrong, or Allow API Access is off. See Errors."
    },
    {
     "id": "check-your-payouts",
     "title": "Check your payouts",
     "text": "Payout History, as in the portal: payouts, their fees, HLR lookups and anonymous-listing fees. bash curl --digest -u \"$TCXC_USERNAME:$TCXC_API_KEY\" -X POST \\ https://apiv2.telecomsxchange.com/sellers/payhistory \\ -d \"date_from=2026-10-01 00:00:00\" -d \"date_to=2026-10-31 23:59:59\" json { \"status\": \"success\", \"transactions\": [ {\"i_payout\": \"2873\", \"amount\": \"500\", \"ts\": \"2026-10-14 22:14:41\", \"notepad\": \"Bank Wire\"} ] }"
    },
    {
     "id": "manage-the-numbers-you-sell",
     "title": "Manage the numbers you sell",
     "text": "List your numbers, optionally from a prefix: bash curl --digest -u \"$TCXC_USERNAME:$TCXC_API_KEY\" -X POST \\ https://apiv2.telecomsxchange.com/sellers/did/list -d prefix=380 Each number shows its rates (price_1, smpp_price), setup_fee and monthly_fee, its status (idle until a buyer purchases it), capabilities (voice, sms, fax, video) and whether it needs KYC (verification_required). Add a number with /sellers/did/add and change one with /sellers/did/edit/{i_did}; see Phone numbers for every field."
    },
    {
     "id": "message-your-buyers",
     "title": "Message your buyers",
     "text": "List the buyers who use your routes, then write to one or all of them. Messages land in their portal inbox and by email. bash curl --digest -u \"$TCXC_USERNAME:$TCXC_API_KEY\" -X POST \\ https://apiv2.telecomsxchange.com/sellers/buyers/list See Messages for sending, replying and reading your inbox."
    },
    {
     "id": "where-next",
     "title": "Where next",
     "text": "To Use Check a number's carrier, ported and roaming status HLR lookups See the busiest destinations on the exchange Voice and SMS market Read the same records your buyers see Reports"
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do HTTP 401, authorization required Send Digest credentials. Most clients need Digest switched on explicitly, such as --digest in cURL. authorization error Check the username and key, and that Allow API Access is ticked in Profile & Preferences. Rate limit exceeded (HTTP 429) Slow down and retry with backoff. A call works in the portal but not in the API Compare the fields with the API reference; they match the portal's form fields."
    }
   ]
  },
  {
   "slug": "reports-and-preferences",
   "section": "sellers",
   "title": "Seller reports, live calls and preferences",
   "description": "Track calls on your TelecomsXchange routes with CDRs, SMS records, live calls and daily statistics, and set your logo, emails, login timeout, API access and payout details.",
   "summary": "Use Logs \u2192 CDR (Voice) to see and download every call on your routes, Live Calls to watch calls in progress, and Logs \u2192 Call Stats (Voice) for daily files. Settings \u2192 Profile & Preferences holds your logo, report emails, login timeout, API access and payout method.",
   "url": "https://help.telecomsxchange.com/sellers/reports-and-preferences/",
   "markdown_url": "https://help.telecomsxchange.com/sellers/reports-and-preferences.md",
   "updated": "2026-10-21",
   "keywords": [
    "seller cdr",
    "call detail records",
    "sdr",
    "sms records",
    "live calls",
    "disconnect call",
    "call stats",
    "weekly top 20",
    "daily statistics email",
    "daily cdr report",
    "seller preferences",
    "logo",
    "api access",
    "api key",
    "login timeout",
    "web users"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "How do I download CDRs for my routes?",
     "a": "Go to Logs \u2192 CDR (Voice), filter by prefix, call result and dates, click Search, then click the Download button above the results to get cdrs.csv with every matching call."
    },
    {
     "q": "Can I end a call on my route?",
     "a": "Yes. In Live Calls, click DISCONNECT on the call. You'll see whether the disconnect worked."
    },
    {
     "q": "What is the Weekly Top 20 email?",
     "a": "A weekly CSV of the countries with the most voice traffic on TelecomsXchange over the last 7 days, with country, description, prefix, route type, volume and price. Turn on Email Weekly Top 20 Destinations in Settings \u2192 Profile & Preferences."
    },
    {
     "q": "Can I change my account email myself?",
     "a": "No. The login email is managed by TelecomsXchange, so contact support to change it. You can edit your Public Email and NOC Email yourself."
    },
    {
     "q": "What does the daily statistics email contain?",
     "a": "With Send Daily Statistics Email on, you get two emails each day: Seller's Daily CDR Report with the previous day's calls, and Seller's Daily Statistics File with per-destination totals, each as a zipped CSV."
    },
    {
     "q": "What does Login Timeout do?",
     "a": "It signs you out after that many minutes without activity. 0 means you stay signed in until you log out. The change applies as soon as you save."
    }
   ],
   "text": "Where your route traffic is reported 1. Route traffic: Buyer calls you carry; DIDs show Inbound 2. Live Calls (via in progress): Refreshes every 25 seconds; DISCONNECT ends one 3. CDR (Voice) (via when calls end): 100 per page, downloads as cdrs.csv 4. Call Stats (Voice) (via midnight UTC): Daily CDRS and STATS zips, optionally emailed See every call on your routes, watch live traffic, and choose which reports TelecomsXchange emails you. How do I see the calls on my routes? 1. Go to Logs \u2192 CDR (Voice). 2. Enter a Prefix to match the called number (CLD), or leave it empty for all calls. 3. Under Show Calls, choose Successful, Failed or All. 4. Set From Date and To Date. The page opens with the last 24 hours and successful calls. 5. Click Search. Clear empties the filters. You'll see the matching calls under Call Records, 100 per page. Each call shows the Route, CLD (hover it for an HLR lookup), CLI, Country [Description], Billed duration, Date, Amount, Buyer (a link to the buyer's profile), Disconnect Reason and SIP Code. Calls to your DIDs show Inbound instead of a route name. To save every matching call, not just the current page, click Download (the button shows how many CDRs it will download). You get cdrs.csv with Route, CLD, CLI, Country, Description, Duration, Buyer, Billed Duration, Amount, Setup Time, Connect Time, Disconnect Time, SIP Call-Id, Disconnect Reason and SIP Code. SMS traffic is under Logs \u2192 SDR (SMS), the SMS Detail Records page. It shows your account's SMPP Rate Limit, filters by CLD (Destination Number), Status (Sent by default, Any or Failed) and dates, lists each message with its buyer, route, amount, delivery status and time, and downloads as sms.csv. The page is described in Sell SMS routes. How do I watch live traffic? 1. Click Live Calls in the menu. The heading shows Total, Connected and Routing counts. 2. To narrow the list, enter a Prefix or choose a Call Type: Connected, Routing or All, and click Search. The Call List shows each call in progress on your routes: Buyer, Route, CLD, CLI, Country, Description, Setup Time, Connect Time, Status, Duration, Authorized Amount, Route Type and Command. Calls to your DIDs show Inbound as the route and DID as the type. Switch between list, card and cover-flow views with the buttons above the list; the page refreshes every 25 seconds. Download N Live Calls saves the list as live_calls.csv. To end a call, click DISCONNECT in its Command column. You'll see \"Disconnect command was successfull\" or \"Disconnect command has failed\". Where are daily statistics? 1. Go to Logs \u2192 Call Stats (Voice). 2. On the Statistics & Reports calendar, pick the month and click a day's CDRS or STATS link to download it. Today jumps to the current month, and View Live CDRs opens CDR (Voice). Each day has two files, generated at midnight UTC: cdrs-daily-YYYY-MM-DD.csv.zip with the day's calls and daily-YYYY-MM-DD.csv.zip with totals per destination. On Mondays, cdrs-weekly-\u2026 and weekly-\u2026 files for the previous 7 days are added too. To get the files by email instead, turn on Send Daily Statistics Email in your preferences: you'll receive \"Seller's Daily CDR Report\" and \"Seller's Daily Statistics File\" every day (and the weekly files on Mondays). How do I change my preferences? 1. Go to Settings \u2192 Profile & Preferences. 2. Change the settings you need (see the table below). 3. Click Update Preferences. You'll see \"Your profile has been updated.\" Section What you can set Profile Image Upload New Photo: your logo, PNG only, 278\u00d7278 px recommended. Buyers see it on your seller profile and with your messages. Until you upload one, your avatar is the first letter of your login. Login Settings New Password and Confirm Password (at least 8 characters; leave both empty to keep your password), Enable Two-Step Verification and Login Timeout (minutes): minutes of inactivity before you're signed out, 0 for never. Login Username, Email Address and SMS Phone are shown but can't be edited. System Settings Send Daily Statistics Email, Email Weekly Top 20 Destinations, Payout Method, API Key (with Regenerate), Allow API Access and Short Company Bio (up to 150 characters, shown in Market View). Company Profile Company Name, Salutation, First Name, Last Name, Address, Phone, Public Email, NOC Email (each can hold several addresses separated by commas) and Skype ID. When you change your Public Email or NOC Email, TelecomsXchange sends a \"TCXC Email change notification\" to your account email showing the previous and new addresses. Clicking Regenerate replaces your API key at once, without Update Preferences. Turn on Allow API Access to use it; see the seller API. Only the main user can upload a photo or change Login Timeout (minutes); web users see only the password and two-step verification fields in Login Settings. Payout Method can be changed by the main user and by web users with the finance role. Turn on Email Weekly Top 20 Destinations. Every week you get \"TOP 20 countries VOIP traffic\" with TCXC_Top_20_<date>.csv attached: the countries with the most voice traffic on TelecomsXchange over the last 7 days, with Country, Description, Prefix, Type, Volume and Price. It shows where new routes are likely to sell. How do I add team members? Go to Settings \u2192 Web Users (main user only) to invite team members with their own login. A user with the Finance role can request withdrawals and edit the payout method, and does not see My Routes. Roles, invitations and the Logs \u2192 Web Access page are covered in Web users and access logs. What if something goes wrong? You see What to do ERROR! 'Password' should be at least 8 chars Choose a new password with 8 or more characters. ERROR!'Passwords' don't match Type the same password in New Password and Confirm Password. ERROR! Enter valid Public Email address! Check the Public Email for typos, or leave it empty. ERROR! Enter valid NOC Email address! Check the NOC Email for typos, or leave it empty. ERROR! The uploaded profile picture is not a valid image. Upload a PNG image file. Disconnect command has failed Click DISCONNECT again. If the call is still listed after the next refresh, contact support.",
   "sections": [
    {
     "id": "how-do-i-see-the-calls-on-my-routes",
     "title": "How do I see the calls on my routes?",
     "text": "1. Go to Logs \u2192 CDR (Voice). 2. Enter a Prefix to match the called number (CLD), or leave it empty for all calls. 3. Under Show Calls, choose Successful, Failed or All. 4. Set From Date and To Date. The page opens with the last 24 hours and successful calls. 5. Click Search. Clear empties the filters. You'll see the matching calls under Call Records, 100 per page. Each call shows the Route, CLD (hover it for an HLR lookup), CLI, Country [Description], Billed duration, Date, Amount, Buyer (a link to the buyer's profile), Disconnect Reason and SIP Code. Calls to your DIDs show Inbound instead of a route name. To save every matching call, not just the current page, click Download (the button shows how many CDRs it will download). You get cdrs.csv with Route, CLD, CLI, Country, Description, Duration, Buyer, Billed Duration, Amount, Setup Time, Connect Time, Disconnect Time, SIP Call-Id, Disconnect Reason and SIP Code. SMS traffic is under Logs \u2192 SDR (SMS), the SMS Detail Records page. It shows your account's SMPP Rate Limit, filters by CLD (Destination Number), Status (Sent by default, Any or Failed) and dates, lists each message with its buyer, route, amount, delivery status and time, and downloads as sms.csv. The page is described in Sell SMS routes."
    },
    {
     "id": "how-do-i-watch-live-traffic",
     "title": "How do I watch live traffic?",
     "text": "1. Click Live Calls in the menu. The heading shows Total, Connected and Routing counts. 2. To narrow the list, enter a Prefix or choose a Call Type: Connected, Routing or All, and click Search. The Call List shows each call in progress on your routes: Buyer, Route, CLD, CLI, Country, Description, Setup Time, Connect Time, Status, Duration, Authorized Amount, Route Type and Command. Calls to your DIDs show Inbound as the route and DID as the type. Switch between list, card and cover-flow views with the buttons above the list; the page refreshes every 25 seconds. Download N Live Calls saves the list as live_calls.csv. To end a call, click DISCONNECT in its Command column. You'll see \"Disconnect command was successfull\" or \"Disconnect command has failed\"."
    },
    {
     "id": "where-are-daily-statistics",
     "title": "Where are daily statistics?",
     "text": "1. Go to Logs \u2192 Call Stats (Voice). 2. On the Statistics & Reports calendar, pick the month and click a day's CDRS or STATS link to download it. Today jumps to the current month, and View Live CDRs opens CDR (Voice). Each day has two files, generated at midnight UTC: cdrs-daily-YYYY-MM-DD.csv.zip with the day's calls and daily-YYYY-MM-DD.csv.zip with totals per destination. On Mondays, cdrs-weekly-\u2026 and weekly-\u2026 files for the previous 7 days are added too. To get the files by email instead, turn on Send Daily Statistics Email in your preferences: you'll receive \"Seller's Daily CDR Report\" and \"Seller's Daily Statistics File\" every day (and the weekly files on Mondays)."
    },
    {
     "id": "how-do-i-change-my-preferences",
     "title": "How do I change my preferences?",
     "text": "1. Go to Settings \u2192 Profile & Preferences. 2. Change the settings you need (see the table below). 3. Click Update Preferences. You'll see \"Your profile has been updated.\" Section What you can set Profile Image Upload New Photo: your logo, PNG only, 278\u00d7278 px recommended. Buyers see it on your seller profile and with your messages. Until you upload one, your avatar is the first letter of your login. Login Settings New Password and Confirm Password (at least 8 characters; leave both empty to keep your password), Enable Two-Step Verification and Login Timeout (minutes): minutes of inactivity before you're signed out, 0 for never. Login Username, Email Address and SMS Phone are shown but can't be edited. System Settings Send Daily Statistics Email, Email Weekly Top 20 Destinations, Payout Method, API Key (with Regenerate), Allow API Access and Short Company Bio (up to 150 characters, shown in Market View). Company Profile Company Name, Salutation, First Name, Last Name, Address, Phone, Public Email, NOC Email (each can hold several addresses separated by commas) and Skype ID. When you change your Public Email or NOC Email, TelecomsXchange sends a \"TCXC Email change notification\" to your account email showing the previous and new addresses. Clicking Regenerate replaces your API key at once, without Update Preferences. Turn on Allow API Access to use it; see the seller API. Only the main user can upload a photo or change Login Timeout (minutes); web users see only the password and two-step verification fields in Login Settings. Payout Method can be changed by the main user and by web users with the finance role. Turn on Email Weekly Top 20 Destinations. Every week you get \"TOP 20 countries VOIP traffic\" with TCXC_Top_20_<date>.csv attached: the countries with the most voice traffic on TelecomsXchange over the last 7 days, with Country, Description, Prefix, Type, Volume and Price. It shows where new routes are likely to sell."
    },
    {
     "id": "how-do-i-add-team-members",
     "title": "How do I add team members?",
     "text": "Go to Settings \u2192 Web Users (main user only) to invite team members with their own login. A user with the Finance role can request withdrawals and edit the payout method, and does not see My Routes. Roles, invitations and the Logs \u2192 Web Access page are covered in Web users and access logs."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do ERROR! 'Password' should be at least 8 chars Choose a new password with 8 or more characters. ERROR!'Passwords' don't match Type the same password in New Password and Confirm Password. ERROR! Enter valid Public Email address! Check the Public Email for typos, or leave it empty. ERROR! Enter valid NOC Email address! Check the NOC Email for typos, or leave it empty. ERROR! The uploaded profile picture is not a valid image. Upload a PNG image file. Disconnect command has failed Click DISCONNECT again. If the call is still listed after the next refresh, contact support."
    }
   ]
  },
  {
   "slug": "web-users-and-access-logs",
   "section": "sellers",
   "title": "Invite your team and review who logged in",
   "description": "Give colleagues their own TelecomsXchange seller logins with Web Users: invite by email, choose a Default, Finance or Buyer Access role, block or unblock users, and check the Web Access log.",
   "summary": "Go to Settings \u2192 Web Users and click Invite User. Enter the email, a phone number for two-step verification, a name and the role, and click Send Invitation. The person gets a \"Welcome to TCXC\" email with a link to choose their own username and password. Finance users can withdraw funds; other roles can't. Logs \u2192 Web Access shows every page request on your account for the last 30 days.",
   "url": "https://help.telecomsxchange.com/sellers/web-users-and-access-logs/",
   "markdown_url": "https://help.telecomsxchange.com/sellers/web-users-and-access-logs.md",
   "updated": "2026-10-21",
   "keywords": [
    "web users",
    "team",
    "sub-user",
    "invite user",
    "roles",
    "finance role",
    "block user",
    "web access log",
    "audit log",
    "switch to buyer panel",
    "two-step verification"
   ],
   "verified_commit": "83b4ebc96d0081a25213776d5a8871bd04941125",
   "faq": [
    {
     "q": "Who can invite users?",
     "a": "Only the main account. Invited users don't see Web Users or the Web Access log."
    },
    {
     "q": "Which role can withdraw funds?",
     "a": "Finance. Finance users see Withdraw Funds and Request payout and can change the payout method, but they don't see My Routes. Default and Buyer Access users can't withdraw."
    },
    {
     "q": "A colleague left. How do I remove their access?",
     "a": "In Web Users, click Block on their row. They can't log in until you click Unblock."
    },
    {
     "q": "How does two-step verification work for invited users?",
     "a": "Each user turns it on for themselves under Profile & Preferences \u2192 Enable Two-Step Verification. A 4-digit code is then sent by SMS to the phone number from the invitation at every login, and a browser that passed the check is remembered for 7 days."
    },
    {
     "q": "How long is the Web Access log kept?",
     "a": "30 days. Download it as CSV if you need to keep it longer."
    }
   ],
   "text": "How team roles split seller access 1. Main user: Invites from Settings \u2192 Web Users 2. Colleague (via Welcome to TCXC email): Own username, password and SMS two-step code 3. Access role (via signs in): Finance withdraws funds; Default manages My Routes 4. Web Access log (via every page request): Who did what, kept 30 days Sharing one login makes it impossible to tell who uploaded a rate deck or requested a payout. Web Users gives each colleague their own username and password on your seller account, with a role, and the Web Access log shows what everyone did. How do I invite a colleague? 1. Go to Settings \u2192 Web Users. The My Team page lists your users. 2. Click Invite User. 3. Fill in: - Email Address: where the invitation goes. It must not already be used by another TelecomsXchange user. - Phone Number (For 2FA): with the country code, such as +19542405411. It is used for two-step verification. - Friendly Name: the name shown in the list and in logs. - Access Role: Default - Standard Access, Finance - Financial Management or, when your seller account is linked to a buyer account, Buyer Access - Customer Management. 4. Click Send Invitation. You'll see \"Web User has been added\". The user gets a \"Welcome to TCXC\" email with a Create your login button that opens Create Your Account, where they choose a Username and a Password of at least 8 characters. After \"User Created Successfully\" they sign in at the seller login page with their own username and password. Each invitation link works once; click Resend Invite to send a fresh one. When an invited user is signed in, the portal shows the account as \"your login via their login\", so your routes and settings are shared while the activity is theirs. What can each role do? Every invited user can use the seller portal like the main account: Future Rate Changes, Interconnect Info, My Buyers, Market View, HLR Lookup, Payout History, DIDs, records and Live Calls. The differences: Default Finance Buyer Access Invite or edit web users No No No Web Access log No No No Login timeout and profile photo No No No My Routes (add routes, upload rates) Yes No Yes Withdraw Funds, Request payout, payout method No Yes No Switch to the linked buyer panel No No Yes Buyer Access appears only when TelecomsXchange has linked your seller account to a buyer account. Such a user, like the main account, gets a Switch to Buyer Panel button on the dashboard. Ask support to link accounts. How do I change or remove a user? In Web Users: - Edit changes the user's Role. Username, name and email can't be changed; invite a new user instead. - Block stops the user logging in at once; Unblock lets them back in. A user who enters a wrong two-step code more than four times is blocked automatically and shows as Blocked: click Unblock. - Resend Invite sends a new invitation link. How does two-step verification work for my team? Each user turns it on for themselves: Settings \u2192 Profile & Preferences \u2192 Enable Two-Step Verification. From then on, every login sends a 4-digit code by SMS to the phone number from their invitation. A browser that has passed the check isn't asked again for 7 days. Users can also change their own password there. How do I see who did what? 1. Go to Logs \u2192 Web Access. 2. Set From Date and To Date; the page opens on the last 24 hours. 3. Click Search. Every page request made on your account is listed with the Username (the invited user's login, or yours), Source IP Address, Request URI, Request (the form fields sent, with passwords masked) and DateTime. Click Download &lt;n&gt; Entries for a CSV. Entries are kept for 30 days. Use it to confirm who uploaded a rate deck, changed a route or requested a payout. What if something goes wrong? You see What to do Invalid email format Enter a full address such as name@company.com. This email is already in use The address already belongs to a TelecomsXchange user. Use another one. Invalid SMS Number format Enter 8 to 14 digits with the country code, such as +19542405411. Invalid Link: the invitation link has expired or has already been used Click Resend Invite on the user. This login is already used, please choose another one The username is taken. The user should pick another. The password should contain at least 8 characters Choose a longer password. Your account has been blocked More than four wrong two-step codes. The main account clicks Unblock on the user.",
   "sections": [
    {
     "id": "how-do-i-invite-a-colleague",
     "title": "How do I invite a colleague?",
     "text": "1. Go to Settings \u2192 Web Users. The My Team page lists your users. 2. Click Invite User. 3. Fill in: - Email Address: where the invitation goes. It must not already be used by another TelecomsXchange user. - Phone Number (For 2FA): with the country code, such as +19542405411. It is used for two-step verification. - Friendly Name: the name shown in the list and in logs. - Access Role: Default - Standard Access, Finance - Financial Management or, when your seller account is linked to a buyer account, Buyer Access - Customer Management. 4. Click Send Invitation. You'll see \"Web User has been added\". The user gets a \"Welcome to TCXC\" email with a Create your login button that opens Create Your Account, where they choose a Username and a Password of at least 8 characters. After \"User Created Successfully\" they sign in at the seller login page with their own username and password. Each invitation link works once; click Resend Invite to send a fresh one. When an invited user is signed in, the portal shows the account as \"your login via their login\", so your routes and settings are shared while the activity is theirs."
    },
    {
     "id": "what-can-each-role-do",
     "title": "What can each role do?",
     "text": "Every invited user can use the seller portal like the main account: Future Rate Changes, Interconnect Info, My Buyers, Market View, HLR Lookup, Payout History, DIDs, records and Live Calls. The differences: Default Finance Buyer Access Invite or edit web users No No No Web Access log No No No Login timeout and profile photo No No No My Routes (add routes, upload rates) Yes No Yes Withdraw Funds, Request payout, payout method No Yes No Switch to the linked buyer panel No No Yes Buyer Access appears only when TelecomsXchange has linked your seller account to a buyer account. Such a user, like the main account, gets a Switch to Buyer Panel button on the dashboard. Ask support to link accounts."
    },
    {
     "id": "how-do-i-change-or-remove-a-user",
     "title": "How do I change or remove a user?",
     "text": "In Web Users: - Edit changes the user's Role. Username, name and email can't be changed; invite a new user instead. - Block stops the user logging in at once; Unblock lets them back in. A user who enters a wrong two-step code more than four times is blocked automatically and shows as Blocked: click Unblock. - Resend Invite sends a new invitation link."
    },
    {
     "id": "how-does-two-step-verification-work-for-my-team",
     "title": "How does two-step verification work for my team?",
     "text": "Each user turns it on for themselves: Settings \u2192 Profile & Preferences \u2192 Enable Two-Step Verification. From then on, every login sends a 4-digit code by SMS to the phone number from their invitation. A browser that has passed the check isn't asked again for 7 days. Users can also change their own password there."
    },
    {
     "id": "how-do-i-see-who-did-what",
     "title": "How do I see who did what?",
     "text": "1. Go to Logs \u2192 Web Access. 2. Set From Date and To Date; the page opens on the last 24 hours. 3. Click Search. Every page request made on your account is listed with the Username (the invited user's login, or yours), Source IP Address, Request URI, Request (the form fields sent, with passwords masked) and DateTime. Click Download &lt;n&gt; Entries for a CSV. Entries are kept for 30 days. Use it to confirm who uploaded a rate deck, changed a route or requested a payout."
    },
    {
     "id": "what-if-something-goes-wrong",
     "title": "What if something goes wrong?",
     "text": "You see What to do Invalid email format Enter a full address such as name@company.com. This email is already in use The address already belongs to a TelecomsXchange user. Use another one. Invalid SMS Number format Enter 8 to 14 digits with the country code, such as +19542405411. Invalid Link: the invitation link has expired or has already been used Click Resend Invite on the user. This login is already used, please choose another one The username is taken. The user should pick another. The password should contain at least 8 characters Choose a longer password. Your account has been blocked More than four wrong two-step codes. The main account clicks Unblock on the user."
    }
   ]
  }
 ]
}