#!/usr/bin/env python
'''
Copyright (C) 2010, Digium, Inc.
Mark Michelson <mmichelson@digium.com>

This program is free software, distributed under the terms of
the GNU General Public License Version 2.
'''
import sys
from twisted.internet import reactor
from starpy import manager
import logging

sys.path.append("lib/python")
from asterisk.asterisk import Asterisk
from asterisk.test_case import TestCase

logger = logging.getLogger(__name__)

class UdptlTest(TestCase):
    def __init__(self):
        TestCase.__init__(self)

        self.reactor_timeout = 60
        self.create_asterisk(2)

    def ami_connect(self, ami):
        if ami.id == 0:
            self.ami[0].originate(channel = "SIP/666@receiver",
                    application = "SendFax",
                    data = "tests/udptl/1page.tif")
        elif ami.id == 1:
            self.ami[1].registerEvent("UserEvent", self.check_recv_fax_result)

    def check_recv_fax_result(self, ami, event):
        if event.get("userevent").lower() != "recvstatus":
            return

        status = event.get("status")
        logger.debug("Status of FAX is %s" % (status))
        if status == "SUCCESS":
            self.passed = True
            logger.debug("UDPTL test passed!")
        else:
            self.passed = False
            logger.warn("UDPTL test failed!")
        self.stop_reactor()

    def run(self):
        TestCase.run(self)
        self.create_ami_factory(2)


def main():
    # Run UDPTL test
    test = UdptlTest()
    test.start_asterisk()
    reactor.run()
    test.stop_asterisk()

    if not test.passed:
        return 1
    return 0

if __name__ == "__main__":
    sys.exit(main() or 0)

# vim:sw=4:ts=4:expandtab:textwidth=79
