summaryrefslogtreecommitdiff
path: root/iax/iax_interface.cpp
diff options
context:
space:
mode:
authorsje <sje@4f64403b-2f21-0410-a795-97e2b3489a10>2007-07-13 04:28:21 +0000
committersje <sje@4f64403b-2f21-0410-a795-97e2b3489a10>2007-07-13 04:28:21 +0000
commited224137da84e8e214588f4207f0da2842a47cf4 (patch)
tree396a03edd2827da6b3ecd9c6cfa6bdf65ee18da9 /iax/iax_interface.cpp
parent8861255967216dc365a9e81b2b4cb6668010ed2e (diff)
updated dependencies
git-svn-id: https://server.scottellis.com.au/svn/mim_plugs@283 4f64403b-2f21-0410-a795-97e2b3489a10
Diffstat (limited to 'iax/iax_interface.cpp')
-rw-r--r--iax/iax_interface.cpp60
1 files changed, 31 insertions, 29 deletions
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);