[prev in list] [next in list] [prev in thread] [next in thread] 

List:       freeswitch-users
Subject:    =?utf-8?Q?Getting=20started=20with=20SignalWire=E2=80=99s=20Node.js=20client=20library?=
From:       The FreeSWITCH Team <marketing () cluecon ! com>
Date:       2019-07-16 13:19:35
Message-ID: 73f7dcee16e0a87ece76c372d.81136d1409.20190716131924.bd4e8b18c2.69454e82 () mail17 ! sea61 ! rsgsv ! net
[Download RAW message or body]

This is a multi-part message in MIME format


View this email in your browser \
(https://mailchi.mp/freeswitch.com/getting-started-with-signalwires-nodejs-client-library-565245?e=81136d1409)
 Building an Advanced Communications System with SignalWire

In our previous blog post \
(https://signalwire.com/blogs/product/build-an-advanced-cloud-communications-system?ut \
m_source=FreeSWITCH+News&utm_campaign=bd4e8b18c2-EMAIL_CAMPAIGN_2019_07_15_09_03_COPY_01&utm_medium=email&utm_term=0_8de1531556-bd4e8b18c2-47000873) \
, we discussed why a cloud communications system works for most businesses and gave \
an overview on what tools you can use when creating your own cloud based phone system \
with SignalWire.

Today, we will dive into the Node.js code and demonstrate how to install, test, and \
                run the code locally. We will build example applications that \
                demonstrate how to:
* Create an Interactive Voice Response (IVR) menu using Text To Speech (TTS)
* Make and receive Voice over IP (VoIP) calls in a web browser
* Receive and respond to SMS messages

Requirements:
* A SignalWire account (signup for free here \
(https://signalwire.com/signup?utm_source=FreeSWITCH+News&utm_campaign=bd4e8b18c2-EMAI \
L_CAMPAIGN_2019_07_15_09_03_COPY_01&utm_medium=email&utm_term=0_8de1531556-bd4e8b18c2-47000873) \
                )
* A SignalWire phone number
* A Node.js host (You can host this yourself for development purposes but you will \
                likely want something more robust than ngrok when you push to \
                production)
* A familiarization with the SignalWire API documentation \
(https://docs.signalwire.com/?utm_source=FreeSWITCH+News&utm_campaign=bd4e8b18c2-EMAIL \
_CAMPAIGN_2019_07_15_09_03_COPY_01&utm_medium=email&utm_term=0_8de1531556-bd4e8b18c2-47000873) \
.

Getting started with the Node.js code

In this example we will show you how to host the Node.js code locally. If you would \
to like have your code hosted in a production environment, a commercial Node.js host \
will need to be configured.

Installation

To get started, make sure that Homebrew \
(https://brew.sh/?utm_source=FreeSWITCH+News&utm_campaign=bd4e8b18c2-EMAIL_CAMPAIGN_20 \
19_07_15_09_03_COPY_01&utm_medium=email&utm_term=0_8de1531556-bd4e8b18c2-47000873)  \
is installed locally, then, in a terminal window, install npm if it is not already \
installed: brew install node

Then, to view the code, navigate to \
https://github.com/cpetrosi/signalwire-ivr?utm_source=FreeSWITCH+News&utm_campaign=bd4 \
e8b18c2-EMAIL_CAMPAIGN_2019_07_15_09_03_COPY_01&utm_medium=email&utm_term=0_8de1531556-bd4e8b18c2-47000873. \
To install the repository: git clone \
https://github.com/cpetrosi/signalwire-ivr.git?utm_source=FreeSWITCH+News&utm_campaign \
=bd4e8b18c2-EMAIL_CAMPAIGN_2019_07_15_09_03_COPY_01&utm_medium=email&utm_term=0_8de1531556-bd4e8b18c2-47000873
 cd signalwire-ivr
npm install

Testing

For testing purposes, download ngrok here \
(https://ngrok.com/download?utm_source=FreeSWITCH+News&utm_campaign=bd4e8b18c2-EMAIL_C \
AMPAIGN_2019_07_15_09_03_COPY_01&utm_medium=email&utm_term=0_8de1531556-bd4e8b18c2-47000873) \
. In a new terminal window, navigate to the directory where ngrok is installed and \
                run:
./ngrok http 3000

From this window, grab the second Forwarding URL (the one with https) and navigate to \
the index.js file from the signalwire-ivrrepository.

Here, replace all the \
http://190.102.98.249:3000?utm_source=FreeSWITCH+News&utm_campaign=bd4e8b18c2-EMAIL_CA \
MPAIGN_2019_07_15_09_03_COPY_01&utm_medium=email&utm_term=0_8de1531556-bd4e8b18c2-47000873 \
URLs with your Forwarding URL. In my case, it would be \
https://906e01e2.ngrok.io?utm_source=FreeSWITCH+News&utm_campaign=bd4e8b18c2-EMAIL_CAM \
PAIGN_2019_07_15_09_03_COPY_01&utm_medium=email&utm_term=0_8de1531556-bd4e8b18c2-47000873.


Note: when you terminate and restart the ngrok session, these URLs will change and \
you will have to update them again in the index.js file.

Other Edits

In the index.js file, edit the project, token, and client variables with your own \
Project ID, Authentication Token, and SignalWire Space URL.

To receive transcription messages, edit the to variable to your phone number. Change \
the from variable to your SignalWire phone number. You can also edit the \
dial.number()'s to sample phone numbers you can use for testing.

Running

In the same terminal window where you installed all the dependencies (npm install), \
run:

node index.js

Note: If you make any changes to the index.js file from the repository, be sure to \
terminate and restart the node index.js command in terminal.


Building an IVR

To build an interactive voice response (IVR), you should start with a main menu to \
present all the different menu options (i.e. press 1 for help, etc.) to the caller.

In my example, the caller will hear the three options and choose which party they \
would like to be connected to. If no input is received, SignalWire will wait 10 \
seconds before asking the caller to make a selection or listen to the options again. \
If there is still no input, the call will end.

After you have created a main menu, you will need to point to a URL (in my case, \
mmv-response) where SignalWire will make a request to when the entering of digits or \
speech is completed.

app.get("/main-menu", (req, res, next) => {
var response = new RestClient.LaML.VoiceResponse();
var gather = response.gather({
action: 'http://190.102.98.249:3000/mmv-response',
method: 'GET',
input: 'dtmf speech',
hints: 'help, conference'
})
gather.say("Hello and welcome to SignalWire.");
gather.say("If you're a customer in need of some assistance, press 1, or say help.");
gather.say("If you have been invited to a conference, press 2, or say conference.");
gather.say("If you know your party's extension, you may dial it at any time.");
gather.pause({ length: 10 });
gather.say("Are you still there? Please make a selection or press star to hear the \
options again."); response.say("We did not receive an option. Goodbye.");

res.set('Content-Type', 'text/xml');
res.send(response.toString());
});

Then, in mmv-response, you need to tell SignalWire what to do when one of those \
options is selected. For example, if the caller pressed 1 or said "help", dial the \
number +1.650.382.2000.

If an incorrect option is pressed or said, the caller will hear this and the call \
will end:

"We received an incorrect option. Goodbye."

app.get("/mmv-response", (req, res, next) => {
var response = new RestClient.LaML.VoiceResponse();
var digits = req.query.Digits;
var speech = req.query.SpeechResult;

if (digits == "1" || speech == "help") {
var dial = response.dial();
dial.number('650-382-0000');

else { response.say('We received an incorrect option. Goodbye.'); }

res.set('Content-Type', 'text/xml');
res.send(response.toString());
});


Read the Rest (https://signalwire.com/blogs/product/building-an-advanced-communication \
s-system-part-2?utm_source=FreeSWITCH+News&utm_campaign=bd4e8b18c2-EMAIL_CAMPAIGN_2019_07_15_09_03_COPY_01&utm_medium=email&utm_term=0_8de1531556-bd4e8b18c2-47000873)
 Check out ClueCon Weekly with Oleg Agafonov!

https://youtu.be/PnH7Uj69-n4?utm_source=FreeSWITCH+News&utm_campaign=bd4e8b18c2-EMAIL_ \
CAMPAIGN_2019_07_15_09_03_COPY_01&utm_medium=email&utm_term=0_8de1531556-bd4e8b18c2-47000873


Oleg is a solution architect with more than 10 years of experience in software \
development. This episode of ClueCon Weekly presents an exciting journey from \
troubleshooting to monitoring or how VoIP network monitoring can simplify \
troubleshooting and shorten customer tickets resolution time. Find out how SIP3 \
turned from troubleshooting into monitoring platform, what were the biggest \
challenges along the way and what is the team behind the project planning ahead.

***
https://sip3.io?utm_source=FreeSWITCH+News&utm_campaign=bd4e8b18c2-EMAIL_CAMPAIGN_2019_07_15_09_03_COPY_01&utm_medium=email&utm_term=0_8de1531556-bd4e8b18c2-47000873 \
(https://www.youtube.com/redirect?v=PnH7Uj69-n4&event=video_description&q=https%3A%2F% \
2Fsip3.io&redir_token=oSYxlEhzpTjbildw71KC3Ipv4M58MTU2MzMxMTUwOEAxNTYzMjI1MTA4&utm_sou \
rce=FreeSWITCH+News&utm_campaign=bd4e8b18c2-EMAIL_CAMPAIGN_2019_07_15_09_03_COPY_01&utm_medium=email&utm_term=0_8de1531556-bd4e8b18c2-47000873) \
- Learn more about monitoring and troubleshooting with SIP3 \
https://github.com/sip3io?utm_source=FreeSWITCH+News&utm_campaign=bd4e8b18c2-EMAIL_CAM \
PAIGN_2019_07_15_09_03_COPY_01&utm_medium=email&utm_term=0_8de1531556-bd4e8b18c2-47000873 \
(https://www.youtube.com/redirect?v=PnH7Uj69-n4&event=video_description&q=https%3A%2F% \
2Fgithub.com%2Fsip3io&redir_token=oSYxlEhzpTjbildw71KC3Ipv4M58MTU2MzMxMTUwOEAxNTYzMjI1 \
MTA4&utm_source=FreeSWITCH+News&utm_campaign=bd4e8b18c2-EMAIL_CAMPAIGN_2019_07_15_09_03_COPY_01&utm_medium=email&utm_term=0_8de1531556-bd4e8b18c2-47000873) \
- Checkout SIP3 opensource components \
https://twitter.com/agaf0x?utm_source=FreeSWITCH+News&utm_campaign=bd4e8b18c2-EMAIL_CA \
MPAIGN_2019_07_15_09_03_COPY_01&utm_medium=email&utm_term=0_8de1531556-bd4e8b18c2-47000873 \
(https://www.youtube.com/redirect?v=PnH7Uj69-n4&event=video_description&q=https%3A%2F% \
2Ftwitter.com%2Fagaf0x&redir_token=oSYxlEhzpTjbildw71KC3Ipv4M58MTU2MzMxMTUwOEAxNTYzMjI \
1MTA4&utm_source=FreeSWITCH+News&utm_campaign=bd4e8b18c2-EMAIL_CAMPAIGN_2019_07_15_09_03_COPY_01&utm_medium=email&utm_term=0_8de1531556-bd4e8b18c2-47000873) \
- Follow Oleg in Twitter


** Sunset Boat Tour by VoiceTel
------------------------------------------------------------
Join us for the VoiceTel boat tour at #ClueCon15 \
(https://twitter.com/search?q=%23ClueCon15&utm_source=FreeSWITCH+News&utm_campaign=bd4 \
e8b18c2-EMAIL_CAMPAIGN_2019_07_15_09_03_COPY_01&utm_medium=email&utm_term=0_8de1531556-bd4e8b18c2-47000873) \
! Toast the end of the day with a glass of wine, ice-cold beer or hand-crafted \
cocktail as the sun sets over Lake Michigan. Everyone at ClueCon is invited!

Join us for the Coder Games!

ClueCon's Coder Games is our unique version of a Hack-A-Thon! Join us for a day \
filled with games and fun for every attendee, included with your ClueCon admission. \
Whether you like to code your way to the prize or are a builder at heart, there is \
something for everyone. Our challenges range from coding to maker to trivia and \
everything in between. You can work as a team or go solo as you utilize the provided \
materials to build your creation and win prizes!

This year we are having four different challenges! Build your own self-driving car in \
our Maker Challenge, create something amazing using household objects in FreeCYCLED \
Hacks, code something cool with our APIs in the SignalWire Challenge, and compete in \
our ClueCon gameshow Man vs. Machine!

Can't make ClueCon but want to participate in Monday's Coder Games? This year we \
offer a la carte admission to the Coder Games! Admission includes lunch, swag  and \
access to the Coder Games. For student rates are available, contact \
sharon@signalwire.com (mailto:sharon@signalwire.com) Learn More \
(https://www.cluecon.com/codergames/?utm_source=FreeSWITCH+News&utm_campaign=bd4e8b18c \
2-EMAIL_CAMPAIGN_2019_07_15_09_03_COPY_01&utm_medium=email&utm_term=0_8de1531556-bd4e8b18c2-47000873)


============================================================
** Twitter (https://twitter.com/?utm_source=FreeSWITCH+News&utm_campaign=bd4e8b18c2-EM \
AIL_CAMPAIGN_2019_07_15_09_03_COPY_01&utm_medium=email&utm_term=0_8de1531556-bd4e8b18c2-47000873)
                
** Facebook (https://www.facebook.com/freeswitch/?utm_source=FreeSWITCH+News&utm_campa \
ign=bd4e8b18c2-EMAIL_CAMPAIGN_2019_07_15_09_03_COPY_01&utm_medium=email&utm_term=0_8de1531556-bd4e8b18c2-47000873)
                
** Website (https://www.linkedin.com/company/freeswitch-solutions-llc/?utm_source=Free \
SWITCH+News&utm_campaign=bd4e8b18c2-EMAIL_CAMPAIGN_2019_07_15_09_03_COPY_01&utm_medium=email&utm_term=0_8de1531556-bd4e8b18c2-47000873)
 Want to change how you receive these emails?
You can ** update your preferences \
(https://freeswitch.us13.list-manage.com/profile?u=73f7dcee16e0a87ece76c372d&id=8de1531556&e=81136d1409)
 or ** unsubscribe from this list \
(https://freeswitch.us13.list-manage.com/unsubscribe?u=73f7dcee16e0a87ece76c372d&id=8de1531556&e=81136d1409&c=bd4e8b18c2)
                
.


[Attachment #3 (text/html)]

<!doctype html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" \
xmlns:o="urn:schemas-microsoft-com:office:office">  <head>
        <!-- NAME: 1:2:1 COLUMN - FULL WIDTH -->
        <!--[if gte mso 15]>
        <xml>
            <o:OfficeDocumentSettings>
            <o:AllowPNG/>
            <o:PixelsPerInch>96</o:PixelsPerInch>
            </o:OfficeDocumentSettings>
        </xml>
        <![endif]-->
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>Getting started with SignalWire's Node.js client library</title>

    <style type="text/css">
		p{
			margin:10px 0;
			padding:0;
		}
		table{
			border-collapse:collapse;
		}
		h1,h2,h3,h4,h5,h6{
			display:block;
			margin:0;
			padding:0;
		}
		img,a img{
			border:0;
			height:auto;
			outline:none;
			text-decoration:none;
		}
		body,#bodyTable,#bodyCell{
			height:100%;
			margin:0;
			padding:0;
			width:100%;
		}
		.mcnPreviewText{
			display:none !important;
		}
		#outlook a{
			padding:0;
		}
		img{
			-ms-interpolation-mode:bicubic;
		}
		table{
			mso-table-lspace:0pt;
			mso-table-rspace:0pt;
		}
		.ReadMsgBody{
			width:100%;
		}
		.ExternalClass{
			width:100%;
		}
		p,a,li,td,blockquote{
			mso-line-height-rule:exactly;
		}
		a[href^=tel],a[href^=sms]{
			color:inherit;
			cursor:default;
			text-decoration:none;
		}
		p,a,li,td,body,table,blockquote{
			-ms-text-size-adjust:100%;
			-webkit-text-size-adjust:100%;
		}
		.ExternalClass,.ExternalClass p,.ExternalClass td,.ExternalClass div,.ExternalClass \
span,.ExternalClass font{  line-height:100%;
		}
		a[x-apple-data-detectors]{
			color:inherit !important;
			text-decoration:none !important;
			font-size:inherit !important;
			font-family:inherit !important;
			font-weight:inherit !important;
			line-height:inherit !important;
		}
		.templateContainer{
			max-width:600px !important;
		}
		a.mcnButton{
			display:block;
		}
		.mcnImage,.mcnRetinaImage{
			vertical-align:bottom;
		}
		.mcnTextContent{
			word-break:break-word;
		}
		.mcnTextContent img{
			height:auto !important;
		}
		.mcnDividerBlock{
			table-layout:fixed !important;
		}
		body,#bodyTable{
			background-color:#286769;
		}
		#bodyCell{
			border-top:0;
		}
		h1{
			color:#202020;
			font-family:Helvetica;
			font-size:26px;
			font-style:normal;
			font-weight:bold;
			line-height:125%;
			letter-spacing:normal;
			text-align:left;
		}
		h2{
			color:#202020;
			font-family:Helvetica;
			font-size:22px;
			font-style:normal;
			font-weight:bold;
			line-height:125%;
			letter-spacing:normal;
			text-align:left;
		}
		h3{
			color:#202020;
			font-family:Helvetica;
			font-size:20px;
			font-style:normal;
			font-weight:bold;
			line-height:125%;
			letter-spacing:normal;
			text-align:left;
		}
		h4{
			color:#202020;
			font-family:Helvetica;
			font-size:18px;
			font-style:normal;
			font-weight:bold;
			line-height:125%;
			letter-spacing:normal;
			text-align:left;
		}
		#templatePreheader{
			background-color:#ebe4e4;
			background-image:none;
			background-repeat:no-repeat;
			background-position:center;
			background-size:cover;
			border-top:0;
			border-bottom:0;
			padding-top:9px;
			padding-bottom:9px;
		}
		#templatePreheader .mcnTextContent,#templatePreheader .mcnTextContent p{
			color:#656565;
			font-family:Helvetica;
			font-size:12px;
			line-height:150%;
			text-align:left;
		}
		#templatePreheader .mcnTextContent a,#templatePreheader .mcnTextContent p a{
			color:#656565;
			font-weight:normal;
			text-decoration:underline;
		}
		#templateHeader{
			background-color:#ffffff;
			background-image:none;
			background-repeat:no-repeat;
			background-position:center;
			background-size:cover;
			border-top:0;
			border-bottom:0;
			padding-top:9px;
			padding-bottom:0;
		}
		#templateHeader .mcnTextContent,#templateHeader .mcnTextContent p{
			color:#202020;
			font-family:Helvetica;
			font-size:16px;
			line-height:150%;
			text-align:left;
		}
		#templateHeader .mcnTextContent a,#templateHeader .mcnTextContent p a{
			color:#007C89;
			font-weight:normal;
			text-decoration:underline;
		}
		#templateUpperBody{
			background-color:#ceedee;
			background-image:none;
			background-repeat:no-repeat;
			background-position:center;
			background-size:cover;
			border-top:0;
			border-bottom:0;
			padding-top:0;
			padding-bottom:0;
		}
		#templateUpperBody .mcnTextContent,#templateUpperBody .mcnTextContent p{
			color:#202020;
			font-family:Helvetica;
			font-size:16px;
			line-height:150%;
			text-align:left;
		}
		#templateUpperBody .mcnTextContent a,#templateUpperBody .mcnTextContent p a{
			color:#007C89;
			font-weight:normal;
			text-decoration:underline;
		}
		#templateColumns{
			background-color:#ceedee;
			background-image:none;
			background-repeat:no-repeat;
			background-position:center;
			background-size:cover;
			border-top:0;
			border-bottom:0;
			padding-top:0;
			padding-bottom:0;
		}
		#templateColumns .columnContainer .mcnTextContent,#templateColumns .columnContainer \
