Skip to content

Instantly share code, notes, and snippets.

@sboily
Last active December 21, 2015 18:17
Show Gist options
  • Save sboily/56566e0def91c9ce1965 to your computer and use it in GitHub Desktop.
Save sboily/56566e0def91c9ce1965 to your computer and use it in GitHub Desktop.
#!/usr/bin/env python
from xivo_amid_client import Client as Amid
from xivo_auth_client import Client as Auth
from xivo_confd_client import Client as Confd
username="sylvain"
password="sylvain"
auth = Auth('127.0.0.1', username=username, password=password, verify_certificate=False)
ami = Amid('127.0.0.1', port=9491, version='1.0', timeout=3, verify_certificate=False)
token_data = auth.token.new('xivo_ws', expiration=10)
token = token_data['token']
confd = Confd('127.0.0.1', port=9486, verify_certificate=False, token=token)
peers = ami.action('SIPpeerstatus', {}, token=token)
for peer in peers:
if peer.get('Event') == "PeerStatus":
status = peer.get('PeerStatus')
peer_name = peer.get('Peer')
peer_username = peer_name.split('/')[1]
time = peer.get('Time', 0)
ip = ami.action('SIPshowpeer', {'peer': "{}".format(peer_username)}, token=token)[0]['Address-IP']
sip_id = confd.endpoints_sip.list(search=peer_username)['items'][0]['id']
user = None
try:
line_id = confd.endpoints_sip.relations(sip_id).get_line()['line_id']
user_id = confd.lines.relations(line_id).list_users()['items'][0]['user_id']
user = confd.users.get(user_id)
except:
pass
if user:
user = u"{} {}".format(user['firstname'], user['lastname'])
print u"{} -> Peer {} is {} : {}ms {}".format(user, peer_name, status, time, ip)
auth.token.revoke(token)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment