Cisco IOS Tcl IVR and VoiceXML Application Guide - 12.3(14)T and later
Configuring Media Inactive Call Detection
Downloads: This chapterpdf (PDF - 363.0KB) The complete bookPDF (PDF - 8.15MB) | Feedback

Table Of Contents

Configuring Media Inactive Call Detection (Silent Call Detection)

Overview of the Media Inactivity Detection Feature

Prerequisites for Media Inactive Call Detection

New Command-Line Interface in Cisco IOS Release 12.4(4)T

Restrictions for Media Inactive Call Detection

Information About Media Inactive Call Detection

Functionality of Media Inactive Call Detection in Cisco IOS Release 12.4(4)T

Modifications to Information Tags and Internal Error Codes

Configuring CallFeature Parameters for Media Inactive Call Detection

Configuring Media Inactivity Parameters at the Package Level

Configuring Media Inactivity Parameters at the Service or Application Level

Configuring Media Inactivity Parameters at the Dial-Peer Level

Configure Long Duration Call Detection in Global Configuration Mode

Configuring Long Duration Call Detection in Dial-Peer Configuration Mode

Verifying the Configuration

Examples


Configuring Media Inactive Call Detection (Silent Call Detection)


The Media Inactive Call Detection feature enhances Cisco IOS behavior for disconnecting a call when an inactive condition is detected. Prior to Cisco IOS Release 12.4(4)T, the behavior automatically disconnected inactive calls when notification was not configured. This original behavior is retained in Cisco IOS Release 12.4(4)T, but more control has been added for managing these calls by enhancing notification of inactive calls, depending on the particular application.

The Media Inactive Call Detection feature detects inactive (silent) H.323 or SIP call legs on Cisco IOS-based gateways, and reports this situation to the Tcl IVR 2.0 application (which can disconnect the call). When the Media Inactive Call Detection feature is enabled through application CLI (see the "Configuring CallFeature Parameters for Media Inactive Call Detection" section), Cisco IOS software does not automatically disconnect detected inactive calls.

History for the Media Inactive Call Detection (Silent Call Detection) Feature

Release
Modification

12.4(4)T

This feature was introduced.


Finding Support Information for Platforms and Cisco IOS Software Images

Use Cisco Feature Navigator to find information about platform support and Cisco IOS software image support. Access Cisco Feature Navigator at http://www.cisco.com/go/fn. You must have an account on Cisco.com. If you do not have an account or have forgotten your username or password, click Cancel at the login dialog box and follow the instructions that appear.

The following sections provide information for the Media Inactive Call Detection feature:

Overview of the Media Inactivity Detection Feature

Prerequisites for Media Inactive Call Detection

Restrictions for Media Inactive Call Detection

Information About Media Inactive Call Detection

Configuring CallFeature Parameters for Media Inactive Call Detection

Examples

Overview of the Media Inactivity Detection Feature

