ā07-17-2022 03:00 PM
Hi... I am trying to setup Cisco MDT in lab on a CSR 1000V router. I am able to set it up for regular IOS related parameters like CPU and memory monitoring but Voice specific configuration doesn't seem to work. I've checked the XPath string many times but it is still not able to connect to the Telegraf server
E.g Here are couple of XPath strings
/voice-ios-xe-oper:voice-oper-data/active-voice-call-sum/total-entry
/voice-ios-xe-oper:voice-oper-data/sccp-ccm-group[ccm-group-id='1']/description
But somehow, the connection keeps coming up as "Invalid"
Telemetry subscription detail:
Subscription ID: 3
Type: Configured
State: Invalid
Stream: yang-push
Filter:
Filter type: xpath
XPath: /voice-ios-xe-oper:voice-oper-data/active-voice-call-sum/total-entry
Update policy:
Update Trigger: periodic
Period: 500
Encoding: encode-kvgpb
Source VRF:
Source Address: 10.0.0.115
Notes: Invalid XPath filter: '/voice-ios-xe-oper:voice-oper-data/active-voice-call-sum/total-entry'.
Receivers:
Address Port Protocol Protocol Profile
-----------------------------------------------------------------------------------------
10.0.0.245 57000 grpc-tcp
Router(config-mdt-subs)#
Solved! Go to Solution.
ā08-28-2022 10:46 AM
The issue was found to be with the CSR router. It just doesn't work with the voice specific yang model I configured the same on a 4000 series CUBE and it worked.
If anyone else is encountering the same issue then don't worry. The YANG model is correct but it just doesn't work with CSR router. You can try the same XPath string with a CUBE and it will work.
ā07-18-2022 01:18 AM
Hello,
I have looked around but could not find the xpath you are using. What if you change the Xpath to:
/voice-ios-xe-oper:voice-oper-data/active-voip-call-summary/total-entry
ā07-18-2022 02:29 PM
Hi Georg,
I've tried that as well and it doesn't work either. I am following the below model
https://github.com/YangModels/yang/blob/main/vendor/cisco/xe/1721/Cisco-IOS-XE-voice-oper.yang
It's tree like structure is as follows
module: Cisco-IOS-XE-voice-oper
+--ro dspfarm-dsp* [bridge-id]
| +--ro bridge-id uint32
| +--ro dsp-slot? string
| +--ro dsp-num? uint32
| +--ro dsp-version? string
| +--ro dsp-status? voice-ios-xe-oper:dsp-status-type
| +--ro chnl-id? uint32
| +--ro chnl-status? voice-ios-xe-oper:chnl-status-type
| +--ro service-type? voice-ios-xe-oper:dsp-service-type
| +--ro rsc-id? uint32
| +--ro pkts-txed? uint32
| +--ro pkts-rxed? uint32
+--ro sccp-connection* [conn-id]
| +--ro conn-id uint32
| +--ro sess-id? uint32
| +--ro stype? voice-ios-xe-oper:sccp-sess-type
| +--ro mode? voice-ios-xe-oper:sccp-conn-mode
| +--ro codec? voice-ios-xe-oper:voip-codec-type
| +--ro rmt-ipaddr? inet:ip-address
| +--ro rmt-port? uint16
| +--ro src-port? uint16
| +--ro dtmf-method? voice-ios-xe-oper:dtmf-method-type
+--ro voice-recording-port* [port-dptag]
| +--ro port-dptag uint32
| +--ro pa-bay? uint32
| +--ro port-type? voice-ios-xe-oper:dsp-port-type
| +--ro port-id? string
| +--ro server-dptag? uint32
+--ro voice-recording-license!
| +--ro configured? uint32
| +--ro allocated? uint32
| +--ro max-support-call? uint32
| +--ro call-use-license? uint32
+--ro dspfarm-utlz-profile* [profile-id]
| +--ro profile-id uint32
| +--ro type? string
| +--ro profile-utlz? uint32
| +--ro profile-pvdm-entry* [pvdm-id]
| +--ro pvdm-id string
| +--ro pvdm-utlz? uint32
+--ro dspfarm-utlz-detail* [profile-id]
| +--ro profile-id uint32
| +--ro type? string
| +--ro profile-utlz? uint32
| +--ro dsp-utlz-detail-entry* [dsp-id]
| +--ro dsp-id string
| +--ro dsp-alloc-ratio? uint32
| +--ro dsp-channel-utlz? uint32
| +--ro dsp-credit-utlz? uint32
| +--ro dsp-session-utlz? uint32
+--ro dsapp-line-dev-sum!
| +--ro total-dev? uint32
| +--ro dsapp-line-dev-entry* [key-id]
| +--ro key-id string
| +--ro port-id
| | +--ro slot? uint32
| | +--ro subslot? uint32
| | +--ro port? uint32
| +--ro dev-name? string
| +--ro reg-state? voice-ios-xe-oper:reg-state-type
| +--ro dev-type? voice-ios-xe-oper:device-type
| +--ro dir-num? string
+--ro dsapp-line-fac!
| +--ro prefix? string
| +--ro call-forward-all? string
| +--ro call-forward-cancel? string
| +--ro pickup-local? string
| +--ro pickup-group? string
| +--ro pickup-direct? string
| +--ro cancel-call-waiting? string
| +--ro last-redial? string
+--ro active-voice-call-sum!
| +--ro total-entry? uint32
| +--ro active-voice-call-entry* [key-id]
| +--ro key-id string
| +--ro call-id? uint64
| +--ro voice-port-id? string
| +--ro codec-type? voice-ios-xe-oper:voip-codec-type
| +--ro vad? voice-ios-xe-oper:vad-configuration
| +--ro dsp-id? string
| +--ro dsp-type? voice-ios-xe-oper:dsp-type-enum
| +--ro dsp-version? string
| +--ro dsp-abort-packet-cnt? uint32
| +--ro dsp-tx-packet-cnt? uint32
| +--ro dsp-rx-packet-cnt? uint32
+--ro active-voip-call-summary!
| +--ro telephony-call-legs? uint32
| +--ro sip-call-legs? uint32
| +--ro total-call-legs? uint32
| +--ro active-voip-call-details* [call-index call-setuptime]
| +--ro call-index uint32
| +--ro call-setuptime yang:date-and-time
| +--ro call-id? uint32
| +--ro call-type? voice-ios-xe-oper:voice-call-type-enum
| +--ro bridge-id? uint32
| +--ro peer-id? int32
| +--ro direction? voice-ios-xe-oper:voice-call-direction-enum
| +--ro directory-number? string
| +--ro call-state? voice-ios-xe-oper:voice-call-state-enum
| +--ro call-duration? uint32
| +--ro transmit-packets? uint32
| +--ro transmit-bytes? uint32
| +--ro receive-packets? uint32
| +--ro receive-bytes? uint32
| +--ro remote-ip-address? inet:ip-address
| +--ro remote-media-port? uint16
| +--ro codec? voice-ios-xe-oper:voip-codec-type
+--ro sccp-ccm-group* [ccm-group-id]
| +--ro ccm-group-id uint32
| +--ro description? string
| +--ro bound-intf? string
| +--ro ipv6-address? inet:ip-address
| +--ro ipv4-address? inet:ip-address
| +--ro registration-retries? uint32
| +--ro registration-timeout? uint32
| +--ro keepalive-retries? uint32
| +--ro keepalive-timeout? uint32
| +--ro connect-retries? uint32
| +--ro connect-interval? uint32
| +--ro switchover-method? voice-ios-xe-oper:swo-method
| +--ro switchback-method? voice-ios-xe-oper:swb-method
| +--ro switchback-interval? uint32
| +--ro switchback-timeout? uint32
| +--ro signaling-dscp? uint8
| +--ro audio-dscp? uint8
| +--ro asso-ccm-entry* [ccm-id]
| | +--ro ccm-id uint32
| | +--ro ccm-priority? uint32
| +--ro asso-profile-entry* [profile-id]
| +--ro profile-id uint32
| +--ro reg-name? string
+--ro dspfp* [profile-id]
| +--ro profile-id uint32
| +--ro service-id? voice-ios-xe-oper:srvc-id
| +--ro resource-id? uint32
| +--ro secure-mode? voice-ios-xe-oper:secure-mode
| +--ro prof-admin-state? voice-ios-xe-oper:prof-admin-state
| +--ro prof-oper-state? voice-ios-xe-oper:prof-oper-state
| +--ro app-id? voice-ios-xe-oper:app-id
| +--ro app-assoc-status? voice-ios-xe-oper:app-assoc
| +--ro rsc-provider? voice-ios-xe-oper:rscprv-id
| +--ro rsc-status? voice-ios-xe-oper:rscprv-state
| +--ro total-rsc-cfg-count? uint32
| +--ro total-rsc-avail-count? uint32
| +--ro total-rsc-oos-count? uint32
| +--ro total-rsc-active-count? uint32
| +--ro total-codec-count? uint32
| +--ro dspfp-codec-entry* [codec-idx]
| +--ro codec-idx uint32
| +--ro codec-type? voice-ios-xe-oper:voip-codec-type
| +--ro max-pkt-period? uint32
+--ro voice-reg-phone-info* [pool-tag]
+--ro pool-tag uint32
+--ro id-network? inet:ip-address
+--ro reg-state? voice-ios-xe-oper:reg-state-type
+--ro voice-reg-line-info* [dialpeer-tag]
+--ro dialpeer-tag uint32
+--ro address? inet:ip-address
+--ro dir-number? string
[ssingh7@localhost ~]$
ā07-18-2022 11:55 PM - edited ā07-19-2022 12:21 AM
Hello,
I remember a similar problem from a while ago with a RESTCONF, where a string just wouldn't work, while others would. I think it has to do with the exact IOS version you are using.
It might also be the CRV1000 implementation...
I'll see if I can find out which one you need...
ā07-19-2022 03:30 PM
Thanks Georg... I was wondering the same about the IOS version but since regular CPU/Memory related stuff is working on this IOS-XE, I didn't play around much with it. I am not sure if this has something to do with any license or feature set that needs to be activated before any voice related information can be pulled.
Any insight you can provide will be very helpful. Thanks
ā07-20-2022 01:04 AM
Hello,
which XE version are you running on the CSR1000v ? The Github repository looks like it is writen for 17.2.1.
ā07-20-2022 04:16 PM
I am running 17.03.04a but there is no YANG model specific to this version. The closest available is is 17.3.1 but it's already similar to 17.2.1
ā08-28-2022 10:46 AM
The issue was found to be with the CSR router. It just doesn't work with the voice specific yang model I configured the same on a 4000 series CUBE and it worked.
If anyone else is encountering the same issue then don't worry. The YANG model is correct but it just doesn't work with CSR router. You can try the same XPath string with a CUBE and it will work.
ā01-21-2024 11:38 AM
I know this is a 2 year old post, however there seems to be no additional info on the voice yang model usage
Through my findings and as per simranigate Original post the voice-ios-xe-oper is indeed only usable in certein platforms like the ISR4k
https://github.com/YangModels/yang/blob/main/vendor/cisco/xe/16111/Cisco-IOS-XE-voice-oper.yang
So it seems to be usable on Cisco ISR4k routers, but not on CSR1000V/8000V virtual routers, but this is confirmed if we pull the capabilies via restconf (https://x.x.x.x:443/restconf/data/netconf-state/capabilities) on the virtual platfroms the voice-ios-xe-oper model is not there.
The more interesitng Yang Model cisco-IOS-XE-voice wich seems to be much more complete,and apear in both ISR and CSR devices, does not seem to be usable
https://github.com/YangModels/yang/blob/main/vendor/cisco/xe/16111/Cisco-IOS-XE-voice.yang
Even using the Yang Tools (https://github.com/CiscoDevNet/yangsuite/) this last model always returns errors, regardless if we use restconf or netconf
ā02-23-2024 10:40 AM
@Nuno Melo wrote:I know this is a 2 year old post, however there seems to be no additional info on the voice yang model usage
Through my findings and as per simranigate Original post the voice-ios-xe-oper is indeed only usable in certein platforms like the ISR4k
https://github.com/YangModels/yang/blob/main/vendor/cisco/xe/16111/Cisco-IOS-XE-voice-oper.yang
So it seems to be usable on Cisco ISR4k routers, but not on CSR1000V/8000V virtual routers, but this is confirmed if we pull the capabilies via restconf (https://x.x.x.x:443/restconf/data/netconf-state/capabilities) on the virtual platfroms the voice-ios-xe-oper model is not there.
The more interesitng Yang Model cisco-IOS-XE-voice wich seems to be much more complete,and apear in both ISR and CSR devices, does not seem to be usable
https://github.com/YangModels/yang/blob/main/vendor/cisco/xe/16111/Cisco-IOS-XE-voice.yang
Even using the Yang Tools (https://github.com/CiscoDevNet/yangsuite/) this last model always returns errors, regardless if we use restconf or netconf
I do not understand the rationale behind it, but you guys are both correct: That YANG model is simply missing from the Catalyst 8000V/CSR1000v, even in very recent IOS-XE 17.13.1:
jason@ubuntu:~/yang/vendor/cisco/xe/17131$ egrep '<name>Cisco-IOS-XE-voice-oper' *.xml
yang-set-c8200.xml: <name>Cisco-IOS-XE-voice-oper</name>
yang-set-c8300.xml: <name>Cisco-IOS-XE-voice-oper</name>
yang-set-ess3x00.xml: <name>Cisco-IOS-XE-voice-oper</name>
yang-set-ie3x00.xml: <name>Cisco-IOS-XE-voice-oper</name>
yang-set-ir1101.xml: <name>Cisco-IOS-XE-voice-oper</name>
yang-set-isr1k.xml: <name>Cisco-IOS-XE-voice-oper</name>
yang-set-isr4k.xml: <name>Cisco-IOS-XE-voice-oper</name>
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide