C++ SIP Stack  0.31
클래스 | 함수
SipStack

SIP Stack 라이브러리 더 자세히 ...

클래스

class  CMonitorString
 자료구조 모니터링을 위한 문자열 저장 및 생성 클래스 더 자세히 ...
class  CSipBuffer
 SIP TCP 버퍼를 관리하는 클래스 더 자세히 ...
class  CSipDeleteInfo
 만료된 SIP 메시지를 저장하는 클래스 더 자세히 ...
class  CSipDeleteQueue
 만료된 SIP 메시지를 저장한 후, 일정 시간 후에 삭제하는 클래스 더 자세히 ...
class  CSipICTList
 INVITE CLIENT TRANSACTION List 클래스 더 자세히 ...
class  CSipInviteTransaction
 SIP INVITE TRANSACTION 클래스 더 자세히 ...
class  CSipISTList
 INVITE SERVER TRANSACTION List 클래스 더 자세히 ...
class  CSipNICTList
 NON INVITE CLIENT TRANSACTION List 클래스 더 자세히 ...
class  CSipNISTList
 NON INVITE SERVER TRANSACTION List 클래스 더 자세히 ...
class  CSipNonInviteTransaction
 SIP NON INVITE TRANSACTION 클래스 더 자세히 ...
class  CSipQueueEntry
 SIP 수신 메시지를 저장하는 클래스 더 자세히 ...
class  CSipQueue
 SIP 수신 메시지 리스트를 저장하는 자료구조 클래스 더 자세히 ...
class  CSipStack
 SIP stack 클래스 더 자세히 ...
class  ISipStackCallBack
 SIP stack callback 인터페이스 더 자세히 ...
class  ISipStackSecurityCallBack
 SIP stack 보안 callback 인터페이스 더 자세히 ...
class  CSipStackSetup
 SIP stack 설정 클래스 더 자세히 ...
class  CSipTransactionList
 SIP transaction List 클래스 더 자세히 ...
class  CTcpConnectInfo
 TCP/TLS 연결 진행 중인 경우에 전송 요청한 SIP 메시지를 저장하는 클래스 더 자세히 ...
class  CTcpConnectMap
 TCP/TLS 연결 진행 중인 정보를 저장하는 클래스 더 자세히 ...
class  CTcpComm
 TCP 쓰레드에 TCP 세션을 전달할 때에 사용되는 클래스 더 자세히 ...
class  CTcpSessionListInfo
 TCP 쓰레드 별로 관리하는 TCP 세션 정보 더 자세히 ...
class  CTcpSessionList
 TCP 쓰레드 별로 관리하는 TCP 세션 정보를 저장하는 클래스 더 자세히 ...
class  CTcpSocketInfo
 TCP/TLS 세션 정보 더 자세히 ...
class  CTcpSocketMap
 TCP/TLS 세션 정보를 저장하는 자료구조 더 자세히 ...
class  CThreadListEntry
 쓰레드 리스트에 포함되는 하나의 쓰레드 정보 저장 클래스 더 자세히 ...
class  CThreadList
 쓰레드 리스트 자료구조 더 자세히 ...

함수

THREAD_API SipQueueThread (LPVOID lpParameter)
 SIP 큐에서 SIP 메시지를 가져와서 파싱 및 callback 처리하는 쓰레드
bool StartSipQueueThread (CSipStack *pclsSipStack)
 SIP 큐에서 SIP 메시지를 가져와서 파싱 및 callback 처리하는 쓰레드를 시작한다.
virtual bool ISipStackCallBack::RecvRequest (int iThreadId, CSipMessage *pclsMessage)=0
 SIP 요청 메시지 수신 이벤트 핸들러
virtual bool ISipStackCallBack::RecvResponse (int iThreadId, CSipMessage *pclsMessage)=0
 SIP 응답 메시지 수신 이벤트 핸들러
virtual bool ISipStackCallBack::SendTimeout (int iThreadId, CSipMessage *pclsMessage)=0
 SIP 메시지 전송 timeout 이벤트 핸들러
virtual void ISipStackCallBack::TcpSessionEnd (const char *pszIp, int iPort, ESipTransport eTransport)
 TCP/TLS 세션 종료 이벤트 핸들러
virtual void ISipStackCallBack::ThreadEnd (int iThreadId)
 SIP 메시지 수신 쓰레드가 종료됨을 알려주는 이벤트 핸들러
virtual bool ISipStackSecurityCallBack::IsAllowUserAgent (const char *pszSipUserAgent)=0
 SIP stack 에서 허용하는 SIP User Agent 인가?
virtual bool ISipStackSecurityCallBack::IsDenyUserAgent (const char *pszSipUserAgent)=0
 SIP stack 에서 허용하지 않는 SIP User Agent 인가?
virtual bool ISipStackSecurityCallBack::IsAllowIp (const char *pszIp)=0
 SIP stack 에서 허용하는 IP 주소인가?
virtual bool ISipStackSecurityCallBack::IsDenyIp (const char *pszIp)=0
 SIP stack 에서 허용하지 않는 IP 주소인가?
THREAD_API SipStackThread (LPVOID lpParameter)
 주기적으로 SIP stack 을 실행하는 쓰레드
bool StartSipStackThread (CSipStack *pclsSipStack)
 SIP stack thread 를 시작한다.
THREAD_API SipTcpClientThread (LPVOID lpParameter)
 TCP 클라이언트 세션 연결을 위한 쓰레드 함수
bool StartSipTcpClientThread (CSipStack *pclsSipStack, const char *pszIp, int iPort, CSipMessage *pclsSipMessage)
 TCP 프로토콜로 SIP 메시지 수신 및 SIP 수신 이벤트를 처리하는 Thread Pool 을 시작한다.
THREAD_API SipTcpThread (LPVOID lpParameter)
 TCP 세션을 위한 쓰레드 함수
THREAD_API SipTcpListenThread (LPVOID lpParameter)
 TCP 프로토콜로 SIP 메시지 수신 및 SIP 수신 이벤트를 처리하는 쓰레드 함수
bool StartSipTcpListenThread (CSipStack *pclsSipStack)
 TCP 프로토콜로 SIP 메시지 수신 및 SIP 수신 이벤트를 처리하는 Thread Pool 을 시작한다.
THREAD_API SipTlsClientThread (LPVOID lpParameter)
 TLS 클라이언트 세션 연결을 위한 쓰레드 함수
bool StartSipTlsClientThread (CSipStack *pclsSipStack, const char *pszIp, int iPort, CSipMessage *pclsSipMessage)
 TCP 프로토콜로 SIP 메시지 수신 및 SIP 수신 이벤트를 처리하는 Thread Pool 을 시작한다.
THREAD_API SipTlsThread (LPVOID lpParameter)
 TLS 세션을 위한 쓰레드 함수
THREAD_API SipTlsListenThread (LPVOID lpParameter)
 TLS 프로토콜로 SIP 메시지 수신 및 SIP 수신 이벤트를 처리하는 쓰레드 함수
bool StartSipTlsListenThread (CSipStack *pclsSipStack)
 TLS 프로토콜로 SIP 메시지 수신 및 SIP 수신 이벤트를 처리하는 Thread Pool 을 시작한다.
THREAD_API SipUdpThread (LPVOID lpParameter)
 UDP 프로토콜로 SIP 메시지 수신 및 SIP 수신 이벤트를 처리하는 쓰레드 함수
bool StartSipUdpThread (CSipStack *pclsSipStack)
 UDP 프로토콜로 SIP 메시지 수신 및 SIP 수신 이벤트를 처리하는 Thread Pool 을 시작한다.
bool SSLStart ()
 SSL 라이브러리를 multi-thread 기반으로 시작한다.
bool SSLServerStart (const char *szCertFile, const char *szCaCertFile)
 SSL 서버 라이브러리를 시작한다.
bool SSLServerStop ()
 SSL 서버 라이브러리를 종료한다.
