def _send_raw_to_freeswitch_cli(self, cmd):
     con = ESLconnection(self.conf['fs_esl_ip'], self.conf['fs_esl_port'],
                         self.conf['fs_esl_pass'])
     if con.connected():
         con.api(cmd)
         return True
     return False
Beispiel #2
0
 def connect(self, host=None, port=None, auth=None):
     """Reconnect if disconnected
     """
     host = host or self.host
     port = port or self.port
     auth = auth or self.auth
     if not self.connected():
         # XXX: try a few times since connections seem to be flaky
         # We should probably try to fix this in the _ESL.so
         for _ in range(5):
             self._con = ESLconnection(*map(str, (host, port, auth)))
             time.sleep(0.05)  # I wouldn't tweak this if I were you.
             if self.connected() and check_con(self._con):
                 break
             else:
                 self._con = False
     if not check_con(self._con):
         raise ConnectionError(
             "Failed to connect to server at '{}:{}'\n"
             "Please check that FreeSWITCH is running and "
             "accepting esl connections.".format(host, port))
     # on success change our contact info
     self.host = host
     self.port = port
     self.auth = auth
 def makeCall(self, destination):
     con = ESLconnection(self.conf['fs_esl_ip'], self.conf['fs_esl_port'],
                         self.conf['fs_esl_pass'])
     if con.connected():
         con.api(
             str("originate {origination_call_id_name=%s,origination"
                 "_caller_id_number=%s}sofia/internal/%s@%s:"
                 "5060 &echo" %
                 (self.user, self.user, destination, self.other_ip)))
     else:
         raise Exception("ESL Connection Failed")
Beispiel #4
0
 def makeCall(self, destination):
     username = subscriber.get_username_from_imsi(self.user)
     con = ESLconnection(self.conf['fs_esl_ip'], self.conf['fs_esl_port'],
                         self.conf['fs_esl_pass'])
     if con.connected():
         con.api(
             str("originate {origination_call_id_name=%s,origination"
                 "_caller_id_number=%s}sofia/internal/%s@%s:%s"
                 "5062 &echo" %
                 (username, username, destination, self.other_ip)))
     else:
         raise Exception("ESL Connection Failed")
Beispiel #5
0
 def get_sip_connected(self):
     try:
         _sip_connected = []
         con = ESLconnection("127.0.0.1", "8021", "ClueCon")
         e = con.api("show registrations")
         reg = e.getBody()
         lines = reg.split('\n')
         for line in lines[1:]:
             vals = line.split(',')
             if len(vals) < 10:
                 return _sip_connected
             _sip_connected.append([vals[0]])
     except Exception as ex:
         api_log.info('Exception: %s' % ex)