引言 本次测试环境搭建参考如下文档: 链接: 配置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并测试**
由于本次路由转换规则只是配置了手机,因此我们只能打外部手机