The media inactivity detection timer is defined using two CLI commands. One command configures the RTCP report interval, and another defines the multiplying factor M (this also identifies the mode of detection with Cisco IOS Release 12.4(4)T. The controlling mechanism is accomplished through the configuration of application CLI.

Media inactive timer = M * ip rtcp report interval

The inactivity detection is supported in two modes based on which timer multiplying factor configuration (M factor) is used:

timer receive-rtcp—Beginning in Cisco IOS Release 12.3(4)T, this mode detects inactivity using no DSP stats (either an RTP or RTCP packet received is considered active). No explicit enabling is needed. This timer is the default. When this timer is used, the call is disconnected when a silent call is detected. This behavior is not DSP-based, but is the default behavior when no application CLI is configured.

timer media-inactive—This mode is available starting in Cisco IOS Release 12.4(4)T, where detection is based on DSP statistics (it uses RTP-only mechanism; packets sent or received are considered active). If both directions are absent, it is considered inactive. This timer is enabled or disabled using application CLI, which can also be used to control notification.

Prior to Cisco IOS Release 12.4(4)T, the behavior of Media Inactivity Detection enables you to configure a timer using the timer receive-rtcp command. This detects media inactivity using packets received on an IP interface and does not provide the granularity to determine if the packet is comfort noise or a real, acceptable voice packet. This mode of inactivity detection is based on either RTP or RTCP packets received from the network.

Beginning with Cisco IOS Release 12.4(4)T, you can use the CLI to configure the timer (timer media-inactive) for media inactivity detection using DSP and the criterion is RTP only. In this case, the media are considered inactive only if both send and receive of RTP packets does not happen. If RTP is present in either send or receive direction, it is considered active. In this mode, DSP filters out any comfort noise packets, and the presence of any comfort noise packet is considered inactivity in either direction.

Prerequisites for Media Inactive Call Detection


Note To enable the Media Inactive Call Detection feature, you should first set the inactive timer. This can be done using the timer receive-rtcp command in the CLI or by setting the command in the script itself using the infotag set media_timer_factor command.


The Media Inactive Call Detection feature requires Cisco IOS Release 12.3(4)T or later. New functionality is added in Cisco IOS Release 12.4(4)T.

For Cisco IOS Release 12.3(4)T, to enable the Media Inactive Call Detection feature, set the information tag evt_feature_report using media_inactivity type. For example:

infotag set evt_feature_report media inactivity

Beginning in Cisco IOS Release 12.4(4)T, this information tag is no longer supported. The configuration is accomplished using CLI, as discussed in the "New Command-Line Interface in Cisco IOS Release 12.4(4)T" section.

New Command-Line Interface in Cisco IOS Release 12.4(4)T

New commands in Cisco IOS Release 12.4(4)T provide better control of inactivity detection using application-level CLI. The media inactivity detection timer has to be configured based on which mode of detection is needed:

Mode 1: using the timer receive-rtcp—Silent detection is configured using the timer receive-rtcp command together with the ip rtcp report interval command. The only action on this mode is to disconnect the call when the call is detected to be inactive. This applies to Cisco IOS Release 12.3(4)T, and is retained in Cisco IOS Release 12.4(4)T. Application CLI can be used to control this detection.

Mode 2: using timer media-inactive—The inactive timer is a combination of the timer media-inactive command and the ip rtcp report interval command. The use of the timer media-inactive command means uses DSP statistics. This capability is based on the configuration of callfeature parameters using application CLI to enable control. This type of configuration is available beginning in Cisco IOS Release 12.4(4)T.

Table 8-1 lists the commands required to configure inactivity duration for the various detection methods.

Table 8-1 Media Inactivity Detection Commands

Detection Method
Commands for Inactivity Duration

RTP only (nonDSP based)

timer receive-rtcp

ip rtcp report interval

RTP only (DSP based)1

timer media-inactive

ip rtcp report interval

RTCP only

timer receive-rtcp

ip rtcp report interval

RTP and RTCP (all)

timer receive-rtcp

ip rtcp report interval

1 RTCP commands are used to specify the inactivity duration even if media inactivity detection is based on RTP only.

For more information about the commands and configuration, refer to Configuring Basic Functionality for TCL IVR and VoiceXML Applications. You are prompted by the CLI to specify the mode of detection. The mode of configuration allows you to enable or disable the media inactivity detection and to control actions and disconnect cause codes. The configurations are available at three different levels:

1. Dial Peer level

2. Service (application) level

3. Package level

When parameters are defined at different levels, the most localized level of configuration takes precedence. For example, definition at the dial-peer level overrides definition at the package level.

Configuration of the different modes of detection is described in the "Configuring CallFeature Parameters for Media Inactive Call Detection" section.

Restrictions for Media Inactive Call Detection

The Media Inactive Call Detection feature is supported on the Cisco AS5350, Cisco AS5350XM, Cisco AS5400, Cisco AS5400XM, and Cisco AS5850 only.

The Media Inactive Call Detection feature does not change the existing behavior for the default session application and Tcl IVR 1.0 or the existing Tcl IVR 2.0 script behavior that does not request the new feature.

This feature does not support MGCP call legs.

The Media Inactive Call Detection feature works in IP only. This feature does not include PSTN inactive call detection.

This feature supports RTP and RTCP media inactivity detection and notification only on H.323 and SIP basic calls.

Information About Media Inactive Call Detection

This section provides information about the configuration of the Media Inactive Call Detection feature.

Functionality of Media Inactive Call Detection in Cisco IOS Release 12.4(4)T

Modifications to Information Tags and Internal Error Codes

Functionality of Media Inactive Call Detection in Cisco IOS Release 12.4(4)T

Legacy Functionality

This functionality is an enhancement to the preexisting Media Inactivity Timer feature, which enables gateways to monitor and disconnect VoIP calls if no RTCP packets are received within a configurable time period.

The media inactivity timer feature requires the configuration of the ip rtcp report interval command and the timer receive-rtcp command to enable detection of RTP and RTCP packets by the gateway. If these commands are configured, the gateway uses RTP and RTCP report detection to determine whether calls on the gateway are still active or should be disconnected.

If no RTCP or RTP packets are received in the resulting time period, the call is disconnected.

The ip rtcp report interval command configures the RTCP reporting interval in milliseconds in the range of 1 to 65535. The timer receive-rtcp command configures the multiplier in the range of 4 to 1000. These values can be adjusted depending on network traffic conditions. Under normal conditions, a value of 5000 for the ip rtcp report interval and a value of 5 for the timer receive-rtcp is typical.

Functionality Added in Cisco IOS Release 12.3(4)T

The Media Inactive Call Detection feature offers the following:

The show call active command indicates whether a call has no RTP or RTCP inactivity.

The clear call command offers options so that an inactive call can be released using the called number or calling number. The clear call command has been enhanced to configure the Q.850 release cause code to be used when the call is released.

Functionality Added in Cisco IOS Release 12.4(4)T

Features added in this Cisco IOS release include the following:

The clear call voice command is expanded to allow manual release of a call by providing both the called number and the calling number. The system administrator also has the option to clear all calls where media inactivity has been detected.

The action function configuration for media inactivity and long duration calls includes ignore/syslog/disconnect. If ignore is configured, it allows the application to log whatever it intends to do. If syslog is configured, the call feature package will do some logging while letting the application do whatever extra logging is needed.

The call feature package can be used for long duration call detection. The Tcl no longer needs to start a leg timer. CLI commands can be used to define the duration, enabling or disabling of the feature, and action function for the feature. CIC information is logged when a long duration call is detected.

Modifications to Information Tags and Internal Error Codes

This feature includes modifications to two information tags and the addition of one information tag:

evt_feature_type

evt_feature_param

media_inactivity_err

For more detailed information, refer to the Cisco IOS TCL and VoiceXML Application Guide and the Cisco IOS TCL Programming Guide.

evt_feature_type

This existing information tag adds two new event feature types representing media inactivity notification and media activity notification. Note that the script needs to request only for report type media_inactivity. However, after the media inactivity is reported and the VoIP RTP starts receiving RTP or RTCP packets again, the event with type media_activity is automatically notified, indicating that the call is back alive.

Description

To return the feature type string when a feature event is received

Syntax

infotag get evt_feature_type

Mode

Read

Scope

ev_feature

Return Type

String

Direct Mapping

None

Event Names

fax

modem

modem_phase

hookflash

onhook

offhook

media_inactivity

media_activity

evt_feature_param

This is a new information tag added so that the Tcl application can pass parameters related to the feature back to the script. The Media Inactive Call Detection feature uses this new tag to pass on the information of whether an RTCP packet was received before the media inactive condition was met.

Description

To return a parameter related to a specific feature event

Syntax

infotag get evt_feature_param parameter-name

Mode

Read

Scope

ev_feature

Return Type

String

Direct Mapping

None

Event Parameter

media_inactivity_type—This parameter belongs to feature media_inactivity. The return string is:

no media received—Media inactivity detected (no RTP or RTCP packets have been received for a configured amount of time). An RTCP packet has been received before media inactivity condition is met.

no control info received—Media inactivity detected (no RTP or RTCP packets have been received for a configured amount of time). No RTCP packet has been received before media inactivity condition is met.

Example

infotag get evt_feature_param media_inactivity_type

media_inactivity_err

The internal error code used by the Tcl script for this feature is media_inactivity_err (common IEC error #8). This IEC is used to disconnect a call where media inactivity is detected and reported.

Configuring CallFeature Parameters for Media Inactive Call Detection

This feature is enabled by using application CLI to configure callfeature parameters. This section provides information to configure the parameters for media inactive call parameters:

Configuring Media Inactivity Parameters at the Package Level

Configuring Media Inactivity Parameters at the Service or Application Level

Configuring Media Inactivity Parameters at the Dial-Peer Level

Configure Long Duration Call Detection in Global Configuration Mode

Configuring Long Duration Call Detection in Dial-Peer Configuration Mode

Verifying the Configuration

Configuring Media Inactivity Parameters at the Package Level

This feature is introduced in Cisco IOS Release 12.4(4)T. This section describes the use of this feature to set parameters under the callfeature package. After the callfeature parameters are configured for the callfeature package, the parameters are applicable to all applications that use this package.

The parameters configured under a package will be overridden by application level parameters. Therefore, if a particular application wants to change the parameters configured under the package level, you can define the parameters under that particular service context. Whenever that application is used for a call, media inactivity detection is based on parameters under that application. If no parameters are specified by an application, the package level parameters are used by default.

SUMMARY STEPS

1. enable

2. configure terminal

3. application application-name

4. package callfeature

5. paramspace callfeature name
and
paramspace callfeature name
and
paramspace callfeature name

DETAILED STEPS

 
Command or Action
Purpose

Step 1 

enable

Example:

Router> enable

Enables privileged EXEC mode.

Enter your password if prompted.

Step 2 

configure terminal

Example:

Router# configure terminal

Enters global configuration mode.

Step 3 

application application-name

Example:

Router(config)# application session

Enters application configuration mode and specifies the name of the predefined application that you want to enable on the dial peer.

Step 4 

package callfeature

Example:

Router(config-app)# package callfeature

Enters application parameter configuration mode.

Step 5 

paramspace callfeature name

and

paramspace callfeature name

and

paramspace callfeature name

Example:

Router(config-app-param)# paramspace callfeature med-inact-det enable

Router(config-app-param)# paramspace callfeature med-inact-disc-cause 44

Router(config-app-param)# paramspace callfeature med-inact-action syslog

Enters the parameters to enable media inactivity detection at the package level. Enter the following parameters:

med-inact-det enable—Enables media inactive call detection (default is disabled).

med-inact-disc-cause 44—Indicates the cause code of media inactive call clearing if the call is disconnected (default is 16).

med-inact-action syslog—Enters the information for call clearing in the system log. (Options are ignore, syslog, or disconnnect. Default is ignore.)

Note The following are other keywords available for callfeature parameters, but the three configured here are necessary to effect media inactivity detection at the package level.

long-dur-disc-cause—Cause code of long duration call clearing if a call is disconnected (default is 16).

long-dur-duration—Duration of the call to mark it as a long call (range is 1 to 1440 minutes, default is 1440).

long-dur-action—Action to be taken on a detected long duration call (Options are ignore, syslog, or disconnnect. Default is ignore.).

long-dur-call-mon—Enable or disable long duration call detection (default is disabled).

Configuring Media Inactivity Parameters at the Service or Application Level

A particular application can be configured with callfeature parameters to override the package level configuration. Therefore, if a particular application wants to change the parameters configured under the package level, you can define the parameters under that particular service context. Whenever that application is used for a call, media inactivity detection is based on parameters under that application. If no parameters are specified by an application, the package level parameters are used by default.

This procedure configures the application for media inactivity detection in Mode 2, meaning that detection uses RTP to send and receive direction status using DSP. If the media inactivity detect parameter under callfeature paramspace is disabled, the default action is to disconnect the call, similar to Mode 1.

After these parameters are configured, any incoming dial peer configured with this application triggers this feature.

SUMMARY STEPS

1. enable

2. configure terminal

3. application application-name

4. service name

5. paramspace callfeature name
and
paramspace callfeature name
and
paramspace callfeature name

DETAILED STEPS

 
Command or Action
Purpose

Step 1 

enable

Example:

Router> enable

Enables privileged EXEC mode.

Enter your password if prompted.

Step 2 

configure terminal

Example:

Router# configure terminal

Enters global configuration mode.

Step 3 

application application-name

Example:

Router(config)# application session

Enters application configuration mode and specifies the name of the predefined application that you want to enable on the dial peer.

Step 4 

service name

Example:

Router(config-app)# service Default

Enters application parameter configuration mode and specifies the application for which the callfeatures are to be configured.

The name argument identifies the specific service or application.

Step 5 

paramspace callfeature name

and

paramspace callfeature name

and

paramspace callfeature name

Example:

Router(config-app-param)# paramspace callfeature med-inact-det enable

Router(config-app-param)# paramspace callfeature med-inact-disc-cause 44

Router(config-app-param)# paramspace callfeature med-inact-action syslog

Enters the parameters to enable media inactivity detection at the package level. Enter the following parameters:

med-inact-det enable—Enables media inactive call detection (default is disabled).

med-inact-disc-cause 44—Indicates the cause code of media inactive call clearing if the call is disconnected (default is 16).

med-inact-action syslog—Enters the information for call clearing in the system log. (Options are ignore, syslog, or disconnnect. Default is ignore.)

Note The following are other keywords available for callfeature parameters, but the three configured here are necessary to effect media inactivity detection at the package level.

long-dur-disc-cause—Cause code of long duration call clearing if a call is disconnected (default is 16).

long-dur-duration—Duration of the call to mark it as a long call (range is 1 to 1440 minutes, default is 1440).

long-dur-action—Action to be taken on a detected long duration call (Options are ignore, syslog, or disconnnect. Default is ignore.).

long-dur-call-mon—Enable or disable long duration call detection (default is disabled).

Configuring Media Inactivity Parameters at the Dial-Peer Level

Beginning in Cisco IOS Release 12.4(4)T, a new option allows you to configure callfeature parameters under a dial peer while in dial peer configuration mode. The incoming dial peer (either POTS or VoIP) needs to be configured using this method.

After the dial peer is configured with the parameters in the following procedure, all calls going through this dial peer are monitored for silent call detection. The dial-peer level media inactivity parameters take highest precedence over package or service level configurations.

SUMMARY STEPS

1. enable

2. configure terminal

3. dial-peer voice tag {pots | voatm | vofr | voip}

4. paramspace callfeature name
and
paramspace callfeature name
and
paramspace callfeature name

DETAILED STEPS

 
Command or Action
Purpose

Step 1 

enable

Example:

Router> enable

Enables privileged EXEC mode.

Enter your password if prompted.

Step 2 

configure terminal

Example:

Router# configure terminal

Enters global configuration mode.

Step 3 

dial-peer voice tag {pots | voatm | vofr | voip}

Example:

Router(config)# dial-peer voice 1 voip

Defines a particular dial peer, specifies the method of voice encapsulation, and enters dial-peer configuration mode.

The tag argument defines a particular dial peer. Range is from 1 to 2147483647.

The pots keyword indicates that this is a POTS peer that uses VoIP encapsulation on the IP backbone.

The voip keyword indicates that this is a VoIP peer that uses voice encapsulation on the POTS network.

Note The other keywords are not relevant to this feature.

Step 4 

paramspace callfeature name

and

paramspace callfeature name

and

paramspace callfeature name

Example:

Router(config-dial-peer)# paramspace callfeature med-inact-det enable

Router(config-dial-peer)# paramspace callfeature med-inact-action syslog

Router(config-dial-peer)# paramspace callfeature med-inact-disc-cause 44

Enters the parameters to enable media inactivity detection at the package level. Enter the following parameters:

med-inact-det enable—Enables media inactive call detection (default is disabled).

med-inact-action syslog—Enters the information for call clearing in the system log. (Options are ignore, syslog, or disconnnect. Default is ignore.)

med-inact-disc-cause 44—Indicates the cause code of media inactive call clearing if the call is disconnected (default is 16).

Note The following are other keywords available for callfeature parameters, but the three configured here are necessary to effect media inactivity detection at the package level.

long-dur-disc-cause—Cause code of long duration call clearing if a call is disconnected (default is 16).

long-dur-duration—Duration of the call to mark it as a long call (range is 1 to 1440 minutes, default is 1440).

long-dur-action—Action to be taken on a detected long duration call (Options are ignore, syslog, or disconnnect. Default is ignore.).

long-dur-call-mon—Enable or disable long duration call detection (default is disabled).

Configure Long Duration Call Detection in Global Configuration Mode

Beginning in Release 12.4(4)T, you can use the CLI to configure detection and monitoring of long duration calls. After the long duration call detection is configured with the following procedure, all calls are monitored for long duration. This section describes the procedure for configuring long duration call detection in global configuration mode.

SUMMARY STEPS

1. enable

2. configure terminal

3. long-duration_call timer

DETAILED STEPS

 
Command or Action
Purpose

Step 1 

enable

Example:

Router> enable

Enables privileged EXEC mode.

Enter your password if prompted.

Step 2 

configure terminal

Example:

Router# configure terminal

Enters global configuration mode.

Step 3 

long-duration_call timer

Example:

Router(config)# long-duration_call 20

Activates the long duration call detection feature and sets the timer.

timer—This argument sets the length of time (in minutes) after which a call will be defined as long duration.

To disable the long duration call detection feature, use the no form of this command.

Configuring Long Duration Call Detection in Dial-Peer Configuration Mode

Beginning in Release 12.4(4)T, you can use the CLI to configure detection and monitoring of long duration calls. After the long duration call detection is configured with the following procedure, all calls are monitored for long duration. This section describes the procedure for configuring long duration call detection in dial-peer configuration mode.

SUMMARY STEPS

1. enable

2. configure terminal

3. dial-peer voice tag {pots | voatm | vofr | voip}

4. long-duration_call timer

DETAILED STEPS

 
Command or Action
Purpose

Step 1 

enable

Example:

Router> enable

Enables privileged EXEC mode.

Enter your password if prompted.

Step 2 

configure terminal

Example:

Router# configure terminal

Enters global configuration mode.

Step 3 

dial-peer voice tag {pots | voatm | vofr | voip}

Example:

Router(config)# dial-peer voice 1 voip

Defines a particular dial peer, specifies the method of voice encapsulation, and enters dial-peer configuration mode.

The tag argument defines a particular dial peer. Range is from 1 to 2147483647.

The pots keyword indicates that this is a POTS peer that uses VoIP encapsulation on the IP backbone.

The voip keyword indicates that this is a VoIP peer that uses voice encapsulation on the POTS network.

Note The other keywords are not relevant to this feature.

Step 4 

long-duration_call timer

Example:

Router(config-dial-peer)# long-duration_call 20

Activates the long duration call detection feature and sets the timer.

timer—This argument sets the length of time (in minutes) after which a call will be defined as long duration.

Verifying the Configuration

After you have completed the procedures to configure the callfeature parameters enabling the media inactive call detection feature, you can use the commands in this section to verify the call monitoring.

SUMMARY STEPS

1. enable

2. show call active voice [brief] [called-number number | calling-number number | compact | echo-canceller | id | media-inactive {called-number number | calling-number number} long-dur-call]

3. clear call voice causecode number {id number | media-inactive | calling-number number | called-number number}

DETAILED STEPS

 
Command or Action
Purpose

Step 1 

enable

Example:

Router> enable

Enables privileged EXEC mode.

Enter your password if prompted.

Step 2 

show call active voice [brief] [called-number number | calling-number number | compact | echo-canceller | id | media-inactive {called-number number | calling-number number} | long-dur-call]

Example:

Router# show call active voice brief long-dur-call

Displays calls that have no RTP or RTCP activity.

The brief keyword shows the brief version of active voice calls.

The called-number keyword shows only the call with the specified called number pattern.

The calling-number keyword shows only the call with the specified calling number pattern.

The compact keyword shows a compact version of the active voice calls.

The echo-canceller keyword shows echo canceller data for an active voice call.

The id keyword shows only the call with the specified ID.

The media-inactive keyword shows only the calls with media inactive being detected and notified.

The long-dur-call keyword shows only the calls with long duration being detected and notified.

The number argument is a sequence of digits representing a full, recognizable telephone number.

Step 3 

clear call voice causecode number {id number | media-inactive | calling-number number | called-number number }

Example:

Router# clear call voice causecode 100 calling-number 4085550100

Clears calls that show media inactive and can clear a specific call.

The causecode keyword is a Q.850 disconnect cause code. The cause code number can be specified as a number 1 through 127.

The id keyword can be used so that only the voice call with the specified ID is disconnected.

The range for the number argument is 1-FFFF . This is a call identifier as shown in brief format.

The media-inactive keyword clears only calls with media inactivity detected and notified.

The calling-number keyword clears only calls with a specific calling number pattern.

The called-number keyword clears only calls with a specific called number pattern.

Examples

This section provides the following output examples:

show call active voice brief Command: Example

show running-config Command: Example

Sample Tcl IVR script

show call active voice brief Command: Example

The existing show call active voice brief command has additional media inactive detection data in the IP call leg information:

Router# show call active voice brief
 
 
<ID>: <start>hs.<index> +<connect> pid:<peer_id> <dir> <addr> <state>
  dur hh:mm:ss tx:<packets>/<bytes> rx:<packets>/<bytes>
 IP <ip>:<udp> rtt:<time>ms pl:<play>/<gap>ms lost:<lost>/<early>/<late>
  delay:<last>/<min>/<max>ms <codec>
 media inactive detected:<y/n> media cntrl rcvd:<y/n> timestamp:<time>
 long_duration_call_detected:<y/n>long duration call duration:n/a timestamp:n/a
  			<----------- the above line is new --------------
   MODEMPASS <method> buf:<fills>/<drains> loss <overall%> <multipkt>/<corrected>
   last <buf event time>s dur:<Min>/<Max>s
 FR <protocol> [int dlci cid] vad:<y/n> dtmf:<y/n> seq:<y/n>
  <codec> (payload size)
 ATM <protocol> [int vpi/vci cid] vad:<y/n> dtmf:<y/n> seq:<y/n>
  <codec> (payload size)
 Tele <int>: tx:<tot>/<v>/<fax>ms <codec> noise:<l> acom:<l> i/o:<l>/<l> dBm
  MODEMRELAY info:<rcvd>/<sent>/<resent> xid:<rcvd>/<sent> total:<rcvd>/<sent>/<drops>
         speeds(bps): local <rx>/<tx> remote <rx>/<tx>
 Proxy <ip>:<audio udp>,<video udp>,<tcp0>,<tcp1>,<tcp2>,<tcp3> endpt: <type>/<manf>
 bw: <req>/<act> codec: <audio>/<video>
  tx: <audio pkts>/<audio bytes>,<video pkts>/<video bytes>,<t120 pkts>/<t120 bytes>
 rx: <audio pkts>/<audio bytes>,<video pkts>/<video bytes>,<t120 pkts>/<t120 bytes>
 
 
 
 
Telephony call-legs: 1
SIP call-legs: 0
H323 call-legs: 1
Total call-legs: 2
 
 
11DF : 239062hs.1 +2 pid:1 Answer 4085550100 active
 dur 00:01:04 tx:2383/89775 rx:1187/23318
 Tele 3:D:13: tx:45900/2110/0ms g729r8 noise:-69 acom:45  i/0:-71/-29 dBm
 
 
11DF : 239684hs.1 +830 pid:1800877 Originate 18005550100 active
 dur 00:00:49 tx:1066/20965 rx:2378/47215
 IP 10.1.57.5:17750 rtt:5ms pl:38190/0ms lost:0/1/0 delay:50/50/70ms g729r8
 media inactive detected:y media cntrl recv:y timestamp: 12595
 long_duration_call_detected:y long duration call duration:100 timestamp:8397702
		<------------------ the above line is new ------------------
Telephony call-legs: 1
SIP call-legs: 0
H323 call-legs: 1
Total call-legs: 2
 
 

For calls without long_duration_call being detected, the display looks like the following:

...
11DF : 239062hs.1 +2 pid:1 Answer 4085550100 active
 dur 00:01:04 tx:2383/89775 rx:1187/23318
 Tele 3:D:13: tx:45900/2110/0ms g729r8 noise:-69 acom:45  i/0:-71/-29 dBm
 
 
11DF : 239684hs.1 +830 pid:1800877 Originate 18005550100 active
 dur 00:00:49 tx:1066/20965 rx:2378/47215
 IP 10.1.57.5:17750 rtt:5ms pl:38190/0ms lost:0/1/0 delay:50/50/70ms g729r8
 media inactive detected:y media cntrl recv:n/a timestamp: n/a
 long_duration_call_detected:n/a
 		<------------------ the above line is new ------------------
Telephony call-legs: 1
SIP call-legs: 0
H323 call-legs: 1
Total call-legs: 2
 
 

The long display form of active call records generated by the show call active voice command is also modified to add the media inactive detected information:

 
 
Router_5300# show call active voice
 
 
Telephony call-legs: 1
SIP call-legs: 0
H323 call-legs: 1
Total call-legs: 2
 
 
 GENERIC:
SetupTime=239062 ms
Index=1
PeerAddress=4085254616
PeerSubAddress=
PeerId=1
.
.
.
TELE:
ConnectionId=[0xB21F398F 0x1DA111D4 0x800B85CB 0x3E43F332]
IncomingConnectionId=[0xB21F398F 0x1DA111D4 0x800B85CB 0x3E43F332]
TxDuration=51250 ms
VoiceTxDuration=2110 ms
.
.
.
 GENERIC:
SetupTime=239684 ms
Index=1
PeerAddress=18005550100
PeerSubAddress=
.
.
.
VOIP:
ConnectionId[0xB21F398F 0x1DA111D4 0x800B85CB 0x3E43F332]
IncomingConnectionId[0xB21F398F 0x1DA111D4 0x800B85CB 0x3E43F332]
RemoteIPAddress=1.9.57.5
...
TranslatedRedirectCalledNumber=
TranslatedRedirectCalledOctet=0x7F
MediaInactiveDetected=yes 
MediaInactiveTimestamp=12595 
MediaControlReceived=yes
LongDurationCallDetected=yes 	<---- new
LongDurCallTimestamp=8397702 	<---- new
LongDurCallDuration=100      	<---- new
Username=Telephony call-legs: 1
SIP call-legs: 0
H323 call-legs: 1
Total call-legs: 2
 
 

Note For calls where no long duration call is detected and notified, the above three fields are displayed as follows:


TranslatedRedirectCalledNumber=
TranslatedRedirectCalledOctet=0x7F
MediaInactiveDetected=no 
MediaInactiveTimestamp= 
MediaControlReceived= 
LongDurationCall=                     <---- new
Username=Telephony call-legs: 1
SIP call-legs: 0
H323 call-legs: 1
Total call-legs: 2

show running-config Command: Example

The following is sample output from a show running config command with the media inactive call detection feature enabled.

Router# show running-config
 
 
Building configuration...
This command has no effect on this line; use modem AT commands instead
This command has no effect on this line; use modem AT commands instead
 
 
Current configuration : 13850 bytes
!
version 12.2
no service pad
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname "jc5400"
!
no boot startup-test
logging buffered 2000000 debugging
no logging console
enable secret 5 $1$afrj$LWwkVSLZ3cKak3OkHsAMt/
enable password lab
!
username 1111
username 2222 password 0 2222
username 123001 password 0 1001
username cisco
!
!
resource-pool disable
clock timezone GMT -8
tdm clock priority 1 6/0
spe default-firmware spe-firmware-1
aaa new-model
!
!
aaa authentication login h323 local group radius
aaa authentication login telnet none
aaa authorization exec h323 local group radius 
aaa authorization exec telnet none 
aaa accounting connection h323 start-stop group radius
aaa session-id common
ip subnet-zero
ip cef
ip ftp username dump
ip ftp password dump123
no ip domain lookup
ip host tftp-server1 10.1.1.211
ip host rtsp-server1 10.1.1.211
ip host radius-server1 10.1.1.211
ip host gwip-server1 10.1.1.211
ip host dump-server1 10.1.1.211
!
isdn switch-type primary-5ess
isdn voice-call-failure 0
!
voice call carrier capacity active
!
!
!
voice cause-code 
!
no voice hpi capture buffer
no voice hpi capture destination
!
!
ivr prompt memory 16384
!
fax interface-type fax-mail
mta receive maximum-recipients 600
!
!
!
controller T1 6/0
 framing esf
 linecode b8zs
 pri-group timeslots 1-24
 no yellow generation
 no yellow detection
!
controller T1 6/1
 shutdown
 framing sf
 linecode ami
 no yellow generation
 no yellow detection
!
controller T1 6/2
 shutdown
 framing sf
 linecode ami
 no yellow generation
 no yellow detection
!
controller T1 6/3
 shutdown
 framing sf
 linecode ami
 no yellow generation
 no yellow detection
!
controller T1 6/4
 shutdown
 framing sf
 linecode ami
 no yellow generation
 no yellow detection
!
controller T1 6/5
 shutdown
 framing sf
 linecode ami
 no yellow generation
 no yellow detection
!
controller T1 6/6
 shutdown
 framing sf
 linecode ami
 no yellow generation
 no yellow detection
!
controller T1 6/7
 shutdown
 framing sf
 linecode ami
 no yellow generation
 no yellow detection
gw-accounting aaa
!
!
!
interface FastEthernet0/0
 ip address 10.1.1.212 255.255.0.0
 no ip redirects
 no ip mroute-cache
 duplex auto
 speed auto
 no cdp enable
!
interface FastEthernet0/1
 no ip address
 no ip redirects
 no ip mroute-cache
 shutdown
 duplex auto
 speed auto
 no cdp enable
!
interface Serial0/0
 no ip address
 no ip mroute-cache
shutdown
 clockrate 2000000
 no cdp enable
!
interface Serial6/0
 no ip address
 shutdown
!
interface Serial0/1
 no ip address
 no ip mroute-cache
 shutdown
 clockrate 2000000
 no cdp enable
!
interface Serial6/0:23
 no ip address
 isdn switch-type primary-5ess
 isdn incoming-voice modem
 isdn bchan-number-order ascending
 no keepalive
 no cdp enable
!
interface Group-Async0
 no ip address
 no ip mroute-cache
 group-range 1/00 1/107
!
ip classless
ip route 10.1.0.0 255.255.0.0 10.1.1.211
ip http server
!
ip pim bidir-enable
ip rtcp report interval 5000
!
!
no logging trap
dialer-list 1 protocol ip permit
dialer-list 1 protocol ipx permit
!
!
radius-server host 10.1.1.211 auth-port 1645 acct-port 1646
radius-server key cisco
radius-server authorization permit missing Service-Type
radius-server vsa send accounting
radius-server vsa send authentication
!
call application voice testapp_JC tftp://10.1.1.211/Scripts/JC_app1.tcl
call rsvp-sync
!
voice-port 6/0:D
!
!
mgcp profile default
!
dial-peer cor custom
!
!
!
dial-peer voice 1000 pots
 application testapp_JC
 incoming called-number 5550100
 direct-inward-dial
 port 6/0:D
!
!
dial-peer voice 3000 voip
 destination-pattern 5550100
 session target ipv4:10.1.1.213
 dtmf-relay h245-signal
codec g711ulaw
!
!
gateway 
 timer receive-rtcp 5
!
sip-ua 
!
!
line con 0
 exec-timeout 0 0
 logging synchronous
line aux 0
 logging synchronous
line vty 0 4
 password lab
 authorization exec telnet
 login authentication telnet
line 1/00 1/107
 no flush-at-activation
 modem InOut
!
exception core-file jc5400_core
exception protocol ftp
exception dump 10.1.1.211
scheduler allocate 10000 400
end
 
 

Sample Tcl IVR script

The following is a sample script that is provided for reference purposes only:

Router# silence_detect_demo.tcl 
#------------------------------------------------------------------
# Copyright (c) 2003 by cisco Systems, Inc.
# All rights reserved.
#------------------------------------------------------------------
#
# This tcl demo script monitors Media Inactive Call. The Media Inactive Call
# Detection feature detects inactive (silent)H.323 or Sip call-legs on Cisco
# IOS based gateways, and reports this situation to the TCL IVR 2.0 application
# and TCL IVR application checks for the events and logs those events. 
#
# This script is designed to place a call to the dnis if DID is configured.
# Otherwise, output dial-tone and collects digits from the caller against
# the dial-plan. If an inactive condition 'ev_feature' is detected then script
# begins to log the inactivity events.  However, if the VOIP RTP starts receiving
# RTP/RTCP packets again, then event with media_activity type will be automatically
# notified, indicating that the call is back alive.                          
#
#---------------------------------
#   Example Script
#---------------------------------
 
 
proc init { } {
    global param
    global timerFactor
 
 
    set param(interruptPrompt) true
    set param(abortKey) *
    set param(terminationKey) #
    set timerFactor 6
}
  
proc act_Setup { } {
    global dest
 
 
    if { [infotag get leg_isdid] } {
        set dest [infotag get leg_dnis]
 
 
        leg proceeding leg_incoming
        leg setup $dest callInfo leg_incoming
        fsm setstate PLACECALL
    } else {
        leg setupack leg_incoming
        playtone leg_incoming tn_dial  
 
 
        set param(dialPlan) true
        leg collectdigits leg_incoming param
    }
    
}
 
 
proc act_GotDest { } {
     global dest
 
 
    set status [infotag get evt_status]   
    if {  $status == "cd_004" } {
        set dest [infotag get evt_dcdigits]
        leg proceeding leg_incoming
        leg setup $dest callInfo leg_incoming
    } else {
        call close
    }
}
        
proc act_CallSetupDone { } {
    
    infotag set evt_feature_report media_inactivity
    infotag set media_timer_factor $timerFactor
 
 
    set status [infotag get evt_status]
 
 
    if { $status == "ls_000"} {
 
 
    } else {
        call close
    }
}
 
 
proc act_EvFeatureReceived { } {
   global timerFactor
 
 
   set featureType [infotag get evt_feature_type]
 
 
   if {  $featureType == "media_inactivity" } {
       log -s "media inactivity or silence is detected" 
   
       set inactivity_type [infotag get evt_feature_param media_inactivity_type]
       if {  $inactivity_type == "no media received" } {       
           log -s "media inactivity, RTCP packet was previously received"
       }
       if {  $inactivity_type == "no control info received" } {
           log -s "media inactivity, no RTCP packet was previously received "
       }
 
 
   } elseif { $featureType == "media_activity" } {
       log -s "media activity detected and call is back alive, VOIP RTP starts receiving 
RTP/RTCP packets"
       
   } else {
       log -s "other Events have been detected"
   }
}
 
 
proc act_Cleanup { } {
    
    call close
}
 
 
init
 
 
#----------------------------------
#   State Machine
#----------------------------------
  set fsm(any_state,ev_disconnected)         "act_Cleanup          same_state"
  set fsm(CALL_INIT,ev_setup_indication)     "act_Setup            GETDEST"
  set fsm(GETDEST,ev_collectdigits_done)     "act_GotDest          PLACECALL"
 
 
  set fsm(PLACECALL,ev_setup_done)           "act_CallSetupDone    CALLACTIVE"
  set fsm(CALLACTIVE,ev_feature)             "act_EvFeatureReceived same_state"
 
  set fsm(CALLACTIVE,ev_disconnected)        "act_Cleanup          CALLDISCONNECT"
  set fsm(CALLDISCONNECT,ev_disconnected)    "act_Cleanup          same_state"
  set fsm(CALLDISCONNECT,ev_disconnect_done) "act_Cleanup          same_state"
 
  fsm define fsm CALL_INIT
 
 
# End the application