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

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 32-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 inter enterprise calls between different VPNs, and protects the core network.

Figure 32-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

 

Router# configure terminal

Enables the global configuration mode.

Step 2

sbc sbc-name

 

Router(config)# sbc mysbc

Enters the SBC service mode.

Use the sbc-name argument to define the name of the service.

Step 3

sbe

 

Router(config-sbc)# sbe

Enters the SBE entity mode within an SBC service.

Step 4

stream-list stream-list-name

 

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

 

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

 

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

 

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

 

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

 

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}}

 

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

 

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 ]

 

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

 

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

 

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

 

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

 

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

 

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

 

Router(config-sbc-sbe-cacpolicy)# complete

Completes the CAC policy set after you have committed the complete set.

Step 19

end

 

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

 

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

 

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
SBC Service "sbc"
 
Stream list: my-stream
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
SBC Service "Mysbc"
CAC Averaging period 1: 60 sec
CAC Averaging period 2: 0 sec
 
CAC Policy Set 25
Global policy set: No
Description:
First CAC table:
First CAC scope: global
 
Table name: 2
Description:
Table type: limit src-adjacency
Total call setup failures (due to non-media limits): 0
 
Entry 1
Match value:
Match prefix length: 0
Action: CAC complete
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
SDP Media Profile : 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
Media flag: None
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:

sbc sbc
sbe
stream-list my-stream
description voip stream list
generic-stream media-type application transport udp protocol BFCP
generic-stream media-type application transport udp protocol test
exit
cac-policy-set 2
cac-table 2
table-type limit src-adjacency
entry 1
action cac-complete
generic-stream caller my-stream
generic-stream callee my-stream
match-value SIP-adj-test
exit
exit
complete