From ed224137da84e8e214588f4207f0da2842a47cf4 Mon Sep 17 00:00:00 2001 From: sje Date: Fri, 13 Jul 2007 04:28:21 +0000 Subject: updated dependencies git-svn-id: https://server.scottellis.com.au/svn/mim_plugs@283 4f64403b-2f21-0410-a795-97e2b3489a10 --- iax/iax_interface.cpp | 60 ++++++++++++++++++++++++++------------------------- 1 file changed, 31 insertions(+), 29 deletions(-) (limited to 'iax/iax_interface.cpp') diff --git a/iax/iax_interface.cpp b/iax/iax_interface.cpp index 8004ca0..c03bf23 100644 --- a/iax/iax_interface.cpp +++ b/iax/iax_interface.cpp @@ -23,7 +23,7 @@ typedef struct { LineInfo line_info[NUM_LINES] = {0}; int reg_id = 0; -double silence_threshold = -99; +float silence_threshold = -99; //double silence_threshold = 0; void SendDTMF(char c) { @@ -59,6 +59,7 @@ int GetLineState(int line) { void AnswerCall(int callNo) { WMPPause(); iaxc_answer_call(callNo); + iaxc_select_call(callNo); } char *GetLineCIDNum(int callNo) { @@ -72,7 +73,7 @@ char *GetLineCIDName(int callNo) { int text_event_callback(iaxc_ev_text text) { switch(text.type) { case IAXC_TEXT_TYPE_STATUS: - //ShowInfo(Translate("Status: %s"), Translate(text.message)); + ShowInfo(Translate("Status: %s"), Translate(text.message)); break; case IAXC_TEXT_TYPE_NOTICE: ShowInfo(Translate("Notice: %s"), Translate(text.message)); @@ -187,39 +188,38 @@ int state_event_callback(iaxc_ev_call_state call){ bool ringing = (call.state & IAXC_CALL_STATE_RINGING) != 0; bool outgoing = (call.state & IAXC_CALL_STATE_OUTGOING) != 0; - if(ringing) { - - if(!line_info[call.callNo].ring_thread) { - CloseHandle((HANDLE)_beginthreadex(0, 0, RingThread, (void *)call.callNo, 0, 0)); - line_info[call.callNo].ring_thread = true; + if(!active) { + DBWriteContactSettingWord(hContact, MODULE, "Status", ID_STATUS_ONLINE); + DWORD current_time = (DWORD)time(0), last_call = DBGetContactSettingDword(hContact, MODULE, "LastCall", current_time); + if(current_time - last_call > 0) { + DBWriteContactSettingDword(hContact, MODULE, "LastCallDuration", current_time - last_call); } + DBWriteContactSettingByte(hContact, MODULE, "LineNo", 0xff); + } else { + if(ringing) { - if(!hContact) hContact = CreateContact(call.remote, call.remote, true); //call.remote_name); - DBWriteContactSettingByte(hContact, MODULE, "LineNo", call.callNo); - if(outgoing) { - DBWriteContactSettingWord(hContact, MODULE, "Status", ID_STATUS_NA); - if(options.pop_dial_out) ShowDialDialog(false); - } else { - DBWriteContactSettingWord(hContact, MODULE, "Status", ID_STATUS_FREECHAT); - if(options.pop_dial_in) ShowDialDialog(false); - } + if(!line_info[call.callNo].ring_thread) { + CloseHandle((HANDLE)_beginthreadex(0, 0, RingThread, (void *)call.callNo, 0, 0)); + line_info[call.callNo].ring_thread = true; + } + + if(!hContact) hContact = CreateContact(call.remote, call.remote, true); //call.remote_name); + DBWriteContactSettingByte(hContact, MODULE, "LineNo", call.callNo); + if(outgoing) { + DBWriteContactSettingWord(hContact, MODULE, "Status", ID_STATUS_NA); + if(options.pop_dial_out) ShowDialDialog(false); + } else { + DBWriteContactSettingWord(hContact, MODULE, "Status", ID_STATUS_FREECHAT); + if(options.pop_dial_in) ShowDialDialog(false); + } - } else if(hContact) { - if(active) { + } else if(hContact) { DBWriteContactSettingWord(hContact, MODULE, "Status", ID_STATUS_ONTHEPHONE); DBWriteContactSettingDword(hContact, MODULE, "LastCall", (DWORD)time(0)); DBWriteContactSettingByte(hContact, MODULE, "LineNo", call.callNo); - } else { - DBWriteContactSettingWord(hContact, MODULE, "Status", ID_STATUS_ONLINE); - DWORD current_time = (DWORD)time(0), last_call = DBGetContactSettingDword(hContact, MODULE, "LastCall", current_time); - if(current_time - last_call > 0) { - DBWriteContactSettingDword(hContact, MODULE, "LastCallDuration", current_time - last_call); - } - DBWriteContactSettingByte(hContact, MODULE, "LineNo", 0xff); } } - return 0; } @@ -227,7 +227,6 @@ int registration_event_callback(iaxc_ev_registration reg) { if(reg.reply == IAXC_REGISTRATION_REPLY_ACK) { SetStatusAndACK(ID_STATUS_ONLINE); if(reg.msgcount > 0) ShowInfo(Translate("You have %d messages."), reg.msgcount); - SetLineNo(0); SetContactStatus(ID_STATUS_ONLINE); } else if(reg.reply == IAXC_REGISTRATION_REPLY_REJ) { if(reg_id) ShowError(Translate("Registration rejected")); @@ -260,6 +259,8 @@ int iaxc_callback(iaxc_event e) return state_event_callback(e.ev.call); case IAXC_EVENT_REGISTRATION: return registration_event_callback(e.ev.reg); + case IAXC_EVENT_VIDEO: + return 0; default: return 0; // not handled } @@ -295,10 +296,11 @@ bool InitIAXInterface() { hServiceIconClist = CreateServiceFunction(MODULE "/ClistIconClick", ClistIconClick); iaxc_set_preferred_source_udp_port(DBGetContactSettingDword(0, MODULE, "Port", 4569)); - if(iaxc_initialize(AUDIO_INTERNAL_PA, NUM_LINES)) return false; + if(iaxc_initialize(NUM_LINES)) return false; iaxc_set_formats(options.codecs_preferred, options.codecs_allowed); - + //iaxc_video_format_set_cap(IAXC_FORMAT_THEORA, IAXC_FORMAT_THEORA); + iaxc_video_format_set(IAXC_FORMAT_THEORA, IAXC_FORMAT_THEORA, 10, 16 * 1024 * 8, 320, 240, 8000); //iaxc_set_filters(IAXC_FILTER_CN); iaxc_set_speex_settings(1,-1,-1,0,8000,3); -- cgit v1.2.3