bool SSLClientStart ()
 SSL 클라이언트 라이브러리를 시작한다.
bool SSLClientStop ()
 SSL 클라이언트 라이브러리를 종료한다.
void SSLFinal ()
 프로세스가 종료될 때에 최종적으로 실행하여서 openssl 메모리 누수를 출력하지 않는다.
bool SSLAccept (Socket iFd, SSL **ppsttSsl, bool bCheckClientCert, int iVerifyDepth, int iAcceptTimeout)
 클라이언트 SSL 접속 요청을 허용한다.
int SSLSend (SSL *ssl, const char *szBuf, int iBufLen)
 SSL 프로토콜로 패킷을 전송한다.
int SSLRecv (SSL *ssl, char *szBuf, int iBufLen)
 SSL 프로토콜로 수신된 패킷을 읽는다.
bool SSLClose (SSL *ssl)
 SSL 세션을 종료한다.
void SSLPrintLogServerCipherList ()
 SSL 서버에서 사용되는 cipher list 를 로그로 출력한다.
void SSLPrintLogClientCipherList ()
 SSL 클라이언트에서 사용되는 cipher list 를 로그로 출력한다.
void CMonitorString::AddCol (const char *pszValue)
 컬럼 문자열을 저장한다.
void CMonitorString::AddCol (const std::string &strValue)
 컬럼 문자열을 저장한다.
void CMonitorString::AddCol (const std::string &strIp, int iPort)
 컬럼 문자열에 IP 주소와 포트 번호를 저장한다.
void CMonitorString::AddCol (uint32_t iIp, uint16_t iPort)
 컬럼 문자열에 IP 주소와 포트 번호를 저장한다.
void CMonitorString::AddCol (int iValue)
 컬럼 문자열에 숫자를 저장한다.
void CMonitorString::AddCol (uint32_t iValue)
 컬럼 문자열에 숫자를 저장한다.
void CMonitorString::AddCol (time_t iTime)
 컬럼 문자열에 시간 문자열을 저장한다.
void CMonitorString::AddCol (bool bValue)
 컬럼 문자열에 true/false 를 저장한다.
void CMonitorString::AddRow (const char *pszValue)
 줄의 마지막 문자열을 저장한다.
void CMonitorString::AddRow (const std::string &strValue)
 줄의 마지막 문자열을 저장한다.
void CMonitorString::AddRow (const std::string &strIp, int iPort)
 줄의 마지막 문자열에 IP 주소와 포트 번호를 저장한다.
void CMonitorString::AddRow (uint32_t iIp, uint16_t iPort)
 줄의 마지막 문자열에 IP 주소와 포트 번호를 저장한다.
void CMonitorString::AddRow (int iValue)
 줄의 마지막 문자열에 숫자를 저장한다.
void CMonitorString::AddRow (uint32_t iValue)
 줄의 마지막 문자열에 숫자를 저장한다.
void CMonitorString::AddRow (time_t iTime)
 줄의 마지막 문자열에 시간 문자열을 저장한다.
void CMonitorString::AddRow (bool bValue)
 줄의 마지막 문자열에 true/false 를 저장한다.
void CMonitorString::Clear ()
 저장된 문자열을 초기화시킨다.
const char * CMonitorString::GetString ()
 저장된 문자열을 리턴한다.
int CMonitorString::GetLength ()
 저장된 문자열의 길이를 리턴한다.
bool CSipBuffer::AddBuf (const char *pszBuf, int iLen)
 내부 버퍼에 데이타를 추가한다.
bool CSipBuffer::GetSipMessage (char **ppszBuf, int *piLen)
 내부 버퍼에서 SIP 메시지를 추출한다.
bool CSipBuffer::ShiftBuf (int iLen)
 내부 버퍼를 왼쪽으로 이동한다.
void CSipBuffer::Clear ()
 내부 변수를 초기화시킨다.
 CSipDeleteQueue::CSipDeleteQueue ()
 생성자
 CSipDeleteQueue::~CSipDeleteQueue ()
 소멸자
void CSipDeleteQueue::Insert (CSipMessage *pclsMessage)
 일정 시간 후에 삭제할 SIP 메시지를 저장한다.
void CSipDeleteQueue::DeleteTimeout ()
 대기 시간이 초과한 SIP 메시지를 삭제한다.
void CSipDeleteQueue::DeleteAll ()
 대기 SIP 메시지를 모두 삭제한다.
int CSipDeleteQueue::GetSize ()
 자료구조에 저장된 SIP 메시지의 개수를 리턴한다.
 CSipICTList::CSipICTList ()
 생성자
virtual CSipICTList::~CSipICTList ()
 소멸자
virtual bool CSipICTList::Insert (CSipMessage *pclsMessage)
 Invite Client Transaction List 에 SIP 메시지를 추가한다.
virtual void CSipICTList::Execute (struct timeval *psttTime)
 Invite Client Transaction List 에서 재전송할 항목은 재전송하고 삭제할 항목은 삭제하고 Timeout 된 항목은 Timeout 처리한다.
virtual void CSipICTList::DeleteAll ()
 Invite Client Transaction List 의 모든 항목을 삭제한다.
virtual int CSipICTList::GetSize ()
 Invite Client Transaction List 의 크기를 리턴한다.
virtual void CSipICTList::GetString (CMonitorString &strBuf)
 ICT 에 저장된 SIP Call-ID 들을 문자열에 저장한다.
void CSipICTList::SetTimerD (int iMiliSecond)
 Timer D 값을 수정한다.
void CSipICTList::GetTransactionMap (INVITE_TRANSACTION_MAP &clsMap)
 transcation map 을 가져온다.
 CSipInviteTransaction::CSipInviteTransaction ()
 생성자
 CSipInviteTransaction::~CSipInviteTransaction ()
 소멸자
 CSipISTList::CSipISTList ()
 생성자
virtual CSipISTList::~CSipISTList ()
 소멸자
virtual bool CSipISTList::Insert (CSipMessage *pclsMessage)
 Invite Server Transaction List 에 SIP 메시지를 추가한다.
virtual void CSipISTList::Execute (struct timeval *psttTime)
 Invite Server Transaction List 에서 삭제할 항목은 삭제하고 ACK 를 수신하지 못 한 항목은 응답 메시지를 재전송해 준다.
virtual void CSipISTList::DeleteAll ()
 Invite Server Transaction List 의 모든 항목을 삭제한다.
virtual int CSipISTList::GetSize ()
 Invite Server Transaction List 의 크기를 리턴한다.
virtual void CSipISTList::GetString (CMonitorString &strBuf)
 IST 자료구조에 저장된 SIP Call-ID 들을 문자열에 저장한다.
 CSipNICTList::CSipNICTList ()
 생성자
virtual CSipNICTList::~CSipNICTList ()
 소멸자
virtual bool CSipNICTList::Insert (CSipMessage *pclsMessage)
 Non-Invite Client Transaction List 에 SIP 메시지를 추가한다.
virtual void CSipNICTList::Execute (struct timeval *psttTime)
 Non-Invite Client Transaction List 에서 재전송할 항목을 재전송하고 timeout 된 항목은 timeout 처리한다.
virtual void CSipNICTList::DeleteAll ()
 Non-Invite Client Transaction List 의 모든 항목을 삭제한다.
virtual int CSipNICTList::GetSize ()
 Non-Invite Client Transaction List 의 크기를 리턴한다.
virtual void CSipNICTList::GetString (CMonitorString &strBuf)
 NICT 자료구조에 저장된 SIP Call-ID 들을 문자열에 저장한다.
bool CSipNICTList::DeleteCancel (CSipMessage *pclsMessage)
 SIP 메시지에 해당하는 CANCEL 메시지를 검색해서 삭제한다.
 CSipNISTList::CSipNISTList ()
 생성자
virtual CSipNISTList::~CSipNISTList ()
 소멸자
virtual bool CSipNISTList::Insert (CSipMessage *pclsMessage)
 Non-Invite Server Transaction List 에 SIP 메시지를 추가한다.
