FAQ

Answers for Canadian SIP trunking

Search setup, porting, billing, and network questions from our operations knowledge base.

Canadian SMS: Registration and Carrier Blocking

Understand when registration is required, why carriers may block messages, and what to do if delivery is affected.

1. Do Canadian numbers require brand and campaign registration?

Generally, Canadian local numbers used exclusively to message Canadian recipients do not currently require U.S. A2P 10DLC brand and campaign registration. Business messaging to U.S. numbers requires registration. Provider-specific verification requirements may still apply; toll-free numbers follow a separate process.

2. Does a one-to-one conversation count as P2P?

Not necessarily. Messages sent through a business platform can be classified as application-to-person (A2P) even when an employee manually messages one customer. A conversational exchange alone does not establish a person-to-person (P2P) exemption.

3. Will registration become mandatory within Canada?

Requirements may change, but no confirmed Canada-wide implementation date has been identified. Contact IXICA to confirm the current requirements before changing your messaging use.

4. Can carriers block messages even when registration is not required?

Yes. Carriers can filter messages or block sending numbers when they detect suspected spam, prohibited content, complaints, or other policy violations. Registration—or an exemption from registration—does not guarantee delivery.

5. What happens if my number is blocked?

Contact IXICA Support with your sending number, affected destination numbers, message examples, and the dates and times of failed attempts. IXICA can investigate and request a carrier review where appropriate. Removal of a block is subject to carrier approval and cannot be guaranteed. Review and resolution times vary by carrier and case.

Important: Registration requirements and carrier policies can change. Confirm the requirements applicable to your number, messaging platform and destinations with IXICA.

Last reviewed: November 4, 2026.

Share

This guide explains how to set up, send, receive, and manage faxes in the MySMS.ca portal.


1. Getting Started

If this is the first service being set up under your username, log in using the temporary password provided to you.

After logging in for the first time:

  • Change your password to something secure

  • Save your new password for future use


2. Setting Up a Fax Number

To configure your fax number:

  1. Go to Fax Management → Fax Numbers

  2. Click Manage Fax DID beside the fax number you want to manage

This should normally be the newly created fax number and account.

Fax Number Settings Explained

Fax Label
This is an internal label for your reference. You can name the fax number anything that helps you identify it easily.

Email Permissions
Add all email addresses that should be linked to this fax account, then assign the correct permission level for each address:

  • Send Only

  • Receive Only

  • Send & Receive

Status
Make sure the fax number status is set to Active.

Save Changes
After making any updates, click Save Changes to apply them.

Important: If email addresses are not added under Email Permissions, users will not be able to send or receive faxes by email.


3. Fax API Integration

If you require API integration, please contact our support team for assistance.


4. Sending a Fax Through the Portal

To send a fax from the MySMS.ca portal:

  1. Go to Fax Management → Fax History

  2. Click Send Fax

Fields on the Send Fax Screen

Fax Number
Choose the fax number you want to send from.
If your account has only one fax number, that will usually be the only option shown.

Recipient Number
Enter the destination fax number in 11-digit format.

Example:
14165551212

PDF Document
Click the upload field and select the PDF file you want to fax.

Subject
This is for your internal reference and can help you identify the fax later.

Send Fax
Click Send Fax once all information has been entered.

Important Notes

  • Faxes are queued for sending

  • Delivery usually occurs within 5 to 10 minutes

  • Fax delivery status is only available in the portal for faxes sent through the portal


5. Viewing and Downloading Faxes in the Portal

All incoming and outgoing fax activity can be viewed under:

Fax Management → Fax History

From this section, you can:

  • View fax activity

  • Download individual faxes

  • Select multiple faxes and download them together


6. Sending and Receiving Faxes by Email

Faxing by email is available based on the permissions assigned to each email address.

Sending a Fax by Email

When sending a fax by email, the To field must use the following format:

11digitfaxnumber@ww2.mysms.ca

Example:
14165551212@ww2.mysms.ca

Receiving Faxes by Email

Incoming faxes are sent to all email addresses that have either of the following permissions:

  • Receive Only

  • Send & Receive

All incoming faxes are converted to PDF and delivered to the appropriate email addresses.

Supported File Type

At this time, only PDF documents are supported for sending by email.


7. Managing Your Account Settings

You can also manage account-related settings such as your password, office hours, and time zone.

To access these settings:

  1. Click the text icon in the top-right corner of the portal

  2. Select My Account

In the My Account section, you can update:

  • Your password

  • Office hours

  • Time zone settings

Important: Be sure to click Save after making changes in any section.


8. Need More Help?

If you need additional assistance or more detailed instructions, please contact us at:

support@ixica.com

Share

IXICA · Developer FAQ

Fax API — Integration Guide

Send PDF faxes, check outbound delivery status and process inbound fax webhooks using the IXICA mysms API.

Base URL: https://api.mysms.ca
Fax is different from SMS: Use 10-digit North American numbers without +1. A 202 / FAX QUEUED response means the fax was queued; confirm delivery using the outbound status endpoint.

All numbers, IDs, file paths and download URLs in the examples are illustrative. Replace them with your own values before use. Keep real API keys and signed download links private.

API endpoints at a glance

Method Endpoint Purpose
POST https://api.mysms.ca/fax/send Submit a fax.
GET https://api.mysms.ca/fax/{fax_id} Read an outbound fax’s delivery status.
POST customer_fax_webhook_url IXICA posts inbound events to your configured URL.

1. How do I authenticate?

Include the API key issued to your account in the Authorization header. View and manage your key in the portal under Account Settings. Requests with a missing or invalid key are rejected.

Authorization: Bearer YOUR_API_KEY

2. What is required to send a fax?

Field Requirement
from Required. 10-digit North American sending number; no +1.
to Required. 10-digit North American destination number; no +1.
subject Optional. Up to 255 characters.
file / file_url Required: upload a PDF using multipart form data, or provide a PDF URL using JSON.

PDF only. The documented maximum is approximately 10 MB, configurable. Confirm your active limit with IXICA.

3. How do I upload a PDF?

POST https://api.mysms.ca/fax/send
Content-Type: multipart/form-data

Multipart fields

from=5145551212
to=5145550000
subject=Test fax
file=@/path/to/file.pdf;type=application/pdf

cURL

curl -X POST "https://api.mysms.ca/fax/send" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "from=5145551212" \
  -F "to=5145550000" \
  -F "subject=Test fax" \
  -F "file=@/path/to/file.pdf;type=application/pdf"

Replace the file path with your PDF’s local path. In this cURL example, -F creates the multipart request; let cURL set the Content-Type boundary.

4. How do I send a PDF by URL?

POST https://api.mysms.ca/fax/send
Content-Type: application/json

{
  "from": "5145551212",
  "to": "5145550000",
  "subject": "Test fax",
  "file_url": "https://example.com/sample.pdf"
}

cURL

curl -X POST "https://api.mysms.ca/fax/send" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "from": "5145551212",
  "to": "5145550000",
  "subject": "Test fax",
  "file_url": "https://example.com/sample.pdf"
}'

The file_url must point to a PDF with content type application/pdf. The service must be able to retrieve the file.

5. What does the send response mean?

Queued — HTTP 202

{
  "success": true,
  "code": "202",
  "message": "FAX QUEUED",
  "data": {
    "fax_id": "12345",
    "from": "5145551212",
    "to": "5145550000",
    "pages": 1,
    "status": "pending"
  }
}

Store data.fax_id and use it to check status. The initial pending state is not a delivery confirmation.

Example error — HTTP 500

{
  "success": false,
  "code": "500",
  "message": "file_url must point to a PDF (application/pdf)"
}
Send code Meaning
500 Invalid API key, DID not assigned, API functionality not enabled on this DID, or a documented file-validation error. Read the response message to distinguish the cause.
202 FAX QUEUED — accepted for processing; check status for the final result.

6. How do I check outbound delivery status?

GET https://api.mysms.ca/fax/{fax_id}

Replace {fax_id} with data.fax_id returned by Send Fax. Use the same Bearer API key. Only outbound jobs are available; inbound history IDs return 404.

curl -X GET "https://api.mysms.ca/fax/12345" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"

Success — HTTP 200

{
  "success": true,
  "code": "200",
  "message": "OK",
  "data": {
    "fax_id": 12345,
    "direction": "outbound",
    "status": "pending",
    "from": "5145551212",
    "to": "5145550000",
    "subject": "Test fax",
    "pages": 1,
    "created_at": "2026-05-08T12:00:00+00:00",
    "updated_at": "2026-05-08T12:00:05+00:00",
    "completed_at": null
  }
}
Status Meaning
pending Queued or sent to the fax gateway; waiting for provider confirmation.
sent Provider reported success. Terminal state.
failed Provider reported failure. Terminal state.

completed_at is an ISO 8601 timestamp when the status becomes terminal (sent or failed). It remains null while in progress. Poll until a terminal state; the supplied documentation does not specify a polling interval or rate limit.

Status endpoint errors

HTTP When
401 Missing or invalid API key.
403 Valid key, but the fax belongs to another account.
404 Unknown fax_id, inbound/non-outbound fax, or invalid ID.
{
  "success": false,
  "code": "401",
  "message": "INVALID API KEY"
}
Send Fax and Fax Status use different documented error conventions. Do not assume an authentication error from /fax/send uses the status endpoint’s 401 code.

7. How do inbound fax webhooks work?

If a DID has customer_fax_webhook_url configured, an event is forwarded after a fax is successfully received. The request uses POST with Content-Type: application/json.

{
  "type": "fax.received",
  "fax_id": 12345,
  "from": "5145550000",
  "to": "5145551212",
  "pages": 2,
  "status": "received",
  "received_at": "2025-08-22T12:34:56Z",
  "media_url": "https://s3.amazonaws.com/bucket/faxes/2025/08/22/fax_12345.pdf?X-Amz-Signature=..."
}
Field Type Description
type string Always fax.received for inbound faxes.
fax_id integer Unique fax identifier.
from string Sender’s fax number, 10 digits.
to string Recipient’s fax number, 10 digits.
pages integer Number of pages.
status string received.
received_at string ISO 8601 receipt timestamp.
media_url string Signed AWS S3 download URL, valid for 24 hours.
Download within 24 hours. The media_url is a temporary signed AWS S3 URL that expires after 24 hours. Download or process the PDF promptly. The example URL is a placeholder, not a working download.

Failures to forward an event are logged; acknowledgement of the upstream webhook is not blocked. The supplied specification does not define customer-event retries or guaranteed redelivery.

8. How do I set customer_fax_webhook_url?

