Code Monkey home page Code Monkey logo

freepbx-telnyx-sms's Introduction

freepbx-telnyx-sms

Scripts for sending and receiving SMS between FreePBX and Telnyx

Installation

Add the dialplan blocks to /etc/asterisk/extensions_custom.conf, adjusting them according to your environment:

  • extension length
  • catch-all e-mail to receive undeliverable texts
  • number normalization

Make a directory under (wwwroot) called sms and ensure it can be reached by HTTPS from outside.

Place the out.php and telnyx.php scripts into sms and adjust them according to your environment.

out.php:

  • add your Telnyx API token

telnyx.php:

  • note the instructions in the comments at the top of the file

Place the included php-sip library in a directory of that name under sms.

FreePBX configuration

Trunk

Set up a PJSIP trunk for 127.0.0.1 as follows:

PJSIP trunk

Set the Message Context:

PJSIP advanced tab

...

PJSIP message context field

Extensions

For each extension that will participate in SMS, set the Account Code to the normalized DID this extension will send and receive as, and set the Message Context:

Extension settings

...

Extension account code

...

Extension message context

Telnyx configuration

Set up a Messaging Profile (APIv1) in Telnyx:

Telnyx messaging profile

Specify the path to the telnyx.php script in Inbound Settings:

Messaging profile inbound settings

Copy the Profile Secret from the Outbound Settings section and use it as the token in your out.php script.

Save this profile and assign it to the DIDs you want to enable for SMS.

Usage

SMS from Telnyx will be delivered to the telnyx.php script specifying a DID. Any extension whose Account Code has that DID will receive the SMS.

SMS from extensions will be sent to Telnyx using the caller ID in the extension's Account Code field. You can only send from numbers that are on your account.

Extensions can text among themselves through the Asterisk dialplan without engaging Telnyx.

These scripts are normalized for US/CAN 10-digit DIDs and would need to be adjusted for international SMS or handling of short codes.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.