我們的 Asterisk 伺服器上有一個棘手的問題,我們正在努力解決這個問題,我希望比我更有知識的人可以提供幫助。
我們在 Centos 6.4 上運行 Asterisk 1.8.23.0,我們的電話和 asterisk 伺服器位於防火牆內部,而我們的 voip 服務提供者位於外部。防火牆由外部公司設定和管理。
我們目前有兩家 VoIP 服務供應商,A
,他們處理大部分入站流量和所有出站流量,以及B
處理我們的部分入站流量,這些流量透過外部 IVR 路由到我們的呼叫中心。
在最近的安全審計中,我們被告知我們應該讓所有 VoIP 流量都通過防火牆,並且我們決定分兩個階段執行此操作。
第一階段是讓我們接收到的入站流量B
穿過防火牆,然後在第二階段A
也透過防火牆發送入站和出站流量。我們目前陷入第一階段。
最初,我們嘗試在文件的 部分中設定externip
和,但這破壞了我們的主要 VoIP 服務提供者上的 VoIP 流量,因此我們嘗試將它們設定在我們的輔助 VoIP 服務提供者的文件中的特定條目中,如下圖所示:localnet
[general]
sip.conf
A
sip.conf
B
[A]
type=friend
disallow=all
allow=alaw
allow=g729
context=fromneotel
host=aaa.aaaa.aaa.aaa
insecure=port,invite
nat=no
directmedia=no
[B]
type=friend
disallow=all
allow=g711
allow=g729
allow=alaw
context=fromis1
host=bbb.bbb.bbb.bbb
insecure=port,invite
nat=yes
directmedia=no
externip=ccc.ccc.ccc.ccc
localnet=192.68.20.0/255.255.252.0
其中aaa.aaa.aaa.aaa
是 的 ip A
,bbb.bbb.bbb.bbb
是 的 ip B
,ccc.ccc.ccc.ccc
是防火牆的外部 ip。
完成這些設定後,呼叫中心可以透過 IVR 接聽電話,但一旦呼叫接通,外部呼叫者可以聽到呼叫中心座席的聲音,但呼叫中心座席無法聽到呼叫者的聲音。
我們的 VoIP 服務提供者告訴我們,SDP 部分200 OK SIP
的回應中向他們提供了要傳送媒體的 IP 位址。ccc.ccc.ccc.ccc
ddd.ddd.ddd.ddd
ddd.ddd.ddd.ddd
是我們的星號伺服器的 IP,B
當我們不嘗試透過防火牆傳遞流量時,該伺服器通常會連接到該伺服器。這是我們從他們那裡收到的訊息:
Via: SIP/2.0/UDP bbb.bbb.bbb.bbb:5060;branch=z9hG4bKmm63qe00d8ogcio100k0.1;received=bbb.bbb.bbb.bbb
From: "Anonymous"<sip:<originating number from IVR>@bbb.bbb.bbb.bbb:5060;user=phone>;tag=1641833502-1377756054727-
To: "<call centre number>"<sip:<call centre number>@ccc.ccc.ccc.ccc:5060>;tag=as43201e45
Call-ID: [email protected]
CSeq: 609518180 INVITE
Server: Asterisk PBX 1.8.23.0
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Contact: <sip:<call centre number>@ccc.ccc.ccc.ccc>
Content-Type: application/sdp
Content-Length: 260
v=0
o=root 1148542603 1148542603 IN IP4 ddd.ddd.ddd.ddd
s=Asterisk PBX 1.8.23.0
c=IN IP4 ddd.ddd.ddd.ddd
t=0 0
m=audio 11064 RTP/AVP 18 101
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=no
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20
a=sendrecv
據B
我們的二級 VoIP 服務提供商稱,這是造成問題的線路:o=root 1148542603 1148542603 IN IP4 ddd.ddd.ddd.ddd
eee.eee.eee.eee
是一個我不認識且一無所知的IP位址。
任何幫助是極大的讚賞。
答案1
NAT VOIP 時,無音訊或單向音訊的呼叫是一個常見問題。顯然,您已經找到了問題的根源:攜帶語音的資料包被傳送到錯誤的位址。
首先,我會與維護防火牆的人員核實,如果防火牆物有所值,那麼他們無疑可以採取一些措施來解決問題或使進一步的診斷變得更容易。
如果做不到這一點,請詢問您的提供者是否支援 IAX2 中繼。 IAX2 不會遇到 SIP 的 NAT 問題。
祝你好運。