Exemplo n.º 1
0
def originate_async(plpy, ami_host, channel, exten, context, priority):
    manager = _get_manager(plpy, ami_host)
    manager.originate(channel=channel,
                      exten=exten,
                      context=context,
                      priority=priority,
                      async=True)
    manager.logoff()

    return True
Exemplo n.º 2
0
def make_call(call):
  manager = asterisk.manager.Manager()
  manager.lock = threading.Condition()
  try:  
    try:
	call.start = datetime.datetime.now()

        # connect to the manager
        manager.connect(settings.AST_HOST)
        manager.login(settings.AST_USER, settings.AST_PASS)

        # register some callbacks
        manager.register_event('Shutdown', handle_shutdown) # shutdown
        manager.register_event('*', lambda event, manager: handle_event(event,manager,call)) # catch all

        # get a status report
        response = manager.originate(call.channel, call.extension, call.context, settings.AST_PRIO, settings.AST_TIMEOUT_ORIGINATE * 1000, call.caller_id)
        call.response = response.get_header('Response')
        with manager.lock:
            manager.lock.wait(settings.AST_TIMEOUT_HANGUP)

    except asterisk.manager.ManagerSocketException, (errno, reason):
       msg = "Error connecting to the manager: %s" % reason
       call.disposition = msg
       raise
    except asterisk.manager.ManagerAuthException, reason:
       msg = "Error logging in to the manager: %s" % reason
       call.disposition = msg
       raise
Exemplo n.º 3
0
def call():
    app.logger.debug('Start call')
    inline = request.form['inline']
    exten = request.form['exten']

    channel = 'SIP/%s' % inline
    manager = asterisk.manager.Manager()
    status, error_msg, response = 'success', '', ''
    try:
        app.logger.debug(
            'Try to connect to asterisk_address=%s and asterisk_port=%s' %
            (config.ASTERISK_ADDRESS, config.ASTERISK_PORT))
        manager.connect(config.ASTERISK_ADDRESS, config.ASTERISK_PORT)
        app.logger.debug(
            'Try to login to asterisk_login=%s and asterisk_password=%s' %
            (config.ASTERISK_LOGIN, config.ASTERISK_PASSWORD))
        manager.login(config.ASTERISK_LOGIN, config.ASTERISK_PASSWORD)
        app.logger.debug('Try to call channel=%s and exten=%s' %
                         (channel, exten))
        response = manager.originate(channel,
                                     exten,
                                     caller_id='call_from_CRM <CRM>',
                                     async=True).response
    except asterisk.manager.ManagerSocketException, (errno, reason):
        error_msg = 'Error connecting to the manager: %s' % reason
Exemplo n.º 4
0
def make_call(call):
    manager = asterisk.manager.Manager()
    manager.lock = threading.Condition()
    try:
        try:
            call.start = datetime.datetime.now()

            # connect to the manager
            manager.connect(settings.AST_HOST)
            manager.login(settings.AST_USER, settings.AST_PASS)

            # register some callbacks
            manager.register_event('Shutdown', handle_shutdown)  # shutdown
            manager.register_event('*', lambda event, manager: handle_event(
                event, manager, call))  # catch all

            # get a status report
            response = manager.originate(call.channel, call.extension,
                                         call.context, settings.AST_PRIO,
                                         settings.AST_TIMEOUT_ORIGINATE * 1000,
                                         call.caller_id)
            call.response = response.get_header('Response')
            with manager.lock:
                manager.lock.wait(settings.AST_TIMEOUT_HANGUP)

        except asterisk.manager.ManagerSocketException, (errno, reason):
            msg = "Error connecting to the manager: %s" % reason
            call.disposition = msg
            raise
        except asterisk.manager.ManagerAuthException, reason:
            msg = "Error logging in to the manager: %s" % reason
            call.disposition = msg
            raise
Exemplo n.º 5
0
def call():
    app.logger.debug('Start call')
    inline = request.form['inline']
    exten = request.form['exten']

    channel = 'SIP/%s' % inline
    status, error_msg, response, action = 'success', '', '', 'call'
    try:
        response = manager.originate(
            channel, exten, caller_id='call_from_CRM <CRM>', async=True
        ).response
    except asterisk.manager.ManagerException, reason:
        error_msg = 'Error: %s' % reason