virtual void CSipNISTList::Execute (struct timeval *psttTime)
 Non-Invite Server Transaction List 에서 재전송할 항목에서 삭제할 항목을 삭제한다.
virtual void CSipNISTList::DeleteAll ()
 Non-Invite Server Transaction List 의 모든 항목을 삭제한다.
virtual int CSipNISTList::GetSize ()
 Non-Invite Server Transaction List 의 크기를 리턴한다.
virtual void CSipNISTList::GetString (CMonitorString &strBuf)
 NIST 자료구조에 저장된 SIP Call-ID 들을 문자열에 저장한다.
void CSipNISTList::SetTimerJ (int iMiliSecond)
 Timer J 값을 수정한다.
 CSipNonInviteTransaction::CSipNonInviteTransaction ()
 생성자
 CSipNonInviteTransaction::~CSipNonInviteTransaction ()
 소멸자
bool CSipQueue::Insert (const char *pszBuf, int iBufLen, const char *pszIp, unsigned short sPort, ESipTransport eTransport)
 SIP 수신 메시지를 저장한다.
bool CSipQueue::Select (CSipQueueEntry **ppclsEntry)
 SIP 수신 메시지를 가져온다.
void CSipQueue::BroadCast ()
 SIP 수신 메시지를 대기하는 쓰레드를 모두 깨운다.
 CSipStack::CSipStack ()
 생성자 - 내부 변수를 초기화시키고 transaction list 와 SIP stack 을 연결시킨다.
 CSipStack::~CSipStack ()
 소멸자
bool CSipStack::Start (CSipStackSetup &clsSetup)
 SIP stack 을 시작한다.
bool CSipStack::Stop ()
 SIP stack 을 중지시킨다.
bool CSipStack::Execute (struct timeval *psttTime)
 SIP stack 을 실행한다.
void CSipStack::IncreateUdpThreadCount (int &iThreadId)
 UDP SIP 메시지 수신 쓰레드 개수를 증가시킨다.
void CSipStack::DecreateUdpThreadCount ()
 UDP SIP 메시지 수신 쓰레드 개수를 감소시킨다.
void CSipStack::IncreateTcpThreadCount (int &iThreadId)
 TCP SIP 메시지 수신 쓰레드 개수를 증가시킨다.
void CSipStack::DecreateTcpThreadCount ()
 TCP SIP 메시지 수신 쓰레드 개수를 감소시킨다.
void CSipStack::GetString (CMonitorString &strBuf)
 Transaction List 의 정보를 문자열에 저장한다.
void CSipStack::GetICTString (CMonitorString &strBuf)
 Invite Client Transaction 정보를 문자열에 저장한다.
void CSipStack::Final ()
 프로세스가 종료될 때에 최종적으로 실행하여서 openssl 메모리 누수를 출력하지 않는다.
void CSipStack::DeleteAllTransaction ()
 모든 SIP transaction 을 삭제한다.
void CSipStack::GetICTMap (INVITE_TRANSACTION_MAP &clsMap)
 ICT transcation map 을 가져온다.
bool CSipStack::AddCallBack (ISipStackCallBack *pclsCallBack)
 SIP stack 에 callback 인터페이스를 추가한다.
bool CSipStack::DeleteCallBack (ISipStackCallBack *pclsCallBack)
 SIP stack 에 callback 인터페이스를 삭제한다.
void CSipStack::SetSecurityCallBack (ISipStackSecurityCallBack *pclsSecurityCallBack)
 SIP stack 의 보안 기능을 수행할 callback 인터페이스를 등록한다.
void CSipStack::RecvRequest (int iThreadId, CSipMessage *pclsMessage)
 수신된 요청 SIP 메시지에 대한 callback 메소드를 호출한다.
void CSipStack::RecvResponse (int iThreadId, CSipMessage *pclsMessage)
 수신된 응답 SIP 메시지에 대한 callback 메소드를 호출한다.
void CSipStack::SendTimeout (int iThreadId, CSipMessage *pclsMessage)
 전송 SIP 메시지에 대한 timeout callback 메소드를 호출한다.
void CSipStack::TcpSessionEnd (const char *pszIp, int iPort, ESipTransport eTransport)
 TCP/TLS 세션 종료에 대한 callback 메소드를 호출한다.
void CSipStack::ThreadEnd (int iThreadId)
 쓰레드 종료 이벤트를 전달한다.
bool CSipStack::SendSipMessage (CSipMessage *pclsMessage)
 SIP stack 에 SIP 메시지가 존재하지 않으면 SIP stack 에 SIP 메시지를 저장하고 SIP 메시지를 네트워크로 전송한다.
bool CSipStack::RecvSipMessage (int iThreadId, CSipMessage *pclsMessage)
 네트워크에서 수신된 SIP 메시지를 SIP stack 에 저장하고 callback 메소드를 호출하여 응용에 알려 준다.
bool CSipStack::Send (CSipMessage *pclsMessage, bool bCheckMessage=true)
 SIP 메시지를 네트워크로 전송한다.
bool CSipStack::Send (const char *pszMessage, const char *pszIp, unsigned short iPort, ESipTransport eTransport)
 SIP 세션으로 문자열을 전송한다.
 CSipStackSetup::CSipStackSetup ()
 생성자
 CSipStackSetup::~CSipStackSetup ()
 소멸자
bool CSipStackSetup::Check ()
 설정 항목의 유효성을 검사한다.
int CSipStackSetup::GetLocalPort (ESipTransport eTransport)
 전송 프로토콜에 대한 로컬 포트 번호를 리턴한다.
void CSipTransactionList::SetSipStack (CSipStack *pclsSipStack)
 Transaction List 를 포함한 CSipStack 객체의 포인터를 저장한다.
static bool CSipTransactionList::GetKey (CSipMessage *pclsMessage, std::string &strKey)
 Transaction List 에 저장할 키를 가져온다.
static bool CSipTransactionList::GetKey (CSipMessage *pclsMessage, const char *pszMethod, std::string &strKey)
 Transaction List 에 저장할 키를 가져온다.
bool CTcpConnectMap::Insert (const char *pszIp, int iPort)
 TCP 서버에 접속중 정보를 저장한다.
bool CTcpConnectMap::Insert (const char *pszIp, int iPort, CSipMessage *pclsMessage)
 TCP 서버에 접속한 후, 전송할 SIP 메시지를 저장한다.
bool CTcpConnectMap::Delete (const char *pszIp, int iPort, SIP_MESSAGE_LIST &clsList)
 TCP 서버로 전송할 SIP 메시지 리스트를 검색한 후, 해당 정보를 자료구조에서 삭제한다.
bool CTcpConnectMap::Delete (const char *pszIp, int iPort)
 TCP 서버로 전송할 SIP 메시지 리스트 및 해당 정보를 자료구조에서 삭제한다.
int CTcpConnectMap::GetSize ()
 자료구조에 저장된 개수를 리턴한다.
void CTcpConnectMap::SetStateful (bool bStateful)
 stateful 여부를 설정한다.
void CTcpConnectMap::GetString (CMonitorString &strBuf)
 자료구조 모니터링 문자열을 저장한다.
void CTcpSessionListInfo::Clear ()
 세션 정보를 초기화시킨다.
bool CTcpSessionList::Init (int iPollFdMax)
 TCP 세션 정보를 초기화시킨다.
bool CTcpSessionList::Insert (Socket hSocket)
 TCP 소켓을 추가한다.
bool CTcpSessionList::Insert (CTcpComm &clsTcpComm, SSL *psttSsl=NULL)
 TCP 세션 정보를 추가한다.
bool CTcpSessionList::Delete (int iIndex, CThreadListEntry *pclsEntry)
 TCP 세션 정보를 삭제한다.
void CTcpSessionList::DeleteAll (CThreadListEntry *pclsEntry)
 모든 TCP 세션 정보를 삭제한다.
