cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1798
Views
0
Helpful
9
Replies

Assistance needed on Cisco IOS-XE YANG model for Voice

Simran S
Level 1
Level 1

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)#

1 Accepted Solution

Accepted Solutions

Simran S
Level 1
Level 1

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.

View solution in original post

9 Replies 9

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

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 ~]$

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

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

Hello,

which XE version are you running on the CSR1000v ? The Github repository looks like it is writen for 17.2.1.

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

Simran S
Level 1
Level 1

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.

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


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