The specification states that this setting is configured per DID, but does not provide a configuration endpoint or portal procedure. Confirm the setup method with IXICA. Do not assume the SMS /webhook endpoint configures fax webhooks.

Troubleshooting checklist

  • Use 10-digit numbers, without +1, for both from and to.
  • Verify that the sending DID is assigned to your account and API functionality is enabled.
  • Check the Authorization Bearer key.
  • Send a PDF only and confirm the configured upload-size limit.
  • Save the returned fax ID; check sent or failed rather than relying on 202 alone.
  • For inbound fax, confirm the per-DID webhook URL and process the signed PDF link before expiry.
Source: fax API documentation supplied by IXICA for this FAQ. JSON examples checked for syntax and consistency. No live fax or API requests were sent. Webhook signatures, retry schedules and customer acknowledgement requirements are not specified in the supplied reference.

Share

IXICA · Developer FAQ

SMS API — Integration Guide

Send SMS and MMS, queue bulk messages and configure inbound webhooks with the IXICA mysms API.

Base URL: https://api.mysms.ca
All examples use this API host and the application success code 200. Do not substitute endpoints or codes from a third-party integration guide.

Examples contain sample numbers, media URLs and placeholder IDs—not live credentials. Replace them with your own assigned DID, recipient numbers, accessible files and API key before use.

API endpoints at a glance

Method Endpoint Purpose
POST https://api.mysms.ca/send Single SMS, bulk SMS and MMS.
POST https://api.mysms.ca/webhook Update the inbound webhook URL.

1. How do I authenticate?

Include your account’s API key in every API request. View and manage the key in the portal under Account Settings. Requests with a missing or invalid key are rejected.

Authorization: Bearer YOUR_API_KEY

For the JSON requests below, also send Content-Type: application/json. Keep your real key private.

2. How do I send an SMS?

POST https://api.mysms.ca/send

Field Type / requirement Description
from string · required Your assigned SMS DID in E.164 format.
to string · required Destination number in E.164 format.
text string · required for SMS Message text.

Request body

{
  "from": "+15145551212",
  "to": "+15145550000",
  "text": "Hello from API"
}

Success response — HTTP 200

{
  "success": true,
  "code": "200",
  "message": "SMS SENT",
  "message_id": "<provider_msg_id>"
}

cURL

curl -X POST "https://api.mysms.ca/send" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "from": "+15145551212",
  "to": "+15145550000",
  "text": "Hello from API"
}'

PHP (Guzzle)

This example requires Guzzle and an API_KEY environment variable containing your API key.

$client = new \GuzzleHttp\Client();
$response = $client->post('https://api.mysms.ca/send', [
    'headers' => [
        'Authorization' => 'Bearer ' . getenv('API_KEY'),
        'Content-Type' => 'application/json',
    ],
    'json' => [
        'from' => '+15145551212',
        'to' => '+15145550000',
        'text' => 'Hello from API'
    ],
]);
echo $response->getStatusCode();
echo (string) $response->getBody();

3. How do I send bulk SMS?

Use the same /send endpoint, but set to to a JSON array of E.164 numbers. The same message is sent to every recipient; optional media can also be included.

{
  "from": "+15145551212",
  "to": [
    "+12025550100",
    "+12025550101"
  ],
  "text": "Same text to every recipient"
}

Queued response

{
  "success": true,
  "code": "200",
  "message": "BATCH SMS QUEUED",
  "batch_id": "<batch-uuid>",
  "queued_recipients": 2
}
This example contains two recipients, so queued_recipients is 2. A batch-queued response confirms queuing; it is not proof of delivery to each handset.

cURL

curl -X POST "https://api.mysms.ca/send" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "from": "+15145551212",
  "to": [
    "+12025550100",
    "+12025550101"
  ],
  "text": "Same text to every recipient"
}'

4. How do I send an MMS?

Send a JSON request to POST https://api.mysms.ca/send with from, to and an attachments array of media URLs. The supplied MMS example does not require a text value.

{
  "from": "+15145551212",
  "to": "+15145550000",
  "attachments": [
    "https://example.com/image1.jpg",
    "https://example.com/image2.png"
  ]
}

Both phone numbers must use E.164 format. Files must be accessible over HTTPS and comply with the supported size and type limits.

Supported content types

image/jpeg, image/jpg, image/png, image/gif, video/mp4, audio/mp3, audio/mpeg, application/pdf, text/plain

The supplied specification does not give numeric file-size limits. Confirm those limits with IXICA before production use.

5. What do the response codes mean?

Application code Meaning
000 Invalid API key.
001 DID not assigned.
002 API functionality is not enabled on this DID.
200 SMS sent successfully; webhook updates also use 200 for success. Bulk sends return BATCH SMS QUEUED.

The JSON code field is an application code. The success examples also show HTTP 200, but these are separate values; error HTTP status mappings are not specified in the supplied reference.

6. How do I configure my inbound webhook?

POST https://api.mysms.ca/webhook
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

{
  "url": "https://yourapp.example.com/webhooks/sms"
}

Success response — HTTP 200

{
  "code": "200",
  "message": "WEBHOOK URL UPDATED"
}

Webhook updates return application code 000 for an invalid key and 200 when the URL is updated.

cURL

curl -X POST "https://api.mysms.ca/webhook" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "url": "https://yourapp.example.com/webhooks/sms"
}'

7. What does an inbound SMS webhook contain?

When a message arrives on one of your DIDs, the system sends a POST request with a JSON event to your configured webhook URL.

{
  "data": {
    "event_type": "message.received",
    "id": "<uuid>",
    "completed_at": null,
    "cost": null,
    "direction": "inbound",
    "errors": [],
    "payload": {
      "id": "<uuid>",
      "from": {
        "phone_number": "+15145551212"
      },
      "text": "Hello from the sender",
      "to": [
        {
          "phone_number": "+15145550000"
        }
      ],
      "received_at": "2026-02-12T15:39:43+00:00",
      "record_type": "message"
    },
    "record_type": "event"
  }
}

8. How are inbound MMS attachments delivered?

An inbound message with attachments includes a media array under data.payload. Each item provides the media file’s public URL. The text field can be empty, as shown below.

{
  "data": {
    "event_type": "message.received",
    "id": "<uuid>",
    "direction": "inbound",
    "errors": [],
    "payload": {
      "id": "<uuid>",
      "from": {
        "phone_number": "+15145551212"
      },
      "text": "",
      "to": [
        {
          "phone_number": "+15145550000"
        }
      ],
      "media": [
        {
          "url": "https://ww2.mysms.ca/storage/mms/image1.jpg"
        },
        {
          "url": "https://ww2.mysms.ca/storage/mms/image2.png"
        }
      ],
      "received_at": "2026-02-12T15:39:43+00:00",
      "record_type": "message"
    },
    "record_type": "event"
  }
}
Outbound versus inbound media: Use attachments when sending. Read data.payload.media[].url when receiving.

Inbound field reference

Field Type Description
data.event_type string Always message.received.
data.id string (UUID) Unique event identifier.
data.direction string Always inbound.
data.completed_at null Reserved for future use.
data.cost null Reserved for future use.
data.errors array Empty array; reserved for future use.
data.payload.id string (UUID) Unique message identifier.
data.payload.from.phone_number string Sender’s number in E.164 format.
data.payload.text string Message body; may be empty in the MMS example.
data.payload.to[].phone_number string Your receiving DID in E.164 format.
data.payload.received_at string ISO 8601 timestamp.
data.payload.record_type string Always message.
data.record_type string Always event.
data.payload.media array Present only when attachments exist.
data.payload.media[].url string Public URL of a media file.

9. How should my webhook acknowledge receipt?

Your endpoint must return an HTTP 2xx status code to acknowledge receipt. The supplied specification does not define retry timing, delivery guarantees, a signature-verification scheme or media retention periods; confirm those details with IXICA if your application depends on them.

Troubleshooting checklist

  • Confirm the from number is assigned to your user.
  • Enable API functionality for the DID using the portal toggle.
  • Check the Bearer API key in the Authorization header.
  • Use E.164 phone numbers and valid JSON.
  • For MMS, verify HTTPS accessibility and supported media types.
  • For inbound messages, verify the webhook URL and return HTTP 2xx.
Source: SMS API specification supplied by IXICA for this FAQ. Examples were checked for JSON syntax and internal consistency; no live API requests were sent.

Share

IXICA · Integration FAQ · English

How do I connect IXICA mysms to Textable?

Use your IXICA API key and phone number in Textable, then configure the inbound webhook to receive SMS replies.

SMS only: Textable’s IXICA integration currently supports text messages (SMS). MMS is not supported.

What do I need before starting?

  • Access to your IXICA mysms account and its API Key.
  • An IXICA DID assigned to your account with API messaging enabled.
  • Access to your Textable profile.

1. Copy your IXICA API Key

Sign in to IXICA mysms. Open My Account from the letter/profile icon and copy your API Key.

Use the API Key, not the Secret Key. Textable’s IXICA setup instructions use the API key for outbound SMS and webhook configuration; they do not require a Secret field.

2. Enter the details in Textable

Textable field What to enter
API Key The API Key from your IXICA mysms account.
DID / VoIP Phone # The IXICA DID you want to use with Textable. It must be assigned to your IXICA account.

3. Configure the inbound webhook

In IXICA My Account, enter the following in API Webhook URL (SMS), then save the IXICA settings:

https://inbound.textable.app/receive?provider=ixica

Private-label customers: Use the inbound hostname supplied in your Textable onboarding email instead of https://inbound.textable.app. Keep the path and query string /receive?provider=ixica. If you do not have the hostname, contact support@textable.co.

Webhook Type: The linked Textable guide does not specify an IXICA Webhook Type selection. If your portal requires one, confirm the correct type with IXICA rather than copying the 3CX or Yeastar setting.

4. Save and test

  1. In Textable, click Update Profile Details.
  2. Send an SMS from Textable to a mobile phone.
  3. Reply from that phone and confirm that the reply appears in Textable.

How do I update the webhook through the API?

This is an alternative to saving the webhook in the IXICA portal—not an additional step if it is already configured correctly. An administrator can send a POST request to https://mysms.ca/api/webhook with the IXICA API key as a Bearer token and the inbound Textable URL in the form field url.

curl --request POST 'https://mysms.ca/api/webhook' \
  --header 'Authorization: Bearer YOUR_IXICA_API_KEY' \
  --form 'url=https://inbound.textable.app/receive?provider=ixica'

Replace YOUR_IXICA_API_KEY with your own API key. For private-label accounts, replace the inbound hostname as described above. Do not publish or share the completed command with a real key.

A successful webhook update returns application response code 100. This is the code in the API response, not an HTTP status code.

What do the response codes mean?