void CTcpSessionList::DeleteTimeout (int iTimeout, CThreadListEntry *pclsEntry)
 TCP 수신 timeout 이 발생한 TCP 세션을 종료시킨다.
bool CTcpSocketMap::Insert (const char *pszIp, int iPort, Socket hSocket, SSL *psttSsl=NULL)
 클라이언트 정보를 저장한다.
bool CTcpSocketMap::Select (const char *pszIp, int iPort, Socket &hSocket)
 클라이언트 IP 주소와 포트 번호와 연관된 TCP 소켓 핸들을 검색한다.
bool CTcpSocketMap::Delete (const char *pszIp, int iPort)
 자료구조에서 클라이언트 IP 주소와 포트번호에 해당하는 정보를 삭제한다.
void CTcpSocketMap::DeleteAll ()
 자료구조를 초기화한다.
void CTcpSocketMap::GetString (CMonitorString &strBuf)
 TCP 세션들의 정보를 하나의 문자열에 저장한다.
void CThreadListEntry::Close ()
 소켓을 종료한다.
void CThreadListEntry::IncreaseSocketCount (bool bLock=true)
 소켓 사용 개수를 증가시킨다.
void CThreadListEntry::DecreaseSocketCount (bool bLock=true)
 소켓 사용 개수를 감소시킨다.
bool CThreadList::Init (int iThreadCount, int iThreadMaxCount, void *(*pThreadProc)(void *), void *pUser)
 쓰레드 리스트를 시작한다.
void CThreadList::Final ()
 쓰레드 리스트를 종료한다.
bool CThreadList::SetMaxSocketPerThread (int iMaxSocketPerThread)
 하나의 쓰레드에서 처리하는 최대 소켓 개수를 설정한다.
bool CThreadList::SendCommand (const char *pszData, int iDataLen, int iThreadIndex=-1, int *piThreadIndex=NULL)
 쓰레드에 명령을 전송한다.
static int CThreadList::RecvCommand (Socket hSocket, char *pszData, int iDataSize)
 명령을 수신한다.
void CThreadList::GetString (CMonitorString &strBuf)
 쓰레드 정보를 하나의 문자열에 저장한다.

상세한 설명

SIP Stack 라이브러리

함수 문서화

bool CSipBuffer::AddBuf ( const char *  pszBuf,
int  iLen 
)

내부 버퍼에 데이타를 추가한다.

매개변수
pszBuf입력할 데이타
iLen입력할 데이타의 길이
반환값
성공하면 true 를 리턴한다. 실패하면 false 를 리턴한다.
bool CSipStack::AddCallBack ( ISipStackCallBack pclsCallBack)

SIP stack 에 callback 인터페이스를 추가한다.

매개변수
pclsCallBackSIP stack 의 callback 인터페이스
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
void CMonitorString::AddCol ( const char *  pszValue)

컬럼 문자열을 저장한다.

매개변수
pszValue문자열
void CMonitorString::AddCol ( const std::string &  strValue)

컬럼 문자열을 저장한다.

매개변수
strValue문자열
void CMonitorString::AddCol ( const std::string &  strIp,
int  iPort 
)

컬럼 문자열에 IP 주소와 포트 번호를 저장한다.

매개변수
strIpIP 주소
iPort포트 번호
void CMonitorString::AddCol ( uint32_t  iIp,
uint16_t  iPort 
)

컬럼 문자열에 IP 주소와 포트 번호를 저장한다.

매개변수
iIpIP 주소
iPort포트 번호
void CMonitorString::AddCol ( int  iValue)

컬럼 문자열에 숫자를 저장한다.

매개변수
iValue숫자
void CMonitorString::AddCol ( uint32_t  iValue)

컬럼 문자열에 숫자를 저장한다.

매개변수
iValue숫자
void CMonitorString::AddCol ( time_t  iTime)

컬럼 문자열에 시간 문자열을 저장한다.

매개변수
iTime시간
void CMonitorString::AddCol ( bool  bValue)

컬럼 문자열에 true/false 를 저장한다.

매개변수
bValuetrue/false
void CMonitorString::AddRow ( const char *  pszValue)

줄의 마지막 문자열을 저장한다.

매개변수
pszValue문자열
void CMonitorString::AddRow ( const std::string &  strValue)

줄의 마지막 문자열을 저장한다.

매개변수
strValue문자열
void CMonitorString::AddRow ( const std::string &  strIp,
int  iPort 
)

줄의 마지막 문자열에 IP 주소와 포트 번호를 저장한다.

매개변수
strIpIP 주소
iPort포트 번호
void CMonitorString::AddRow ( uint32_t  iIp,
uint16_t  iPort 
)

줄의 마지막 문자열에 IP 주소와 포트 번호를 저장한다.

매개변수
iIpIP 주소
iPort포트 번호
void CMonitorString::AddRow ( int  iValue)

줄의 마지막 문자열에 숫자를 저장한다.

매개변수
iValue숫자
void CMonitorString::AddRow ( uint32_t  iValue)

줄의 마지막 문자열에 숫자를 저장한다.

매개변수
iValue숫자
void CMonitorString::AddRow ( time_t  iTime)

줄의 마지막 문자열에 시간 문자열을 저장한다.

매개변수
iTime시간
void CMonitorString::AddRow ( bool  bValue)

줄의 마지막 문자열에 true/false 를 저장한다.

매개변수
bValuetrue/false
void CSipQueue::BroadCast ( )

SIP 수신 메시지를 대기하는 쓰레드를 모두 깨운다.

bool CSipStackSetup::Check ( )

설정 항목의 유효성을 검사한다.

반환값
설정 항목이 유효하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
void CSipBuffer::Clear ( )

내부 변수를 초기화시킨다.

void CMonitorString::Clear ( )

저장된 문자열을 초기화시킨다.

void CTcpSessionListInfo::Clear ( )

세션 정보를 초기화시킨다.

void CThreadListEntry::Close ( )

소켓을 종료한다.

CSipDeleteQueue::CSipDeleteQueue ( )

생성자

CSipICTList::CSipICTList ( )

생성자

CSipInviteTransaction::CSipInviteTransaction ( )

생성자

CSipISTList::CSipISTList ( )

생성자

CSipNICTList::CSipNICTList ( )

생성자

CSipNISTList::CSipNISTList ( )

생성자

CSipNonInviteTransaction::CSipNonInviteTransaction ( )

생성자

CSipStack::CSipStack ( )

생성자 - 내부 변수를 초기화시키고 transaction list 와 SIP stack 을 연결시킨다.

CSipStackSetup::CSipStackSetup ( )

생성자

void CThreadListEntry::DecreaseSocketCount ( bool  bLock = true)

소켓 사용 개수를 감소시킨다.

void CSipStack::DecreateTcpThreadCount ( )

TCP SIP 메시지 수신 쓰레드 개수를 감소시킨다.

void CSipStack::DecreateUdpThreadCount ( )

UDP SIP 메시지 수신 쓰레드 개수를 감소시킨다.

bool CTcpConnectMap::Delete ( const char *  pszIp,
int  iPort,
SIP_MESSAGE_LIST &  clsList 
)

TCP 서버로 전송할 SIP 메시지 리스트를 검색한 후, 해당 정보를 자료구조에서 삭제한다.

매개변수
pszIpTCP 서버 IP 주소
iPortTCP 서버 포트 번호
clsListTCP 서버로 전송할 SIP 메시지 리스트 저장을 위한 변수
반환값
성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool CTcpConnectMap::Delete ( const char *  pszIp,
int  iPort 
)

TCP 서버로 전송할 SIP 메시지 리스트 및 해당 정보를 자료구조에서 삭제한다.

매개변수
pszIpTCP 서버 IP 주소
iPortTCP 서버 포트 번호
반환값
성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool CTcpSocketMap::Delete ( const char *  pszIp,
int  iPort 
)

자료구조에서 클라이언트 IP 주소와 포트번호에 해당하는 정보를 삭제한다.