.mcnTextContent p{  color:#202020;
			font-family:Helvetica;
			font-size:16px;
			line-height:150%;
			text-align:left;
		}
		#templateColumns .columnContainer .mcnTextContent a,#templateColumns \
.columnContainer .mcnTextContent p a{  color:#007C89;
			font-weight:normal;
			text-decoration:underline;
		}
		#templateLowerBody{
			background-color:#ceedee;
			background-image:none;
			background-repeat:no-repeat;
			background-position:center;
			background-size:cover;
			border-top:0;
			border-bottom:2px solid #EAEAEA;
			padding-top:0;
			padding-bottom:9px;
		}
		#templateLowerBody .mcnTextContent,#templateLowerBody .mcnTextContent p{
			color:#202020;
			font-family:Helvetica;
			font-size:16px;
			line-height:150%;
			text-align:left;
		}
		#templateLowerBody .mcnTextContent a,#templateLowperBody .mcnTextContent p a{
			color:#007C89;
			font-weight:normal;
			text-decoration:underline;
		}
		#templateFooter{
			background-color:#024682;
			background-image:none;
			background-repeat:no-repeat;
			background-position:center;
			background-size:cover;
			border-top:0;
			border-bottom:0;
			padding-top:9px;
			padding-bottom:9px;
		}
		#templateFooter .mcnTextContent,#templateFooter .mcnTextContent p{
			color:#656565;
			font-family:Helvetica;
			font-size:12px;
			line-height:150%;
			text-align:center;
		}
		#templateFooter .mcnTextContent a,#templateFooter .mcnTextContent p a{
			color:#656565;
			font-weight:normal;
			text-decoration:underline;
		}
	@media only screen and (min-width:768px){
		.templateContainer{
			width:600px !important;
		}

}	@media only screen and (max-width: 480px){
		body,table,td,p,a,li,blockquote{
			-webkit-text-size-adjust:none !important;
		}

}	@media only screen and (max-width: 480px){
		body{
			width:100% !important;
			min-width:100% !important;
		}

}	@media only screen and (max-width: 480px){
		#bodyCell{
			padding-top:10px !important;
		}

}	@media only screen and (max-width: 480px){
		.columnWrapper{
			max-width:100% !important;
			width:100% !important;
		}

}	@media only screen and (max-width: 480px){
		.mcnRetinaImage{
			max-width:100% !important;
		}

}	@media only screen and (max-width: 480px){
		.mcnImage{
			width:100% !important;
		}

}	@media only screen and (max-width: 480px){
		.mcnCartContainer,.mcnCaptionTopContent,.mcnRecContentContainer,.mcnCaptionBottomCon \
tent,.mcnTextContentContainer,.mcnBoxedTextContentContainer,.mcnImageGroupContentConta \
iner,.mcnCaptionLeftTextContentContainer,.mcnCaptionRightTextContentContainer,.mcnCapt \
ionLeftImageContentContainer,.mcnCaptionRightImageContentContainer,.mcnImageCardLeftTe \
xtContentContainer,.mcnImageCardRightTextContentContainer,.mcnImageCardLeftImageContentContainer,.mcnImageCardRightImageContentContainer{
  max-width:100% !important;
			width:100% !important;
		}

}	@media only screen and (max-width: 480px){
		.mcnBoxedTextContentContainer{
			min-width:100% !important;
		}

}	@media only screen and (max-width: 480px){
		.mcnImageGroupContent{
			padding:9px !important;
		}

}	@media only screen and (max-width: 480px){
		.mcnCaptionLeftContentOuter .mcnTextContent,.mcnCaptionRightContentOuter \
.mcnTextContent{  padding-top:9px !important;
		}

}	@media only screen and (max-width: 480px){
		.mcnImageCardTopImageContent,.mcnCaptionBottomContent:last-child \
.mcnCaptionBottomImageContent,.mcnCaptionBlockInner .mcnCaptionTopContent:last-child \
.mcnTextContent{  padding-top:18px !important;
		}

}	@media only screen and (max-width: 480px){
		.mcnImageCardBottomImageContent{
			padding-bottom:9px !important;
		}

}	@media only screen and (max-width: 480px){
		.mcnImageGroupBlockInner{
			padding-top:0 !important;
			padding-bottom:0 !important;
		}

}	@media only screen and (max-width: 480px){
		.mcnImageGroupBlockOuter{
			padding-top:9px !important;
			padding-bottom:9px !important;
		}

}	@media only screen and (max-width: 480px){
		.mcnTextContent,.mcnBoxedTextContentColumn{
			padding-right:18px !important;
			padding-left:18px !important;
		}

}	@media only screen and (max-width: 480px){
		.mcnImageCardLeftImageContent,.mcnImageCardRightImageContent{
			padding-right:18px !important;
			padding-bottom:0 !important;
			padding-left:18px !important;
		}

}	@media only screen and (max-width: 480px){
		.mcpreview-image-uploader{
			display:none !important;
			width:100% !important;
		}

}	@media only screen and (max-width: 480px){
		h1{
			font-size:22px !important;
			line-height:125% !important;
		}

}	@media only screen and (max-width: 480px){
		h2{
			font-size:20px !important;
			line-height:125% !important;
		}

}	@media only screen and (max-width: 480px){
		h3{
			font-size:18px !important;
			line-height:125% !important;
		}

}	@media only screen and (max-width: 480px){
		h4{
			font-size:16px !important;
			line-height:150% !important;
		}

}	@media only screen and (max-width: 480px){
		.mcnBoxedTextContentContainer .mcnTextContent,.mcnBoxedTextContentContainer \
.mcnTextContent p{  font-size:14px !important;
			line-height:150% !important;
		}

}	@media only screen and (max-width: 480px){
		#templatePreheader{
			display:block !important;
		}

}	@media only screen and (max-width: 480px){
		#templatePreheader .mcnTextContent,#templatePreheader .mcnTextContent p{
			font-size:14px !important;
			line-height:150% !important;
		}

}	@media only screen and (max-width: 480px){
		#templateHeader .mcnTextContent,#templateHeader .mcnTextContent p{
			font-size:16px !important;
			line-height:150% !important;
		}

}	@media only screen and (max-width: 480px){
		#templateUpperBody .mcnTextContent,#templateUpperBody .mcnTextContent p{
			font-size:16px !important;
			line-height:150% !important;
		}

}	@media only screen and (max-width: 480px){
		#templateColumns .columnContainer .mcnTextContent,#templateColumns .columnContainer \
.mcnTextContent p{  font-size:16px !important;
			line-height:150% !important;
		}

}	@media only screen and (max-width: 480px){
		#templateLowerBody .mcnTextContent,#templateLowerBody .mcnTextContent p{
			font-size:16px !important;
			line-height:150% !important;
		}

}	@media only screen and (max-width: 480px){
		#templateFooter .mcnTextContent,#templateFooter .mcnTextContent p{
			font-size:14px !important;
			line-height:150% !important;
		}

}</style></head>
    <body style="height: 100%;margin: 0;padding: 0;width: 100%;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;background-color: #286769;">  <!--