Code Meaning / next step
000 Invalid API key. Re-copy the API Key from the correct IXICA account.
001 DID not assigned. Check that the number entered in Textable belongs to your IXICA account.
002 API functionality is not enabled on the DID. Contact IXICA to enable API messaging.
100 For an outbound SMS request: SMS sent. For a webhook update: webhook updated successfully.

Sending works, but replies do not appear. What should I check?

Confirm that IXICA’s inbound webhook exactly matches the Textable URL above, or your correct private-label equivalent. Make sure you saved the IXICA settings and clicked Update Profile Details in Textable.

Adapted for IXICA customers from Textable’s IXICA / MySMS Setup Guide, reviewed October 23, 2026. IXICA portal navigation follows the My Account screenshots provided for this FAQ series.

Share

IXICA · Integration FAQ

How do I integrate IXICA SMS/MMS with Yeastar?

Connect IXICA mysms to a Yeastar P-Series messaging channel using your API Key, Secret and the correct messaging URLs. Then configure your number and message routing in Yeastar.

Important: Yeastar uses the Secret. Enter both the IXICA API Key and Secret Key into Yeastar. Do not follow the 3CX instruction to leave the Secret unused. Customer names, credentials and private URLs have been replaced in these screenshots.

Which fields go where?

Source / setting Destination / value What to know
IXICA My Account → API Key Yeastar → API Key Use the mysms API key for this account.
IXICA My Account → Secret Key Yeastar → Secret Required for this IXICA setup; do not substitute the API Key.
Yeastar → Webhook URL IXICA → API Webhook URL (SMS) Copy the complete URL from the correct Yeastar channel.
Yeastar → ITSP IXICA The supplied Yeastar configuration lists IXICA.
IXICA-provided Yeastar sending endpoint Yeastar → API Address for Sending Messages Use the endpoint specified by IXICA for Yeastar.
Yeastar → API Address for Verifying Authentication Blank in the supplied configuration Only enter a verification endpoint if IXICA supplies one.
IXICA → Webhook Type The webhook type IXICA specifies for Yeastar Do not leave it configured for 3CX.

Remember the direction: IXICA credentials and the sending API URL go to Yeastar. The Yeastar Webhook URL goes back to IXICA.

About Callback url: Do not automatically reuse a callback URL from the 3CX setup. Use IXICA’s Yeastar sending endpoint in API Address for Sending Messages. If IXICA supplies that endpoint through the Callback url field, use it only after the portal is configured for Yeastar and the endpoint is confirmed for this integration.

How do I configure the integration?

STEP 1Locate your IXICA credentials

Sign in to IXICA mysms, click the letter/profile icon in the upper-right corner and select My Account. Locate your API Key and Secret Key. Keep this page open.

mysms menu my accountSelect My Account to find the mysms credentials and webhook settings.

yeastarsms01IXICA field reference adapted from the supplied My Account screenshot. Values and the previous webhook-type selection have been replaced with instructional labels; this is not a live Yeastar-configured portal capture.

STEP 2Create or open the Yeastar SMS channel

In the Yeastar PBX web portal, go to Messaging → Message Channel. Click Add → SMS, or edit your existing IXICA SMS channel. In the Authentication tab, enter a descriptive Name and select IXICA in the ITSP list.

yeastar02The supplied Yeastar channel with customer data masked. Authentication and Messaging Settings are separate tabs.

If IXICA is not available in your ITSP list, confirm the supported Yeastar version and configuration with IXICA before using a different template.

STEP 3Enter the API Key, Secret and sending URL

  1. Copy the IXICA API Key into Yeastar’s API Key field.
  2. Copy the IXICA Secret Key into Yeastar’s Secret field.
  3. In API Address for Sending Messages, use IXICA’s sending endpoint for Yeastar. Retain the correct IXICA template value if it is already populated; otherwise obtain the endpoint from IXICA.
  4. API Address for Verifying Authentication is blank in the supplied configuration. Leave it blank unless IXICA provides a verification endpoint for your setup.

yeastarsms03Use both IXICA credentials. The sending API address and verification address are different fields.

STEP 4Copy the Yeastar webhook into IXICA

  1. In Yeastar, select the appropriate Webhook URL and copy the complete value using the copy icon.
  2. Return to IXICA My Account and paste it into API Webhook URL (SMS).
  3. Set Webhook Type to the type IXICA specifies for Yeastar. If there is no clear Yeastar option, confirm the correct choice with IXICA rather than selecting 3CX.
  4. Click Save in IXICA.

STEP 5Configure the number, routing and permissions

In Yeastar’s Messaging Settings tab:

  1. Set Message Sending Rate to a value within your IXICA account’s limit. Confirm the limit with IXICA rather than copying an arbitrary value.
  2. In the Number section, click Add and enter your IXICA messaging-enabled number in E.164 format: plus sign, country code and phone number.
  3. Select the appropriate Country/Region.
  4. Set Destination for Inbound Messaging to the intended extension or message queue, as appropriate for your environment.
  5. Select the Extensions allowed to create messaging sessions.
  6. Save the number/routing rule, then save the channel.

These number-routing steps follow Yeastar’s provider-neutral SMS channel instructions. Exact options can vary by edition and firmware. Source: Yeastar SMS API integration and channel setup.

STEP 6Test incoming and outgoing messages

  1. From an authorized user’s Linkus client, send an SMS using the configured IXICA number.
  2. Reply from the receiving mobile phone and confirm the reply reaches the configured extension or message queue.
  3. If you plan to use MMS, test an image message in each direction with the intended clients and numbers.
