在星号中设置的联系地址基于什么,以及如何覆盖/配置它?

问题描述 投票:0回答:1

我正在使用Asterisk版本1.8.32.3

Asterisk服务器正在AWS EC2实例上运行(并且不在NAT后面)。它正在与与Asterisk位于同一局域网中的Kamailio服务器进行通信。

我正在观察的问题是,每当Asterisk向Kamailio发送任何SIP请求(如OPTIONS或INVITE)时,它都会在联系人标头而不是本地IP中设置其公共IP。因此,对于呼叫中的任何REINVITE,Kamailio都会尝试将数据包发送到Asterisk的公共IP,这是不必要的。我的sip.conf的相关部分提供如下:

[general]

context=sip-archit
subscribecontext=sip-archit
externip=x.x.x.x (Public IP)
localnet=10.x.x.x/255.255.255.0

;Kamailio
[kamailio.dummy.com]
type=friend
;kamailio.dummy.com (hostname changed from actual) resolves to 10.x.x.x IP address
host=kamailio.dummy.com
disallow=all
allow=ulaw
allow=alaw
nat=no
insecure=invite,port
canreinvite=no
context=sip-archit
sendrpid=yes
trustrpid=yes
relaxdtmf=yes
qualify=yes

所以我的问题是:

  1. Asterisk根据什么决定在联系人标题中使用公共IP还是本地IP?
  2. 在这种情况下,Asterisk在联系人头中使用本地IP是合乎逻辑的,因为kamailio机器位于同一本地网络中?
  3. 如何解决此问题,以便联系人标头具有本地IP?同样,一般而言,如何配置/覆盖星号中的联系人标题?
asterisk sip sip-server
1个回答
0
投票

如果您的kamailio在本地网络中,请使用externalip = localip。

您也可以在[general]部分中使用realm =进行实验,在kamailio中使用from-domain进行实验。

但是正确的kamailio设置只是忽略联系并使用from-uri和destination-uri。

© www.soinside.com 2019 - 2024. All rights reserved.