Cisco IOS Voice Troubleshooting and Monitoring -- SIP Debug Output Filtering Support
From DocWiki
The SIP Debug Output Filtering Support feature provides the capability for SIP-related debug output to be filtered based on a set of user-defined matching conditions.
Contents |
Restrictions for SIP Debug Output Filtering Support
The SIP Debug Output Filtering Support feature filters all enabled bugs, not just SIP bugs.
Information About SIP Debug Output Filtering Support
To configure the SIP Debug Output Filtering Support feature, you should understand the following concepts:
- Feature Design of SIP Debug Output Filtering Support
- Generic Call Filtering Module
- SIP Debug Commands that Support Output Filtering
- Matching Conditions
Feature Design of SIP Debug Output Filtering Support
Prior to the SIP Debug Output Filtering Support feature, debugging and troubleshooting on the VoIP gateway was made more challenging by the extensive amounts of raw data generated by debug output. This feature allows the debug output for a SIP call to be filtered according to a variety of criteria. The SIP Debug Output Filtering Support feature provides a generic call filtering mechanism that does the following:
- Allows you to define a set of matching conditions for filtering calls.
- Identifies the desired calls based on the configured matching conditions inside VoIP gateways.
- Coordinates the filtering effort on traced calls between multiple modules inside VoIP gateways.
- Displays the debugging trace for calls that match the specified conditions.
The SIP Debug Output Filtering Support feature document provides SIP-specific information on the debug filtering design in Cisco IOS gateways implemented by the voice call debug filtering feature. See the Voice Call Debug Filtering on Cisco Voice Gateways for more information.
Generic Call Filtering Module
Cisco implements the SIP Debug Output Filtering Support feature using the GCFM to identify and track calls based on configured parameters. You can use the command-line interface (CLI) to turn the GCFM on and off. When the GCFM is turned on, only the debug messages for calls that match the filtering conditions are displayed.
The GCFM manages the set of matching condition lists and coordination and tracking of calls between multiple modules within the voice gateway architecture. The SIP module uses the GCFM function to create GUIDs to track individual inbound and outbound SIP calls. Activity in the GCFM can be traced using the debug call filter detail and debug call filter inout commands. See the Cisco IOS Debug Command Reference for more information about these debug commands.
SIP Debug Commands that Support Output Filtering
- debug ccsip all
- debug ccsip calls
- debug ccsip events
- debug ccsip messages
- debug ccsip preauth
- debug ccsip states
See the Cisco IOS Debug Command Reference for more information about SIP debug commands.
| Note: | Because of the importance of the messages associated with the debug ccsip err command, this debug output is not filterable. |
Matching Conditions
To filter calls, define a list of matching conditions. The SIP Debug Output Filtering Support feature supports matches based on the following conditions:
- Incoming calling-number string
- Incoming called-number string
- Incoming signaling IPv4 local address
- Incoming signaling IPv4 remote address
- Incoming media IPv4 local address
- Incoming media IPv4 remote address
- Incoming dial peer
- Outgoing calling-number string
- Outgoing called-number string
- Outgoing signaling IPv4 local address
- Outgoing signaling IPv4 remote address
- Outgoing media IPv4 local address
- Outgoing media IPv4 remote address
- Outgoing dial peer
The string pattern for calling and called numbers can be either a complete telephone number or a partial telephone number with wildcard digits, represented by a period (.) character.
You can define matching conditions as follows:
- Exact match-All related debug output is filtered until all conditions in the match list are explicitly met. This option is the best choice for most situations because it produces the most concise output.
- Partial match-No related debug output is filtered until there is a single explicit match failure. As long as zero or more conditions are met, debug output is not filtered. This choice is useful in debugging call startup problems like digit collection, but is not ideal for many situations because of the large amount of debug output until matches explicitly fail.
See the Exact and Partial Matching for more information on matching conditions and filtering voice calls.
Configuring SIP Debug Filtering
This section contains the following procedures:
- Configuring Call Filters (required)
- Enabling SIP Debug Output Filtering (required)
- Verifying SIP Debug Output Filtering Support (optional)
Configuring Call Filters
This task configures the conditions for filtering SIP calls.
SUMMARY STEPS
- enable
- configure terminal
- call filter match-list number voice
- incoming calling-number string
- incoming called-number string
- incoming signaling {local | remote} ipv4 ip-address
- incoming media {local | remote} ipv4 ip-address
- incoming dialpeer tag
- outgoing calling-number' string
- outgoing called-number string
- outgoing signaling {local | remote} ipv4 ip-address
- outgoing media {local | remote} ipv4 ip-address
- outgoing dialpeer tag
- end
DETAILED STEPS
| Command or Action | Purpose | ||||
|---|---|---|---|---|---|
|
1. |
enable Example: Router> enable |
Enables privileged EXEC mode.
| |||
|
2. |
configure terminal Example: Router# configure terminal |
Enters global configuration mode. | |||
|
3. |
call filter match-list number voice Example: Router(config)# call filter match-list 1 voice |
Enters call filter match list configuration mode to define the filter conditions.
| |||
|
4. |
incoming calling-number string Example: Router(conf-call-filter-mlist)# incoming calling-number
408555
|
(Optional) Specifies the incoming calling number to be filtered.
| |||
|
5. |
incoming called-number string Example: Router(conf-call-filter-mlist)# incoming called-number
408555
|
(Optional) Specifies the incoming called number to be filtered.
| |||
|
6. |
incoming signaling {local | remote} ipv4 ip-address
Example: Router(conf-call-filter-mlist)# incoming signaling local
ipv4 192.168.10.255
|
(Optional) Specifies the incoming signaling IPv4 address.
| |||
|
7. |
incoming media {local | remote} ipv4 ip-address Example: Router(conf-call-filter-mlist)# incoming media local
ipv4 192.168.10.255
|
(Optional) Specifies the incoming media IPv4 address for the voice gateway receiving the media stream.
| |||
|
8. |
incoming dialpeer tag Example: Router(conf-call-filter-mlist)# incoming dialpeer 14 |
(Optional) Specifies the incoming dial peer to be filtered.
| |||
|
9. |
outgoing calling-number string Example: Router(conf-call-filter-mlist)# outgoing calling-number
408555
|
(Optional) Specifies the outgoing calling number to be filtered; this number goes out after number translation and expansion are complete.
| |||
|
10. |
outgoing called-number string Example: Router(conf-call-filter-mlist)# outgoing called-number
408555
|
(Optional) Specifies the outgoing called number to be filtered; this number goes out after number translation and expansion are complete.
| |||
|
11. |
outgoing signaling {local | remote} ipv4 ip-address Example: Router(conf-call-filter-mlist)# outgoing signaling local
ipv4 192.168.10.255
|
(Optional) Specifies the outgoing signaling IPv4 address for the gatekeeper managing the signaling.
| |||
|
12. |
outgoing media {local | remote} ipv4 ip-address Example: Router(conf-call-filter-mlist)# outgoing media local
ipv4 192.168.10.255
|
(Optional) Specifies the outgoing media IPv4 address for the voice gateway receiving the media stream.
| |||
|
13. |
outgoing dialpeer tag Example: Router(conf-call-filter-mlist)# outgoing dialpeer 14 |
(Optional) Specifies the outgoing dial peer to be filtered.
| |||
|
14. |
end Example: Router(conf-call-filter-mlist)# end |
Exits to privileged EXEC mode. |
What to Do Next
After the conditions are set for filtering the SIP call debug output, debug commands can be enabled. Proceed to the "Enabling SIP Debug Output Filtering" section.
Enabling SIP Debug Output Filtering
This task enables debug filtering for SIP-related output.
Prerequisites
The conditions for the SIP call debug filter must be set as described in the Configuring Call Filters.
SUMMARY STEPS
- enable
- debug condition match-list number {exact-match | partial-match}
- debug ccsip {all | calls | events | messages | preauth | states}
DETAILED STEPS
| Command or Action | Purpose | |
|---|---|---|
|
1. |
enable Example: Router> enable |
Enables privileged EXEC mode.
|
|
2. |
debug condition match-list number {exact-match | partial-match) Example: Router# debug condition match-list 1
exact-match
|
Enables the filter match list for the set conditions.
|
|
3. |
debug ccsip {all | calls | events | messages | preauth | states} Example: Router# debug ccsip all |
Enables the appropriate SIP call debug commands.
|
Verifying SIP Debug Output Filtering Support
Perform this task to verify debug output filtering.
SUMMARY STEPS
- show debug
- show call filter components
- show call filter match-list
DETAILED STEPS
1. show debug
Use this command to display the debugs that are enabled, for example:
Router# show debug CCSIP SPI:SIP Call Statistics tracing is enabled (filter is ON) CCSIP SPI:SIP Call Message tracing is enabled (filter is ON) CCSIP SPI:SIP Call State Machine tracing is enabled (filter is ON) CCSIP SPI:SIP Call Events tracing is enabled (filter is ON) CCSIP SPI:SIP error debug tracing is enabled (filter is ON) CCSIP SPI:SIP info debug tracing is enabled (filter is ON) CCSIP SPI:SIP media debug tracing is enabled (filter is ON) CCSIP SPI:SIP Call preauth tracing is enabled (filter is ON)
2. show call filter components
Use this command to display which components are registered with the GCFM, the internal module that controls which components are filtered:
The following components registered in GCFM:
ISDN
VTSP
CCAPI
TGRM
DIAL-PEER
NUMBER-TRANSLATION
SSAPP
VOICE-IVR-V2
H323
SIP
CRM
3. show call filter match-list
Use this command to display the criteria set for the specified match list. The command shows a list of all the match lists, shows which ones are enabled, and shows whether they are enabled for partial or exact matching.
Router# show call filter match-list ********************************************* call filter match-list 1 voice ********************************************* incoming called-number 5551200
Configuration Examples for SIP Debug Filtering
This section provides the following configuration examples:
Configuring Call Filters: Example
The following example shows how to configure call filters. In the example, the Cisco AS5300 configuration defining a match list and specifying the incoming called number to be filtered is shown.
Router# show running-config Building configuration... Current configuration :3944 bytes ! ! Last configuration change at 13:07:08 EST Tue Sep 2 2003 ! version 12.3 no service pad service timestamps debug datetime msec localtime service timestamps log datetime msec localtime no service password-encryption service internal ! hostname Router-1 ! logging buffered 500000 debugging enable password lab ! ! ! resource-pool disable clock timezone EST -5 clock summer-time EST recurring ! no aaa new-model ip subnet-zero ip domain name cisco.com ip host CALLGEN-SECURITY-V2 10.73.75.86 8.52.0.0 ip name-server 10.44.11.21 ! ! isdn switch-type primary-dms100 no scripting tcl init no scripting tcl encdir ! ! voice call carrier capacity active ! voice service voip no supplementary-service h450.12 sip ! ! voice class codec 1 codec preference 1 g711ulaw codec preference 2 g729r8 ! ! voice hpi capture buffer 10000 no voice hpi capture destination ! ! fax interface-type modem call-history-mib retain-timer 500 call-history-mib max-size 500 ! ! controller T1 0 framing esf clock source line primary linecode b8zs pri-group timeslots 1-24 ! controller T1 1 framing esf clock source line secondary 1 linecode b8zs pri-group timeslots 1-24 ! controller T1 2 framing esf linecode b8zs pri-group timeslots 1-24 ! controller T1 3 framing esf linecode b8zs pri-group timeslots 1-24 ! ! interface Ethernet0 no ip route-cache no ip mroute-cache shutdown no cdp enable ! interface Serial0:23 no logging event link-status isdn switch-type primary-dms100 isdn incoming-voice modem no cdp enable ! interface Serial1:23 no logging event link-status isdn switch-type primary-dms100 isdn incoming-voice modem no cdp enable ! interface Serial2:23 no logging event link-status isdn switch-type primary-dms100 isdn incoming-voice modem no cdp enable ! interface Serial3:23 isdn switch-type primary-dms100 no cdp enable ! interface FastEthernet0 ip address 172.18.195.43 255.255.0.0 no ip route-cache no ip mroute-cache duplex auto speed auto fair-queue 64 256 235 no cdp enable ! ip classless ip route 0.0.0.0 0.0.0.0 FastEthernet0 ip route 10.0.0.0 255.0.0.0 172.18.193.3 ip route 10.0.0.0 255.0.0.0 172.18.195.1 ip route 172.18.0.0 255.255.0.0 172.18.193.1 ip http server ! ! ! control-plane ! ! ! call filter match-list 1 voice incoming called-number 4085559876 ! voice-port 0:D ! voice-port 1:D ! voice-port 2:D ! voice-port 3:D ! ! dial-peer cor custom ! ! ! dial-peer voice 1100 pots destination-pattern 55511.. direct-inward-dial port 0:D prefix 55511 ! dial-peer voice 1200 pots destination-pattern 55512.. direct-inward-dial port 1:D prefix 55512 ! dial-peer voice 444 pots destination-pattern 444.... direct-inward-dial port 2:D prefix 444 ! dial-peer voice 5100 voip destination-pattern 55551.. session protocol sipv2 session target ipv4:172.18.207.10:5060 dtmf-relay rtp-nte codec g711ulaw ! dial-peer voice 5200 voip destination-pattern 55552.. session protocol sipv2 session target ipv4:172.18.207.10:5060 dtmf-relay rtp-nte ! dial-peer voice 5300 voip destination-pattern 55553.. session protocol sipv2 session target ipv4:10.0.0.5 dtmf-relay rtp-nte ! dial-peer voice 5400 voip destination-pattern 55554.. session protocol sipv2 session target ipv4:10.0.0.5 dtmf-relay rtp-nte ! dial-peer voice 2100 voip destination-pattern 55521.. session protocol sipv2 session target ipv4:172.18.193.88 dtmf-relay rtp-nte codec g711ulaw ! dial-peer voice 2200 voip destination-pattern 55522.. session protocol sipv2 session target ipv4:172.18.207.10:5060 dtmf-relay rtp-nte ! gateway ! sip-ua retry invite 3 retry response 3 retry bye 3 retry cancel 3 retry prack 3 retry comet 3 retry rel1xx 3 retry notify 3 timers trying 750 ! ! line con 0 exec-timeout 0 0 transport preferred none line aux 0 line vty 0 4 exec-timeout 0 0 password lab login transport preferred none ! ntp clock-period 17180086 ntp server 172.68.10.150 prefer ! end
Enabling SIP Debug Output Filtering: Example
The following example shows how to enable SIP debug output filtering. In the following example, the match-list configuration, enabled debugs, and debug output for a Cisco AS5300 are shown.
| Note: | When the exact match condition is used for SIP call debug filtering, all related debug output is filtered until all conditions in the match list are explicitly met. |
Router# debug condition match-list 1 exact-match Router# debug ccsip all Router# show debug CCSIP SPI:SIP Call Statistics tracing is enabled (filter is ON) CCSIP SPI:SIP Call Message tracing is enabled (filter is ON) CCSIP SPI:SIP Call State Machine tracing is enabled (filter is ON) CCSIP SPI:SIP Call Events tracing is enabled (filter is ON) CCSIP SPI:SIP error debug tracing is enabled (filter is ON) CCSIP SPI:SIP info debug tracing is enabled (filter is ON) CCSIP SPI:SIP media debug tracing is enabled (filter is ON) CCSIP SPI:SIP Call preauth tracing is enabled (filter is ON) Router# Debug filtering is now on Building configuration... ! ! ! call filter match-list 1 voice incoming called-number 4085551221 ! end
The following lines show partial debug output with the filter on. Some debug output generated during a call may not have GUID information. These debugs, represented by /xxxxxxxxxxxx/ characters in the debug header, are not filtered and always appear.
Sep 2 13:11:05.395://-1/xxxxxxxxxxxx/SIP/Error/httpish_msg_process_network_msg:Content Length 222, Bytes Remaining 233 Sep 2 13:11:05.395://-1/xxxxxxxxxxxx/SIP/Info/HandleUdpSocketReads:Msg enqueued for SPI with IP addr:10.102.16.214:56587 Sep 2 13:11:05.395://-1/xxxxxxxxxxxx/SIP/Info/sipSPISetDateHeader:Converting TimeZone EST to SIP default timezone = GMT Sep 2 13:11:05.399://-1/xxxxxxxxxxxx/SIP/Error/sipSPI_validate_own_ip_addr:ReqLine IP addr does not match with host IP addr Sep 2 13:11:05.399://-1/xxxxxxxxxxxx/SIP/Event/sipSPIEventInfo:Queued event from SIP SPI :SIPSPI_EV_SEND_MESSAGE
The next lines show the debug filtering turned off.
Router# no debug condition match-list 1 Router# show debug CCSIP SPI:SIP Call Statistics tracing is enabled (filter is OFF) CCSIP SPI:SIP Call Message tracing is enabled (filter is OFF) CCSIP SPI:SIP Call State Machine tracing is enabled (filter is OFF) CCSIP SPI:SIP Call Events tracing is enabled (filter is OFF) CCSIP SPI:SIP error debug tracing is enabled (filter is OFF) CCSIP SPI:SIP info debug tracing is enabled (filter is OFF) CCSIP SPI:SIP media debug tracing is enabled (filter is OFF) CCSIP SPI:SIP Call preauth tracing is enabled (filter is OFF)
With filtering turned off, all the debug output is displayed.
Sep 2 13:12:31.112://-1/xxxxxxxxxxxx/SIP/Info/HandleUdpSocketReads:Msg enqueued for SPI with IP addr:10.102.16.214:56589 Sep 2 13:12:31.112://-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg: Received: SUBSCRIBE sip:3100802@172.18.193.99:5060 SIP/2.0 Via:SIP/2.0/UDP 172.18.193.100:5060;branch=z9hG4bK1348 From:"3100801" <sip:3100801@172.18.193.100>;tag=19AE8-A6C To:<sip:3100802@172.18.193.99>;tag=19AE8-A6C Date:Mon, 30 Oct 2000 04:47:31 GMT Call-ID:96ACB04F-AD5611D4-800894FA-5B905DB@172.18.193.100 Supported:timer,100rel Min-SE: 1800 Cisco-Guid:2496939846-2908099028-2147680272-2073165500 User-Agent:Cisco-SIPGateway/IOS-12.x Allow:INVITE, OPTIONS, BYE, CANCEL, ACK, PRACK, COMET, REFER, SUBSCRIBE, NOTIFY, INFO, UPDATE CSeq:101 SUBSCRIBE Max-Forwards:6 Remote-Party-ID:<sip:3100801@172.18.193.100>;party=calling;screen=no;privacy=off Timestamp:972881251 Contact:<sip:3100801@172.18.193.100:5060> Expires:60 Allow-Events:telephone-event Content-Type:application/sdp Content-Length:233 v=0 o=CiscoSystemsSIP-GW-UserAgent 2904 6070 IN IP4 172.18.193.100 s=SIP Call c=IN IP4 172.18.193.100 t=0 0 m=audio 18862 RTP/AVP 18 19 c=IN IP4 172.18.193.100 a=rtpmap:18 G729/8000 a=fmtp:18 annexb=no a=rtpmap:19 CN/8000 a=ptime:20 Sep 2 13:12:31.112://-1/94D447468003/SIP/State/sipSPIChangeState:0x631570C8 :State change from (STATE_NONE, SUBSTATE_NONE) to (STATE_IDLE, SUBSTATE_NONE) Sep 2 13:12:31.112://-1/xxxxxxxxxxxx/SIP/Info/sipSPISetDateHeader:Converting TimeZone EST to SIP default timezone = GMT Sep 2 13:12:31.116://-1/xxxxxxxxxxxx/SIP/Error/sipSPI_validate_own_ip_addr:ReqLine IP addr does not match with host IP addr Sep 2 13:12:31.116://-1/xxxxxxxxxxxx/SIP/Event/sipSPIEventInfo:Queued event from SIP SPI :SIPSPI_EV_SEND_MESSAGE Sep 2 13:12:31.116://-1/94D447468003/SIP/Info/sipmwiEventCleanup:Removing CCB with mwi clientID(3100802) Sep 2 13:12:31.116://-1/94D447468003/SIP/State/sipSPIChangeState:0x631570C8 :State change from (STATE_IDLE, SUBSTATE_NONE) to (STATE_DEAD, SUBSTATE_NONE) Sep 2 13:12:31.116://-1/94D447468003/SIP/Info/ccsip_deregister_call_filter:Deregistering call from GCFM Sep 2 13:12:31.120://-1/94D447468003/SIP/Info/sipSPIFlushEventBufferQueue:There are 0 events on the internal queue that are going to be free'd Sep 2 13:12:31.120://-1/94D447468003/SIP/Info/sipSPIUfreeOneCCB:Freeing ccb 631570C8 Sep 2 13:12:31.120://-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg: Sent: SIP/2.0 489 Bad Event - 'Missing Event:field' Via:SIP/2.0/UDP 172.18.193.100:5060;branch=z9hG4bK1348;received=10.102.16.214 From:"3100801" <sip:3100801@172.18.193.100>;tag=19AE8-A6C To:<sip:3100802@172.18.193.99>;tag=19AE8-A6C Call-ID:96ACB04F-AD5611D4-800894FA-5B905DB@172.18.193.100 CSeq:101 SUBSCRIBE Timestamp:972881251 Content-Length:0