MMS: Yeastar’s SMS API supports media, but the message types available depend on the service provider. Confirm MMS availability for your IXICA service and Yeastar environment. Yeastar also notes that PBX access restrictions can block outbound media downloads. Source: Yeastar’s message-type limitations.

Common questions

Do I need the Secret Key?

Yes. This IXICA integration uses the Secret field. Copy the Secret Key from IXICA My Account into Secret in Yeastar. It is a separate value from the API Key.

Why does Yeastar use both an API Key and a Secret?

The API Key authenticates requests sent from Yeastar to the provider. The Secret is used to validate signed webhook requests received by Yeastar. Source: Yeastar’s request-authentication guidance.

Where does the Yeastar Webhook URL go?

Into IXICA’s API Webhook URL (SMS) field. Copy it from the Yeastar channel you are configuring, not from another customer or another PBX.

Is the sending API address the same as the webhook?

No. The sending API address points from Yeastar to IXICA. The Webhook URL points from IXICA back to Yeastar. Do not swap them.

Do I need an API address for verifying authentication?

That field is blank in the supplied IXICA configuration. Yeastar documents it as optional and provider-dependent. Enter a value only if IXICA supplies one. Source: Yeastar’s optional connectivity verification.

What should I check if outgoing SMS works but replies do not arrive?

  • Confirm that IXICA has the complete webhook URL from the correct Yeastar channel.
  • Check that the IXICA Secret Key matches Yeastar’s Secret exactly.
  • Check IXICA’s webhook type and save the portal settings.
  • Check the number’s inbound destination in Yeastar and the intended user’s message queue membership.
  • Ask your administrator to check PBX domain reachability and certificate validity. Yeastar identifies these as integration requirements. Source: Yeastar’s requirements.

What should I check if sending fails?

  • Verify the IXICA API Key and the sending endpoint for Yeastar.
  • Confirm the IXICA messaging number is configured in the channel and the sending extension is allowed to create messaging sessions.
  • Check phone-number formatting and the sending-rate limit.
  • For MMS failures, also check media support, file restrictions and access to the PBX-hosted media.
  • Record the error and test time for support, but do not include keys, secrets or private URLs in public screenshots.

Final setup checklist

  • ITSP is set to IXICA.
  • IXICA API Key is entered in Yeastar API Key.
  • IXICA Secret Key is entered in Yeastar Secret.
  • IXICA’s Yeastar sending endpoint is configured.
  • Verification endpoint is left blank unless IXICA provides one.
  • Yeastar Webhook URL is saved in IXICA.
  • IXICA webhook type is configured for Yeastar, not 3CX.
  • Messaging number, inbound destination and sending permissions are configured.
  • Settings are saved in both systems; SMS is tested in both directions.
  • MMS is tested separately if required.
Based on the supplied IXICA and Yeastar screenshots, your confirmation that Yeastar uses the Secret, and Yeastar’s provider-neutral P-Series SMS integration guide. No other messaging provider’s instructions or endpoints are used. Labels may vary by edition and firmware. All published screenshots are sanitized.

Share

IXICA · Quick FAQ · English

How do I create an IP trunk under an existing SIP account?

Select your SIP account, enter the trunk details, then review and submit your request.

Before you begin: You must already have a SIP account. If you do not, order a SIP account with the correct call plan first.

1. Select your account and trunk option

  1. Go to ORDER NEW SERVICES → SIP Services.
  2. Under Account, select your existing SIP account.
  3. Under Trunk, select Add new SIP trunk.

faq_sip_trunk_02Select the existing SIP account, then Add new SIP trunk.

2. Complete the service details

Field What to enter
Trunk Type / Product
Required
Always select IP Trunk.
Trunk Name
Required
Enter a friendly name using lowercase letters, no spaces and no special characters other than the underscore (_). For example: office_pbx. A clear name makes it easier to identify the trunk when selecting a destination for DID orders, LNP requests and other services.
Earlier Date OK?
Required
Select Yes if you want the order processed as soon as possible.
Primary IP
Required
Enter the IP address of your PBX.
Backup IP
Optional
Enter the backup IP address if one is available.
Inbound Call Paths
Required
Enter at least 1. These call paths are shared on the main SIP account.
Outbound Call Paths
Required
Enter at least 1. These call paths are shared on the main SIP account.
LD Call Paths
Required for this request
Enter the number of channels for international calling if you want it enabled. Otherwise, enter 0.
Requested Date
Required
The form shows the earliest possible date. Choose your requested date; orders are generally completed within a few hours, although timing is not guaranteed.

faq_sip_trunk_01Complete the service details. The screenshot shows the upper part of the form.

LD Call Paths: Even if the form labels this field “Optional,” enter a value for this procedure: your international channel count, or 0 if international calling is not needed.

3. Review and submit

  1. Click Continue to Submit.
  2. Review the submission details.
  3. Select the primary contact for the ticket. This is required.
  4. Click Submit SIP Request to finish submitting your order.

Final check: IP Trunk selected; valid trunk name; Primary IP entered; inbound and outbound call paths at least 1; LD Call Paths entered; Earlier Date OK? and Requested Date completed; primary contact selected.

Share

IXICA · Integration FAQ

How do I integrate IXICA SMS/MMS with 3CX?

