# $Id$ import time import imp import sys import inc_const as const # Load configuration cfg_file = imp.load_source("cfg_file", sys.argv[2]) # Test body function def test_func(t, user_data): callee = t.process[0] caller = t.process[1] # Caller making call caller.send("m") caller.send(t.inst_params[0].uri) caller.expect(const.STATE_CALLING) # Callee answers with 200/OK time.sleep(1) callee.expect(const.EVENT_INCOMING_CALL) callee.send("a") callee.send("200") # Wait until call is connected in both endpoints time.sleep(1) if callee.expect(const.STATE_CONFIRMED, False)==None: raise TestError("Call failed") caller.expect(const.STATE_CONFIRMED) # Synchronize stdout caller.send("echo 1") caller.expect("echo 1") callee.send("echo 1") callee.expect("echo 1") # Test that media is okay (with RFC 2833 DTMF) time.sleep(2) caller.send("#") caller.send("1122") callee.expect(const.RX_DTMF + "1") callee.expect(const.RX_DTMF + "1") callee.expect(const.RX_DTMF + "2") callee.expect(const.RX_DTMF + "2") # Hold call caller.send("H") caller.expect(const.MEDIA_HOLD) callee.expect(const.MEDIA_HOLD) # Release hold time.sleep(2) caller.send("v") caller.expect(const.MEDIA_ACTIVE) callee.expect(const.MEDIA_ACTIVE) # Synchronize stdout caller.send("echo 1") caller.expect("echo 1") callee.send("echo 1") callee.expect("echo 1") # Test that media is okay (with RFC 2833 DTMF) caller.send("#") caller.send("1122") callee.expect(const.RX_DTMF + "1") callee.expect(const.RX_DTMF + "1") callee.expect(const.RX_DTMF + "2") callee.expect(const.RX_DTMF + "2") # Synchronize stdout caller.send("echo 1") caller.expect("echo 1") callee.send("echo 1") callee.expect("echo 1") # UPDATE (by caller) caller.send("U") caller.expect(const.MEDIA_ACTIVE) callee.expect(const.MEDIA_ACTIVE) # Synchronize stdout caller.send("echo 1") caller.expect("echo 1") callee.send("echo 1") callee.expect("echo 1") # Test that media is okay (with RFC 2833 DTMF) time.sleep(2) caller.send("#") caller.send("1122") callee.expect(const.RX_DTMF + "1") callee.expect(const.RX_DTMF + "1") callee.expect(const.RX_DTMF + "2") callee.expect(const.RX_DTMF + "2") # UPDATE (by callee) callee.send("U") callee.expect(const.MEDIA_ACTIVE) caller.expect(const.MEDIA_ACTIVE) # Synchronize stdout caller.send("echo 1") caller.expect("echo 1") callee.send("echo 1") callee.expect("echo 1") # Test that media is okay (with RFC 2833 DTMF) time.sleep(2) caller.send("#") caller.send("1122") callee.expect(const.RX_DTMF + "1") callee.expect(const.RX_DTMF + "1") callee.expect(const.RX_DTMF + "2") callee.expect(const.RX_DTMF + "2") # Hangup call time.sleep(1) caller.send("h") # Wait until calls are cleared in both endpoints caller.expect(const.STATE_DISCONNECTED) callee.expect(const.STATE_DISCONNECTED) # Here where it all comes together test = cfg_file.test_param test.test_func = test_func