매개변수
pszIp클라이언트 IP 주소
iPort클라이언트 포트 번호
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CTcpSessionList::Delete ( int  iIndex,
CThreadListEntry pclsEntry 
)

TCP 세션 정보를 삭제한다.

매개변수
iIndexTCP 세션 인덱스
pclsEntryTCP 쓰레드 정보 객체
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
void CSipICTList::DeleteAll ( )
virtual

Invite Client Transaction List 의 모든 항목을 삭제한다.

CSipTransactionList를 구현.

void CSipISTList::DeleteAll ( )
virtual

Invite Server Transaction List 의 모든 항목을 삭제한다.

CSipTransactionList를 구현.

void CSipNICTList::DeleteAll ( )
virtual

Non-Invite Client Transaction List 의 모든 항목을 삭제한다.

CSipTransactionList를 구현.

void CSipNISTList::DeleteAll ( )
virtual

Non-Invite Server Transaction List 의 모든 항목을 삭제한다.

CSipTransactionList를 구현.

void CSipDeleteQueue::DeleteAll ( )

대기 SIP 메시지를 모두 삭제한다.

void CTcpSocketMap::DeleteAll ( )

자료구조를 초기화한다.

void CTcpSessionList::DeleteAll ( CThreadListEntry pclsEntry)

모든 TCP 세션 정보를 삭제한다.

매개변수
pclsEntryTCP 쓰레드 정보 객체
void CSipStack::DeleteAllTransaction ( )

모든 SIP transaction 을 삭제한다.

bool CSipStack::DeleteCallBack ( ISipStackCallBack pclsCallBack)

SIP stack 에 callback 인터페이스를 삭제한다.

매개변수
pclsCallBackSIP stack 의 callback 인터페이스
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CSipNICTList::DeleteCancel ( CSipMessage pclsMessage)

SIP 메시지에 해당하는 CANCEL 메시지를 검색해서 삭제한다.

매개변수
pclsMessageSIP 메시지
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
void CSipDeleteQueue::DeleteTimeout ( )

대기 시간이 초과한 SIP 메시지를 삭제한다.

void CTcpSessionList::DeleteTimeout ( int  iTimeout,
CThreadListEntry pclsEntry 
)

TCP 수신 timeout 이 발생한 TCP 세션을 종료시킨다.

매개변수
iTimeoutTCP 수신 timeout 시간 (초단위)
pclsEntryTCP 쓰레드 정보
void CSipICTList::Execute ( struct timeval *  psttTime)
virtual

Invite Client Transaction List 에서 재전송할 항목은 재전송하고 삭제할 항목은 삭제하고 Timeout 된 항목은 Timeout 처리한다.

매개변수
psttTime실행한 시간

CSipTransactionList를 구현.

void CSipISTList::Execute ( struct timeval *  psttTime)
virtual

Invite Server Transaction List 에서 삭제할 항목은 삭제하고 ACK 를 수신하지 못 한 항목은 응답 메시지를 재전송해 준다.

매개변수
psttTime실행한 시간

CSipTransactionList를 구현.

void CSipNICTList::Execute ( struct timeval *  psttTime)
virtual

Non-Invite Client Transaction List 에서 재전송할 항목을 재전송하고 timeout 된 항목은 timeout 처리한다.

매개변수
psttTime실행한 시간

CSipTransactionList를 구현.

void CSipNISTList::Execute ( struct timeval *  psttTime)
virtual

Non-Invite Server Transaction List 에서 재전송할 항목에서 삭제할 항목을 삭제한다.

매개변수
psttTime실행한 시간

CSipTransactionList를 구현.

bool CSipStack::Execute ( struct timeval *  psttTime)

SIP stack 을 실행한다.

                    SIP stack 이 관리하는 Transaction List 를 주기적으로 점검하여서 Re-Transmit 또는 Timeout 등을 처리하기 위해서 본 함수를 20ms 간격으로 호출해 주어야 한다.
매개변수
psttTime현재 시간
반환값
true 를 리턴한다.
void CThreadList::Final ( )

쓰레드 리스트를 종료한다.

void CSipStack::Final ( )

프로세스가 종료될 때에 최종적으로 실행하여서 openssl 메모리 누수를 출력하지 않는다.

void CSipStack::GetICTMap ( INVITE_TRANSACTION_MAP &  clsMap)

ICT transcation map 을 가져온다.

매개변수
clsMap[out] transcation map 저장 변수
void CSipStack::GetICTString ( CMonitorString strBuf)

Invite Client Transaction 정보를 문자열에 저장한다.

매개변수
strBuf문자열 변수
bool CSipTransactionList::GetKey ( CSipMessage pclsMessage,
std::string &  strKey 
)
static

Transaction List 에 저장할 키를 가져온다.

매개변수
pclsMessageSIP 메시지 저장 구조체
strKeyTransaction List 에 저장할 키
반환값
성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool CSipTransactionList::GetKey ( CSipMessage pclsMessage,
const char *  pszMethod,
std::string &  strKey 
)
static

Transaction List 에 저장할 키를 가져온다.

매개변수
pclsMessageSIP 메시지 저장 구조체
pszMethodSIP Via branch 로 키를 생성할 경우 사용할 SIP 메소드
strKeyTransaction List 에 저장할 키
반환값
성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
int CMonitorString::GetLength ( )

저장된 문자열의 길이를 리턴한다.

반환값
저장된 문자열의 길이를 리턴한다.
int CSipStackSetup::GetLocalPort ( ESipTransport  eTransport)

전송 프로토콜에 대한 로컬 포트 번호를 리턴한다.

반환값
전송 프로토콜에 대한 로컬 포트 번호를 리턴한다.
bool CSipBuffer::GetSipMessage ( char **  ppszBuf,
int *  piLen 
)

내부 버퍼에서 SIP 메시지를 추출한다.

매개변수
ppszBuf추출한 SIP 메시지의 포인터를 저장할 변수
piLen추출한 SIP 메시지의 길이
반환값
성공하면 true 를 리턴한다. 실패하면 false 를 리턴한다.
int CSipICTList::GetSize ( )
virtual

Invite Client Transaction List 의 크기를 리턴한다.

반환값
Invite Client Transaction List 의 크기를 리턴한다.

CSipTransactionList를 구현.

int CSipISTList::GetSize ( )
virtual

Invite Server Transaction List 의 크기를 리턴한다.

반환값
Invite Server Transaction List 의 크기를 리턴한다.

CSipTransactionList를 구현.

int CSipNICTList::GetSize ( )
virtual

Non-Invite Client Transaction List 의 크기를 리턴한다.

반환값
Non-Invite Client Transaction List 의 크기를 리턴한다.

CSipTransactionList를 구현.

int CSipNISTList::GetSize ( )
virtual

Non-Invite Server Transaction List 의 크기를 리턴한다.

반환값
Non-Invite Server Transaction List 의 크기를 리턴한다.

CSipTransactionList를 구현.

int CSipDeleteQueue::GetSize ( )

자료구조에 저장된 SIP 메시지의 개수를 리턴한다.

반환값
자료구조에 저장된 SIP 메시지의 개수를 리턴한다.
int CTcpConnectMap::GetSize ( )

자료구조에 저장된 개수를 리턴한다.

반환값
자료구조에 저장된 개수를 리턴한다.
void CSipISTList::GetString ( CMonitorString strBuf)
virtual

IST 자료구조에 저장된 SIP Call-ID 들을 문자열에 저장한다.

매개변수
strBufSIP Call-ID 들을 저장할 문자열

CSipTransactionList를 구현.

void CSipNICTList::GetString ( CMonitorString strBuf)
virtual

NICT 자료구조에 저장된 SIP Call-ID 들을 문자열에 저장한다.

매개변수
strBufSIP Call-ID 들을 저장할 문자열

CSipTransactionList를 구현.

void CSipICTList::GetString ( CMonitorString strBuf)
virtual

ICT 에 저장된 SIP Call-ID 들을 문자열에 저장한다.