Connect your IXICA mysms account to 3CX by exchanging the API key and two URLs. Follow the field mapping below to put each value in the correct system.

Important: Use the IXICA mysms API Key for 3CX. Do not use the Secret Key. All credentials and account-specific URLs shown in this guide have been masked. Copy the real values from your own account, not from these screenshots.

Which fields go where?

Copy from Paste into Purpose
IXICA My Account → API Key 3CX SMS → API Key The mysms API key used for this integration.
3CX SMS → Webhook IXICA My Account → API Webhook URL (SMS) The 3CX-side webhook URL belongs in IXICA.
IXICA My Account → Callback url 3CX SMS → Provider URL The IXICA callback URL belongs in 3CX.
IXICA My Account → Webhook Type Select 3CX in IXICA Choose the integration type.
IXICA My Account → Secret Key Not used Do not enter this value in 3CX.

Remember the direction: the 3CX Webhook goes to IXICA; the IXICA Callback URL goes to 3CX.

How do I configure the integration?

STEP 1Open My Account in IXICA

Sign in to the IXICA mysms portal. Click the letter/profile icon in the upper-right corner, then select My Account.

mysms menu my accountSelect My Account from the profile menu.

STEP 2Locate your IXICA integration values

On the My Account page, locate the API Key and Callback url. Keep this page open—you will copy both values into 3CX and return here to finish the webhook settings.

mysms accountIXICA My Account. API keys and endpoint URLs are redacted; field labels remain visible.

Use API Key, not Secret Key. The API Key shown on this page is the mysms API key that belongs in the 3CX API Key field. You do not need the Secret Key for this setup.

STEP 3Enter the IXICA values in 3CX

  1. Open the relevant IXICA configuration in 3CX and select the SMS tab shown below.
  2. Select Enable SMS.
  3. Copy the IXICA mysms API Key into the 3CX API Key field.
  4. Copy the IXICA Callback url into the 3CX Provider URL field.
  5. Copy the Webhook value displayed in 3CX. Use the copy icon beside it if available.

3cx sms3CX SMS configuration. Copy the Webhook to IXICA; paste the IXICA API Key and Callback URL into the two input fields.

STEP 4Finish the webhook settings in IXICA

  1. Return to My Account in IXICA.
  2. Paste the webhook you copied from 3CX into API Webhook URL (SMS).
  3. Set Webhook Type to 3CX.
  4. Click Save in IXICA. Save or apply your changes in 3CX as well.

STEP 5Test messaging in both directions

Send a test SMS from 3CX to a mobile phone, then reply from the phone and confirm that the reply appears in 3CX. If you intend to use MMS, also test an image message in each direction using the numbers and clients you plan to use.

MMS scope: These screenshots document the configuration fields, not a separate MMS setup or a compatibility guarantee. Confirm MMS availability for your IXICA service and 3CX environment before relying on it.

Common questions

Which API key should I use?

Use the API Key on IXICA’s My Account page. This is the mysms API key. Paste it into API Key on the 3CX SMS configuration page.

Do I need the Secret Key?

No. Do not use the IXICA Secret Key for this 3CX configuration. It is not a substitute for the API Key.

Where do I enter the webhook from 3CX?

Paste the 3CX Webhook into IXICA’s API Webhook URL (SMS) field. Then select 3CX as the Webhook Type and save.

What goes in 3CX’s Provider URL field?

The Callback url from IXICA’s My Account page. Do not paste the 3CX Webhook into Provider URL.

What should Webhook Type be set to?

Select 3CX in IXICA.

Do I need to change Enable Caller ID Number Matching?

That option appears in the supplied 3CX screenshot, but no required setting was provided for this integration. This FAQ does not instruct you to enable it or change its digit count.

What should I check if a test message fails?

  • Start with the mapping table. Confirm that the API Key and Callback URL were copied from the same IXICA account you are configuring.
  • Check the 3CX fields: Enable SMS is selected; API Key contains the IXICA mysms API Key, not the Secret Key; Provider URL contains the IXICA Callback URL.
  • Check the IXICA fields: API Webhook URL (SMS) contains the webhook from the correct 3CX configuration, and Webhook Type is set to 3CX.
  • Re-copy complete values without leading or trailing spaces, then save changes in both systems and repeat the test.
  • If the issue persists, contact your administrator or IXICA support with the direction of the failed test, its time, and any error shown. Keep API keys, secrets and private webhook URLs out of public screenshots.

Final setup checklist

  • IXICA mysms API Key → 3CX API Key.
  • IXICA Callback URL → 3CX Provider URL.
  • 3CX Webhook → IXICA API Webhook URL (SMS).
  • IXICA Webhook Type → 3CX.
  • 3CX Enable SMS → selected.
  • Secret Key → not used.
  • Changes saved in both systems.
  • Outbound and inbound messaging tested; MMS tested separately if needed.
Based on the supplied IXICA and 3CX screenshots and integration instructions. Interface labels and navigation may differ in other versions. Screenshots are sanitized for instructional use; this guide does not establish version-specific or MMS compatibility requirements.

Share

What causes phantom calls?

SIP phones and analogue telephone adapters (ATAs) can receive unwanted calls when they are reachable from the internet and configured to accept direct IP-to-IP calls. Automated scanning systems can send unauthorised SIP call requests directly to the device, causing repeated ringing even though no legitimate call has been placed to your telephone number.

