From 1c009430af80260d67c47652783931414989c75d Mon Sep 17 00:00:00 2001 From: gsmselftest Date: Wed, 9 Nov 2011 16:41:00 +0100 Subject: Final folder team project --- For Weekly Test/tricode/callorigTest.py | 172 -------------------------------- 1 file changed, 172 deletions(-) delete mode 100644 For Weekly Test/tricode/callorigTest.py (limited to 'For Weekly Test/tricode/callorigTest.py') diff --git a/For Weekly Test/tricode/callorigTest.py b/For Weekly Test/tricode/callorigTest.py deleted file mode 100644 index 13c0561..0000000 --- a/For Weekly Test/tricode/callorigTest.py +++ /dev/null @@ -1,172 +0,0 @@ -# $Id$ -# -# SIP call sample. -# -# Copyright (C) 2003-2008 Benny Prijono -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -import sys -import pjsua as pj - -LOG_LEVEL=3 -current_call = None - -# Logging callback -def log_cb(level, str, len): - print str, - - -# Callback to receive events from account -class MyAccountCallback(pj.AccountCallback): - - def __init__(self, account=None): - pj.AccountCallback.__init__(self, account) - - # Notification on incoming call - def on_incoming_call(self, call): - global current_call - if current_call: - call.answer(486, "Busy") - return - - print "Incoming call from ", call.info().remote_uri - print "Press 'a' to answer" - - current_call = call - - call_cb = MyCallCallback(current_call) - current_call.set_callback(call_cb) - - current_call.answer(180) - - -# Callback to receive events from Call -class MyCallCallback(pj.CallCallback): - - def __init__(self, call=None): - pj.CallCallback.__init__(self, call) - - # Notification when call state has changed - def on_state(self): - global current_call - print "Call with", self.call.info().remote_uri, - print "is", self.call.info().state_text, - print "last code =", self.call.info().last_code, - print "(" + self.call.info().last_reason + ")" - - if self.call.info().state == pj.CallState.DISCONNECTED: - current_call = None - print 'Current call is', current_call - - # Notification when call's media state has changed. - def on_media_state(self): - if self.call.info().media_state == pj.MediaState.ACTIVE: - # Connect the call to sound device - call_slot = self.call.info().conf_slot - pj.Lib.instance().conf_connect(call_slot, 0) - pj.Lib.instance().conf_connect(0, call_slot) - print "Media is now active" - else: - print "Media is inactive" - -# Function to make call -def make_call(uri): - try: - print "Making call to", uri - return acc.make_call(uri, cb=MyCallCallback()) - except pj.Error, e: - print "Exception: " + str(e) - return None - - -# Create library instance -lib = pj.Lib() - -try: - # Init library with default config and some customized - # logging config. - lib.init(log_cfg = pj.LogConfig(level=LOG_LEVEL, callback=log_cb)) - - # Create UDP transport which listens to any available port - transport = lib.create_transport(pj.TransportType.UDP, - pj.TransportConfig(0)) - print "\nListening on", transport.info().host, - print "port", transport.info().port, "\n" - - # Start the library - lib.start() - lib.set_null_snd_dev() - - # Create local account - acc_cfg = pj.AccountConfig("132.230.4.8", "mpselftest1", "1mpselftest") - #acc_cfg = pj.AccountConfig("132.230.252.228", "4976120397898", "itzEfmLkzvS9") - acc = lib.create_account(acc_cfg, cb=MyAccountCallback()) - - # If argument is specified then make call to the URI - if len(sys.argv) > 1: - lck = lib.auto_lock() - current_call = make_call(sys.argv[1]) - print 'Current call is', current_call - del lck - - my_sip_uri = "sip:" + transport.info().host + \ - ":" + str(transport.info().port) - - # Menu loop - while True: - print "My SIP URI is", my_sip_uri - print "Menu: m=make call, h=hangup call, a=answer call, q=quit" - - input = sys.stdin.readline().rstrip("\r\n") - if input == "m": - if current_call: - print "Already have another call" - continue - print "Enter destination URI to call: ", - input = sys.stdin.readline().rstrip("\r\n") - if input == "": - continue - lck = lib.auto_lock() - current_call = make_call("sip:"+input+"@132.230.4.8") - del lck - - elif input == "h": - if not current_call: - print "There is no call" - continue - current_call.hangup() - - elif input == "a": - if not current_call: - print "There is no call" - continue - current_call.answer(200) - - elif input == "q": - break - - # Shutdown the library - transport = None - acc.delete() - acc = None - lib.destroy() - lib = None - -except pj.Error, e: - print "Exception: " + str(e) - lib.destroy() - lib = None - -- cgit v1.2.3-55-g7522