매개변수
strBufSIP Call-ID 들을 저장할 변수

CSipTransactionList를 구현.

void CSipNISTList::GetString ( CMonitorString strBuf)
virtual

NIST 자료구조에 저장된 SIP Call-ID 들을 문자열에 저장한다.

매개변수
strBufSIP Call-ID 들을 저장할 문자열

CSipTransactionList를 구현.

const char * CMonitorString::GetString ( )

저장된 문자열을 리턴한다.

반환값
저장된 문자열을 리턴한다.
void CTcpConnectMap::GetString ( CMonitorString strBuf)

자료구조 모니터링 문자열을 저장한다.

매개변수
strBuf문자열 변수
void CSipStack::GetString ( CMonitorString strBuf)

Transaction List 의 정보를 문자열에 저장한다.

매개변수
strBuf문자열 변수
void CTcpSocketMap::GetString ( CMonitorString strBuf)

TCP 세션들의 정보를 하나의 문자열에 저장한다.

매개변수
strBufTCP 세션들의 정보를 저장할 문자열 변수
void CThreadList::GetString ( CMonitorString strBuf)

쓰레드 정보를 하나의 문자열에 저장한다.

매개변수
strBuf쓰레드 정보를 저장할 문자열 변수
void CSipICTList::GetTransactionMap ( INVITE_TRANSACTION_MAP &  clsMap)

transcation map 을 가져온다.

매개변수
clsMap[out] transcation map 을 저장할 변수
void CThreadListEntry::IncreaseSocketCount ( bool  bLock = true)

소켓 사용 개수를 증가시킨다.

void CSipStack::IncreateTcpThreadCount ( int &  iThreadId)

TCP SIP 메시지 수신 쓰레드 개수를 증가시킨다.

매개변수
iThreadIdUDP SIP 메시지 수신 쓰레드 개수를 증가시키기 전에 UDP SIP 메시지 수신 쓰레드 개수를 저장할 변수
void CSipStack::IncreateUdpThreadCount ( int &  iThreadId)

UDP SIP 메시지 수신 쓰레드 개수를 증가시킨다.

매개변수
iThreadIdUDP SIP 메시지 수신 쓰레드 개수를 증가시키기 전에 UDP SIP 메시지 수신 쓰레드 개수를 저장할 변수
bool CThreadList::Init ( int  iThreadCount,
int  iThreadMaxCount,
void *(*)(void *)  pThreadProc,
void *  pUser 
)

쓰레드 리스트를 시작한다.

매개변수
iThreadCount생성할 쓰레드 개수
iThreadMaxCount최대 쓰레드 개수
pThreadProc쓰레드 함수
pUser사용자 정의 변수
반환값
성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool CTcpSessionList::Init ( int  iPollFdMax)

TCP 세션 정보를 초기화시킨다.

매개변수
iPollFdMaxTCP 세션 개수
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CSipISTList::Insert ( CSipMessage pclsMessage)
virtual

Invite Server Transaction List 에 SIP 메시지를 추가한다.

매개변수
pclsMessageSIP 메시지 저장 구조체
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.

CSipTransactionList를 구현.

bool CSipICTList::Insert ( CSipMessage pclsMessage)
virtual

Invite Client Transaction List 에 SIP 메시지를 추가한다.

매개변수
pclsMessageSIP 메시지 저장 구조체
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.

CSipTransactionList를 구현.

bool CSipNICTList::Insert ( CSipMessage pclsMessage)
virtual

Non-Invite Client Transaction List 에 SIP 메시지를 추가한다.

매개변수
pclsMessageSIP 메시지 저장 구조체
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.

CSipTransactionList를 구현.

bool CSipNISTList::Insert ( CSipMessage pclsMessage)
virtual

Non-Invite Server Transaction List 에 SIP 메시지를 추가한다.

매개변수
pclsMessageSIP 메시지 저장 구조체
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.

CSipTransactionList를 구현.

void CSipDeleteQueue::Insert ( CSipMessage pclsMessage)

일정 시간 후에 삭제할 SIP 메시지를 저장한다.

매개변수
pclsMessage만료된 SIP 메시지
bool CTcpConnectMap::Insert ( const char *  pszIp,
int  iPort 
)

TCP 서버에 접속중 정보를 저장한다.

매개변수
pszIpTCP 서버 IP 주소
iPortTCP 서버 포트 번호
반환값
저장에 성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool CTcpConnectMap::Insert ( const char *  pszIp,
int  iPort,
CSipMessage pclsMessage 
)

TCP 서버에 접속한 후, 전송할 SIP 메시지를 저장한다.

매개변수
pszIpTCP 서버 IP 주소
iPortTCP 서버 포트 번호
pclsMessageSIP 메시지
반환값
성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool CTcpSocketMap::Insert ( const char *  pszIp,
int  iPort,
Socket  hSocket,
SSL *  psttSsl = NULL 
)

클라이언트 정보를 저장한다.

매개변수
pszIp클라이언트 IP 주소
iPort클라이언트 포트 번호
hSocketTCP 소켓
psttSslSSL 구조체
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CSipQueue::Insert ( const char *  pszBuf,
int  iBufLen,
const char *  pszIp,
unsigned short  sPort,
ESipTransport  eTransport 
)

SIP 수신 메시지를 저장한다.

매개변수
pszBufSIP 수신 메시지
iBufLenSIP 수신 메시지 길이
pszIpSIP 전송 IP 주소
sPortSIP 전송 포트 번호
eTransportSIP 전송 프로토콜
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CTcpSessionList::Insert ( Socket  hSocket)

TCP 소켓을 추가한다.

매개변수
hSocketTCP 소켓
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CTcpSessionList::Insert ( CTcpComm clsTcpComm,
SSL *  psttSsl = NULL 
)

TCP 세션 정보를 추가한다.

매개변수
clsTcpCommTCP 세션 정보 저장 객체
psttSslSSL 세션 정보 저장 구조체 - SSL 세션인 경우만 저장한다.
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
virtual bool ISipStackSecurityCallBack::IsAllowIp ( const char *  pszIp)
pure virtual

SIP stack 에서 허용하는 IP 주소인가?

매개변수
pszIp클라이언트 IP 주소
반환값
SIP stack 에서 허용하는 IP 주소이면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
virtual bool ISipStackSecurityCallBack::IsAllowUserAgent ( const char *  pszSipUserAgent)
pure virtual

SIP stack 에서 허용하는 SIP User Agent 인가?

매개변수
pszSipUserAgentSIP UserAgent 헤더
반환값
SIP stack 에서 허용하는 SIP User Agent 이면 true 를 리턴하고 그렇지 않으면 false 한다.
virtual bool ISipStackSecurityCallBack::IsDenyIp ( const char *  pszIp)
pure virtual

SIP stack 에서 허용하지 않는 IP 주소인가?

매개변수
pszIp클라이언트 IP 주소
반환값
SIP stack 에서 허용하지 않는 IP 주소이면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
virtual bool ISipStackSecurityCallBack::IsDenyUserAgent ( const char *  pszSipUserAgent)
pure virtual

SIP stack 에서 허용하지 않는 SIP User Agent 인가?

매개변수
pszSipUserAgentSIP UserAgent 헤더
반환값
SIP stack 에서 허용하지 않는 SIP User Agent 이면 true 를 리턴하고 그렇지 않으면 false 한다.
int CThreadList::RecvCommand ( Socket  hSocket,
char *  pszData,
int  iDataSize 
)
static

명령을 수신한다.

매개변수
hSocketpipe 수신 핸들
pszData명령 저장 변수
iDataSizepszData 변수 크기
반환값
수신한 길이를 리턴한다.
virtual bool ISipStackCallBack::RecvRequest ( int  iThreadId,
CSipMessage pclsMessage 
)
pure virtual

SIP 요청 메시지 수신 이벤트 핸들러

매개변수
iThreadIdUDP 쓰레드 번호
pclsMessageSIP 요청 메시지
반환값
SIP 요청 메시지를 처리하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.

