HowTo: SNMP S500, S700, S705 Phone

This is what I found out about monitoring the Sangoma Phones through SNMP. I leave this here for future references.

There was an unanswered question from Jordack here: S500 snmp support

With SNMP we can scan the Firmware versions, if phones are registered etc… Very lightweight.
I’m not sure if SNMP is still available through the VPN tunnel, which would be very useful.

First you need to enable SNMP in your phone, set a password on the public as ‘public’. No need to restrict ip’s on this moment. If you’re in the same network it should be fine.

reboot your phone…

You need snmp-utils installed (use brew or yum, apt on your os to install)
I have not find a MIBs for this, but the output is easy to analyse.

To list all the items in the MIB use:

snmpwalk -t 600 -OnteU -v2c -c public your_phone_ip 1
This will give you a similar dump like this below. I’ve added my comments to the lines I’ve deciphered and are where useful to me for monitoring.

.1.3.6.1.2.1.1.1.0 = STRING: S700
.1.3.6.1.2.1.1.2.0 = Wrong Type (should be OBJECT IDENTIFIER): STRING: “.1.3.6.1.4.1.38241.3”
.1.3.6.1.2.1.1.3.0 = INTEGER: 16109428
.1.3.6.1.2.1.1.4.0 = STRING: Sangoma
.1.3.6.1.2.1.1.5.0 = STRING: voip device
.1.3.6.1.2.1.1.6.0 = STRING:
.1.3.6.1.2.1.1.7.0 = INTEGER: 6
.1.3.6.1.4.1.38241.1.1.0 = STRING: “BOOT–2.0.3.36(2016-01-31 11:10:00) IMG–2.0.4.63(2019-03-29 14:30:00)”. <— Firmware Loaded
.1.3.6.1.4.1.38241.1.2.0 = STRING: “S700” <— the model
.1.3.6.1.4.1.38241.1.3.0 = STRING: “xx:xx:xx:xx:xx:xx” <— MAC
.1.3.6.1.4.1.38241.1.4.0 = STRING: “192.168.178.81” <— Phone IP
.1.3.6.1.4.1.38241.1.5.0 = INTEGER: 2
.1.3.6.1.4.1.38241.1.6.0 = STRING: “restart”
.1.3.6.1.4.1.38241.1.7.0 = STRING: “factory reset”
.1.3.6.1.4.1.38241.2.1.0 = INTEGER: 6
.1.3.6.1.4.1.38241.2.2.1.1.1 = INTEGER: 1
.1.3.6.1.4.1.38241.2.2.1.1.2 = INTEGER: 2
.1.3.6.1.4.1.38241.2.2.1.1.3 = INTEGER: 3
.1.3.6.1.4.1.38241.2.2.1.1.4 = INTEGER: 4
.1.3.6.1.4.1.38241.2.2.1.1.5 = INTEGER: 5
.1.3.6.1.4.1.38241.2.2.1.1.6 = INTEGER: 6
.1.3.6.1.4.1.38241.2.2.1.2.1 = INTEGER: 2
.1.3.6.1.4.1.38241.2.2.1.2.2 = INTEGER: 2
.1.3.6.1.4.1.38241.2.2.1.2.3 = INTEGER: 2
.1.3.6.1.4.1.38241.2.2.1.2.4 = INTEGER: 2
.1.3.6.1.4.1.38241.2.2.1.2.5 = INTEGER: 2
.1.3.6.1.4.1.38241.2.2.1.2.6 = INTEGER: 2
.1.3.6.1.4.1.38241.2.2.1.3.1 = INTEGER: 1
.1.3.6.1.4.1.38241.2.2.1.3.2 = INTEGER: 0
.1.3.6.1.4.1.38241.2.2.1.3.3 = INTEGER: 0
.1.3.6.1.4.1.38241.2.2.1.3.4 = INTEGER: 0
.1.3.6.1.4.1.38241.2.2.1.3.5 = INTEGER: 0
.1.3.6.1.4.1.38241.2.2.1.3.6 = INTEGER: 0
.1.3.6.1.4.1.38241.2.2.1.5.1 = INTEGER: 1 ← Account1 Register 0=no, 1=yes
.1.3.6.1.4.1.38241.2.2.1.5.2 = INTEGER: 0
.1.3.6.1.4.1.38241.2.2.1.5.3 = INTEGER: 0
.1.3.6.1.4.1.38241.2.2.1.5.4 = INTEGER: 0
.1.3.6.1.4.1.38241.2.2.1.5.5 = INTEGER: 0
.1.3.6.1.4.1.38241.2.2.1.5.6 = INTEGER: 0
.1.3.6.1.4.1.38241.2.2.1.6.1 = STRING: “10.8.33.1.1:5060” ← IP of FreePBX
.1.3.6.1.4.1.38241.2.2.1.6.2 = “”
.1.3.6.1.4.1.38241.2.2.1.6.3 = “”
.1.3.6.1.4.1.38241.2.2.1.6.4 = “”
.1.3.6.1.4.1.38241.2.2.1.6.5 = “”
.1.3.6.1.4.1.38241.2.2.1.6.6 = “”
.1.3.6.1.4.1.38241.2.2.1.7.1 = “”
.1.3.6.1.4.1.38241.2.2.1.7.2 = “”
.1.3.6.1.4.1.38241.2.2.1.7.3 = “”
.1.3.6.1.4.1.38241.2.2.1.7.4 = “”
.1.3.6.1.4.1.38241.2.2.1.7.5 = “”
.1.3.6.1.4.1.38241.2.2.1.7.6 = “”
.1.3.6.1.4.1.38241.2.2.1.8.1 = STRING: “2000” <— Phone Extension/Account
.1.3.6.1.4.1.38241.2.2.1.8.2 = “”
.1.3.6.1.4.1.38241.2.2.1.8.3 = “”
.1.3.6.1.4.1.38241.2.2.1.8.4 = “”
.1.3.6.1.4.1.38241.2.2.1.8.5 = “”
.1.3.6.1.4.1.38241.2.2.1.8.6 = “”
.1.3.6.1.4.1.38241.2.2.1.9.1 = STRING: “2000” <— Phone Extension/Account
.1.3.6.1.4.1.38241.2.2.1.9.2 = “”
.1.3.6.1.4.1.38241.2.2.1.9.3 = “”
.1.3.6.1.4.1.38241.2.2.1.9.4 = “”
.1.3.6.1.4.1.38241.2.2.1.9.5 = “”
.1.3.6.1.4.1.38241.2.2.1.9.6 = “”
.1.3.6.1.4.1.38241.2.2.1.9.6 = No more variables left in this MIB View (It is past the end of the MIB tree)

1 Like