From 6342ef9ae683c0080abd3d8fdb46d2a36c594063 Mon Sep 17 00:00:00 2001 From: pescuma Date: Mon, 18 Jan 2010 01:07:16 +0000 Subject: sip: Client API git-svn-id: http://pescuma.googlecode.com/svn/trunk/Miranda@211 c086bb3d-8645-0410-b8da-73a8550f86e7 --- Protocols/SIP/Docs/sip_changelog.txt | 3 ++ Protocols/SIP/Docs/sip_readme.txt | 2 - Protocols/SIP/Docs/sip_version.txt | 2 +- Protocols/SIP/SIPClient.cpp | 79 +++++++++++++++++------------------- Protocols/SIP/SIPClient.h | 7 ++-- Protocols/SIP/SIPProto.cpp | 2 +- Protocols/SIP/build/rakefile | 6 ++- Protocols/SIP/commons.h | 1 + Protocols/SIP/m_sip.h | 8 ++-- Protocols/SIP/sip.cpp | 17 +++++--- Protocols/SIP/sip.dsp | 18 ++++++-- 11 files changed, 81 insertions(+), 64 deletions(-) diff --git a/Protocols/SIP/Docs/sip_changelog.txt b/Protocols/SIP/Docs/sip_changelog.txt index aa10628..8db4df2 100644 --- a/Protocols/SIP/Docs/sip_changelog.txt +++ b/Protocols/SIP/Docs/sip_changelog.txt @@ -2,6 +2,9 @@ SIP protocol Changelog: +. 0.1.2.0 + + Support for clients + . 0.1.1.0 + Build with vc6 * Fix for wrong voice service version diff --git a/Protocols/SIP/Docs/sip_readme.txt b/Protocols/SIP/Docs/sip_readme.txt index ca10538..8264d3b 100644 --- a/Protocols/SIP/Docs/sip_readme.txt +++ b/Protocols/SIP/Docs/sip_readme.txt @@ -16,12 +16,10 @@ Known bugs: Todo: -- Add ssl - More than one instance - Protocol icons - Use netlib to send/receive packages? - Ask for new password at first login if "Save password" is not checked -- Compile with VC6 To report bugs/make suggestions, go to the forum thread: http://forums.miranda-im.org/showthread.php?t=23655 \ No newline at end of file diff --git a/Protocols/SIP/Docs/sip_version.txt b/Protocols/SIP/Docs/sip_version.txt index d837ea7..e967521 100644 --- a/Protocols/SIP/Docs/sip_version.txt +++ b/Protocols/SIP/Docs/sip_version.txt @@ -1 +1 @@ -SIP protocol 0.1.1.0 \ No newline at end of file +SIP protocol 0.1.2.0 \ No newline at end of file diff --git a/Protocols/SIP/SIPClient.cpp b/Protocols/SIP/SIPClient.cpp index efd64ee..cc831b5 100644 --- a/Protocols/SIP/SIPClient.cpp +++ b/Protocols/SIP/SIPClient.cpp @@ -41,7 +41,6 @@ SIPClient::SIPClient(SIP_REGISTRATION *reg) hNetlibUser = reg->hNetlib; lstrcpynA(name, reg->name, MAX_REGS(name)); - lstrcpyn(username, reg->username, MAX_REGS(username)); callback = reg->callback; callback_param = reg->callback_param; @@ -179,7 +178,7 @@ static void static_on_log(int level, const char *data, int len) } -#define TransportName(_T_) SipToTchar(pj_cstr(pjsip_transport_get_type_name(_T_))) +#define TransportName(_T_) SipToTchar(pj_cstr(pjsip_transport_get_type_name(_T_))).get() void SIPClient::RegisterTransport(pjsip_transport_type_e type, int port, ta *ta) { @@ -197,7 +196,7 @@ void SIPClient::RegisterTransport(pjsip_transport_type_e type, int port, ta *ta) pj_status_t status = pjsua_transport_create(type, &cfg, &ta->transport_id); if (status != PJ_SUCCESS) { - Error(status, _T("Error creating %s transport"), (const TCHAR *) TransportName(type)); + Error(status, _T("Error creating %s transport"), TransportName(type)); return; } @@ -205,7 +204,7 @@ void SIPClient::RegisterTransport(pjsip_transport_type_e type, int port, ta *ta) status = pjsua_transport_get_info(ta->transport_id, &info); if (status != PJ_SUCCESS) { - Error(status, _T("Error getting %s info"), (const TCHAR *) TransportName(type)); + Error(status, _T("Error getting %s info"), TransportName(type)); pjsua_transport_close(ta->transport_id, PJ_TRUE); ta->transport_id = -1; return; @@ -214,12 +213,14 @@ void SIPClient::RegisterTransport(pjsip_transport_type_e type, int port, ta *ta) status = pjsua_acc_add_local(ta->transport_id, PJ_TRUE, &ta->acc_id); if (status != PJ_SUCCESS) { - Error(status, _T("Error adding %s account"), (const TCHAR *) TransportName(type)); + Error(status, _T("Error adding %s account"), TransportName(type)); pjsua_transport_close(ta->transport_id, PJ_TRUE); ta->transport_id = -1; return; } + pjsua_acc_set_user_data(ta->acc_id, this); + lstrcpyn(host, SipToTchar(info.local_name.host), MAX_REGS(host)); ta->port = info.local_name.port; } @@ -396,34 +397,44 @@ void SIPClient::Disconnect() } -void SIPClient::NotifyCall(pjsua_call_id call_id, int state, const TCHAR *name, const TCHAR *uri) +void SIPClient::NotifyCall(pjsua_call_id call_id, int state, const TCHAR *uri) { Trace(_T("NotifyCall %d -> %d"), call_id, state); - if (callback != NULL) - callback(callback_param, (int) call_id, state, name, uri); -} - + if (callback == NULL) + return; -void SIPClient::on_incoming_call(pjsua_call_id call_id) -{ - Trace(_T("on_incoming_call: %d"), call_id); + if (state == VOICE_STATE_ENDED || state == VOICE_STATE_BUSY) + { + // Can't get call info anymore + callback(callback_param, (int) call_id, state, 0, NULL); + return; + } pjsua_call_info info; pj_status_t status = pjsua_call_get_info(call_id, &info); if (status != PJ_SUCCESS) { Error(status, _T("Error obtaining call info")); + callback(callback_param, (int) call_id, state, 0, NULL); return; } - SipToTchar remote_info(info.remote_info); - SipToTchar remote_contact(info.remote_contact); + TCHAR host_port[1024]; + if (uri != NULL) + lstrcpyn(host_port, uri, MAX_REGS(host_port)); + else + CleanupURI(host_port, MAX_REGS(host_port), SipToTchar(info.remote_contact)); + + callback(callback_param, (int) call_id, state, VOICE_UNICODE | (info.acc_id == tls.acc_id ? VOICE_SECURE : 0), host_port); +} + - TCHAR name[256]; - CleanupURI(name, MAX_REGS(name), remote_info); +void SIPClient::on_incoming_call(pjsua_call_id call_id) +{ + Trace(_T("on_incoming_call: %d"), call_id); - NotifyCall(call_id, VOICE_STATE_RINGING, name, remote_contact); + NotifyCall(call_id, VOICE_STATE_RINGING); } @@ -544,42 +555,25 @@ void SIPClient::ConfigureDevices() void SIPClient::CleanupURI(TCHAR *out, int outSize, const TCHAR *url) { - if (url[0] == _T('"')) - { - const TCHAR *other = _tcsstr(&url[1], _T("\" <")); - if (other != NULL) - url = other + 2; - } - lstrcpyn(out, url, outSize); RemoveLtGt(out); - TCHAR *info = _tcschr(out, _T(';')); - if (info != NULL) - *info = 0; - - RemoveLtGt(out); - - info = _tcschr(out, _T(';')); - if (info != NULL) - *info = 0; - if (_tcsnicmp(_T("sip:"), out, 4) == 0) lstrcpyn(out, &out[4], outSize); } -void SIPClient::BuildURI(TCHAR *out, int outSize, const TCHAR *user, const TCHAR *host, int port, int protocol) +void SIPClient::BuildURI(TCHAR *out, int outSize, const TCHAR *host, int port, int protocol) { if (protocol == PJSIP_TRANSPORT_UDP) - mir_sntprintf(out, outSize, _T(""), user, host, port); + mir_sntprintf(out, outSize, _T(""), host, port); else - mir_sntprintf(out, outSize, _T(""), user, host, - (const TCHAR *) TransportName((pjsip_transport_type_e) protocol)); + mir_sntprintf(out, outSize, _T(""), host, port, + TransportName((pjsip_transport_type_e) protocol)); } -pjsua_call_id SIPClient::Call(const TCHAR *username, const TCHAR *host, int port, int protocol) +pjsua_call_id SIPClient::Call(const TCHAR *host, int port, int protocol) { pjsua_acc_id acc_id; switch(protocol) @@ -593,7 +587,7 @@ pjsua_call_id SIPClient::Call(const TCHAR *username, const TCHAR *host, int port return -1; TCHAR uri[1024]; - BuildURI(uri, MAX_REGS(uri), username, host, port, protocol); + BuildURI(uri, MAX_REGS(uri), host, port, protocol); pjsua_call_id call_id; pj_str_t ret; @@ -604,7 +598,8 @@ pjsua_call_id SIPClient::Call(const TCHAR *username, const TCHAR *host, int port return -1; } - NotifyCall(call_id, VOICE_STATE_CALLING, username, uri); + mir_sntprintf(uri, MAX_REGS(uri), _T("%s:%d"), host, port); + NotifyCall(call_id, VOICE_STATE_CALLING, uri); return call_id; } diff --git a/Protocols/SIP/SIPClient.h b/Protocols/SIP/SIPClient.h index 275d032..1af9cb6 100644 --- a/Protocols/SIP/SIPClient.h +++ b/Protocols/SIP/SIPClient.h @@ -42,7 +42,6 @@ public: void *callback_param; char name[512]; - TCHAR username[16]; TCHAR host[256]; CRITICAL_SECTION cs; @@ -56,7 +55,7 @@ public: bool on_call_media_state_sync(pjsua_call_id call_id, const pjsua_call_info &info); void on_call_media_state(pjsua_call_id call_id); - pjsua_call_id Call(const TCHAR *username, const TCHAR *host, int port, int protocol); + pjsua_call_id Call(const TCHAR *host, int port, int protocol); int DropCall(pjsua_call_id call_id); int HoldCall(pjsua_call_id call_id); int AnswerCall(pjsua_call_id call_id); @@ -75,10 +74,10 @@ private: void RegisterTransport(pjsip_transport_type_e type, int port, ta *ta); void ConfigureDevices(); - void BuildURI(TCHAR *out, int outSize, const TCHAR *user, const TCHAR *host, int port, int protocol); + void BuildURI(TCHAR *out, int outSize, const TCHAR *host, int port, int protocol); void CleanupURI(TCHAR *out, int outSize, const TCHAR *url); - void NotifyCall(pjsua_call_id call_id, int state, const TCHAR *name = NULL, const TCHAR *uri = NULL); + void NotifyCall(pjsua_call_id call_id, int state, const TCHAR *host_port = NULL); }; diff --git a/Protocols/SIP/SIPProto.cpp b/Protocols/SIP/SIPProto.cpp index 9a1c949..c0d042a 100644 --- a/Protocols/SIP/SIPProto.cpp +++ b/Protocols/SIP/SIPProto.cpp @@ -1015,7 +1015,7 @@ void SIPProto::NotifyCall(pjsua_call_id call_id, int state, HANDLE hContact, TCH VOICE_CALL vc = {0}; vc.cbSize = sizeof(vc); - vc.szModule = m_szModuleName; + vc.moduleName = m_szModuleName; vc.id = itoa((int) call_id, tmp, 10); vc.flags = VOICE_TCHAR; vc.hContact = hContact; diff --git a/Protocols/SIP/build/rakefile b/Protocols/SIP/build/rakefile index c2a8061..e35459e 100644 --- a/Protocols/SIP/build/rakefile +++ b/Protocols/SIP/build/rakefile @@ -14,7 +14,7 @@ VERSION_FILE="#{DOCS_DIR}/#{PROJECT}_version.txt" TYPES=[ 'ansi', 'unicode' ] -SETUP_VC='C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat' +#SETUP_VC='C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat' VC="devenv" version=nil @@ -161,6 +161,10 @@ HISTORY_EVENTS=[ "../../../bin/Release/Plugins/aa_historyevents.dll", "../../../ docs.each do |file| cp_relative(file, DOCS_DIR, target_dir) end + docs = FileList["#{SRC_DIR}/m_#{PROJECT}.h"] + docs.each do |file| + cp_relative(file, SRC_DIR, target_dir) + end target_dir = File.join(ZIP_FOLDERS[i], 'Plugins') makedirs target_dir diff --git a/Protocols/SIP/commons.h b/Protocols/SIP/commons.h index 1fb4108..c767ffd 100644 --- a/Protocols/SIP/commons.h +++ b/Protocols/SIP/commons.h @@ -129,6 +129,7 @@ struct SIPEvent extern HINSTANCE hInst; extern PLUGINLINK *pluginLink; extern OBJLIST instances; +extern OBJLIST clients; #define MAX_REGS(_A_) ( sizeof(_A_) / sizeof(_A_[0]) ) #define MIR_FREE(_X_) if (_X_ != NULL) { mir_free(_X_); _X_ = NULL; } diff --git a/Protocols/SIP/m_sip.h b/Protocols/SIP/m_sip.h index 22b9e03..360912b 100644 --- a/Protocols/SIP/m_sip.h +++ b/Protocols/SIP/m_sip.h @@ -23,13 +23,14 @@ Boston, MA 02111-1307, USA. // state is a VOICE_STATE_* -typedef void (*SIPClientCallback)(void *param, int callId, int state, const TCHAR *name, const TCHAR *uri); +// flags are VOICE_* +// host_port can be NULL +typedef void (*SIPClientCallback)(void *param, int callId, int state, int flags, const TCHAR *host_port); struct SIP_REGISTRATION { int cbSize; const char *name; // Internal name of client - const TCHAR *username; int udp_port; // UDP port to be used: 0 means random, -1 means don't want UDP int tcp_port; // UDP port to be used: 0 means TCP, -1 means don't want TCP int tls_port; // UDP port to be used: 0 means TLS, -1 means don't want TLS @@ -44,7 +45,6 @@ struct SIP_REGISTRATION struct SIP_CLIENT { void *data; // Do not touch - const TCHAR *username; const TCHAR *host; const int udp_port; const int tcp_port; @@ -52,7 +52,7 @@ struct SIP_CLIENT // @param protocol 1 UDP, 2 TCP, 3 TLS // @return callId or <0 on error - int (*Call)(SIP_CLIENT *sip, const TCHAR *username, const TCHAR *host, int port, int protocol); + int (*Call)(SIP_CLIENT *sip, const TCHAR *host, int port, int protocol); // @return 0 on success int (*DropCall)(SIP_CLIENT *sip, int callId); diff --git a/Protocols/SIP/sip.cpp b/Protocols/SIP/sip.cpp index 4bfaeff..138ad78 100644 --- a/Protocols/SIP/sip.cpp +++ b/Protocols/SIP/sip.cpp @@ -30,7 +30,7 @@ PLUGININFOEX pluginInfo={ #else "SIP protocol (Ansi)", #endif - PLUGIN_MAKE_VERSION(0,1,1,0), + PLUGIN_MAKE_VERSION(0,1,2,0), "Provides support for SIP protocol", "Ricardo Pescuma Domenecci", "pescuma@miranda-im.org", @@ -263,13 +263,17 @@ int PreShutdown(WPARAM wParam, LPARAM lParam) } -static int ClientCall(SIP_CLIENT *sip, const TCHAR *username, const TCHAR *host, int port, int protocol) +static int ClientCall(SIP_CLIENT *sip, const TCHAR *host, int port, int protocol) { if (sip == NULL || sip->data == NULL) return -1; + if (host[0] == 0 || port <= 0) + return -2; + if (protocol < 1 || protocol > 3) + return -2; SIPClient *cli = (SIPClient *) sip->data; - return (int) cli->Call(username, host, port, protocol); + return (int) cli->Call(host, port, protocol); } static int ClientDropCall(SIP_CLIENT *sip, int callId) @@ -314,7 +318,7 @@ static INT_PTR ClientRegister(WPARAM wParam, LPARAM lParam) if (reg == NULL || reg->cbSize < sizeof(SIP_REGISTRATION)) return NULL; - if (reg->name[0] == 0 || reg->username[0] == 0) + if (reg->name[0] == 0) return NULL; SIPClient *cli = new SIPClient(reg); @@ -325,9 +329,10 @@ static INT_PTR ClientRegister(WPARAM wParam, LPARAM lParam) return NULL; } + clients.insert(cli); + SIP_CLIENT *ret = (SIP_CLIENT *) mir_alloc0(sizeof(SIP_CLIENT) + sizeof(SIPClient *)); ret->data = cli; - * (TCHAR **) & ret->username = cli->username; * (TCHAR **) & ret->host = cli->host; * (int *) & ret->udp_port = cli->udp.port; * (int *) & ret->tcp_port = cli->tcp.port; @@ -349,7 +354,7 @@ static INT_PTR ClientUnregister(WPARAM wParam, LPARAM lParam) SIPClient * cli = (SIPClient *) sc->data; cli->Disconnect(); - delete cli; + clients.remove(cli); mir_free(sc); return 0; diff --git a/Protocols/SIP/sip.dsp b/Protocols/SIP/sip.dsp index b519e1a..5bd1322 100644 --- a/Protocols/SIP/sip.dsp +++ b/Protocols/SIP/sip.dsp @@ -57,7 +57,7 @@ BSC32=bscmake.exe LINK32=link.exe # ADD BASE LINK32 user32.lib shell32.lib wininet.lib gdi32.lib /nologo /base:"0x67100000" /dll /machine:I386 /filealign:0x200 # SUBTRACT BASE LINK32 /pdb:none /map -# ADD LINK32 libresample-i386-win32-vc6-release.lib libspeex-i386-win32-vc6-release.lib libsrtp-i386-win32-vc6-release.lib pjlib-i386-win32-vc6-release.lib pjlib-util-i386-win32-vc6-release.lib pjmedia-audiodev-i386-win32-vc6-release.lib pjmedia-codec-i386-win32-vc6-release.lib pjmedia-i386-win32-vc6-release.lib pjnath-i386-win32-vc6-release.lib pjsip-core-i386-win32-vc6-release.lib pjsip-simple-i386-win32-vc6-release.lib pjsip-ua-i386-win32-vc6-release.lib pjsua-lib-i386-win32-vc6-release.lib libg7221codec-i386-win32-vc6-release.lib libgsmcodec-i386-win32-vc6-release.lib libilbccodec-i386-win32-vc6-release.lib libmilenage-i386-win32-vc6-release.lib libportaudio-i386-win32-vc6-release.lib ws2_32.lib kernel32.lib user32.lib Ole32.lib Advapi32.lib Gdi32.lib Mswsock.lib /nologo /base:"0x3EC20000" /dll /map /debug /debugtype:both /machine:I386 /out:"..\..\bin\release\Plugins\sip.dll" /pdbtype:sept /libpath:"lib\pjsip\lib\vc6" /libpath:"lib\openssl\lib" /filealign:0x200 /ALIGN:4096 /ignore:4108 +# ADD LINK32 libresample-i386-win32-vc6-release.lib libspeex-i386-win32-vc6-release.lib libsrtp-i386-win32-vc6-release.lib pjlib-i386-win32-vc6-release.lib pjlib-util-i386-win32-vc6-release.lib pjmedia-audiodev-i386-win32-vc6-release.lib pjmedia-codec-i386-win32-vc6-release.lib pjmedia-i386-win32-vc6-release.lib pjnath-i386-win32-vc6-release.lib pjsip-core-i386-win32-vc6-release.lib pjsip-simple-i386-win32-vc6-release.lib pjsip-ua-i386-win32-vc6-release.lib pjsua-lib-i386-win32-vc6-release.lib libg7221codec-i386-win32-vc6-release.lib libgsmcodec-i386-win32-vc6-release.lib libilbccodec-i386-win32-vc6-release.lib libmilenage-i386-win32-vc6-release.lib libportaudio-i386-win32-vc6-release.lib ws2_32.lib kernel32.lib user32.lib Ole32.lib Advapi32.lib Gdi32.lib Mswsock.lib /nologo /base:"0x3EC20000" /dll /map /debug /debugtype:both /machine:I386 /out:"..\..\bin\release\Plugins\sip.dll" /pdbtype:sept /libpath:"lib\pjsip\lib\vc6" /libpath:"lib\openssl\lib" /filealign:0x200 /ALIGN:4096 /ignore:4108 # SUBTRACT LINK32 /profile /pdb:none !ELSEIF "$(CFG)" == "sip - Win32 Debug" @@ -86,7 +86,7 @@ BSC32=bscmake.exe LINK32=link.exe # ADD BASE LINK32 comctl32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /out:"..\..bin\release\Plugins\sip.dll" /filealign:0x200 /ALIGN:4096 /ignore:4108 # SUBTRACT BASE LINK32 /profile /pdb:none -# ADD LINK32 libspeex-i386-win32-vc6-debug.lib libsrtp-i386-win32-vc6-debug.lib pjlib-i386-win32-vc6-debug.lib pjlib-util-i386-win32-vc6-debug.lib pjmedia-audiodev-i386-win32-vc6-debug.lib pjmedia-codec-i386-win32-vc6-debug.lib pjmedia-i386-win32-vc6-debug.lib pjnath-i386-win32-vc6-debug.lib pjsip-core-i386-win32-vc6-debug.lib pjsip-simple-i386-win32-vc6-debug.lib pjsip-ua-i386-win32-vc6-debug.lib pjsua-lib-i386-win32-vc6-debug.lib libg7221codec-i386-win32-vc6-debug.lib libgsmcodec-i386-win32-vc6-debug.lib libilbccodec-i386-win32-vc6-debug.lib libmilenage-i386-win32-vc6-debug.lib libportaudio-i386-win32-vc6-debug.lib libresample-i386-win32-vc6-debug.lib ws2_32.lib kernel32.lib user32.lib Ole32.lib Advapi32.lib Gdi32.lib Mswsock.lib /nologo /base:"0x3EC20000" /dll /incremental:yes /debug /machine:I386 /out:"..\..\bin\debug\Plugins\sip.dll" /libpath:"lib\pjsip\lib\vc6" /libpath:"lib\openssl\lib" /filealign:0x200 /ALIGN:4096 /ignore:4108 +# ADD LINK32 libspeex-i386-win32-vc6-debug.lib libsrtp-i386-win32-vc6-debug.lib pjlib-i386-win32-vc6-debug.lib pjlib-util-i386-win32-vc6-debug.lib pjmedia-audiodev-i386-win32-vc6-debug.lib pjmedia-codec-i386-win32-vc6-debug.lib pjmedia-i386-win32-vc6-debug.lib pjnath-i386-win32-vc6-debug.lib pjsip-core-i386-win32-vc6-debug.lib pjsip-simple-i386-win32-vc6-debug.lib pjsip-ua-i386-win32-vc6-debug.lib pjsua-lib-i386-win32-vc6-debug.lib libg7221codec-i386-win32-vc6-debug.lib libgsmcodec-i386-win32-vc6-debug.lib libilbccodec-i386-win32-vc6-debug.lib libmilenage-i386-win32-vc6-debug.lib libportaudio-i386-win32-vc6-debug.lib libresample-i386-win32-vc6-debug.lib ws2_32.lib kernel32.lib user32.lib Ole32.lib Advapi32.lib Gdi32.lib Mswsock.lib /nologo /base:"0x3EC20000" /dll /incremental:yes /debug /machine:I386 /out:"..\..\bin\debug\Plugins\sip.dll" /libpath:"lib\pjsip\lib\vc6" /libpath:"lib\openssl\lib" /filealign:0x200 /ALIGN:4096 /ignore:4108 # SUBTRACT LINK32 /profile /pdb:none !ELSEIF "$(CFG)" == "sip - Win32 Unicode Debug" @@ -144,7 +144,7 @@ BSC32=bscmake.exe LINK32=link.exe # ADD BASE LINK32 comctl32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /base:"0x32100000" /dll /map /machine:I386 /out:"..\..\bin\release\Plugins\sip.dll" /filealign:0x200 /ALIGN:4096 /ignore:4108 # SUBTRACT BASE LINK32 /profile /pdb:none -# ADD LINK32 libresample-i386-win32-vc6-release.lib libspeex-i386-win32-vc6-release.lib libsrtp-i386-win32-vc6-release.lib pjlib-i386-win32-vc6-release.lib pjlib-util-i386-win32-vc6-release.lib pjmedia-audiodev-i386-win32-vc6-release.lib pjmedia-codec-i386-win32-vc6-release.lib pjmedia-i386-win32-vc6-release.lib pjnath-i386-win32-vc6-release.lib pjsip-core-i386-win32-vc6-release.lib pjsip-simple-i386-win32-vc6-release.lib pjsip-ua-i386-win32-vc6-release.lib pjsua-lib-i386-win32-vc6-release.lib libg7221codec-i386-win32-vc6-release.lib libgsmcodec-i386-win32-vc6-release.lib libilbccodec-i386-win32-vc6-release.lib libmilenage-i386-win32-vc6-release.lib libportaudio-i386-win32-vc6-release.lib ws2_32.lib kernel32.lib user32.lib Ole32.lib Advapi32.lib Gdi32.lib Mswsock.lib /nologo /base:"0x3EC20000" /dll /map /debug /debugtype:both /machine:I386 /out:"..\..\bin\release unicode\Plugins\sipW.dll" /pdbtype:sept /libpath:"lib\pjsip\lib\vc6" /libpath:"lib\openssl\lib" /filealign:0x200 /ALIGN:4096 /ignore:4108 +# ADD LINK32 libresample-i386-win32-vc6-release.lib libspeex-i386-win32-vc6-release.lib libsrtp-i386-win32-vc6-release.lib pjlib-i386-win32-vc6-release.lib pjlib-util-i386-win32-vc6-release.lib pjmedia-audiodev-i386-win32-vc6-release.lib pjmedia-codec-i386-win32-vc6-release.lib pjmedia-i386-win32-vc6-release.lib pjnath-i386-win32-vc6-release.lib pjsip-core-i386-win32-vc6-release.lib pjsip-simple-i386-win32-vc6-release.lib pjsip-ua-i386-win32-vc6-release.lib pjsua-lib-i386-win32-vc6-release.lib libg7221codec-i386-win32-vc6-release.lib libgsmcodec-i386-win32-vc6-release.lib libilbccodec-i386-win32-vc6-release.lib libmilenage-i386-win32-vc6-release.lib libportaudio-i386-win32-vc6-release.lib ws2_32.lib kernel32.lib user32.lib Ole32.lib Advapi32.lib Gdi32.lib Mswsock.lib /nologo /base:"0x3EC20000" /dll /map /debug /debugtype:both /machine:I386 /out:"..\..\bin\release unicode\Plugins\sipW.dll" /pdbtype:sept /libpath:"lib\pjsip\lib\vc6" /libpath:"lib\openssl\lib" /filealign:0x200 /ALIGN:4096 /ignore:4108 # SUBTRACT LINK32 /profile /pdb:none !ENDIF @@ -184,8 +184,16 @@ SOURCE=.\resource.h # End Source File # Begin Source File +SOURCE=.\SIPClient.h +# End Source File +# Begin Source File + SOURCE=.\SIPProto.h # End Source File +# Begin Source File + +SOURCE=.\strutils.h +# End Source File # End Group # Begin Group "Resource Files" @@ -216,6 +224,10 @@ SOURCE=.\sip.cpp # End Source File # Begin Source File +SOURCE=.\SIPClient.cpp +# End Source File +# Begin Source File + SOURCE=.\SIPProto.cpp # End Source File # End Group -- cgit v1.2.3