-->
        <center>
            <table align="center" border="0" cellpadding="0" cellspacing="0" \
height="100%" width="100%" id="bodyTable" style="border-collapse: \
collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;height: 100%;margin: 0;padding: 0;width: \
100%;background-color: #286769;">  <tr>
                    <td align="center" valign="top" id="bodyCell" \
style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;height: 100%;margin: 0;padding: 0;width: \
100%;border-top: 0;">  <!-- BEGIN TEMPLATE // -->
                        <table border="0" cellpadding="0" cellspacing="0" \
width="100%" style="border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: \
0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">  <tr>
                                <td align="center" valign="top" \
id="templatePreheader" style="background:#ebe4e4 none no-repeat \
center/cover;mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;background-color: #ebe4e4;background-image: \
none;background-repeat: no-repeat;background-position: center;background-size: \
cover;border-top: 0;border-bottom: 0;padding-top: 9px;padding-bottom: 9px;">  <!--[if \
                (gte mso 9)|(IE)]>
                                    <table align="center" border="0" cellspacing="0" \
cellpadding="0" width="600" style="width:600px;">  <tr>
                                    <td align="center" valign="top" width="600" \
style="width:600px;">  <![endif]-->
                                    <table align="center" border="0" cellpadding="0" \
cellspacing="0" width="100%" class="templateContainer" style="border-collapse: \
collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;max-width: 600px !important;">  <tr>
                                            <td valign="top" \
class="preheaderContainer" style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;"><table border="0" cellpadding="0" \
cellspacing="0" width="100%" class="mcnTextBlock" style="min-width: \
100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: \
0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">  <tbody \
class="mcnTextBlockOuter">  <tr>
            <td valign="top" class="mcnTextBlockInner" style="padding-top: \
9px;mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">  <!--[if mso]>
				<table align="left" border="0" cellspacing="0" cellpadding="0" width="100%" \
style="width:100%;">  <tr>
				<![endif]-->
			
				<!--[if mso]>
				<td valign="top" width="600" style="width:600px;">
				<![endif]-->
                <table align="left" border="0" cellpadding="0" cellspacing="0" \
style="max-width: 100%;min-width: 100%;border-collapse: collapse;mso-table-lspace: \
0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" \
width="100%" class="mcnTextContentContainer">  <tbody><tr>

                        <td valign="top" class="mcnTextContent" style="padding: 0px \
18px 9px;text-align: center;mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;word-break: break-word;color: \
#656565;font-family: Helvetica;font-size: 12px;line-height: 150%;">

                            <a \
href="https://mailchi.mp/freeswitch.com/getting-started-with-signalwires-nodejs-client-library-565245?e=81136d1409" \
target="_blank" style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;color: #656565;font-weight: \
normal;text-decoration: underline;">View this email in your browser</a>  </td>
                    </tr>
                </tbody></table>
				<!--[if mso]>
				</td>
				<![endif]-->

				<!--[if mso]>
				</tr>
				</table>
				<![endif]-->
            </td>
        </tr>
    </tbody>
</table></td>
                                        </tr>
                                    </table>
                                    <!--[if (gte mso 9)|(IE)]>
                                    </td>
                                    </tr>
                                    </table>
                                    <![endif]-->
                                </td>
                            </tr>
                            <tr>
                                <td align="center" valign="top" id="templateHeader" \
style="background:#ffffff none no-repeat center/cover;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;background-color: \
#ffffff;background-image: none;background-repeat: no-repeat;background-position: \
center;background-size: cover;border-top: 0;border-bottom: 0;padding-top: \
9px;padding-bottom: 0;">  <!--[if (gte mso 9)|(IE)]>
                                    <table align="center" border="0" cellspacing="0" \
cellpadding="0" width="600" style="width:600px;">  <tr>
                                    <td align="center" valign="top" width="600" \
style="width:600px;">  <![endif]-->
                                    <table align="center" border="0" cellpadding="0" \
cellspacing="0" width="100%" class="templateContainer" style="border-collapse: \
collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;max-width: 600px !important;">  <tr>
                                            <td valign="top" class="headerContainer" \
style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;"><table border="0" cellpadding="0" \
cellspacing="0" width="100%" class="mcnImageBlock" style="min-width: \
100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: \
0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">  <tbody \
class="mcnImageBlockOuter">  <tr>
                <td valign="top" style="padding: 9px;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" \
class="mcnImageBlockInner">  <table align="left" width="100%" border="0" \
cellpadding="0" cellspacing="0" class="mcnImageContentContainer" style="min-width: \
100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: \
0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">  <tbody><tr>
                            <td class="mcnImageContent" valign="top" \
style="padding-right: 9px;padding-left: 9px;padding-top: 0;padding-bottom: \
0;text-align: center;mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">


                                        <img align="center" alt="" \
src="https://gallery.mailchimp.com/73f7dcee16e0a87ece76c372d/images/2a458e73-3ee4-48ff-add5-76481ed7c6ea.png" \
width="564" style="max-width: 1024px;padding-bottom: 0px;vertical-align: \
bottom;display: inline !important;border-radius: 0%;border: 0;height: auto;outline: \
none;text-decoration: none;-ms-interpolation-mode: bicubic;" class="mcnImage">


                            </td>
                        </tr>
                    </tbody></table>
                </td>
            </tr>
    </tbody>
</table></td>
                                        </tr>
                                    </table>
                                    <!--[if (gte mso 9)|(IE)]>
                                    </td>
                                    </tr>
                                    </table>
                                    <![endif]-->
                                </td>
                            </tr>
                            <tr>
                                <td align="center" valign="top" \
id="templateUpperBody" style="background:#ceedee none no-repeat \
center/cover;mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;background-color: #ceedee;background-image: \
none;background-repeat: no-repeat;background-position: center;background-size: \
cover;border-top: 0;border-bottom: 0;padding-top: 0;padding-bottom: 0;">  <!--[if \
                (gte mso 9)|(IE)]>
                                    <table align="center" border="0" cellspacing="0" \
cellpadding="0" width="600" style="width:600px;">  <tr>
                                    <td align="center" valign="top" width="600" \
style="width:600px;">  <![endif]-->
                                    <table align="center" border="0" cellpadding="0" \
cellspacing="0" width="100%" class="templateContainer" style="border-collapse: \
collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;max-width: 600px !important;">  <tr>
                                            <td valign="top" class="bodyContainer" \
style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;"><table border="0" cellpadding="0" \
cellspacing="0" width="100%" class="mcnDividerBlock" style="min-width: \
100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: \
0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;table-layout: fixed \
!important;">  <tbody class="mcnDividerBlockOuter">
        <tr>
            <td class="mcnDividerBlockInner" style="min-width: 100%;padding: \
18px;mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">  <table class="mcnDividerContent" border="0" \
cellpadding="0" cellspacing="0" width="100%" style="min-width: 100%;border-top: 2px \
solid #443D3D;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: \
0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">  <tbody><tr>
                        <td style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">  <span></span>
                        </td>
                    </tr>
                </tbody></table>
<!--
                <td class="mcnDividerBlockInner" style="padding: 18px;">
                <hr class="mcnDividerContent" style="border-bottom-color:none; \
border-left-color:none; border-right-color:none; border-bottom-width:0; \
border-left-width:0; border-right-width:0; margin-top:0; margin-right:0; \
                margin-bottom:0; margin-left:0;" />