These calls may display unusual caller IDs such as 100, 700, 800, 900 or 1000 and can occupy lines or disrupt a connected telephone system.

Calls that reach your equipment directly in this way bypass IXICA’s network and are not delivered through your IXICA SIP trunk. The solution is to restrict which incoming call requests your equipment accepts.

Recommended settings for Grandstream ATAs

Log into the ATA’s web interface using administrator access and configure the following:

Settings section Setting Recommended value
Advanced Settings Disable Direct IP Call Yes
FXS Port / SIP Profile Validate Incoming SIP Message Yes
FXS Port / SIP Profile Check SIP User ID for Incoming INVITE Yes — optional; see below
FXS Port / SIP Profile Allow Incoming SIP Messages from SIP Proxy Only Yes

Apply the relevant settings to every active FXS port or SIP profile. Menu locations and wording vary by model and firmware. On models that display Enable Direct IP Call instead, set that option to No.

Important: The Check SIP User ID for Incoming INVITE option checks whether an incoming call is addressed to the configured SIP user ID. Certain configurations may use a different destination identifier for legitimate calls. If normal incoming calls stop working after enabling this option, change only this optional setting back to No, apply the change and test again.

Save and apply the changes, reboot the ATA if required, and test normal incoming and outgoing calls. Rebooting alone does not correct the configuration that allows phantom calls.

Additional protection and troubleshooting

Keep the ATA’s firmware current, use a strong administrator password, and have your IT provider review firewall rules to prevent unsolicited internet traffic from reaching the device. Any SIP access restrictions must continue to allow IXICA’s authorised service addresses.

An unusual caller ID alone does not prove that a call bypassed IXICA. If the problem continues, contact IXICA Support with the affected telephone number, example call dates and times, and the ATA model. These details help distinguish direct-to-device phantom calls from unwanted calls arriving through the telephone network.

Share

What is E911?

E911, or Enhanced 9-1-1, is an emergency calling service that provides emergency operators with information such as the caller’s telephone number and location, helping emergency responders reach the person requiring assistance. CRTC

Emergency calling over VoIP can operate differently from traditional telephone service. A call may first reach a specialized emergency call center, where an operator confirms the caller’s location and callback number before transferring the call to the appropriate local emergency response center. Callers should always be prepared to provide their actual location and telephone number. CRTC

A mandatory CRTC requirement

Access to 9-1-1 is a mandatory regulatory requirement for providers of local telephone and local VoIP services in Canada, including resellers. It is not an optional service feature. The applicable requirements depend on the service being provided, including whether Basic or Enhanced 9-1-1 is required. Telecom Decision CRTC 2005-21 establishes emergency service obligations for local VoIP providers, and Telecom Regulatory Policy CRTC 2016-12 makes applicable 9-1-1 obligations directly enforceable against resellers. CRTC

Providing service through a wholesale, resale or white-label arrangement does not remove these obligations. Providers remain responsible for compliance when delivering local telephone services under their own brand, even when another carrier supplies the underlying network or emergency calling service. crtc.gc.ca

Proper listings are required for every account type

IXICA requires wholesale, resale, white-label and business accounts using its local voice services to have properly provisioned emergency calling and accurate E911 listings. Business customers must meet IXICA’s service and telephone-system configuration requirements; customers reselling telephone services must also fulfill their applicable CRTC obligations.

Proper provisioning includes the following:

  • Accurate physical location information. Emergency listings must identify the location where the service is used—not simply the billing address, reseller’s office, or corporate headquarters. Include relevant suite, floor, or building details, and update the information whenever a location changes. CRTC
  • A registered emergency caller ID. Every telephone number that can be presented as the caller ID on a 9-1-1 call must have the appropriate emergency listing. A separate listing is not necessarily required for every incoming telephone number if the telephone system reliably substitutes a registered emergency caller ID associated with the correct location. 
  • Correct telephone-system configuration. IXICA requires emergency calls to present a valid, provisioned callback number—not an anonymous identity, an internal extension, or an unregistered number. Telephone systems must override ordinary caller ID settings where necessary. The CRTC’s business telephone-system best practices also recommend direct 9-1-1 dialling without a prefix, where technically feasible, and a callback number reachable from outside the system. 
  • Appropriate arrangements for multiple locations and remote users. Each location must be accounted for through suitable emergency caller IDs, location records, and routing. A shared business telephone number must not cause callers at different premises to be incorrectly identified as calling from a single head-office address.

Customer notification and ongoing responsibilities

Providers of nomadic or fixed/non-native local VoIP services must explain the limitations of their emergency calling service and obtain the customer’s express acknowledgement before service begins. Required disclosures include information at sign-up and installation, in marketing materials and service terms, and through an accessible website link. Simply activating emergency calling does not satisfy the complete regulatory requirement. CRTC

VoIP emergency calling can be affected by power failures, Internet outages, equipment problems, and incorrect location records. Business customers must ensure that employees and other potential users understand these limitations and know to provide their current location when calling 9-1-1. CRTC

E911 service through IXICA

IXICA provides emergency calling services and E911 provisioning support. Customers and resellers must supply accurate information, maintain their listings, and ensure that their telephone systems present the correct emergency caller ID. Listings must be completed before users are given access to the service. Contact IXICA support to arrange authorized testing rather than placing an uncoordinated test call to 9-1-1.

Contact IXICA to arrange E911 service, review your listings, or confirm the requirements for your wholesale, resale, white-label or business account.

Share