Google Calling Webinar Public

Embed Size (px)

Citation preview

  • 7/21/2019 Google Calling Webinar Public

    1/50

    Asterisk Calling using Google

    Malcolm Davenport, Senior Product Manager

  • 7/21/2019 Google Calling Webinar Public

    2/50

    2Creative Innovation Customer Satisfaction Continual Quality Improvement

    What version of Asterisk?

    1.4.x

    1.6.2

    1.8

    Asterisk Dependencies:OpenSSL-devlibiksemel-dev

  • 7/21/2019 Google Calling Webinar Public

    3/50

    3Creative Innovation Customer Satisfaction Continual Quality Improvement

    Compiling

  • 7/21/2019 Google Calling Webinar Public

    4/50

    4Creative Innovation Customer Satisfaction Continual Quality Improvement

    Google Talk and Google Voice

  • 7/21/2019 Google Calling Webinar Public

    5/50

    5Creative Innovation Customer Satisfaction Continual Quality Improvement

    Google Talk

  • 7/21/2019 Google Calling Webinar Public

    6/50

    6Creative Innovation Customer Satisfaction Continual Quality Improvement

    Google Voice

  • 7/21/2019 Google Calling Webinar Public

    7/50

    7Creative Innovation Customer Satisfaction Continual Quality Improvement

    Wheres Asterisk?

  • 7/21/2019 Google Calling Webinar Public

    8/50

    8Creative Innovation Customer Satisfaction Continual Quality Improvement

    Wheres Asterisk?

  • 7/21/2019 Google Calling Webinar Public

    9/50

    9Creative Innovation Customer Satisfaction Continual Quality Improvement

    Wheres Asterisk?

    SIP

  • 7/21/2019 Google Calling Webinar Public

    10/50

    10Creative Innovation Customer Satisfaction Continual Quality Improvement

    Wheres Asterisk?

    SIP

  • 7/21/2019 Google Calling Webinar Public

    11/50

    11Creative Innovation Customer Satisfaction Continual Quality Improvement

    Wheres Asterisk?

    SIP SIP

  • 7/21/2019 Google Calling Webinar Public

    12/50

    12Creative Innovation Customer Satisfaction Continual Quality Improvement

    Google *heart* XMPP

    Istanbul->Constantinople->Istanbul->!Constantinople

  • 7/21/2019 Google Calling Webinar Public

    13/50

    13Creative Innovation Customer Satisfaction Continual Quality Improvement

    Asterisk to Google

    SIP

  • 7/21/2019 Google Calling Webinar Public

    14/50

    14Creative Innovation Customer Satisfaction Continual Quality Improvement

    Asterisk to Google

    SIP XMPP

  • 7/21/2019 Google Calling Webinar Public

    15/50

    15Creative Innovation Customer Satisfaction Continual Quality Improvement

    Connecting Asterisk to Google

    ! SIP Provider /etc/asterisk/sip.conf

    ! Google

    /etc/asterisk/jabber.conf

    /etc/asterisk/gtalk.conf

  • 7/21/2019 Google Calling Webinar Public

    16/50

    16Creative Innovation Customer Satisfaction Continual Quality Improvement

    Gtalk Configuration

    gtalk.conf

    [general]context=google-inbound

    allowguests=yesbindaddr=0.0.0.0externip=216.208.246.1

    [guest]

    disallow=allallow=ulawcontext=google-inboundconnection=asterisk

  • 7/21/2019 Google Calling Webinar Public

    17/50

    17Creative Innovation Customer Satisfaction Continual Quality Improvement

    XMPP / Jabber Configuration

    jabber.conf

    [general]autoregister=yes

    [asterisk]type=clientserverhost=talk.google.comusername=yourgmailname@gmail.com/Talk

    secret=mysupersecretusetls=yesusesasl=yesstatusmessage=I am an Asterisk Server

  • 7/21/2019 Google Calling Webinar Public

    18/50

    18Creative Innovation Customer Satisfaction Continual Quality Improvement

    Dialplan Configuration

    extensions.conf

    [google-inbound]exten => s,1,Dial(SIP/malcolm,20,D(:1))

    [local]exten => 300,1,Dial(Gtalk/asterisk/[email protected])

    exten => _1XXXXXXXXXX,1,Dial(Gtalk/asterisk/+${EXTEN}@voice.google.com)

  • 7/21/2019 Google Calling Webinar Public

    19/50

    19Creative Innovation Customer Satisfaction Continual Quality Improvement

    Lets make some calls!

  • 7/21/2019 Google Calling Webinar Public

    20/50

    20Creative Innovation Customer Satisfaction Continual Quality Improvement

    Wait!.what was that?

  • 7/21/2019 Google Calling Webinar Public

    21/50

    21Creative Innovation Customer Satisfaction Continual Quality Improvement

    Caller ID Gone Wild!

  • 7/21/2019 Google Calling Webinar Public

    22/50

    22Creative Innovation Customer Satisfaction Continual Quality Improvement

    Caller ID Gardening

    extensions.conf

    [google-inbound]exten => s,1,Dial(SIP/malcolm,20,D(:1))

    [local]exten => 300,1,Dial(Gtalk/asterisk/[email protected])

    exten => _1XXXXXXXXXX,1,Dial(Gtalk/asterisk/+${EXTEN}@voice.google.com)

  • 7/21/2019 Google Calling Webinar Public

    23/50

    23Creative Innovation Customer Satisfaction Continual Quality Improvement

    Caller ID Gardening

    extensions.conf

    [google-inbound]exten => s,1,Set(crazygooglecid=${CALLERID(name)})exten => s,n,Set(normalcallerid=${CUT(crazygooglecid,@,1)})

    exten => s,n,Set(CALLERID(all)=${normalcallerid})exten => s,n,Dial(SIP/malcolm,20,D(:1))

    [local]exten => 300,1,Dial(Gtalk/asterisk/[email protected])

    exten => _1XXXXXXXXXX,1,Dial(Gtalk/asterisk/+${EXTEN}@voice.google.com)

  • 7/21/2019 Google Calling Webinar Public

    24/50

    24Creative Innovation Customer Satisfaction Continual Quality Improvement

    Caller ID Gardening

  • 7/21/2019 Google Calling Webinar Public

    25/50

    25Creative Innovation Customer Satisfaction Continual Quality Improvement

    The Magic of Merlin

  • 7/21/2019 Google Calling Webinar Public

    26/50

    26Creative Innovation Customer Satisfaction Continual Quality Improvement

    The Magic of Merlin

  • 7/21/2019 Google Calling Webinar Public

    27/50

    27Creative Innovation Customer Satisfaction Continual Quality Improvement

    Photo by Stevage

  • 7/21/2019 Google Calling Webinar Public

    28/50

    28Creative Innovation Customer Satisfaction Continual Quality Improvement

    Google Talk Web Client

  • 7/21/2019 Google Calling Webinar Public

    29/50

    29Creative Innovation Customer Satisfaction Continual Quality Improvement

    IVTR

    Sound by Mike Koenig

    Interactive Voice with Text Response

  • 7/21/2019 Google Calling Webinar Public

    30/50

    30Creative Innovation Customer Satisfaction Continual Quality Improvement

    The Magic of IVTR

    extensions.conf

    [google-inbound]exten => s,1,Set(crazygooglecid=${CALLERID(name)})exten => s,n,Set(normalcallerid=${CUT(crazygooglecid,@,1)})

    exten => s,n,Set(CALLERID(all)${normalcallerid})exten => s,n,Background(if-u-know-ext-dial)exten => s,n,SendText(If you know the extension of the party you wish to reach, dial itnow.)exten => s,n,Set(userchoice=${JABBER_RECEIVE(asterisk,${CALLERID(name::15,5)})exten => s,n,Goto(google-inbound,${userchoice},1)exten => s,n,Hangup()

    exten => 100,1,Dial(SIP/malcolm,20)

  • 7/21/2019 Google Calling Webinar Public

    31/50

    31Creative Innovation Customer Satisfaction Continual Quality Improvement

    For More Help

  • 7/21/2019 Google Calling Webinar Public

    32/50

    32Creative Innovation Customer Satisfaction Continual Quality Improvement

    the

  • 7/21/2019 Google Calling Webinar Public

    33/50

    33Creative Innovation Customer Satisfaction Continual Quality Improvement

    Photo by USDA Forest Service

  • 7/21/2019 Google Calling Webinar Public

    34/50

    34Creative Innovation Customer Satisfaction Continual Quality Improvement

    Quenching the Flames

    extensions.conf

    [google-inbound]exten => s,1,Dial(SIP/malcolm,20,D(:1))

    [local]exten => 300,1,Dial(Gtalk/asterisk/[email protected])

    exten => _1XXXXXXXXXX,1,Dial(Gtalk/asterisk/+${EXTEN}@voice.google.com)

  • 7/21/2019 Google Calling Webinar Public

    35/50

    35Creative Innovation Customer Satisfaction Continual Quality Improvement

    Quenching the Flames

    extensions.conf

    [google-inbound]exten => s,1,Answer()exten => s,n,Wait(8)

    exten => s,n,SendDTMF(1)exten => s,n,Background(demo-congrats)

    [local]exten => 300,1,Dial(Gtalk/asterisk/[email protected])

    exten => _1XXXXXXXXXX,1,Dial(Gtalk/asterisk/+${EXTEN}@voice.google.com)

  • 7/21/2019 Google Calling Webinar Public

    36/50

    36Creative Innovation Customer Satisfaction Continual Quality Improvement

    Google *heart* XMPP

    Istanbul->Constantinople->Istanbul->!Constantinople

  • 7/21/2019 Google Calling Webinar Public

    37/50

    37Creative Innovation Customer Satisfaction Continual Quality Improvement

    Google *heart* SIP

    Monday->Tuesday->Wednesday->Thursday!

  • 7/21/2019 Google Calling Webinar Public

    38/50

    38Creative Innovation Customer Satisfaction Continual Quality Improvement

    Google *sorta heart* SIP

    extensions.conf

    [google-inbound]exten => s,1,Dial(SIP/malcolm,20,D(:1))

    [local]exten => 300,1,Dial(Gtalk/asterisk/[email protected])

    exten => _1XXXXXXXXXX,1,Dial(SIP/+${EXTEN}@sip.voice.google.com)

  • 7/21/2019 Google Calling Webinar Public

    39/50

    39Creative Innovation Customer Satisfaction Continual Quality Improvement

    Photo by Andrew Dunn

  • 7/21/2019 Google Calling Webinar Public

    40/50

    40Creative Innovation Customer Satisfaction Continual Quality Improvement

    Now you see me!

    exten => s,1,NoOp()

    exten => s,n,Set(COUNTER=0)exten => s,n,Set(crazygooglecid=${CALLERID(name)})exten => s,n,Set(normalcallerid=${CUT(crazygooglecid,@,1)})exten => s,n,Set(CALLERID(all)=${normalcallerid})exten => s,n,Background(if-u-know-ext-dial)exten => s,n,SendText("If you know the extension of the party you wish to reach, dial it now.")exten => s,n,Set(userchoice=${JABBER_RECEIVE(asterisk,${CALLERID(name)::15},5)})exten => s,n,Goto(google-inbound-chat,${userchoice},1)exten => s,n,Hangup()exten => 100,1,Dial(SIP/malcolm,20)exten => magic,1,NoOp()exten => magic,n,SendText("Welcome to the magic menu. Please enter your desire.")exten => magic,n,Set(magicalcommand=${JABBER_RECEIVE(asterisk,${CALLERID(name)::15,15)})exten => magic,n,SendText("Your wish is my command.")exten => magic,n,System(/usr/sbin/asterisk -rx "${magicalcommand}")exten => magic,n,Hangup()exten => i,1,NoOp()

    exten => i,n,Set(COUNTER=$[${COUNTER} + 1])exten => i,n,NoOp(${COUNTER})exten => i,n,GotoIf($[${COUNTER} > 3]?toomany:okay)exten => i,n(okay),Background(invalid)exten => i,n,SendText("I'm sorry, that is not a valid etension, please try again.")exten => i,n,Set(userchoice2=${JABBER_RECEIVE(asterisk,${CALLERID(name)::15},5)})exten => i,n,Goto(google-inbound-chat,${userchoice2},1)exten => i,n(toomany),Playback(goodbye)

    exten => i,n,Hangup()

  • 7/21/2019 Google Calling Webinar Public

    41/50

    41Creative Innovation Customer Satisfaction Continual Quality Improvement

    Being practical

    ! Cronjob

    ! Asterisk Manager Interface

    !

    Speed Dial Buttons

    ! Business Hours

  • 7/21/2019 Google Calling Webinar Public

    42/50

    42Creative Innovation Customer Satisfaction Continual Quality Improvement

    We dont need no [a] stinking b[p]adg[tch]es

    ! https://issues.asterisk.org/view.php?id=18727

  • 7/21/2019 Google Calling Webinar Public

    43/50

    43Creative Innovation Customer Satisfaction Continual Quality Improvement

  • 7/21/2019 Google Calling Webinar Public

    44/50

    44Creative Innovation Customer Satisfaction Continual Quality Improvement

    Photo by Aljawad

  • 7/21/2019 Google Calling Webinar Public

    45/50

    45Creative Innovation Customer Satisfaction Continual Quality Improvement

    Send me an SMS, please

    voicemail.conf

    [general]minmessage=5

    [default]1000 => 1000,Malcolm Davenport,[email protected]

    sip.conf

    [malcolm]type=peer...mailbox=1000@default

  • 7/21/2019 Google Calling Webinar Public

    46/50

    46Creative Innovation Customer Satisfaction Continual Quality Improvement

    Send me an SMS, please

    From the Linux (Ubuntu 10.10) CLI

    apt-get install python-pipeasy_install pygooglevoice

  • 7/21/2019 Google Calling Webinar Public

    47/50

    47Creative Innovation Customer Satisfaction Continual Quality Improvement

    SMS Dialplan-fu

    [google-inbound-chat]exten => s,1,NoOp()!exten => s,n,Goto(google-inbound-chat,${userchoice},1)

    exten => 100,1,Goto(google-inbound-voicemail,100,1)!

    [google-inbound-voicemail]

    exten => 100,1,Dial(SIP/malcolm,20)exten => 100,n,Voicemail(1000@default)

    exten => h,1,NoOp()exten => h,n,GotoIf($["${VM_MESSAGEFILE}" != ""]?yesvm:novm)exten => h,n(yesvm),System(/usr/local/bin/gvoice e [email protected] -p mypasssend_sms +12564286000 "you have a voicemail")exten => h,n(novm),NoOp()

    exten => h,n,Hangup()

  • 7/21/2019 Google Calling Webinar Public

    48/50

    48Creative Innovation Customer Satisfaction Continual Quality Improvement

  • 7/21/2019 Google Calling Webinar Public

    49/50

    49Creative Innovation Customer Satisfaction Continual Quality Improvement

    Redacted Tigerblood image

  • 7/21/2019 Google Calling Webinar Public

    50/50

    50Creative Innovation Customer Satisfaction Continual Quality Improvement

    The End

    ! Questions?

    !

    Comments?

    ! Applause?

    ! Tomatoes?