为3CX配置直接SIP呼叫(会话启动协议)

直接SIP简介

直接SIP呼叫的启动方式与发送电子邮件的方式非常相似。呼叫者可以从未注册到任何SIP服务器的独立SIP电话、VoIP(VoIP语音)提供商或从已注册到支持直接SIP的IP PBX(专用交换机)的SIP电话呼叫被呼叫者。例如,如果用户从独立的SIP电话呼叫“robert@voiproducts.org”,则呼叫者的软电话会进行适当的DNS查询,以将负责基于SIP的VOIP呼叫的SIP服务器的地址解析为“voiproducts.org”。一旦SIP服务器的IP地址被解析,呼叫者的软电话将与负责域“voiproducts.org”的SIP服务器启动一个SIP会话。或者,如果用户从注册到支持直接SIP的IP PBX或VOIP提供商的SIP电话呼叫“robert@voiproducts.org”,当SIP服务器接收到SIP“invite”消息来启动呼叫时,它会识别域“voiproducts.org”而不是SIP服务器本身的本地域,并生成适当的DNS(domain name system)查询以标识负责域“voiproducts.org”的SIP服务器,然后启动与此SIP服务器的SIP会话。

SMTP和SIP传机制比较

SIP地址的结构与电子邮件地址完全相同。用户的电子邮件地址和SIP地址可能是相同的,也可能是相似的。但是,相同的地址并不意味着邮件服务器也需要处理SIP呼叫,但是相同的[code]user@host格式可以通过处理不同主机或服务器来处理的不同服务。为了简化对直接SIP呼叫背后机制的理解,下面的图表有助于我们快速了解电子邮件传递过程与直接SIP呼叫机制的媲美关系。

假设:

  • 客户端地址为:“ 101@testdomain.com ”。
  • SMTP服务器地址是:“ smtp.testdomain.com ”,“ 192.168.1.4 ”,“ 212.50.1.1 ”。
  • SMTP服务器本地域:“ testdomain.com ”。
  • SIP服务器地址是:“ sip.testdomain.com ”,“ 192.168.1.3 ”,“ 212.50.1.2 ”。
  • SIP服务器本地域:“ testdomain.com ”。
步骤 Action 电子邮件 SIP
1 客户端向服务器发送消息以进行转发 – 目的地“robert@contoso.com” 客户端(直接)连接到SMTP服务器并将消息传递给未知(非本地)用户“robert@contoso.com” 客户端(直接)连接到SIP服务器并将消息传递给未知(非本地)用户“robert@contoso.com”
2 服务器将目标域标识为非本地域 服务器将目标域“contoso.com”标识为非本地域 服务器将目标域“contoso.com”标识为非本地域
3 服务器识别目标域是否提供所请求的服务 服务器做了 对DNS查找的 MX记录“contoso.com”。MX记录是用于通过SMTP(简单邮件传输协议)进行邮件通信的“Mail eXchanger”的服务特定记录。 服务器对“_sip._udp.contoso.com”“_sip._tcp.contoso.com”的SRV记录进行DNS搜索。SRV记录是非特定于服务的,因此“_sip._udp”“_sip._tcp”前缀是标识服务的内容
4 服务器识别哪个主机提供所请求的服务 服务器从步骤3中检索具有最高优先级的“contoso.com”的邮件交换器(MX)的FQDN。返回的FQDN可以是“smtp.contoso.com” 服务器检索SIP服务器的FQDN以获取“contoso.com”和侦听端口号(与SMTP不同,这是SIP的变量),具有来自步骤3的最高优先级和权重。返回的FQDN可以是“sip.contoso.com”
5 服务器标识提供所需服务的主机的IP地址 服务器对“smtp.contoso.com”的A记录进行DNS搜索,以检索分配给此FQDN的IP地址。返回的IP地址可能是“213.165.99.201” 服务器对“sip.contoso.com”的A记录进行DNS搜索,以检索分配给此FQDN的IP地址。返回的IP地址可能是“213.165.99.202”
6 服务器联系主机,为目标域提供服务以传递消息 服务器通过联系IP地址“ 213.165.99.201”启动与“smtp.contoso.com”的SMTP会话 服务器通过联系IP地址“ 213.165.99.202”启动与“sip.contoso.com”的SIP会话

为3CX设置直接SIP呼叫

访问3CX管理控制台中,转到“ 设置” > “ 网络” > “ 域名 ” > “ 设置直接SIP呼叫”。

