https://wiki.soprani.ca/TwilioSetup

URL inviato:
https://twilio.sgx.soprani.ca/Reindirizzato
Report terminato:
LinkTesto
https://liberapay.com/singpolyma/on Liberapay
https://www.patreon.com/singpolymaon Patreon
https://jmp.chatJMP
https://github.com/pesvut/sgx-twiliohttps://github.com/pesvut/sgx-twilio
https://console.twilio.comhttps://console.twilio.com
http://moinmo.in/MoinMoin Powered
http://moinmo.in/PythonPython Powered
http://moinmo.in/GPLGPL licensed
http://validator.w3.org/check?uri=refererValid HTML 4.01

Variabili JavaScript · 49 trovate

NomeTipo
onbeforetoggleobject
documentPictureInPictureobject
onscrollendobject
searchChangefunction
searchSetDisabledfunction
searchFocusfunction
searchBlurfunction
actionsMenuInitfunction
addLoadEventfunction
can_use_gui_editorfunction

Messaggi di log della console · 0 trovati

HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head>
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<meta name="edit_on_doubleclick" content="/">
<meta name="robots" content="index,nofollow">

<title>TwilioSetup - Soprani.ca Wiki</title>
<script type="text/javascript" src="/moin_static199/common/js/common.js"></script>

<script type="text/javascript">
<!--
var search_hint = "Search";
//-->
</script>


<link rel="stylesheet" type="text/css" charset="utf-8" media="all" href="/moin_static199/modern/css/common.css">
<link rel="stylesheet" type="text/css" charset="utf-8" media="screen" href="/moin_static199/modern/css/screen.css">
<link rel="stylesheet" type="text/css" charset="utf-8" media="print" href="/moin_static199/modern/css/print.css">
<link rel="stylesheet" type="text/css" charset="utf-8" media="projection" href="/moin_static199/modern/css/projection.css">

<!-- css only for MS IE6/IE7 browsers -->
<!--[if lt IE 8]>
   <link rel="stylesheet" type="text/css" charset="utf-8" media="all" href="/moin_static199/modern/css/msie.css">
<![endif]-->


<link rel="alternate" title="Soprani.ca Wiki: TwilioSetup" href="/TwilioSetup?diffs=1&amp;show_att=1&amp;action=rss_rc&amp;unique=0&amp;page=TwilioSetup&amp;ddiffs=1" type="application/rss+xml">
<link rel="alternate" type="application/wiki" title="Edit" href="/TwilioSetup?action=edit">

<link rel="Start" href="/FrontPage">
<link rel="Alternate" title="Wiki Markup" href="/TwilioSetup?action=raw">
<link rel="Alternate" media="print" title="Print View" href="/TwilioSetup?action=print">
<link rel="Search" href="/FindPage">
<link rel="Index" href="/TitleIndex">
<link rel="Glossary" href="/WordIndex">
<link rel="Help" href="/HelpOnFormatting">
</head>

<body lang="en" dir="ltr">

<div id="header">
<div id="logo"><a href="/FrontPage"><img src="https://soprani.ca/sopranica.png" alt="Logo"></a></div>

<form id="searchform" method="get" action="/TwilioSetup">
<div>
<input type="hidden" name="action" value="fullsearch">
<input type="hidden" name="context" value="180">
<label for="searchinput" style="display: none;">Search:</label>
<input id="searchinput" type="text" name="value" value="" size="20" onfocus="searchFocus(this)" onblur="searchBlur(this)" onkeyup="searchChange(this)" onchange="searchChange(this)" alt="Search" class="disabled">
<input id="titlesearch" name="titlesearch" type="submit" value="Titles" alt="Search Titles" disabled="">
<input id="fullsearch" name="fullsearch" type="submit" value="Text" alt="Search Full Text" disabled="">
</div>
</form>
<script type="text/javascript">
<!--// Initialize search form
var f = document.getElementById('searchform');
f.getElementsByTagName('label')[0].style.display = 'none';
var e = document.getElementById('searchinput');
searchChange(e);
searchBlur(e);
//-->
</script>

<ul id="username"><li><a href="/TwilioSetup?action=login" id="login" rel="nofollow">Login</a></li></ul>
<div id="locationline">


<ul id="pagelocation">
<li><a href="/TwilioSetup">TwilioSetup</a></li>
</ul>

</div>

<ul id="pagetrail">
<li><a href="/TwilioSetup">TwilioSetup</a></li>
</ul>

<ul id="navibar">
<li class="wikilink"><a href="/RecentChanges">RecentChanges</a></li><li class="wikilink"><a href="/FindPage">FindPage</a></li><li class="wikilink"><a href="/HelpContents">HelpContents</a></li><li class="current"><a href="/TwilioSetup">TwilioSetup</a></li>
</ul>