-->
            </td>
        </tr>
    </tbody>
</table><table border="0" cellpadding="0" cellspacing="0" width="100%" \
class="mcnTextBlock" style="min-width: 100%;border-collapse: \
collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">  <tbody class="mcnTextBlockOuter">
        <tr>
            <td valign="top" class="mcnTextBlockInner" style="padding-top: \
9px;mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">  <!--[if mso]>
				<table align="left" border="0" cellspacing="0" cellpadding="0" width="100%" \
style="width:100%;">  <tr>
				<![endif]-->
			
				<!--[if mso]>
				<td valign="top" width="600" style="width:600px;">
				<![endif]-->
                <table align="left" border="0" cellpadding="0" cellspacing="0" \
style="max-width: 100%;min-width: 100%;border-collapse: collapse;mso-table-lspace: \
0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" \
width="100%" class="mcnTextContentContainer">  <tbody><tr>

                        <td valign="top" class="mcnTextContent" style="padding-top: \
0;padding-right: 18px;padding-bottom: 9px;padding-left: 18px;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;word-break: \
break-word;color: #202020;font-family: Helvetica;font-size: 16px;line-height: \
150%;text-align: left;">

                            <div style="text-align: center;"><span \
style="font-size:32px"><span style="color:#444444">Building an Advanced \
Communications System with SignalWire</span></span></div>

                        </td>
                    </tr>
                </tbody></table>
				<!--[if mso]>
				</td>
				<![endif]-->

				<!--[if mso]>
				</tr>
				</table>
				<![endif]-->
            </td>
        </tr>
    </tbody>
</table><table border="0" cellpadding="0" cellspacing="0" width="100%" \
class="mcnImageBlock" style="min-width: 100%;border-collapse: \
collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">  <tbody class="mcnImageBlockOuter">
            <tr>
                <td valign="top" style="padding: 9px;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" \
class="mcnImageBlockInner">  <table align="left" width="100%" border="0" \
cellpadding="0" cellspacing="0" class="mcnImageContentContainer" style="min-width: \
100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: \
0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">  <tbody><tr>
                            <td class="mcnImageContent" valign="top" \
style="padding-right: 9px;padding-left: 9px;padding-top: 0;padding-bottom: \
0;text-align: center;mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">


                                        <img align="center" alt="" \
src="https://gallery.mailchimp.com/73f7dcee16e0a87ece76c372d/images/8ace794a-7173-48ad-a3b8-9070a28d3ad3.png" \
width="564" style="max-width: 1200px;padding-bottom: 0;display: inline \
!important;vertical-align: bottom;border: 0;height: auto;outline: \
none;text-decoration: none;-ms-interpolation-mode: bicubic;" class="mcnImage">


                            </td>
                        </tr>
                    </tbody></table>
                </td>
            </tr>
    </tbody>
</table><table border="0" cellpadding="0" cellspacing="0" width="100%" \
class="mcnTextBlock" style="min-width: 100%;border-collapse: \
collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">  <tbody class="mcnTextBlockOuter">
        <tr>
            <td valign="top" class="mcnTextBlockInner" style="padding-top: \
9px;mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">  <!--[if mso]>
				<table align="left" border="0" cellspacing="0" cellpadding="0" width="100%" \
style="width:100%;">  <tr>
				<![endif]-->
			
				<!--[if mso]>
				<td valign="top" width="600" style="width:600px;">
				<![endif]-->
                <table align="left" border="0" cellpadding="0" cellspacing="0" \
style="max-width: 100%;min-width: 100%;border-collapse: collapse;mso-table-lspace: \
0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" \
width="100%" class="mcnTextContentContainer">  <tbody><tr>

                        <td valign="top" class="mcnTextContent" style="padding-top: \
0;padding-right: 18px;padding-bottom: 9px;padding-left: 18px;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;word-break: \
break-word;color: #202020;font-family: Helvetica;font-size: 16px;line-height: \
150%;text-align: left;">

                            <p style="margin: 10px 0;padding: 0;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: \
#202020;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: \
left;">In our&nbsp;<a \
href="https://freeswitch.us13.list-manage.com/track/click?u=73f7dcee16e0a87ece76c372d&id=3b404467b7&e=81136d1409" \
style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;color: #007C89;font-weight: \
normal;text-decoration: underline;">previous blog post</a>,&nbsp;we discussed why a \
cloud communications system works for most businesses and gave an overview on what \
tools you can use when creating your own cloud based phone system with \
SignalWire.</p>

<p style="margin: 10px 0;padding: 0;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: \
#202020;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: \
left;">Today, we will dive into the Node.js code and demonstrate how to install, \
test, and run the code locally. We will build example applications that demonstrate \
how to:</p>

<ul>
	<li style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">Create an Interactive Voice Response (IVR) menu \
using Text To Speech (TTS)</li>  <li style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">Make and receive \
Voice over IP (VoIP) calls in a web browser</li>  <li style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">Receive and \
respond to SMS messages</li> </ul>

<p style="margin: 10px 0;padding: 0;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: \
#202020;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: \
left;">Requirements:</p>

<ul>
	<li style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">A SignalWire account (signup for free&nbsp;<a \
href="https://freeswitch.us13.list-manage.com/track/click?u=73f7dcee16e0a87ece76c372d&id=4f249c7e78&e=81136d1409" \
style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;color: #007C89;font-weight: \
normal;text-decoration: underline;">here</a>)</li>  <li style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">A SignalWire \
phone number</li>  <li style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">A Node.js host (You can host this yourself for \
development purposes but you will likely want something more robust than ngrok when \
you push to production)</li>  <li style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">A familiarization \
with the&nbsp;<a href="https://freeswitch.us13.list-manage.com/track/click?u=73f7dcee16e0a87ece76c372d&id=512bc05bcc&e=81136d1409" \
style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;color: #007C89;font-weight: \
normal;text-decoration: underline;">SignalWire API documentation</a>.</li> </ul>

<h5 style="display: block;margin: 0;padding: 0;"><br>
<span style="font-size:18px"><strong>Getting started with the Node.js \
code</strong></span></h5>

<p style="margin: 10px 0;padding: 0;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: \
#202020;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: \
left;">In this example we will show you how to host the Node.js code locally. If you \
would&nbsp;to like have your code hosted in a production environment, a commercial \
Node.js host will need to be configured.<br> <br>
<span style="font-size:18px"><strong>Installation</strong></span></p>

<p style="margin: 10px 0;padding: 0;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: \
#202020;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: \
left;">To get started, make sure that&nbsp;<a \
href="https://freeswitch.us13.list-manage.com/track/click?u=73f7dcee16e0a87ece76c372d&id=fe5b039096&e=81136d1409" \
style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;color: #007C89;font-weight: \
normal;text-decoration: underline;">Homebrew</a>&nbsp;is installed locally, then, in \
a terminal window, install npm if it is not already installed:</p>

<pre><span style="color:#777777">brew install node</span></pre>

<p style="margin: 10px 0;padding: 0;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: \
#202020;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: \
left;">Then, to view the code, navigate to&nbsp;<a \
href="https://freeswitch.us13.list-manage.com/track/click?u=73f7dcee16e0a87ece76c372d&id=f5c074afab&e=81136d1409" \
style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;color: #007C89;font-weight: \
normal;text-decoration: underline;">https://github.com/cpetrosi/signalwire-ivr</a>. \
To install the repository:</p>

<pre><span style="color:#777777">git clone \
https://github.com/cpetrosi/signalwire-ivr.git cd signalwire-ivr
npm install</span>

<span style="font-size:18px"><strong>Testing</strong></span></pre>

<p style="margin: 10px 0;padding: 0;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: \
#202020;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: \
left;">For testing purposes, download ngrok&nbsp;<a \
href="https://freeswitch.us13.list-manage.com/track/click?u=73f7dcee16e0a87ece76c372d&id=315c86d0d7&e=81136d1409" \
style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;color: #007C89;font-weight: \
normal;text-decoration: underline;">here</a>. In a new terminal window, navigate to \
the directory where ngrok is installed and run:</p>

<pre><span style="color:#777777">./ngrok http 3000</span></pre>

<p style="margin: 10px 0;padding: 0;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: \
#202020;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: \
left;">From this window, grab the second&nbsp;<strong>Forwarding</strong>&nbsp;URL \
(the one with https) and navigate to the&nbsp;<em>index.js</em>&nbsp;file from \
the&nbsp;<em>signalwire-ivr</em>repository.<br> <br>
Here, replace all the&nbsp;<strong>http://190.102.98.249:3000</strong>&nbsp;URLs with \
your&nbsp;<strong>Forwarding&nbsp;</strong>URL. In my case, it would \
be&nbsp;<strong>https://906e01e2.ngrok.io</strong>.</p>

<blockquote style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;"><strong>Note:</strong>&nbsp;when you terminate \
and restart the ngrok session, these URLs will change and you will have to update \
them again in the index.js file.</blockquote>

<h5 style="display: block;margin: 0;padding: 0;"><br>
<span style="font-size:18px"><strong>Other Edits</strong></span></h5>

<p style="margin: 10px 0;padding: 0;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: \
#202020;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: \
left;">In the index.js file, edit the&nbsp;<strong>project, \
token,&nbsp;</strong>and&nbsp;<strong>client</strong>&nbsp;variables with your own \
Project ID, Authentication Token, and SignalWire Space URL.</p>

<p style="margin: 10px 0;padding: 0;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: \
#202020;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: \
left;">To receive transcription messages, edit \
the&nbsp;<strong>to</strong>&nbsp;variable to your phone number.&nbsp;Change \
the&nbsp;<strong>from</strong>&nbsp;variable to your SignalWire phone number. You can \
also edit the&nbsp;<strong>dial.number()'s</strong>&nbsp;to sample phone numbers you \
can use for testing.</p>

<h5 style="display: block;margin: 0;padding: 0;"><br>
<span style="font-size:18px"><strong>Running</strong></span></h5>

<p style="margin: 10px 0;padding: 0;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: \
#202020;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: \
left;">In the same terminal window where you installed all the dependencies (npm \
install), run:</p>

<p style="margin: 10px 0;padding: 0;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: \
#202020;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: \
left;"><span style="color:#777777">node index.js</span></p>

<blockquote style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;"><strong>Note</strong>: If you make any changes \
to the index.js file from the repository, be sure to terminate and restart the node \
index.js command in terminal.<br> &nbsp;</blockquote>

<p style="margin: 10px 0;padding: 0;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: \
#202020;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: \
left;"><strong>Building an&nbsp;IVR</strong></p>

<p style="margin: 10px 0;padding: 0;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: \
#202020;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: \
left;">To build an interactive voice response (IVR), you should start with a main \
menu to present all the different menu options (i.e. press 1 for help, etc.) to the \
caller.</p>

<p style="margin: 10px 0;padding: 0;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: \
#202020;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: \
left;">In my example, the caller will hear the three options and choose which party \
they would like to be connected to. If no input is received, SignalWire will wait 10 \
seconds before asking the caller to make a selection or listen to the options again. \
If there is still no input, the call will end.</p>

<p style="margin: 10px 0;padding: 0;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: \
#202020;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: \
left;">After you have created a main menu, you will need to point to a URL (in my \
case, mmv-response) where SignalWire will make a request to when the entering of \
digits or speech is completed.<br> &nbsp;</p>