启用“ 允许拨打/接听外部SIP链接电话”  – 这足以允许已注册的分机通过PBX呼叫某些外部SIP地址。

设置3CX和DNS SRV记录以接收直接SIP呼叫

要使3CX能够接收直接SIP呼叫,我们需要首先为域的DNS服务配置SRV和A记录,然后配置相关的3CX系统设置。以下过程基于Windows Server DNS服务设置:

  1. 确定用于处理呼入直接SIP呼叫的本地域名 – 例如“testdomain.com”
  2. 您需要访问管理工具为您的域名添加的DNS条目.
  • 如果您使用的是Windows DNS服务器,请转到“开始”“程序” > “管理工具” > “DNS”(对于Window s Server 2012)或“开始” > “Windows管理工具”,启动DNS管理控制台> “ DNS ”(适用于Windows Server 2016)。 
  • 展开“ 正向查找区域”  节点,然后右键单击“ testdomain.com ”  条目。在快捷菜单中,选择“ 其他新记录”选项。

 

  • 创建一个新的“ 位置服务(SRV”域记录“ testdomain.com ”为“ _sip._udp.testdomain.com ”,优先级为“ 20 ”,权重为“ 1 ”,端口为“ 5060 ”(此值必须在你的3CX SIP端口设置相匹配,在3CX管理控制台> 设置>网络端口 > SIP端口中查看),主机为testdomain.com(见上文假设部分)。

 

  • 为主机“ sip.testdomain.com ”创建一个新的“ A ”记录,指向IP地址“ 212.50.1.2 ”(见上文假设部分)

  • 在管理控制台中,转到“ 设置” > “ 网络” > “ FQDN ” > “ 直接SIP呼叫的设置”,然后输入值  com作为“ 本地SIP域” – 这使得3CX能够确定是否有直接SIP呼叫的来电适用于此域并丢弃未正确寻址的呼叫。这样,当收到呼入的直接SIP呼叫且目标域不是“ testdomain.com ”时,3CX PBX视此呼叫未授权并拒绝此呼叫。这足以允许来电使用其数字地址到达分机。例如,呼入的直接SIP呼叫为103@testdomain.com

注意: 请参阅下面的相关部分:启用“电子邮件地址样式”寻址直接SIP呼叫

为3CX设置直接SIP呼叫 – 没有SRV记录

在没有SRV记录的情况下呼出和呼入的直接SIP呼叫 意味着您只能在标准的5060 SIP端口上接收标准SIP URI的呼入的直接SIP呼叫。在其他端口上接收直接SIP呼叫的唯一方法是呼入方指定目标地址,并在SIP URI中附加端口号 – 例如“ tomas@sip.testdomain.com :5070 

1、指定用于处理呼入的直接SIP呼叫的本地FQDN – 例如“testdomain.com”。

2、为主机“ sip.testdomain.com ”创建一个新的“ A ”记录,指向IP地址“ 212.50.1.2 ”。要执行此操作,您需要访问域名的管理工具以添加DNS条目(见上文假设部分)。

3、在管理控制台中,转到“ 设置” > “ 网络” > “ FQDN ” > “ 直接SIP呼叫的设置”,然后输入值  testdomain.com作为“ 本地SIP域” – 这使得3CX能够确定是否有直接SIP呼叫的来电适用于此域并丢弃未正确寻址的呼叫。这样,当收到呼入的直接SIP呼叫且目标域不是sip. testdomain.com 时,3CX PBX视此呼叫未授权并拒绝此呼叫。这足以允许来电使用其数字地址到达分机。例如,呼入的直接SIP呼叫为103@testdomain.com

启用“电子邮件地址样式”寻址直接SIP呼叫

要启用“ 电子邮件地址样式”  寻址 并 接受“ tomas@testdomain.com ”的呼入的直接SIP呼叫, 例如Tomas的分机号码为103,请转到“ 分机”,编辑 分机“ 103 ”,转到“ 选项“  并将” SIP ID “  字段值设置为” tomas “  (见上文假设部分)。

要实现“拨0转操作员分机的场景,请在在“SIP ID”字段中设置为“0”。

注意:如果3CX PBX设置的SIP侦听端口是“5060”以外的端口,则远程呼叫者必须指定目标地址,并附加3CX PBX服务器正在侦听的端口号。因此,如果3CX PBX正在侦听的SIP端口是“ 5070 ”,则远程呼叫者必须使用“ tomas@testdomain.com:5070 ” 或“ 103@testdomain.com:5070 ”此格式来作为 呼叫成功的目的地。