CSipUserAgent, CSipUserAgentMFC에서 구현되었습니다.

void CSipStack::RecvRequest ( int  iThreadId,
CSipMessage pclsMessage 
)

수신된 요청 SIP 메시지에 대한 callback 메소드를 호출한다.

                    만약 요청 SIP 메시지를 처리할 callback 이 존재하지 않으면 501 응답 메시지를 전송한다.
매개변수
iThreadId쓰레드 아이디 ( 0 부터 쓰레드 개수 )
pclsMessageSIP 메시지 저장 구조체
virtual bool ISipStackCallBack::RecvResponse ( int  iThreadId,
CSipMessage pclsMessage 
)
pure virtual

SIP 응답 메시지 수신 이벤트 핸들러

매개변수
iThreadIdUDP 쓰레드 번호
pclsMessageSIP 응답 메시지
반환값
SIP 응답 메시지를 처리하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.

CSipUserAgent, CSipUserAgentMFC에서 구현되었습니다.

void CSipStack::RecvResponse ( int  iThreadId,
CSipMessage pclsMessage 
)

수신된 응답 SIP 메시지에 대한 callback 메소드를 호출한다.

매개변수
iThreadId쓰레드 아이디 ( 0 부터 쓰레드 개수 )
pclsMessageSIP 메시지 저장 구조체
bool CSipStack::RecvSipMessage ( int  iThreadId,
CSipMessage pclsMessage 
)

네트워크에서 수신된 SIP 메시지를 SIP stack 에 저장하고 callback 메소드를 호출하여 응용에 알려 준다.

                    본 메소드에서 true 를 리턴하면 내부적으로 CSipMessage 메모리를 관리하고 그렇지 않으면 호출한 부분에서 CSipMessage 메모리를 삭제해 주어야 한다.
매개변수
iThreadId쓰레드 아이디 ( 0 부터 쓰레드 개수 )
pclsMessageSIP 메시지 저장 구조체
반환값
SIP stack 에 저장하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool CTcpSocketMap::Select ( const char *  pszIp,
int  iPort,
Socket &  hSocket 
)

클라이언트 IP 주소와 포트 번호와 연관된 TCP 소켓 핸들을 검색한다.

매개변수
pszIp클라이언트 IP 주소
iPort클라이언트 포트 번호
hSocketTCP 소켓을 저장할 변수
반환값
검색에 성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool CSipQueue::Select ( CSipQueueEntry **  ppclsEntry)

SIP 수신 메시지를 가져온다.

매개변수
ppclsEntrySIP 수신 메시지를 저장할 변수
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CSipStack::Send ( CSipMessage pclsMessage,
bool  bCheckMessage = true 
)

SIP 메시지를 네트워크로 전송한다.

매개변수
pclsMessageSIP 메시지 저장 구조체
bCheckMessageSIP 메시지를 검사하여서 필수 헤더를 추가/수정하는가?
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CSipStack::Send ( const char *  pszMessage,
const char *  pszIp,
unsigned short  iPort,
ESipTransport  eTransport 
)

SIP 세션으로 문자열을 전송한다.

매개변수
pszMessage전송할 문자열
pszIp목적지 IP 주소
iPort목적지 포트 번호
eTransport프로토콜
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CThreadList::SendCommand ( const char *  pszData,
int  iDataLen,
int  iThreadIndex = -1,
int *  piThreadIndex = NULL 
)

쓰레드에 명령을 전송한다.

매개변수
pszData명령
iDataLenpszData 길이
iThreadIndex명령을 전송할 쓰레드 인덱스 -1 을 입력하면 최대 소켓 개수를 넘지 않은 쓰레드에 명령이 전송된다.
piThreadIndex실제 전송된 쓰레드 인덱스를 저장하는 변수
반환값
성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool CSipStack::SendSipMessage ( CSipMessage pclsMessage)

SIP stack 에 SIP 메시지가 존재하지 않으면 SIP stack 에 SIP 메시지를 저장하고 SIP 메시지를 네트워크로 전송한다.

매개변수
pclsMessageSIP 메시지 저장 구조체
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
virtual bool ISipStackCallBack::SendTimeout ( int  iThreadId,
CSipMessage pclsMessage 
)
pure virtual

SIP 메시지 전송 timeout 이벤트 핸들러

매개변수
iThreadIdUDP 쓰레드 번호
pclsMessageSIP 응답 메시지
반환값
SIP 응답 메시지를 처리하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.

CSipUserAgent, CSipUserAgentMFC에서 구현되었습니다.

void CSipStack::SendTimeout ( int  iThreadId,
CSipMessage pclsMessage 
)

전송 SIP 메시지에 대한 timeout callback 메소드를 호출한다.

매개변수
iThreadId쓰레드 아이디 ( 0 부터 쓰레드 개수 )
pclsMessageSIP 메시지 저장 구조체
bool CThreadList::SetMaxSocketPerThread ( int  iMaxSocketPerThread)

하나의 쓰레드에서 처리하는 최대 소켓 개수를 설정한다.

매개변수
iMaxSocketPerThread하나의 쓰레드에서 처리하는 최대 소켓 개수
반환값
성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
void CSipStack::SetSecurityCallBack ( ISipStackSecurityCallBack pclsSecurityCallBack)

SIP stack 의 보안 기능을 수행할 callback 인터페이스를 등록한다.

매개변수
pclsSecurityCallBack
void CSipTransactionList::SetSipStack ( CSipStack pclsSipStack)

Transaction List 를 포함한 CSipStack 객체의 포인터를 저장한다.

재전송 기능을 위해서 CSipStack 객체가 필요하다.

매개변수
pclsSipStackCSipStack 객체의 포인터
void CTcpConnectMap::SetStateful ( bool  bStateful)

stateful 여부를 설정한다.

매개변수
bStatefulstateful 이면 true 이다.
void CSipICTList::SetTimerD ( int  iMiliSecond)

Timer D 값을 수정한다.

매개변수
iMiliSecondTimer D 값 ( milisecond 단위 )
void CSipNISTList::SetTimerJ ( int  iMiliSecond)

Timer J 값을 수정한다.

매개변수
iMiliSecondTimer J 값 ( milisecond 단위 )
bool CSipBuffer::ShiftBuf ( int  iLen)

내부 버퍼를 왼쪽으로 이동한다.

SIP 메시지를 처리한 후에 호출하면 된다.

매개변수
iLen이동할 길이
반환값
성공하면 true 를 리턴한다. 실패하면 false 를 리턴한다.
THREAD_API SipQueueThread ( LPVOID  lpParameter)

SIP 큐에서 SIP 메시지를 가져와서 파싱 및 callback 처리하는 쓰레드

매개변수
lpParameterSIP stack 객체
반환값
0 을 리턴한다.
THREAD_API SipStackThread ( LPVOID  lpParameter)

주기적으로 SIP stack 을 실행하는 쓰레드

매개변수
lpParameterSIP stack 객체
반환값
0 을 리턴한다.
THREAD_API SipTcpClientThread ( LPVOID  lpParameter)

TCP 클라이언트 세션 연결을 위한 쓰레드 함수

매개변수
lpParameterCThreadListEntry 객체의 포인터
반환값
0 을 리턴한다.
THREAD_API SipTcpListenThread ( LPVOID  lpParameter)

TCP 프로토콜로 SIP 메시지 수신 및 SIP 수신 이벤트를 처리하는 쓰레드 함수

매개변수
lpParameterSIP stack 포인터
반환값
0 을 리턴한다.
THREAD_API SipTcpThread ( LPVOID  lpParameter)

TCP 세션을 위한 쓰레드 함수

매개변수
lpParameterCThreadListEntry 객체의 포인터
반환값
0 을 리턴한다.
THREAD_API SipTlsClientThread ( LPVOID  lpParameter)

TLS 클라이언트 세션 연결을 위한 쓰레드 함수

