count = py_pjsua.call_get_max_count() print "py call get max count " + ` count ` count = py_pjsua.call_get_count() print "py call get count " + ` count ` ids = py_pjsua.enum_calls() for id in ids: print "py enum calls id " + ` id ` msg_data = py_pjsua.Msg_Data() status, id = py_pjsua.call_make_call(-1, "sip:[email protected]", 0, 0, msg_data) print "py call make call " + ` status ` + " id " + ` id ` if status != 0: py_pjsua.perror("py_pjsua", "call make call", status) bool = py_pjsua.call_is_active(id) print "py call is active " + ` bool ` bool = py_pjsua.call_has_media(id) print "py call has media " + ` bool ` cp_id = py_pjsua.call_get_conf_port(id) print "py call get conf port " + ` cp_id ` info = py_pjsua.call_get_info(id) if info != None: print "py info id " + ` info.id ` status = py_pjsua.call_set_user_data(id, 0) print "py call set user data status " + ` status ` if status != 0: py_pjsua.perror("py_pjsua", "set user data", status) user_data = py_pjsua.call_get_user_data(id) print "py call get user data " + ` user_data ` #end of lib call
def app_menu(): global g_acc_id global g_current_call quit = 0 while quit == 0: print_menu() choice = sys.stdin.readline() if choice[0] == "q": quit = 1 elif choice[0] == "i": # Sending IM print "Send IM to SIP URL: ", url = sys.stdin.readline() if url == "\n": continue # Send typing indication py_pjsua.im_typing(g_acc_id, url, 1, None) print "The content: ", message = sys.stdin.readline() if message == "\n": py_pjsua.im_typing(g_acc_id, url, 0, None) continue # Send the IM! py_pjsua.im_send(g_acc_id, url, None, message, None, 0) elif choice[0] == "m": # Make call print "Using account ", g_acc_id print "Make call to SIP URL: ", url = sys.stdin.readline() url = url.replace("\n", "") if url == "": continue # Initiate the call! status, call_id = py_pjsua.call_make_call(g_acc_id, url, 0, 0, None) if status != 0: py_pjsua.perror(THIS_FILE, "Error making call", status) else: g_current_call = call_id elif choice[0] == "+" and choice[1] == "b": # Add new buddy bc = py_pjsua.Buddy_Config() print "Buddy URL: ", bc.uri = sys.stdin.readline() if bc.uri == "\n": continue bc.uri = bc.uri.replace("\n", "") bc.subscribe = 1 status, buddy_id = py_pjsua.buddy_add(bc) if status != 0: py_pjsua.perror(THIS_FILE, "Error adding buddy", status) elif choice[0] == "-" and choice[1] == "b": print "Enter buddy ID to delete : " buf = sys.stdin.readline() buf = buf.replace("\n","") if buf == "": continue i = int(buf) if py_pjsua.buddy_is_valid(i) == 0: print "Invalid buddy id " + `i` else: py_pjsua.buddy_del(i) print "Buddy " + `i` + " deleted" elif choice[0] == "+" and choice[1] == "a": # Add account add_account() elif choice[0] == "-" and choice[1] == "a": print "Enter account ID to delete : " buf = sys.stdin.readline() buf = buf.replace("\n","") if buf == "": continue i = int(buf) if py_pjsua.acc_is_valid(i) == 0: print "Invalid account id " + `i` else: py_pjsua.acc_del(i) print "Account " + `i` + " deleted" elif choice[0] == "+" and choice[1] == "p": add_player() elif choice[0] == "+" and choice[1] == "r": add_recorder() elif choice[0] == "c" and choice[1] == "l": conf_list() elif choice[0] == "c" and choice[1] == "c": connect_port() elif choice[0] == "c" and choice[1] == "d": disconnect_port() elif choice[0] == "d" and choice[1] == "q": dump_call_quality() elif choice[0] == "x": xfer_call() elif choice[0] == "X": xfer_call_replaces() elif choice[0] == "h": if g_current_call != py_pjsua.PJSUA_INVALID_ID: py_pjsua.call_hangup(g_current_call, 603, None, None) else: print "No current call" elif choice[0] == "H": if g_current_call != py_pjsua.PJSUA_INVALID_ID: py_pjsua.call_set_hold(g_current_call, None) else: print "No current call" elif choice[0] == "v": if g_current_call != py_pjsua.PJSUA_INVALID_ID: py_pjsua.call_reinvite(g_current_call, 1, None); else: print "No current call" elif choice[0] == "#": if g_current_call == py_pjsua.PJSUA_INVALID_ID: print "No current call" elif py_pjsua.call_has_media(g_current_call) == 0: print "Media is not established yet!" else: call = g_current_call print "DTMF strings to send (0-9*#A-B)" buf = sys.stdin.readline() buf = buf.replace("\n", "") if buf == "": continue if call != g_current_call: print "Call has been disconnected" continue status = py_pjsua.call_dial_dtmf(g_current_call, buf) if status != 0: py_pjsua.perror(THIS_FILE, "Unable to send DTMF", status); else: print "DTMF digits enqueued for transmission" elif choice[0] == "s": print "Subscribe presence of (buddy id) : " buf = sys.stdin.readline() buf = buf.replace("\n","") if buf == "": continue i = int(buf) py_pjsua.buddy_subscribe_pres(i, 1) elif choice[0] == "u": print "Unsubscribe presence of (buddy id) : " buf = sys.stdin.readline() buf = buf.replace("\n","") if buf == "": continue i = int(buf) py_pjsua.buddy_subscribe_pres(i, 0) elif choice[0] == "t": acc_info = py_pjsua.acc_get_info(g_acc_id) if acc_info.online_status == 0: acc_info.online_status = 1 else: acc_info.online_status = 0 py_pjsua.acc_set_online_status(g_acc_id, acc_info.online_status) st = "" if acc_info.online_status == 0: st = "offline" else: st = "online" print "Setting " + acc_info.acc_uri + " online status to " + st elif choice[0] == "r": if choice[1] == "r": py_pjsua.acc_set_registration(g_acc_id, 1) elif choice[1] == "u": py_pjsua.acc_set_registration(g_acc_id, 0) elif choice[0] == "d": py_pjsua.dump(choice[1] == "d") elif choice[0] == "a": if g_current_call != py_pjsua.PJSUA_INVALID_ID: py_pjsua.call_answer(g_current_call, 200, None, None) else: print "No current call"
count = py_pjsua.call_get_max_count() print "py call get max count " + `count` count = py_pjsua.call_get_count() print "py call get count " + `count` ids = py_pjsua.enum_calls() for id in ids: print "py enum calls id " + `id` msg_data = py_pjsua.Msg_Data() status, id = py_pjsua.call_make_call(-1, "sip:[email protected]", 0, 0, msg_data) print "py call make call " + `status` + " id " + `id` if status != 0 : py_pjsua.perror("py_pjsua","call make call",status) bool = py_pjsua.call_is_active(id) print "py call is active " + `bool` bool = py_pjsua.call_has_media(id) print "py call has media " + `bool` cp_id = py_pjsua.call_get_conf_port(id) print "py call get conf port " + `cp_id` info = py_pjsua.call_get_info(id) if info != None : print "py info id " + `info.id` status = py_pjsua.call_set_user_data(id, 0) print "py call set user data status " + `status` if status != 0 : py_pjsua.perror("py_pjsua","set user data",status) user_data = py_pjsua.call_get_user_data(id) print "py call get user data " + `user_data`