Exemplo n.º 6
0
def plugin(srv, item):

    srv.logging.debug("*** MODULE=%s: service=%s, target=%s", __file__,
                      item.service, item.target)

    host = item.config['host']
    port = item.config['port']
    username = item.config['username']
    password = item.config['password']
    extension = item.config['extension']
    context = item.config['context']

    gateway = item.addrs[0]
    number = item.addrs[1]
    title = item.title
    message = item.message

    try:
        manager = asterisk.manager.Manager()
        manager.connect(host, port)
        response = manager.login(username, password)
        srv.logging.debug("Authentication {}".format(response))
        channel = gateway + number
        channel_vars = {'text': message}
        # originate the call
        response = manager.originate(channel,
                                     extension,
                                     context=context,
                                     priority='1',
                                     caller_id=extension,
                                     variables=channel_vars)
        srv.logging.info("Call {}".format(response))
        manager.logoff()
    except asterisk.manager.ManagerSocketException as e:
        srv.logging.error("Error connecting to the manager: {}".format(e))
        return False
    except asterisk.manager.ManagerAuthException as e:
        srv.logging.error("Error logging in to the manager: {}".format(e))
        return False
    except asterisk.manager.ManagerException as e:
        srv.logging.error("Error: {}".format(e))
        return False

    # Remember to clean up
    finally:
        try:
            manager.close()
        except asterisk.manager.ManagerSocketException:  # pragma: no cover
            pass

    return True
Exemplo n.º 7
0
def call():
    app.logger.debug('Start call')
    inline = request.form['inline']
    exten = request.form['exten']

    channel = 'SIP/%s' % inline
    manager = asterisk.manager.Manager()
    status, error_msg, response = 'success', '', ''
    try:
        app.logger.debug('Try to connect to asterisk_address=%s and asterisk_port=%s' % (config.ASTERISK_ADDRESS, config.ASTERISK_PORT))
        manager.connect(config.ASTERISK_ADDRESS, config.ASTERISK_PORT)
        app.logger.debug('Try to login to asterisk_login=%s and asterisk_password=%s' % (config.ASTERISK_LOGIN, config.ASTERISK_PASSWORD))
        manager.login(config.ASTERISK_LOGIN, config.ASTERISK_PASSWORD)
        app.logger.debug('Try to call channel=%s and exten=%s' % (channel, exten))
        response = manager.originate(channel, exten, caller_id='call_from_CRM <CRM>', async=True).response
    except asterisk.manager.ManagerSocketException, (errno, reason):
        error_msg = 'Error connecting to the manager: %s' % reason
Exemplo n.º 8
0
def plugin(srv, item):

    srv.logging.debug("*** MODULE=%s: service=%s, target=%s", __file__, item.service, item.target)

    host     = item.config['host']
    port = item.config['port']
    username = item.config['username']
    password = item.config['password']
    extension = item.config['extension']
    context  = item.config['context']
 
    gateway  = item.addrs[0]
    number   = item.addrs[1]    
    title    = item.title
    message  = item.message

    try:
        manager = asterisk.manager.Manager()
        manager.connect(host, port)
        response = manager.login(username, password)
        srv.logging.debug("Authentication {}".format(response))
        channel = gateway + number
        channel_vars = {'text': message}
        # originate the call
        response = manager.originate(channel, extension, context=context, priority='1', caller_id=extension, variables=channel_vars)
        srv.logging.info("Call {}".format(response))
        manager.logoff()
    except asterisk.manager.ManagerSocketException as e:
        srv.logging.error("Error connecting to the manage: {}".format(e))
    except asterisk.manager.ManagerAuthException as e:
        srv.logging.error("Error logging in to the manager: {}".format(e))
    except asterisk.manager.ManagerException as e:
        srv.logging.error("Error: {}".format(e))

    finally:
    # remember to clean up
        try:
            manager.close()
        except asterisk.manager.ManagerSocketException:
            pass
    
    return True
Exemplo n.º 9
0
#!/usr/bin/python

import asterisk.agi
import asterisk.manager
import sys

agi = asterisk.agi.AGI()
src = agi.env['agi_arg_1']
dst = agi.env['agi_arg_2']

manager = asterisk.manager.Manager()
manager.connect('localhost')
manager.login('switch', 'switch')

manager.originate('Local/%s@callback-dial/n' % src,
                  exten=dst,
                  context='callback-answer',
                  priority='1',
                  async=True,
                  timeout='60000',
                  variables={})
manager.close()
Exemplo n.º 10
0
def originate_async(plpy, ami_host, channel, exten, context, priority):
    manager = _get_manager(plpy, ami_host)
    manager.originate(channel=channel, exten=exten, context=context, priority=priority, async=True)
    manager.logoff()

    return True