Asterisk SIP 中继的问题:有效负载必须来自多云设置中的特定 IP

Asterisk SIP 中继的问题:有效负载必须来自多云设置中的特定 IP

我遇到了一个 Asterisk SIP 中继设置问题,该设置涉及多个云环境和一个会话边界控制器 (SBC)。我们的服务提供商 Airtel 要求 SIP 负载来自特定 IP 地址 (192.168.12.12),这是我们运行 Asterisk 16 LTS 的 SBC。但是,当将另一个拨号器连接到 SBC(也在 Asterisk 16 LTS 上)时,Airtel 拒绝了这些呼叫,显然认为它们来自不同的 IP(10.70.1.15),而不是所需的 192.168.12.12。尽管 NAT 配置和设置存在问题,但仍会出现此问题fromdomain。该设置涉及两个不同的虚拟私有云 (VPC)。

Cloud 1 VPC 用于 Cloud 1 SBC 星号配置

[AIRTELSIP]
host=172.68.78.89 ;public is used here 
type=peer
port=5060
canreinvite=yes
context=default
insecure=port,invite
trustrpid=yes
sendrpid=yes
directmedia=no
qualify=yes
fromdomain=192.168.12.12 ;public is used here 
nat=yes
dtmfmode=rfc2833
disallow=all
allow=ulaw
allow=alaw
user=phone

[ASTTEST]
context=externalcalls
host=10.70.1.15 ;public is used here 
type=peer
port=5060
fromdomain=192.168.12.12 ;public is used here 
canreinvite=yes
insecure=port,invite
trustrpid=yes
sendrpid=yes
directmedia=no
qualify=yes
dtmfmode=rfc2833
disallow=all
allow=ulaw
allow=alaw
user=phone

[general]
nat=yes
externip = 192.168.12.12
localnet =10.8.0.5/24
registerattempts=0
registertimeout=60

用于云 1 SBC 星号配置的 extensions.conf

[globals]
[general]
[default]
[externalcalls]
exten => _.,1,NoOp()
exten => _.,n,Dial(SIP/AIRTELSIP/${EXTEN:1})
exten => _.,n,Hangup

sip.conf 连接云端 2 中用户的 PABX/拨号器

[SBCTEST]
context=outgoing
host=192.168.12.12
type=peer
port=5060
canreinvite=yes
insecure=port,invite
trustrpid=yes
sendrpid=yes
directmedia=yes
qualify=yes
dtmfmode=rfc2833
disallow=all
allow=ulaw
allow=alaw
user=phone
nat=yes
fromdomain=192.168.12.12

[100]
type=friend
username=100
callerid=100
secret=Ret26#%@$@GHfdg
context=outgoing
host=dynamic
allow=all
nat=yes

[general]
registerattempts=0
registertimeout=60
nat=yes
externip = 192.168.12.12
localnet =10.8.0.5/24

extensions.conf 连接云端 2 中用户的 PABX/拨号器

[outgoing]
exten => _.,1,NoOp()
exten => _.,n,Dial(SIP/SBCTEST/${EXTEN:1})
exten => _.,n,Hangup

物理图说明了 SBC 和 PABX 的设置,请注意,它们托管在不同的云环境中

问题:

Airtel 拒绝了来自 Cloud 2 (10.70.1.15) 的呼叫,因为它们似乎来自 10.70.1.15,而不是所需的 192.168.12.12,尽管fromdomain和 NAT 设置。

问题:

如何确保所有 SIP 流量(无论其源自哪个云环境)在 Airtel 看来都来自所需的 IP(192.168.12.12)?为了实现这一点,是否需要在 Asterisk 或网络设置中进行特定配置或调整?

  1. NAT 配置:我已经在 Asterisk 配置文件中配置了 NAT 设置,目的是确保所有流量都来自 IP 192.168.12.12。

  2. fromdomain环境:在 SBC 和 PABX 配置中,我都设置了fromdomain=192.168.12.12指定所需的原始 IP 地址。

  3. 直接媒体:我尝试过启用和禁用directmedia设置,因为它控制媒体流是否在端点之间直接发送。

  4. 网络分析:我进行了网络流量分析以确认 SIP INVITE 确实是从正确的 IP 地址发送的,但 Airtel 似乎仍将源识别为 10.70.1.15。

  5. 咨询文档:我查看了 Asterisk 和网络配置文档,以查找我可能遗漏的任何相关设置或参数。

  6. 使用不同场景进行测试:我尝试连接来自同一 VPC 和不同 VPC 的呼叫,以隔离该问题是否特定于跨 VPC 通信。

  7. 以下是我致电时收到的回复

    Using SIP RTP CoS mark 5
        -- Called SIP/AIRTELSIP/07042047961
        -- Got SIP response 500 "Server Internal Error" back from 172.68.78.89:5060
        -- SIP/AIRTELSIP-00000e30 is circuit-busy
      == Everyone is busy/congested at this time (1:0/1/0)
    
    

剩余挑战:

尽管做出了这些努力,问题仍然存在:Airtel 仍然认为呼叫来自 10.70.1.15,而不是 192.168.12.12。我正在寻找有关我还可以尝试什么的见解或建议,或者我是否可能忽略了配置的某个特定方面。

相关内容