Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from pysnmp.entity import engine, config
- from pysnmp.carrier.asyncore.dgram import udp
- from pysnmp.entity.rfc3413 import ntforg
- from pysnmp.proto.api import v2c
- import subprocess
- #subsprocess.popen(['asterisk', '-rx', 'sip', 'show', 'registry'])
- return_val=subprocess.Popen(['asterisk -rx "sip show registry"'],stdout=subprocess.PIPE).communicate()
- print return_val
- # Create SNMP engine instance
- snmpEngine = engine.SnmpEngine()
- # SecurityName <-> CommunityName mapping
- config.addV1System(snmpEngine, 'my-area', 'public', transportTag='all-my-managers')
- # Specify security settings per SecurityName (SNMPv1 -> 0)
- config.addTargetParams(snmpEngine, 'my-creds', 'my-area', 'noAuthNoPriv', 0)
- # Setup transport endpoint and bind it with security settings yielding
- # a target name
- config.addTransport(
- snmpEngine,
- udp.domainName,
- udp.UdpSocketTransport().openClientMode()
- )
- config.addTargetAddr(
- snmpEngine, 'my-nms',
- udp.domainName, ('127.0.0.1', 162),
- 'my-creds',
- tagList='all-my-managers'
- )
- # Specify what kind of notification should be sent (TRAP or INFORM),
- # to what targets (chosen by tag) and what filter should apply to
- # the set of targets (selected by tag)
- config.addNotificationTarget(
- snmpEngine, 'my-notification', 'my-filter', 'all-my-managers', 'trap'
- )
- # Allow NOTIFY access to Agent's MIB by this SNMP model (1), securityLevel
- # and SecurityName
- config.addContext(snmpEngine, '')
- config.addVacmUser(snmpEngine, 1, 'my-area', 'noAuthNoPriv', (), (), (1, 3, 6))
- # *** SNMP engine configuration is complete by this line ***
- # Create Notification Originator App instance.
- ntfOrg = ntforg.NotificationOriginator()
- #Build and submit notification message to dispatcher
- ntfOrg.sendVarBinds(
- snmpEngine,
- # Notification targets
- 'my-notification', # notification targets
- None, '', # contextEngineId, contextName
- # var-binds
- [
- # managed object '1.3.6.1.2.1.1.1.0' = 'my system'
- (v2c.ObjectIdentifier('1.3.6.1.4.1.36119.1.1.0'),
- v2c.OctetString('my system 1')),
- (v2c.ObjectIdentifier('1.3.6.1.4.1.36119.1.2.0'),
- v2c.OctetString('my system 2')),
- ]
- )
- print('Notification is scheduled to be sent')
- snmpEngine.transportDispatcher.runDispatcher()
Add Comment
Please, Sign In to add comment