mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-02-13 13:40:44 +00:00
refactor to fix some major DRY violations
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@13785 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
parent
e57ccc74b6
commit
e6f1db4cd3
@ -76,6 +76,20 @@ class FreepyDispatcher(LineReceiver):
|
|||||||
debug(">> %s" % msg)
|
debug(">> %s" % msg)
|
||||||
return req.getDeferred()
|
return req.getDeferred()
|
||||||
|
|
||||||
|
def _sendCommand(self, command, bgapi):
|
||||||
|
"""
|
||||||
|
there is a lot of duplication in this object, and as many
|
||||||
|
methods as possible should be changed to use this method
|
||||||
|
rather than repeating the code
|
||||||
|
"""
|
||||||
|
command = ("bgapi %s" if bgapi else "api %s") % command
|
||||||
|
req = (request.BgDialoutRequest if bgapi else
|
||||||
|
request.DialoutRequest)()
|
||||||
|
self.requestq.put(req)
|
||||||
|
self.transport.write("%s\n\n" % command)
|
||||||
|
debug(">> %s" % command)
|
||||||
|
return req.getDeferred()
|
||||||
|
|
||||||
def confdialout(self, conf_name, sofia_url, bgapi=True):
|
def confdialout(self, conf_name, sofia_url, bgapi=True):
|
||||||
"""
|
"""
|
||||||
Instruct conference to join a particular user via dialout
|
Instruct conference to join a particular user via dialout
|
||||||
@ -161,18 +175,9 @@ class FreepyDispatcher(LineReceiver):
|
|||||||
|
|
||||||
TODO: add this
|
TODO: add this
|
||||||
"""
|
"""
|
||||||
if bgapi == True:
|
msg = "conference %s dtmf %s %s" % \
|
||||||
msg = "bgapi conference %s dtmf %s %s" % \
|
|
||||||
(conf_name, member_id, dtmf)
|
(conf_name, member_id, dtmf)
|
||||||
req = request.BgApiRequest()
|
return self._sendCommand(msg, bgapi)
|
||||||
else:
|
|
||||||
msg = "api conference %s dtmf %s %s" % \
|
|
||||||
(conf_name, member_id, dtmf)
|
|
||||||
req = request.ApiRequest()
|
|
||||||
self.requestq.put(req)
|
|
||||||
self.transport.write("%s\n\n" % msg)
|
|
||||||
debug(">> %s" % msg)
|
|
||||||
return req.getDeferred()
|
|
||||||
|
|
||||||
def confsay(self, conf_name, text2speak, bgapi=False):
|
def confsay(self, conf_name, text2speak, bgapi=False):
|
||||||
"""
|
"""
|
||||||
@ -184,18 +189,8 @@ class FreepyDispatcher(LineReceiver):
|
|||||||
|
|
||||||
TODO: add this
|
TODO: add this
|
||||||
"""
|
"""
|
||||||
if bgapi == True:
|
msg = "conference %s say %s" % (conf_name, text2speak)
|
||||||
msg = "bgapi conference %s say %s" % \
|
return self._sendCommand(msg, bgapi)
|
||||||
(conf_name, text2speak)
|
|
||||||
req = request.BgApiRequest()
|
|
||||||
else:
|
|
||||||
msg = "api conference %s say %s" % \
|
|
||||||
(conf_name, text2speak)
|
|
||||||
req = request.ApiRequest()
|
|
||||||
self.requestq.put(req)
|
|
||||||
self.transport.write("%s\n\n" % msg)
|
|
||||||
debug(">> %s" % msg)
|
|
||||||
return req.getDeferred()
|
|
||||||
|
|
||||||
def confplay(self, conf_name, snd_url, bgapi=False):
|
def confplay(self, conf_name, snd_url, bgapi=False):
|
||||||
"""
|
"""
|
||||||
@ -207,18 +202,8 @@ class FreepyDispatcher(LineReceiver):
|
|||||||
|
|
||||||
TODO: add this
|
TODO: add this
|
||||||
"""
|
"""
|
||||||
if bgapi == True:
|
msg = "conference %s play %s" % (conf_name, snd_url)
|
||||||
msg = "bgapi conference %s play %s" % \
|
return self._sendCommand(msg, bgapi)
|
||||||
(conf_name, snd_url)
|
|
||||||
req = request.BgApiRequest()
|
|
||||||
else:
|
|
||||||
msg = "api conference %s play %s" % \
|
|
||||||
(conf_name, snd_url)
|
|
||||||
req = request.ApiRequest()
|
|
||||||
self.requestq.put(req)
|
|
||||||
self.transport.write("%s\n\n" % msg)
|
|
||||||
debug(">> %s" % msg)
|
|
||||||
return req.getDeferred()
|
|
||||||
|
|
||||||
def confstop(self, conf_name, bgapi=False):
|
def confstop(self, conf_name, bgapi=False):
|
||||||
"""
|
"""
|
||||||
@ -229,19 +214,8 @@ class FreepyDispatcher(LineReceiver):
|
|||||||
|
|
||||||
TODO: add this
|
TODO: add this
|
||||||
"""
|
"""
|
||||||
if bgapi == True:
|
msg = "conference %s stop" % (conf_name)
|
||||||
msg = "bgapi conference %s stop" % \
|
return self._sendCommand(msg, bgapi)
|
||||||
(conf_name)
|
|
||||||
req = request.BgApiRequest()
|
|
||||||
else:
|
|
||||||
msg = "api conference %s stop" % \
|
|
||||||
(conf_name)
|
|
||||||
req = request.ApiRequest()
|
|
||||||
self.requestq.put(req)
|
|
||||||
self.transport.write("%s\n\n" % msg)
|
|
||||||
debug(">> %s" % msg)
|
|
||||||
return req.getDeferred()
|
|
||||||
|
|
||||||
|
|
||||||
def showchannels(self, bgapi=False):
|
def showchannels(self, bgapi=False):
|
||||||
"""
|
"""
|
||||||
@ -269,84 +243,32 @@ class FreepyDispatcher(LineReceiver):
|
|||||||
...
|
...
|
||||||
</result>
|
</result>
|
||||||
"""
|
"""
|
||||||
if bgapi == True:
|
msg = "show channels as xml"
|
||||||
msg = "bgapi show channels as xml"
|
return self._sendCommand(msg, bgapi)
|
||||||
req = request.BgApiRequest()
|
|
||||||
else:
|
|
||||||
msg = "api show channels as xml"
|
|
||||||
req = request.ApiRequest()
|
|
||||||
self.requestq.put(req)
|
|
||||||
self.transport.write("%s\n\n" % msg)
|
|
||||||
debug(">> %s" % msg)
|
|
||||||
return req.getDeferred()
|
|
||||||
|
|
||||||
def sofia_status_profile(self, profile_name, bgapi=False):
|
def sofia_status_profile(self, profile_name, bgapi=False):
|
||||||
# DO NOT USE - TOTALLY BROKEN
|
msg = "sofia status profile %s as xml" % (profile_name)
|
||||||
# FS DOES NOT RETURN XML IN THIS CASE
|
return self._sendCommand(msg, bgapi)
|
||||||
if bgapi == True:
|
|
||||||
msg = "bgapi sofia status profile %s as xml" % (profile_name)
|
|
||||||
req = request.BgApiRequest()
|
|
||||||
else:
|
|
||||||
msg = "api sofia status profile %s as xml" % (profile_name)
|
|
||||||
req = request.ApiRequest()
|
|
||||||
self.requestq.put(req)
|
|
||||||
debug("sending to fs: %s" % msg)
|
|
||||||
self.transport.write("%s\n\n" % msg)
|
|
||||||
return req.getDeferred()
|
|
||||||
|
|
||||||
def sofia_profile_restart(self, sofia_profile_name, bgapi = False):
|
def sofia_profile_restart(self, sofia_profile_name, bgapi = False):
|
||||||
if bgapi == True:
|
|
||||||
msg = "bgapi sofia profile %s restart" % \
|
|
||||||
(sofia_profile_name)
|
|
||||||
req = request.BgApiRequest()
|
|
||||||
else:
|
|
||||||
msg = "api sofia profile %s restart" % \
|
|
||||||
(sofia_profile_name)
|
|
||||||
req = request.ApiRequest()
|
|
||||||
self.requestq.put(req)
|
|
||||||
self.transport.write("%s\n\n" % msg)
|
|
||||||
debug(">> %s" % msg)
|
|
||||||
return req.getDeferred()
|
|
||||||
|
|
||||||
|
msg = "sofia profile %s restart" % (sofia_profile_name)
|
||||||
|
return self._sendCommand(msg, bgapi)
|
||||||
|
|
||||||
def killchan(self, uuid, bgapi = False):
|
def killchan(self, uuid, bgapi = False):
|
||||||
if bgapi == True:
|
return self._sendCommand("uuid_kill %s" % (uuid), bgapi)
|
||||||
msg = "bgapi uuid_kill %s" % (uuid)
|
|
||||||
req = request.BgApiRequest()
|
|
||||||
else:
|
|
||||||
msg = "api uuid_kill %s" % (uuid)
|
|
||||||
req = request.ApiRequest()
|
|
||||||
self.requestq.put(req)
|
|
||||||
self.transport.write("%s\n\n" % msg)
|
|
||||||
debug(">> %s" % msg)
|
|
||||||
return req.getDeferred()
|
|
||||||
|
|
||||||
def broadcast(self, uuid, path, legs, bgapi = False):
|
def broadcast(self, uuid, path, legs, bgapi = False):
|
||||||
if bgapi == True:
|
msg = "uuid_broadcast %s %s %s" % (uuid, path, legs)
|
||||||
msg = "bgapi uuid_broadcast %s %s %s" % (uuid, path, legs)
|
return self._sendCommand(msg, bgapi)
|
||||||
req = request.BgApiRequest()
|
|
||||||
else:
|
|
||||||
msg = "api uuid_broadcast %s %s %s" % (uuid, path, legs)
|
|
||||||
req = request.ApiRequest()
|
|
||||||
self.requestq.put(req)
|
|
||||||
self.transport.write("%s\n\n" % msg)
|
|
||||||
debug(">> %s" % msg)
|
|
||||||
return req.getDeferred()
|
|
||||||
|
|
||||||
def transfer(self, uuid, dest_ext, legs, bgapi = False):
|
def transfer(self, uuid, dest_ext, legs, bgapi = False):
|
||||||
"""
|
"""
|
||||||
transfer <uuid> [-bleg|-both] <dest-exten>
|
transfer <uuid> [-bleg|-both] <dest-exten>
|
||||||
"""
|
"""
|
||||||
if bgapi == True:
|
msg = "uuid_transfer %s %s %s" % (uuid, legs, dest_ext)
|
||||||
msg = "bgapi uuid_transfer %s %s %s" % (uuid, legs, dest_ext)
|
return self._sendCommand(msg, bgapi)
|
||||||
req = request.BgApiRequest()
|
|
||||||
else:
|
|
||||||
msg = "api uuid_transfer %s %s %s" % (uuid, legs, dest_ext)
|
|
||||||
req = request.ApiRequest()
|
|
||||||
self.requestq.put(req)
|
|
||||||
self.transport.write("%s\n\n" % msg)
|
|
||||||
debug(">> %s" % msg)
|
|
||||||
return req.getDeferred()
|
|
||||||
|
|
||||||
def lineReceived(self, line):
|
def lineReceived(self, line):
|
||||||
debug("<< %s" % line)
|
debug("<< %s" % line)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user