#format wiki Providing the below SGX services is not free; if you find them useful please consider supporting infrastructure costs [[https://liberapay.com/singpolyma/|on Liberapay]], [[https://www.patreon.com/singpolyma|on Patreon]], or by becoming a paying customer of [[https://jmp.chat|JMP]]. Run the register command on `cheogram.com` and enter gateway `twilio.sgx.soprani.ca` or chat with [[xmpp:cheogram.com|xmpp:cheogram.com]] bot and say `register twilio.sgx.soprani.ca` Source: https://github.com/pesvut/sgx-twilio == Inbound SMS == 1. Go to https://console.twilio.com 2. Go to Develop > Phone Numbers > Manage > Active Numbers 3. Click on the phone number you want to add 4. Go to the Configure tab 5. Scroll down to 'Messaging' and change 'A message Comes in' to the url {{{ http://twilio.sgx.soprani.ca/sms }}} == Inbound Calls == 1. In Twilio, go to `Develop > Explore Products > Elastic SIP Trunking` and create a new trunk with any name. 2. In your new trunk go to Origination settings 3. Add a SIP URI: `sip:user%5C40domain.tld%40cheogram.com@sip.cheogram.com` (replace `user` with your Jabber ID localpart and `domain.tld` with your Jabber ID domainpart) 4. In the left panel under your trunk go to Numbers 5. Top-right `Add a number > Add an existing number` and choose your number Incoming calls to that number will now ring you on Jingle. == Outbound Calls == 1. In Twilio, go to `Develop > Explore Products > Functions` 2. Make a new function with any name, use this code: {{{ exports.handler = function(context, event, callback) { let twiml = new Twilio.twiml.VoiceResponse(); if(event.From != "SIP URI FROM INBOUND SECTION ABOVE") { console.log("Bad from: " + event.From); twiml.hangup(); } else { let tel = event.To.split("@")[0].replace(/^sip:/, ""); twiml.dial({ callerId: "YOUR TWILIO NUMBER" }).number(tel); } return callback(null, twiml); }; }}} 3. Save and "Deploy all" -- make a note of the function's domain name 4. In Twilio, go to `Develop > Explore Products > Voice` 5. In the sidebar under Manage pick SIP domains 6. Make a domain with any name. Use an IP access control list with the IP `51.161.87.91` 7. Set "A call comes in" webhook to `https:///` 8. Save 9. Open Gajim or another client that support XML console and sent this XML in the console: {{{ YOUR TWILIO SIP DOMAIN }}} 10. Disconnect and reconnect your Jabber account, you should now be able to place voice calls, and send/receive SMS via Cheogram.