매개변수
lpParameterCThreadListEntry 객체의 포인터
반환값
0 을 리턴한다.
THREAD_API SipTlsListenThread ( LPVOID  lpParameter)

TLS 프로토콜로 SIP 메시지 수신 및 SIP 수신 이벤트를 처리하는 쓰레드 함수

매개변수
lpParameterSIP stack 포인터
반환값
0 을 리턴한다.
THREAD_API SipTlsThread ( LPVOID  lpParameter)

TLS 세션을 위한 쓰레드 함수

매개변수
lpParameterCThreadListEntry 객체의 포인터
반환값
0 을 리턴한다.
THREAD_API SipUdpThread ( LPVOID  lpParameter)

UDP 프로토콜로 SIP 메시지 수신 및 SIP 수신 이벤트를 처리하는 쓰레드 함수

매개변수
lpParameterSIP stack 포인터
반환값
0 을 리턴한다.
bool SSLAccept ( Socket  iFd,
SSL **  ppsttSsl,
bool  bCheckClientCert,
int  iVerifyDepth,
int  iAcceptTimeout 
)

클라이언트 SSL 접속 요청을 허용한다.

매개변수
iFd클라이언트 TCP 소켓 핸들
ppsttSslSSL 구조체
bCheckClientCert클라이언트 인증서를 확인할 것인가?
iVerifyDepththe maximum depth for the certificate chain verification that shall be allowed for ssl
iAcceptTimeoutSSL 접속 요청 처리 최대 시간 ( ms 단위 )
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool SSLClientStart ( )

SSL 클라이언트 라이브러리를 시작한다.

반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool SSLClientStop ( )

SSL 클라이언트 라이브러리를 종료한다.

반환값
true 를 리턴한다.
bool SSLClose ( SSL *  ssl)

SSL 세션을 종료한다.

매개변수
sslSSL 구조체
반환값
true 를 리턴한다.
void SSLFinal ( )

프로세스가 종료될 때에 최종적으로 실행하여서 openssl 메모리 누수를 출력하지 않는다.

void SSLPrintLogClientCipherList ( )

SSL 클라이언트에서 사용되는 cipher list 를 로그로 출력한다.

void SSLPrintLogServerCipherList ( )

SSL 서버에서 사용되는 cipher list 를 로그로 출력한다.

int SSLRecv ( SSL *  ssl,
char *  szBuf,
int  iBufLen 
)

SSL 프로토콜로 수신된 패킷을 읽는다.

매개변수
sslSSL 구조체
szBuf수신 패킷 저장 버퍼
iBufLen수신 패킷 저장 버퍼 크기
반환값
성공하면 양수를 리턴하고 실패하면 0 또는 음수를 리턴한다.
int SSLSend ( SSL *  ssl,
const char *  szBuf,
int  iBufLen 
)

SSL 프로토콜로 패킷을 전송한다.

매개변수
sslSSL 구조체
szBuf전송 패킷
iBufLen전송 패킷 크기
반환값
전송 패킷 크기를 리턴한다.
bool SSLServerStart ( const char *  szCertFile,
const char *  szCaCertFile 
)

SSL 서버 라이브러리를 시작한다.

매개변수
szCertFile서버 인증서 및 개인키 파일
szCaCertFileCA 인증서 파일
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool SSLServerStop ( )

SSL 서버 라이브러리를 종료한다.

반환값
true 를 리턴한다.
bool SSLStart ( )

SSL 라이브러리를 multi-thread 기반으로 시작한다.

반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CSipStack::Start ( CSipStackSetup clsSetup)

SIP stack 을 시작한다.

SIP stack 쓰레드와 network 수신 쓰레드를 시작한다.

매개변수
clsSetupSIP stack 설정 항목 저장 객체
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool StartSipQueueThread ( CSipStack pclsSipStack)

SIP 큐에서 SIP 메시지를 가져와서 파싱 및 callback 처리하는 쓰레드를 시작한다.

매개변수
pclsSipStackSIP stack 객체
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool StartSipStackThread ( CSipStack pclsSipStack)

SIP stack thread 를 시작한다.

매개변수
pclsSipStackSIP stack 객체
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool StartSipTcpClientThread ( CSipStack pclsSipStack,
const char *  pszIp,
int  iPort,
CSipMessage pclsSipMessage 
)

TCP 프로토콜로 SIP 메시지 수신 및 SIP 수신 이벤트를 처리하는 Thread Pool 을 시작한다.

매개변수
pclsSipStackSIP stack 포인터
pszIpSIP 메시지를 전송할 IP 주소
iPortSIP 메시지를 전송할 포트 번호
pclsSipMessage전송할 SIP 메시지
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool StartSipTcpListenThread ( CSipStack pclsSipStack)

TCP 프로토콜로 SIP 메시지 수신 및 SIP 수신 이벤트를 처리하는 Thread Pool 을 시작한다.

매개변수
pclsSipStackSIP stack 포인터
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool StartSipTlsClientThread ( CSipStack pclsSipStack,
const char *  pszIp,
int  iPort,
CSipMessage pclsSipMessage 
)

TCP 프로토콜로 SIP 메시지 수신 및 SIP 수신 이벤트를 처리하는 Thread Pool 을 시작한다.

매개변수
pclsSipStackSIP stack 포인터
pszIpSIP 메시지를 전송할 IP 주소
iPortSIP 메시지를 전송할 포트 번호
pclsSipMessage전송할 SIP 메시지
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool StartSipTlsListenThread ( CSipStack pclsSipStack)

TLS 프로토콜로 SIP 메시지 수신 및 SIP 수신 이벤트를 처리하는 Thread Pool 을 시작한다.

매개변수
pclsSipStackSIP stack 포인터
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool StartSipUdpThread ( CSipStack pclsSipStack)

UDP 프로토콜로 SIP 메시지 수신 및 SIP 수신 이벤트를 처리하는 Thread Pool 을 시작한다.

매개변수
pclsSipStackSIP stack 포인터
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CSipStack::Stop ( )

SIP stack 을 중지시킨다.

반환값
성공하면 true 를 리턴하고 SIP stack 이 실행되지 않았거나 종료 이벤트 처리 중이면 false 를 리턴한다.
virtual void ISipStackCallBack::TcpSessionEnd ( const char *  pszIp,
int  iPort,
ESipTransport  eTransport 
)
inlinevirtual

TCP/TLS 세션 종료 이벤트 핸들러

매개변수
pszIpIP 주소
iPort포트 번호
eTransport프로토콜

CSipUserAgent에서 재구현되었습니다.

void CSipStack::TcpSessionEnd ( const char *  pszIp,
int  iPort,
ESipTransport  eTransport 
)

TCP/TLS 세션 종료에 대한 callback 메소드를 호출한다.

매개변수
pszIpIP 주소
iPort포트 번호
eTransport프로토콜
virtual void ISipStackCallBack::ThreadEnd ( int  iThreadId)
inlinevirtual

SIP 메시지 수신 쓰레드가 종료됨을 알려주는 이벤트 핸들러

매개변수
iThreadIdUDP 쓰레드 번호

CSipUserAgent에서 재구현되었습니다.

void CSipStack::ThreadEnd ( int  iThreadId)

쓰레드 종료 이벤트를 전달한다.

매개변수
iThreadId쓰레드 아이디 ( 0 부터 쓰레드 개수 )
CSipDeleteQueue::~CSipDeleteQueue ( )

소멸자

CSipICTList::~CSipICTList ( )
virtual

소멸자

CSipInviteTransaction::~CSipInviteTransaction ( )

소멸자

CSipISTList::~CSipISTList ( )
virtual

소멸자

CSipNICTList::~CSipNICTList ( )
virtual

소멸자

CSipNISTList::~CSipNISTList ( )
virtual

소멸자

CSipNonInviteTransaction::~CSipNonInviteTransaction ( )

소멸자

CSipStack::~CSipStack ( )

소멸자

CSipStackSetup::~CSipStackSetup ( )

소멸자