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
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
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
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
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
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
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
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
#!/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()