Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Automatic update to correct links

...

Section


Column
width55%
Table of Contents
Panel

Table of Contents
maxLevel4



Column
width5%



Column
width55%


Noprint

Add_workflow_for_appnotes
AUTH2UserResourceIdentifier{userKey=8a00a02355cd1c2f0155cd26cebf0c50, userName='null'}
AUTH1UserResourceIdentifier{userKey=8a00a0c86573c0900165b31a689f0052, userName='null'}
REV5UserResourceIdentifier{userKey=8a00a02355cd1c2f0155cd26cd5909df, userName='null'}
REV6UserResourceIdentifier{userKey=8a00a02355cd1c2f0155cd26cb220566, userName='null'}
REV4UserResourceIdentifier{userKey=8a00a02355cd1c2f0155cd26c8a10148, userName='null'}
REV1UserResourceIdentifier{userKey=8a00a02355cd1c2f0155cd26cebf0c50, userName='null'}



...

  • Ribbon SBC Core
  • Ribbon SBC Core license
    • A valid license from Ribbon is required to enable functionality on Ribbon SBCs. Each SBC license provides a base set of capabilities to allow enabling and adding of additional features and capacity, as required.
  • Public IP addresses
  • TLS certificates for SBC Core
  • Google Workspace and Domain
    • Google Voice Premier license for the users
    • For more details, contact Google Support

...

To deploy Ribbon SBC Core standalone instance, refer to SBC Core 9.2.x Documentation

Ribbon SBC High Availability

To deploy Ribbon SBC Core in HA mode on different platforms, refer to SBC Core Software Installation and Upgrade Guide

Info
titleInfo

During this interop, SBC Core HA was installed on VMware platform by following the procedure described in Installing SBC Application in High Availability Mode.


Tip
titleTip
  • After successful installation, ensure the time on both Active and Standby SBCs is in sync.
  • NTP Sync verification:
    • Run the command 'timedatectl' to check if NTP is synchronized.
    • File /etc/ntp.conf should contain the IP of the NTP server that you have configured during installation.

...

  • For TLS to work, a Trusted CA (Certificate Authority) is required. For this interop, GoDaddy is used as a Trusted CA.
  • Add an entry in the Public DNS to resolve Ribbon SBC Core FQDN to Public IP Address.
  • In the trust store of the SBC, ensure you have the following certificates as part of the root certificate trust.
    • GTS Root R1
    • GlobalSign R2 Root CA (if required)
Info
titleNote

Refer to Google Voice SIP Link documentation for other compatible CAs.

...

Code Block
set profiles services pathCheckProfile GOOGLE protocol sipOptions
set profiles services pathCheckProfile GOOGLE sendInterval 3010
set profiles services pathCheckProfile GOOGLE replyTimeoutCount 1
set profiles services pathCheckProfile GOOGLE recoveryCount 1
set profiles services pathCheckProfile GOOGLE transportPreference preference1 tls-tcp
set profiles services pathCheckProfile GOOGLE transportPreference preference2 tcp
commit

...

