Skip to content

Calling

0perationPrivacy edited this page May 10, 2022 · 1 revision

📞 Calling

  • Click on the Setting cog icon ⚙️
  • Click on Profile Settings
    • Click Get Number
    • Click Save (this configures the backend with all the settings needed to place/receive calls)
  • Do this for EACH profile as it's not a global setting

Outbound - To place a call

  • Click the phone icon on the menu bar (top left), enter number manually or select from the contacts dropdown and click dial.
  • Inside an active message thread, click on the call button on the top right to place a call directly to that number

Inbound - To receive a call

  • Allow browser notification on the desktop
  • Inbound calls will not work on mobile phone browsers as they do not allow browser notifications (for that)

Troubleshooting

  • Delete the profile by clicking on the bin icon under Profile Settings. This removes the settings from the back end
  • Input the API keys again
  • Click on get number, select the same number again from the dropdown
  • Click save
  • Try calling again

Firefox:

If your Firefox settings are locked down and you are not receiving the browser prompt to use your microphone, do the following:

  • In the URL bar, type about:config
  • search for: permissions.default.microphone and change it to 0
    • (0=always ask (default), 1=allow, 2=block)
    • If it was set to 2, then calling will not work. Change it to 0 and allow on the prompt when you make the call the first time.

Note: Different browsers will give you different results based on your unique settings and environment. I've played around with FF, Chrome, Safari on desktop and FF, Vanadium, Safari on mobile (iOS and GrapheneOS). In some scenraios it was tough to get calling working at all. Those issues are related to the SIP protocol implementation on telnyx and twilio, mic access, browser settings and other issues. Still in testing phase.


🛑 Disregard everything below this line, I have automated all the below. It's just for reference if you want to see what it's doing underneath the hood and verify on the provider dashboard side.


(These settings are NOT global. They are specific to the profile you are under.)

For the steps below, replace DOMAIN.com with your unique domain

Telnyx

Telnyx Settings

  • Log into your Telnyx dashboard
  • SIP Connections > Add SIP Connection
  • Enter any name like VOIP-Profile-1
  • Click: Create SIP Connection
  • Click on the "Credentials" tab and edit the provided username and password to something unique. (Note it down, you will need this in the app later)
  • Expand Events
    • Webhook URL: https://DOMAIN.com/api/call/status/telnyx
    • Webhook API version: API v2
  • Expand the Outbound section and from the dropdown, select the Default SIP Profile
    • Click Save
  • Open the newly created profile by clicking the "Basic Options" icon on the right of the row
    • Switch to the INBOUND tab and select
      • Number Format (DNIS): +E.164
      • Number Format (ANI): +E/164 / National
    • Switch to the OUTBOUND tab and select
      • Enter the phone number you want to associate this with
      • Outbound Voice Profile: Default SIP Profile

Settings to enable inbount calls

  • Go to Call Control
  • Click on the tab TeXML Applications
  • Click on Create You First Application
    • App Name: Profile-1

    • Voice Method: Post

    • Send a webhook to the URL: https://DOMAIN.com/api/call/telnyx

    • Status Callback Method: POST

    • Send information about call progress events to: https://DOMAIN.com/api/call/status/telnyx

    • Click Save

    • Go back to Numbers

    • In the list of numbers, under your number, click on the dropdown box under the column Connection or App

    • Select the App you just created

Twilio

Twilio Settings

  • Log into your Twilio dashboard
  • Phone Numbers > Manage > TwiML apps
  • Create New TwiML app (Click the large plus + icon)
    • Name it anything like APP-Profile-1
    • Request URL: https://DOMAIN.com/api/call/make-call
    • Keep it on HTTP POST
    • Click on "show additional options"
    • STATUS CALLBACK URL: https://DOMAIN.com/api/call/status
    • Enable caller name lookup only if you want Twilio to resolve inbound caller ID (1c charge)
    • Press Save
    • Click back on the newly created TwiML name and note down the SID on a separate notepade (you will need this later for the TwiML SID)

Set an API Key

  • Navigate to: https://www.twilio.com/console/project/api-keys
  • Click on Create API Key
    • Pick any name
    • Key type: Standard
    • Click Create API Key
    • Make a note of the SID and Secret (save it in a notepad temporarily, you will need this later)
    • Click DONE