panoramisk-1.0/0000755000175000017500000000000012565072552013747 5ustar gawelgawel00000000000000panoramisk-1.0/.coveragerc0000644000175000017500000000040212565072531016061 0ustar gawelgawel00000000000000[run] omit = */panoramisk/scripts.py */panoramisk/call_manager.py include = */panoramisk/panoramisk/* [report] exclude_lines = pragma: no cover def __repr__ raise NotImplementedError if __name__ == .__main__.: def parse_args panoramisk-1.0/CHANGES.rst0000644000175000017500000000217712565072531015555 0ustar gawelgawel000000000000001.0 (2015-08-19) ================ - Add FastAGI server, implemented with high-level AsyncIO API (Streams) - Add events parameter for Manager, to disable AMI events reception (Useful for performance reasons) - Finish AsyncAGI commands support (WIP) 0.6 (2014-11-16) ================ - Avoid failure when factory is not already set 0.5 (2014-11-16) ================ - AMI command results tracking fixed - Return AMI command result with multiple events in a Future - Return AsyncAGI command result in a Future - Add several examples - Internal refactoring - Remove arawman support - Remove external dependencies - Add support for multiple responses from Actions (example: QueueStatus) - Improved performance with Events pattern matching - Add mocked test wrapper - Add coroutine support for Events dispatching - Invert event callback signature to create Manager methods to handle events - Support of AMI commands - Support of AsyncAGI commands (Not finished) 0.4 (2014-05-30) ================ - Compat with the latest trollius 0.3 (2014-01-10) ================ - Don't send commands twice 0.2 (2014-01-09) ================ - Initial release panoramisk-1.0/panoramisk.egg-info/0000755000175000017500000000000012565072552017605 5ustar gawelgawel00000000000000panoramisk-1.0/panoramisk.egg-info/top_level.txt0000644000175000017500000000001312565072540022326 0ustar gawelgawel00000000000000panoramisk panoramisk-1.0/panoramisk.egg-info/requires.txt0000644000175000017500000000007512565072540022204 0ustar gawelgawel00000000000000trollius futures [test] pytest coverage<3.99 coveralls mock panoramisk-1.0/panoramisk.egg-info/PKG-INFO0000644000175000017500000000655112565072540020706 0ustar gawelgawel00000000000000Metadata-Version: 1.1 Name: panoramisk Version: 1.0 Summary: asyncio based library to play with asterisk Home-page: https://github.com/gawel/panoramisk/ Author: Gael Pasgrimaud Author-email: gael@gawel.org License: MIT license Description: ================================ Panoramisk. The Asterisk's druid ================================ .. image:: https://travis-ci.org/gawel/panoramisk.png?branch=master&style=flat-square :target: https://travis-ci.org/gawel/panoramisk .. image:: https://img.shields.io/coveralls/gawel/panoramisk/master.svg :target: https://coveralls.io/r/gawel/panoramisk?branch=master .. image:: https://img.shields.io/pypi/v/panoramisk.svg?style=flat-square :target: https://pypi.python.org/pypi/panoramisk .. image:: https://img.shields.io/pypi/dw/panoramisk.svg?style=flat-square :target: https://pypi.python.org/pypi/panoramisk .. image:: https://img.shields.io/github/issues/gawel/panoramisk.svg?style=flat-square :target: https://github.com/gawel/panoramisk/issues .. image:: https://img.shields.io/github/license/gawel/panoramisk.svg?style=flat-square :target: https://github.com/gawel/panoramisk/blob/master/LICENSE `Panoramisk` is a library based on python's `AsyncIO `_ to play with `Asterisk `_'s `manager `_. It uses the TCP manager server to listen to events and send actions. For basic usage, you have some examples in `examples/ `_ folder. You can find some help on IRC: irc://irc.freenode.net/panoramisk (`www `_) Running the Tests ----------------- Running your test with:: $ python setup.py test $ py.test tests/ docs/ Source code ----------- Find us on Github at https://github.com/gawel/panoramisk/ Documentation ------------- Check out the documentation on Read the Docs: https://panoramisk.readthedocs.org/ Installation ------------ Install, upgrade and uninstall panoramisk with these commands:: $ pip install panoramisk $ pip install --upgrade panoramisk $ pip uninstall panoramisk Keywords: asyncio,asterisk,voip Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: MIT License Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3.3 Classifier: Programming Language :: Python :: 3.4 Classifier: Topic :: Communications :: Telephony Classifier: Topic :: Software Development :: Libraries :: Python Modules panoramisk-1.0/panoramisk.egg-info/entry_points.txt0000644000175000017500000000010412565072540023073 0ustar gawelgawel00000000000000 [console_scripts] panoramisk = panoramisk.scripts:main panoramisk-1.0/panoramisk.egg-info/not-zip-safe0000644000175000017500000000000112565072531022030 0ustar gawelgawel00000000000000 panoramisk-1.0/panoramisk.egg-info/dependency_links.txt0000644000175000017500000000000112565072540023650 0ustar gawelgawel00000000000000 panoramisk-1.0/panoramisk.egg-info/SOURCES.txt0000644000175000017500000000262212565072540021470 0ustar gawelgawel00000000000000.coveragerc CHANGES.rst LICENSE MANIFEST.in README.rst bootstrap.py buildout.cfg setup.cfg setup.py tox.ini docs/Makefile docs/actions.rst docs/conf.py docs/conftest.py docs/index.rst docs/message.rst docs/testing.rst examples/fast_agi_server.py examples/fast_agi_server_ivr.py examples/get_extension_status.py examples/originate.py examples/queue_status.py panoramisk/__init__.py panoramisk/actions.py panoramisk/call_manager.py panoramisk/connection.py panoramisk/fast_agi.py panoramisk/manager.py panoramisk/message.py panoramisk/scripts.py panoramisk/testing.py panoramisk/utils.py panoramisk.egg-info/PKG-INFO panoramisk.egg-info/SOURCES.txt panoramisk.egg-info/dependency_links.txt panoramisk.egg-info/entry_points.txt panoramisk.egg-info/not-zip-safe panoramisk.egg-info/requires.txt panoramisk.egg-info/top_level.txt tests/test_manager.py tests/test_message.py tests/test_protocol.py tests/fixtures/agent_loggued_in.yaml tests/fixtures/agent_not_in_pause.yaml tests/fixtures/asyncagi_channel_does_not_exist.yaml tests/fixtures/asyncagi_get_var.yaml tests/fixtures/command_core_show_version.yaml tests/fixtures/login_failed.yaml tests/fixtures/login_ok.yaml tests/fixtures/logoff.yaml tests/fixtures/originate_sync.yaml tests/fixtures/originate_with_events.yaml tests/fixtures/ping.yaml tests/fixtures/queue_status.yaml tests/fixtures/rasterisk_command.yaml tests/fixtures/sip_notify.yaml tests_python3/test_fast_agi.pypanoramisk-1.0/setup.cfg0000644000175000017500000000040512565072552015567 0ustar gawelgawel00000000000000[pytest] addopts = --doctest-modules --doctest-glob='*.rst' --ignore=setup.py --ignore=bootstrap.py --ignore=examples/ --ignore=docs/conf.py [aliases] dev = develop easy_install panoramisk[test] [egg_info] tag_build = tag_date = 0 tag_svn_revision = 0 panoramisk-1.0/MANIFEST.in0000644000175000017500000000046112565072531015503 0ustar gawelgawel00000000000000graft examples graft docs prune docs/_build graft panoramisk graft tests graft tests_python3 include *.rst *.cfg *.ini .coveragerc LICENCE global-exclude *.pyc global-exclude __pycache__ include *.py include .coveragerc include LICENSE recursive-include examples *.py recursive-include tests_python3 *.py panoramisk-1.0/bootstrap.py0000755000175000017500000001430612565072531016342 0ustar gawelgawel00000000000000############################################################################## # # Copyright (c) 2006 Zope Foundation and Contributors. # All Rights Reserved. # # This software is subject to the provisions of the Zope Public License, # Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS # FOR A PARTICULAR PURPOSE. # ############################################################################## """Bootstrap a buildout-based project Simply run this script in a directory containing a buildout.cfg. The script accepts buildout command-line options, so you can use the -c option to specify an alternate configuration file. """ import os import shutil import sys import tempfile from optparse import OptionParser tmpeggs = tempfile.mkdtemp() usage = '''\ [DESIRED PYTHON FOR BUILDOUT] bootstrap.py [options] Bootstraps a buildout-based project. Simply run this script in a directory containing a buildout.cfg, using the Python that you want bin/buildout to use. Note that by using --find-links to point to local resources, you can keep this script from going over the network. ''' parser = OptionParser(usage=usage) parser.add_option("-v", "--version", help="use a specific zc.buildout version") parser.add_option("-t", "--accept-buildout-test-releases", dest='accept_buildout_test_releases', action="store_true", default=False, help=("Normally, if you do not specify a --version, the " "bootstrap script and buildout gets the newest " "*final* versions of zc.buildout and its recipes and " "extensions for you. If you use this flag, " "bootstrap and buildout will get the newest releases " "even if they are alphas or betas.")) parser.add_option("-c", "--config-file", help=("Specify the path to the buildout configuration " "file to be used.")) parser.add_option("-f", "--find-links", help=("Specify a URL to search for buildout releases")) parser.add_option("--allow-site-packages", action="store_true", default=False, help=("Let bootstrap.py use existing site packages")) parser.add_option("--setuptools-version", help="use a specific setuptools version") options, args = parser.parse_args() ###################################################################### # load/install setuptools try: if options.allow_site_packages: import setuptools import pkg_resources from urllib.request import urlopen except ImportError: from urllib2 import urlopen ez = {} exec(urlopen('https://bootstrap.pypa.io/ez_setup.py').read(), ez) if not options.allow_site_packages: # ez_setup imports site, which adds site packages # this will remove them from the path to ensure that incompatible versions # of setuptools are not in the path import site # inside a virtualenv, there is no 'getsitepackages'. # We can't remove these reliably if hasattr(site, 'getsitepackages'): for sitepackage_path in site.getsitepackages(): sys.path[:] = [x for x in sys.path if sitepackage_path not in x] setup_args = dict(to_dir=tmpeggs, download_delay=0) if options.setuptools_version is not None: setup_args['version'] = options.setuptools_version ez['use_setuptools'](**setup_args) import setuptools import pkg_resources # This does not (always?) update the default working set. We will # do it. for path in sys.path: if path not in pkg_resources.working_set.entries: pkg_resources.working_set.add_entry(path) ###################################################################### # Install buildout ws = pkg_resources.working_set cmd = [sys.executable, '-c', 'from setuptools.command.easy_install import main; main()', '-mZqNxd', tmpeggs] find_links = os.environ.get( 'bootstrap-testing-find-links', options.find_links or ('http://downloads.buildout.org/' if options.accept_buildout_test_releases else None) ) if find_links: cmd.extend(['-f', find_links]) setuptools_path = ws.find( pkg_resources.Requirement.parse('setuptools')).location requirement = 'zc.buildout' version = options.version if version is None and not options.accept_buildout_test_releases: # Figure out the most recent final version of zc.buildout. import setuptools.package_index _final_parts = '*final-', '*final' def _final_version(parsed_version): for part in parsed_version: if (part[:1] == '*') and (part not in _final_parts): return False return True index = setuptools.package_index.PackageIndex( search_path=[setuptools_path]) if find_links: index.add_find_links((find_links,)) req = pkg_resources.Requirement.parse(requirement) if index.obtain(req) is not None: best = [] bestv = None for dist in index[req.project_name]: distv = dist.parsed_version if _final_version(distv): if bestv is None or distv > bestv: best = [dist] bestv = distv elif distv == bestv: best.append(dist) if best: best.sort() version = best[-1].version if version: requirement = '=='.join((requirement, version)) cmd.append(requirement) import subprocess if subprocess.call(cmd, env=dict(os.environ, PYTHONPATH=setuptools_path)) != 0: raise Exception( "Failed to execute command:\n%s" % repr(cmd)[1:-1]) ###################################################################### # Import and run buildout ws.add_entry(tmpeggs) ws.require(requirement) import zc.buildout.buildout if not [a for a in args if '=' not in a]: args.append('bootstrap') # if -c was provided, we push it back into args for buildout' main function if options.config_file is not None: args[0:0] = ['-c', options.config_file] zc.buildout.buildout.main(args) shutil.rmtree(tmpeggs) panoramisk-1.0/panoramisk/0000755000175000017500000000000012565072552016113 5ustar gawelgawel00000000000000panoramisk-1.0/panoramisk/manager.py0000644000175000017500000001722212565072531020100 0ustar gawelgawel00000000000000# -*- coding: utf-8 -*- import logging from collections import defaultdict import re import fnmatch from .connection import Connection from .utils import asyncio from . import actions from . import utils class Manager(object): """Main object: .. code-block:: python >>> manager = Manager( ... host='127.0.0.1', ... port=5038, ... ssl=False, ... encoding='utf8') """ defaults = dict( host='127.0.0.1', port=5038, events='on', ssl=False, encoding='utf8', connection_class=Connection, save_stream=None, loop=None, ) def __init__(self, **config): self.config = dict(self.defaults, **config) self.loop = self.config['loop'] self.log = config.get('log', logging.getLogger(__name__)) self.callbacks = defaultdict(list) self.protocol = None self.patterns = [] self.save_stream = self.config.get('save_stream') self.authenticated = False self.authenticated_future = None self.pinger = None def connection_made(self, f): if getattr(self, 'protocol', None): self.protocol.close() try: transport, protocol = f.result() except OSError as e: # pragma: no cover self.log.exception(e) self.loop.call_later(2, self.connect) else: self.log.debug('Manager connected') self.protocol = protocol self.protocol.queue = utils.Queue(loop=self.loop) self.protocol.factory = self self.protocol.log = self.log self.protocol.config = self.config self.protocol.encoding = self.encoding = self.config['encoding'] self.responses = self.protocol.responses = {} if 'username' in self.config: self.authenticated = False self.authenticated_future = self.send_action({ 'Action': 'Login', 'Username': self.config['username'], 'Secret': self.config['secret'], 'Events': self.config['events']}) self.authenticated_future.add_done_callback(self.login) self.pinger = self.loop.call_later(10, self.ping) def login(self, future): self.authenticated_future = None resp = future.result() self.authenticated = bool(resp.success) return self.authenticated def ping(self): # pragma: no cover self.pinger = self.loop.call_later(10, self.ping) self.protocol.send({'Action': 'Ping'}) def send_action(self, action, as_list=False, **kwargs): """Send an :class:`~panoramisk.actions.Action` to the server: :param action: an Action or dict with action name and parameters to send :type action: Action or dict or Command :param as_list: If True, the action Future will retrieve all responses :type as_list: boolean :return: a Future that will receive the response :rtype: asyncio.Future :Example: To retrieve answer in a coroutine:: manager = Manager() resp = yield from manager.send_action({'Action': 'Status'}) With a callback:: manager = Manager() future = manager.send_action({'Action': 'Status'}) future.add_done_callback(handle_status_response) See https://wiki.asterisk.org/wiki/display/AST/AMI+Actions for more information on actions """ action.update(kwargs) return self.protocol.send(action, as_list=as_list) def send_command(self, command, as_list=False): """Send a :class:`~panoramisk.actions.Command` to the server:: manager = Manager() resp = manager.send_command('http show status') Return a response :class:`~panoramisk.message.Message`. See https://wiki.asterisk.org/wiki/display/AST/ManagerAction_Command """ action = actions.Action({'Command': command, 'Action': 'Command'}, as_list=as_list) return self.send_action(action) def send_agi_command(self, channel, command, as_list=False): """Send a :class:`~panoramisk.actions.Command` to the server: :param channel: Channel name where to launch command. Ex: 'SIP/000000-00000a53' :type channel: String :param command: command to launch. Ex: 'GET VARIABLE async_agi_server' :type command: String :param as_list: If True, the action Future will retrieve all responses :type as_list: boolean :return: a Future that will receive the response :rtype: asyncio.Future :Example: :: manager = Manager() resp = manager.send_agi_command('SIP/000000-00000a53', 'GET VARIABLE async_agi_server') Return a response :class:`~panoramisk.message.Message`. See https://wiki.asterisk.org/wiki/display/AST/Asterisk+11+ManagerAction_AGI """ action = actions.Command({'Action': 'AGI', 'Channel': channel, 'Command': command}, as_list=as_list) return self.send_action(action) def connect(self): """connect to the server""" if self.loop is None: # pragma: no cover self.loop = asyncio.get_event_loop() t = asyncio.Task( self.loop.create_connection( self.config['connection_class'], self.config['host'], self.config['port'], ssl=self.config['ssl']), loop=self.loop) t.add_done_callback(self.connection_made) return t def register_event(self, pattern, callback=None): """register an event. See :class:`~panoramisk.message.Message`: .. code-block:: python >>> def callback(event, manager): ... print(event, manager) >>> manager = Manager() >>> manager.register_event('Meetme*', callback) You can also use the manager as a decorator: .. code-block:: python >>> manager = Manager() >>> @manager.register_event('Meetme*') ... def callback(manager, event): ... print(manager, event) """ def _register_event(callback): self.patterns.append((pattern, re.compile(fnmatch.translate(pattern)))) self.callbacks[pattern].append(callback) return callback if callback is not None: return _register_event(callback) else: return _register_event def dispatch(self, event): matches = [] event.manager = self for pattern, regexp in self.patterns: match = regexp.match(event.event) if match is not None: matches.append(pattern) for callback in self.callbacks[pattern]: ret = callback(self, event) if (asyncio.iscoroutine(ret) or isinstance(ret, asyncio.Future)): asyncio.async(ret, loop=self.loop) return matches def close(self): """Close the connection""" if self.pinger: self.pinger.cancel() self.pinger = None if getattr(self, 'protocol', None): self.protocol.close() @classmethod def from_config(cls, filename_or_fd, section='asterisk'): return cls(**utils.config(filename_or_fd, section=section)) panoramisk-1.0/panoramisk/actions.py0000644000175000017500000000710212565072531020122 0ustar gawelgawel00000000000000# -*- coding: utf-8 -*- from .utils import asyncio from . import utils class Action(utils.CaseInsensitiveDict): """Dict like object to handle actions. Generate action ids for you: .. >>> utils.IdGenerator.reset('myuuid') .. code-block:: python >>> action = Action({'Action': 'Status'}) >>> print(action) # doctest: +NORMALIZE_WHITESPACE Action: Status ActionID: action/myuuid/1/1 >>> action = Action({'Action': 'SIPnotify', ... 'Variable': ['1', '2']}) >>> print(action) # doctest: +NORMALIZE_WHITESPACE Action: SIPnotify ActionID: action/myuuid/1/2 Variable: 1 Variable: 2 """ action_id_generator = utils.IdGenerator('action') def __init__(self, *args, **kwargs): self.as_list = kwargs.pop('as_list', False) super(Action, self).__init__(*args, **kwargs) if 'actionid' not in self: self['ActionID'] = self.action_id_generator() self.responses = [] self.future = asyncio.Future() @property def id(self): return self.actionid action_id = id def __str__(self): action = [] for k, v in sorted(self.items()): if isinstance(v, (list, tuple)): action.extend(['%s: %s' % (k, i) for i in v]) else: action.append('%s: %s' % (k, v)) action.append(utils.EOL) return utils.EOL.join(action) @property def multi(self): resp = self.responses[0] msg = resp.message.lower() if resp.subevent == 'Start': return True elif 'will follow' in msg: return True elif msg.startswith('added') and msg.endswith('to queue'): return True elif msg.endswith('successfully queued') and self.async != 'false': return True elif self.as_list: return True return False @property def completed(self): resp = self.responses[-1] if resp.event.endswith('Complete'): return True elif resp.subevent in ('End', 'Exec'): return True elif resp.response in ('Success', 'Error', 'Fail'): return True elif not self.multi: return True return False def add_message(self, message): self.responses.append(message) multi = self.multi if self.completed: if multi and len(self.responses) > 1: self.future.set_result(self.responses) elif not multi: self.future.set_result(self.responses[0]) else: return False return True class Command(Action): """Dict like object to handle Commands. Generate action/command ids for you: .. >>> utils.IdGenerator.reset('myuuid') .. code-block:: python >>> command = Command({'Command' : 'Do something'}) >>> print(command) # doctest: +NORMALIZE_WHITESPACE Action: Command ActionID: action/myuuid/1/1 Command: Do something CommandID: command/myuuid/1/1 """ command_id_generator = utils.IdGenerator('command') def __init__(self, *args, **kwargs): super(Command, self).__init__(*args, **kwargs) if 'action' not in self: self['Action'] = 'Command' if 'commandid' not in self: self['CommandID'] = self.command_id_generator() @property def id(self): return self.commandid @property def action_id(self): return self.actionid or None panoramisk-1.0/panoramisk/fast_agi.py0000644000175000017500000001212612565072531020241 0ustar gawelgawel00000000000000import logging from collections import OrderedDict from .utils import asyncio from .utils import parse_agi_result log = logging.getLogger(__name__) class Request: def __init__(self, app, headers, reader, writer, encoding='utf-8'): self.app = app self.headers = headers self.reader = reader self.writer = writer self.encoding = encoding @asyncio.coroutine def send_command(self, command): """Send a command for FastAGI request: :param command: Command to launch on FastAGI request. Ex: 'EXEC StartMusicOnHolds' :type command: String :Example: :: @asyncio.coroutine def call_waiting(request): print(['AGI variables:', request.headers]) yield from request.send_command('ANSWER') yield from request.send_command('EXEC StartMusicOnHold') yield from request.send_command('EXEC Wait 10') """ command += '\n' self.writer.write(command.encode(self.encoding)) yield from self.writer.drain() response = yield from self.reader.readline() agi_result = parse_agi_result(response.decode(self.encoding)[:-1]) # when we got AGIUsageError the following line contains some indication if 'error' in agi_result and agi_result['error'] == 'AGIUsageError': buff_usage_error = yield from self.reader.readline() agi_result['msg'] = agi_result['msg'] + buff_usage_error.decode(self.encoding) return agi_result class Application(dict): """Main object: .. code-block:: python >>> fa_app = Application() """ def __init__(self, default_encoding='utf-8', loop=None): super(Application, self).__init__() self.default_encoding = default_encoding if loop is None: loop = asyncio.get_event_loop() self.loop = loop self._route = OrderedDict() def add_route(self, path, endpoint): """Add a route for FastAGI requests: :param path: URI to answer. Ex: 'calls/start' :type path: String :param endpoint: command to launch. Ex: start :type endpoint: callable :Example: :: @asyncio.coroutine def start(request): print('Receive a FastAGI request') print(['AGI variables:', request.headers]) fa_app = Application() fa_app.add_route('calls/start', start) """ assert callable(endpoint), endpoint if path in self._route: raise ValueError('A route already exists.') if not asyncio.iscoroutinefunction(endpoint): endpoint = asyncio.coroutine(endpoint) self._route[path] = endpoint def del_route(self, path): """Delete a route for FastAGI requests: :param path: URI to answer. Ex: 'calls/start' :type path: String :Example: :: @asyncio.coroutine def start(request): print('Receive a FastAGI request') print(['AGI variables:', request.headers]) fa_app = Application() fa_app.add_route('calls/start', start) fa_app.del_route('calls/start') """ if path not in self._route: raise ValueError('This route doesn\'t exist.') del(self._route[path]) @asyncio.coroutine def handler(self, reader, writer): """AsyncIO coroutine handler to launch socket listening. :Example: :: @asyncio.coroutine def start(request): print('Receive a FastAGI request') print(['AGI variables:', request.headers]) fa_app = Application() fa_app.add_route('calls/start', start) coro = asyncio.start_server(fa_app.handler, '0.0.0.0', 4574) server = loop.run_until_complete(coro) See https://docs.python.org/3/library/asyncio-stream.html """ buffer = b'' while b'\n\n' not in buffer: buffer += yield from reader.read(100) lines = buffer[:-2].decode(self.default_encoding).split('\n') headers = OrderedDict() for line in lines: k, v = line.split(': ', 1) headers[k] = v log.info('Received FastAGI request from %r for "%s" route', writer.get_extra_info('peername'), headers['agi_network_script']) log.debug("Asterisk Headers: %r", headers) if headers['agi_network_script'] in self._route: request = Request(app=self, headers=headers, reader=reader, writer=writer, encoding=self.default_encoding) try: yield from self._route[headers['agi_network_script']](request) except Exception as e: log.exception(e) else: log.error('No route for the request "%s"', headers['agi_network_script']) log.debug("Closing client socket") writer.close() panoramisk-1.0/panoramisk/__init__.py0000644000175000017500000000024112565072531020216 0ustar gawelgawel00000000000000# -*- coding: utf-8 -*- from .manager import Manager # NOQA try: from . import fast_agi # NOQA except SyntaxError: # not available in python2 pass panoramisk-1.0/panoramisk/connection.py0000644000175000017500000000577612565072531020640 0ustar gawelgawel00000000000000# -*- coding: utf-8 -*- import logging import time from .message import Message from .utils import asyncio from . import actions from . import utils class Connection(asyncio.Protocol): def connection_made(self, transport): self.transport = transport self.closed = False self.queue = utils.Queue() self.responses = {} self.factory = None self.log = logging.getLogger(__name__) def send(self, data, as_list=False): if not isinstance(data, actions.Action): if 'Command' in data: klass = actions.Command else: klass = actions.Action data = klass(data, as_list=as_list) self.transport.write(str(data).encode('utf8')) self.responses[data.id] = data if data.action_id: self.responses[data.action_id] = data return data.future def data_received(self, data): encoding = getattr(self, 'encoding', 'ascii') data = data.decode(encoding, 'ignore') if getattr(self.factory, 'save_stream', None): # pragma: no cover stream = self.factory.save_stream if hasattr(stream, 'write'): stream.write(data.encode(encoding)) else: with open(stream, 'a+') as fd: fd.write(data.encode(encoding)) # Very verbose, uncomment only if necessary # self.log.debug('data received: "%s"', data) if not self.queue.empty(): data = self.queue.get_nowait() + data lines = data.split(utils.EOL+utils.EOL) self.queue.put_nowait(lines.pop(-1)) for line in lines: # Because sometimes me receive only one EOL from Asterisk line = line.strip() # Very verbose, uncomment only if necessary # self.log.debug('message received: "%s"', line) message = Message.from_line(line) self.log.debug('message interpreted: %r', message) if message is None: continue self.handle_message(message) def handle_message(self, message): response = self.responses.get(message.id) if response is None and message.action_id: response = self.responses.get(message.action_id) if response is not None: if response.add_message(message): # completed; dequeue self.responses.pop(response.id) if response.action_id: self.responses.pop(response.action_id, None) elif 'Event' in message: self.factory.dispatch(message) def connection_lost(self, exc): # pragma: no cover if not self.closed: self.close() # wait a few before reconnect time.sleep(2) # reconnect self.factory.connect() def close(self): # pragma: no cover if not self.closed: try: self.transport.close() finally: self.closed = True panoramisk-1.0/panoramisk/testing.py0000644000175000017500000000341612565072531020143 0ustar gawelgawel00000000000000# -*- coding: utf-8 -*- from __future__ import unicode_literals from . import manager from . import utils try: from unittest import mock except ImportError: # pragma: no cover import mock # NOQA MagicMock = mock.MagicMock patch = mock.patch call = mock.call class Connection(manager.Connection): debug_count = [0] def connection_made(self, transport): super(Connection, self).connection_made(transport) self.transport = MagicMock() def send(self, data, as_list=False): utils.IdGenerator.reset(uid='transaction_uid') future = super(Connection, self).send(data, as_list=as_list) if self.factory.stream is not None: with open(self.factory.stream, 'rb') as fd: for resp in fd.read().split(b'\n\n'): self.data_received(resp + b'\n\n') if future.done(): break if not future.done(): # pragma: no cover print(self.responses) raise AssertionError("Future's result was never set") return future class Manager(manager.Manager): fixtures_dir = None def __init__(self, **config): self.defaults.update( connection_class=Connection, stream=None) super(Manager, self).__init__(**config) self.stream = self.config.get('stream') self.loop = utils.asyncio.get_event_loop() protocol = Connection() protocol.factory = manager protocol.connection_made(mock.MagicMock()) future = utils.asyncio.Future() future.set_result((mock.MagicMock(), protocol)) self.protocol = protocol self.connection_made(future) utils.IdGenerator.reset(uid='transaction_uid') utils.EOL = '\n' panoramisk-1.0/panoramisk/utils.py0000644000175000017500000001144012565072531017622 0ustar gawelgawel00000000000000# -*- coding: utf-8 -*- import re import uuid import collections try: # pragma: no cover from urllib.parse import unquote except ImportError: # pragma: no cover from urllib import unquote # NOQA try: # pragma: no cover import asyncio from asyncio.queues import Queue except ImportError: # pragma: no cover import trollius as asyncio # NOQA from trollius.queues import Queue # NOQA try: from configparser import ConfigParser except ImportError: # pragma: no cover from ConfigParser import ConfigParser # NOQA EOL = '\r\n' re_code = re.compile(r'(^\d*)\s*(.*)') re_kv = re.compile(r'(?P\w+)=(?P[^\s]+)\s*(?:\((?P.*)\))*') def parse_agi_result(line): """Parse AGI results using Regular expression. :AGI Result examples: :: 200 result=0 200 result=-1 200 result=132456 200 result= (timeout) 510 Invalid or unknown command 520-Invalid command syntax. Proper usage follows: int() argument must be a string, a bytes-like object or a number, not 'NoneType' HANGUP """ # print("--------------\n", line) if line == 'HANGUP': return {'error': 'AGIResultHangup', 'msg': 'User hungup during execution'} code = 0 m = re_code.search(line) if m: code, response = m.groups() code = int(code) return agi_code_check(code, response, line) def agi_code_check(code, response, line): """ Check the agi code and set a dict for error handling """ result = {'status_code': code, 'result': ('', ''), 'msg': ''} if code == 200: for key, value, data in re_kv.findall(response): result[key] = (value, data) # If user hangs up... we get 'hangup' in the data if data == 'hangup': return {'error': 'AGIResultHangup', 'msg': 'User hungup during execution'} if key == 'result' and value == '-1': return {'error': 'AGIAppError', 'msg': 'Error executing application, or hangup'} return result elif code == 510: result['error'] = 'AGIInvalidCommand' return result elif code == 520: usage = [line] usage = '%s\n' % '\n'.join(usage) # AGI Usage error result['error'] = 'AGIUsageError' result['msg'] = 'usage' return result else: # Unhandled code or undefined response result['error'] = 'AGIUnknownError' return result class IdGenerator(object): """Generate some uuid for actions: .. code-block:: python >>> g = IdGenerator('mycounter') .. >>> IdGenerator.reset(uid='an_uuid4') It increments the counter at each calls: .. code-block:: python >>> print(g()) mycounter/an_uuid4/1/1 >>> print(g()) mycounter/an_uuid4/1/2 """ instances = [] def __init__(self, prefix): self.instances.append(self) self.prefix = prefix self.uid = str(uuid.uuid4()) self.generator = self.get_generator() def get_generator(self): # TODO: remove 1 increment, I guess i and use modulo instead (%) # TODO: check if format is faster than the current concatenation i = 0 j = 1 while True: i += 1 yield self.prefix + '/' + self.uid + '/' + str(j) + '/' + str(i) if i > 10000: # pragma: no cover j += 1 i = 0 @classmethod def reset(cls, uid=None): """Mostly used for unit testing. Allow to use a static uuid and reset all counter""" for instance in cls.instances: if uid: instance.uid = uid instance.generator = instance.get_generator() def __call__(self): return next(self.generator) class CaseInsensitiveDict(collections.MutableMapping): def __init__(self, data=None, **kwargs): self._store = dict() self.update(data or {}, **kwargs) def __setitem__(self, key, value): # Use the lowercased key for lookups, but store the actual # key alongside the value. self._store[key.lower()] = (key, value) def __contains__(self, key): return key.lower() in self._store def __getattr__(self, attr): return self.get(attr, '') def __getitem__(self, key): return self._store[key.lower()][1] def __delitem__(self, key): raise NotImplementedError() def __iter__(self): return (key for key, value in self._store.values()) def __len__(self): return len(self._store) def config(filename_or_fd, section='asterisk'): config = ConfigParser() if hasattr(filename_or_fd, 'read'): config.readfp(filename_or_fd) else: config.read(filename_or_fd) return dict(config.items(section)) panoramisk-1.0/panoramisk/scripts.py0000644000175000017500000000504512565072531020155 0ustar gawelgawel00000000000000# -*- coding: utf-8 -*- import sys import argparse import logging from . import utils from .call_manager import Manager from .call_manager import Call try: import yaml except ImportError: yaml = None def main(argv=None): parser = argparse.ArgumentParser() if yaml is None: parser.error('You must install pyaml') parser.add_argument('-c', '--config', type=argparse.FileType('r'), required=True, help='Config ini file') parser.add_argument('-i', '--input', type=argparse.FileType('r'), help='Input yaml file') parser.add_argument('-o', '--output', type=argparse.FileType('w'), default='-', help='Stream output file (Default to STDOUT)') args = parser.parse_args(argv or sys.argv[1:]) config = utils.config(args.config) config['save_stream'] = args.output manager = Manager(**config) task = manager.connect() logging.basicConfig(stream=sys.stderr, level=logging.INFO) logging.getLogger('asyncio').setLevel(logging.ERROR) log = logging.getLogger('panoramisk') def done(future): result = future.result() log.info('Got result: %r\n', result) if isinstance(result, Call): while not result.queue.empty(): print(result.queue.get_nowait()) def show(f=None): if f: print(f.result()) f = utils.asyncio.Task(result.queue.get()) f.add_done_callback(show) show() def send_action(f): if args.input: action = yaml.load(args.input) if action.get('Action').lower() == 'originate': future = manager.send_originate(action) elif action.get('Action').lower() == 'agi': future = manager.send_agi_command(action) elif 'commandid' in [k.lower() for k in action.keys()]: future = manager.send_command(action) else: future = manager.send_action(action) log.info('Action %r sent', action) future.add_done_callback(done) def connected(f): if manager.authenticated_future is not None: manager.authenticated_future.add_done_callback(send_action) else: send_action(f) task.add_done_callback(connected) try: manager.loop.run_forever() except KeyboardInterrupt: args.output.close() panoramisk-1.0/panoramisk/message.py0000644000175000017500000000633212565072531020112 0ustar gawelgawel00000000000000# -*- coding: utf-8 -*- from . import utils class Message(utils.CaseInsensitiveDict): """Handle both Responses and Events with the same api: .. >>> resp = Message({'Response': 'Follows'}, 'Response body') >>> event = Message({'Event': 'MeetmeEnd', 'Meetme': '4242'}) Responses: .. code-block:: python >>> bool(resp.success) True >>> resp >>> print(resp.content) Response body >>> for line in resp.iter_lines(): ... print(resp.content) Response body Events: .. code-block:: python >>> print(event['meetme']) 4242 >>> print(event.meetme) 4242 >>> event.unknown_header '' """ quoted_keys = ['result'] success_responses = ['Success', 'Follows', 'Goodbye'] def __init__(self, headers, content=''): super(Message, self).__init__(headers, content=content) self.manager = None @property def id(self): if 'commandid' in self: return self['commandid'] elif 'actionid' in self: return self['actionid'] return None @property def action_id(self): if 'actionid' in self: return self['actionid'] return None @property def success(self): """return True if a response status is Success or Follows: .. code-block:: python >>> resp = Message({'Response': 'Success'}) >>> print(resp.success) True >>> resp['Response'] = 'Failed' >>> resp.success False """ if 'event' in self: return True if self.response in self.success_responses: return True return False def __repr__(self): message = ' '.join(['%s=%r' % i for i in sorted(self.items())]) return ''.format(message) def iter_lines(self): """Iter over response body""" for line in self.content.split('\n'): yield line def parsed_result(self): """Get parsed result of AGI command""" if 'Result' in self: return utils.parse_agi_result(self['Result']) else: raise ValueError('No result in %r' % self) @classmethod def from_line(cls, line): mlines = line.split(utils.EOL) headers = {} content = '' has_body = ('Response: Follows', 'Response: Fail') if mlines[0].startswith(has_body): content = mlines.pop() while not content and mlines: content = mlines.pop() for mline in mlines: if ': ' in mline: k, v = mline.split(': ', 1) if k.lower() in cls.quoted_keys: v = utils.unquote(v).strip() if k in headers: o = headers.setdefault(k, []) if not isinstance(o, list): o = [o] o.append(v) headers[k] = o else: headers[k] = v if 'Event' in headers or 'Response' in headers: return cls(headers, content) panoramisk-1.0/panoramisk/call_manager.py0000644000175000017500000000311312565072531021065 0ustar gawelgawel00000000000000# -*- coding: utf-8 -*- from . import manager from . import utils from . import actions from datetime import datetime from functools import partial class Call(object): def __init__(self, uniqueid): self.uniqueid = uniqueid self.action_id = None self.queue = utils.Queue() self.created_at = datetime.now() def append(self, *events): for e in events: self.queue.put_nowait(e) class Manager(manager.Manager): def __init__(self, *args, **kwargs): super(Manager, self).__init__(*args, **kwargs) self.CallClass = kwargs.get('CallClass', Call) self.calls_queues = {} self.calls = {} self.register_event('*', self.handle_calls) def set_result(self, future, result): event = result.result()[-1] uniqueid = event.uniqueid.split('.', 1)[0] call = self.calls_queues[uniqueid] call.action_id = event.action_id future.set_result(call) def send_originate(self, action): action['Async'] = 'true' action = actions.Action(action) future = utils.asyncio.Future() self.send_action(action).add_done_callback( partial(self.set_result, future)) return future def clean_originate(self, call): self.calls_queues.pop(call.uniqueid, None) def handle_calls(self, manager, event): uniqueid = event.uniqueid or event.uniqueid1 if uniqueid: uniqueid = uniqueid.split('.', 1)[0] call = self.calls_queues.setdefault(uniqueid, Call(uniqueid)) call.append(event) panoramisk-1.0/docs/0000755000175000017500000000000012565072552014677 5ustar gawelgawel00000000000000panoramisk-1.0/docs/message.rst0000644000175000017500000000022712565072531017053 0ustar gawelgawel00000000000000========================= :mod:`panoramisk.message` ========================= .. automodule:: panoramisk.message .. autoclass:: Message :members: panoramisk-1.0/docs/conf.py0000755000175000017500000001736612565072531016213 0ustar gawelgawel00000000000000# -*- coding: utf-8 -*- # # panoramisk documentation build configuration file, created by # sphinx-quickstart on Thu Jan 9 12:06:32 2014. # # This file is execfile()d with the current directory set to its containing dir. # # Note that not all possible configuration values are present in this # autogenerated file. # # All configuration values have a default; values that are commented out # serve to show the default. import sys, os # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. #sys.path.insert(0, os.path.abspath('.')) # -- General configuration ----------------------------------------------------- # If your documentation needs a minimal Sphinx version, state it here. #needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = ['sphinx.ext.autodoc', 'sphinx.ext.viewcode'] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] # The suffix of source filenames. source_suffix = '.rst' # The encoding of source files. #source_encoding = 'utf-8-sig' # The master toctree document. master_doc = 'index' # General information about the project. project = u'panoramisk' copyright = u'2014, Gael Pasgrimaud' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. version = '' # The full version, including alpha/beta/rc tags. release = '' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. #language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: #today = '' # Else, today_fmt is used as the format for a strftime call. #today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. exclude_patterns = ['_build'] # The reST default role (used for this markup: `text`) to use for all documents. #default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. #add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). #add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. #show_authors = False # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' # A list of ignored prefixes for module index sorting. #modindex_common_prefix = [] # -- Options for HTML output --------------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. html_theme = 'default' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. #html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. #html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". #html_title = None # A shorter title for the navigation bar. Default is the same as html_title. #html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. #html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. #html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. #html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. #html_use_smartypants = True # Custom sidebar templates, maps document names to template names. #html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. #html_additional_pages = {} # If false, no module index is generated. #html_domain_indices = True # If false, no index is generated. #html_use_index = True # If true, the index is split into individual pages for each letter. #html_split_index = False # If true, links to the reST sources are added to the pages. #html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. #html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. #html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. #html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). #html_file_suffix = None # Output file base name for HTML help builder. htmlhelp_basename = 'panoramiskdoc' # -- Options for LaTeX output -------------------------------------------------- latex_elements = { # The paper size ('letterpaper' or 'a4paper'). #'papersize': 'letterpaper', # The font size ('10pt', '11pt' or '12pt'). #'pointsize': '10pt', # Additional stuff for the LaTeX preamble. #'preamble': '', } # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). latex_documents = [ ('index', 'panoramisk.tex', u'panoramisk Documentation', u'Gael Pasgrimaud', 'manual'), ] # The name of an image file (relative to this directory) to place at the top of # the title page. #latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. #latex_use_parts = False # If true, show page references after internal links. #latex_show_pagerefs = False # If true, show URL addresses after external links. #latex_show_urls = False # Documents to append as an appendix to all manuals. #latex_appendices = [] # If false, no module index is generated. #latex_domain_indices = True # -- Options for manual page output -------------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [ ('index', 'panoramisk', u'panoramisk Documentation', [u'Gael Pasgrimaud'], 1) ] # If true, show URL addresses after external links. #man_show_urls = False # -- Options for Texinfo output ------------------------------------------------ # Grouping the document tree into Texinfo files. List of tuples # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ ('index', 'panoramisk', u'panoramisk Documentation', u'Gael Pasgrimaud', 'panoramisk', 'One line description of project.', 'Miscellaneous'), ] # Documents to append as an appendix to all manuals. #texinfo_appendices = [] # If false, no module index is generated. #texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. #texinfo_show_urls = 'footnote' html_theme = 'nature' import pkg_resources version = pkg_resources.get_distribution("panoramisk").version release = version panoramisk-1.0/docs/Makefile0000644000175000017500000001271412565072531016341 0ustar gawelgawel00000000000000# Makefile for Sphinx documentation # # You can set these variables from the command line. SPHINXOPTS = SPHINXBUILD = sphinx-build PAPER = BUILDDIR = _build # Internal variables. PAPEROPT_a4 = -D latex_paper_size=a4 PAPEROPT_letter = -D latex_paper_size=letter ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . # the i18n builder cannot share the environment and doctrees with the others I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . .PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext help: @echo "Please use \`make ' where is one of" @echo " html to make standalone HTML files" @echo " dirhtml to make HTML files named index.html in directories" @echo " singlehtml to make a single large HTML file" @echo " pickle to make pickle files" @echo " json to make JSON files" @echo " htmlhelp to make HTML files and a HTML help project" @echo " qthelp to make HTML files and a qthelp project" @echo " devhelp to make HTML files and a Devhelp project" @echo " epub to make an epub" @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" @echo " latexpdf to make LaTeX files and run them through pdflatex" @echo " text to make text files" @echo " man to make manual pages" @echo " texinfo to make Texinfo files" @echo " info to make Texinfo files and run them through makeinfo" @echo " gettext to make PO message catalogs" @echo " changes to make an overview of all changed/added/deprecated items" @echo " linkcheck to check all external links for integrity" @echo " doctest to run all doctests embedded in the documentation (if enabled)" clean: -rm -rf $(BUILDDIR)/* html: $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." dirhtml: $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." singlehtml: $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml @echo @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." pickle: $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle @echo @echo "Build finished; now you can process the pickle files." json: $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json @echo @echo "Build finished; now you can process the JSON files." htmlhelp: $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp @echo @echo "Build finished; now you can run HTML Help Workshop with the" \ ".hhp project file in $(BUILDDIR)/htmlhelp." qthelp: $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp @echo @echo "Build finished; now you can run "qcollectiongenerator" with the" \ ".qhcp project file in $(BUILDDIR)/qthelp, like this:" @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/panoramisk.qhcp" @echo "To view the help file:" @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/panoramisk.qhc" devhelp: $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp @echo @echo "Build finished." @echo "To view the help file:" @echo "# mkdir -p $$HOME/.local/share/devhelp/panoramisk" @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/panoramisk" @echo "# devhelp" epub: $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub @echo @echo "Build finished. The epub file is in $(BUILDDIR)/epub." latex: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." @echo "Run \`make' in that directory to run these through (pdf)latex" \ "(use \`make latexpdf' here to do that automatically)." latexpdf: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo "Running LaTeX files through pdflatex..." $(MAKE) -C $(BUILDDIR)/latex all-pdf @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." text: $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text @echo @echo "Build finished. The text files are in $(BUILDDIR)/text." man: $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man @echo @echo "Build finished. The manual pages are in $(BUILDDIR)/man." texinfo: $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo @echo @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." @echo "Run \`make' in that directory to run these through makeinfo" \ "(use \`make info' here to do that automatically)." info: $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo @echo "Running Texinfo files through makeinfo..." make -C $(BUILDDIR)/texinfo info @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." gettext: $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale @echo @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." changes: $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes @echo @echo "The overview file is in $(BUILDDIR)/changes." linkcheck: $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck @echo @echo "Link check complete; look for any errors in the above output " \ "or in $(BUILDDIR)/linkcheck/output.txt." doctest: $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest @echo "Testing of doctests in the sources finished, look at the " \ "results in $(BUILDDIR)/doctest/output.txt." panoramisk-1.0/docs/actions.rst0000644000175000017500000000027412565072531017071 0ustar gawelgawel00000000000000========================= :mod:`panoramisk.actions` ========================= .. automodule:: panoramisk.actions .. autoclass:: Action :members: .. autoclass:: Command :members: panoramisk-1.0/docs/testing.rst0000644000175000017500000000105312565072531017102 0ustar gawelgawel00000000000000========================= :mod:`panoramisk.testing` ========================= .. >>> import os >>> stream = os.path.join('tests', 'fixtures', 'ping.yaml') .. code-block:: python >>> from panoramisk import testing >>> manager = testing.Manager(stream=stream) # stream is a filename contaning an Asterisk trace >>> future = manager.send_action({'Action': 'Ping'}) >>> resp = future.result() >>> assert 'ping' in resp >>> assert resp.ping == 'Pong' .. automodule:: panoramisk.testing .. autoclass:: Manager :members: panoramisk-1.0/docs/conftest.py0000644000175000017500000000014112565072531017067 0ustar gawelgawel00000000000000# -*- coding: utf-8 -*- import pytest @pytest.fixture def inject_file(): return __file__ panoramisk-1.0/docs/index.rst0000644000175000017500000000170112565072531016534 0ustar gawelgawel00000000000000.. panoramisk documentation master file, created by sphinx-quickstart on Thu Jan 9 12:06:32 2014. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. .. include:: ../README.rst ========================= How to configure Asterisk ========================= In ``/etc/asterisk/manager.conf``, add: :: [username] secret=password deny=0.0.0.0/0.0.0.0 permit=127.0.0.1/255.255.255.255 read = all write = all Launch: ``rasterisk -x 'manager reload'`` ===================== :mod:`panoramisk` api ===================== .. automodule:: panoramisk .. autoclass:: Manager :members: .. toctree:: :maxdepth: 2 .. automodule:: panoramisk.fast_agi .. autoclass:: Application :members: .. toctree:: :maxdepth: 2 ======= CHANGES ======= .. include:: ../CHANGES.rst Indices and tables ================== * :ref:`genindex` * :ref:`modindex` * :ref:`search` panoramisk-1.0/PKG-INFO0000644000175000017500000000655112565072552015053 0ustar gawelgawel00000000000000Metadata-Version: 1.1 Name: panoramisk Version: 1.0 Summary: asyncio based library to play with asterisk Home-page: https://github.com/gawel/panoramisk/ Author: Gael Pasgrimaud Author-email: gael@gawel.org License: MIT license Description: ================================ Panoramisk. The Asterisk's druid ================================ .. image:: https://travis-ci.org/gawel/panoramisk.png?branch=master&style=flat-square :target: https://travis-ci.org/gawel/panoramisk .. image:: https://img.shields.io/coveralls/gawel/panoramisk/master.svg :target: https://coveralls.io/r/gawel/panoramisk?branch=master .. image:: https://img.shields.io/pypi/v/panoramisk.svg?style=flat-square :target: https://pypi.python.org/pypi/panoramisk .. image:: https://img.shields.io/pypi/dw/panoramisk.svg?style=flat-square :target: https://pypi.python.org/pypi/panoramisk .. image:: https://img.shields.io/github/issues/gawel/panoramisk.svg?style=flat-square :target: https://github.com/gawel/panoramisk/issues .. image:: https://img.shields.io/github/license/gawel/panoramisk.svg?style=flat-square :target: https://github.com/gawel/panoramisk/blob/master/LICENSE `Panoramisk` is a library based on python's `AsyncIO `_ to play with `Asterisk `_'s `manager `_. It uses the TCP manager server to listen to events and send actions. For basic usage, you have some examples in `examples/ `_ folder. You can find some help on IRC: irc://irc.freenode.net/panoramisk (`www `_) Running the Tests ----------------- Running your test with:: $ python setup.py test $ py.test tests/ docs/ Source code ----------- Find us on Github at https://github.com/gawel/panoramisk/ Documentation ------------- Check out the documentation on Read the Docs: https://panoramisk.readthedocs.org/ Installation ------------ Install, upgrade and uninstall panoramisk with these commands:: $ pip install panoramisk $ pip install --upgrade panoramisk $ pip uninstall panoramisk Keywords: asyncio,asterisk,voip Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: MIT License Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3.3 Classifier: Programming Language :: Python :: 3.4 Classifier: Topic :: Communications :: Telephony Classifier: Topic :: Software Development :: Libraries :: Python Modules panoramisk-1.0/buildout.cfg0000644000175000017500000000043712565072531016260 0ustar gawelgawel00000000000000[buildout] newest = false extensions = gp.vcsdevelop #vcs-extends-develop = parts = eggs develop = . [eggs] recipe = zc.recipe.egg eggs = Sphinx panoramisk interpreter = py [tests] recipe = zc.recipe.egg eggs = panoramisk[test] dependent-scripts = true scripts = nosetests panoramisk-1.0/examples/0000755000175000017500000000000012565072552015565 5ustar gawelgawel00000000000000panoramisk-1.0/examples/queue_status.py0000644000175000017500000000071012565072531020661 0ustar gawelgawel00000000000000import asyncio from panoramisk import Manager from pprint import pprint loop = asyncio.get_event_loop() @asyncio.coroutine def queue_status(): MANAGER = Manager(loop=asyncio.get_event_loop(), host='127.0.0.1', username='user', secret='password') yield from MANAGER.connect() queues_details = yield from MANAGER.send_action({'Action': 'QueueStatus', 'Queue': 'queue_name'}) pprint(queues_details) loop.run_until_complete(queue_status()) panoramisk-1.0/examples/fast_agi_server_ivr.py0000644000175000017500000000251112565072531022156 0ustar gawelgawel00000000000000from pprint import pprint import asyncio from panoramisk import fast_agi loop = asyncio.get_event_loop() @asyncio.coroutine def call_waiting(request): pprint(['AGI variables:', request.headers]) pprint((yield from request.send_command('ANSWER'))) pprint((yield from request.send_command('SAY DIGITS 1 \"\"'))) # To Raise a 510 error - 510 Invalid or unknown command pprint((yield from request.send_command('INVALID-COMMAND'))) # To Raise a 520 error - 520-Invalid command syntax. Proper usage follows: pprint((yield from request.send_command('SAY PHONETIC Hello world .'))) pprint((yield from request.send_command('SAY NUMBER 100 \"\"'))) pprint((yield from request.send_command('GET DATA hello-world 5000 2'))) pprint((yield from request.send_command('EXEC StartMusicOnHold'))) pprint((yield from request.send_command('EXEC Wait 30'))) fa_app = fast_agi.Application(loop=loop) fa_app.add_route('call_waiting', call_waiting) coro = asyncio.start_server(fa_app.handler, '0.0.0.0', 4574, loop=loop) server = loop.run_until_complete(coro) # Serve requests until CTRL+c is pressed print('Serving on {}'.format(server.sockets[0].getsockname())) try: loop.run_forever() except KeyboardInterrupt: pass # Close the server server.close() loop.run_until_complete(server.wait_closed()) loop.close() panoramisk-1.0/examples/get_extension_status.py0000644000175000017500000000107112565072531022411 0ustar gawelgawel00000000000000from pprint import pprint import asyncio from panoramisk import Manager loop = asyncio.get_event_loop() @asyncio.coroutine def extension_status(): manager = Manager(loop=asyncio.get_event_loop(), host='127.0.0.1', username='user', secret='password') yield from manager.connect() extension = yield from manager.send_action({'Action': 'ExtensionState', 'Exten': '2001', 'Context': 'default'}) pprint(extension) loop.run_until_complete(extension_status()) panoramisk-1.0/examples/fast_agi_server.py0000644000175000017500000000152712565072531021304 0ustar gawelgawel00000000000000from pprint import pprint import asyncio from panoramisk import fast_agi loop = asyncio.get_event_loop() @asyncio.coroutine def call_waiting(request): pprint(['AGI variables:', request.headers]) pprint((yield from request.send_command('ANSWER'))) pprint((yield from request.send_command('EXEC StartMusicOnHold'))) pprint((yield from request.send_command('EXEC Wait 30'))) fa_app = fast_agi.Application(loop=loop) fa_app.add_route('call_waiting', call_waiting) coro = asyncio.start_server(fa_app.handler, '0.0.0.0', 4574, loop=loop) server = loop.run_until_complete(coro) # Serve requests until CTRL+c is pressed print('Serving on {}'.format(server.sockets[0].getsockname())) try: loop.run_forever() except KeyboardInterrupt: pass # Close the server server.close() loop.run_until_complete(server.wait_closed()) loop.close() panoramisk-1.0/examples/originate.py0000644000175000017500000000151012565072531020112 0ustar gawelgawel00000000000000import sys import asyncio from panoramisk.call_manager import Manager loop = asyncio.get_event_loop() @asyncio.coroutine def originate(): manager = Manager.from_config(sys.argv[1]) yield from manager.connect() call = yield from manager.send_originate({ 'Action': 'Originate', 'Channel': 'Local/gpasgrimaud@bearstech', 'WaitTime': 20, 'CallerID': 'gawel', 'Exten': '4260', 'Context': 'bearstech', 'Priority': 1}) print(call) while not call.queue.empty(): event = call.queue.get_nowait() print(event) while True: event = yield from call.queue.get() print(event) if event.event.lower() == 'hangup' and event.cause in ('0', '17'): break manager.clean_originate(call) loop.run_until_complete(originate()) panoramisk-1.0/setup.py0000755000175000017500000000364512565072531015471 0ustar gawelgawel00000000000000#!/usr/bin/env python # -*- coding: utf-8 -*- import os import sys from setuptools import setup from setuptools import find_packages version = '1.0' install_requires = [] test_requires = [ 'pytest', 'coverage<3.99', 'coveralls' ] if sys.version_info[:2] < (3, 0): install_requires.extend([ 'trollius', 'futures', ]) test_requires.extend(['mock']) elif sys.version_info[:2] < (3, 3): install_requires.append('trollius') test_requires.extend(['mock']) elif sys.version_info[:2] < (3, 4): install_requires.append('asyncio') test_requires.append('pytest-asyncio') else: test_requires.append('pytest-asyncio') def read(*rnames): return open(os.path.join(os.path.dirname(__file__), *rnames)).read() setup( name='panoramisk', version=version, description="asyncio based library to play with asterisk", long_description=read('README.rst'), classifiers=[ 'Development Status :: 5 - Production/Stable', 'Intended Audience :: Developers', 'License :: OSI Approved :: MIT License', 'Operating System :: OS Independent', 'Programming Language :: Python', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3.3', 'Programming Language :: Python :: 3.4', 'Topic :: Communications :: Telephony', 'Topic :: Software Development :: Libraries :: Python Modules', ], keywords=['asyncio', 'asterisk', 'voip'], author='Gael Pasgrimaud', author_email='gael@gawel.org', url='https://github.com/gawel/panoramisk/', license='MIT license', packages=find_packages(exclude=['docs', 'tests']), include_package_data=True, zip_safe=False, install_requires=install_requires, tests_require=test_requires, extras_require={ 'test': test_requires, }, entry_points=''' [console_scripts] panoramisk = panoramisk.scripts:main ''' ) panoramisk-1.0/tox.ini0000644000175000017500000000201112565072531015251 0ustar gawelgawel00000000000000[tox] envlist = py27,py33,py34,pypy,flake8,coverage [flake8] max-line-length = 120 [testenv] skip_install = true setenv = COVERAGE_FILE={toxinidir}/.coverage.{envname} commands = pip install -e .[test] coverage run {envbindir}/py.test [] deps = pytest coverage<3.99 [testenv:py27] commands = pip install -e .[test] coverage run {envbindir}/py.test tests/ docs/ [testenv:py33] commands = pip install -e .[test] coverage run {envbindir}/py.test tests/ docs/ tests_python3/ [testenv:py34] commands = pip install -e .[test] coverage run {envbindir}/py.test tests/ docs/ tests_python3/ [testenv:pypy] commands = pip install -e .[test] coverage run {envbindir}/py.test tests/ docs/ [testenv:flake8] basepython = python3.4 commands = flake8 panoramisk examples deps = flake8 [testenv:coverage] basepython = python3.4 deps = coverage setenv = COVERAGE_FILE={toxinidir}/.coverage commands = coverage erase coverage combine coverage report --show-missing panoramisk-1.0/README.rst0000644000175000017500000000406512565072531015440 0ustar gawelgawel00000000000000================================ Panoramisk. The Asterisk's druid ================================ .. image:: https://travis-ci.org/gawel/panoramisk.png?branch=master&style=flat-square :target: https://travis-ci.org/gawel/panoramisk .. image:: https://img.shields.io/coveralls/gawel/panoramisk/master.svg :target: https://coveralls.io/r/gawel/panoramisk?branch=master .. image:: https://img.shields.io/pypi/v/panoramisk.svg?style=flat-square :target: https://pypi.python.org/pypi/panoramisk .. image:: https://img.shields.io/pypi/dw/panoramisk.svg?style=flat-square :target: https://pypi.python.org/pypi/panoramisk .. image:: https://img.shields.io/github/issues/gawel/panoramisk.svg?style=flat-square :target: https://github.com/gawel/panoramisk/issues .. image:: https://img.shields.io/github/license/gawel/panoramisk.svg?style=flat-square :target: https://github.com/gawel/panoramisk/blob/master/LICENSE `Panoramisk` is a library based on python's `AsyncIO `_ to play with `Asterisk `_'s `manager `_. It uses the TCP manager server to listen to events and send actions. For basic usage, you have some examples in `examples/ `_ folder. You can find some help on IRC: irc://irc.freenode.net/panoramisk (`www `_) Running the Tests ----------------- Running your test with:: $ python setup.py test $ py.test tests/ docs/ Source code ----------- Find us on Github at https://github.com/gawel/panoramisk/ Documentation ------------- Check out the documentation on Read the Docs: https://panoramisk.readthedocs.org/ Installation ------------ Install, upgrade and uninstall panoramisk with these commands:: $ pip install panoramisk $ pip install --upgrade panoramisk $ pip uninstall panoramisk panoramisk-1.0/LICENSE0000644000175000017500000000207212565072531014752 0ustar gawelgawel00000000000000The MIT License (MIT) Copyright (c) 2015 Gael Pasgrimaud Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. panoramisk-1.0/tests_python3/0000755000175000017500000000000012565072552016575 5ustar gawelgawel00000000000000panoramisk-1.0/tests_python3/test_fast_agi.py0000644000175000017500000000310412565072531021756 0ustar gawelgawel00000000000000import asyncio from panoramisk import fast_agi import pytest FAST_AGI_PAYLOAD = b'''agi_network: yes agi_network_script: call_waiting agi_request: agi://127.0.0.1:4574/call_waiting agi_channel: SIP/xxxxxx-00000000 agi_language: en_US agi_type: SIP agi_uniqueid: 1437920906.0 agi_version: asterisk agi_callerid: 201 agi_calleridname: user 201 agi_callingpres: 0 agi_callingani2: 0 agi_callington: 0 agi_callingtns: 0 agi_dnid: 9011 agi_rdnis: unknown agi_context: default agi_extension: 9011 agi_priority: 2 agi_enhanced: 0.0 agi_accountcode: default agi_threadid: -1260881040 agi_arg_1: answered ''' @asyncio.coroutine def call_waiting(request): r = yield from request.send_command('ANSWER') assert {'message': None, 'result': 0, 'status_code': 200, 'value': None} == r @asyncio.coroutine def fake_asterisk_client(loop): reader, writer = yield from asyncio.open_connection( '127.0.0.1', 4575, loop=loop) # send headers writer.write(FAST_AGI_PAYLOAD) # read it back msg_back = yield from reader.readline() writer.write(b'200 result=0\n') writer.close() return msg_back @pytest.mark.asyncio def test_fast_agi_application(event_loop): fa_app = fast_agi.Application(loop=event_loop) fa_app.add_route('call_waiting', call_waiting) server = yield from asyncio.start_server(fa_app.handler, '127.0.0.1', 4575, loop=event_loop) msg_back = yield from fake_asterisk_client(loop=event_loop) assert b'ANSWER\n' == msg_back server.close() yield from server.wait_closed() yield from asyncio.sleep(1) # Wait the end of endpoint panoramisk-1.0/tests/0000755000175000017500000000000012565072552015111 5ustar gawelgawel00000000000000panoramisk-1.0/tests/test_message.py0000644000175000017500000000102212565072531020136 0ustar gawelgawel00000000000000# -*- coding: utf-8 -*- from panoramisk.message import Message from panoramisk import utils import pytest @pytest.yield_fixture def message(): def _message(data): return Message.from_line(data) EOL = utils.EOL utils.EOL = '\n' yield _message utils.EOL = EOL def test_multivalue(message): m = message(''' Event: X Value: X Value: Y ''') assert m.value == ['X', 'Y'] def test_content(message): m = message('''\ Response: Follows --- blah --- ''') assert m.content == '--- blah ---' panoramisk-1.0/tests/fixtures/0000755000175000017500000000000012565072552016762 5ustar gawelgawel00000000000000panoramisk-1.0/tests/fixtures/asyncagi_channel_does_not_exist.yaml0000644000175000017500000000040312565072531026234 0ustar gawelgawel00000000000000Action: AGI ActionID: action/transaction_uid/1/1 Channel: SIP/eeeeee-00000014 Command: GET VARIABLE DIALSTATUS CommandID: command/transaction_uid/1/1 Response: Error ActionID: action/transaction_uid/1/1 Message: Channel SIP/eeeeee-00000014 does not exist. panoramisk-1.0/tests/fixtures/rasterisk_command.yaml0000644000175000017500000000042512565072531023351 0ustar gawelgawel00000000000000Action: Command ActionID: generated_id Command: core show channels Response: Follows Privilege: Command ActionID: generated_id Channel Location State Application(Data) 0 active channels 0 active calls 2 calls processed --END COMMAND-- panoramisk-1.0/tests/fixtures/asyncagi_get_var.yaml0000644000175000017500000000127512565072531023155 0ustar gawelgawel00000000000000Action: AGI ActionID: action/transaction_uid/1/1 Channel: SIP/000000-00000a53 Command: GET VARIABLE endpoint CommandID: command/transaction_uid/1/1 Response: Success ActionID: action/transaction_uid/1/1 Message: Added AGI command to queue Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/000000-00000a53 CommandId: 2095882815 Command: GET VARIABLE endpoint Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/000000-00000a53 CommandId: 2095882815 Command: GET VARIABLE endpoint ResultCode: 200 Result: Success Event: AsyncAGI Privilege: agi,all SubEvent: Exec Channel: SIP/000000-00000a53 CommandID: command/transaction_uid/1/1 Result: 200%20result%3D1%20(SIP%2F000000)%0A panoramisk-1.0/tests/fixtures/sip_notify.yaml0000644000175000017500000000066712565072531022037 0ustar gawelgawel00000000000000Action: SIPnotify Channel: SIP/nnnnnn Variable: Content= Variable: Content=This is a test for pushing text to a phone. Variable: Content=Push test Variable: Content= Variable: Content= Variable: Content-Type=application/xml Variable: Event=Yealink-xml Response: Success Message: Notify Sent panoramisk-1.0/tests/fixtures/queue_status.yaml0000644000175000017500000000363312565072531022377 0ustar gawelgawel00000000000000Response: Success ActionID: action/transaction_uid/1/1 Message: Queue status will follow Event: QueueParams Queue: xxxxxxxxxxxxxxxx-tous Max: 0 Strategy: ringall Calls: 0 Holdtime: 3 TalkTime: 303 Completed: 60 Abandoned: 5 ServiceLevel: 0 ServicelevelPerf: 0.0 Weight: 0 ActionID: action/transaction_uid/1/1 Event: QueueMember Queue: xxxxxxxxxxxxxxxx-tous Name: Agent/220 Location: Local/id-9@agentcallback StateInterface: SIP/iiiiiiiiiii Membership: dynamic Penalty: 0 CallsTaken: 2 LastCall: 1413884970 Status: 1 Paused: 0 Skills: agent-9 ActionID: action/transaction_uid/1/1 Event: QueueMember Queue: xxxxxxxxxxxxxxxx-tous Name: Agent/213 Location: Local/id-3@agentcallback StateInterface: SIP/ijfptg Membership: dynamic Penalty: 0 CallsTaken: 0 LastCall: 0 Status: 1 Paused: 0 Skills: agent-3 ActionID: action/transaction_uid/1/1 Event: QueueMember Queue: xxxxxxxxxxxxxxxx-tous Name: Agent/859 Location: Local/id-7@agentcallback StateInterface: SIP/rrrrrrr Membership: dynamic Penalty: 0 CallsTaken: 0 LastCall: 0 Status: 1 Paused: 0 Skills: agent-7 ActionID: action/transaction_uid/1/1 Event: QueueMember Queue: xxxxxxxxxxxxxxxx-tous Name: Agent/214 Location: Local/id-4@agentcallback StateInterface: SIP/6r0vs5 Membership: dynamic Penalty: 0 CallsTaken: 0 LastCall: 0 Status: 1 Paused: 0 Skills: agent-4 ActionID: action/transaction_uid/1/1 Event: QueueMember Queue: xxxxxxxxxxxxxxxx-tous Name: Agent/333 Location: Local/id-10@agentcallback StateInterface: SIP/qqqqqq Membership: dynamic Penalty: 0 CallsTaken: 8 LastCall: 1413758765 Status: 1 Paused: 0 Skills: agent-10 ActionID: action/transaction_uid/1/1 Event: QueueMember Queue: xxxxxxxxxxxxxxxx-tous Name: Agent/999 Location: Local/id-12@agentcallback StateInterface: SIP/000000 Membership: dynamic Penalty: 0 CallsTaken: 0 LastCall: 0 Status: 5 Paused: 1 Skills: agent-12 ActionID: action/transaction_uid/1/1 Event: QueueStatusComplete ActionID: action/transaction_uid/1/1 panoramisk-1.0/tests/fixtures/login_ok.yaml0000644000175000017500000000043212565072531021443 0ustar gawelgawel00000000000000Asterisk Call Manager/1.3 action: login ActionID: action/transaction_uid/1/1 username: nnnnnnnnn secret: yyyyyyyyyyyy events: on Response: Success ActionID: action/transaction_uid/1/1 Message: Authentication accepted Event: FullyBooted Privilege: system,all Status: Fully Booted panoramisk-1.0/tests/fixtures/logoff.yaml0000644000175000017500000000022012565072531021111 0ustar gawelgawel00000000000000 Action: logoff ActionID: action/transaction_uid/1/1 Response: Goodbye ActionID: action/transaction_uid/1/1 Message: Thanks for all the fish. panoramisk-1.0/tests/fixtures/originate_sync.yaml0000644000175000017500000000041312565072531022656 0ustar gawelgawel00000000000000Action: Originate ActionID: action/transaction_uid/1/1 Channel: Local/2540 Exten: 2580 Context: default Priority: 1 Timeout: 30000 CallerID: Panoramisk tests Async: false Response: Success ActionID: action/transaction_uid/1/1 Message: Originate successfully queued panoramisk-1.0/tests/fixtures/ping.yaml0000644000175000017500000000014112565072531020574 0ustar gawelgawel00000000000000Response: Success ActionID: action/transaction_uid/1/1 Ping: Pong Timestamp: 1409169929.412068 panoramisk-1.0/tests/fixtures/agent_not_in_pause.yaml0000644000175000017500000002764412565072531023521 0ustar gawelgawel00000000000000Event: Newchannel Privilege: call,all Channel: SIP/00000-0000095f ChannelState: 0 ChannelStateDesc: Down CallerIDNum: 2001 CallerIDName: Ludovic Gasc AccountCode: Exten: *12 Context: default Uniqueid: 1413823936.3729 Event: VarSet Privilege: dialplan,all Channel: SIP/00000-0000095f Variable: SIPURI Value: sip:00000@192.168.2.27:5060 Uniqueid: 1413823936.3729 Event: VarSet Privilege: dialplan,all Channel: SIP/00000-0000095f Variable: SIPDOMAIN Value: yyyyyyyyyy.xxx Uniqueid: 1413823936.3729 Event: VarSet Privilege: dialplan,all Channel: SIP/00000-0000095f Variable: SIPCALLID Value: baecd088-e735-4b1e-8b13-fbc88b3d90ef Uniqueid: 1413823936.3729 Event: VarSet Privilege: dialplan,all Channel: SIP/00000-0000095f Variable: XIVO_USERID Value: 2 Uniqueid: 1413823936.3729 Event: VarSet Privilege: dialplan,all Channel: SIP/00000-0000095f Variable: PICKUPMARK Value: 2001%default Uniqueid: 1413823936.3729 Event: VarSet Privilege: dialplan,all Channel: SIP/00000-0000095f Variable: TRANSFER_CONTEXT Value: default Uniqueid: 1413823936.3729 Event: ChannelUpdate Privilege: system,all Channel: SIP/00000-0000095f Uniqueid: 1413823936.3729 Channeltype: SIP SIPcallid: baecd088-e735-4b1e-8b13-fbc88b3d90ef SIPfullcontact: sip:00000@83.101.5.124:5060 Event: Newstate Privilege: call,all Channel: SIP/00000-0000095f ChannelState: 4 ChannelStateDesc: Ring CallerIDNum: 2001 CallerIDName: Ludovic Gasc ConnectedLineNum: ConnectedLineName: Uniqueid: 1413823936.3729 Event: CEL Privilege: call,all EventName: CHAN_START AccountCode: CallerIDnum: 2001 CallerIDname: Ludovic Gasc CallerIDani: CallerIDrdnis: CallerIDdnid: Exten: *12 Context: default Channel: SIP/00000-0000095f Application: AppData: EventTime: 2014-10-20 18:52:16 AMAFlags: DOCUMENTATION UniqueID: 1413823936.3729 LinkedID: 1413823936.3729 Userfield: Peer: PeerAccount: Extra: Event: Newexten Privilege: dialplan,all Channel: SIP/00000-0000095f Context: default Extension: *12 Priority: 1 Application: Answer AppData: Uniqueid: 1413823936.3729 Event: Newstate Privilege: call,all Channel: SIP/00000-0000095f ChannelState: 6 ChannelStateDesc: Up CallerIDNum: 2001 CallerIDName: Ludovic Gasc ConnectedLineNum: ConnectedLineName: Uniqueid: 1413823936.3729 Event: CEL Privilege: call,all EventName: ANSWER AccountCode: CallerIDnum: 2001 CallerIDname: Ludovic Gasc CallerIDani: 2001 CallerIDrdnis: CallerIDdnid: *12 Exten: *12 Context: default Channel: SIP/00000-0000095f Application: Answer AppData: EventTime: 2014-10-20 18:52:16 AMAFlags: DOCUMENTATION UniqueID: 1413823936.3729 LinkedID: 1413823936.3729 Userfield: Peer: PeerAccount: Extra: Event: ExtensionStatus Privilege: call,all Exten: 2001 Context: default Hint: SIP/00000 Status: 1 Event: ExtensionStatus Privilege: call,all Exten: *6662 Context: default Hint: SIP/00000 Status: 1 Event: QueueMemberStatus Privilege: agent,all Queue: maisonvoyance-tous Location: Local/id-12@agentcallback MemberName: Agent/999 StateInterface: SIP/00000 Membership: dynamic Penalty: 0 CallsTaken: 0 LastCall: 0 Status: 2 Paused: 1 Skills: agent-12 Event: QueueMemberStatus Privilege: agent,all Queue: maisonvoyance-tous Location: Local/id-12@agentcallback MemberName: Agent/999 StateInterface: SIP/00000 Membership: dynamic Penalty: 0 CallsTaken: 0 LastCall: 0 Status: 2 Paused: 1 Skills: agent-12 Event: QueueMemberStatus Privilege: agent,all Queue: maisonvoyance-tous Location: Local/id-12@agentcallback MemberName: Agent/999 StateInterface: SIP/00000 Membership: dynamic Penalty: 0 CallsTaken: 0 LastCall: 0 Status: 2 Paused: 1 Skills: agent-12 Event: Newexten Privilege: dialplan,all Channel: SIP/00000-0000095f Context: default Extension: *12 Priority: 2 Application: DumpChan AppData: 7 Uniqueid: 1413823936.3729 Event: Newexten Privilege: dialplan,all Channel: SIP/00000-0000095f Context: default Extension: *12 Priority: 3 Application: Verbose AppData: 3, "-= Pause/Unpause agent =-" Uniqueid: 1413823936.3729 Event: Newexten Privilege: dialplan,all Channel: SIP/00000-0000095f Context: default Extension: *12 Priority: 4 Application: Verbose AppData: 3, "-= Peer name : 00000 =-" Uniqueid: 1413823936.3729 Event: Newexten Privilege: dialplan,all Channel: SIP/00000-0000095f Context: default Extension: *12 Priority: 5 Application: Set AppData: EYEPEA_PEERNAME=SIP/00000 Uniqueid: 1413823936.3729 Event: VarSet Privilege: dialplan,all Channel: SIP/00000-0000095f Variable: EYEPEA_PEERNAME Value: SIP/00000 Uniqueid: 1413823936.3729 Event: Newexten Privilege: dialplan,all Channel: SIP/00000-0000095f Context: default Extension: *12 Priority: 6 Application: AGI AppData: agi://127.0.0.1/get_agent_from_peer Uniqueid: 1413823936.3729 Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/00000-0000095f CommandId: 849605471 Command: GET VARIABLE "EYEPEA_PEERNAME" Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/00000-0000095f CommandId: 849605471 Command: GET VARIABLE "EYEPEA_PEERNAME" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/00000-0000095f CommandId: 435836313 Command: SET VARIABLE "DEBUG EYEPEA_AGENT" "[u'Local/id-12@agentcallback']" Event: VarSet Privilege: dialplan,all Channel: SIP/00000-0000095f Variable: DEBUG EYEPEA_AGENT Value: [u'Local/id-12@agentcallback'] Uniqueid: 1413823936.3729 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/00000-0000095f CommandId: 435836313 Command: SET VARIABLE "DEBUG EYEPEA_AGENT" "[u'Local/id-12@agentcallback']" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/00000-0000095f CommandId: 750822880 Command: SET VARIABLE "EYEPEA_AGENT_INTERFACE" "Local/id-12@agentcallback" Event: VarSet Privilege: dialplan,all Channel: SIP/00000-0000095f Variable: EYEPEA_AGENT_INTERFACE Value: Local/id-12@agentcallback Uniqueid: 1413823936.3729 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/00000-0000095f CommandId: 750822880 Command: SET VARIABLE "EYEPEA_AGENT_INTERFACE" "Local/id-12@agentcallback" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/00000-0000095f CommandId: 364341601 Command: VERBOSE "AGI handler 'get_agent_from_peer' successfully executed" 1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/00000-0000095f CommandId: 364341601 Command: VERBOSE "AGI handler 'get_agent_from_peer' successfully executed" 1 ResultCode: 200 Result: Success Event: VarSet Privilege: dialplan,all Channel: SIP/00000-0000095f Variable: AGISTATUS Value: SUCCESS Uniqueid: 1413823936.3729 Event: Newexten Privilege: dialplan,all Channel: SIP/00000-0000095f Context: default Extension: *12 Priority: 7 Application: GotoIf AppData: 0?error Uniqueid: 1413823936.3729 Event: Newexten Privilege: dialplan,all Channel: SIP/00000-0000095f Context: default Extension: *12 Priority: 8 Application: Verbose AppData: 3, "-= Peer name 00000 uses interface Local/id-12@agentcallback Uniqueid: 1413823936.3729 Event: VarSet Privilege: dialplan,all Channel: SIP/00000-0000095f Variable: DB_RESULT Value: true Uniqueid: 1413823936.3729 Event: Newexten Privilege: dialplan,all Channel: SIP/00000-0000095f Context: default Extension: *12 Priority: 9 Application: GotoIf AppData: 1?unpause:pause Uniqueid: 1413823936.3729 Event: Newexten Privilege: dialplan,all Channel: SIP/00000-0000095f Context: default Extension: *12 Priority: 14 Application: Verbose AppData: 3, "-= Unpausing agent Local/id-12@agentcallback =-" Uniqueid: 1413823936.3729 Event: Newexten Privilege: dialplan,all Channel: SIP/00000-0000095f Context: default Extension: *12 Priority: 15 Application: UnpauseQueueMember AppData: ,Local/id-12@agentcallback Uniqueid: 1413823936.3729 Event: QueueMemberPaused Privilege: agent,all Queue: maisonvoyance-tous Location: Local/id-12@agentcallback MemberName: Agent/999 Paused: 0 Event: VarSet Privilege: dialplan,all Channel: SIP/00000-0000095f Variable: UPQMSTATUS Value: UNPAUSED Uniqueid: 1413823936.3729 Event: Newexten Privilege: dialplan,all Channel: SIP/00000-0000095f Context: default Extension: *12 Priority: 16 Application: Set AppData: DB(pause_active/00000)=false Uniqueid: 1413823936.3729 Event: Newexten Privilege: dialplan,all Channel: SIP/00000-0000095f Context: default Extension: *12 Priority: 17 Application: Goto AppData: hangup Uniqueid: 1413823936.3729 Event: Newexten Privilege: dialplan,all Channel: SIP/00000-0000095f Context: default Extension: *12 Priority: 19 Application: Hangup AppData: 16 Uniqueid: 1413823936.3729 Event: SoftHangupRequest Privilege: call,all Channel: SIP/00000-0000095f Uniqueid: 1413823936.3729 Cause: 16 Event: VarSet Privilege: dialplan,all Channel: SIP/00000-0000095f Variable: RTPAUDIOQOS Value: ssrc=143534956;themssrc=0;lp=0;rxjitter=0.000000;rxcount=0;txjitter=0.000000;txcount=0;rlp=0;rtt=0.000000 Uniqueid: 1413823936.3729 Event: VarSet Privilege: dialplan,all Channel: SIP/00000-0000095f Variable: RTPAUDIOQOSJITTER Value: minrxjitter=0.000000;maxrxjitter=0.000000;avgrxjitter=0.000000;stdevrxjitter=0.000000;reported_minjitter=0.000000;reported_maxjitter=0.000000;reported_avgjitter=0.000000;reported_stdevjitter=0.000000; Uniqueid: 1413823936.3729 Event: VarSet Privilege: dialplan,all Channel: SIP/00000-0000095f Variable: RTPAUDIOQOSLOSS Value: minrxlost=0.000000;maxrxlost=0.000000;avgrxlost=0.000000;stdevrxlost=0.000000;reported_minlost=0.000000;reported_maxlost=0.000000;reported_avglost=0.000000;reported_stdevlost=0.000000; Uniqueid: 1413823936.3729 Event: VarSet Privilege: dialplan,all Channel: SIP/00000-0000095f Variable: RTPAUDIOQOSRTT Value: minrtt=0.000000;maxrtt=0.000000;avgrtt=0.000000;stdevrtt=0.000000; Uniqueid: 1413823936.3729 Event: VarSet Privilege: dialplan,all Channel: SIP/00000-0000095f Variable: RTPAUDIOQOS Value: ssrc=143534956;themssrc=0;lp=0;rxjitter=0.000000;rxcount=0;txjitter=0.000000;txcount=0;rlp=0;rtt=0.000000 Uniqueid: 1413823936.3729 Event: Hangup Privilege: call,all Channel: SIP/00000-0000095f Uniqueid: 1413823936.3729 CallerIDNum: 2001 CallerIDName: Ludovic Gasc ConnectedLineNum: ConnectedLineName: AccountCode: Cause: 16 Cause-txt: Normal Clearing Event: CEL Privilege: call,all EventName: HANGUP AccountCode: CallerIDnum: 2001 CallerIDname: Ludovic Gasc CallerIDani: 2001 CallerIDrdnis: CallerIDdnid: *12 Exten: *12 Context: default Channel: SIP/00000-0000095f Application: AppData: EventTime: 2014-10-20 18:52:16 AMAFlags: DOCUMENTATION UniqueID: 1413823936.3729 LinkedID: 1413823936.3729 Userfield: Peer: PeerAccount: Extra: 16,dialplan/builtin, Event: CEL Privilege: call,all EventName: CHAN_END AccountCode: CallerIDnum: 2001 CallerIDname: Ludovic Gasc CallerIDani: 2001 CallerIDrdnis: CallerIDdnid: *12 Exten: *12 Context: default Channel: SIP/00000-0000095f Application: AppData: EventTime: 2014-10-20 18:52:16 AMAFlags: DOCUMENTATION UniqueID: 1413823936.3729 LinkedID: 1413823936.3729 Userfield: Peer: PeerAccount: Extra: Event: CEL Privilege: call,all EventName: LINKEDID_END AccountCode: CallerIDnum: 2001 CallerIDname: Ludovic Gasc CallerIDani: 2001 CallerIDrdnis: CallerIDdnid: *12 Exten: *12 Context: default Channel: SIP/00000-0000095f Application: AppData: EventTime: 2014-10-20 18:52:16 AMAFlags: DOCUMENTATION UniqueID: 1413823936.3729 LinkedID: 1413823936.3729 Userfield: Peer: PeerAccount: Extra: Event: ExtensionStatus Privilege: call,all Exten: 2001 Context: default Hint: SIP/00000 Status: 0 Event: ExtensionStatus Privilege: call,all Exten: *6662 Context: default Hint: SIP/00000 Status: 0 Event: QueueMemberStatus Privilege: agent,all Queue: maisonvoyance-tous Location: Local/id-12@agentcallback MemberName: Agent/999 StateInterface: SIP/00000 Membership: dynamic Penalty: 0 CallsTaken: 0 LastCall: 0 Status: 1 Paused: 0 Skills: agent-12 Event: QueueMemberStatus Privilege: agent,all Queue: xxxxxxxxxxxx-tous Location: Local/id-12@agentcallback MemberName: Agent/999 StateInterface: SIP/00000 Membership: dynamic Penalty: 0 CallsTaken: 0 LastCall: 0 Status: 1 Paused: 0 Skills: agent-12 Event: Registry Privilege: system,all ChannelType: SIP Username: 92717277 Domain: xxxxxxxxx.xxx Status: Registered panoramisk-1.0/tests/fixtures/agent_loggued_in.yaml0000644000175000017500000006631012565072531023143 0ustar gawelgawel00000000000000 Action: Ping ActionID: b4856f7a-e61e-483b-84e6-12e7d26ea73d/1/22 Response: Success ActionID: b4856f7a-e61e-483b-84e6-12e7d26ea73d/1/22 Ping: Pong Timestamp: 1409169929.412068 Action: Ping ActionID: b4856f7a-e61e-483b-84e6-12e7d26ea73d/1/23 Response: Success ActionID: b4856f7a-e61e-483b-84e6-12e7d26ea73d/1/23 Ping: Pong Timestamp: 1409169939.419909 Action: Ping ActionID: b4856f7a-e61e-483b-84e6-12e7d26ea73d/1/24 Response: Success ActionID: b4856f7a-e61e-483b-84e6-12e7d26ea73d/1/24 Ping: Pong Timestamp: 1409169949.427993 Event: PeerStatus Privilege: system,all ChannelType: SIP Peer: SIP/hhhhh PeerStatus: Registered Address: 192.168.1.5:5060 Event: QueueMemberStatus Privilege: agent,all Queue: general_queue Location: Local/id-1@agentcallback MemberName: Agent/401 StateInterface: SIP/hhhhh Membership: dynamic Penalty: 0 CallsTaken: 0 LastCall: 0 Status: 1 Paused: 0 Skills: agent-1 Event: PeerStatus Privilege: system,all ChannelType: SIP Peer: SIP/999999 PeerStatus: Registered Address: 192.168.1.5:5060 Action: Ping ActionID: b4856f7a-e61e-483b-84e6-12e7d26ea73d/1/25 Response: Success ActionID: b4856f7a-e61e-483b-84e6-12e7d26ea73d/1/25 Ping: Pong Timestamp: 1409169959.432195 Action: Ping ActionID: b4856f7a-e61e-483b-84e6-12e7d26ea73d/1/26 Response: Success ActionID: b4856f7a-e61e-483b-84e6-12e7d26ea73d/1/26 Ping: Pong Timestamp: 1409169969.445850 Action: Ping ActionID: b4856f7a-e61e-483b-84e6-12e7d26ea73d/1/27 Response: Success ActionID: b4856f7a-e61e-483b-84e6-12e7d26ea73d/1/27 Ping: Pong Timestamp: 1409169979.455934 Event: Newchannel Privilege: call,all Channel: SIP/999999-00000002 ChannelState: 0 ChannelStateDesc: Down CallerIDNum: 202 CallerIDName: user 202 AccountCode: Exten: *30402 Context: default Uniqueid: 1409169987.2 Event: VarSet Privilege: dialplan,all Channel: SIP/999999-00000002 Variable: SIPURI Value: sip:999999@192.168.1.5:5060 Uniqueid: 1409169987.2 Event: VarSet Privilege: dialplan,all Channel: SIP/999999-00000002 Variable: SIPDOMAIN Value: 10.174.0.1 Uniqueid: 1409169987.2 Event: VarSet Privilege: dialplan,all Channel: SIP/999999-00000002 Variable: SIPCALLID Value: fa2d0521-75ad-43a9-8dd9-a99a0dae3d26 Uniqueid: 1409169987.2 Event: VarSet Privilege: dialplan,all Channel: SIP/999999-00000002 Variable: XIVO_USERID Value: 2 Uniqueid: 1409169987.2 Event: VarSet Privilege: dialplan,all Channel: SIP/999999-00000002 Variable: PICKUPMARK Value: 202%default Uniqueid: 1409169987.2 Event: VarSet Privilege: dialplan,all Channel: SIP/999999-00000002 Variable: TRANSFER_CONTEXT Value: default Uniqueid: 1409169987.2 Event: ChannelUpdate Privilege: system,all Channel: SIP/999999-00000002 Uniqueid: 1409169987.2 Channeltype: SIP SIPcallid: fa2d0521-75ad-43a9-8dd9-a99a0dae3d26 SIPfullcontact: sip:999999@192.168.1.5:5060 [218 bytes missing in capture file]Event: Newexten Privilege: dialplan,all Channel: SIP/999999-00000002 Context: default Extension: *30402 Priority: 1 Application: Set AppData: XIVO_BASE_CONTEXT=default Uniqueid: 1409169987.2 Event: VarSet Privilege: dialplan,all Channel: SIP/999999-00000002 Variable: XIVO_BASE_CONTEXT Value: default Uniqueid: 1409169987.2 Event: Newexten Privilege: dialplan,all Channel: SIP/999999-00000002 Context: default Extension: *30402 Priority: 2 Application: Set AppData: XIVO_BASE_EXTEN=*30402 Uniqueid: 1409169987.2 Event: VarSet Privilege: dialplan,all Channel: SIP/999999-00000002 Variable: XIVO_BASE_EXTEN Value: *30402 Uniqueid: 1409169987.2 Event: Newexten Privilege: dialplan,all Channel: SIP/999999-00000002 Context: default Extension: *30402 Priority: 3 Application: Gosub AppData: agentstaticlogtoggle,s,1(402) Uniqueid: 1409169987.2 Event: VarSet Privilege: dialplan,all Channel: SIP/999999-00000002 Variable: LOCAL(ARG1) Value: 402 Uniqueid: 1409169987.2 Event: VarSet Privilege: dialplan,all Channel: SIP/999999-00000002 Variable: LOCAL(ARGC) Value: 1 Uniqueid: 1409169987.2 Event: Newexten Privilege: dialplan,all Channel: SIP/999999-00000002 Context: agentstaticlogtoggle Extension: s Priority: 1 Application: NoOp AppData: Uniqueid: 1409169987.2 Event: CEL Privilege: call,all EventName: CHAN_START AccountCode: CallerIDnum: 202 CallerIDname: user 202 CallerIDani: CallerIDrdnis: CallerIDdnid: Exten: *30402 Context: default Channel: SIP/999999-00000002 Application: AppData: EventTime: 2014-08-27 21:06:27 AMAFlags: DOCUMENTATION UniqueID: 1409169987.2 LinkedID: 1409169987.2 Userfield: Peer: PeerAccount: Extra: Event: ExtensionStatus Privilege: call,all Exten: 202 Context: default Hint: SIP/999999 Status: 1 Event: ExtensionStatus Privilege: call,all Exten: *6662 Context: default Hint: SIP/999999 Status: 1 Event: Newexten Privilege: dialplan,all Channel: SIP/999999-00000002 Context: xivo-pickup Extension: pickup Priority: 3 Application: Wait AppData: 1 Uniqueid: 1409169987.2 Event: CEL Privilege: call,all EventName: ANSWER AccountCode: CallerIDnum: 202 CallerIDname: user 202 CallerIDani: 202 CallerIDrdnis: CallerIDdnid: *30402 Exten: pickup Context: xivo-pickup Channel: SIP/999999-00000002 Application: Answer AppData: EventTime: 2014-08-27 21:06:27 AMAFlags: DOCUMENTATION UniqueID: 1409169987.2 LinkedID: 1409169987.2 Userfield: Peer: PeerAccount: Extra: Event: Newexten Privilege: dialplan,all Channel: SIP/999999-00000002 Context: xivo-pickup Extension: pickup Priority: 4 Application: Set AppData: XIVO_PICKEDUP=1 Uniqueid: 1409169987.2 Event: VarSet Privilege: dialplan,all Channel: SIP/999999-00000002 Variable: XIVO_PICKEDUP Value: 1 Uniqueid: 1409169987.2 Event: Newexten Privilege: dialplan,all Channel: SIP/999999-00000002 Context: xivo-pickup Extension: pickup Priority: 5 Application: Return AppData: Uniqueid: 1409169987.2 Event: VarSet Privilege: dialplan,all Channel: SIP/999999-00000002 Variable: GOSUB_RETVAL Value: Uniqueid: 1409169987.2 Event: Newexten Privilege: dialplan,all Channel: SIP/999999-00000002 Context: agentstaticlogtoggle Extension: s Priority: 4 Application: AGI AppData: agi://127.0.0.1/agent_get_options,402 Uniqueid: 1409169987.2 Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/999999-00000002 CommandId: 1866797246 Command: SET VARIABLE "XIVO_AGENTEXISTS" "0" Event: VarSet Privilege: dialplan,all Channel: SIP/999999-00000002 Variable: XIVO_AGENTEXISTS Value: 0 Uniqueid: 1409169987.2 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/999999-00000002 CommandId: 1866797246 Command: SET VARIABLE "XIVO_AGENTEXISTS" "0" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/999999-00000002 CommandId: 928872635 Command: SET VARIABLE "XIVO_AGENTEXISTS" "1" Event: VarSet Privilege: dialplan,all Channel: SIP/999999-00000002 Variable: XIVO_AGENTEXISTS Value: 1 Uniqueid: 1409169987.2 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/999999-00000002 CommandId: 928872635 Command: SET VARIABLE "XIVO_AGENTEXISTS" "1" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/999999-00000002 CommandId: 471755444 Command: SET VARIABLE "XIVO_AGENTPASSWD" "" Event: VarSet Privilege: dialplan,all Channel: SIP/999999-00000002 Variable: XIVO_AGENTPASSWD Value: Uniqueid: 1409169987.2 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/999999-00000002 CommandId: 471755444 Command: SET VARIABLE "XIVO_AGENTPASSWD" "" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/999999-00000002 CommandId: 943373659 Command: SET VARIABLE "XIVO_AGENTID" "3" Event: VarSet Privilege: dialplan,all Channel: SIP/999999-00000002 Variable: XIVO_AGENTID Value: 3 Uniqueid: 1409169987.2 [1613 bytes missing in capture file]Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/999999-00000002 CommandId: 1220663899 Command: SET VARIABLE "XIVO_AGENT_LOGIN_STATUS" "logged_out" Event: VarSet Privilege: dialplan,all Channel: SIP/999999-00000002 Variable: XIVO_AGENT_LOGIN_STATUS Value: logged_out Uniqueid: 1409169987.2 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/999999-00000002 CommandId: 1220663899 Command: SET VARIABLE "XIVO_AGENT_LOGIN_STATUS" "logged_out" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/999999-00000002 CommandId: 1760817301 Command: VERBOSE "AGI handler 'agent_get_status' successfully executed" 1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/999999-00000002 CommandId: 1760817301 Command: VERBOSE "AGI handler 'agent_get_status' successfully executed" 1 ResultCode: 200 Result: Success Event: VarSet Privilege: dialplan,all Channel: SIP/999999-00000002 Variable: AGISTATUS Value: SUCCESS Uniqueid: 1409169987.2 Event: Newexten Privilege: dialplan,all Channel: SIP/999999-00000002 Context: agentstaticlogtoggle Extension: s Priority: 7 Application: Goto AppData: login_status_logged_out,1 Uniqueid: 1409169987.2 Event: Newexten Privilege: dialplan,all Channel: SIP/999999-00000002 Context: agentstaticlogtoggle Extension: login_status_logged_out Priority: 1 Application: NoOp AppData: Uniqueid: 1409169987.2 Event: Newexten Privilege: dialplan,all Channel: SIP/999999-00000002 Context: agentstaticlogtoggle Extension: login_status_logged_out Priority: 2 Application: Gosub AppData: agentstaticlogin,s,1(402) Uniqueid: 1409169987.2 Event: VarSet Privilege: dialplan,all Channel: SIP/999999-00000002 Variable: LOCAL(ARG1) Value: 402 Uniqueid: 1409169987.2 Event: VarSet Privilege: dialplan,all Channel: SIP/999999-00000002 Variable: LOCAL(ARGC) Value: 1 Uniqueid: 1409169987.2 Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/999999-00000002 CommandId: 1403387703 Command: SET VARIABLE "XIVO_AGENTEXISTS" "0" Event: VarSet Privilege: dialplan,all Channel: SIP/999999-00000002 Variable: XIVO_AGENTEXISTS Value: 0 Uniqueid: 1409169987.2 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/999999-00000002 CommandId: 1403387703 Command: SET VARIABLE "XIVO_AGENTEXISTS" "0" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/999999-00000002 CommandId: 1033098297 Command: SET VARIABLE "XIVO_AGENTEXISTS" "1" Event: VarSet Privilege: dialplan,all Channel: SIP/999999-00000002 Variable: XIVO_AGENTEXISTS Value: 1 Uniqueid: 1409169987.2 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/999999-00000002 CommandId: 1033098297 Command: SET VARIABLE "XIVO_AGENTEXISTS" "1" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/999999-00000002 CommandId: 1343196088 Command: SET VARIABLE "XIVO_AGENTPASSWD" "" Event: VarSet Privilege: dialplan,all Channel: SIP/999999-00000002 Variable: XIVO_AGENTPASSWD Value: Uniqueid: 1409169987.2 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/999999-00000002 CommandId: 1343196088 Command: SET VARIABLE "XIVO_AGENTPASSWD" "" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/999999-00000002 CommandId: 897606607 Command: SET VARIABLE "XIVO_AGENTID" "3" Event: VarSet Privilege: dialplan,all Channel: SIP/999999-00000002 Variable: XIVO_AGENTID Value: 3 Uniqueid: 1409169987.2 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/999999-00000002 CommandId: 897606607 Command: SET VARIABLE "XIVO_AGENTID" "3" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/999999-00000002 CommandId: 830831622 Command: SET VARIABLE "XIVO_AGENTNUM" "402" Event: VarSet Privilege: dialplan,all Channel: SIP/999999-00000002 Variable: XIVO_AGENTNUM Value: 402 Uniqueid: 1409169987.2 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/999999-00000002 CommandId: 830831622 Command: SET VARIABLE "XIVO_AGENTNUM" "402" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/999999-00000002 CommandId: 1329768506 Command: VERBOSE "AGI handler 'agent_get_options' successfully executed" 1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/999999-00000002 CommandId: 1329768506 Command: VERBOSE "AGI handler 'agent_get_options' successfully executed" 1 ResultCode: 200 Result: Success Event: VarSet Privilege: dialplan,all Channel: SIP/999999-00000002 Variable: AGISTATUS Value: SUCCESS Uniqueid: 1409169987.2 Event: Newexten Privilege: dialplan,all Channel: SIP/999999-00000002 Context: agentstaticlogin Extension: s Priority: 7 Application: GotoIf AppData: 0?error_no_such_agent,1 Uniqueid: 1409169987.2 Event: Newexten Privilege: dialplan,all Channel: SIP/999999-00000002 Context: agentstaticlogin Extension: s Priority: 8 Application: GosubIf AppData: 0?authenticate,1 Uniqueid: 1409169987.2 Event: Newexten Privilege: dialplan,all Channel: SIP/999999-00000002 Context: agentstaticlogin Extension: s Priority: 9 Application: AGI AppData: agi://127.0.0.1/agent_login,3,202,default Uniqueid: 1409169987.2 Action: Ping ActionID: b4856f7a-e61e-483b-84e6-12e7d26ea73d/1/28 Response: Success ActionID: b4856f7a-e61e-483b-84e6-12e7d26ea73d/1/28 Ping: Pong Timestamp: 1409169989.456835 Event: QueueMemberAdded Privilege: agent,all Queue: general_queue Location: Local/id-3@agentcallback MemberName: Agent/402 StateInterface: SIP/999999 Membership: dynamic Penalty: 0 CallsTaken: 0 LastCall: 0 Status: 2 Paused: 0 Event: UserEvent Privilege: user,all UserEvent: AgentLogin Action: UserEvent ActionID: 2 AgentID: 3 AgentNumber: 402 Extension: 202 Context: default Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/999999-00000002 CommandId: 1580723124 Command: SET VARIABLE "XIVO_AGENTSTATUS" "logged" Event: VarSet Privilege: dialplan,all Channel: SIP/999999-00000002 Variable: XIVO_AGENTSTATUS Value: logged Uniqueid: 1409169987.2 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/999999-00000002 CommandId: 1580723124 Command: SET VARIABLE "XIVO_AGENTSTATUS" "logged" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/999999-00000002 CommandId: 574066156 Command: VERBOSE "AGI handler 'agent_login' successfully executed" 1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/999999-00000002 CommandId: 574066156 Command: VERBOSE "AGI handler 'agent_login' successfully executed" 1 ResultCode: 200 Result: Success Event: VarSet Privilege: dialplan,all Channel: SIP/999999-00000002 Variable: AGISTATUS Value: SUCCESS Uniqueid: 1409169987.2 Event: Newexten Privilege: dialplan,all Channel: SIP/999999-00000002 Context: agentstaticlogin Extension: s Priority: 10 Application: Goto AppData: status_logged,1 Uniqueid: 1409169987.2 Event: Newexten Privilege: dialplan,all Channel: SIP/999999-00000002 Context: agentstaticlogin Extension: status_logged Priority: 1 Application: NoOp AppData: Uniqueid: 1409169987.2 Event: Newexten Privilege: dialplan,all Channel: SIP/999999-00000002 Context: agentstaticlogin Extension: status_logged Priority: 2 Application: Playback AppData: agent-loginok Uniqueid: 1409169987.2 Event: RTCPReceived Privilege: reporting,all From: 192.168.1.5:60377 PT: 201(Receiver Report) ReceptionReports: 1 SenderSSRC: 2314535167 FractionLost: 255 PacketsLost: 62857 HighestSequence: 62911 SequenceNumberCycles: 0 IAJitter: 154953728 LastSR: 0.0000000000 DLSR: 0.0000(sec) Event: VarSet Privilege: dialplan,all Channel: SIP/999999-00000002 Variable: PLAYBACKSTATUS Value: SUCCESS Uniqueid: 1409169987.2 Event: Newexten Privilege: dialplan,all Channel: SIP/999999-00000002 Context: agentstaticlogin Extension: status_logged Priority: 3 Application: AGI AppData: agi://127.0.0.1/phone_progfunckey_devstate,agentstaticlogin,INUSE,*3 Uniqueid: 1409169987.2 Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/999999-00000002 CommandId: 404007469 Command: GET VARIABLE "XIVO_USERID" Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/999999-00000002 CommandId: 404007469 Command: GET VARIABLE "XIVO_USERID" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/999999-00000002 CommandId: 469538082 Command: SET VARIABLE "DEVICE_STATE(Custom:*7352***231***33)" "INUSE" Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/999999-00000002 CommandId: 469538082 Command: SET VARIABLE "DEVICE_STATE(Custom:*7352***231***33)" "INUSE" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/999999-00000002 CommandId: 1817837906 Command: VERBOSE "AGI handler 'phone_progfunckey_devstate' successfully executed" 1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/999999-00000002 CommandId: 1817837906 Command: VERBOSE "AGI handler 'phone_progfunckey_devstate' successfully executed" 1 ResultCode: 200 Result: Success Event: VarSet Privilege: dialplan,all Channel: SIP/999999-00000002 Variable: AGISTATUS Value: SUCCESS Uniqueid: 1409169987.2 Event: Newexten Privilege: dialplan,all Channel: SIP/999999-00000002 Context: agentstaticlogin Extension: status_logged Priority: 4 Application: AGI AppData: agi://127.0.0.1/phone_progfunckey_devstate,agentstaticlogin,INUSE,402 Uniqueid: 1409169987.2 Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/999999-00000002 CommandId: 1638740008 Command: GET VARIABLE "XIVO_USERID" Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/999999-00000002 CommandId: 1638740008 Command: GET VARIABLE "XIVO_USERID" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/999999-00000002 CommandId: 513441949 Command: SET VARIABLE "DEVICE_STATE(Custom:*7352***231*402)" "INUSE" Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/999999-00000002 CommandId: 513441949 Command: SET VARIABLE "DEVICE_STATE(Custom:*7352***231*402)" "INUSE" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/999999-00000002 CommandId: 1638230248 Command: VERBOSE "AGI handler 'phone_progfunckey_devstate' successfully executed" 1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/999999-00000002 CommandId: 1638230248 Command: VERBOSE "AGI handler 'phone_progfunckey_devstate' successfully executed" 1 ResultCode: 200 Result: Success Event: VarSet Privilege: dialplan,all Channel: SIP/999999-00000002 Variable: AGISTATUS Value: SUCCESS Uniqueid: 1409169987.2 Event: Newexten Privilege: dialplan,all Channel: SIP/999999-00000002 Context: agentstaticlogin Extension: status_logged Priority: 5 Application: AGI AppData: agi://127.0.0.1/phone_progfunckey_devstate,agentstaticlogoff,NOT_INUSE,*3 Uniqueid: 1409169987.2 Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/999999-00000002 CommandId: 2095413575 Command: GET VARIABLE "XIVO_USERID" Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/999999-00000002 CommandId: 2095413575 Command: GET VARIABLE "XIVO_USERID" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/999999-00000002 CommandId: 940331895 Command: SET VARIABLE "DEVICE_STATE(Custom:*7352***232***33)" "NOT_INUSE" Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/999999-00000002 CommandId: 940331895 Command: SET VARIABLE "DEVICE_STATE(Custom:*7352***232***33)" "NOT_INUSE" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/999999-00000002 CommandId: 1759701864 Command: VERBOSE "AGI handler 'phone_progfunckey_devstate' successfully executed" 1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/999999-00000002 CommandId: 1759701864 Command: VERBOSE "AGI handler 'phone_progfunckey_devstate' successfully executed" 1 ResultCode: 200 Result: Success Event: VarSet Privilege: dialplan,all Channel: SIP/999999-00000002 Variable: AGISTATUS Value: SUCCESS Uniqueid: 1409169987.2 Event: Newexten Privilege: dialplan,all Channel: SIP/999999-00000002 Context: agentstaticlogin Extension: status_logged Priority: 6 Application: AGI AppData: agi://127.0.0.1/phone_progfunckey_devstate,agentstaticlogoff,NOT_INUSE,402 Uniqueid: 1409169987.2 Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/999999-00000002 CommandId: 268900170 Command: GET VARIABLE "XIVO_USERID" Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/999999-00000002 CommandId: 268900170 Command: GET VARIABLE "XIVO_USERID" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/999999-00000002 CommandId: 364145573 Command: SET VARIABLE "DEVICE_STATE(Custom:*7352***232*402)" "NOT_INUSE" Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/999999-00000002 CommandId: 364145573 Command: SET VARIABLE "DEVICE_STATE(Custom:*7352***232*402)" "NOT_INUSE" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/999999-00000002 CommandId: 449661018 Command: VERBOSE "AGI handler 'phone_progfunckey_devstate' successfully executed" 1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/999999-00000002 CommandId: 449661018 Command: VERBOSE "AGI handler 'phone_progfunckey_devstate' successfully executed" 1 ResultCode: 200 Result: Success Event: VarSet Privilege: dialplan,all Channel: SIP/999999-00000002 Variable: AGISTATUS Value: SUCCESS Uniqueid: 1409169987.2 Event: Newexten Privilege: dialplan,all Channel: SIP/999999-00000002 Context: agentstaticlogin Extension: status_logged Priority: 7 Application: AGI AppData: agi://127.0.0.1/phone_progfunckey_devstate,agentstaticlogtoggle,INUSE,*3 Uniqueid: 1409169987.2 Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/999999-00000002 CommandId: 1650004488 Command: GET VARIABLE "XIVO_USERID" Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/999999-00000002 CommandId: 1650004488 Command: GET VARIABLE "XIVO_USERID" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/999999-00000002 CommandId: 1560610405 Command: SET VARIABLE "DEVICE_STATE(Custom:*7352***230***33)" "INUSE" Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/999999-00000002 CommandId: 1560610405 Command: SET VARIABLE "DEVICE_STATE(Custom:*7352***230***33)" "INUSE" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/999999-00000002 CommandId: 1767493288 Command: VERBOSE "AGI handler 'phone_progfunckey_devstate' successfully executed" 1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/999999-00000002 CommandId: 1767493288 Command: VERBOSE "AGI handler 'phone_progfunckey_devstate' successfully executed" 1 ResultCode: 200 Result: Success Event: VarSet Privilege: dialplan,all Channel: SIP/999999-00000002 Variable: AGISTATUS Value: SUCCESS Uniqueid: 1409169987.2 Event: Newexten Privilege: dialplan,all Channel: SIP/999999-00000002 Context: agentstaticlogin Extension: status_logged Priority: 8 Application: AGI AppData: agi://127.0.0.1/phone_progfunckey_devstate,agentstaticlogtoggle,INUSE,402 Uniqueid: 1409169987.2 Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/999999-00000002 CommandId: 850973468 Command: GET VARIABLE "XIVO_USERID" Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/999999-00000002 CommandId: 850973468 Command: GET VARIABLE "XIVO_USERID" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/999999-00000002 CommandId: 1978695696 Command: SET VARIABLE "DEVICE_STATE(Custom:*7352***230*402)" "INUSE" Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/999999-00000002 CommandId: 1978695696 Command: SET VARIABLE "DEVICE_STATE(Custom:*7352***230*402)" "INUSE" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/999999-00000002 CommandId: 1831807943 Command: VERBOSE "AGI handler 'phone_progfunckey_devstate' successfully executed" 1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/999999-00000002 CommandId: 1831807943 Command: VERBOSE "AGI handler 'phone_progfunckey_devstate' successfully executed" 1 ResultCode: 200 Result: Success Event: VarSet Privilege: dialplan,all Channel: SIP/999999-00000002 Variable: AGISTATUS Value: SUCCESS Uniqueid: 1409169987.2 Event: Newexten Privilege: dialplan,all Channel: SIP/999999-00000002 Context: agentstaticlogin Extension: status_logged Priority: 9 Application: Hangup AppData: Uniqueid: 1409169987.2 Event: SoftHangupRequest Privilege: call,all Channel: SIP/999999-00000002 Uniqueid: 1409169987.2 Cause: 16 Event: VarSet Privilege: dialplan,all Channel: SIP/999999-00000002 Variable: RTPAUDIOQOS Value: ssrc=2057792214;themssrc=1743037615;lp=0;rxjitter=2364.000000;rxcount=229;txjitter=0.019554;txcount=68;rlp=62857;rtt=0.000000 Uniqueid: 1409169987.2 Event: VarSet Privilege: dialplan,all Channel: SIP/999999-00000002 Variable: RTPAUDIOQOSJITTER Value: minrxjitter=0.000000;maxrxjitter=0.000000;avgrxjitter=0.000000;stdevrxjitter=0.000000;reported_minjitter=0.000000;reported_maxjitter=0.000000;reported_avgjitter=0.000000;reported_stdevjitter=0.000000; Uniqueid: 1409169987.2 Event: VarSet Privilege: dialplan,all Channel: SIP/999999-00000002 Variable: RTPAUDIOQOSLOSS Value: minrxlost=0.000000;maxrxlost=0.000000;avgrxlost=0.000000;stdevrxlost=0.000000;reported_minlost=0.000000;reported_maxlost=0.000000;reported_avglost=0.000000;reported_stdevlost=0.000000; Uniqueid: 1409169987.2 Event: VarSet Privilege: dialplan,all Channel: SIP/999999-00000002 Variable: RTPAUDIOQOSRTT Value: minrtt=0.000000;maxrtt=0.000000;avgrtt=0.000000;stdevrtt=0.000000; Uniqueid: 1409169987.2 Event: VarSet Privilege: dialplan,all Channel: SIP/999999-00000002 Variable: RTPAUDIOQOS Value: ssrc=2057792214;themssrc=1743037615;lp=0;rxjitter=2364.000000;rxcount=229;txjitter=0.019554;txcount=68;rlp=62857;rtt=0.000000 Uniqueid: 1409169987.2 Event: CEL Privilege: call,all EventName: HANGUP AccountCode: CallerIDnum: 202 CallerIDname: user 202 CallerIDani: 202 CallerIDrdnis: CallerIDdnid: *30402 Exten: status_logged Context: agentstaticlogin Channel: SIP/999999-00000002 Application: AppData: EventTime: 2014-08-27 21:06:32 AMAFlags: DOCUMENTATION UniqueID: 1409169987.2 LinkedID: 1409169987.2 Userfield: Peer: PeerAccount: Extra: 16,dialplan/builtin, Event: QueueMemberStatus Privilege: agent,all Queue: general_queue Location: Local/id-3@agentcallback MemberName: Agent/402 StateInterface: SIP/999999 Membership: dynamic Penalty: 0 CallsTaken: 0 LastCall: 0 Status: 1 Paused: 0 Skills: agent-3 Event: ExtensionStatus Privilege: call,all Exten: 202 Context: default Hint: SIP/999999 Status: 0 Event: ExtensionStatus Privilege: call,all Exten: *6662 Context: default Hint: SIP/999999 Status: 0 Event: CEL Privilege: call,all EventName: CHAN_END AccountCode: CallerIDnum: 202 CallerIDname: user 202 CallerIDani: 202 CallerIDrdnis: CallerIDdnid: *30402 Exten: status_logged Context: agentstaticlogin Channel: SIP/999999-00000002 Application: AppData: EventTime: 2014-08-27 21:06:32 AMAFlags: DOCUMENTATION UniqueID: 1409169987.2 LinkedID: 1409169987.2 Userfield: Peer: PeerAccount: Extra: Event: CEL Privilege: call,all EventName: LINKEDID_END AccountCode: CallerIDnum: 202 CallerIDname: user 202 CallerIDani: 202 CallerIDrdnis: CallerIDdnid: *30402 Exten: status_logged Context: agentstaticlogin Channel: SIP/999999-00000002 Application: AppData: EventTime: 2014-08-27 21:06:32 AMAFlags: DOCUMENTATION UniqueID: 1409169987.2 LinkedID: 1409169987.2 Userfield: Peer: PeerAccount: Extra: Event: QueueMemberStatus Privilege: agent,all Queue: general_queue Location: Local/id-3@agentcallback MemberName: Agent/402 StateInterface: SIP/999999 Membership: dynamic Penalty: 0 CallsTaken: 0 LastCall: 0 Status: 1 Paused: 0 Skills: agent-3 Action: Ping ActionID: b4856f7a-e61e-483b-84e6-12e7d26ea73d/1/29 Response: Success ActionID: b4856f7a-e61e-483b-84e6-12e7d26ea73d/1/29 Ping: Pong Timestamp: 1409169999.470280 panoramisk-1.0/tests/fixtures/command_core_show_version.yaml0000644000175000017500000000047112565072531025100 0ustar gawelgawel00000000000000action: command command: core show version actionid: action/transaction_uid/1/1 Response: Follows Privilege: Command ActionID: action/transaction_uid/1/1 Asterisk 11.11.0+xivo.14.15~20140724.155259.ed5592b-wheezy built by root @ wheezy-farm on a x86_64 running Linux on 2014-08-06 19:30:37 UTC --END COMMAND-- panoramisk-1.0/tests/fixtures/originate_with_events.yaml0000644000175000017500000037356212565072531024263 0ustar gawelgawel00000000000000Action: Originate ActionID: generated_action_id Channel: Local/259 Exten: 254 Context: default Priority: 1 Timeout: 30000 CallerID: Panoramisk tests Async: false Response: Success ActionID: generated_action_id Message: Originate successfully queued Event: Newchannel Privilege: call,all Channel: Local/259@default-00000000;1 ChannelState: 0 ChannelStateDesc: Down CallerIDNum: CallerIDName: AccountCode: Exten: 259 Context: default Uniqueid: 1414510600.0 Event: Newchannel Privilege: call,all Channel: Local/259@default-00000000;2 ChannelState: 4 ChannelStateDesc: Ring CallerIDNum: CallerIDName: AccountCode: Exten: 259 Context: default Uniqueid: 1414510600.1 Event: NewAccountCode Privilege: call,all Channel: Local/259@default-00000000;1 Uniqueid: 1414510600.0 AccountCode: OldAccountCode: Event: NewCallerid Privilege: call,all Channel: Local/259@default-00000000;1 CallerIDNum: CallerIDName: Panoramisk tests Uniqueid: 1414510600.0 CID-CallingPres: 0 (Presentation Allowed, Not Screened) Event: LocalBridge Privilege: call,all Channel1: Local/259@default-00000000;1 Channel2: Local/259@default-00000000;2 Uniqueid1: 1414510600.0 Uniqueid2: 1414510600.1 Context: default Exten: 259 LocalOptimization: Yes Event: CEL Privilege: call,all EventName: CHAN_START AccountCode: CallerIDnum: CallerIDname: CallerIDani: CallerIDrdnis: CallerIDdnid: Exten: 259 Context: default Channel: Local/259@default-00000000;1 Application: AppData: EventTime: 2014-10-28 16:36:40 AMAFlags: DOCUMENTATION UniqueID: 1414510600.0 LinkedID: 1414510600.0 Userfield: Peer: PeerAccount: Extra: Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: default Extension: 259 Priority: 1 Application: Set AppData: XIVO_BASE_CONTEXT=default Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_BASE_CONTEXT Value: default Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: default Extension: 259 Priority: 2 Application: Set AppData: XIVO_BASE_EXTEN=259 Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_BASE_EXTEN Value: 259 Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: default Extension: 259 Priority: 3 Application: Gosub AppData: user,s,1(148,) Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: LOCAL(ARG1) Value: 148 Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: LOCAL(ARG2) Value: Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: LOCAL(ARGC) Value: 2 Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: user Extension: s Priority: 1 Application: Set AppData: XIVO_DSTID=148 Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_DSTID Value: 148 Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: user Extension: s Priority: 2 Application: Set AppData: XIVO_PRESUBR_GLOBAL_NAME=USER Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_PRESUBR_GLOBAL_NAME Value: USER Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: user Extension: s Priority: 3 Application: Set AppData: CC_EXTEN=259 Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: CC_EXTEN Value: 259 Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: user Extension: s Priority: 4 Application: Set AppData: CC_CONTEXT=default Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: CC_CONTEXT Value: default Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: user Extension: s Priority: 5 Application: Set AppData: XIVO_SRCNUM= Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_SRCNUM Value: Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: user Extension: s Priority: 6 Application: Set AppData: XIVO_DSTNUM=259 Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_DSTNUM Value: 259 Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: user Extension: s Priority: 7 Application: Set AppData: XIVO_CONTEXT=default Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_CONTEXT Value: default Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: user Extension: s Priority: 8 Application: Set AppData: __XIVO_CALLORIGIN=intern Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: __XIVO_CALLORIGIN Value: intern Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: user Extension: s Priority: 9 Application: Set AppData: __XIVO_FWD_REFERER=user:148 Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: __XIVO_FWD_REFERER Value: user:148 Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: user Extension: s Priority: 10 Application: UserEvent AppData: User,CHANNEL: Local/259@default-00000000;2,XIVO_USERID: ,XIVO_SRCNUM: ,XIVO_CALLORIGIN: intern,XIVO_DSTID: 148 Uniqueid: 1414510600.1 Event: UserEvent Privilege: user,all UserEvent: User Uniqueid: 1414510600.1 CHANNEL: Local/259@default-00000000;2 XIVO_USERID: XIVO_SRCNUM: XIVO_CALLORIGIN: intern XIVO_DSTID: 148 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: user Extension: s Priority: 11 Application: GotoIf AppData: ?:noblindxfer Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: user Extension: s Priority: 13 Application: Set AppData: XIVO_FWD_REFERER_TYPE=user Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_FWD_REFERER_TYPE Value: user Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: user Extension: s Priority: 14 Application: Set AppData: XIVO_REAL_FROMGROUP=0 Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_REAL_FROMGROUP Value: 0 Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: user Extension: s Priority: 15 Application: Set AppData: XIVO_REAL_FROMQUEUE=0 Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_REAL_FROMQUEUE Value: 0 Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: user Extension: s Priority: 16 Application: AGI AppData: agi://127.0.0.1/incoming_user_set_features Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 1294682027 Command: GET VARIABLE "XIVO_USERID" Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 1294682027 Command: GET VARIABLE "XIVO_USERID" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 1770412716 Command: GET VARIABLE "XIVO_DSTID" Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 1770412716 Command: GET VARIABLE "XIVO_DSTID" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 1141222454 Command: GET VARIABLE "XIVO_CALLORIGIN" Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 1141222454 Command: GET VARIABLE "XIVO_CALLORIGIN" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 1039650251 Command: GET VARIABLE "XIVO_SRCNUM" Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 1039650251 Command: GET VARIABLE "XIVO_SRCNUM" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 1141089268 Command: GET VARIABLE "XIVO_DSTNUM" Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 1141089268 Command: GET VARIABLE "XIVO_DSTNUM" ResultCode: 200 Result: Success Event: CEL Privilege: call,all EventName: CHAN_START AccountCode: CallerIDnum: CallerIDname: CallerIDani: CallerIDrdnis: CallerIDdnid: Exten: 259 Context: default Channel: Local/259@default-00000000;2 Application: AppData: EventTime: 2014-10-28 16:36:40 AMAFlags: DOCUMENTATION UniqueID: 1414510600.1 LinkedID: 1414510600.0 Userfield: Peer: PeerAccount: Extra: Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 209411487 Command: SET VARIABLE "XIVO_DST_USERNUM" "259" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_DST_USERNUM Value: 259 Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 209411487 Command: SET VARIABLE "XIVO_DST_USERNUM" "259" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 1957362105 Command: SET VARIABLE "XIVO_DST_FIRSTNAME" "S" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_DST_FIRSTNAME Value: S Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 1957362105 Command: SET VARIABLE "XIVO_DST_FIRSTNAME" "S" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 1553996913 Command: SET VARIABLE "XIVO_DST_LASTNAME" "F" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_DST_LASTNAME Value: F Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 1553996913 Command: SET VARIABLE "XIVO_DST_LASTNAME" "F" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 2009178668 Command: SET VARIABLE "XIVO_DST_REDIRECTING_NAME" "S F" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_DST_REDIRECTING_NAME Value: S F Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 2009178668 Command: SET VARIABLE "XIVO_DST_REDIRECTING_NAME" "S F" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 2123325799 Command: SET VARIABLE "XIVO_DST_REDIRECTING_NUM" "259" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_DST_REDIRECTING_NUM Value: 259 Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 2123325799 Command: SET VARIABLE "XIVO_DST_REDIRECTING_NUM" "259" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 488565503 Command: SET VARIABLE "XIVO_INTERFACE" "SIP/ddddd" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_INTERFACE Value: SIP/ddddd Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 488565503 Command: SET VARIABLE "XIVO_INTERFACE" "SIP/ddddd" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 708553069 Command: SET VARIABLE "XIVO_CALLOPTIONS" "hHt" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_CALLOPTIONS Value: hHt Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 708553069 Command: SET VARIABLE "XIVO_CALLOPTIONS" "hHt" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 605519885 Command: SET VARIABLE "XIVO_SIMULTCALLS" "5" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_SIMULTCALLS Value: 5 Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 605519885 Command: SET VARIABLE "XIVO_SIMULTCALLS" "5" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 347280486 Command: SET VARIABLE "XIVO_RINGSECONDS" "30" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_RINGSECONDS Value: 30 Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 347280486 Command: SET VARIABLE "XIVO_RINGSECONDS" "30" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 290639273 Command: SET VARIABLE "XIVO_ENABLEDND" "0" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_ENABLEDND Value: 0 Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 290639273 Command: SET VARIABLE "XIVO_ENABLEDND" "0" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 2047330487 Command: SET VARIABLE "XIVO_ENABLEVOICEMAIL" "0" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_ENABLEVOICEMAIL Value: 0 Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 2047330487 Command: SET VARIABLE "XIVO_ENABLEVOICEMAIL" "0" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 569396204 Command: SET VARIABLE "XIVO_MAILBOX" "" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_MAILBOX Value: Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 569396204 Command: SET VARIABLE "XIVO_MAILBOX" "" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 1662112503 Command: SET VARIABLE "XIVO_MAILBOX_CONTEXT" "" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_MAILBOX_CONTEXT Value: Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 1662112503 Command: SET VARIABLE "XIVO_MAILBOX_CONTEXT" "" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 498094479 Command: SET VARIABLE "XIVO_USEREMAIL" "" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_USEREMAIL Value: Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 498094479 Command: SET VARIABLE "XIVO_USEREMAIL" "" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 2085353353 Command: SET VARIABLE "XIVO_ENABLEUNC" "0" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_ENABLEUNC Value: 0 Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 2085353353 Command: SET VARIABLE "XIVO_ENABLEUNC" "0" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 969443263 Command: SET VARIABLE "XIVO_FWD_USER_UNC_ACTION" "none" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_FWD_USER_UNC_ACTION Value: none Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 969443263 Command: SET VARIABLE "XIVO_FWD_USER_UNC_ACTION" "none" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 714502157 Command: SET VARIABLE "XIVO_FWD_USER_UNC_ACTIONARG1" "" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_FWD_USER_UNC_ACTIONARG1 Value: Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 714502157 Command: SET VARIABLE "XIVO_FWD_USER_UNC_ACTIONARG1" "" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 328446718 Command: SET VARIABLE "XIVO_FWD_USER_UNC_ACTIONARG2" "" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_FWD_USER_UNC_ACTIONARG2 Value: Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 328446718 Command: SET VARIABLE "XIVO_FWD_USER_UNC_ACTIONARG2" "" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 408178965 Command: SET VARIABLE "XIVO_FWD_USER_BUSY_ACTION" "none" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_FWD_USER_BUSY_ACTION Value: none Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 408178965 Command: SET VARIABLE "XIVO_FWD_USER_BUSY_ACTION" "none" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 813286668 Command: SET VARIABLE "XIVO_FWD_USER_BUSY_ISDA" "1" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_FWD_USER_BUSY_ISDA Value: 1 Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 813286668 Command: SET VARIABLE "XIVO_FWD_USER_BUSY_ISDA" "1" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 219622065 Command: SET VARIABLE "XIVO_FWD_USER_BUSY_ACTIONARG1" "" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_FWD_USER_BUSY_ACTIONARG1 Value: Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 219622065 Command: SET VARIABLE "XIVO_FWD_USER_BUSY_ACTIONARG1" "" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 59543310 Command: SET VARIABLE "XIVO_FWD_USER_BUSY_ACTIONARG2" "" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_FWD_USER_BUSY_ACTIONARG2 Value: Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 59543310 Command: SET VARIABLE "XIVO_FWD_USER_BUSY_ACTIONARG2" "" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 1649213707 Command: SET VARIABLE "XIVO_FWD_USER_NOANSWER_ACTION" "none" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_FWD_USER_NOANSWER_ACTION Value: none Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 1649213707 Command: SET VARIABLE "XIVO_FWD_USER_NOANSWER_ACTION" "none" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 314809633 Command: SET VARIABLE "XIVO_FWD_USER_NOANSWER_ISDA" "1" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_FWD_USER_NOANSWER_ISDA Value: 1 Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 314809633 Command: SET VARIABLE "XIVO_FWD_USER_NOANSWER_ISDA" "1" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 2010988581 Command: SET VARIABLE "XIVO_FWD_USER_NOANSWER_ACTIONARG1" "" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_FWD_USER_NOANSWER_ACTIONARG1 Value: Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 2010988581 Command: SET VARIABLE "XIVO_FWD_USER_NOANSWER_ACTIONARG1" "" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 1782431266 Command: SET VARIABLE "XIVO_FWD_USER_NOANSWER_ACTIONARG2" "" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_FWD_USER_NOANSWER_ACTIONARG2 Value: Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 1782431266 Command: SET VARIABLE "XIVO_FWD_USER_NOANSWER_ACTIONARG2" "" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 1918196672 Command: SET VARIABLE "XIVO_FWD_USER_CONGESTION_ACTION" "none" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_FWD_USER_CONGESTION_ACTION Value: none Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 1918196672 Command: SET VARIABLE "XIVO_FWD_USER_CONGESTION_ACTION" "none" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 974641822 Command: SET VARIABLE "XIVO_FWD_USER_CONGESTION_ISDA" "1" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_FWD_USER_CONGESTION_ISDA Value: 1 Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 974641822 Command: SET VARIABLE "XIVO_FWD_USER_CONGESTION_ISDA" "1" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 454756922 Command: SET VARIABLE "XIVO_FWD_USER_CONGESTION_ACTIONARG1" "" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_FWD_USER_CONGESTION_ACTIONARG1 Value: Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 454756922 Command: SET VARIABLE "XIVO_FWD_USER_CONGESTION_ACTIONARG1" "" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 1910964650 Command: SET VARIABLE "XIVO_FWD_USER_CONGESTION_ACTIONARG2" "" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_FWD_USER_CONGESTION_ACTIONARG2 Value: Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 1910964650 Command: SET VARIABLE "XIVO_FWD_USER_CONGESTION_ACTIONARG2" "" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 1342829434 Command: SET VARIABLE "XIVO_FWD_USER_CHANUNAVAIL_ACTION" "none" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_FWD_USER_CHANUNAVAIL_ACTION Value: none Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 1342829434 Command: SET VARIABLE "XIVO_FWD_USER_CHANUNAVAIL_ACTION" "none" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 1835637638 Command: SET VARIABLE "XIVO_FWD_USER_CHANUNAVAIL_ISDA" "1" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_FWD_USER_CHANUNAVAIL_ISDA Value: 1 Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 1835637638 Command: SET VARIABLE "XIVO_FWD_USER_CHANUNAVAIL_ISDA" "1" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 455217448 Command: SET VARIABLE "XIVO_FWD_USER_CHANUNAVAIL_ACTIONARG1" "" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_FWD_USER_CHANUNAVAIL_ACTIONARG1 Value: Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 455217448 Command: SET VARIABLE "XIVO_FWD_USER_CHANUNAVAIL_ACTIONARG1" "" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 1181126589 Command: SET VARIABLE "XIVO_FWD_USER_CHANUNAVAIL_ACTIONARG2" "" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_FWD_USER_CHANUNAVAIL_ACTIONARG2 Value: Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 1181126589 Command: SET VARIABLE "XIVO_FWD_USER_CHANUNAVAIL_ACTIONARG2" "" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 1452730118 Command: SET VARIABLE "CHANNEL(musicclass)" "default" Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 1452730118 Command: SET VARIABLE "CHANNEL(musicclass)" "default" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 590815113 Command: SET VARIABLE "XIVO_CALLRECORDFILE" "" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_CALLRECORDFILE Value: Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 590815113 Command: SET VARIABLE "XIVO_CALLRECORDFILE" "" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 873484241 Command: SET VARIABLE "XIVO_USERPREPROCESS_SUBROUTINE" "" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_USERPREPROCESS_SUBROUTINE Value: Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 873484241 Command: SET VARIABLE "XIVO_USERPREPROCESS_SUBROUTINE" "" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 1039737321 Command: SET VARIABLE "XIVO_MOBILEPHONENUMBER" "" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_MOBILEPHONENUMBER Value: Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 1039737321 Command: SET VARIABLE "XIVO_MOBILEPHONENUMBER" "" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 1648843108 Command: GET VARIABLE "XIVO_PATH" Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 1648843108 Command: GET VARIABLE "XIVO_PATH" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 1456131114 Command: SET VARIABLE "XIVO_PATH" "user" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_PATH Value: user Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 1456131114 Command: SET VARIABLE "XIVO_PATH" "user" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 1674315446 Command: SET VARIABLE "XIVO_PATH_ID" "148" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_PATH_ID Value: 148 Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 1674315446 Command: SET VARIABLE "XIVO_PATH_ID" "148" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 1962439731 Command: VERBOSE "AGI handler 'incoming_user_set_features' successfully executed" 1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 1962439731 Command: VERBOSE "AGI handler 'incoming_user_set_features' successfully executed" 1 ResultCode: 200 Result: Success Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: AGISTATUS Value: SUCCESS Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: user Extension: s Priority: 17 Application: NoOp AppData: filename call recording: none Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: user Extension: s Priority: 18 Application: AGI AppData: agi://127.0.0.1/check_schedule Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 1611665049 Command: GET VARIABLE "XIVO_PATH" Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 1611665049 Command: GET VARIABLE "XIVO_PATH" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 1933457243 Command: GET VARIABLE "XIVO_PATH_ID" Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 1933457243 Command: GET VARIABLE "XIVO_PATH_ID" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 243126246 Command: SET VARIABLE "XIVO_SCHEDULE_STATUS" "opened" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_SCHEDULE_STATUS Value: opened Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 243126246 Command: SET VARIABLE "XIVO_SCHEDULE_STATUS" "opened" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 679953752 Command: SET VARIABLE "XIVO_PATH" "" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_PATH Value: Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 679953752 Command: SET VARIABLE "XIVO_PATH" "" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 213595631 Command: VERBOSE "AGI handler 'check_schedule' successfully executed" 1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 213595631 Command: VERBOSE "AGI handler 'check_schedule' successfully executed" 1 ResultCode: 200 Result: Success Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: AGISTATUS Value: SUCCESS Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: user Extension: s Priority: 19 Application: GotoIf AppData: 0?CLOSED,1 Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: user Extension: s Priority: 20 Application: Gosub AppData: xivo-ring_type_set,s,1 Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: LOCAL(ARG1) Value: Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: LOCAL(ARG2) Value: Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: LOCAL(ARGC) Value: 0 Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: xivo-ring_type_set Extension: s Priority: 1 Application: SIPRemoveHeader AppData: Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: xivo-ring_type_set Extension: s Priority: 2 Application: AGI AppData: agi://127.0.0.1/getring Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 2079266821 Command: GET VARIABLE "XIVO_DSTNUM" Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 2079266821 Command: GET VARIABLE "XIVO_DSTNUM" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 1701189425 Command: GET VARIABLE "XIVO_CONTEXT" Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 1701189425 Command: GET VARIABLE "XIVO_CONTEXT" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 1038234813 Command: GET VARIABLE "XIVO_CALLORIGIN" Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 1038234813 Command: GET VARIABLE "XIVO_CALLORIGIN" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 406408326 Command: GET VARIABLE "XIVO_FWD_REFERER" Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 406408326 Command: GET VARIABLE "XIVO_FWD_REFERER" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 721632134 Command: GET VARIABLE "XIVO_CALLFORWARDED" Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 721632134 Command: GET VARIABLE "XIVO_CALLFORWARDED" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 450975286 Command: SET VARIABLE "XIVO_RINGTYPE" "" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_RINGTYPE Value: Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 450975286 Command: SET VARIABLE "XIVO_RINGTYPE" "" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 1117157776 Command: VERBOSE "Using the native phone ring tone" 1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 1117157776 Command: VERBOSE "Using the native phone ring tone" 1 ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 44311958 Command: VERBOSE "AGI handler 'getring' successfully executed" 1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 44311958 Command: VERBOSE "AGI handler 'getring' successfully executed" 1 ResultCode: 200 Result: Success Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: AGISTATUS Value: SUCCESS Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: xivo-ring_type_set Extension: s Priority: 3 Application: GotoIf AppData: ?:exit Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: xivo-ring_type_set Extension: s Priority: 8 Application: Return AppData: Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: GOSUB_RETVAL Value: Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: user Extension: s Priority: 21 Application: Gosub AppData: xivo-subroutine,s,1() Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: LOCAL(ARG1) Value: Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: LOCAL(ARG2) Value: Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: LOCAL(ARGC) Value: 0 Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: xivo-subroutine Extension: s Priority: 1 Application: GotoIf AppData: ?:nosubroutine Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: xivo-subroutine Extension: s Priority: 4 Application: Return AppData: Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: GOSUB_RETVAL Value: Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: user Extension: s Priority: 22 Application: Set AppData: XIVO_RINGSECONDS=30 Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_RINGSECONDS Value: 30 Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: user Extension: s Priority: 23 Application: Gosub AppData: xivo-user_rights_check,s,1 Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: LOCAL(ARG1) Value: Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: LOCAL(ARG2) Value: Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: LOCAL(ARGC) Value: 0 Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: xivo-user_rights_check Extension: s Priority: 1 Application: AGI AppData: agi://127.0.0.1/user_set_call_rights Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 735878980 Command: GET VARIABLE "XIVO_USERID" Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 735878980 Command: GET VARIABLE "XIVO_USERID" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 1584201653 Command: GET VARIABLE "XIVO_DSTNUM" Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 1584201653 Command: GET VARIABLE "XIVO_DSTNUM" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 195122677 Command: GET VARIABLE "XIVO_OUTCALLID" Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 195122677 Command: GET VARIABLE "XIVO_OUTCALLID" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 253109698 Command: SET VARIABLE "XIVO_AUTHORIZATION" "ALLOW" Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: XIVO_AUTHORIZATION Value: ALLOW Uniqueid: 1414510600.1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 253109698 Command: SET VARIABLE "XIVO_AUTHORIZATION" "ALLOW" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: Local/259@default-00000000;2 CommandId: 275288411 Command: VERBOSE "AGI handler 'user_set_call_rights' successfully executed" 1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: Local/259@default-00000000;2 CommandId: 275288411 Command: VERBOSE "AGI handler 'user_set_call_rights' successfully executed" 1 ResultCode: 200 Result: Success Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: AGISTATUS Value: SUCCESS Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: xivo-user_rights_check Extension: s Priority: 2 Application: GotoIf AppData: ALLOW?:error,1 Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: xivo-user_rights_check Extension: s Priority: 3 Application: GotoIf AppData: 1?allow,1 Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: xivo-user_rights_check Extension: allow Priority: 1 Application: NoOp AppData: User allowed to make call Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: xivo-user_rights_check Extension: allow Priority: 2 Application: Return AppData: Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: GOSUB_RETVAL Value: Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: user Extension: s Priority: 24 Application: GotoIf AppData: 0?dial_from_queue,1 Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: user Extension: s Priority: 25 Application: GotoIf AppData: 0?xivo-user_callfilter,s,1 Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: user Extension: s Priority: 26 Application: GotoIf AppData: ?:28 Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: user Extension: s Priority: 28 Application: GotoIf AppData: 0?DND,1 Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: user Extension: s Priority: 29 Application: DumpChan AppData: 7 Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: user Extension: s Priority: 30 Application: NoOp AppData: XIVO_ENABLEUNC: 0 XIVO_SRCNUM: XIVO_FWD_USER_UNC_ACTIONARG: Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: user Extension: s Priority: 31 Application: GotoIf AppData: 0?UNC,1 Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: user Extension: s Priority: 32 Application: GotoIf AppData: 0?dial_from_group,1 Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: user Extension: s Priority: 33 Application: GotoIf AppData: 0?BUSY,1 Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: user Extension: s Priority: 34 Application: Set AppData: OUTBOUND_GROUP_ONCE=148@XIVO_USER Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: OUTBOUND_GROUP_ONCE Value: 148@XIVO_USER Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: user Extension: s Priority: 35 Application: Gosub AppData: xivo-connectedline,s,1(259,S F) Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: LOCAL(ARG1) Value: 259 Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: LOCAL(ARG2) Value: S F Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: LOCAL(ARGC) Value: 2 Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: xivo-connectedline Extension: s Priority: 1 Application: NoOp AppData: Generic subroutine for connectedline Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: xivo-connectedline Extension: s Priority: 2 Application: Set AppData: CONNECTEDLINE(all,i)=S F <259> Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: xivo-connectedline Extension: s Priority: 3 Application: Return AppData: Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: GOSUB_RETVAL Value: Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: user Extension: s Priority: 36 Application: Gosub AppData: xivo-global-subroutine,s,1 Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: LOCAL(ARG1) Value: Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: LOCAL(ARG2) Value: Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: LOCAL(ARGC) Value: 0 Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: xivo-global-subroutine Extension: s Priority: 1 Application: GotoIf AppData: 1?:return Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: xivo-global-subroutine Extension: s Priority: 2 Application: GotoIf AppData: USER?:return Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: xivo-global-subroutine Extension: s Priority: 3 Application: GotoIf AppData: xivo-subrgbl-user?:return Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: xivo-global-subroutine Extension: s Priority: 4 Application: GotoIf AppData: 1?:return Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: xivo-global-subroutine Extension: s Priority: 5 Application: Gosub AppData: xivo-subrgbl-user,s,1 Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: LOCAL(ARG1) Value: Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: LOCAL(ARG2) Value: Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: LOCAL(ARGC) Value: 0 Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: xivo-subrgbl-user Extension: s Priority: 1 Application: Verbose AppData: 3, "-= ALLOcloud preprocess subroutine groups =-" Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: xivo-subrgbl-user Extension: s Priority: 2 Application: Verbose AppData: 3, "-= Test if the user is busy =-" Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: xivo-subrgbl-user Extension: s Priority: 3 Application: Set AppData: COUNT_BUSY=NOT_INUSE Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: COUNT_BUSY Value: NOT_INUSE Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: xivo-subrgbl-user Extension: s Priority: 4 Application: GotoIf AppData: 1?return Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: xivo-subrgbl-user Extension: s Priority: 9 Application: Verbose AppData: 3, "-= Returning to the original call-flow =-" Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: xivo-subrgbl-user Extension: s Priority: 10 Application: Return AppData: Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: GOSUB_RETVAL Value: Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: xivo-global-subroutine Extension: s Priority: 6 Application: Return AppData: Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: GOSUB_RETVAL Value: Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: user Extension: s Priority: 37 Application: Gosub AppData: originate-caller-id,s,1 Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: LOCAL(ARG1) Value: Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: LOCAL(ARG2) Value: Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: LOCAL(ARGC) Value: 0 Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: originate-caller-id Extension: s Priority: 1 Application: GotoIf AppData: 0?:name Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: originate-caller-id Extension: s Priority: 3 Application: GotoIf AppData: 0?:end Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: originate-caller-id Extension: s Priority: 5 Application: Return AppData: Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: GOSUB_RETVAL Value: Uniqueid: 1414510600.1 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;2 Context: user Extension: s Priority: 38 Application: Dial AppData: SIP/ddddd,30,hHt Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: DIALSTATUS Value: Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: DIALEDPEERNUMBER Value: Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: DIALEDPEERNAME Value: Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: ANSWEREDTIME Value: Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: DIALEDTIME Value: Uniqueid: 1414510600.1 Event: Newchannel Privilege: call,all Channel: SIP/ddddd-00000000 ChannelState: 0 ChannelStateDesc: Down CallerIDNum: 259 CallerIDName: S F AccountCode: Exten: Context: default Uniqueid: 1414510601.2 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: SIPCALLID Value: 417341300e78b1ef0389221173d5bf6f@192.168.0.1:5060 Uniqueid: 1414510601.2 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_USERID Value: 148 Uniqueid: 1414510601.2 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: PICKUPMARK Value: 259%default Uniqueid: 1414510601.2 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: TRANSFER_CONTEXT Value: default Uniqueid: 1414510601.2 Event: ChannelUpdate Privilege: system,all Channel: SIP/ddddd-00000000 Uniqueid: 1414510601.2 Channeltype: SIP SIPcallid: 417341300e78b1ef0389221173d5bf6f@192.168.0.1:5060 SIPfullcontact: sip:ddddd@192.168.0.2:42526;rinstance=9ec5b250d716f66e;transport=UDP Event: ChannelUpdate Privilege: system,all Channel: SIP/ddddd-00000000 Channeltype: SIP SIPcallid: 417341300e78b1ef0389221173d5bf6f@192.168.0.1:5060 SIPfullcontact: sip:ddddd@192.168.0.2:42526;rinstance=9ec5b250d716f66e;transport=UDP Peername: ddddd Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: DIALEDPEERNUMBER Value: ddddd Uniqueid: 1414510601.2 Event: Dial Privilege: call,all SubEvent: Begin Channel: Local/259@default-00000000;2 Destination: SIP/ddddd-00000000 CallerIDNum: CallerIDName: Panoramisk tests ConnectedLineNum: 259 ConnectedLineName: S F UniqueID: 1414510600.1 DestUniqueID: 1414510601.2 Dialstring: ddddd Event: CEL Privilege: call,all EventName: CHAN_START AccountCode: CallerIDnum: 259 CallerIDname: S F CallerIDani: CallerIDrdnis: CallerIDdnid: Exten: s Context: default Channel: SIP/ddddd-00000000 Application: AppData: EventTime: 2014-10-28 16:36:41 AMAFlags: DOCUMENTATION UniqueID: 1414510601.2 LinkedID: 1414510600.0 Userfield: Peer: PeerAccount: Extra: Event: ExtensionStatus Privilege: call,all Exten: 259 Context: default Hint: SIP/ddddd Status: 8 Event: ExtensionStatus Privilege: call,all Exten: *666148 Context: default Hint: SIP/ddddd Status: 8 Event: SIPRinging Privilege: system,all Peer: SIP/ddddd Event: Newstate Privilege: call,all Channel: SIP/ddddd-00000000 ChannelState: 5 ChannelStateDesc: Ringing CallerIDNum: 259 CallerIDName: S F ConnectedLineNum: ConnectedLineName: Panoramisk tests Uniqueid: 1414510601.2 Event: Newstate Privilege: call,all Channel: Local/259@default-00000000;1 ChannelState: 5 ChannelStateDesc: Ringing CallerIDNum: 259 CallerIDName: S F ConnectedLineNum: ConnectedLineName: Panoramisk tests Uniqueid: 1414510600.0 Event: ChannelUpdate Privilege: system,all Channel: SIP/ddddd-00000000 Channeltype: SIP Uniqueid: 1414510601.2 SIPcallid: 417341300e78b1ef0389221173d5bf6f@192.168.0.1:5060 SIPfullcontact: sip:ddddd@192.168.0.2:42526;rinstance=9ec5b250d716f66e;transport=UDP Peername: ddddd Event: Newstate Privilege: call,all Channel: SIP/ddddd-00000000 ChannelState: 6 ChannelStateDesc: Up CallerIDNum: 259 CallerIDName: S F ConnectedLineNum: ConnectedLineName: Panoramisk tests Uniqueid: 1414510601.2 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: DIALSTATUS Value: ANSWER Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: DIALEDPEERNAME Value: SIP/ddddd-00000000 Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: DIALEDPEERNUMBER Value: ddddd Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: BRIDGEPEER Value: SIP/ddddd-00000000 Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: BRIDGEPEER Value: Local/259@default-00000000;2 Uniqueid: 1414510601.2 Event: Newstate Privilege: call,all Channel: Local/259@default-00000000;2 ChannelState: 6 ChannelStateDesc: Up CallerIDNum: CallerIDName: Panoramisk tests ConnectedLineNum: 259 ConnectedLineName: S F Uniqueid: 1414510600.1 Event: NewAccountCode Privilege: call,all Channel: SIP/ddddd-00000000 Uniqueid: 1414510601.2 AccountCode: OldAccountCode: Event: Bridge Privilege: call,all Bridgestate: Link Bridgetype: core Channel1: Local/259@default-00000000;2 Channel2: SIP/ddddd-00000000 Uniqueid1: 1414510600.1 Uniqueid2: 1414510601.2 CallerID1: CallerID2: 259 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: BRIDGEPEER Value: SIP/ddddd-00000000 Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: BRIDGEPVTCALLID Value: 417341300e78b1ef0389221173d5bf6f@192.168.0.1:5060 Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: BRIDGEPEER Value: Local/259@default-00000000;2 Uniqueid: 1414510601.2 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: BRIDGEPEER Value: SIP/ddddd-00000000 Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: BRIDGEPVTCALLID Value: 417341300e78b1ef0389221173d5bf6f@192.168.0.1:5060 Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: BRIDGEPEER Value: Local/259@default-00000000;2 Uniqueid: 1414510601.2 Event: Newstate Privilege: call,all Channel: Local/259@default-00000000;1 ChannelState: 6 ChannelStateDesc: Up CallerIDNum: 259 CallerIDName: S F ConnectedLineNum: ConnectedLineName: Panoramisk tests Uniqueid: 1414510600.0 Event: CEL Privilege: call,all EventName: ANSWER AccountCode: CallerIDnum: 259 CallerIDname: S F CallerIDani: 259 CallerIDrdnis: CallerIDdnid: Exten: s Context: default Channel: SIP/ddddd-00000000 Application: AppDial AppData: (Outgoing Line) EventTime: 2014-10-28 16:36:49 AMAFlags: DOCUMENTATION UniqueID: 1414510601.2 LinkedID: 1414510600.0 Userfield: Peer: PeerAccount: Extra: Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;1 Context: default Extension: 254 Priority: 1 Application: Set AppData: XIVO_BASE_CONTEXT=default Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;1 Variable: XIVO_BASE_CONTEXT Value: default Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;1 Context: default Extension: 254 Priority: 2 Application: Set AppData: XIVO_BASE_EXTEN=254 Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;1 Variable: XIVO_BASE_EXTEN Value: 254 Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;1 Context: default Extension: 254 Priority: 3 Application: Gosub AppData: user,s,1(147,) Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;1 Variable: LOCAL(ARG1) Value: 147 Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;1 Variable: LOCAL(ARG2) Value: Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;1 Variable: LOCAL(ARGC) Value: 2 Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;1 Context: user Extension: s Priority: 1 Application: Set AppData: XIVO_DSTID=147 Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;1 Variable: XIVO_DSTID Value: 147 Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;1 Context: user Extension: s Priority: 2 Application: Set AppData: XIVO_PRESUBR_GLOBAL_NAME=USER Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;1 Variable: XIVO_PRESUBR_GLOBAL_NAME Value: USER Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;1 Context: user Extension: s Priority: 3 Application: Set AppData: CC_EXTEN=254 Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;1 Variable: CC_EXTEN Value: 254 Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;1 Context: user Extension: s Priority: 4 Application: Set AppData: CC_CONTEXT=default Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;1 Variable: CC_CONTEXT Value: default Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;1 Context: user Extension: s Priority: 5 Application: Set AppData: XIVO_SRCNUM=259 Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;1 Variable: XIVO_SRCNUM Value: 259 Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;1 Context: user Extension: s Priority: 6 Application: Set AppData: XIVO_DSTNUM=254 Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;1 Variable: XIVO_DSTNUM Value: 254 Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;1 Context: user Extension: s Priority: 7 Application: Set AppData: XIVO_CONTEXT=default Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;1 Variable: XIVO_CONTEXT Value: default Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;1 Context: user Extension: s Priority: 8 Application: Set AppData: __XIVO_CALLORIGIN=intern Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;1 Variable: __XIVO_CALLORIGIN Value: intern Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;1 Context: user Extension: s Priority: 9 Application: Set AppData: __XIVO_FWD_REFERER=user:147 Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;1 Variable: __XIVO_FWD_REFERER Value: user:147 Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;1 Context: user Extension: s Priority: 10 Application: UserEvent AppData: User,CHANNEL: Local/259@default-00000000;1,XIVO_USERID: ,XIVO_SRCNUM: 259,XIVO_CALLORIGIN: intern,XIVO_DSTID: 147 Uniqueid: 1414510600.0 Event: UserEvent Privilege: user,all UserEvent: User Uniqueid: 1414510600.0 CHANNEL: Local/259@default-00000000;1 XIVO_USERID: XIVO_SRCNUM: 259 XIVO_CALLORIGIN: intern XIVO_DSTID: 147 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;1 Context: user Extension: s Priority: 11 Application: GotoIf AppData: ?:noblindxfer Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;1 Context: user Extension: s Priority: 13 Application: Set AppData: XIVO_FWD_REFERER_TYPE=user Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;1 Variable: XIVO_FWD_REFERER_TYPE Value: user Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;1 Context: user Extension: s Priority: 14 Application: Set AppData: XIVO_REAL_FROMGROUP=0 Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;1 Variable: XIVO_REAL_FROMGROUP Value: 0 Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;1 Context: user Extension: s Priority: 15 Application: Set AppData: XIVO_REAL_FROMQUEUE=0 Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;1 Variable: XIVO_REAL_FROMQUEUE Value: 0 Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: Local/259@default-00000000;1 Context: user Extension: s Priority: 16 Application: AGI AppData: agi://127.0.0.1/incoming_user_set_features Uniqueid: 1414510600.0 Event: Masquerade Privilege: call,all Clone: SIP/ddddd-00000000 CloneState: Up Original: Local/259@default-00000000;1 OriginalState: Up Event: Rename Privilege: call,all Channel: SIP/ddddd-00000000 Newname: SIP/ddddd-00000000 Uniqueid: 1414510601.2 Event: Rename Privilege: call,all Channel: Local/259@default-00000000;1 Newname: SIP/ddddd-00000000 Uniqueid: 1414510600.0 Event: Rename Privilege: call,all Channel: SIP/ddddd-00000000 Newname: Local/259@default-00000000;1 Uniqueid: 1414510601.2 Event: NewCallerid Privilege: call,all Channel: SIP/ddddd-00000000 CallerIDNum: 259 CallerIDName: S F Uniqueid: 1414510600.0 CID-CallingPres: 0 (Presentation Allowed, Not Screened) Event: Bridge Privilege: call,all Bridgestate: Unlink Bridgetype: core Channel1: Local/259@default-00000000;2 Channel2: Local/259@default-00000000;1 Uniqueid1: 1414510600.1 Uniqueid2: 1414510601.2 CallerID1: CallerID2: 259 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: ANSWEREDTIME Value: 0 Uniqueid: 1414510600.1 Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: DIALEDTIME Value: 9 Uniqueid: 1414510600.1 Event: HangupRequest Privilege: call,all Channel: Local/259@default-00000000;2 Uniqueid: 1414510600.1 Event: Hangup Privilege: call,all Channel: Local/259@default-00000000;1 Uniqueid: 1414510601.2 CallerIDNum: 259 CallerIDName: S F ConnectedLineNum: ConnectedLineName: Panoramisk tests AccountCode: Cause: 16 Cause-txt: Normal Clearing Event: CEL Privilege: call,all EventName: ANSWER AccountCode: CallerIDnum: CallerIDname: Panoramisk tests CallerIDani: CallerIDrdnis: CallerIDdnid: Exten: s Context: user Channel: Local/259@default-00000000;2 Application: Dial AppData: SIP/ddddd,30,hHt EventTime: 2014-10-28 16:36:49 AMAFlags: DOCUMENTATION UniqueID: 1414510600.1 LinkedID: 1414510600.0 Userfield: Peer: PeerAccount: Extra: Event: VarSet Privilege: dialplan,all Channel: Local/259@default-00000000;2 Variable: DIALSTATUS Value: ANSWER Uniqueid: 1414510600.1 Event: Dial Privilege: call,all SubEvent: End Channel: Local/259@default-00000000;2 UniqueID: 1414510600.1 DialStatus: ANSWER Event: SoftHangupRequest Privilege: call,all Channel: Local/259@default-00000000;2 Uniqueid: 1414510600.1 Cause: 16 Event: Hangup Privilege: call,all Channel: Local/259@default-00000000;2 Uniqueid: 1414510600.1 CallerIDNum: CallerIDName: Panoramisk tests ConnectedLineNum: 259 ConnectedLineName: S F AccountCode: Cause: 16 Cause-txt: Normal Clearing Event: CEL Privilege: call,all EventName: BRIDGE_START AccountCode: CallerIDnum: CallerIDname: Panoramisk tests CallerIDani: CallerIDrdnis: CallerIDdnid: Exten: s Context: user Channel: Local/259@default-00000000;2 Application: Dial AppData: SIP/ddddd,30,hHt EventTime: 2014-10-28 16:36:49 AMAFlags: DOCUMENTATION UniqueID: 1414510600.1 LinkedID: 1414510600.0 Userfield: Peer: SIP/ddddd-00000000 PeerAccount: Extra: Event: CEL Privilege: call,all EventName: ANSWER AccountCode: CallerIDnum: 259 CallerIDname: S F CallerIDani: CallerIDrdnis: CallerIDdnid: Exten: 259 Context: default Channel: Local/259@default-00000000;1 Application: AppData: EventTime: 2014-10-28 16:36:49 AMAFlags: DOCUMENTATION UniqueID: 1414510600.0 LinkedID: 1414510600.0 Userfield: Peer: PeerAccount: Extra: Event: ExtensionStatus Privilege: call,all Exten: 259 Context: default Hint: SIP/ddddd Status: 1 Event: ExtensionStatus Privilege: call,all Exten: *666148 Context: default Hint: SIP/ddddd Status: 1 Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 285624360 Command: GET VARIABLE "XIVO_USERID" Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 285624360 Command: GET VARIABLE "XIVO_USERID" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 1018946091 Command: GET VARIABLE "XIVO_DSTID" Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 1018946091 Command: GET VARIABLE "XIVO_DSTID" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 1101081066 Command: GET VARIABLE "XIVO_CALLORIGIN" Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 1101081066 Command: GET VARIABLE "XIVO_CALLORIGIN" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 1047468209 Command: GET VARIABLE "XIVO_SRCNUM" Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 1047468209 Command: GET VARIABLE "XIVO_SRCNUM" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 1232065858 Command: GET VARIABLE "XIVO_DSTNUM" Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 1232065858 Command: GET VARIABLE "XIVO_DSTNUM" ResultCode: 200 Result: Success Event: CEL Privilege: call,all EventName: HANGUP AccountCode: CallerIDnum: 259 CallerIDname: S F CallerIDani: 259 CallerIDrdnis: CallerIDdnid: Exten: Context: user Channel: Local/259@default-00000000;1 Application: AppDial AppData: (Outgoing Line) EventTime: 2014-10-28 16:36:49 AMAFlags: DOCUMENTATION UniqueID: 1414510601.2 LinkedID: 1414510600.0 Userfield: Peer: PeerAccount: Extra: 16,, Event: CEL Privilege: call,all EventName: CHAN_END AccountCode: CallerIDnum: 259 CallerIDname: S F CallerIDani: 259 CallerIDrdnis: CallerIDdnid: Exten: Context: user Channel: Local/259@default-00000000;1 Application: AppDial AppData: (Outgoing Line) EventTime: 2014-10-28 16:36:49 AMAFlags: DOCUMENTATION UniqueID: 1414510601.2 LinkedID: 1414510600.0 Userfield: Peer: PeerAccount: Extra: Event: CEL Privilege: call,all EventName: HANGUP AccountCode: CallerIDnum: CallerIDname: Panoramisk tests CallerIDani: CallerIDrdnis: CallerIDdnid: Exten: s Context: user Channel: Local/259@default-00000000;2 Application: AppData: EventTime: 2014-10-28 16:36:49 AMAFlags: DOCUMENTATION UniqueID: 1414510600.1 LinkedID: 1414510600.0 Userfield: Peer: PeerAccount: Extra: 16,,ANSWER Event: CEL Privilege: call,all EventName: CHAN_END AccountCode: CallerIDnum: CallerIDname: Panoramisk tests CallerIDani: CallerIDrdnis: CallerIDdnid: Exten: s Context: user Channel: Local/259@default-00000000;2 Application: AppData: EventTime: 2014-10-28 16:36:49 AMAFlags: DOCUMENTATION UniqueID: 1414510600.1 LinkedID: 1414510600.0 Userfield: Peer: PeerAccount: Extra: Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 2086254126 Command: SET VARIABLE "XIVO_DST_USERNUM" "254" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_DST_USERNUM Value: 254 Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 2086254126 Command: SET VARIABLE "XIVO_DST_USERNUM" "254" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 1935713048 Command: SET VARIABLE "XIVO_DST_FIRSTNAME" "L" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_DST_FIRSTNAME Value: L Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 1935713048 Command: SET VARIABLE "XIVO_DST_FIRSTNAME" "L" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 1550146534 Command: SET VARIABLE "XIVO_DST_LASTNAME" "G" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_DST_LASTNAME Value: G Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 1550146534 Command: SET VARIABLE "XIVO_DST_LASTNAME" "G" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 612125112 Command: SET VARIABLE "XIVO_DST_REDIRECTING_NAME" "L G" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_DST_REDIRECTING_NAME Value: L G Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 612125112 Command: SET VARIABLE "XIVO_DST_REDIRECTING_NAME" "L G" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 522862848 Command: SET VARIABLE "XIVO_DST_REDIRECTING_NUM" "254" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_DST_REDIRECTING_NUM Value: 254 Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 522862848 Command: SET VARIABLE "XIVO_DST_REDIRECTING_NUM" "254" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 1855626964 Command: SET VARIABLE "XIVO_INTERFACE" "SIP/uuuuu" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_INTERFACE Value: SIP/uuuuu Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 1855626964 Command: SET VARIABLE "XIVO_INTERFACE" "SIP/uuuuu" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 539888559 Command: SET VARIABLE "XIVO_CALLOPTIONS" "hHtT" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_CALLOPTIONS Value: hHtT Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 539888559 Command: SET VARIABLE "XIVO_CALLOPTIONS" "hHtT" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 1678689466 Command: SET VARIABLE "XIVO_SIMULTCALLS" "5" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_SIMULTCALLS Value: 5 Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 1678689466 Command: SET VARIABLE "XIVO_SIMULTCALLS" "5" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 460905162 Command: SET VARIABLE "XIVO_RINGSECONDS" "30" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_RINGSECONDS Value: 30 Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 460905162 Command: SET VARIABLE "XIVO_RINGSECONDS" "30" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 96555723 Command: SET VARIABLE "XIVO_ENABLEDND" "0" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_ENABLEDND Value: 0 Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 96555723 Command: SET VARIABLE "XIVO_ENABLEDND" "0" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 1174643013 Command: SET VARIABLE "XIVO_ENABLEVOICEMAIL" "0" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_ENABLEVOICEMAIL Value: 0 Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 1174643013 Command: SET VARIABLE "XIVO_ENABLEVOICEMAIL" "0" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 714604477 Command: SET VARIABLE "XIVO_MAILBOX" "" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_MAILBOX Value: Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 714604477 Command: SET VARIABLE "XIVO_MAILBOX" "" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 56976057 Command: SET VARIABLE "XIVO_MAILBOX_CONTEXT" "" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_MAILBOX_CONTEXT Value: Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 56976057 Command: SET VARIABLE "XIVO_MAILBOX_CONTEXT" "" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 1163065498 Command: SET VARIABLE "XIVO_USEREMAIL" "" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_USEREMAIL Value: Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 1163065498 Command: SET VARIABLE "XIVO_USEREMAIL" "" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 363454558 Command: SET VARIABLE "XIVO_ENABLEUNC" "0" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_ENABLEUNC Value: 0 Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 363454558 Command: SET VARIABLE "XIVO_ENABLEUNC" "0" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 1301637522 Command: SET VARIABLE "XIVO_FWD_USER_UNC_ACTION" "none" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_FWD_USER_UNC_ACTION Value: none Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 1301637522 Command: SET VARIABLE "XIVO_FWD_USER_UNC_ACTION" "none" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 1050105169 Command: SET VARIABLE "XIVO_FWD_USER_UNC_ACTIONARG1" "" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_FWD_USER_UNC_ACTIONARG1 Value: Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 1050105169 Command: SET VARIABLE "XIVO_FWD_USER_UNC_ACTIONARG1" "" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 1741007012 Command: SET VARIABLE "XIVO_FWD_USER_UNC_ACTIONARG2" "" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_FWD_USER_UNC_ACTIONARG2 Value: Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 1741007012 Command: SET VARIABLE "XIVO_FWD_USER_UNC_ACTIONARG2" "" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 322250224 Command: SET VARIABLE "XIVO_FWD_USER_BUSY_ACTION" "none" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_FWD_USER_BUSY_ACTION Value: none Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 322250224 Command: SET VARIABLE "XIVO_FWD_USER_BUSY_ACTION" "none" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 1279828525 Command: SET VARIABLE "XIVO_FWD_USER_BUSY_ISDA" "1" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_FWD_USER_BUSY_ISDA Value: 1 Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 1279828525 Command: SET VARIABLE "XIVO_FWD_USER_BUSY_ISDA" "1" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 1939376719 Command: SET VARIABLE "XIVO_FWD_USER_BUSY_ACTIONARG1" "" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_FWD_USER_BUSY_ACTIONARG1 Value: Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 1939376719 Command: SET VARIABLE "XIVO_FWD_USER_BUSY_ACTIONARG1" "" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 2028455323 Command: SET VARIABLE "XIVO_FWD_USER_BUSY_ACTIONARG2" "" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_FWD_USER_BUSY_ACTIONARG2 Value: Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 2028455323 Command: SET VARIABLE "XIVO_FWD_USER_BUSY_ACTIONARG2" "" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 511622874 Command: SET VARIABLE "XIVO_FWD_USER_NOANSWER_ACTION" "none" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_FWD_USER_NOANSWER_ACTION Value: none Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 511622874 Command: SET VARIABLE "XIVO_FWD_USER_NOANSWER_ACTION" "none" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 1889424603 Command: SET VARIABLE "XIVO_FWD_USER_NOANSWER_ISDA" "1" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_FWD_USER_NOANSWER_ISDA Value: 1 Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 1889424603 Command: SET VARIABLE "XIVO_FWD_USER_NOANSWER_ISDA" "1" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 459357547 Command: SET VARIABLE "XIVO_FWD_USER_NOANSWER_ACTIONARG1" "" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_FWD_USER_NOANSWER_ACTIONARG1 Value: Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 459357547 Command: SET VARIABLE "XIVO_FWD_USER_NOANSWER_ACTIONARG1" "" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 703471586 Command: SET VARIABLE "XIVO_FWD_USER_NOANSWER_ACTIONARG2" "" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_FWD_USER_NOANSWER_ACTIONARG2 Value: Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 703471586 Command: SET VARIABLE "XIVO_FWD_USER_NOANSWER_ACTIONARG2" "" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 1561213152 Command: SET VARIABLE "XIVO_FWD_USER_CONGESTION_ACTION" "none" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_FWD_USER_CONGESTION_ACTION Value: none Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 1561213152 Command: SET VARIABLE "XIVO_FWD_USER_CONGESTION_ACTION" "none" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 2138230449 Command: SET VARIABLE "XIVO_FWD_USER_CONGESTION_ISDA" "1" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_FWD_USER_CONGESTION_ISDA Value: 1 Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 2138230449 Command: SET VARIABLE "XIVO_FWD_USER_CONGESTION_ISDA" "1" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 1969255075 Command: SET VARIABLE "XIVO_FWD_USER_CONGESTION_ACTIONARG1" "" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_FWD_USER_CONGESTION_ACTIONARG1 Value: Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 1969255075 Command: SET VARIABLE "XIVO_FWD_USER_CONGESTION_ACTIONARG1" "" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 307198792 Command: SET VARIABLE "XIVO_FWD_USER_CONGESTION_ACTIONARG2" "" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_FWD_USER_CONGESTION_ACTIONARG2 Value: Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 307198792 Command: SET VARIABLE "XIVO_FWD_USER_CONGESTION_ACTIONARG2" "" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 1964803695 Command: SET VARIABLE "XIVO_FWD_USER_CHANUNAVAIL_ACTION" "none" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_FWD_USER_CHANUNAVAIL_ACTION Value: none Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 1964803695 Command: SET VARIABLE "XIVO_FWD_USER_CHANUNAVAIL_ACTION" "none" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 1629533389 Command: SET VARIABLE "XIVO_FWD_USER_CHANUNAVAIL_ISDA" "1" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_FWD_USER_CHANUNAVAIL_ISDA Value: 1 Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 1629533389 Command: SET VARIABLE "XIVO_FWD_USER_CHANUNAVAIL_ISDA" "1" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 750551155 Command: SET VARIABLE "XIVO_FWD_USER_CHANUNAVAIL_ACTIONARG1" "" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_FWD_USER_CHANUNAVAIL_ACTIONARG1 Value: Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 750551155 Command: SET VARIABLE "XIVO_FWD_USER_CHANUNAVAIL_ACTIONARG1" "" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 1493427405 Command: SET VARIABLE "XIVO_FWD_USER_CHANUNAVAIL_ACTIONARG2" "" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_FWD_USER_CHANUNAVAIL_ACTIONARG2 Value: Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 1493427405 Command: SET VARIABLE "XIVO_FWD_USER_CHANUNAVAIL_ACTIONARG2" "" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 371352294 Command: SET VARIABLE "CHANNEL(musicclass)" "default" Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 371352294 Command: SET VARIABLE "CHANNEL(musicclass)" "default" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 1488827366 Command: SET VARIABLE "XIVO_CALLRECORDFILE" "" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_CALLRECORDFILE Value: Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 1488827366 Command: SET VARIABLE "XIVO_CALLRECORDFILE" "" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 728323017 Command: SET VARIABLE "XIVO_USERPREPROCESS_SUBROUTINE" "" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_USERPREPROCESS_SUBROUTINE Value: Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 728323017 Command: SET VARIABLE "XIVO_USERPREPROCESS_SUBROUTINE" "" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 1695395554 Command: SET VARIABLE "XIVO_MOBILEPHONENUMBER" "" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_MOBILEPHONENUMBER Value: Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 1695395554 Command: SET VARIABLE "XIVO_MOBILEPHONENUMBER" "" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 1505356270 Command: GET VARIABLE "XIVO_PATH" Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 1505356270 Command: GET VARIABLE "XIVO_PATH" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 322112498 Command: SET VARIABLE "XIVO_PATH" "user" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_PATH Value: user Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 322112498 Command: SET VARIABLE "XIVO_PATH" "user" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 134630649 Command: SET VARIABLE "XIVO_PATH_ID" "147" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_PATH_ID Value: 147 Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 134630649 Command: SET VARIABLE "XIVO_PATH_ID" "147" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 1289750731 Command: VERBOSE "AGI handler 'incoming_user_set_features' successfully executed" 1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 1289750731 Command: VERBOSE "AGI handler 'incoming_user_set_features' successfully executed" 1 ResultCode: 200 Result: Success Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: AGISTATUS Value: SUCCESS Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: user Extension: s Priority: 17 Application: NoOp AppData: filename call recording: none Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: user Extension: s Priority: 18 Application: AGI AppData: agi://127.0.0.1/check_schedule Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 580837644 Command: GET VARIABLE "XIVO_PATH" Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 580837644 Command: GET VARIABLE "XIVO_PATH" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 126748224 Command: GET VARIABLE "XIVO_PATH_ID" Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 126748224 Command: GET VARIABLE "XIVO_PATH_ID" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 529861623 Command: SET VARIABLE "XIVO_SCHEDULE_STATUS" "opened" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_SCHEDULE_STATUS Value: opened Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 529861623 Command: SET VARIABLE "XIVO_SCHEDULE_STATUS" "opened" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 247671395 Command: SET VARIABLE "XIVO_PATH" "" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_PATH Value: Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 247671395 Command: SET VARIABLE "XIVO_PATH" "" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 1521265820 Command: VERBOSE "AGI handler 'check_schedule' successfully executed" 1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 1521265820 Command: VERBOSE "AGI handler 'check_schedule' successfully executed" 1 ResultCode: 200 Result: Success Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: AGISTATUS Value: SUCCESS Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: user Extension: s Priority: 19 Application: GotoIf AppData: 0?CLOSED,1 Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: user Extension: s Priority: 20 Application: Gosub AppData: xivo-ring_type_set,s,1 Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: LOCAL(ARG1) Value: Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: LOCAL(ARG2) Value: Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: LOCAL(ARGC) Value: 0 Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: xivo-ring_type_set Extension: s Priority: 1 Application: SIPRemoveHeader AppData: Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: xivo-ring_type_set Extension: s Priority: 2 Application: AGI AppData: agi://127.0.0.1/getring Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 856664788 Command: GET VARIABLE "XIVO_DSTNUM" Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 856664788 Command: GET VARIABLE "XIVO_DSTNUM" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 1364230963 Command: GET VARIABLE "XIVO_CONTEXT" Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 1364230963 Command: GET VARIABLE "XIVO_CONTEXT" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 614123106 Command: GET VARIABLE "XIVO_CALLORIGIN" Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 614123106 Command: GET VARIABLE "XIVO_CALLORIGIN" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 761458624 Command: GET VARIABLE "XIVO_FWD_REFERER" Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 761458624 Command: GET VARIABLE "XIVO_FWD_REFERER" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 1662038702 Command: GET VARIABLE "XIVO_CALLFORWARDED" Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 1662038702 Command: GET VARIABLE "XIVO_CALLFORWARDED" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 2048818366 Command: SET VARIABLE "XIVO_RINGTYPE" "" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_RINGTYPE Value: Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 2048818366 Command: SET VARIABLE "XIVO_RINGTYPE" "" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 1199810507 Command: VERBOSE "Using the native phone ring tone" 1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 1199810507 Command: VERBOSE "Using the native phone ring tone" 1 ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 1443535372 Command: VERBOSE "AGI handler 'getring' successfully executed" 1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 1443535372 Command: VERBOSE "AGI handler 'getring' successfully executed" 1 ResultCode: 200 Result: Success Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: AGISTATUS Value: SUCCESS Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: xivo-ring_type_set Extension: s Priority: 3 Application: GotoIf AppData: ?:exit Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: xivo-ring_type_set Extension: s Priority: 8 Application: Return AppData: Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: GOSUB_RETVAL Value: Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: user Extension: s Priority: 21 Application: Gosub AppData: xivo-subroutine,s,1() Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: LOCAL(ARG1) Value: Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: LOCAL(ARG2) Value: Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: LOCAL(ARGC) Value: 0 Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: xivo-subroutine Extension: s Priority: 1 Application: GotoIf AppData: ?:nosubroutine Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: xivo-subroutine Extension: s Priority: 4 Application: Return AppData: Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: GOSUB_RETVAL Value: Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: user Extension: s Priority: 22 Application: Set AppData: XIVO_RINGSECONDS=30 Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_RINGSECONDS Value: 30 Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: user Extension: s Priority: 23 Application: Gosub AppData: xivo-user_rights_check,s,1 Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: LOCAL(ARG1) Value: Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: LOCAL(ARG2) Value: Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: LOCAL(ARGC) Value: 0 Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: xivo-user_rights_check Extension: s Priority: 1 Application: AGI AppData: agi://127.0.0.1/user_set_call_rights Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 1429765793 Command: GET VARIABLE "XIVO_USERID" Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 1429765793 Command: GET VARIABLE "XIVO_USERID" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 786282626 Command: GET VARIABLE "XIVO_DSTNUM" Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 786282626 Command: GET VARIABLE "XIVO_DSTNUM" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 647842738 Command: GET VARIABLE "XIVO_OUTCALLID" Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 647842738 Command: GET VARIABLE "XIVO_OUTCALLID" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 1467594794 Command: SET VARIABLE "XIVO_AUTHORIZATION" "ALLOW" Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: XIVO_AUTHORIZATION Value: ALLOW Uniqueid: 1414510600.0 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 1467594794 Command: SET VARIABLE "XIVO_AUTHORIZATION" "ALLOW" ResultCode: 200 Result: Success Event: AGIExec Privilege: agi,all SubEvent: Start Channel: SIP/ddddd-00000000 CommandId: 1574737600 Command: VERBOSE "AGI handler 'user_set_call_rights' successfully executed" 1 Event: AGIExec Privilege: agi,all SubEvent: End Channel: SIP/ddddd-00000000 CommandId: 1574737600 Command: VERBOSE "AGI handler 'user_set_call_rights' successfully executed" 1 ResultCode: 200 Result: Success Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: AGISTATUS Value: SUCCESS Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: xivo-user_rights_check Extension: s Priority: 2 Application: GotoIf AppData: ALLOW?:error,1 Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: xivo-user_rights_check Extension: s Priority: 3 Application: GotoIf AppData: 1?allow,1 Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: xivo-user_rights_check Extension: allow Priority: 1 Application: NoOp AppData: User allowed to make call Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: xivo-user_rights_check Extension: allow Priority: 2 Application: Return AppData: Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: GOSUB_RETVAL Value: Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: user Extension: s Priority: 24 Application: GotoIf AppData: 0?dial_from_queue,1 Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: user Extension: s Priority: 25 Application: GotoIf AppData: 0?xivo-user_callfilter,s,1 Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: user Extension: s Priority: 26 Application: GotoIf AppData: ?:28 Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: user Extension: s Priority: 28 Application: GotoIf AppData: 0?DND,1 Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: user Extension: s Priority: 29 Application: DumpChan AppData: 7 Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: user Extension: s Priority: 30 Application: NoOp AppData: XIVO_ENABLEUNC: 0 XIVO_SRCNUM: 259 XIVO_FWD_USER_UNC_ACTIONARG: Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: user Extension: s Priority: 31 Application: GotoIf AppData: 0?UNC,1 Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: user Extension: s Priority: 32 Application: GotoIf AppData: 0?dial_from_group,1 Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: user Extension: s Priority: 33 Application: GotoIf AppData: 0?BUSY,1 Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: user Extension: s Priority: 34 Application: Set AppData: OUTBOUND_GROUP_ONCE=147@XIVO_USER Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: OUTBOUND_GROUP_ONCE Value: 147@XIVO_USER Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: user Extension: s Priority: 35 Application: Gosub AppData: xivo-connectedline,s,1(254,L G) Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: LOCAL(ARG1) Value: 254 Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: LOCAL(ARG2) Value: L G Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: LOCAL(ARGC) Value: 2 Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: xivo-connectedline Extension: s Priority: 1 Application: NoOp AppData: Generic subroutine for connectedline Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: xivo-connectedline Extension: s Priority: 2 Application: Set AppData: CONNECTEDLINE(all,i)=L G <254> Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: xivo-connectedline Extension: s Priority: 3 Application: Return AppData: Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: GOSUB_RETVAL Value: Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: user Extension: s Priority: 36 Application: Gosub AppData: xivo-global-subroutine,s,1 Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: LOCAL(ARG1) Value: Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: LOCAL(ARG2) Value: Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: LOCAL(ARGC) Value: 0 Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: xivo-global-subroutine Extension: s Priority: 1 Application: GotoIf AppData: 1?:return Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: xivo-global-subroutine Extension: s Priority: 2 Application: GotoIf AppData: USER?:return Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: xivo-global-subroutine Extension: s Priority: 3 Application: GotoIf AppData: xivo-subrgbl-user?:return Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: xivo-global-subroutine Extension: s Priority: 4 Application: GotoIf AppData: 1?:return Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: xivo-global-subroutine Extension: s Priority: 5 Application: Gosub AppData: xivo-subrgbl-user,s,1 Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: LOCAL(ARG1) Value: Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: LOCAL(ARG2) Value: Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: LOCAL(ARGC) Value: 0 Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: xivo-subrgbl-user Extension: s Priority: 1 Application: Verbose AppData: 3, "-= ALLOcloud preprocess subroutine groups =-" Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: xivo-subrgbl-user Extension: s Priority: 2 Application: Verbose AppData: 3, "-= Test if the user is busy =-" Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: xivo-subrgbl-user Extension: s Priority: 3 Application: Set AppData: COUNT_BUSY=NOT_INUSE Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: COUNT_BUSY Value: NOT_INUSE Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: xivo-subrgbl-user Extension: s Priority: 4 Application: GotoIf AppData: 1?return Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: xivo-subrgbl-user Extension: s Priority: 9 Application: Verbose AppData: 3, "-= Returning to the original call-flow =-" Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: xivo-subrgbl-user Extension: s Priority: 10 Application: Return AppData: Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: GOSUB_RETVAL Value: Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: xivo-global-subroutine Extension: s Priority: 6 Application: Return AppData: Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: GOSUB_RETVAL Value: Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: user Extension: s Priority: 37 Application: Gosub AppData: originate-caller-id,s,1 Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: LOCAL(ARG1) Value: Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: LOCAL(ARG2) Value: Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: LOCAL(ARGC) Value: 0 Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: originate-caller-id Extension: s Priority: 1 Application: GotoIf AppData: 0?:name Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: originate-caller-id Extension: s Priority: 3 Application: GotoIf AppData: 0?:end Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: originate-caller-id Extension: s Priority: 5 Application: Return AppData: Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: GOSUB_RETVAL Value: Uniqueid: 1414510600.0 Event: Newexten Privilege: dialplan,all Channel: SIP/ddddd-00000000 Context: user Extension: s Priority: 38 Application: Dial AppData: SIP/uuuuu,30,hHtT Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: DIALSTATUS Value: Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: DIALEDPEERNUMBER Value: Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: DIALEDPEERNAME Value: Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: ANSWEREDTIME Value: Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: DIALEDTIME Value: Uniqueid: 1414510600.0 Event: Newchannel Privilege: call,all Channel: SIP/uuuuu-00000001 ChannelState: 0 ChannelStateDesc: Down CallerIDNum: 254 CallerIDName: L G AccountCode: Exten: Context: default Uniqueid: 1414510609.3 Event: VarSet Privilege: dialplan,all Channel: SIP/uuuuu-00000001 Variable: SIPCALLID Value: 414b3fd56f10332d23de4bda18636dc0@192.168.0.1:5060 Uniqueid: 1414510609.3 Event: VarSet Privilege: dialplan,all Channel: SIP/uuuuu-00000001 Variable: XIVO_USERID Value: 147 Uniqueid: 1414510609.3 Event: VarSet Privilege: dialplan,all Channel: SIP/uuuuu-00000001 Variable: PICKUPMARK Value: 254%default Uniqueid: 1414510609.3 Event: VarSet Privilege: dialplan,all Channel: SIP/uuuuu-00000001 Variable: TRANSFER_CONTEXT Value: default Uniqueid: 1414510609.3 Event: ChannelUpdate Privilege: system,all Channel: SIP/uuuuu-00000001 Uniqueid: 1414510609.3 Channeltype: SIP SIPcallid: 414b3fd56f10332d23de4bda18636dc0@192.168.0.1:5060 SIPfullcontact: sip:uuuuu@192.168.0.2:5060 Event: ChannelUpdate Privilege: system,all Channel: SIP/uuuuu-00000001 Channeltype: SIP SIPcallid: 414b3fd56f10332d23de4bda18636dc0@192.168.0.1:5060 SIPfullcontact: sip:uuuuu@192.168.0.2:5060 Peername: uuuuu Event: VarSet Privilege: dialplan,all Channel: SIP/uuuuu-00000001 Variable: DIALEDPEERNUMBER Value: uuuuu Uniqueid: 1414510609.3 Event: Dial Privilege: call,all SubEvent: Begin Channel: SIP/ddddd-00000000 Destination: SIP/uuuuu-00000001 CallerIDNum: 259 CallerIDName: S F ConnectedLineNum: 254 ConnectedLineName: L G UniqueID: 1414510600.0 DestUniqueID: 1414510609.3 Dialstring: uuuuu Event: CEL Privilege: call,all EventName: CHAN_START AccountCode: CallerIDnum: 254 CallerIDname: L G CallerIDani: CallerIDrdnis: CallerIDdnid: Exten: s Context: default Channel: SIP/uuuuu-00000001 Application: AppData: EventTime: 2014-10-28 16:36:49 AMAFlags: DOCUMENTATION UniqueID: 1414510609.3 LinkedID: 1414510600.0 Userfield: Peer: PeerAccount: Extra: Event: ExtensionStatus Privilege: call,all Exten: 254 Context: default Hint: SIP/uuuuu Status: 8 Event: ExtensionStatus Privilege: call,all Exten: *666147 Context: default Hint: SIP/uuuuu Status: 8 Event: SIPRinging Privilege: system,all Peer: SIP/uuuuu Event: Newstate Privilege: call,all Channel: SIP/uuuuu-00000001 ChannelState: 5 ChannelStateDesc: Ringing CallerIDNum: 254 CallerIDName: L G ConnectedLineNum: 259 ConnectedLineName: S F Uniqueid: 1414510609.3 Event: ChannelUpdate Privilege: system,all Channel: SIP/uuuuu-00000001 Channeltype: SIP Uniqueid: 1414510609.3 SIPcallid: 414b3fd56f10332d23de4bda18636dc0@192.168.0.1:5060 SIPfullcontact: sip:uuuuu@192.168.2.27:5060 Peername: uuuuu Event: Newstate Privilege: call,all Channel: SIP/uuuuu-00000001 ChannelState: 6 ChannelStateDesc: Up CallerIDNum: 254 CallerIDName: L G ConnectedLineNum: 259 ConnectedLineName: S F Uniqueid: 1414510609.3 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: DIALSTATUS Value: ANSWER Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: DIALEDPEERNAME Value: SIP/uuuuu-00000001 Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: DIALEDPEERNUMBER Value: uuuuu Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: BRIDGEPEER Value: SIP/uuuuu-00000001 Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/uuuuu-00000001 Variable: BRIDGEPEER Value: SIP/ddddd-00000000 Uniqueid: 1414510609.3 Event: NewAccountCode Privilege: call,all Channel: SIP/uuuuu-00000001 Uniqueid: 1414510609.3 AccountCode: OldAccountCode: Event: Bridge Privilege: call,all Bridgestate: Link Bridgetype: core Channel1: SIP/ddddd-00000000 Channel2: SIP/uuuuu-00000001 Uniqueid1: 1414510600.0 Uniqueid2: 1414510609.3 CallerID1: 259 CallerID2: 254 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: BRIDGEPEER Value: SIP/uuuuu-00000001 Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: BRIDGEPVTCALLID Value: 414b3fd56f10332d23de4bda18636dc0@192.168.0.1:5060 Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/uuuuu-00000001 Variable: BRIDGEPEER Value: SIP/ddddd-00000000 Uniqueid: 1414510609.3 Event: VarSet Privilege: dialplan,all Channel: SIP/uuuuu-00000001 Variable: BRIDGEPVTCALLID Value: 417341300e78b1ef0389221173d5bf6f@192.168.0.1:5060 Uniqueid: 1414510609.3 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: BRIDGEPEER Value: SIP/uuuuu-00000001 Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: BRIDGEPVTCALLID Value: 414b3fd56f10332d23de4bda18636dc0@192.168.0.1:5060 Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/uuuuu-00000001 Variable: BRIDGEPEER Value: SIP/ddddd-00000000 Uniqueid: 1414510609.3 Event: VarSet Privilege: dialplan,all Channel: SIP/uuuuu-00000001 Variable: BRIDGEPVTCALLID Value: 417341300e78b1ef0389221173d5bf6f@192.168.0.1:5060 Uniqueid: 1414510609.3 Event: CEL Privilege: call,all EventName: ANSWER AccountCode: CallerIDnum: 254 CallerIDname: L G CallerIDani: 254 CallerIDrdnis: CallerIDdnid: Exten: s Context: default Channel: SIP/uuuuu-00000001 Application: AppDial AppData: (Outgoing Line) EventTime: 2014-10-28 16:36:53 AMAFlags: DOCUMENTATION UniqueID: 1414510609.3 LinkedID: 1414510600.0 Userfield: Peer: PeerAccount: Extra: Event: CEL Privilege: call,all EventName: BRIDGE_START AccountCode: CallerIDnum: 259 CallerIDname: S F CallerIDani: CallerIDrdnis: CallerIDdnid: Exten: s Context: user Channel: SIP/ddddd-00000000 Application: Dial AppData: SIP/uuuuu,30,hHtT EventTime: 2014-10-28 16:36:53 AMAFlags: DOCUMENTATION UniqueID: 1414510600.0 LinkedID: 1414510600.0 Userfield: Peer: SIP/uuuuu-00000001 PeerAccount: Extra: Event: ExtensionStatus Privilege: call,all Exten: 254 Context: default Hint: SIP/uuuuu Status: 1 Event: ExtensionStatus Privilege: call,all Exten: *666147 Context: default Hint: SIP/uuuuu Status: 1 Event: Bridge Privilege: call,all Bridgestate: Unlink Bridgetype: core Channel1: SIP/ddddd-00000000 Channel2: SIP/uuuuu-00000001 Uniqueid1: 1414510600.0 Uniqueid2: 1414510609.3 CallerID1: 259 CallerID2: 254 Event: Bridge Privilege: call,all Bridgestate: Link Bridgetype: core Channel1: SIP/ddddd-00000000 Channel2: SIP/uuuuu-00000001 Uniqueid1: 1414510600.0 Uniqueid2: 1414510609.3 CallerID1: 259 CallerID2: 254 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: BRIDGEPEER Value: SIP/uuuuu-00000001 Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: BRIDGEPVTCALLID Value: 414b3fd56f10332d23de4bda18636dc0@192.168.0.1:5060 Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/uuuuu-00000001 Variable: BRIDGEPEER Value: SIP/ddddd-00000000 Uniqueid: 1414510609.3 Event: VarSet Privilege: dialplan,all Channel: SIP/uuuuu-00000001 Variable: BRIDGEPVTCALLID Value: 417341300e78b1ef0389221173d5bf6f@192.168.0.1:5060 Uniqueid: 1414510609.3 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: BRIDGEPEER Value: SIP/uuuuu-00000001 Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: BRIDGEPVTCALLID Value: 414b3fd56f10332d23de4bda18636dc0@192.168.0.1:5060 Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/uuuuu-00000001 Variable: BRIDGEPEER Value: SIP/ddddd-00000000 Uniqueid: 1414510609.3 Event: VarSet Privilege: dialplan,all Channel: SIP/uuuuu-00000001 Variable: BRIDGEPVTCALLID Value: 417341300e78b1ef0389221173d5bf6f@192.168.0.1:5060 Uniqueid: 1414510609.3 Event: RTCPReceived Privilege: reporting,all From: 192.168.0.2:58873 PT: 200(Sender Report) ReceptionReports: 1 SenderSSRC: 16777217 FractionLost: 1 PacketsLost: 1 HighestSequence: 36085 SequenceNumberCycles: 0 IAJitter: 0 LastSR: 0.0000000000 DLSR: 0.0000(sec) Event: RTCPSent Privilege: reporting,all To: 192.168.0.2:58873 OurSSRC: 842807399 SentNTP: 1414510614.1545428992 SentRTP: 32160 SentPackets: 201 SentOctets: 32160 ReportBlock: FractionLost: 0 CumulativeLoss: 0 IAJitter: 0.0084 TheirLastSR: 915837296 DLSR: 0.3830 (sec) Event: VarSet Privilege: dialplan,all Channel: SIP/uuuuu-00000001 Variable: RTPAUDIOQOS Value: ssrc=1171868064;themssrc=0;lp=0;rxjitter=0.000000;rxcount=0;txjitter=0.000000;txcount=227;rlp=0;rtt=0.000000 Uniqueid: 1414510609.3 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: RTPAUDIOQOSBRIDGED Value: ssrc=1171868064;themssrc=0;lp=0;rxjitter=0.000000;rxcount=0;txjitter=0.000000;txcount=227;rlp=0;rtt=0.000000 Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/uuuuu-00000001 Variable: RTPAUDIOQOSJITTER Value: minrxjitter=0.000000;maxrxjitter=0.000000;avgrxjitter=0.000000;stdevrxjitter=0.000000;reported_minjitter=0.000000;reported_maxjitter=0.000000;reported_avgjitter=0.000000;reported_stdevjitter=0.000000; Uniqueid: 1414510609.3 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: RTPAUDIOQOSJITTERBRIDGED Value: minrxjitter=0.000000;maxrxjitter=0.000000;avgrxjitter=0.000000;stdevrxjitter=0.000000;reported_minjitter=0.000000;reported_maxjitter=0.000000;reported_avgjitter=0.000000;reported_stdevjitter=0.000000; Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/uuuuu-00000001 Variable: RTPAUDIOQOSLOSS Value: minrxlost=0.000000;maxrxlost=0.000000;avgrxlost=0.000000;stdevrxlost=0.000000;reported_minlost=0.000000;reported_maxlost=0.000000;reported_avglost=0.000000;reported_stdevlost=0.000000; Uniqueid: 1414510609.3 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: RTPAUDIOQOSLOSSBRIDGED Value: minrxlost=0.000000;maxrxlost=0.000000;avgrxlost=0.000000;stdevrxlost=0.000000;reported_minlost=0.000000;reported_maxlost=0.000000;reported_avglost=0.000000;reported_stdevlost=0.000000; Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/uuuuu-00000001 Variable: RTPAUDIOQOSRTT Value: minrtt=0.000000;maxrtt=0.000000;avgrtt=0.000000;stdevrtt=0.000000; Uniqueid: 1414510609.3 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: RTPAUDIOQOSRTTBRIDGED Value: minrtt=0.000000;maxrtt=0.000000;avgrtt=0.000000;stdevrtt=0.000000; Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: RTPAUDIOQOS Value: ssrc=842807399;themssrc=1853077823;lp=0;rxjitter=0.000000;rxcount=425;txjitter=0.009670;txcount=201;rlp=1;rtt=0.000000 Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/uuuuu-00000001 Variable: RTPAUDIOQOSBRIDGED Value: ssrc=842807399;themssrc=1853077823;lp=0;rxjitter=0.000000;rxcount=425;txjitter=0.009670;txcount=201;rlp=1;rtt=0.000000 Uniqueid: 1414510609.3 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: RTPAUDIOQOSJITTER Value: minrxjitter=0.000000;maxrxjitter=0.000000;avgrxjitter=0.000000;stdevrxjitter=0.000000;reported_minjitter=0.000000;reported_maxjitter=0.000000;reported_avgjitter=0.000000;reported_stdevjitter=0.000000; Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/uuuuu-00000001 Variable: RTPAUDIOQOSJITTERBRIDGED Value: minrxjitter=0.000000;maxrxjitter=0.000000;avgrxjitter=0.000000;stdevrxjitter=0.000000;reported_minjitter=0.000000;reported_maxjitter=0.000000;reported_avgjitter=0.000000;reported_stdevjitter=0.000000; Uniqueid: 1414510609.3 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: RTPAUDIOQOSLOSS Value: minrxlost=0.000000;maxrxlost=0.000000;avgrxlost=0.000000;stdevrxlost=0.000000;reported_minlost=0.000000;reported_maxlost=0.000000;reported_avglost=0.000000;reported_stdevlost=0.000000; Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/uuuuu-00000001 Variable: RTPAUDIOQOSLOSSBRIDGED Value: minrxlost=0.000000;maxrxlost=0.000000;avgrxlost=0.000000;stdevrxlost=0.000000;reported_minlost=0.000000;reported_maxlost=0.000000;reported_avglost=0.000000;reported_stdevlost=0.000000; Uniqueid: 1414510609.3 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: RTPAUDIOQOSRTT Value: minrtt=0.000000;maxrtt=0.000000;avgrtt=0.000000;stdevrtt=0.000000; Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/uuuuu-00000001 Variable: RTPAUDIOQOSRTTBRIDGED Value: minrtt=0.000000;maxrtt=0.000000;avgrtt=0.000000;stdevrtt=0.000000; Uniqueid: 1414510609.3 Event: HangupRequest Privilege: call,all Channel: SIP/uuuuu-00000001 Uniqueid: 1414510609.3 Event: Bridge Privilege: call,all Bridgestate: Unlink Bridgetype: core Channel1: SIP/ddddd-00000000 Channel2: SIP/uuuuu-00000001 Uniqueid1: 1414510600.0 Uniqueid2: 1414510609.3 CallerID1: 259 CallerID2: 254 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: ANSWEREDTIME Value: 5 Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: DIALEDTIME Value: 9 Uniqueid: 1414510600.0 Event: CEL Privilege: call,all EventName: BRIDGE_END AccountCode: CallerIDnum: 259 CallerIDname: S F CallerIDani: CallerIDrdnis: CallerIDdnid: Exten: s Context: user Channel: SIP/ddddd-00000000 Application: Dial AppData: SIP/uuuuu,30,hHtT EventTime: 2014-10-28 16:36:58 AMAFlags: DOCUMENTATION UniqueID: 1414510600.0 LinkedID: 1414510600.0 Userfield: Peer: SIP/uuuuu-00000001 PeerAccount: Extra: Event: Hangup Privilege: call,all Channel: SIP/uuuuu-00000001 Uniqueid: 1414510609.3 CallerIDNum: 254 CallerIDName: L G ConnectedLineNum: 259 ConnectedLineName: S F AccountCode: Cause: 16 Cause-txt: Normal Clearing Event: CEL Privilege: call,all EventName: HANGUP AccountCode: CallerIDnum: 254 CallerIDname: L G CallerIDani: 254 CallerIDrdnis: CallerIDdnid: Exten: Context: user Channel: SIP/uuuuu-00000001 Application: AppDial AppData: (Outgoing Line) EventTime: 2014-10-28 16:36:58 AMAFlags: DOCUMENTATION UniqueID: 1414510609.3 LinkedID: 1414510600.0 Userfield: Peer: PeerAccount: Extra: 16,SIP/uuuuu-00000001, Event: CEL Privilege: call,all EventName: CHAN_END AccountCode: CallerIDnum: 254 CallerIDname: L G CallerIDani: 254 CallerIDrdnis: CallerIDdnid: Exten: Context: user Channel: SIP/uuuuu-00000001 Application: AppDial AppData: (Outgoing Line) EventTime: 2014-10-28 16:36:58 AMAFlags: DOCUMENTATION UniqueID: 1414510609.3 LinkedID: 1414510600.0 Userfield: Peer: PeerAccount: Extra: Event: ExtensionStatus Privilege: call,all Exten: 254 Context: default Hint: SIP/uuuuu Status: 0 Event: ExtensionStatus Privilege: call,all Exten: *666147 Context: default Hint: SIP/uuuuu Status: 0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: DIALSTATUS Value: ANSWER Uniqueid: 1414510600.0 Event: Dial Privilege: call,all SubEvent: End Channel: SIP/ddddd-00000000 UniqueID: 1414510600.0 DialStatus: ANSWER Event: SoftHangupRequest Privilege: call,all Channel: SIP/ddddd-00000000 Uniqueid: 1414510600.0 Cause: 16 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: RTPAUDIOQOS Value: ssrc=842807399;themssrc=1853077823;lp=0;rxjitter=0.000000;rxcount=425;txjitter=0.009670;txcount=201;rlp=1;rtt=0.000000 Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: RTPAUDIOQOSJITTER Value: minrxjitter=0.000000;maxrxjitter=0.000000;avgrxjitter=0.000000;stdevrxjitter=0.000000;reported_minjitter=0.000000;reported_maxjitter=0.000000;reported_avgjitter=0.000000;reported_stdevjitter=0.000000; Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: RTPAUDIOQOSLOSS Value: minrxlost=0.000000;maxrxlost=0.000000;avgrxlost=0.000000;stdevrxlost=0.000000;reported_minlost=0.000000;reported_maxlost=0.000000;reported_avglost=0.000000;reported_stdevlost=0.000000; Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: RTPAUDIOQOSRTT Value: minrtt=0.000000;maxrtt=0.000000;avgrtt=0.000000;stdevrtt=0.000000; Uniqueid: 1414510600.0 Event: VarSet Privilege: dialplan,all Channel: SIP/ddddd-00000000 Variable: RTPAUDIOQOS Value: ssrc=842807399;themssrc=1853077823;lp=0;rxjitter=0.000000;rxcount=425;txjitter=0.009670;txcount=201;rlp=1;rtt=0.000000 Uniqueid: 1414510600.0 Event: Hangup Privilege: call,all Channel: SIP/ddddd-00000000 Uniqueid: 1414510600.0 CallerIDNum: 259 CallerIDName: S F ConnectedLineNum: 254 ConnectedLineName: L G AccountCode: Cause: 16 Cause-txt: Normal Clearing Event: CEL Privilege: call,all EventName: HANGUP AccountCode: CallerIDnum: 259 CallerIDname: S F CallerIDani: CallerIDrdnis: CallerIDdnid: Exten: s Context: user Channel: SIP/ddddd-00000000 Application: AppData: EventTime: 2014-10-28 16:36:58 AMAFlags: DOCUMENTATION UniqueID: 1414510600.0 LinkedID: 1414510600.0 Userfield: Peer: PeerAccount: Extra: 16,SIP/uuuuu-00000001,ANSWER Event: CEL Privilege: call,all EventName: CHAN_END AccountCode: CallerIDnum: 259 CallerIDname: S F CallerIDani: CallerIDrdnis: CallerIDdnid: Exten: s Context: user Channel: SIP/ddddd-00000000 Application: AppData: EventTime: 2014-10-28 16:36:58 AMAFlags: DOCUMENTATION UniqueID: 1414510600.0 LinkedID: 1414510600.0 Userfield: Peer: PeerAccount: Extra: Event: CEL Privilege: call,all EventName: LINKEDID_END AccountCode: CallerIDnum: 259 CallerIDname: S F CallerIDani: CallerIDrdnis: CallerIDdnid: Exten: s Context: user Channel: SIP/ddddd-00000000 Application: AppData: EventTime: 2014-10-28 16:36:58 AMAFlags: DOCUMENTATION UniqueID: 1414510600.0 LinkedID: 1414510600.0 Userfield: Peer: PeerAccount: Extra: Event: ExtensionStatus Privilege: call,all Exten: 259 Context: default Hint: SIP/ddddd Status: 0 Event: ExtensionStatus Privilege: call,all Exten: *666148 Context: default Hint: SIP/ddddd Status: 0panoramisk-1.0/tests/fixtures/login_failed.yaml0000644000175000017500000000032512565072531022257 0ustar gawelgawel00000000000000Asterisk Call Manager/1.3 action: login ActionID: action/transaction_uid/1/1 username: nnnnnnnnn secret: nnnnnnnnnn events: on Response: Error Message: Authentication failed ActionID: action/transaction_uid/1/1 panoramisk-1.0/tests/test_protocol.py0000644000175000017500000000120212565072531020353 0ustar gawelgawel00000000000000# -*- coding: utf-8 -*- from panoramisk.utils import asyncio from panoramisk import testing import pytest @pytest.fixture def conn(request): def callback(*args): pass manager = testing.Manager() manager.register_event('Peer*', callback) return manager.protocol def test_received(conn): conn.data_received(b'Event: None\r\n\r\n') conn.data_received(b'Event: PeerStatus\r\nPeer: gawel\r\n\r\n') conn.data_received(b'Response: Follows\r\nPeer: gawel\r\n\r\n') conn.data_received(b'Response: Success\r\nPing: Pong\r\n\r\n') def test_send(conn): assert isinstance(conn.send({}), asyncio.Future) panoramisk-1.0/tests/test_manager.py0000644000175000017500000001126412565072531020135 0ustar gawelgawel00000000000000# -*- coding: utf-8 -*- import os import pytest from panoramisk import testing from panoramisk import message from panoramisk.utils import asyncio test_dir = os.path.join(os.path.dirname(__file__), 'fixtures') @pytest.fixture def manager(): def manager(stream=None, **config): if stream: config['stream'] = os.path.join(test_dir, stream) return testing.Manager(**config) return manager def test_connection(manager): assert isinstance(manager().connect(), asyncio.Task) def test_ping(manager): manager = manager(stream='ping.yaml') future = manager.send_action({'Action': 'Ping'}) assert 'ping' in future.result() def test_login_ok(manager): manager = manager(username='xx', secret='xx', stream='login_ok.yaml') assert manager.authenticated_future.result().success is True assert manager.login(manager.authenticated_future) is True def test_login_failed(manager): manager = manager(username='xx', secret='xx', stream='login_failed.yaml') assert manager.authenticated_future.result().success is False assert manager.login(manager.authenticated_future) is False def test_logoff(manager): manager = manager(stream='logoff.yaml') future = manager.send_action({'Action': 'logoff'}) assert future.result().success is True def test_queue_status(manager): manager = manager(stream='queue_status.yaml') future = manager.send_action({'Action': 'QueueStatus', 'Queue': 'xxxxxxxxxxxxxxxx-tous'}) responses = future.result() assert len(responses) == 9 def test_command_core_show_version(manager): manager = manager(stream='command_core_show_version.yaml') future = manager.send_command('core show version') responses = future.result() assert len(responses) == 4 # @todo: in responses['content'], # you retrieve only '--END COMMAND--' instead of the result of the command def test_asyncagi_get_variable(manager): manager = manager(stream='asyncagi_get_var.yaml') future = manager.send_agi_command( 'SIP/000000-00000a53', 'GET VARIABLE endpoint') response = future.result()[-1] assert response.result == '200 result=1 (SIP/000000)' pretty_result = response.parsed_result() assert pretty_result['status_code'] == 200 assert pretty_result['result'][0] == '1' assert pretty_result['result'][1] == 'SIP/000000' def test_asyncagi_get_variable_on_dead_channel(manager): manager = manager(stream='asyncagi_channel_does_not_exist.yaml') future = manager.send_agi_command( 'SIP/eeeeee-00000014', 'GET VARIABLE DIALSTATUS') response = future.result() assert response.response == 'Error' assert response.message == 'Channel SIP/eeeeee-00000014 does not exist.' def test_originate_sync(manager): manager = manager(stream='originate_sync.yaml') future = manager.send_action({'Action': 'Originate', 'Async': 'false'}) response = future.result() assert response.success assert response.message == 'Originate successfully queued' def test_close(manager): manager().close() def test_events(manager): future = asyncio.Future() def callback(manager, event): future.set_result(event) manager = manager() manager.register_event('Peer*', callback) event = message.Message.from_line('Event: PeerStatus') assert event.success is True assert event['Event'] == 'PeerStatus' assert 'Event' in event matches = manager.dispatch(event) assert matches == ['Peer*'] assert event is future.result() event = message.Message.from_line('Event: NoPeerStatus') matches = manager.dispatch(event) assert matches == [] def test_coroutine_events_handler(manager): @asyncio.coroutine def callback(manager, event): yield # to create quickly a coroutine generator, don't do that on # production code manager = manager() manager.register_event('Peer*', callback) event = message.Message.from_line('Event: PeerStatus') assert event.success is True assert event['Event'] == 'PeerStatus' assert 'Event' in event matches = manager.dispatch(event) assert matches == ['Peer*'] def test_from_config(tmpdir): f = tmpdir.mkdir("config").join("config.ini") f.write(''' [asterisk] host = 127.0.0.1 user= username secret = mysecret ''') manager = testing.Manager.from_config(str(f)) assert manager.config['secret'] == 'mysecret' with open(str(f)) as fd: manager = testing.Manager.from_config(fd) assert manager.config['secret'] == 'mysecret' def test_pinger(manager): manager = manager() assert isinstance(manager.pinger, asyncio.TimerHandle) manager.close() assert manager.pinger is None