本檔案介紹Cisco IOS®中的語音來源群組(VSG)功能,此功能允許閘道或思科整合邊界元件(CUBE)識別來源並控制VoIP通話的路由。
如果您遇到想要通過阻止來自欺詐IP地址的呼叫信令來實施收費欺詐的情況,則可以使用Cisco IOS 15.1(2)T中引入的收費欺詐防護功能。如需詳細資訊,請參閱IOS版本15.1(2)T中的收費欺詐防護功能文章。
但是,如果您有較舊版本的Cisco IOS,或者需要這些額外的控制,則應考慮VSG功能:
VSG功能允許您確定VoIP呼叫的來源,以便為該呼叫提供所選服務。這些服務包括弧碼轉換、入站撥號對等體匹配和呼叫接受/拒絕控制。此外,此功能還允許您以長途欺詐應用無法實現的方式控制(允許的)呼叫的路由。例如,您可以將語音轉換與VSG關聯,以便在呼叫到達入站撥號對等體之前操作呼叫/被叫號碼。此功能非常強大,因為具有相同撥號的呼叫可以通過不同的入站撥號對等體進行路由。
VSG使用Cisco IOS存取控制清單(ACL)來完成識別。
配置標準IOS ACL以指定接受和處理呼叫的源的IP地址。然後在關聯的VSG中引用該ACL。
如果來源(來話呼叫)的IP地址在ACL中沒有條目,網關不會將VSG與呼叫相關聯。這意味著呼叫不受VSG下配置的任何操作的控制。
如果要拒絕來自特定IP地址的呼叫,該IP地址必須包含在ACL下的deny語句中。
或者,配置deny any語句以拒絕來自任何未明確允許或拒絕的IP地址的呼叫。
在VSG下可配置拒絕來電的原因代碼。預設情況下,斷開原因為no-service。這轉換為Session Initiation Protocol(SIP)呼叫的500內部伺服器錯誤,以及H.323呼叫的ReleaseComplete的原因代碼63(服務或選項不可用,未指定)。
使用者定義的斷開原因如下:
在VSG上配置carrier-ID屬性,以便匹配相關ACL的呼叫使用carrier-ID標籤。這樣,就可以根據源的IP地址,通過不同的運營商(出站端)路由具有相同被叫號碼的呼叫。例如,如果您有兩組IP地址,則來自一組地址的呼叫可能會流經一個VSG,並會使用一個運營商ID進行標籤,而來自另一組的呼叫(同一被叫號碼)則可以使用另一個運營商ID進行標籤。以下是範例:
voice source-group foo
access-control 98
carrier-id source carrier1
voice source-group bar
access-control 99
carrier-id source carrier2
dial-peer voice 100 pots
carrier-id source carrier1
...
dial-peer voice 200 pots
carrier-id source carrier2
...
ip access-control standard 98
permit 1.1.1.1
ip access-control standard 99
permit 2.2.2.2
deny any any
使用先前的配置,來自1.1.1.1的呼叫通過撥號對等體100路由,來自2.2.2.2的呼叫通過撥號對等體200路由。
trunk-group-label的工作方式與carrier-ID類似。傳入VoIP呼叫使用已配置的中繼組進行標籤,然後使用該中繼組在呼叫通過出站線路路由時選擇適當的撥號對等體。
這僅適用於H.323協定,用於匹配傳入H.323呼叫的源區域到VSG。源區域ID在使用H.323V4信令協定且源自H.323網守的傳入H.323呼叫中承載。
您可以在IPIPGW上配置多個VSG,其中每個VSG允許或禁止來自不同IP地址集的呼叫。
當有多個VSG時,請小心將deny any ONLY新增到最後一個VSG的ACL中。否則,如果中間ACL具有deny any,則來自另一個ACL中明確允許的任何IP地址的呼叫仍會遭到拒絕(如果該ACL位於帶有deny any的ACL之後)。例如,有兩個VSG:
voice source-group foo
access-list 98
voice source-group bar
access-list 99
以下是VSG的ACL:
ip access-list standard 98
permit 1.1.1.1
deny any
ip access-list standard 99
permit 2.2.2.2
deny any
在本範例中,來自2.2.2.2的呼叫會遭到拒絕,因為允許IP位址的ACL位於ACL(98)之後,且含有deny any。
您可以使用此命令確認呼叫被拒絕。
Router#test source-group ip-address 2.2.2.2
A source-group is found with ip address=2.2.2.2
An ip address 2.2.2.2 is rejected with disc-cause="no-service"
為了允許呼叫,您必須從存取清單98中移除deny any。
ip access-list standard 98
permit 1.1.1.1
您可以再次使用test source-group ip 2.2.2.2命令,以驗證來自相關IP地址的呼叫是否不再被拒絕。
Router#test source-group ip-address 2.2.2.2
A source-group is found with ip address=2.2.2.2
test source-group <VSG>命令可用於基本驗證 — 來自給定IP地址的呼叫是否將由VSG處理。
如上一節所述,test source-group <VSG>命令對於發現給定的呼叫是允許還是拒絕很有用。此外,如果允許該呼叫,此命令還會顯示將路由哪個VSG?電話。同樣,如果呼叫將被拒絕,它將顯示拒絕原因。除了IP地址外,此命令還根據其他屬性查詢路由VSG。
另一個故障排除幫助是debug voice source-group debug命令。例如,當H.323呼叫被拒絕(使用預設原因代碼)時,調試會生成以下輸出:
092347: .Apr 7 10:53:46.132: SIPG:src_grp_check_config() src_grp or src_grp
acl is defined
092348: .Apr 7 10:53:46.136: %VOICE_IEC-3-GW: H323: Internal Error (H323
Interworking Error): IEC=1.1.127.5.21.0 on callID 264
以下是VSG的一些重要警告: