引言
本次测试环境搭建参考如下文档:
链接:
配置Teams:https://thamaraw.com/2018/07/04/direct-routing-configuration-with-microsoft-teams-and-audiocodes-virtual-sbc-part-1/
正则表达式:https://blog.51cto.com/ucworld/441917
文档:
Audiocodes SBC with MS teams Direct Routing Enterprise Model Configuration Note*
1 架构拓扑
本次测试环境包含如下组件:
- 微软Office 365国际版E5(含Teams/Phone system许可)
- 奥科VE SBC VMWare V7.20A.156.028(包含 SW/Teams和SBC测试许可)
- Avaya CM 7.0(包含SIP Trunk许可)
- VMWare 5.5虚拟化平台虚拟机一台
- 公网证书一张(包含SBC FQDN一个)
- 内网IP 2个/公网IP 1个
2 基础环境
2.1 域名信息
AD Domain:domain.com.cn
SIP Domain:domain.com.cn
Office 365 Domain:domain.com.cn
2.2 IP地址信息
Role | IP | Mask | Gateway | Comments |
---|---|---|---|---|
SBC内网 | 10.21.196.160 | 24 | 10.21.196.252 | 公网IP:220.248.21.142 |
SBC外网 | 10.21.198.110 | 24 | 10.21.198.252 | - |
Avaya | 10.21.198.22 | 24 | 10.21.198.252 | TCP 5060 |
Teams | Teams.local | - | - | 公网DNS解析 |
2.3 用户名密码
网关默认用户名密码:Admin
3 部署VE SBC
部署SBC之前请提前通过以下链接下载对应版本的软SBC软件
Virtual Edition (VE):
VMware: https://audiocodes.sharefile.com/d-s6c29b271d1f4e0c8
KVM: https://audiocodes.sharefile.com/d-sa7e6187a2ef4e5ea
Hyper-V: https://audiocodes.sharefile.com/d-s7f347ccab9d4b149
Server Edition (SE):
ISO: https://audiocodes.sharefile.com/d-s75b567dfd274f3a8
3.1 导入SBC
通过VM管理客户端将下载好的软SBC软件导入,导入之前首先将多网卡配置完成。导入完成后通过VM Clinet的控制台通过如下命令完成基础网络配置
命令:
User Name:Admin
Password:admin
Enable
Password:Admin
#configure network
(config-network)# interface network-if 0
(network-if-0)#
(network-if-0)# ip-address 10.4.212.155 (请使用真实IP)
(network-if-0)# prefix-length 16 (请使用真实掩码长度)
(network-if-0)# gateway 10.4.0.1 (请使用真实网关地址)
(network-if-0)# activate
(network-if-0)# exit
配置完成即可通过WEB管理端进入管理
3.2 配置网络
输入默认用户名密码Admin/Admin登陆Web管理控制台,由于我们本次测试环境需要配置双网卡,第二张网卡我们通过Web端进行配置。首先查看Physical Ports(setup-IP network-Core Entities-Physical Ports),确认有两个物理网卡并且状态都是Active
然后检查Ethernet Groups(setup-IP network-Core Entities-Ethernet Groups),确保每一个Group里面包含了对应的物理网卡
进入Ethernet Devices(setup-IP network-Core Entities-Ethernet Devices),点击New按钮,按如图进行第二张网卡的添加(此处的网卡为SBC内部网卡,与物理网卡,组对应)
最后配置IP Interfaces(setup-IP network-Core Entities-IP Interfaces),点击New
再出现的窗口中按如图进行配置,注意一个SBC只能由一个OAM地址(报错是因为默认OAMP地址没有删除导致,也可以直接修改默认IP Interfaces的配置)
最终效果如下:两个IP Interfaces,分别会用来对应内网和外网。
3.3 导入SBC许可
软SBC默认自带3路SBC并发测试许可,但是由于需要启用SILK NB/WB和OPUS协议编码用来支持Teams,因此需要额外的Teams支持许可(SW/Teams),将INI File导出并发送给奥科申请测试许可
收到序列号后复制
然后点击右上角的actions,找到License Key,点击下方Load String,将复制的Key黏贴到弹出框中,点击Apply
3.4 配置加密
和微软的Teams对接必须要加密,因此需要配置加密证书,setup-ip network-security-TlS Contexts,点击添加
打开的页面中按如图配置点击apply
完成后选中刚创建的TLS Contexts,拉到最下面,点击change certificate
如果需要改key size,拉到下方先修改,然后点击生成private key
然后回到顶部,将相关信息填写完整,然后点击create CSR,并将生成的CSR拷贝至TXT文件中,将TXT发送给证书供应商
收到证书供应商颁发的证书后,load证书
在顶部提示load成功
返回到上一页面,点击certification info会看到证书信息,如果证书供应商提供中间证书,可以点击trusted Root cerificates,然后在打开的页面中进行配置
直接点击Import,出现页面中选择文件点击OK即可(本次测试环境由于证书供应商没有提供该中间证书,因此没有配置该证书)
3.5 创建Media Realms
Media Realms是媒体的通道,用来定义媒体使用的端口等信息,配合SIP interface一起,后期将绑定到相应的IP Group中,要创建Media Realms需要通过setup-signaling&media-core entities-media realms,然后点击New
按照如下图进行媒体端口配置,本次测试环境将配置两个Media Realms,分部对应内网和外网
下图为需要配置的参数,具体参数值根据实际情况填写
完成后效果图
3.6 创建Signaling Interface
SIP interface是信令的通道,用来定义信令使用的端口等信息,后期将绑定到相应的IP Group中,要创建Sip Interface需要通过setup-signaling&media-core entities-Sip interface,然后点击New
如图进行配置,本次测试环境需要创建两个SIP Interface,分部用于外部Teams和内部Avaya。
下图为需要具体配置的参数,具体参数值以实际情况为准
完成后效果图
3.7 配置Proxy sets
Proxy Sets是一组相同属性的IP地址集合,如多台SFB前端服务器,或者多台同样作用的SIP服务器,这些同类型同作用的服务器集合就需要将IP地址全部写入一个Proxy sets列表中,要配置Proxy sets,点击setup-sinagling&media-core entities-Proxy sets,点击new
打开的页面中,按如下两图进行配置,本次测试环境将创建两个proxy sets,分部代表teams和Avaya
如下图是实际需要配置的参数,参数值根据实际情况填写
完成创建后,回到上一页面,选中创建的proxy sets,拉到最下方,点击Proxy address items
弹出的页面中,对应填写相关的IP地址,Teams比较特殊,需要写FQDN(固定),后期通过DNS解析来解析IP地址
3.8 创建内部SRV记录
由于Teams填写的是FQDN,因此需要创建此项配置用来让SBC可以解析该FQDN,在Internal SRV页面中,直接点击New
弹出窗口中按照下图填写(固定)
3.9 配置code group
微软的Teams支持SILK通信协议,为了配合Teams的使用,需要配置如下Code,在code groups页面中,按照如图进行配置(SILK NB/WB OPUS需要通过SW/Teams许可激活)
3.10 配置IP Profile
IP Profile是一组用户针对信令媒体进行自定义的一个参数,后期将绑定到IP Group中,如需创建IP Profile,请通过setup-signaling&media-coders&profiles-Ip profile,然后点击New,按照如图进行配置
完成后效果
3.11 创建IP Group
IP Group是一组同类型的服务器集合,如多台SFB前端,IP Group只是一个容器,具体配置要通过IP Profile,Media Realms等配置关联。请浏览至setup-signaling&media-core entities
-Ip group,然后点击New。请按照下图进行配置(Proxy keep-alive using ip group settings没有配置)(针对内部Avaya的配置可能有所不同)
完成后效果
3.12 配置SRTP
微软的Teams必须要用SRTP,因此在media中需要启用SRTP,默认是不启用的。
3.13 创建message condition rules
3.14 创建Classsification Rule
3.15 创建IP2IP路由
请根据实际情况配置IP2IP的路由
Teams to avaya
Avaya to teams
3.16 配置call line ID
3.17 配置NAT
由于SBC需要发布才能被Teams连接,因此需要进行NAT,配置NAT需要到Setup-IP Network-Core Entities-NAT Translation,点击New,按照之前规划端口进行NAT发布
配置NAT后需要启用NAT,如需启用需要通过Setup-Signaling&media-Media-Media settings,在右边窗口将Nat Traversal参数值修改成Nat by signaling
3.18 检查配置
完成后可以检查SBC和Teams和Avaya的连通情况。可以通过Monitor-VOIP Status-Proxy sets status,确保所有状态都是Online。如果发现Offline需要进行相关排查。本次测试环境发现和teams对接是offline
查看警告,发现有proxy set proxy lost 报错,尝试修改Keep A-live Option参数为disable解决该问题,Teams可能无法发送Option消息。
修改后状态正常
4 配置Office 365
4.1 添加域
登陆Office 365管理控制台,在安装-域中点击添加域
输入你所拥有的域,点击下一步
然后通过选择某一方式进行验证,本次测试环境使用TXT记录验证
将如下记录添加到公网DNS中,然后点击验证
选择一种方式,然后点击下一步
选择SFB,点击下一步
出现推荐的DNS记录,并联通SBC的FQDN一起在公网DNS中进行添加
点击完成,完成域添加
如果看到!号,说明DNS没有加好
4.2 安装管理工具并连接Teams
如果需要对Teams进行配置,需要通过远程Powershell命令进行管理。需要安装如下模块确保可以连接Teams。
安装sfb online powershell和powershell 3.0
https://docs.microsoft.com/en-us/SkypeForBusiness/set-up-your-computer-for-windows-powershell/set-up-your-computer-for-windows-powershell
https://www.microsoft.com/zh-CN/download/details.aspx?id=41950
先安装msonline模块,以下所有的用户名都用domain.com.cn后缀的用户名。首先需要有一个domain.com.cn后缀的管理员,不然后期管理会出现域没添加的报错
然后通过如下命令进行Teams的连接,中间会提示输入用户名密码,请输入365管理员的用户名密码(用户名需要使用domain.com.cn后缀的)
Import-Module MSOnline
Connect-MsolService -Credential $credential
Import-Module LyncOnlineConnector
$lyncSession = New-CsOnlineSession -Credential $cred
Import-PSSession $lyncSession -allowClobber
4.3 创建配对SBC
通过GCM命令查看是否成功连接到Teams,如出现下图,说明连接正常
然后通过New-CsOnlinePSTNGateway -Fqdn <SBC FQDN> -SipSignallingPort <SBC SIP Port> -MaxConcurrentSessions <Max Concurrent Sessions the SBC can handle> -Enabled $true创建SBC
通过get命令可以查看创建的SBC配置
4.4 创建Dial Plan
通过如下命令创建Dial Plan,规则需要通过正则表达式写:(命令参数值根据实际情况来)
$rule1 = New-CsVoiceNormalizationRule -Parent Global -Name AU-Mobile -Description “Australia Mobile Numbers” -Pattern ‘^0([45]\d{8})$’ -Translation ‘+61$1’ -InMemory
$rule2 = New-CsVoiceNormalizationRule -Parent Global -Name AU-Local -Description “Perth Local Numbers” -Pattern ‘^([2-9]\d{7})$’ -Translation ‘+618$1’ -InMemory
Set-CsTenantDialPlan -Identity Global -NormalizationRules @{add=$rule1,$rule2}
4.5 创建pstnusage
Set-CsOnlinePstnUsage -Identity Global -Usage @{Add=”AU-Mobile”}
4.6 创建routing
New-CsOnlineVoiceRoute -Identity “AU-Mobile” -NumberPattern “^+61(45(\d{7}))$” -OnlinePstnGatewayList sbc.uctechie.com -Priority 2 -OnlinePstnUsages “AU-Mobile“
4.7 创建语音策略
New-CsOnlineVoiceRoutingPolicy “AU-AllCalls” -OnlinePstnUsages “AU-Mobile”
分配语音策略(有时候会失败,多试几次)
4.8 配置用户
Set-CsUser -Identity thamaraw@uctechie.com -EnterpriseVoiceEnabled $true -HostedVoiceMail $true -OnPremLineURI tel:+61893423245
如下两条命令用来配置客户端首选Teams,不然在SFB和Teams同时使用的环境下将优先使用SFB作为用户的语音客户端
Grant-CsTeamsInteropPolicy -PolicyName DisallowOverrideCallingTeamsChatTeams -Identity thamaraw@uctechie.com
Grant-CsTeamsCallingPolicy -PolicyName Tag:AllowCalling -Identity thamaraw@uctechie.com![]
4.9 登陆Teams并测试**
由于本次路由转换规则只是配置了手机,因此我们只能打外部手机