Code Block
set profiles signaling sipAdaptorProfile GOOGLE_ADP state enabled
set profiles signaling sipAdaptorProfile GOOGLE_ADP advancedSMM disabled
set profiles signaling sipAdaptorProfile GOOGLE_ADP profileType messageManipulation
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 1 applyMatchHeader one
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 1 criterion 1 type message
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 1 criterion 1 message
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 1 criterion 1 message messageTypes requestAll
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 1 action 1 type header
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 1 action 1 operation add
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 1 action 1 headerPosition last
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 1 action 1 from
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 1 action 1 from type header
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 1 action 1 from value <trunk_secret_key>
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 1 action 1 to
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 1 action 1 to type header
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 1 action 1 to value X-Google-Pbx-Trunk-Secret-Key
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 2 applyMatchHeader one
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 2 criterion 1 type message
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 2 criterion 1 message
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 2 criterion 1 message messageTypes request
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 2 criterion 1 message methodTypes [ cancel invite ack ]
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 2 criterion 2 type header
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 2 criterion 2 header
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 2 criterion 2 header name request-line
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 2 criterion 2 header condition exist
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 2 criterion 2 header numberOfInstances number 1
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 2 criterion 2 header numberOfInstances qualifier equal
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 2 action 1 type token
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 2 action 1 operation regsub
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 2 action 1 from
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 2 action 1 from type value
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 2 action 1 from value trunk.sip.voice.google.com
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 2 action 1 to
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 2 action 1 to type token
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 2 action 1 to tokenValue urihostname
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 2 action 1 regexp
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 2 action 1 regexp string "^((25[0-5]|(2[0-4]|1[0-9]|[1-9]|)[0-9])(\.(?!$)|$)){4}$"
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 2 action 1 regexp matchInstance one
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 3 applyMatchHeader one
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 3 criterion 1 type message
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 3 criterion 1 message
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 3 criterion 1 message messageTypes request
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 3 criterion 1 message methodTypes [ cancel invite ack ]
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 3 criterion 2 type header
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 3 criterion 2 header
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 3 criterion 2 header name To
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 3 criterion 2 header condition exist
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 3 criterion 2 header numberOfInstances number 1
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 3 criterion 2 header numberOfInstances qualifier equal
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 3 action 1 type header
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 3 action 1 operation regsub
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 3 action 1 headerInfo fieldValue
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 3 action 1 from
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 3 action 1 from type value
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 3 action 1 from value trunk.sip.voice.google.com
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 3 action 1 to
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 3 action 1 to type header
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 3 action 1 to value To
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 3 action 1 regexp
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 3 action 1 regexp string siplink.telephony.goog
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 3 action 1 regexp matchInstance one
commit

The SMM SIP_OPTIONS is used to modify the FQDN in request URI and To header of OPTIONS to Google specified FQDN, trunk.sip.voice.google.com

Code Block
set profiles signaling sipAdaptorProfile SIP_OPTIONS state enabledGOOGLE_ADP rule 4 applyMatchHeader one
set profiles signaling sipAdaptorProfile SIPGOOGLE_OPTIONSADP advancedSMMrule disabled
set4 profilescriterion signaling1 sipAdaptorProfile SIP_OPTIONS profileType messageManipulationtype message
set profiles signaling sipAdaptorProfile SIPGOOGLE_OPTIONSADP rule 4 criterion 1 applyMatchHeader onemessage
set profiles signaling sipAdaptorProfile SIPGOOGLE_OPTIONSADP rule 14 criterion 1 message messageTypes request
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 4 criterion 1 message methodTypes [ cancel invite ack ]
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 4 criterion 2 type header
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 4 criterion 2 header
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 4 criterion 2 header name request-line
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 4 criterion 2 header condition exist
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 4 criterion 2 header numberOfInstances number 1
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 4 criterion 2 header numberOfInstances qualifier equal
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 4 action 1 type token
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 4 action 1 operation regsub
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 4 action 1 from
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 4 action 1 from type value
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 4 action 1 from value trunk.sip.voice.google.com
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 4 action 1 to
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 4 action 1 to type token
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 4 action 1 to tokenValue urihostname
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 4 action 1 regexp
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 4 action 1 regexp string siplink.telephony.goog
set profiles signaling sipAdaptorProfile GOOGLE_ADP rule 4 action 1 regexp matchInstance one
commit

The SMM SIP_OPTIONS is used to modify the FQDN in request URI and To header of OPTIONS to Google specified FQDN, trunk.sip.voice.google.com