<div id="pageline"><hr style="display:none;"></div>

<ul class="editbar"><li><a href="/TwilioSetup?action=edit&amp;editor=text" name="texteditlink" rel="nofollow">Edit</a></li><li class="toggleCommentsButton" style="display:none;"><a href="#" class="nbcomment" onclick="toggleComments();return false;">Comments</a></li><li><a class="nbinfo" href="/TwilioSetup?action=info" rel="nofollow">Info</a></li><li><a class="nbattachments" href="/TwilioSetup?action=AttachFile" rel="nofollow">Attachments</a></li><li>
<form class="actionsmenu" method="GET" action="/TwilioSetup">
<div>
    
    <select name="action" onchange="if ((this.selectedIndex != 0) &amp;&amp;
                      (this.options[this.selectedIndex].disabled == false)) {
                this.form.submit();
            }
            this.selectedIndex = 0;">
        <option value="show">More Actions:</option><option value="raw">Raw Text</option>
<option value="print">Print View</option>
<option value="RenderAsDocbook">Render as Docbook</option>
<option value="refresh">Delete Cache</option>
<option value="show" disabled="" class="disabled">------------------------</option>
<option value="SpellCheck">Check Spelling</option>
<option value="LikePages">Like Pages</option>
<option value="LocalSiteMap">Local Site Map</option>
<option value="show" disabled="" class="disabled">------------------------</option>
<option value="RenamePage" disabled="" class="disabled">Rename Page</option>
<option value="DeletePage" disabled="" class="disabled">Delete Page</option>
<option value="show" disabled="" class="disabled">------------------------</option>
<option value="show" disabled="" class="disabled">Subscribe User</option>
<option value="show" disabled="" class="disabled">------------------------</option>
<option value="show" disabled="" class="disabled">Remove Spam</option>
<option value="show" disabled="" class="disabled">Revert to this revision</option>
<option value="PackagePages">Package Pages</option>
<option value="SyncPages">Sync Pages</option>
<option value="show" disabled="" class="disabled">------------------------</option>
<option value="Load">Load</option>
<option value="Save">Save</option>
<option value="SlideShow">SlideShow</option>
    </select>
    
    
</div>
<script type="text/javascript">
<!--// Init menu
actionsMenuInit('More Actions:');
//-->
</script>
</form>
</li></ul>

</div>

<div id="page" lang="en" dir="ltr">
<div dir="ltr" id="content" lang="en"><span class="anchor" id="top"></span>
<span class="anchor" id="line-1"></span><span class="anchor" id="line-2"></span><span class="anchor" id="line-3"></span><p class="line862">Providing the below SGX services is not free; if you find them useful please consider supporting infrastructure costs <a class="https" href="https://liberapay.com/singpolyma/">on Liberapay</a>, <a class="https" href="https://www.patreon.com/singpolyma">on Patreon</a>, or by becoming a paying customer of <a class="https" href="https://jmp.chat">JMP</a>. <span class="anchor" id="line-4"></span><span class="anchor" id="line-5"></span></p><p class="line862">Run the register command on <tt class="backtick">cheogram.com</tt> and enter gateway <tt class="backtick">twilio.sgx.soprani.ca</tt> or chat with <a class="xmpp" href="xmpp:cheogram.com">xmpp:cheogram.com</a> bot and say <tt class="backtick">register&nbsp;twilio.sgx.soprani.ca</tt> <span class="anchor" id="line-6"></span><span class="anchor" id="line-7"></span></p><p class="line862">Source: <a class="https" href="https://github.com/pesvut/sgx-twilio">https://github.com/pesvut/sgx-twilio</a> <span class="anchor" id="line-8"></span><span class="anchor" id="line-9"></span></p><p class="line867">
</p><h2 id="Inbound_SMS">Inbound SMS</h2>
<span class="anchor" id="line-10"></span><span class="anchor" id="line-11"></span><span class="anchor" id="line-12"></span><ol type="1"><li><p class="line862">Go to <a class="https" href="https://console.twilio.com">https://console.twilio.com</a> <span class="anchor" id="line-13"></span></p></li><li><p class="line862">Go to Develop &gt; Phone Numbers &gt; Manage &gt; Active Numbers <span class="anchor" id="line-14"></span></p></li><li>Click on the phone number you want to add <span class="anchor" id="line-15"></span></li><li>Go to the Configure tab <span class="anchor" id="line-16"></span></li><li><p class="line862">Scroll down to 'Messaging' and change 'A message Comes in' to the url <tt>&nbsp;http://twilio.sgx.soprani.ca/sms&nbsp;</tt> <span class="anchor" id="line-17"></span><span class="anchor" id="line-18"></span><span class="anchor" id="line-19"></span></p></li></ol><p class="line867">
</p><h2 id="Inbound_Calls">Inbound Calls</h2>
<span class="anchor" id="line-20"></span><span class="anchor" id="line-21"></span><ol type="1"><li><p class="line862">In Twilio, go to <tt class="backtick">Develop&nbsp;&gt;&nbsp;Explore&nbsp;Products&nbsp;&gt;&nbsp;Elastic&nbsp;SIP&nbsp;Trunking</tt> and create a new trunk with any name. <span class="anchor" id="line-22"></span></p></li><li>In your new trunk go to Origination settings <span class="anchor" id="line-23"></span></li><li><p class="line862">Add a SIP URI: <tt class="backtick">sip:user%5C40domain.tld%[email protected]</tt> (replace <tt class="backtick">user</tt> with your Jabber ID localpart and <tt class="backtick">domain.tld</tt> with your Jabber ID domainpart) <span class="anchor" id="line-24"></span></p></li><li>In the left panel under your trunk go to Numbers <span class="anchor" id="line-25"></span></li><li><p class="line862">Top-right <tt class="backtick">Add&nbsp;a&nbsp;number&nbsp;&gt;&nbsp;Add&nbsp;an&nbsp;existing&nbsp;number</tt> and choose your number <span class="anchor" id="line-26"></span><span class="anchor" id="line-27"></span></p></li></ol><p class="line874">Incoming calls to that number will now ring you on Jingle. <span class="anchor" id="line-28"></span><span class="anchor" id="line-29"></span></p><p class="line867">
</p><h2 id="Outbound_Calls">Outbound Calls</h2>
<span class="anchor" id="line-30"></span><span class="anchor" id="line-31"></span><ol type="1"><li><p class="line862">In Twilio, go to <tt class="backtick">Develop&nbsp;&gt;&nbsp;Explore&nbsp;Products&nbsp;&gt;&nbsp;Functions</tt> <span class="anchor" id="line-32"></span></p></li><li>Make a new function with any name, use this code: <span class="anchor" id="line-33"></span><ul><li style="list-style-type:none"><span class="anchor" id="line-34"></span><span class="anchor" id="line-35"></span><span class="anchor" id="line-36"></span><span class="anchor" id="line-37"></span><span class="anchor" id="line-38"></span><span class="anchor" id="line-39"></span><span class="anchor" id="line-40"></span><span class="anchor" id="line-41"></span><span class="anchor" id="line-42"></span><span class="anchor" id="line-43"></span><span class="anchor" id="line-44"></span><span class="anchor" id="line-45"></span><span class="anchor" id="line-46"></span><pre><span class="anchor" id="line-1"></span>exports.handler = function(context, event, callback) {
<span class="anchor" id="line-2"></span>  let twiml = new Twilio.twiml.VoiceResponse();
<span class="anchor" id="line-3"></span>  if(event.From != "SIP URI FROM INBOUND SECTION ABOVE") {
<span class="anchor" id="line-4"></span>    console.log("Bad from: " + event.From);
<span class="anchor" id="line-5"></span>    twiml.hangup();
<span class="anchor" id="line-6"></span>  } else {
<span class="anchor" id="line-7"></span>    let tel = event.To.split("@")[0].replace(/^sip:/, "");
<span class="anchor" id="line-8"></span>    twiml.dial({ callerId: "YOUR TWILIO NUMBER" }).number(tel);
<span class="anchor" id="line-9"></span>  }
<span class="anchor" id="line-10"></span>
<span class="anchor" id="line-11"></span>  return callback(null, twiml);
<span class="anchor" id="line-12"></span>};</pre><span class="anchor" id="line-47"></span></li></ul></li><li>Save and "Deploy all" -- make a note of the function's domain name <span class="anchor" id="line-48"></span></li><li><p class="line862">In Twilio, go to <tt class="backtick">Develop&nbsp;&gt;&nbsp;Explore&nbsp;Products&nbsp;&gt;&nbsp;Voice</tt> <span class="anchor" id="line-49"></span></p></li><li>In the sidebar under Manage pick SIP domains <span class="anchor" id="line-50"></span></li><li><p class="line862">Make a domain with any name. Use an IP access control list with the IP <tt class="backtick">51.161.87.91</tt> <span class="anchor" id="line-51"></span></p></li><li><p class="line862">Set "A call comes in" webhook to <tt class="backtick">https://&lt;function&nbsp;domain&gt;/&lt;function&nbsp;path&gt;</tt> <span class="anchor" id="line-52"></span></p></li><li>Save <span class="anchor" id="line-53"></span></li><li>Open Gajim or another client that support XML console and sent this XML in the console: <span class="anchor" id="line-54"></span><span class="anchor" id="line-55"></span><ul><li style="list-style-type:none"><span class="anchor" id="line-56"></span><span class="anchor" id="line-57"></span><span class="anchor" id="line-58"></span><span class="anchor" id="line-59"></span><span class="anchor" id="line-60"></span><span class="anchor" id="line-61"></span><span class="anchor" id="line-62"></span><span class="anchor" id="line-63"></span><span class="anchor" id="line-64"></span><span class="anchor" id="line-65"></span><pre><span class="anchor" id="line-1-1"></span>&lt;iq to="cheogram.com" type="set" id="cmd1"&gt;
<span class="anchor" id="line-2-1"></span>        &lt;command xmlns="http://jabber.org/protocol/commands" node="sip-proxy-set"&gt;
<span class="anchor" id="line-3-1"></span>                &lt;x xmlns="jabber:x:data"&gt;
<span class="anchor" id="line-4-1"></span>                        &lt;field var="sip-proxy"&gt;
<span class="anchor" id="line-5-1"></span>                                &lt;value&gt;YOUR TWILIO SIP DOMAIN&lt;/value&gt;
<span class="anchor" id="line-6-1"></span>                        &lt;/field&gt;
<span class="anchor" id="line-7-1"></span>                &lt;/x&gt;
<span class="anchor" id="line-8-1"></span>        &lt;/command&gt;
<span class="anchor" id="line-9-1"></span>&lt;/iq&gt;</pre><span class="anchor" id="line-66"></span></li></ul></li><li>Disconnect and reconnect your Jabber account, you should now be able to place voice calls, and send/receive SMS via Cheogram. <span class="anchor" id="line-67"></span></li></ol><span class="anchor" id="bottom"></span></div><p id="pageinfo" class="info" lang="en" dir="ltr">TwilioSetup  (last edited 2022-198 00:17:59 by <span title="root @ 89.36.78.171[89.36.78.171]"><a class="nonexistent" href="/root" title="root @ 89.36.78.171[89.36.78.171]">root</a></span>)</p>