<table data-tab-size="8" style="border-collapse: collapse;mso-table-lspace: \
0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: \
100%;">  <tbody>
		<tr>
			<td data-line-number="1" id="file-main-menu-js-L1" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">&nbsp;</td>  <td \
id="file-main-menu-js-LC1" style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;"><span \
style="color:#777777">app.get("/main-menu", \
(req,&nbsp;res,&nbsp;next)&nbsp;=&gt;&nbsp;{</span></td>  </tr>
		<tr>
			<td data-line-number="2" id="file-main-menu-js-L2" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">&nbsp;</td>  <td \
id="file-main-menu-js-LC2" style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;"><span \
style="color:#777777">var&nbsp;response&nbsp;=&nbsp;new&nbsp;RestClient.LaML.VoiceResponse();</span></td>
  </tr>
		<tr>
			<td data-line-number="3" id="file-main-menu-js-L3" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">&nbsp;</td>  <td \
id="file-main-menu-js-LC3" style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;"><span \
style="color:#777777">var&nbsp;gather&nbsp;=&nbsp;response.gather({</span></td>  \
</tr>  <tr>
			<td data-line-number="4" id="file-main-menu-js-L4" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">&nbsp;</td>  <td \
id="file-main-menu-js-LC4" style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;"><span \
style="color:#777777">action:&nbsp;'http://190.102.98.249:3000/mmv-response',</span></td>
  </tr>
		<tr>
			<td data-line-number="5" id="file-main-menu-js-L5" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">&nbsp;</td>  <td \
id="file-main-menu-js-LC5" style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;"><span \
style="color:#777777">method:&nbsp;'GET',</span></td>  </tr>
		<tr>
			<td data-line-number="6" id="file-main-menu-js-L6" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">&nbsp;</td>  <td \
id="file-main-menu-js-LC6" style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;"><span style="color:#777777">input:&nbsp;'dtmf \
speech',</span></td>  </tr>
		<tr>
			<td data-line-number="7" id="file-main-menu-js-L7" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">&nbsp;</td>  <td \
id="file-main-menu-js-LC7" style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;"><span style="color:#777777">hints:&nbsp;'help, \
conference'</span></td>  </tr>
		<tr>
			<td data-line-number="8" id="file-main-menu-js-L8" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">&nbsp;</td>  <td \
id="file-main-menu-js-LC8" style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;"><span style="color:#777777">})</span></td>  \
</tr>  <tr>
			<td data-line-number="9" id="file-main-menu-js-L9" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">&nbsp;</td>  <td \
id="file-main-menu-js-LC9" style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;"><span style="color:#777777">gather.say("Hello \
and welcome to SignalWire.");</span></td>  </tr>
		<tr>
			<td data-line-number="10" id="file-main-menu-js-L10" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">&nbsp;</td>  <td \
id="file-main-menu-js-LC10" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"><span \
style="color:#777777">gather.say("If you're a customer in need of some assistance, \
press 1, or say help.");</span></td>  </tr>
		<tr>
			<td data-line-number="11" id="file-main-menu-js-L11" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">&nbsp;</td>  <td \
id="file-main-menu-js-LC11" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"><span \
style="color:#777777">gather.say("If you have been invited to a conference, press 2, \
or say conference.");</span></td>  </tr>
		<tr>
			<td data-line-number="12" id="file-main-menu-js-L12" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">&nbsp;</td>  <td \
id="file-main-menu-js-LC12" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"><span \
style="color:#777777">gather.say("If you know your party's extension, you may dial it \
at any time.");</span></td>  </tr>
		<tr>
			<td data-line-number="13" id="file-main-menu-js-L13" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">&nbsp;</td>  <td \
id="file-main-menu-js-LC13" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"><span \
style="color:#777777">gather.pause({ length:&nbsp;10&nbsp;});</span></td>  </tr>
		<tr>
			<td data-line-number="14" id="file-main-menu-js-L14" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">&nbsp;</td>  <td \
id="file-main-menu-js-LC14" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"><span \
style="color:#777777">gather.say("Are you still there? Please make a selection or \
press star to hear the options again.");</span></td>  </tr>
		<tr>
			<td data-line-number="15" id="file-main-menu-js-L15" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">&nbsp;</td>  <td \
id="file-main-menu-js-LC15" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"><span \
style="color:#777777">response.say("We did not receive an option. \
Goodbye.");</span></td>  </tr>
		<tr>
			<td data-line-number="16" id="file-main-menu-js-L16" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">&nbsp;</td>  <td \
id="file-main-menu-js-LC16" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">&nbsp;</td>  \
</tr>  <tr>
			<td data-line-number="17" id="file-main-menu-js-L17" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">&nbsp;</td>  <td \
id="file-main-menu-js-LC17" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"><span \
style="color:#777777">res.set('Content-Type',&nbsp;'text/xml');</span></td>  </tr>
		<tr>
			<td data-line-number="18" id="file-main-menu-js-L18" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">&nbsp;</td>  <td \
id="file-main-menu-js-LC18" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"><span \
style="color:#777777">res.send(response.toString());</span></td>  </tr>
		<tr>
			<td data-line-number="19" id="file-main-menu-js-L19" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">&nbsp;</td>  <td \
id="file-main-menu-js-LC19" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"><span \
style="color:#777777">});</span></td>  </tr>
	</tbody>
</table>

<p style="margin: 10px 0;padding: 0;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: \
#202020;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: \
left;"><br> Then, in mmv-response, you need to tell SignalWire what to do when one of \
those options is selected. For example, if the caller pressed 1 or said "help", dial \
the number +1.650.382.2000.</p>

<p style="margin: 10px 0;padding: 0;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: \
#202020;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: \
left;">If an incorrect option is pressed or said, the caller will hear this and the \
call will end:</p>

<blockquote style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;"><em>"We received an incorrect option. \
Goodbye."</em></blockquote>

