diff --git a/public/website/docs.html b/public/website/docs.html index 7a81444..326c269 100644 --- a/public/website/docs.html +++ b/public/website/docs.html @@ -13,6 +13,8 @@ href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/line-numbers/prism-line-numbers.min.css" /> + @@ -85,6 +87,9 @@
- You should receive a phone call to your real phone number delivered through the SIP Trunk connected - to Chime. Pick up the call and listen to the message. You should hear what you have entered in the - TwiML instructions above. -
- -- - Note: Instead of running this code, you could also re-run the Verification Flow as show in the - previous tutorial. - You should receive the verification code on your real phone number delivered through Chime. - -
- ++ You should receive a phone call to your real phone number delivered through the SIP Trunk connected + to Chime. Pick up the call and listen to the message. You should hear what you have entered in the + TwiML instructions above. +
-+ + Note: Instead of running this code, you could also re-run the Verification Flow as show in the + previous tutorial. + You should receive the verification code on your real phone number delivered through Chime. + +
+- In this step you'll test a call to an international number (with a prefix different from your own - number), which should be routed to your local softphone. -
+
- In order to complete this step, simply update the to
parameter to a
- phone number which
- does not match the international prefix of your own number. This will result in the SIP
- trunk from the
- previous tutorial
- being selected and
- therefore the call should be routed to your local softphone.
-
+ In this step you'll test a call to an international number (with a prefix different from your own + number), which should be routed to your local softphone. +
-
- Go ahead and run the code again from the previous
- step. Remember to replace the to
parameter and keep the rest the
- same.
-
+ In order to complete this step, simply update the to
parameter to a
+ phone number which
+ does not match the international prefix of your own number. This will result in the SIP
+ trunk from the
+ previous tutorial
+ being selected and
+ therefore the call should be routed to your local softphone.
+
- You should receive a phone call to your real phone number delivered through the SIP Trunk connected - to your local softphone. Pick up the call and listen to the message. You should hear what you have - entered in the - TwiML instructions from the previous step. -
-
+ Go ahead and run the code again from the previous
+ step. Remember to replace the to
parameter and keep the rest the
+ same.
+
+ You should receive a phone call to your real phone number delivered through the SIP Trunk connected + to your local softphone. Pick up the call and listen to the message. You should hear what you have + entered in the + TwiML instructions from the previous step. +
+- Congratulations! You have successfully completed the tutorial and connected Somleng to Chime. -
+- What we learned: -
++ Congratulations! You have successfully completed the tutorial and connected Somleng to Chime. +
-+ What we learned: +
-- So far, you've learned how to - build your own phone verification service, and optionally - connected it to - Amazon Chime. You have essentially built your own branded, Communications Platform as a Service - or CPaaS. -
+- In this tutorial you'll learn how to invite your own customers to use your new CPaaS. Your - customers will - be able to - integrate phone verifications and programmable voice and messaging into their own - applications, while - you remain in complete control over their access. -
++ So far, you've learned how to + build your own phone verification service, and optionally + connected it to + Amazon Chime. You have essentially built your own branded, Communications Platform as a Service + or CPaaS. +
-+ In this tutorial you'll learn how to invite your own customers to use your new CPaaS. Your + customers will + be able to + integrate phone verifications and programmable voice and messaging into their own + applications, while + you remain in complete control over their access. +
-- Below is an overview of the steps that we'll cover in this tutorial: -
++ Below is an overview of the steps that we'll cover in this tutorial: +
-- In this step, you'll update your carrier settings and add a logo. In this tutorial we're using an - imaginary company called Rocket Communications. -
+- Perform the following steps: -
++ In this step, you'll update your carrier settings and add a logo. In this tutorial we're using an + imaginary company called Rocket Communications. +
-+ Perform the following steps: +
- -- In this step you create a new account for your customer. There are two types of accounts on Somleng - namely: Carrier Managed and Customer Managed. - As the name suggests, Customer Managed accounts are managed by the carrier's - customer, who will get access to the Dashboard and can manage their own Account SID and Auth Token. - Here we'll create a customer account for our imaginary customer Elvie Padberg from - Klocko - Block, but feel free to use your own customer details. -
+- Perform the following steps: -
++ In this step you create a new account for your customer. There are two types of accounts on Somleng + namely: Carrier Managed and Customer Managed. + As the name suggests, Customer Managed accounts are managed by the carrier's + customer, who will get access to the Dashboard and can manage their own Account SID and Auth Token. + Here we'll create a customer account for our imaginary customer Elvie Padberg from + Klocko + Block, but feel free to use your own customer details. +
-+ Perform the following steps: +
-your-email+customer-email@your-domain.tld
. For example, if your
- real email address is bob@example.com and your customer's name is Elive
- Padberg, enter bob+elvie.padberg@example.com
.
-
- your-email+customer-email@your-domain.tld
. For example, if your
+ real email address is bob@example.com and your customer's name is Elive
+ Padberg, enter bob+elvie.padberg@example.com
.
+
+ - In this step, you'll log in to the Dashboard as if you are the customer. To do this you'll - first need to log out of your carrier account, then click the customer invitation link from your - email. -
+- - Note: In a real-world scenario you would never log in to the customer's account. The goal of this - step is to understand the customer's experience. - -
++ In this step, you'll log in to the Dashboard as if you are the customer. To do this you'll + first need to log out of your carrier account, then click the customer invitation link from your + email. +
-- Perform the following steps: -
++ + Note: In a real-world scenario you would never log in to the customer's account. The goal of this + step is to understand the customer's experience. + +
-+ Perform the following steps: +
-- You should now be viewing the dashboard from the customer's perspective. -
++ You should now be viewing the dashboard from the customer's perspective. +
-- In this step, feel free to click around and explore the Dashboard from the customer's perspective. -
+- Notice the following: -
++ In this step, feel free to click around and explore the Dashboard from the customer's perspective. +
-+ Notice the following: +
- - -- In this step, you'll explore using the Verify API from the customer's perspective. -
+- Perform the following steps: -
++ In this step, you'll explore using the Verify API from the customer's perspective. +
-+ Perform the following steps: +
-- Make sure your softphone is still registered with the SIP trunk that you created in the - first tutorial. - -
+- Then, run the code below substituting the following: -
++ Make sure your softphone is still registered with the SIP trunk that you created in the + first tutorial. + +
-accountSid
and authToken
from the
- values shown on the Account Settings page.
- verificationServiceSid
from the verification service you just
- created.
- + Then, run the code below substituting the following: +
+ +accountSid
and authToken
from the
+ values shown on the Account Settings page.
+ verificationServiceSid
from the verification service you just
+ created.
+ // To run this code, download the Somleng.js helper library from:
+ // To run this code, download the Somleng.js helper library from:
// https://www.somleng.org/docs/twilio_api/#helper-libraries
// Then, find your Account SID and Auth Token from the Somleng console
@@ -1714,116 +1718,331 @@
.create({to: to, channel: channel})
.then(verification => console.log(verification.sid));
-
- You can now view the verification from the customer's perspective from the Verify
- menu on the Dashboard.
-
+
+ You can now view the verification from the customer's perspective from the Verify
+ menu on the Dashboard.
+
-
- If you completed the
- first tutorial,
- and your softphone is still connected, then you should receive the verification call.
-
+
+ If you completed the
+ first tutorial,
+ and your softphone is still connected, then you should receive the verification call.
+
+
+
+ Note: In this step we demonstrated that your customers can use the Verify API, which is
+ connected to your SIP infrastructure. In a real-world scenario you would connect your SIP trunk to
+ a VoIP Gateway, Amazon Chime or your own SIP Infrastructure.
+
+
+
+
+
+
+
+ 6. Control API Access for your customer.
+
+
+
+ To finish up this tutorial, we'll show you how to control your customer's access from the Carrier
+ Dashboard.
+ To do this you'll first need to log out of your customer's account, and login again to your
+ carrier account.
+
+
+
+ Perform the following steps:
+
+
+
+ -
+ Click on your customer's avatar in the top right corner and select
+ Logout from the dropdown.
+
+
+ -
+ Log in to your carrier account.
+
+
+ -
+ Under the Accounts menu, click the SID of the Account belonging to your
+ customer.
+
+
+ - Click the button.
+
+ -
+ Notice that most of the fields are disabled, but you can toggle the Enabled
+ switch.
+
+
+ -
+ Press Update Account to save your changes.
+
+
+
+
+ Note: Disabling the account, will prevent your customer from accessing the API, but your
+ customer will still have access to the Dashboard in order for them to view their data.
+
+
+
+
+
+
+ 🎉 Congratulations!
+
+
+ Congratulations! You have successfully completed this tutorial and invited your first customer to
+ use your CPaaS.
+
+
+
+ What we learned:
+
+
+
+ -
+ Customer managed accounts (as opposed to Carrier managed accounts) are used by your customers.
+ When you create a customer managed account,
+ you specify an owner's name and email address. The owner will then receive an invitation email
+ and
+ can then sign-in to the dashboard and
+ manage their own Account.
+
+
+ -
+ When your customer signs in to the Dashboard, he will see your company's branding and logo both
+ on
+ the Dashboard and in the API Docs.
+
+
+ -
+ The customer can use the API and helper libraries in his own applications.
+
+
+ -
+ The customer can only see the data (phone calls, messages, verifications etc) that belongs to
+ him.
+
+
+ -
+ You can control the customer's API access from the carrier dashboard.
+
+
+
+
- Note: In this step we demonstrated that your customers can use the Verify API, which is - connected to your SIP infrastructure. In a real-world scenario you would connect your SIP trunk to - a VoIP Gateway, Amazon Chime or your own SIP Infrastructure. + In this tutorial you'll learn how connect Somleng with Retell AI to power your + call + operations with + Voice AI without Twilio. In order to handle call terminations, we'll be using Amazon + Chime, + but + you can replace Chime with your own voice termination provider or infrastructure.
- - - -- To finish up this tutorial, we'll show you how to control your customer's access from the Carrier - Dashboard. - To do this you'll first need to log out of your customer's account, and login again to your - carrier account. -
+- Perform the following steps: + Below is an overview of the steps that we'll cover in this tutorial:
-retell_server.js
+ application.
+ retell_server.js
application
+ npm install
+ retell_server.js
replacing RETELL_AI_API_KEY
and
+ RETELL_AI_AGENT_ID
with the values from Step 1. After running this command you should see the server running on
+ localhost:3000.
+ node retell_server.js --api_key RETELL_AI_API_KEY --agent_id RETELL_AI_AGENT_ID --port 3000
+ ngrok http 3000
+ - Note: Disabling the account, will prevent your customer from accessing the API, but your - customer will still have access to the Dashboard in order for them to view their data. + Ensure you have completed the Verify + and Chime tutorials. You will need + to have configured a Somleng customer account, a SIP trunk which is connected to Chime, and a phone + number to continue.
- -- Congratulations! You have successfully completed this tutorial and invited your first customer to - use your CPaaS. -
+
+ In this step we'll create an outbound call to your number. After you answer the call, Somleng will
+ request TwiML instructions from the ngrok URL obtained from
+ Step 2. Ngrok will forward the request to the retell_server.js
application which
+ will connect your call to Retell AI.
+
+ Run the following code: +
-- What we learned: -
+// To run this code, download the Somleng.js helper library from:
+// https://www.somleng.org/docs/twilio_api/#helper-libraries
-
- -
- Customer managed accounts (as opposed to Carrier managed accounts) are used by your customers.
- When you create a customer managed account,
- you specify an owner's name and email address. The owner will then receive an invitation email and
- can then sign-in to the dashboard and
- manage their own Account.
-
+// Then, find your Account SID and Auth Token from the Somleng console
+// and set the following environment variables.
+// const accountSid = process.env.SOMLENG_ACCOUNT_SID;
+// const authToken = process.env.SOMLENG_AUTH_TOKEN;
- -
- When your customer signs in to the Dashboard, he will see your company's branding and logo both on
- the Dashboard and in the API Docs.
-
+const accountSid = "change-me"; // Replace with the accountSid obtained when completing the Verify tutorial.
+const authToken = "change-me"; // Replace with the authToken obtained when completing the Verify tutorial.
+const to = "change-me"; // A phone number which will receive the call.
+const from = "change-me"; // This should exactly match the number obtained from the Chime tutorial.
+const url = "change-me"; // Replace with the ngrok URL obtained from step 2.
- -
- The customer can use the API and helper libraries in his own applications.
-
+const client = require('somleng')(accountSid, authToken);
- -
- The customer can only see the data (phone calls, messages, verifications etc) that belongs to him.
-
+client.calls
+ .create({ to: to, from: from, url: `${url}/connect` })
+ .then(call => console.log(call.sid));
+
+ + Congratulations! You have successfully completed the tutorial and connected Somleng with Retell AI. +
+ ++ What we learned: +
+ +
You must sign in to the dashboard via your subdomain to use Somleng.
The sign in URL is https://your-subdomain.app.somleng.org/users/sign_in
.
- If you have setup a custom domain
+ If you have setup a custom
+ domain
all
users may access
the dashboard through your custom domain as well.
@@ -1870,18 +2090,21 @@
Here you will find various settings for your carrier. Under General, you'll see your company's name, subdomain, website, country and logo. - Under Developer, you'll see your Carrier API + Under Developer, you'll see your Carrier + API Key, as well as your webhook URL and signing secret for verifying webhooks . - If you've setup a custom domain this + If you've setup a custom domain + this will appear under the Custom Domain section.
To update your carrier settings:
Typically a carrier would create an account for each of their customers. - BYOC entities and independent entities on the other hand might create an account for each customer + BYOC entities and independent entities on the other hand might create an account for each + customer or project or just create one global account for their own usage.
@@ -1936,9 +2160,11 @@- Once the phone number has been created, you can configure it. To configure a phone number via the + Once the phone number has been created, you can configure it. To configure a phone number via + the Dashboard:
private
, public
, or disabled
defaults
+ One of either private
, public
, or disabled
+ defaults
to public
for phone numbers with a price or private
for phone
numbers without one.
true
@@ -2139,7 +2370,8 @@ CA
43.6008
-79.5053
- When you create a SIP Trunk you first choose the authentication mode. There are two authentication + When you create a SIP Trunk you first choose the authentication mode. There are two + authentication modes available described below:
@@ -2271,7 +2508,8 @@
- When you configure a SIP trunk for outbound dialing via IP address + When you configure a SIP trunk for outbound dialing via IP + address authentication the following rules apply:
- Text To Speech (TTS), also known as speech synthesis, is a process in which text is converted into + Text To Speech (TTS), also known as speech synthesis, is a process in which text is converted + into a human-sounding voice.
@@ -2459,14 +2701,15 @@
<Response>
- <Say>Hello world!</Say>
+<Say>Hello world!</Say>
</Response>
@@ -2481,18 +2724,21 @@
<Response>
- <Say language="en-US" voice="Polly.Joanna">Hello. I am Joanna and I speak American English!</Say>
+<Say language="en-US" voice="Polly.Joanna">Hello. I am Joanna and I speak American English!</Say>
</Response>
- The language attribute of <Say>
also allows you to override the default voice that
+ The language attribute of <Say>
also allows you to override the default voice
+ that
is
configured for the Somleng Account.
- For example, if the account's default TTS voice is Polly.Joanna (Female, en-US)
, but wish
- to use German for a specific call, set the language
attribute to de-DE
in
+ For example, if the account's default TTS voice is Polly.Joanna (Female, en-US)
, but
+ wish
+ to use German for a specific call, set the language
attribute to de-DE
+ in
your
TwiML.
This will choose another voice from the Polly provider which supports German.
@@ -2500,7 +2746,7 @@
<Response>
- <Say language="de-DE">Hallo. Ich spreche Deutsch!</Say>
+<Say language="de-DE">Hallo. Ich spreche Deutsch!</Say>
</Response>
@@ -2516,7 +2762,8 @@ You can also use Premium voices which are generated using the latest technology and innovation in synthesized speech, - providing the most human-like, expressive and natural-sounding text-to-speech voices possible, with + providing the most human-like, expressive and natural-sounding text-to-speech voices possible, + with higher quality than Standard voices. The voices in this tier are currently provided by Amazon (Amazon Polly Neural).
@@ -2528,7 +2775,7 @@
<Response>
- <Say voice="Polly.Danielle-Neural">Hello. I am Danielle!</Say>
+<Say voice="Polly.Danielle-Neural">Hello. I am Danielle!</Say>
</Response>
@@ -2555,10 +2802,12 @@ For example let's assume your GSM Gateway has 4 available channels. - Now, let's assume you insert 2 SIM cards belong to a carrier called "Smart", 1 SIM card belonging + Now, let's assume you insert 2 SIM cards belong to a carrier called "Smart", 1 SIM card + belonging to a carrier called "Metfone", and another SIM card belonging to a carrier called "Cellcard".
- Channel groups allow you to specify which messages will be routed through the "Smart" SIM cards, + Channel groups allow you to specify which messages will be routed through the "Smart" SIM + cards, which messages will be routed through the "Metfone" SIM cards and which messages will be routed through the "Cellcard" SIM cards. @@ -2638,12 +2890,14 @@
# somleng_proxy.tf
-module "somleng_proxy_dashboard" {
+ module "somleng_proxy_dashboard" {
source = "github.com/somleng/terraform-aws-cloudfront-reverse-proxy"
host = "your-domain.example.com" # Replace this with your custom domain
origin = "your-domain.app.somleng.org" # Replace this with your Somleng subdomain
origin_custom_headers = [
- {
- "name" = "X-Forwarded-Host",
- "value" = "your-domain.example.com" # Replace with your custom domain
- }
+ {
+ "name" = "X-Forwarded-Host",
+ "value" = "your-domain.example.com" # Replace with your custom domain
+ }
]
allowed_origin_request_headers = [
- "X-CSRF-Token",
- "X-Requested-With"
+ "X-CSRF-Token",
+ "X-Requested-With"
]
zone_id = aws_route53_zone.example_com.zone_id # Optional. Leave blank if not using route53.
certificate_arn = "existing-certificate-arn" # Optional. Leave blank to create a new certificate.
-}
+ }
-# Optionally configure a custom API endpoint
-module "somleng_proxy_api" {
+ # Optionally configure a custom API endpoint
+ module "somleng_proxy_api" {
source = "github.com/somleng/terraform-aws-cloudfront-reverse-proxy"
host = "your-api-domain.example.com" # Replace this with your custom API domain
@@ -2889,12 +3151,13 @@
zone_id = aws_route53_zone.example_com.zone_id # Optional. Leave blank if not using route53.
certificate_arn = "existing-certificate-arn" # Optional. Leave blank to create a new certificate.
-}
+ }
The terraform configuration above will configure two AWS cloudfront distributions (one for the dashboard and one for the API) - and optionally create SSL certificates managed by AWS Certificate Manager. If you're using route53 + and optionally create SSL certificates managed by AWS Certificate Manager. If you're using + route53 to manage your domain, the module will also create records pointing your custom domain to the AWS cloudfront @@ -2903,7 +3166,8 @@
- Note: The second module, somleng_proxy_api
is optional and only
+ Note: The second module, somleng_proxy_api
is optional and
+ only
required
if you want to configure a custom API endpoint.
@@ -2980,7 +3244,8 @@
- Repeat the exact same process above to create a distribution for your custom API + Repeat the exact same process above to create a distribution for your custom + API domain, with the following modifications:
Skip this step if you prefer to use AWS Cloudfront (recommended) instead. + class="link">AWS Cloudfront + (recommended) instead.
@@ -3195,30 +3462,30 @@
server {
- listen 443;
- server_name dashboard.example.com; # replace this with your dashboard domain
+ listen 443;
+ server_name dashboard.example.com; # replace this with your dashboard domain
- ssl_certificate /path/to/your/fullchain.pem;
- ssl_certificate_key /path/to/your/privatekey.pem;
+ ssl_certificate /path/to/your/fullchain.pem;
+ ssl_certificate_key /path/to/your/privatekey.pem;
- location / {
- proxy_set_header X-Forwarded-Host dashboard.example.com; # replace this with your dashboard domain
- proxy_pass "https://your-subdomain.app.somleng.org:443";
- }
+ location / {
+ proxy_set_header X-Forwarded-Host dashboard.example.com; # replace this with your dashboard domain
+ proxy_pass "https://your-subdomain.app.somleng.org:443";
+ }
}
# Optionally configure a custom API endpoint
# Note: DO NOT set X-Forwarded-Host for your custom API endpoint
server {
- listen 443;
- server_name api.example.com; # replace this with your api domain
+ listen 443;
+ server_name api.example.com; # replace this with your api domain
- ssl_certificate /path/to/your/fullchain.pem;
- ssl_certificate_key /path/to/your/privatekey.pem;
+ ssl_certificate /path/to/your/fullchain.pem;
+ ssl_certificate_key /path/to/your/privatekey.pem;
- location / {
- proxy_pass "https://api.somleng.org:443";
- }
+ location / {
+ proxy_pass "https://api.somleng.org:443";
+ }
}
@@ -3256,7 +3523,8 @@ - After configuring the custom dashboard host, customer transactional emails (such as forgot + After configuring the custom dashboard host, customer transactional emails (such as + forgot password, account invitations, etc) will link to your-domain.example.com. Carrier user transaction emails are still linked to your-subdomain.app.somleng.org. @@ -3284,7 +3553,8 @@
- Note: The API is always available at api.somleng.org regardless of whether you set + Note: The API is always available at api.somleng.org regardless of whether you + set a custom API host or not.
@@ -3303,7 +3573,8 @@- The independent entity can also use Somleng to offer 3rd party access to the PSTN in their country + The independent entity can also use Somleng to offer 3rd party access to the PSTN in their + country via their VoIP gateway.
@@ -3340,7 +3612,8 @@- Create a new Account to obtain your Account SID and + Create a new Account to obtain your Account SID + and Auth Token for outbound dialing.
@@ -3489,7 +3766,8 @@- Create a new Phone Number and configure it for inbound + Create a new Phone Number and configure it for + inbound dialing.
@@ -3545,7 +3823,8 @@After you have completed the previous steps, you can now configure you VoIP gateway - to connect to Somleng. Below is the configuration instructions for the following VoIP gateways: + to connect to Somleng. Below is the configuration instructions for the following VoIP + gateways:
- The next step is to configure the GoIP gateway to register with Somleng. There are 3 different + The next step is to configure the GoIP gateway to register with Somleng. There are 3 + different modes of configuration depending on your circumstances. Please refer to the - GoIP User + GoIP + User Manual for more information about the different configuration modes and the channel selection algorithms. @@ -3667,7 +3948,8 @@
- Note: If you choose Config by Line or Config by Group you'll + Note: If you choose Config by Line or Config by Group + you'll need to repeat the instructions above for each channel or group.
@@ -3864,9 +4156,11 @@- Let's say you have a GoIP-8 with 3 groups of SIM Cards from 3 different mobile operators. Assume + Let's say you have a GoIP-8 with 3 groups of SIM Cards from 3 different mobile operators. + Assume you have 4 SIM cards from Telco A, - 3 SIM cards from Telco B, and 1 SIM Card from Telco C and you want to route calls from Telco A + 3 SIM cards from Telco B, and 1 SIM Card from Telco C and you want to route calls from Telco + A to group 1, Telco B to group 2 and Telco C to group 3 according to the table below. @@ -3917,22 +4211,27 @@
Configure 3 separate SIP Trunks (one for each Telco) as per the instructions in - Step 1 of + Step + 1 + of the Client Configuration Guide.
For each SIP trunk specify:
- Configure Basic VoIP configuration for each group created above, as per the instructions in + Configure Basic VoIP configuration for each group created above, as per the instructions + in Step 2 of the GoIP Configuration Guide. @@ -3963,7 +4263,8 @@
- For each channel, specify a Dial Plan to remove the routing prefix setup in + For each channel, specify a Dial Plan to remove the routing prefix + setup + in the previous step. This removes the prefix before calling out.
@@ -4059,7 +4363,8 @@- independent entities connect to Somleng via Somleng's SMS Gateway App installed on-premise, or on + independent entities connect to Somleng via Somleng's SMS Gateway App installed on-premise, or + on the cloud infrastructure managed by the independent entity. @@ -4088,11 +4393,14 @@
- After you create your SMS Gateway you'll see your Device Token on the next screen. You'll + After you create your SMS Gateway you'll see your Device Token on the next screen. + You'll need this later in Step 4 @@ -4206,7 +4517,8 @@
- Create a new Phone Number and configure it for inbound + Create a new Phone Number and configure it for + inbound messaging.
@@ -4243,7 +4555,8 @@- After you have configured your phone number you can review the configuration on the next screen: + After you have configured your phone number you can review the configuration on the next + screen:
@@ -4269,23 +4583,27 @@The - Somleng SMS Gateway + Somleng SMS + Gateway App . is as a gateway between Somleng and your SMS infrastructure.
- Detailed instructions on how to install, configure and deploy the app can be found on the Somleng + Detailed instructions on how to install, configure and deploy the app can be found on the + Somleng SMS Gateway - Github repository . + Github + repository + . You'll need the Device Token from Step 1. to connect the SMS Gateway App to Somleng.
- Once the SMS Gateway app is configured and successfully connected to Somleng, you should see the + Once the SMS Gateway app is configured and successfully connected to Somleng, you should see + the connection status show Connected the Dashboard.
@@ -4303,10 +4621,12 @@- If you need more control over which channels outbound SMS are delivered though, you can configure + If you need more control over which channels outbound SMS are delivered though, you can + configure one or more Channel Groups.
@@ -4372,7 +4693,8 @@You should be now able to log in to the Somleng dashboard at http://my-carrier.app.lvh.me:3000 with the + target="_blank">http://my-carrier.app.lvh.me:3000 with + the credentials from the output of the previous step.
- Note: You'll need to setup two factor authentication (2FA) after the first time you sign in to the + Note: You'll need to setup two factor authentication (2FA) after the first time you sign in to + the Dashboard. You can use the - Authenticator browser extension + Authenticator browser + extension + if you don't already have another 2FA application.
@@ -4524,17 +4850,21 @@- Symmetric RTP means that the IP address and port pair used by an outbound RTP flow is reused for the + Symmetric RTP means that the IP address and port pair used by an outbound RTP flow is reused for + the inbound flow. - The IP address and port are learned when the initial RTP flow is received on your device. The flow's - source address and port are latched onto and used as the destination for the RTP sourced by the other + The IP address and port are learned when the initial RTP flow is received on your device. The + flow's + source address and port are latched onto and used as the destination for the RTP sourced by the + other side of the call. The IP address and port in the c line and m line respectively in the SDP message are ignored.
@@ -4551,19 +4881,21 @@