<div id="pagebottom"></div>
</div>


<div id="footer">
<ul class="editbar"><li><a href="/TwilioSetup?action=edit&amp;editor=text" name="texteditlink" rel="nofollow">Edit</a></li><li class="toggleCommentsButton" style="display:none;"><a href="#" class="nbcomment" onclick="toggleComments();return false;">Comments</a></li><li><a class="nbinfo" href="/TwilioSetup?action=info" rel="nofollow">Info</a></li><li><a class="nbattachments" href="/TwilioSetup?action=AttachFile" rel="nofollow">Attachments</a></li><li>
<form class="actionsmenu" method="GET" action="/TwilioSetup">
<div>
    
    <select name="action" onchange="if ((this.selectedIndex != 0) &amp;&amp;
                      (this.options[this.selectedIndex].disabled == false)) {
                this.form.submit();
            }
            this.selectedIndex = 0;">
        <option value="show">More Actions:</option><option value="raw">Raw Text</option>
<option value="print">Print View</option>
<option value="RenderAsDocbook">Render as Docbook</option>
<option value="refresh">Delete Cache</option>
<option value="show" disabled="" class="disabled">------------------------</option>
<option value="SpellCheck">Check Spelling</option>
<option value="LikePages">Like Pages</option>
<option value="LocalSiteMap">Local Site Map</option>
<option value="show" disabled="" class="disabled">------------------------</option>
<option value="RenamePage" disabled="" class="disabled">Rename Page</option>
<option value="DeletePage" disabled="" class="disabled">Delete Page</option>
<option value="show" disabled="" class="disabled">------------------------</option>
<option value="show" disabled="" class="disabled">Subscribe User</option>
<option value="show" disabled="" class="disabled">------------------------</option>
<option value="show" disabled="" class="disabled">Remove Spam</option>
<option value="show" disabled="" class="disabled">Revert to this revision</option>
<option value="PackagePages">Package Pages</option>
<option value="SyncPages">Sync Pages</option>
<option value="show" disabled="" class="disabled">------------------------</option>
<option value="Load">Load</option>
<option value="Save">Save</option>
<option value="SlideShow">SlideShow</option>
    </select>
    
    
</div>
<script type="text/javascript">
<!--// Init menu
actionsMenuInit('More Actions:');
//-->
</script>
</form>
</li></ul>

<ul id="credits">
<li><a href="http://moinmo.in/" title="This site uses the MoinMoin Wiki software.">MoinMoin Powered</a></li><li><a href="http://moinmo.in/Python" title="MoinMoin is written in Python.">Python Powered</a></li><li><a href="http://moinmo.in/GPL" title="MoinMoin is GPL licensed.">GPL licensed</a></li><li><a href="http://validator.w3.org/check?uri=referer" title="Click here to validate this page.">Valid HTML 4.01</a></li>
</ul>


</div>



</body></html>