From a36ca1b4d5d0c89b09382ac4215681b47865bea1 Mon Sep 17 00:00:00 2001 From: pescuma Date: Mon, 18 Jan 2010 00:53:43 +0000 Subject: sip_cli: Example plugin to use SIP client API git-svn-id: http://pescuma.googlecode.com/svn/trunk/Miranda@210 c086bb3d-8645-0410-b8da-73a8550f86e7 --- Plugins/sip_cli/sdk/m_sip.h | 98 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 Plugins/sip_cli/sdk/m_sip.h (limited to 'Plugins/sip_cli/sdk/m_sip.h') diff --git a/Plugins/sip_cli/sdk/m_sip.h b/Plugins/sip_cli/sdk/m_sip.h new file mode 100644 index 0000000..360912b --- /dev/null +++ b/Plugins/sip_cli/sdk/m_sip.h @@ -0,0 +1,98 @@ +/* +Copyright (C) 2010 Ricardo Pescuma Domenecci + +This is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later version. + +This 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 +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with this file; see the file license.txt. If +not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. +*/ + + +#ifndef __M_SIP_H__ +# define __M_SIP_H__ + + +// state is a VOICE_STATE_* +// 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 + 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 + + HANDLE hNetlib; // To be used for logs. Can be 0 + + SIPClientCallback callback; + void *callback_param; +}; + + +struct SIP_CLIENT +{ + void *data; // Do not touch + const TCHAR *host; + const int udp_port; + const int tcp_port; + const int tls_port; + + // @param protocol 1 UDP, 2 TCP, 3 TLS + // @return callId or <0 on error + int (*Call)(SIP_CLIENT *sip, const TCHAR *host, int port, int protocol); + + // @return 0 on success + int (*DropCall)(SIP_CLIENT *sip, int callId); + + // @return 0 on success + int (*HoldCall)(SIP_CLIENT *sip, int callId); + + // @return 0 on success + int (*AnswerCall)(SIP_CLIENT *sip, int callId); + + // @return 0 on success + int (*SendDTMF)(SIP_CLIENT *sip, int callId, TCHAR dtmf); +}; + + +/* +Register a SIP client, allowing it to make calls + +wParam = SIP_REGISTRATION * +lParam = 0 +return SIP_CLIENT * or NULL on error +*/ +#define MS_SIP_REGISTER "SIP/Client/Register" + + +/* +Unregister a SIP client and free the internal structures. + +wParam = SIP_CLIENT * +lParam = 0 +return 0 on success +*/ +#define MS_SIP_UNREGISTER "SIP/Client/Unregister" + + + + + + + + + +#endif // __M_SIP_H__ -- cgit v1.2.3