Table Of Contents
BFCP Support
Contents
Prerequisite for BFCP Support
Restrictions for BFCP Support
Information About BFCP Support
Best-Effort Traffic Class
Deploying BFCP Support
Configuring BFCP Support
Configuration Example of BFCP Support
BFCP Support
Binary Floor Control Protocol (BFCP), defined in RFC 4582, is a protocol for controlling the access to the media resources in a conference.
Cisco Unified Border Element (SP Edition) was earlier known as Integrated Session Border Controller. It is referred to in this document as the session border controller (SBC).
For a complete description of the commands used in this chapter, refer to the Cisco Unified Border Element (SP Edition) Command Reference: Unified Model at:
http://www.cisco.com/en/US/docs/ios/sbc/command/reference/sbcu_book.html
For information about all the Cisco IOS commands, use the Command Lookup Tool at http://tools.cisco.com/Support/CLILookup or a Cisco IOS master commands list.
Feature History for BFCP Support
Release
|
Modification
|
Cisco IOS XE Release 3.3S
|
This feature was introduced on the Cisco ASR 1000 Series Routers.
|
Contents
This chapter contains the following sections:
•
Prerequisite for BFCP Support
•
Restrictions for BFCP Support
•
Information About BFCP Support
•
Configuring BFCP Support
•
Configuration Example of BFCP Support
Prerequisite for BFCP Support
Following is the prerequisite pertaining to the BFCP Support feature:
•
The SBC must pass through the b=CT line and the a=rtcp-fb:* nack pli RTCP feedback information included in the Session Description Protocol (SDP).
Restrictions for BFCP Support
Following are the restrictions pertaining to the BFCP Support feature:
•
The SBC treats a generic media stream the same way it treats other media streams. Therefore, a call is released only if all the media streams are reported as being inactive. The Media Packet Forwarder (MPF) media timer is processed in the same way as the other voice or video streams pertaining to the BFCP stream.
•
A BFCP media stream and a generic media stream do not have a bandwidth specified. Therefore, it can be policed only by the MPF, and not the Call Admission Control (CAC) total bandwidth limits.
•
The SBC does not support the generic TCP streams or BFCP over TCP. Therefore, a request to add a TCP stream to the generic media stream configuration gets rejected.
•
H.323 calls or H.323-SIP interworking calls are not supported.
Information About BFCP Support
The BFCP Support feature supports BFCP over UDP in the SBC by configuring BFCP as a recognized generic media stream that can be forwarded using the best-effort traffic class.
Generic media streams are media streams in which the media (m)-line definition uses * instead of a codec list, for example, m=application port UDP/BFCP *. By default, the SBC cuts these m-lines out of the SDP offers and replies by setting the port to zero. These media lines carry no bandwidth information and therefore, cannot be policed against CAC limits, denial of service, or media theft attacks of the SBC.
The BFCP Support feature introduces the best-effort traffic class that allows policing of these media lines in the media forwarder.
The SBC can be configured to accept specific generic media streams. After this, the accepted generic media streams are added to the best-effort traffic class. MPF implementation supports the best-effort traffic class by policing the actual usage of the aggregate of these streams.
Best-Effort Traffic Class
Prior to Cisco IOS XE Release 3.3S, the media streams had their bandwidth specified for audio and video streams, or were not subjected to any policing, such as T120. From Cisco IOS XE Release 3.3S, the SBC is configured to accept arbitrary type and number of generic media streams. Some of the BFCP streams can now have low bandwidth protocol messages. The best-effort traffic class simplifies packet policing because it allows a media forwarder to handle such streams cumulatively. The best-effort traffic class rate limit is 1Mbps cumulatively.
Deploying BFCP Support
Figure 1 shows a scenario where the SBC can be deployed for the BFCP Support feature. In this scenario, the SBC is located in the Service Provider network, allows interenterprise calls between different VPNs, and protects the core network.
Figure 1 BFCP Deployment Scenario
Configuring BFCP Support
This section describes how to configure the BFCP Support feature on the SBC.
SUMMARY STEPS
1.
configure terminal
2.
sbc service-name
3.
sbe
4.
stream-list stream-list-name
5.
description description
6.
generic-stream media-type {application | message} transport udp protocol protocol-name
7.
exit
8.
cac-policy-set policy-set-id
9.
cac-table table-name
10.
table-type {policy-set | limit {list of limit tables}}
11.
entry entry-id
12.
action [next-table goto-table-name | cac-complete]
13.
generic-stream caller generic-stream-list
14.
generic-stream callee generic-stream-list
15.
match-value key
16.
exit
17.
exit
18.
complete
19.
end
20.
show sbc service-name sbe stream-list
21.
show sbc service-name sbe cac-policy-set id table name entry entry
DETAILED STEPS
| |
Command or Action
|
Purpose
|
Step 1
|
configure terminal
Example:
Router# configure terminal
|
Enables the global configuration mode.
|
Step 2
|
sbc sbc-name
Example:
Router(config)# sbc mysbc
|
Enters the SBC service mode.
Use the sbc-name argument to define the name of the service.
|
Step 3
|
sbe
Example:
Router(config-sbc)# sbe
|
Enters the SBE entity mode within an SBC service.
|
Step 4
|
stream-list stream-list-name
Example:
Router(config-sbc-sbe)# stream-list my_stream
|
Configures a stream list and enters the stream list configuration mode.
• stream-list-name—The name of the stream list. The stream list name can be upto 30 characters.
|
Step 5
|
description description
Example:
Router(config-sbc-sbe-stream-list)# description
"This is my first stream list"
|
Configures descriptive text for the stream list.
|
Step 6
|
generic-stream media-type {application |
message} transport udp protocol protocol-name
Example:
Router(config-sbc-sbe-stream-list)#
generic-stream media-type application transport
udp protocol BFCP
|
Configures the media type for a generic stream.
• application—Specifies application as media type for the generic stream.
• message—Specifies message as media type for the generic stream.
• transport—Configures the transport protocol for the generic stream.
• udp—Specifies the UDP protocol for the generic stream.
• protocol—Specifies the protocol name for the generic stream.
• protocol-name—The protocol name for the generic stream. The protocol name is case sensitive.
|
Step 7
|
exit
Example:
Router(config-sbc-sbe-stream-list)# exit
|
Exits from the stream list configuration mode and enters the SBE configuration mode.
|
Step 8
|
cac-policy-set policy-set-id
Example:
Router(config-sbc-sbe)# cac-policy-set 2
|
Enters the CAC policy set configuration mode within an SBE entity, creating a new policy set, if necessary.
• policy-set-id—The call policy set number that can range from 1 to 2147483647.
|
Step 9
|
cac-table table-name
Example:
Router(config-sbc-sbe-cacpolicy)# cac-table 2
|
Enters the admission control table configuration mode (creating one, if necessary) within the context of an SBE policy set.
|
Step 10
|
table-type {policy-set | limit {list of limit
tables}}
Example:
Router(config-sbc-sbe-cacpolicy-cactable)#
table-type src-adjacency
|
Configures a limit to the table types that are to be matched by the match-value command. For the multiple SBC media bypass feature, use the following table type:
• src-adjacency—Compares the name of the source adjacency.
|
Step 11
|
entry entry-id
Example:
Router(config-sbc-sbe-cacpolicy-cactable)#
entry 1
|
Enters the CAC table entry mode to create or modify an entry in an admission control table.
|
Step 12
|
action [next-table goto-table-name |
cac-complete]
Example:
Router(config-sbc-sbe-cacpolicy-cactable-entry)
# action cac-complete
|
Configures the action to be performed after the entry, in an admission control table. Possible actions are:
• Identifies the next CAC table to be processed using the next-table keyword and the goto-table-name argument.
• Stops the processing for the scope using the cac-complete keyword.
|
Step 13
|
generic-stream caller generic-stream-list
Example:
Router(config-sbc-sbe-cacpolicy-cactable-entry)
# generic-stream caller my-stream
|
Configures the generic media stream list settings for a caller.
• generic-stream-list—The name of the generic stream list. This generic stream list should be defined during the configuration of the stream list.
|
Step 14
|
generic-stream callee generic-stream-list
Example:
Router(config-sbc-sbe-cacpolicy-cactable-entry)
# generic-stream callee my-stream
|
Configures the generic media stream list settings for a callee.
• generic-stream-list—The name of the generic stream list. This generic stream list should be defined during the configuration of the stream list.
|
Step 15
|
match-value key
Example:
Router(config-sbc-sbe-cacpolicy-cactable-entry)
# match-value SIP-adj-test
|
Configures the match value of an entry in a CAC limit table.
• key—The keyword used to match events. The format of the key is determined by the table type limit.
|
Step 16
|
exit
Example:
Router(config-sbc-sbe-cacpolicy-cactable-entry)
# exit
|
Exits from the CAC table entry configuration mode and enters the CAC table mode.
|
Step 17
|
exit
Example:
Router(config-sbc-sbe-cacpolicy-cactable)# exit
|
Exits from the CAC table configuration mode and enters the CAC policy set configuration mode.
|
Step 18
|
complete
Example:
Router(config-sbc-sbe-cacpolicy)# complete
|
Completes the CAC policy set after you have committed the complete set.
|
Step 19
|
end
Example:
Router(config)# end
|
Exits from the CAC policy set configuration mode and enters the Privileged EXEC mode.
|
Step 20
|
show sbc sbc-name sbe stream-list
Example:
Router# show sbc mysbc sbe stream-list
my-stream
|
Displays the stream lists that are present on the SBE.
|
Step 21
|
show sbc service-name sbe cac-policy-set id
table name entry entry
Example:
Router# show sbc mysbc sbe cac-policy-set 1
table MyTable entry 1
|
Displays detailed information about a specific entry in a CAC policy table.
|
The following example shows the output of the show sbc sbe stream-list command:
Router# show sbc Mysbc sbe stream-list
Description This is my first stream list
Media-type application Transport udp protocol Streambased
Media-type message Transport udp protocol BFCP
The following example shows the output of the show sbc sbe cac-policy-set table entry
command:
Router# show sbc Mysbc sbe cac-policy 25 table 2 entry 1
CAC Averaging period 1: 60 sec
CAC Averaging period 2: 0 sec
Table type: limit src-adjacency
Total call setup failures (due to non-media limits): 0
Number of call setup failures (due to non-media limits): 0
No. of registrations rejected (due to registration limits): 0
Max calls per scope: Unlimited
No. of events rejected due to Max Call Limit: 0
Max reg. per scope: Unlimited
No. of events rejected due to Max Reg limit: 0
Max channels per scope: Unlimited
Max updates per scope: Unlimited
Max bandwidth per scope: Unlimited
Averaging-period 1 Averaging-period
2
Max call rate per scope: Unlimited Unlimited
No. of events rejected due to Max call rate: 0 0
Max reg. rate per scope: Unlimited Unlimited
No. of events rejected due to Max reg rate: 0 0
Max in-call message rate: Unlimited Unlimited
No. of events rejected due to Max in-call rate: 0 0
Max out-call message rate: Unlimited Unlimited
No. of events rejected due to Max Out call rate: 0 0
Timestamp when the rejection counts were last reset: 2011/01/03 22:29:40
Early media: Allowed Early media direction: Both
Early media timeout: None Transcoder per scope: Allowed
Callee Bandwidth-Field: None Caller Bandwidth-Field: None
Media bypass: Allowed Asymmetric Payload Type: Not Set
Renegotiate Strategy: Delta
SRTP Transport: Trusted-Only (by default)
Caller hold setting: Standard
Callee hold setting: Standard
Caller limited-privacy-service: Never hide identity
Callee limited-privacy-service: Never hide identity
Caller privacy-service: Not set
Callee privacy-service: Not set
Caller edit-privacy-request: Not set
Callee edit-privacy-request: Not set
Caller edit-privacy-request sip strip: Not set
Callee edit-privacy-request sip strip: Not set
Caller edit-privacy-request sip insert: Not set
Callee edit-privacy-request sip insert: Not set
Caller voice QoS profile: Default
Callee voice QoS profile: Default
Caller video QoS profile: Default
Callee video QoS profile: Default
Caller sig QoS profile: Default
Callee sig QoS profile: Default
Caller inbound SDP policy: None
Callee inbound SDP policy: None
Caller outbound SDP policy: None
Callee outbound SDP policy: None
Caller Generic Stream : my-stream
Callee Generic Stream : my-stream
Caller media disabled: None
Callee media disabled: None
Caller unsignaled secure media: Not Allowed
Callee unsignaled secure media: Not Allowed
Caller response downgrade support: No
Callee response downgrade support: No
Caller retry rtp support: No
Callee retry rtp support: No
Resend sdp answer in 200ok: No
Caller tel-event payload type: Default
Callee tel-event payload type: Default
Restrict codecs to list: Default
Restrict caller codecs to list: Default
Restrict callee codecs to list: Default
Codec preference list: Default
Caller Codec profile: None
Callee Codec profile: None
Caller media caps list: None
Callee media caps list: None
TCS extra codec list: None
Caller media-type: Inherit (default)
Callee media-type: Inherit (default)
Caller Media Bypass: Inherit (default)
Callee Media Bypass: Inherit (default)
Media Bypass Type: Not set
Callee local transfer support: Inherit (default)
Maximum Call Duration: Unlimited
Caller SRTP support: Inherit (default)
Callee SRTP support: Inherit (default)
SRTP Interworking: Inherit (default)
SRTP media Interworking: Inherit (default)
Ims rx preliminary-aar: Disabled(default)
Ims media-service: None(default)
media bandwidth policing: Inherit(default)
Billing filter: Inherit(default)
Caller ptime: None (default)
Callee ptime: None (default)
Caller codec variant conversion: Disabled (default)
Callee codec variant conversion: Disabled (default)
Caller inband DTMF mode: Inherit(default)
Callee inband DTMF mode: Inherit(default)
Caller Port Range Tag: Inherit (default)
Callee Port Range Tag: Inherit (default)
Session refresh renegotiation: Inherit(default)
Configuration Example of BFCP Support
Following is a configuration example of the BFCP Support feature on the SBC:
description voip stream list
generic-stream media-type application transport udp protocol BFCP
generic-stream media-type application transport udp protocol test
table-type limit src-adjacency
generic-stream caller my-stream
generic-stream callee my-stream