Code Block
set profiles signaling sipAdaptorProfile SIP_OPTIONS state enabled
set profiles signaling sipAdaptorProfile SIP_OPTIONS advancedSMM disabled
set profiles signaling sipAdaptorProfile SIP_OPTIONS profileType messageManipulation
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 1 applyMatchHeader one
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 1 criterion 1 type messagetype message
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 1 criterion 1 message
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 1 criterion 1 message messageTypes request
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 1 criterion 1 message methodTypes [ options ]
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 1 criterion 2 type header
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 1 criterion 2 header
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 1 criterion 2 header name request-line
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 1 criterion 2 header condition exist
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 1 criterion 2 header numberOfInstances number 1
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 1 criterion 2 header numberOfInstances qualifier equal
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 1 action 1 type token
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 1 action 1 operation regsub
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 1 action 1 from
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 1 action 1 from type value
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 1 action 1 from value trunk.sip.voice.google.com
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 1 action 1 to
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 1 action 1 to type token
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 1 action 1 to tokenValue urihostname
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 1 action 1 regexp
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 1 action 1 regexp string siplink.telephony.goog
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 1 action 1 regexp matchInstance one
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 2 applyMatchHeader one
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 2 criterion 1 type message
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 2 criterion 1 message
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 2 criterion 1 message messageTypes request
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 2 criterion 1 message methodTypes [ options ]
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 2 criterion 2 type header
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 2 criterion 2 header
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 2 criterion 2 header name To
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 2 criterion 2 header condition exist
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 2 criterion 2 header numberOfInstances number 1
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 2 criterion 2 header numberOfInstances qualifier equal
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 2 action 1 type header
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 2 action 1 operation regsub
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 2 action 1 headerInfo fieldValue
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 2 action 1 from
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 2 action 1 from type value
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 2 action 1 from value trunk.sip.voice.google.com
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 2 action 1 to
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 2 action 1 to type header
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 2 action 1 to value To
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 2 action 1 regexp
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 2 action 1 regexp string siplink.telephony.goog
set profiles signaling sipAdaptorProfile SIP_OPTIONS rule 2 action 1 regexp matchInstance one
commit

...

Code Block
set addressContext default zone GOOGLE sipSigPort 3 ipInterfaceGroupName LIF2 ipAddressV4 x.x.x.x portNumber 5061 transportProtocolsAllowed sip-tls-tcp
set addressContext default zone GOOGLE sipSigPort 3 tlsProfileName TLS_PROF
set addressContext default zone GOOGLE sipSigPort 3 tcpKeepaliveTime 100
set addressContext default zone GOOGLE sipSigPort 3 tcpKeepaliveInterval 60
set addressContext default zone GOOGLE sipSigPort 3 tcpKeepaliveProbes 2
set addressContext default zone GOOGLE sipSigPort 3 mode inService state enabled
commit

Trunk Group

Info
titleNote

IngressIpPrefix must be entered with Google Voice SIP Link's Signaling IP address.


Code Block
set addressContext default zone GOOGLE sipTrunkGroup GOOGLE_TG media mediaIpInterfaceGroupName LIF2
set addressContext default zone GOOGLE sipTrunkGroup GOOGLE_TG signaling timers sessionKeepalive 1800
set addressContext default zone GOOGLE sipTrunkGroup GOOGLE_TG signaling timers sessionMinSE 90
set addressContext default zone GOOGLE sipTrunkGroup GOOGLE_TG ingressIpPrefix x.x.x.x x
set addressContext default zone GOOGLE sipTrunkGroup GOOGLE_TG policy media packetServiceProfile GOOGLE_PSP
set addressContext default zone GOOGLE sipTrunkGroup GOOGLE_TG policy signaling ipSignalingProfile GOOGLE_IPSP
set addressContext default zone GOOGLE sipTrunkGroup GOOGLE_TG services natTraversal tcpKeepaliveTimer 240
set addressContext default zone GOOGLE sipTrunkGroup GOOGLE_TG signaling messageManipulation outputAdapterProfile GOOGLE_ADP
set addressContext default zone GOOGLE sipTrunkGroup GOOGLE_TG mode inService state enabled
commit

...

The following items should be noted in relation to this Interop - these are either limitations, untested elements or useful information pertaining to the Interoperability.

  • Short Code calls are not supported on Google Voice clients.
  • After an SBC switchover, the SBC takes around 45 approximately 12-16 seconds to establish a new TCP socket connection with GV for sending first SIP OPTIONS (with OPTIONS "pathcheck" profile interval set to 10 seconds) over TLS.  HenceHence, all the calls, including in-dialog messages initiated from GV the Google Voice end towards PSTN during this period, will be failed as fail because GV does not initiate any new socket sockets for a TLS connection , unless a new call/In-dialog request from PSTN end is initiated towards GV over TLS. 

These issues will be addressed by GV/Ribbon in their upcoming releases.

...