<table data-tab-size="8" style="border-collapse: collapse;mso-table-lspace: \
0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: \
100%;">  <tbody>
		<tr>
			<td data-line-number="1" id="file-mmv-response-L1" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">&nbsp;</td>  <td \
id="file-mmv-response-LC1" style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;"><span \
style="color:#777777">app.get("/mmv-response", (req, res, next) =&gt; {</span></td>  \
</tr>  <tr>
			<td data-line-number="2" id="file-mmv-response-L2" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">&nbsp;</td>  <td \
id="file-mmv-response-LC2" style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;"><span style="color:#777777">var response = new \
RestClient.LaML.VoiceResponse();</span></td>  </tr>
		<tr>
			<td data-line-number="3" id="file-mmv-response-L3" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">&nbsp;</td>  <td \
id="file-mmv-response-LC3" style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;"><span style="color:#777777">var digits = \
req.query.Digits;</span></td>  </tr>
		<tr>
			<td data-line-number="4" id="file-mmv-response-L4" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">&nbsp;</td>  <td \
id="file-mmv-response-LC4" style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;"><span style="color:#777777">var speech = \
req.query.SpeechResult;</span></td>  </tr>
		<tr>
			<td data-line-number="5" id="file-mmv-response-L5" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">&nbsp;</td>  <td \
id="file-mmv-response-LC5" style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">&nbsp;</td>  </tr>
		<tr>
			<td data-line-number="6" id="file-mmv-response-L6" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">&nbsp;</td>  <td \
id="file-mmv-response-LC6" style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;"><span style="color:#777777">if (digits == "1" \
|| speech == "help") {</span></td>  </tr>
		<tr>
			<td data-line-number="7" id="file-mmv-response-L7" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">&nbsp;</td>  <td \
id="file-mmv-response-LC7" style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;"><span style="color:#777777">var dial = \
response.dial();</span></td>  </tr>
		<tr>
			<td data-line-number="8" id="file-mmv-response-L8" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">&nbsp;</td>  <td \
id="file-mmv-response-LC8" style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;"><span \
style="color:#777777">dial.number('650-382-0000');</span></td>  </tr>
		<tr>
			<td data-line-number="9" id="file-mmv-response-L9" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">&nbsp;</td>  <td \
id="file-mmv-response-LC9" style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">&nbsp;</td>  </tr>
		<tr>
			<td data-line-number="10" id="file-mmv-response-L10" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">&nbsp;</td>  <td \
id="file-mmv-response-LC10" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"><span \
style="color:#777777">else { response.say('We received an incorrect option. \
Goodbye.'); }</span></td>  </tr>
		<tr>
			<td data-line-number="11" id="file-mmv-response-L11" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">&nbsp;</td>  <td \
id="file-mmv-response-LC11" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">&nbsp;</td>  \
</tr>  <tr>
			<td data-line-number="12" id="file-mmv-response-L12" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">&nbsp;</td>  <td \
id="file-mmv-response-LC12" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"><span \
style="color:#777777">res.set('Content-Type', 'text/xml');</span></td>  </tr>
		<tr>
			<td data-line-number="13" id="file-mmv-response-L13" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">&nbsp;</td>  <td \
id="file-mmv-response-LC13" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"><span \
style="color:#777777">res.send(response.toString());</span></td>  </tr>
		<tr>
			<td data-line-number="14" id="file-mmv-response-L14" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">&nbsp;</td>  <td \
id="file-mmv-response-LC14" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"><span \
style="color:#777777">});</span></td>  </tr>
	</tbody>
</table>

<p style="margin: 10px 0;padding: 0;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: \
#202020;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: \
left;">&nbsp;</p>

                        </td>
                    </tr>
                </tbody></table>
				<!--[if mso]>
				</td>
				<![endif]-->

				<!--[if mso]>
				</tr>
				</table>
				<![endif]-->
            </td>
        </tr>
    </tbody>
</table><table border="0" cellpadding="0" cellspacing="0" width="100%" \
class="mcnButtonBlock" style="min-width: 100%;border-collapse: \
collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">  <tbody class="mcnButtonBlockOuter">
        <tr>
            <td style="padding-top: 0;padding-right: 18px;padding-bottom: \
18px;padding-left: 18px;mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;" valign="top" align="center" \
class="mcnButtonBlockInner">  <table border="0" cellpadding="0" cellspacing="0" \
class="mcnButtonContentContainer" style="border-collapse: separate \
!important;border-radius: 4px;background-color: #E0629A;mso-table-lspace: \
0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: \
100%;">  <tbody>
                        <tr>
                            <td align="center" valign="middle" \
class="mcnButtonContent" style="font-family: Arial;font-size: 16px;padding: \
18px;mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">  <a class="mcnButton " title="Read the Rest" \
href="https://freeswitch.us13.list-manage.com/track/click?u=73f7dcee16e0a87ece76c372d&id=4dd90b5802&e=81136d1409" \
target="_blank" style="font-weight: bold;letter-spacing: normal;line-height: \
100%;text-align: center;text-decoration: none;color: #FFFFFF;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;display: \
block;">Read the Rest</a>  </td>
                        </tr>
                    </tbody>
                </table>
            </td>
        </tr>
    </tbody>
</table><table border="0" cellpadding="0" cellspacing="0" width="100%" \
class="mcnDividerBlock" style="min-width: 100%;border-collapse: \
collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;table-layout: fixed !important;">  <tbody \
class="mcnDividerBlockOuter">  <tr>
            <td class="mcnDividerBlockInner" style="min-width: 100%;padding: \
18px;mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">  <table class="mcnDividerContent" border="0" \
cellpadding="0" cellspacing="0" width="100%" style="min-width: 100%;border-top: 2px \
solid #443D3D;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: \
0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">  <tbody><tr>
                        <td style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">  <span></span>
                        </td>
                    </tr>
                </tbody></table>
<!--
                <td class="mcnDividerBlockInner" style="padding: 18px;">
                <hr class="mcnDividerContent" style="border-bottom-color:none; \
border-left-color:none; border-right-color:none; border-bottom-width:0; \
border-left-width:0; border-right-width:0; margin-top:0; margin-right:0; \
                margin-bottom:0; margin-left:0;" />
-->
            </td>
        </tr>
    </tbody>
</table><table border="0" cellpadding="0" cellspacing="0" width="100%" \
class="mcnTextBlock" style="min-width: 100%;border-collapse: \
collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">  <tbody class="mcnTextBlockOuter">
        <tr>
            <td valign="top" class="mcnTextBlockInner" style="padding-top: \
9px;mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">  <!--[if mso]>
				<table align="left" border="0" cellspacing="0" cellpadding="0" width="100%" \
style="width:100%;">  <tr>
				<![endif]-->
			
				<!--[if mso]>
				<td valign="top" width="600" style="width:600px;">
				<![endif]-->
                <table align="left" border="0" cellpadding="0" cellspacing="0" \
style="max-width: 100%;min-width: 100%;border-collapse: collapse;mso-table-lspace: \
0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" \
width="100%" class="mcnTextContentContainer">  <tbody><tr>

                        <td valign="top" class="mcnTextContent" style="padding-top: \
0;padding-right: 18px;padding-bottom: 9px;padding-left: 18px;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;word-break: \
break-word;color: #202020;font-family: Helvetica;font-size: 16px;line-height: \
150%;text-align: left;">

                            <div style="text-align: center;"><span \
style="font-size:32px"><span style="color:#444444">Check out ClueCon Weekly with Oleg \
Agafonov!</span></span></div>

                        </td>
                    </tr>
                </tbody></table>
				<!--[if mso]>
				</td>
				<![endif]-->

				<!--[if mso]>
				</tr>
				</table>
				<![endif]-->
            </td>
        </tr>
    </tbody>
</table><table border="0" cellpadding="0" cellspacing="0" width="100%" \
class="mcnImageCardBlock" style="border-collapse: collapse;mso-table-lspace: \
0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: \
100%;">  <tbody class="mcnImageCardBlockOuter">
        <tr>
            <td class="mcnImageCardBlockInner" valign="top" style="padding-top: \
9px;padding-right: 18px;padding-bottom: 9px;padding-left: 18px;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">

<table align="right" border="0" cellpadding="0" cellspacing="0" \
class="mcnImageCardBottomContent" width="100%" style="border-collapse: \
collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">  <tbody><tr>
        <td class="mcnImageCardBottomImageContent" align="center" valign="top" \
style="padding-top: 0px;padding-right: 0px;padding-bottom: 0;padding-left: \
0px;mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">


            <a href="https://freeswitch.us13.list-manage.com/track/click?u=73f7dcee16e0a87ece76c372d&id=70c73f402e&e=81136d1409" \
title="" class="" target="" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">


            <img alt="" \
src="https://gallery.mailchimp.com/video_thumbnails_new/86ce80a8e5f3a3173c70e102efcb6f6e.png" \
width="480" style="max-width: 480px;border-radius: 9%;border: 0;height: auto;outline: \
none;text-decoration: none;-ms-interpolation-mode: bicubic;vertical-align: bottom;" \
class="mcnImage">  </a>

        </td>
    </tr>
    <tr>
        <td class="mcnTextContent" valign="top" style="padding: 9px 18px;color: \
#F2F2F2;font-family: Helvetica;font-size: 14px;font-weight: normal;text-align: \
center;mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;word-break: break-word;line-height: 150%;" \
width="546">  <div style="text-align: left;"><span style="color:#444444"><span \
style="font-size:18px">Oleg is a solution architect with more than 10 years of \
experience in software development. This episode of ClueCon Weekly presents an \
exciting journey from troubleshooting to monitoring or how VoIP network monitoring \
can simplify troubleshooting and shorten customer tickets resolution time. Find out \
how SIP3 turned from troubleshooting into monitoring platform, what were the biggest \
challenges along the way and what is the team behind the project planning ahead. \
</span><br> <br>
*** </span><a href="https://freeswitch.us13.list-manage.com/track/click?u=73f7dcee16e0a87ece76c372d&id=afc624b412&e=81136d1409" \
rel="nofollow" spellcheck="false" target="_blank" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: \
#007C89;font-weight: normal;text-decoration: underline;"><span \
style="color:#444444">https://sip3.io</span></a><span style="color:#444444"> - Learn \
more about monitoring and troubleshooting with SIP3 </span><a \
href="https://freeswitch.us13.list-manage.com/track/click?u=73f7dcee16e0a87ece76c372d&id=eb48bec629&e=81136d1409" \
rel="nofollow" spellcheck="false" target="_blank" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: \
#007C89;font-weight: normal;text-decoration: underline;"><span \
style="color:#444444">https://github.com/sip3io</span></a><span \
style="color:#444444"> - Checkout SIP3 opensource components </span><a \
href="https://freeswitch.us13.list-manage.com/track/click?u=73f7dcee16e0a87ece76c372d&id=cf3e554b6b&e=81136d1409" \
rel="nofollow" spellcheck="false" target="_blank" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: \
#007C89;font-weight: normal;text-decoration: underline;"><span \
style="color:#444444">https://twitter.com/agaf0x</span></a><span \
style="color:#444444"> - Follow Oleg in Twitter</span></div>

        </td>
    </tr>
</tbody></table>




            </td>
        </tr>
    </tbody>
</table><table border="0" cellpadding="0" cellspacing="0" width="100%" \
class="mcnDividerBlock" style="min-width: 100%;border-collapse: \
collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;table-layout: fixed !important;">  <tbody \
class="mcnDividerBlockOuter">  <tr>
            <td class="mcnDividerBlockInner" style="min-width: 100%;padding: \
18px;mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">  <table class="mcnDividerContent" border="0" \
cellpadding="0" cellspacing="0" width="100%" style="min-width: 100%;border-top: 2px \
solid #443D3D;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: \
0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">  <tbody><tr>
                        <td style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">  <span></span>
                        </td>
                    </tr>
                </tbody></table>
<!--
                <td class="mcnDividerBlockInner" style="padding: 18px;">
                <hr class="mcnDividerContent" style="border-bottom-color:none; \
border-left-color:none; border-right-color:none; border-bottom-width:0; \
border-left-width:0; border-right-width:0; margin-top:0; margin-right:0; \
                margin-bottom:0; margin-left:0;" />
-->
            </td>
        </tr>
    </tbody>
</table><table border="0" cellpadding="0" cellspacing="0" width="100%" \
class="mcnTextBlock" style="min-width: 100%;border-collapse: \
collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">  <tbody class="mcnTextBlockOuter">
        <tr>
            <td valign="top" class="mcnTextBlockInner" style="padding-top: \
9px;mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">  <!--[if mso]>
				<table align="left" border="0" cellspacing="0" cellpadding="0" width="100%" \
style="width:100%;">  <tr>
				<![endif]-->
			
				<!--[if mso]>
				<td valign="top" width="600" style="width:600px;">
				<![endif]-->
                <table align="left" border="0" cellpadding="0" cellspacing="0" \
style="max-width: 100%;min-width: 100%;border-collapse: collapse;mso-table-lspace: \
0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" \
width="100%" class="mcnTextContentContainer">  <tbody><tr>

                        <td valign="top" class="mcnTextContent" style="padding-top: \
0;padding-right: 18px;padding-bottom: 9px;padding-left: 18px;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;word-break: \
break-word;color: #202020;font-family: Helvetica;font-size: 16px;line-height: \
150%;text-align: left;">

                            <h2 style="text-align: center;display: block;margin: \
0;padding: 0;color: #202020;font-family: Helvetica;font-size: 22px;font-style: \
normal;font-weight: bold;line-height: 125%;letter-spacing: normal;"><span \
style="color:#444444"><span style="font-size:32px">Sunset Boat Tour by \
VoiceTel</span></span></h2>

                        </td>
                    </tr>
                </tbody></table>
				<!--[if mso]>
				</td>
				<![endif]-->

				<!--[if mso]>
				</tr>
				</table>
				<![endif]-->
            </td>
        </tr>
    </tbody>
</table><table border="0" cellpadding="0" cellspacing="0" width="100%" \
class="mcnImageBlock" style="min-width: 100%;border-collapse: \
collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">  <tbody class="mcnImageBlockOuter">
            <tr>
                <td valign="top" style="padding: 9px;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" \
class="mcnImageBlockInner">  <table align="left" width="100%" border="0" \
cellpadding="0" cellspacing="0" class="mcnImageContentContainer" style="min-width: \
100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: \
0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">  <tbody><tr>
                            <td class="mcnImageContent" valign="top" \
style="padding-right: 9px;padding-left: 9px;padding-top: 0;padding-bottom: \
0;text-align: center;mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">


                                        <img align="center" alt="" \
src="https://gallery.mailchimp.com/73f7dcee16e0a87ece76c372d/images/6f00cd85-2203-492c-9fd2-90289b07bea7.png" \
width="564" style="max-width: 1200px;padding-bottom: 0;display: inline \
!important;vertical-align: bottom;border: 0;height: auto;outline: \
none;text-decoration: none;-ms-interpolation-mode: bicubic;" class="mcnImage">


                            </td>
                        </tr>
                    </tbody></table>
                </td>
            </tr>
    </tbody>
</table><table border="0" cellpadding="0" cellspacing="0" width="100%" \
class="mcnTextBlock" style="min-width: 100%;border-collapse: \
collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">  <tbody class="mcnTextBlockOuter">
        <tr>
            <td valign="top" class="mcnTextBlockInner" style="padding-top: \
9px;mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">  <!--[if mso]>
				<table align="left" border="0" cellspacing="0" cellpadding="0" width="100%" \
style="width:100%;">  <tr>
				<![endif]-->
			
				<!--[if mso]>
				<td valign="top" width="600" style="width:600px;">
				<![endif]-->
                <table align="left" border="0" cellpadding="0" cellspacing="0" \
style="max-width: 100%;min-width: 100%;border-collapse: collapse;mso-table-lspace: \
0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" \
width="100%" class="mcnTextContentContainer">  <tbody><tr>

                        <td valign="top" class="mcnTextContent" style="padding-top: \
0;padding-right: 18px;padding-bottom: 9px;padding-left: 18px;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;word-break: \
break-word;color: #202020;font-family: Helvetica;font-size: 16px;line-height: \
150%;text-align: left;">

                            Join us for the VoiceTel boat tour at <a \
href="https://freeswitch.us13.list-manage.com/track/click?u=73f7dcee16e0a87ece76c372d&id=0a40e9a42f&e=81136d1409" \
rel="hashtag" target="_blank" style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: \
#007C89;font-weight: normal;text-decoration: underline;">#ClueCon15</a>! Toast the \
end of the day with a glass of wine, ice-cold beer or hand-crafted cocktail as the \
sun sets over Lake Michigan. Everyone at ClueCon is invited!  </td>
                    </tr>
                </tbody></table>
				<!--[if mso]>
				</td>
				<![endif]-->

				<!--[if mso]>
				</tr>
				</table>
				<![endif]-->
            </td>
        </tr>
    </tbody>
</table><table border="0" cellpadding="0" cellspacing="0" width="100%" \
class="mcnDividerBlock" style="min-width: 100%;border-collapse: \
collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;table-layout: fixed !important;">  <tbody \
class="mcnDividerBlockOuter">  <tr>
            <td class="mcnDividerBlockInner" style="min-width: 100%;padding: \
18px;mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">  <table class="mcnDividerContent" border="0" \
cellpadding="0" cellspacing="0" width="100%" style="min-width: 100%;border-top: 2px \
solid #443D3D;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: \
0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">  <tbody><tr>
                        <td style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">  <span></span>
                        </td>
                    </tr>
                </tbody></table>
<!--
                <td class="mcnDividerBlockInner" style="padding: 18px;">
                <hr class="mcnDividerContent" style="border-bottom-color:none; \
border-left-color:none; border-right-color:none; border-bottom-width:0; \
border-left-width:0; border-right-width:0; margin-top:0; margin-right:0; \
                margin-bottom:0; margin-left:0;" />
-->
            </td>
        </tr>
    </tbody>
</table><table border="0" cellpadding="0" cellspacing="0" width="100%" \
class="mcnTextBlock" style="min-width: 100%;border-collapse: \
collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">  <tbody class="mcnTextBlockOuter">
        <tr>
            <td valign="top" class="mcnTextBlockInner" style="padding-top: \
9px;mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">  <!--[if mso]>
				<table align="left" border="0" cellspacing="0" cellpadding="0" width="100%" \
style="width:100%;">  <tr>
				<![endif]-->
			
				<!--[if mso]>
				<td valign="top" width="600" style="width:600px;">
				<![endif]-->
                <table align="left" border="0" cellpadding="0" cellspacing="0" \
style="max-width: 100%;min-width: 100%;border-collapse: collapse;mso-table-lspace: \
0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" \
width="100%" class="mcnTextContentContainer">  <tbody><tr>

                        <td valign="top" class="mcnTextContent" style="padding-top: \
0;padding-right: 18px;padding-bottom: 9px;padding-left: 18px;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;word-break: \
break-word;color: #202020;font-family: Helvetica;font-size: 16px;line-height: \
150%;text-align: left;">

                            <div>
<div style="text-align: center;">&nbsp;</div>

<table align="left" border="0" cellpadding="0" cellspacing="0" width="100%" \
style="border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: \
0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">  <tbody>
		<tr>
			<td style="text-align: center;mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;" valign="top"><span style="color:#444444"><span \
style="font-size:32px">Join us for the Coder Games!</span></span></td>  </tr>
	</tbody>
</table>
</div>

                        </td>
                    </tr>
                </tbody></table>
				<!--[if mso]>
				</td>
				<![endif]-->

				<!--[if mso]>
				</tr>
				</table>
				<![endif]-->
            </td>
        </tr>
    </tbody>
</table><table border="0" cellpadding="0" cellspacing="0" width="100%" \
class="mcnImageBlock" style="min-width: 100%;border-collapse: \
collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">  <tbody class="mcnImageBlockOuter">
            <tr>
                <td valign="top" style="padding: 9px;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" \
class="mcnImageBlockInner">  <table align="left" width="100%" border="0" \
cellpadding="0" cellspacing="0" class="mcnImageContentContainer" style="min-width: \
100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: \
0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">  <tbody><tr>
                            <td class="mcnImageContent" valign="top" \
style="padding-right: 9px;padding-left: 9px;padding-top: 0;padding-bottom: \
0;text-align: center;mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">


                                        <img align="center" alt="" \
src="https://gallery.mailchimp.com/73f7dcee16e0a87ece76c372d/images/9fb60dce-a5b7-4174-a04d-95bce7b419d5.png" \
width="564" style="max-width: 705px;padding-bottom: 0;display: inline \
!important;vertical-align: bottom;border: 0;height: auto;outline: \
none;text-decoration: none;-ms-interpolation-mode: bicubic;" class="mcnImage">


                            </td>
                        </tr>
                    </tbody></table>
                </td>
            </tr>
    </tbody>
</table><table border="0" cellpadding="0" cellspacing="0" width="100%" \
class="mcnTextBlock" style="min-width: 100%;border-collapse: \
collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">  <tbody class="mcnTextBlockOuter">
        <tr>
            <td valign="top" class="mcnTextBlockInner" style="padding-top: \
9px;mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">  <!--[if mso]>
				<table align="left" border="0" cellspacing="0" cellpadding="0" width="100%" \
style="width:100%;">  <tr>
				<![endif]-->
			
				<!--[if mso]>
				<td valign="top" width="600" style="width:600px;">
				<![endif]-->
                <table align="left" border="0" cellpadding="0" cellspacing="0" \
style="max-width: 100%;min-width: 100%;border-collapse: collapse;mso-table-lspace: \
0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" \
width="100%" class="mcnTextContentContainer">  <tbody><tr>

                        <td valign="top" class="mcnTextContent" style="padding-top: \
0;padding-right: 18px;padding-bottom: 9px;padding-left: 18px;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;word-break: \
break-word;color: #202020;font-family: Helvetica;font-size: 16px;line-height: \
150%;text-align: left;">

                            <p style="margin: 10px 0;padding: 0;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: \
#202020;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: \
left;">ClueCon's Coder Games is our unique version of a Hack-A-Thon! Join us \
for&nbsp;a day filled with games and fun for every attendee, included with your \
ClueCon admission. Whether you like to code your way to the prize or are a builder at \
heart, there is something for everyone. Our challenges range from coding to maker to \
trivia and everything in between. You can work as a team or go solo as you utilize \
the provided materials to build your creation and win prizes!<br> <br>
<font color="#444444">This year we are having four different challenges! Build your \
own self-driving car in our Maker Challenge, create something amazing using household \
objects&nbsp;in FreeCYCLED Hacks, code&nbsp;something cool with our APIs in the \
SignalWire Challenge, and compete in our ClueCon gameshow&nbsp;<em>Man vs. \
Machine!</em></font><br> &nbsp;</p>

<p style="margin: 10px 0;padding: 0;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: \
#202020;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: \
left;">Can't make ClueCon but want to participate in Monday's Coder Games?&nbsp;This \
year we offer a la carte admission to the Coder Games! Admission includes lunch, \
swag&nbsp; and access to the Coder Games. For student rates are available, \
contact&nbsp;<a href="mailto:sharon@signalwire.com" target="_blank" \
style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;color: #007C89;font-weight: \
normal;text-decoration: underline;">sharon@signalwire.com</a></p>

                        </td>
                    </tr>
                </tbody></table>
				<!--[if mso]>
				</td>
				<![endif]-->

				<!--[if mso]>
				</tr>
				</table>
				<![endif]-->
            </td>
        </tr>
    </tbody>
</table><table border="0" cellpadding="0" cellspacing="0" width="100%" \
class="mcnButtonBlock" style="min-width: 100%;border-collapse: \
collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">  <tbody class="mcnButtonBlockOuter">
        <tr>
            <td style="padding-top: 0;padding-right: 18px;padding-bottom: \
18px;padding-left: 18px;mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;" valign="top" align="center" \
class="mcnButtonBlockInner">  <table border="0" cellpadding="0" cellspacing="0" \
class="mcnButtonContentContainer" style="border-collapse: separate \
!important;border-radius: 4px;background-color: #2BAADF;mso-table-lspace: \
0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: \
100%;">  <tbody>
                        <tr>
                            <td align="center" valign="middle" \
class="mcnButtonContent" style="font-family: Arial;font-size: 16px;padding: \
18px;mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">  <a class="mcnButton " title="Learn More" \
href="https://freeswitch.us13.list-manage.com/track/click?u=73f7dcee16e0a87ece76c372d&id=738cd1a0ee&e=81136d1409" \
target="_blank" style="font-weight: bold;letter-spacing: normal;line-height: \
100%;text-align: center;text-decoration: none;color: #FFFFFF;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;display: \
block;">Learn More</a>  </td>
                        </tr>
                    </tbody>
                </table>
            </td>
        </tr>
    </tbody>
</table><table border="0" cellpadding="0" cellspacing="0" width="100%" \
class="mcnDividerBlock" style="min-width: 100%;border-collapse: \
collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;table-layout: fixed !important;">  <tbody \
class="mcnDividerBlockOuter">  <tr>
            <td class="mcnDividerBlockInner" style="min-width: 100%;padding: \
18px;mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">  <table class="mcnDividerContent" border="0" \
cellpadding="0" cellspacing="0" width="100%" style="min-width: 100%;border-top: 2px \
solid #443D3D;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: \
0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">  <tbody><tr>
                        <td style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">  <span></span>
                        </td>
                    </tr>
                </tbody></table>
<!--
                <td class="mcnDividerBlockInner" style="padding: 18px;">
                <hr class="mcnDividerContent" style="border-bottom-color:none; \
border-left-color:none; border-right-color:none; border-bottom-width:0; \
border-left-width:0; border-right-width:0; margin-top:0; margin-right:0; \
                margin-bottom:0; margin-left:0;" />
-->
            </td>
        </tr>
    </tbody>
</table></td>
                                        </tr>
                                    </table>
                                    <!--[if (gte mso 9)|(IE)]>
                                    </td>
                                    </tr>
                                    </table>
                                    <![endif]-->
                                </td>
                            </tr>
                            <tr>
                                <td align="center" valign="top" id="templateColumns" \
style="background:#ceedee none no-repeat center/cover;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;background-color: \
#ceedee;background-image: none;background-repeat: no-repeat;background-position: \
center;background-size: cover;border-top: 0;border-bottom: 0;padding-top: \
0;padding-bottom: 0;">  <table border="0" cellpadding="0" cellspacing="0" \
width="100%" class="templateContainer" style="border-collapse: \
collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;max-width: 600px !important;">  <tr>
                                            <td valign="top" \
style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">  <!--[if (gte mso 9)|(IE)]>
                                                <table align="center" border="0" \
cellspacing="0" cellpadding="0" width="600" style="width:600px;">  <tr>
                                                <td align="center" valign="top" \
width="300" style="width:300px;">  <![endif]-->
                                                <table align="left" border="0" \
cellpadding="0" cellspacing="0" width="300" class="columnWrapper" \
style="border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: \
0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">  <tr>
                                                        <td valign="top" \
class="columnContainer" style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;"></td>  </tr>
                                                </table>
                                                <!--[if (gte mso 9)|(IE)]>
                                                </td>
                                                <td align="center" valign="top" \
width="300" style="width:300px;">  <![endif]-->
                                                <table align="left" border="0" \
cellpadding="0" cellspacing="0" width="300" class="columnWrapper" \
style="border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: \
0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">  <tr>
                                                        <td valign="top" \
class="columnContainer" style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;"></td>  </tr>
                                                </table>
                                                <!--[if (gte mso 9)|(IE)]>
                                                </td>
                                                </tr>
                                                </table>
                                                <![endif]-->
                                            </td>
                                        </tr>
                                    </table>
                                </td>
                            </tr>
                            <tr>
                                <td align="center" valign="top" \
id="templateLowerBody" style="background:#ceedee none no-repeat \
center/cover;mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;background-color: #ceedee;background-image: \
none;background-repeat: no-repeat;background-position: center;background-size: \
cover;border-top: 0;border-bottom: 2px solid #EAEAEA;padding-top: 0;padding-bottom: \
9px;">  <!--[if (gte mso 9)|(IE)]>
                                    <table align="center" border="0" cellspacing="0" \
cellpadding="0" width="600" style="width:600px;">  <tr>
                                    <td align="center" valign="top" width="600" \
style="width:600px;">  <![endif]-->
                                    <table align="center" border="0" cellpadding="0" \
cellspacing="0" width="100%" class="templateContainer" style="border-collapse: \
collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;max-width: 600px !important;">  <tr>
                                            <td valign="top" class="bodyContainer" \
style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;"><table border="0" cellpadding="0" \
cellspacing="0" width="100%" class="mcnTextBlock" style="min-width: \
100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: \
0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">  <tbody \
class="mcnTextBlockOuter">  <tr>
            <td valign="top" class="mcnTextBlockInner" style="padding-top: \
9px;mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">  <!--[if mso]>
				<table align="left" border="0" cellspacing="0" cellpadding="0" width="100%" \
style="width:100%;">  <tr>
				<![endif]-->
			
				<!--[if mso]>
				<td valign="top" width="600" style="width:600px;">
				<![endif]-->
                <table align="left" border="0" cellpadding="0" cellspacing="0" \
style="max-width: 100%;min-width: 100%;border-collapse: collapse;mso-table-lspace: \
0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" \
width="100%" class="mcnTextContentContainer">  <tbody><tr>

                        <td valign="top" class="mcnTextContent" style="padding-top: \
0;padding-right: 18px;padding-bottom: 9px;padding-left: 18px;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;word-break: \
break-word;color: #202020;font-family: Helvetica;font-size: 16px;line-height: \
150%;text-align: left;">


                        </td>
                    </tr>
                </tbody></table>
				<!--[if mso]>
				</td>
				<![endif]-->

				<!--[if mso]>
				</tr>
				</table>
				<![endif]-->
            </td>
        </tr>
    </tbody>
</table></td>
                                        </tr>
                                    </table>
                                    <!--[if (gte mso 9)|(IE)]>
                                    </td>
                                    </tr>
                                    </table>
                                    <![endif]-->
                                </td>
                            </tr>
                            <tr>
                                <td align="center" valign="top" id="templateFooter" \
style="background:#024682 none no-repeat center/cover;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;background-color: \
#024682;background-image: none;background-repeat: no-repeat;background-position: \
center;background-size: cover;border-top: 0;border-bottom: 0;padding-top: \
9px;padding-bottom: 9px;">  <!--[if (gte mso 9)|(IE)]>
                                    <table align="center" border="0" cellspacing="0" \
cellpadding="0" width="600" style="width:600px;">  <tr>
                                    <td align="center" valign="top" width="600" \
style="width:600px;">  <![endif]-->
                                    <table align="center" border="0" cellpadding="0" \
cellspacing="0" width="100%" class="templateContainer" style="border-collapse: \
collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;max-width: 600px !important;">  <tr>
                                            <td valign="top" class="footerContainer" \
style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;"><table border="0" cellpadding="0" \
cellspacing="0" width="100%" class="mcnFollowBlock" style="min-width: \
100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: \
0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">  <tbody \
class="mcnFollowBlockOuter">  <tr>
            <td align="center" valign="top" style="padding: 9px;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" \
class="mcnFollowBlockInner">  <table border="0" cellpadding="0" cellspacing="0" \
width="100%" class="mcnFollowContentContainer" style="min-width: \
100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: \
0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">  <tbody><tr>
        <td align="center" style="padding-left: 9px;padding-right: \
9px;mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">  <table border="0" cellpadding="0" \
cellspacing="0" width="100%" style="min-width: 100%;border-collapse: \
collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;" class="mcnFollowContent">  <tbody><tr>
                    <td align="center" valign="top" style="padding-top: \
9px;padding-right: 9px;padding-left: 9px;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">  <table \
align="center" border="0" cellpadding="0" cellspacing="0" style="border-collapse: \
collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">  <tbody><tr>
                                <td align="center" valign="top" \
style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">  <!--[if mso]>
                                    <table align="center" border="0" cellspacing="0" \
cellpadding="0">  <tr>
                                    <![endif]-->

                                        <!--[if mso]>
                                        <td align="center" valign="top">
                                        <![endif]-->

                                            <table align="left" border="0" \
cellpadding="0" cellspacing="0" class="mcnFollowStacked" style="display: \
inline;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: \
0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">

                                                <tbody><tr>
                                                    <td align="center" valign="top" \
class="mcnFollowIconContent" style="padding-right: 10px;padding-bottom: \
9px;mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">  <a \
href="https://freeswitch.us13.list-manage.com/track/click?u=73f7dcee16e0a87ece76c372d&id=fc29172ece&e=81136d1409" \
target="_blank" style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;"><img \
src="https://cdn-images.mailchimp.com/icons/social-block-v2/outline-light-twitter-96.png" \
alt="Twitter" class="mcnFollowBlockIcon" width="48" style="width: 48px;max-width: \
48px;display: block;border: 0;height: auto;outline: none;text-decoration: \
none;-ms-interpolation-mode: bicubic;"></a>  </td>
                                                </tr>


                                            </tbody></table>


                                        <!--[if mso]>
                                        </td>
                                        <![endif]-->

                                        <!--[if mso]>
                                        <td align="center" valign="top">
                                        <![endif]-->

                                            <table align="left" border="0" \
cellpadding="0" cellspacing="0" class="mcnFollowStacked" style="display: \
inline;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: \
0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">

                                                <tbody><tr>
                                                    <td align="center" valign="top" \
class="mcnFollowIconContent" style="padding-right: 10px;padding-bottom: \
9px;mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">  <a \
href="https://freeswitch.us13.list-manage.com/track/click?u=73f7dcee16e0a87ece76c372d&id=a779191184&e=81136d1409" \
target="_blank" style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;"><img \
src="https://cdn-images.mailchimp.com/icons/social-block-v2/outline-light-facebook-96.png" \
alt="Facebook" class="mcnFollowBlockIcon" width="48" style="width: 48px;max-width: \
48px;display: block;border: 0;height: auto;outline: none;text-decoration: \
none;-ms-interpolation-mode: bicubic;"></a>  </td>
                                                </tr>


                                            </tbody></table>


                                        <!--[if mso]>
                                        </td>
                                        <![endif]-->

                                        <!--[if mso]>
                                        <td align="center" valign="top">
                                        <![endif]-->

                                            <table align="left" border="0" \
cellpadding="0" cellspacing="0" class="mcnFollowStacked" style="display: \
inline;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: \
0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">

                                                <tbody><tr>
                                                    <td align="center" valign="top" \
class="mcnFollowIconContent" style="padding-right: 0;padding-bottom: \
9px;mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">  <a \
href="https://freeswitch.us13.list-manage.com/track/click?u=73f7dcee16e0a87ece76c372d&id=6361c52db6&e=81136d1409" \
target="_blank" style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;"><img \
src="https://cdn-images.mailchimp.com/icons/social-block-v2/outline-light-link-96.png" \
alt="Website" class="mcnFollowBlockIcon" width="48" style="width: 48px;max-width: \
48px;display: block;border: 0;height: auto;outline: none;text-decoration: \
none;-ms-interpolation-mode: bicubic;"></a>  </td>
                                                </tr>


                                            </tbody></table>


                                        <!--[if mso]>
                                        </td>
                                        <![endif]-->

                                    <!--[if mso]>
                                    </tr>
                                    </table>
                                    <![endif]-->
                                </td>
                            </tr>
                        </tbody></table>
                    </td>
                </tr>
            </tbody></table>
        </td>
    </tr>
</tbody></table>

            </td>
        </tr>
    </tbody>
</table><table border="0" cellpadding="0" cellspacing="0" width="100%" \
class="mcnDividerBlock" style="min-width: 100%;border-collapse: \
collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;table-layout: fixed !important;">  <tbody \
class="mcnDividerBlockOuter">  <tr>
            <td class="mcnDividerBlockInner" style="min-width: 100%;padding: \
18px;mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">  <table class="mcnDividerContent" border="0" \
cellpadding="0" cellspacing="0" width="100%" style="min-width: 100%;border-top: 2px \
solid #FFFFFF;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: \
0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">  <tbody><tr>
                        <td style="mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">  <span></span>
                        </td>
                    </tr>
                </tbody></table>
<!--
                <td class="mcnDividerBlockInner" style="padding: 18px;">
                <hr class="mcnDividerContent" style="border-bottom-color:none; \
border-left-color:none; border-right-color:none; border-bottom-width:0; \
border-left-width:0; border-right-width:0; margin-top:0; margin-right:0; \
                margin-bottom:0; margin-left:0;" />
-->
            </td>
        </tr>
    </tbody>
</table><table border="0" cellpadding="0" cellspacing="0" width="100%" \
class="mcnTextBlock" style="min-width: 100%;border-collapse: \
collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">  <tbody class="mcnTextBlockOuter">
        <tr>
            <td valign="top" class="mcnTextBlockInner" style="padding-top: \
9px;mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;">  <!--[if mso]>
				<table align="left" border="0" cellspacing="0" cellpadding="0" width="100%" \
style="width:100%;">  <tr>
				<![endif]-->
			
				<!--[if mso]>
				<td valign="top" width="600" style="width:600px;">
				<![endif]-->
                <table align="left" border="0" cellpadding="0" cellspacing="0" \
style="max-width: 100%;min-width: 100%;border-collapse: collapse;mso-table-lspace: \
0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" \
width="100%" class="mcnTextContentContainer">  <tbody><tr>

                        <td valign="top" class="mcnTextContent" style="padding-top: \
0;padding-right: 18px;padding-bottom: 9px;padding-left: 18px;mso-line-height-rule: \
exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;word-break: \
break-word;color: #656565;font-family: Helvetica;font-size: 12px;line-height: \
150%;text-align: center;">

                            <br>
<span style="color:#eeeeee">Want to change how you receive these emails?<br>
You can </span><a href="https://freeswitch.us13.list-manage.com/profile?u=73f7dcee16e0a87ece76c372d&id=8de1531556&e=81136d1409" \
style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;color: #656565;font-weight: \
normal;text-decoration: underline;"><span style="color:#eeeeee">update your \
preferences</span></a><span style="color:#eeeeee"> or </span><a \
href="https://freeswitch.us13.list-manage.com/unsubscribe?u=73f7dcee16e0a87ece76c372d&id=8de1531556&e=81136d1409&c=bd4e8b18c2" \
style="mso-line-height-rule: exactly;-ms-text-size-adjust: \
100%;-webkit-text-size-adjust: 100%;color: #656565;font-weight: \
normal;text-decoration: underline;"><span style="color:#eeeeee">unsubscribe from this \
list</span></a><span style="color:#eeeeee">.</span><br> <br>
&nbsp;
                        </td>
                    </tr>
                </tbody></table>
				<!--[if mso]>
				</td>
				<![endif]-->

				<!--[if mso]>
				</tr>
				</table>
				<![endif]-->
            </td>
        </tr>
    </tbody>
</table></td>
                                        </tr>
                                    </table>
                                    <!--[if (gte mso 9)|(IE)]>
                                    </td>
                                    </tr>
                                    </table>
                                    <![endif]-->
                                </td>
                            </tr>
                        </table>
                        <!-- // END TEMPLATE -->
                    </td>
                </tr>
            </table>
        </center>
    <img src="https://freeswitch.us13.list-manage.com/track/open.php?u=73f7dcee16e0a87ece76c372d&id=bd4e8b18c2&e=81136d1409" \
height="1" width="1"></body> </html>



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic