C++ SIP Stack  0.31
클래스 | 열거형 타입 | 함수
SipUserAgent

SIP User Agent 라이브러리 SIP 로그인/통화 관리 라이브러리 더 자세히 ...

클래스

class  CSipCdr
 SIP CDR 정보를 저장하는 클래스 더 자세히 ...
class  CSipDialog
 SIP Dialog 정보를 저장하는 클래스 더 자세히 ...
class  CSipServerInfo
 SIP 로그인 정보를 저장하는 클래스 더 자세히 ...
class  CSipCallRoute
 SIP 메시지 목적지 주소 저장 클래스 더 자세히 ...
class  CSipUserAgent
 SIP UserAgent 클래스 더 자세히 ...
class  CSipCallRtp
 RTP 정보 저장 클래스 더 자세히 ...
class  ISipUserAgentCallBack
 CSipUserAgent 의 이벤트를 응용 프로그램으로 전달하는 callback 인터페이스 더 자세히 ...

열거형 타입

enum  ERtpDirection {
  E_RTP_SEND_RECV = 0, E_RTP_SEND, E_RTP_RECV, E_RTP_INACTIVE,
  E_RTP_NULL
}
 RTP 전송/수신 더 자세히 ...

함수

const char * GetRtpDirectionString (ERtpDirection eDirection)
 enum direction 을 문자열로 리턴한다.
ERtpDirection GetRtpDirectionEnum (const char *pszDirection)
 문자열 direction 을 enum direction 으로 리턴한다.
THREAD_API SipRegisterThread (LPVOID lpParameter)
 SIP 서버에 주기적으로 REGISTER 메시지를 전송하는 쓰레드
bool StartSipRegisterThread (CSipUserAgent *pclsSipUserAgent)
 SIP 서버에 주기적으로 REGISTER 메시지를 전송하는 쓰레드를 시작한다.
virtual void ISipUserAgentCallBack::EventRegister (CSipServerInfo *pclsInfo, int iStatus)=0
 SIP REGISTER 응답 메시지 수신 이벤트 핸들러
virtual bool ISipUserAgentCallBack::EventIncomingRequestAuth (CSipMessage *pclsMessage)
 SIP 통화 요청 수신에 대한 인증 확인 이벤트 핸들러
virtual void ISipUserAgentCallBack::EventIncomingCall (const char *pszCallId, const char *pszFrom, const char *pszTo, CSipCallRtp *pclsRtp)=0
 SIP 통화 요청 수신 이벤트 핸들러
virtual void ISipUserAgentCallBack::EventCallRing (const char *pszCallId, int iSipStatus, CSipCallRtp *pclsRtp)=0
 SIP Ring / Session Progress 수신 이벤트 핸들러
virtual void ISipUserAgentCallBack::EventCallStart (const char *pszCallId, CSipCallRtp *pclsRtp)=0
 SIP 통화 연결 이벤트 핸들러
virtual void ISipUserAgentCallBack::EventCallEnd (const char *pszCallId, int iSipStatus)=0
 SIP 통화 종료 이벤트 핸들러
virtual void ISipUserAgentCallBack::EventReInvite (const char *pszCallId, CSipCallRtp *pclsRemoteRtp, CSipCallRtp *pclsLocalRtp)
 SIP ReINVITE 수신 이벤트 핸들러
virtual void ISipUserAgentCallBack::EventReInviteResponse (const char *pszCallId, int iSipStatus, CSipCallRtp *pclsRemoteRtp)
 SIP ReINVITE 응답 메시지 수신 이벤트 핸들러
virtual void ISipUserAgentCallBack::EventPrack (const char *pszCallId, CSipCallRtp *pclsRtp)
 SIP PRACK 수신 이벤트 핸들러
virtual bool ISipUserAgentCallBack::EventTransfer (const char *pszCallId, const char *pszReferToCallId, bool bScreenedTransfer)
 Screened / Unscreened Transfer 요청 수신 이벤트 핸들러
virtual bool ISipUserAgentCallBack::EventBlindTransfer (const char *pszCallId, const char *pszReferToId)
 Blind Transfer 요청 수신 이벤트 핸들러
virtual void ISipUserAgentCallBack::EventTransferResponse (const char *pszCallId, int iSipStatus)
 SIP 통화 전달 응답 수신 이벤트 핸들러
virtual bool ISipUserAgentCallBack::EventMessage (const char *pszFrom, const char *pszTo, CSipMessage *pclsMessage)
 SIP MESSAGE 수신 이벤트 핸들러
virtual void ISipUserAgentCallBack::EventThreadEnd (int iThreadId)
 SIP 메시지 수신 쓰레드가 종료됨을 알려주는 이벤트 핸들러
bool GetCallIdFromReferTo (const char *pszValue, std::string &strReferToCallId)
 Replaces 를 포함한 문자열에서 SIP Call-ID 를 가져온다.
 CSipDialog::CSipDialog (CSipStack *pclsSipStack)
 생성자
 CSipDialog::~CSipDialog ()
 소멸자.
CSipMessageCSipDialog::CreateInvite ()
 INVITE 메시지를 생성한다.
CSipMessageCSipDialog::CreateAck (int iStatusCode)
 ACK 메시지를 생성한다.
CSipMessageCSipDialog::CreateCancel ()
 CANCEL 메시지를 생성한다.
CSipMessageCSipDialog::CreateBye ()
 BYE 메시지를 생성한다.
CSipMessageCSipDialog::CreateNotify ()
 NOTIFY 메시지를 생성한다.
CSipMessageCSipDialog::CreateRefer ()
 REFER 메시지를 생성한다.
CSipMessageCSipDialog::CreatePrack ()
 PRACK 메시지를 생성한다.
CSipMessageCSipDialog::CreateInfo ()
 INFO 메시지를 생성한다.
bool CSipDialog::AddSdp (CSipMessage *pclsMessage)
 SIP 메시지에 SDP 메시지를 추가한다.
bool CSipDialog::SetLocalRtp (CSipCallRtp *pclsRtp)
 local RTP 정보를 저장한다.
bool CSipDialog::SetRemoteRtp (CSipCallRtp *pclsRtp)
 remote RTP 정보를 저장한다.
bool CSipDialog::SelectLocalRtp (CSipCallRtp *pclsRtp)
 my SIP 클라이언트의 RTP 정보를 가져온다.
bool CSipDialog::SelectRemoteRtp (CSipCallRtp *pclsRtp)
 SIP 클라이언트의 RTP 정보를 가져온다.
void CSipDialog::GetCdr (CSipCdr *pclsCdr)
 CDR 정보 객체에 데이터를 저장한다.
bool CSipDialog::IsConnected ()
 통화 연결된 Dialog 인가?
static bool CSipDialog::IsUseCodec (int iCodec)
 Dialog 에서 사용하는 코덱인지 검사한다.
 CSipServerInfo::CSipServerInfo ()
 생성자
 CSipServerInfo::~CSipServerInfo ()
 소멸자
bool CSipServerInfo::Equal (CSipServerInfo &clsInfo)
 동일한 IP-PBX 정보인지 검사한다.
void CSipServerInfo::Update (CSipServerInfo &clsInfo)
 IP-PBX 정보를 수정한다.
void CSipServerInfo::ClearLogin ()
 로그인된 정보를 초기화시킨다.
CSipMessageCSipServerInfo::CreateRegister (CSipStack *pclsSipStack, CSipMessage *pclsResponse)
 SIP REGISTER 메시지를 생성한다.
bool CSipServerInfo::SetChallenge (CSipMessage *pclsResponse)
 SIP REGISTER 요청에 대한 응답 메시지에서 Chanllenge 를 저장한다.
bool CSipServerInfo::AddAuth (CSipMessage *pclsRequest, CSipMessage *pclsResponse)
 SIP 요청 메시지에 인증 정보를 추가한다.
bool CSipServerInfo::AddAuth (CSipMessage *pclsRequest, const CSipChallenge *pclsChallenge, int iStatusCode, int iNonceCount)
 SIP 요청 메시지에 인증 정보를 추가한다.
 CSipUserAgent::CSipUserAgent ()
 생성자
 CSipUserAgent::~CSipUserAgent ()
 소멸자
bool CSipUserAgent::Start (CSipStackSetup &clsSetup, ISipUserAgentCallBack *pclsCallBack, ISipStackSecurityCallBack *pclsSecurityCallBack=NULL)
 SIP stack 을 시작하고 SIP 로그인 쓰레드를 시작한다.
bool CSipUserAgent::Stop ()
 SIP stack 을 종료하고 SIP 로그인 쓰레드를 종료한다.
bool CSipUserAgent::Delete (const char *pszCallId)
 SIP Dialog 를 삭제한다.
void CSipUserAgent::Final ()
 프로세스가 종료될 때에 최종적으로 실행하여서 openssl 메모리 누수를 출력하지 않는다.
bool CSipUserAgent::StartCall (const char *pszFrom, const char *pszTo, CSipCallRtp *pclsRtp, CSipCallRoute *pclsRoute, std::string &strCallId)
 SIP 통화 요청 메시지를 전송한다.
bool CSipUserAgent::StopCall (const char *pszCallId, int iSipCode=0)
 통화를 종료한다.
bool CSipUserAgent::StopCall (const char *pszCallId, const char *pszForward)
 착신 전환한다.
bool CSipUserAgent::RingCall (const char *pszCallId, CSipCallRtp *pclsRtp)
 183 응답 메시지를 전송한다.
bool CSipUserAgent::RingCall (const char *pszCallId, int iSipStatus, CSipCallRtp *pclsRtp)
 SIP 통화 요청에 대한 Ring / Session Progress 응답 메시지를 전송한다.
bool CSipUserAgent::AcceptCall (const char *pszCallId, CSipCallRtp *pclsRtp)
 수신된 통화를 수락한다.
bool CSipUserAgent::HoldCall (const char *pszCallId, ERtpDirection eDirection=E_RTP_SEND)
 통화 hold 요청 메시지를 전송한다.
bool CSipUserAgent::ResumeCall (const char *pszCallId)
 통화 resume 요청 메시지를 전송한다.
int CSipUserAgent::GetCallCount ()
 통화 개수를 리턴한다.
void CSipUserAgent::GetCallIdList (SIP_CALL_ID_LIST &clsList)
 모든 통화의 SIP Call-ID 를 리스트에 저장한다.
void CSipUserAgent::StopCallAll ()
 모든 통화를 종료시킨다.
bool CSipUserAgent::CreateCall (const char *pszFrom, const char *pszTo, CSipCallRtp *pclsRtp, CSipCallRoute *pclsRoute, std::string &strCallId, CSipMessage **ppclsInvite)
 SIP INVITE 메시지를 생성하고 Dialog 에 저장한다.
bool CSipUserAgent::StartCall (const char *pszCallId, CSipMessage *pclsInvite)
 CreateCall 메소드로 생성된 INVITE 메시지를 전송한다.
bool CSipUserAgent::TransferCallBlind (const char *pszCallId, const char *pszTo)
 Blind transfer 를 실행한다.
bool CSipUserAgent::TransferCall (const char *pszCallId, const char *pszToCallId)
 Screened / Unscreened transfer 를 실행한다.
void CSipCallRtp::SetIpPort (const char *pszIp, int iPort, int iSocketCountPerMedia)
 RTP IP/Port 를 수정한다.
void CSipCallRtp::SetDirection (ERtpDirection eDirection)
 RTP 전송/수신 방향을 설정한다.
int CSipCallRtp::GetMediaCount ()
 미디어 개수를 리턴한다.
int CSipCallRtp::GetAudioPort ()
 미디어 리스트에서 audio media 를 검색한 후, audio media 에 대한 포트 번호를 리턴한다.
int CSipCallRtp::GetVideoPort ()
 미디어 리스트에서 video media 를 검색한 후, video media 에 대한 포트 번호를 리턴한다.
bool CSipUserAgent::InsertRegisterInfo (CSipServerInfo &clsInfo)
 SIP 로그인 정보를 추가한다.
bool CSipUserAgent::UpdateRegisterInfo (CSipServerInfo &clsInfo)
 SIP 로그인 정보를 수정한다.
bool CSipUserAgent::DeleteRegisterInfo (CSipServerInfo &clsInfo)
 SIP 로그인 정보를 삭제한다.
void CSipUserAgent::GetDialogString (CMonitorString &strBuf)
 Dialog 자료구조 모니터링을 위한 문자열을 저장한다.
void CSipUserAgent::GetServerString (CMonitorString &strBuf)
 IP-PBX 로그인 자료구조 모니터링을 위한 문자열을 저장한다.
bool CSipUserAgent::SendReInvite (const char *pszCallId, CSipCallRtp *pclsRtp)
 ReINVITE 메시지를 전송한다.
bool CSipUserAgent::SendNotify (const char *pszCallId, int iSipCode)
 Blind Transfer 에서 사용되는 NOTIFY 메시지를 전송한다.
bool CSipUserAgent::SendDtmf (const char *pszCallId, char cDtmf)
 INFO 메시지로 DTMF 를 전송한다.
bool CSipUserAgent::SendPrack (const char *pszCallId, CSipCallRtp *pclsRtp)
 SIP PRACK 메시지를 전송한다.
virtual bool CSipUserAgent::RecvRequest (int iThreadId, CSipMessage *pclsMessage)
 SIP 요청 메시지 수신 callback method.
virtual bool CSipUserAgent::RecvResponse (int iThreadId, CSipMessage *pclsMessage)
 SIP 응답 메시지 수신 callback method.
virtual bool CSipUserAgent::SendTimeout (int iThreadId, CSipMessage *pclsMessage)
 SIP 메시지 전송 timeout callback method.
virtual void CSipUserAgent::TcpSessionEnd (const char *pszIp, int iPort, ESipTransport eTransport)
 TCP/TLS 세션 종료 이벤트 핸들러
virtual void CSipUserAgent::ThreadEnd (int iThreadId)
 SIP 쓰레드 종료 이벤트 핸들러
bool CSipUserAgent::SendSms (const char *pszFrom, const char *pszTo, const char *pszText, CSipCallRoute *pclsRoute)
 text 기반 SMS 메시지를 전송한다.
bool CSipUserAgent::GetRemoteCallRtp (const char *pszCallId, CSipCallRtp *pclsRtp)
 SIP Call-ID 로 통화를 검색한 후, 검색된 결과로 peer RTP 정보를 저장한다.
bool CSipUserAgent::GetToId (const char *pszCallId, std::string &strToId)
 SIP Call-ID 로 통화를 검색한 후, 검색된 결과로 peer 아이디를 저장한다.
bool CSipUserAgent::GetFromId (const char *pszCallId, std::string &strFromId)
 SIP Call-ID 로 통화를 검색한 후, 검색된 결과로 my 아이디를 저장한다.
bool CSipUserAgent::GetContact (const char *pszCallId, CSipCallRoute *pclsRoute)
 SIP Call-ID 로 통화를 검색한 후, 검색된 결과로 전화 상대방의 Contact 정보를 CSipCallRoute 객체에 저장한다.
bool CSipUserAgent::GetCdr (const char *pszCallId, CSipCdr *pclsCdr)
 SIP Call-ID 로 통화를 검색한 후, 검색된 결과의 CDR 정보를 저장한다.
bool CSipUserAgent::GetInviteHeaderValue (const char *pszCallId, const char *pszHeaderName, std::string &strValue)
 SIP INVITE 메시지를 수신한 경우, 해당 SIP INVITE 메시지에서 헤더 이름을 검색하여서 이에 대한 값을 리턴한다.
int CSipUserAgent::GetRSeq (const char *pszCallId)
 Dialog 의 RSeq 값을 리턴한다.
void CSipUserAgent::SetRSeq (const char *pszCallId, int iRSeq)
 Dialog 의 RSeq 값을 설정한다.
bool CSipUserAgent::Is100rel (const char *pszCallId)
 100rel 기능이 활성화 유무를 검색한다.
bool CSipUserAgent::IsHold (const char *pszCallId)
 hold 인지 검사한다.
bool CSipUserAgent::IsConnected (const char *pszCallId)
 통화 연결되었는지 검사한다.
CSipMessageCSipUserAgent::DeleteIncomingCall (const char *pszCallId)
 SIP 통화 요청 INVITE 메시지를 검색한다.

상세한 설명

SIP User Agent 라이브러리 SIP 로그인/통화 관리 라이브러리

열거형 타입 문서화

RTP 전송/수신

열거형 멤버:
E_RTP_SEND_RECV 
E_RTP_SEND 
E_RTP_RECV 
E_RTP_INACTIVE 
E_RTP_NULL 

함수 문서화

bool CSipUserAgent::AcceptCall ( const char *  pszCallId,
CSipCallRtp pclsRtp 
)

수신된 통화를 수락한다.

매개변수
pszCallIdSIP Call-ID
pclsRtplocal RTP 정보 저장 객체
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CSipServerInfo::AddAuth ( CSipMessage pclsRequest,
CSipMessage pclsResponse 
)

SIP 요청 메시지에 인증 정보를 추가한다.

매개변수
pclsRequestSIP 요청 메시지
pclsResponseSIP 응답 메시지
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CSipServerInfo::AddAuth ( CSipMessage pclsRequest,
const CSipChallenge pclsChallenge,
int  iStatusCode,
int  iNonceCount 
)

SIP 요청 메시지에 인증 정보를 추가한다.

매개변수
pclsRequestSIP 요청 메시지
pclsChallengeSIP 응답 메시지에 저장된 Challenge 정보 저장 객체
iStatusCodeSIP 응답 메시지의 Status Code
iNonceCountnonce count
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CSipDialog::AddSdp ( CSipMessage pclsMessage)

SIP 메시지에 SDP 메시지를 추가한다.

매개변수
pclsMessageSDP 메시지를 추가할 SIP 메시지 객체
반환값
true 를 리턴한다.
void CSipServerInfo::ClearLogin ( )

로그인된 정보를 초기화시킨다.

CSipMessage * CSipDialog::CreateAck ( int  iStatusCode)

ACK 메시지를 생성한다.

매개변수
iStatusCodeSIP INVITE 응답 코드
반환값
성공하면 ACK 메시지를 리턴하고 그렇지 않으면 NULL 을 리턴한다.
CSipMessage * CSipDialog::CreateBye ( )

BYE 메시지를 생성한다.

반환값
성공하면 BYE 메시지를 리턴하고 그렇지 않으면 NULL 을 리턴한다.
bool CSipUserAgent::CreateCall ( const char *  pszFrom,
const char *  pszTo,
CSipCallRtp pclsRtp,
CSipCallRoute pclsRoute,
std::string &  strCallId,
CSipMessage **  ppclsInvite 
)

SIP INVITE 메시지를 생성하고 Dialog 에 저장한다.

본 메소드는 SIP INVITE 메시지를 전송하지는 않는다. 본 메소드로 생성된 SIP INVITE 메시지를 전송하려면 StartCall( const char * pszCallId, CSipMessage * pclsInvite ) 메소드를 실행해야 한다. 본 메소드가 개발된 이유는 StartCall( const char * pszFrom, const char * pszTo, CSipCallRtp * pclsRtp, CSipCallRoute * pclsRoute, std::string & strCallId ) 을 호출한 후, 응용 프로그램에서 생성된 SIP Call-ID 를 자료구조에 저장하기 전에 SIP INVITE 응답 메시지를 수신하면 응용 프로그램에서 해당 통화 정보가 자료구조에 없어서 정상적으로 처리하지 못 하기 때문에 이를 방지하기 위해서 SIP INVITE 메시지와 SIP Dialog 를 생성하여서 SIP Call-ID 를 응용 프로그램에 전달하여 응용 프로그램 자료구조에 저장한 후, SIP INVITE 메시지를 전송하기 위함이다.

매개변수
pszFrom발신자 아이디
pszTo수신자 아이디
pclsRtplocal RTP 정보 저장 객체
pclsRouteSIP 메시지 목적지 주소 저장 객체
strCallId생성된 INVITE 메시지의 Call-ID 가 저장될 변수
ppclsInvite생성된 SIP INVITE 메시지가 저장될 변수
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
CSipMessage * CSipDialog::CreateCancel ( )

CANCEL 메시지를 생성한다.

반환값
성공하면 CANCEL 메시지를 리턴하고 그렇지 않으면 NULL 을 리턴한다.
CSipMessage * CSipDialog::CreateInfo ( )

INFO 메시지를 생성한다.

반환값
성공하면 PRACK 메시지를 리턴하고 그렇지 않으면 NULL 을 리턴한다.
CSipMessage * CSipDialog::CreateInvite ( )

INVITE 메시지를 생성한다.

반환값
성공하면 INVITE 메시지를 리턴하고 그렇지 않으면 NULL 을 리턴한다.
CSipMessage * CSipDialog::CreateNotify ( )

NOTIFY 메시지를 생성한다.

반환값
성공하면 NOTIFY 메시지를 리턴하고 그렇지 않으면 NULL 을 리턴한다.
CSipMessage * CSipDialog::CreatePrack ( )

PRACK 메시지를 생성한다.

반환값
성공하면 PRACK 메시지를 리턴하고 그렇지 않으면 NULL 을 리턴한다.
CSipMessage * CSipDialog::CreateRefer ( )

REFER 메시지를 생성한다.

반환값
성공하면 REFER 메시지를 리턴하고 그렇지 않으면 NULL 을 리턴한다.
CSipMessage * CSipServerInfo::CreateRegister ( CSipStack pclsSipStack,
CSipMessage pclsResponse 
)

SIP REGISTER 메시지를 생성한다.

매개변수
pclsSipStackSIP stack
pclsResponseSIP REGISTER 요청에 대한 응답 메시지
반환값
성공하면 REGISTER 메시지를 리턴하고 실패하면 NULL 을 리턴한다.
CSipDialog::CSipDialog ( CSipStack pclsSipStack)

생성자

CSipServerInfo::CSipServerInfo ( )

생성자

CSipUserAgent::CSipUserAgent ( )

생성자

bool CSipUserAgent::Delete ( const char *  pszCallId)

SIP Dialog 를 삭제한다.

매개변수
pszCallIdSIP Call-ID
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
CSipMessage * CSipUserAgent::DeleteIncomingCall ( const char *  pszCallId)

SIP 통화 요청 INVITE 메시지를 검색한다.

매개변수
pszCallIdSIP Call-ID
반환값
성공하면 SIP 통화 요청 INVITE 메시지를 리턴하고 실패하면 NULL 를 리턴한다.
bool CSipUserAgent::DeleteRegisterInfo ( CSipServerInfo clsInfo)

SIP 로그인 정보를 삭제한다.

매개변수
clsInfoclsInfo SIP 로그인 정보 저장 객체
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CSipServerInfo::Equal ( CSipServerInfo clsInfo)

동일한 IP-PBX 정보인지 검사한다.

매개변수
clsInfoIP-PBX 정보
반환값
동일한 IP-PBX 정보이면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
virtual bool ISipUserAgentCallBack::EventBlindTransfer ( const char *  pszCallId,
const char *  pszReferToId 
)
inlinevirtual

Blind Transfer 요청 수신 이벤트 핸들러

매개변수
pszCallIdSIP Call-ID
pszReferToId전화가 전달될 사용자 아이디
반환값
요청을 수락하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.

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

virtual void ISipUserAgentCallBack::EventCallEnd ( const char *  pszCallId,
int  iSipStatus 
)
pure virtual

SIP 통화 종료 이벤트 핸들러

매개변수
pszCallIdSIP Call-ID
iSipStatusSIP 응답 코드. INVITE 에 대한 오류 응답으로 전화가 종료된 경우, INVITE 의 응답 코드를 저장한다.

CSipUserAgentMFC에서 구현되었습니다.

virtual void ISipUserAgentCallBack::EventCallRing ( const char *  pszCallId,
int  iSipStatus,
CSipCallRtp pclsRtp 
)
pure virtual

SIP Ring / Session Progress 수신 이벤트 핸들러

매개변수
pszCallIdSIP Call-ID
iSipStatusSIP 응답 코드
pclsRtpRTP 정보 저장 객체

CSipUserAgentMFC에서 구현되었습니다.

virtual void ISipUserAgentCallBack::EventCallStart ( const char *  pszCallId,
CSipCallRtp pclsRtp 
)
pure virtual

SIP 통화 연결 이벤트 핸들러

매개변수
pszCallIdSIP Call-ID
pclsRtpRTP 정보 저장 객체

CSipUserAgentMFC에서 구현되었습니다.

virtual void ISipUserAgentCallBack::EventIncomingCall ( const char *  pszCallId,
const char *  pszFrom,
const char *  pszTo,
CSipCallRtp pclsRtp 
)
pure virtual

SIP 통화 요청 수신 이벤트 핸들러

매개변수
pszCallIdSIP Call-ID
pszFromSIP From 사용자 아이디
pszToSIP To 사용자 아이디
pclsRtpRTP 정보 저장 객체

CSipUserAgentMFC에서 구현되었습니다.

virtual bool ISipUserAgentCallBack::EventIncomingRequestAuth ( CSipMessage pclsMessage)
inlinevirtual

SIP 통화 요청 수신에 대한 인증 확인 이벤트 핸들러

매개변수
pclsMessageSIP INVITE 요청 메시지
반환값
인증에 성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
virtual bool ISipUserAgentCallBack::EventMessage ( const char *  pszFrom,
const char *  pszTo,
CSipMessage pclsMessage 
)
inlinevirtual

SIP MESSAGE 수신 이벤트 핸들러

매개변수
pszFromSIP From 사용자 아이디
pszToSIP To 사용자 아이디
pclsMessageSIP 메시지

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

virtual void ISipUserAgentCallBack::EventPrack ( const char *  pszCallId,
CSipCallRtp pclsRtp 
)
inlinevirtual

SIP PRACK 수신 이벤트 핸들러

매개변수
pszCallIdSIP Call-ID
pclsRtpRTP 정보 저장 객체

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

virtual void ISipUserAgentCallBack::EventRegister ( CSipServerInfo pclsInfo,
int  iStatus 
)
pure virtual

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

매개변수
pclsInfoSIP REGISTER 응답 메시지를 전송한 IP-PBX 정보 저장 객체
iStatusSIP REGISTER 응답 코드

CSipUserAgentMFC에서 구현되었습니다.

virtual void ISipUserAgentCallBack::EventReInvite ( const char *  pszCallId,
CSipCallRtp pclsRemoteRtp,
CSipCallRtp pclsLocalRtp 
)
inlinevirtual

SIP ReINVITE 수신 이벤트 핸들러

매개변수
pszCallIdSIP Call-ID
pclsRemoteRtp상대방 RTP 정보 저장 객체
pclsLocalRtp내 RTP 정보 저장 객체

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

virtual void ISipUserAgentCallBack::EventReInviteResponse ( const char *  pszCallId,
int  iSipStatus,
CSipCallRtp pclsRemoteRtp 
)
inlinevirtual

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

매개변수
pszCallIdSIP Call-ID
iSipStatusSIP 응답 코드
pclsRemoteRtp상대방 RTP 정보 저장 객체
virtual void ISipUserAgentCallBack::EventThreadEnd ( int  iThreadId)
inlinevirtual

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

매개변수
iThreadIdUDP 쓰레드 번호
virtual bool ISipUserAgentCallBack::EventTransfer ( const char *  pszCallId,
const char *  pszReferToCallId,
bool  bScreenedTransfer 
)
inlinevirtual

Screened / Unscreened Transfer 요청 수신 이벤트 핸들러

매개변수
pszCallIdSIP Call-ID
pszReferToCallId전화가 전달될 SIP Call-ID
bScreenedTransferScreened Transfer 이면 true 가 입력되고 Unscreened Transfer 이면 false 가 입력된다.
반환값
요청을 수락하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.

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

virtual void ISipUserAgentCallBack::EventTransferResponse ( const char *  pszCallId,
int  iSipStatus 
)
inlinevirtual

SIP 통화 전달 응답 수신 이벤트 핸들러

매개변수
pszCallIdSIP Call-ID
iSipStatusSIP 응답 코드.

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

void CSipUserAgent::Final ( )

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

int CSipCallRtp::GetAudioPort ( )

미디어 리스트에서 audio media 를 검색한 후, audio media 에 대한 포트 번호를 리턴한다.

반환값
성공하면 audio media 에 대한 포트 번호를 리턴하고 실패하면 -1 를 리턴한다.
int CSipUserAgent::GetCallCount ( )

통화 개수를 리턴한다.

반환값
통화 개수를 리턴한다.
bool GetCallIdFromReferTo ( const char *  pszValue,
std::string &  strReferToCallId 
)

Replaces 를 포함한 문자열에서 SIP Call-ID 를 가져온다.

매개변수
pszValueReplaces 를 포함한 문자열
strReferToCallIdSIP Call-ID 를 저장할 변수
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
void CSipUserAgent::GetCallIdList ( SIP_CALL_ID_LIST &  clsList)

모든 통화의 SIP Call-ID 를 리스트에 저장한다.

매개변수
clsListSIP Call-ID 를 저장할 변수
bool CSipUserAgent::GetCdr ( const char *  pszCallId,
CSipCdr pclsCdr 
)

SIP Call-ID 로 통화를 검색한 후, 검색된 결과의 CDR 정보를 저장한다.

매개변수
pszCallIdSIP Call-ID
pclsCdrCDR 정보 저장 객체
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
void CSipDialog::GetCdr ( CSipCdr pclsCdr)

CDR 정보 객체에 데이터를 저장한다.

매개변수
pclsCdrCDR 정보 객체
bool CSipUserAgent::GetContact ( const char *  pszCallId,
CSipCallRoute pclsRoute 
)

SIP Call-ID 로 통화를 검색한 후, 검색된 결과로 전화 상대방의 Contact 정보를 CSipCallRoute 객체에 저장한다.

매개변수
pszCallIdSIP Call-ID
pclsRoute전화 상대방의 Contact 정보를 저장할 객체
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
void CSipUserAgent::GetDialogString ( CMonitorString strBuf)

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

매개변수
strBuf자료구조 모니터링을 위한 문자열 변수
bool CSipUserAgent::GetFromId ( const char *  pszCallId,
std::string &  strFromId 
)

SIP Call-ID 로 통화를 검색한 후, 검색된 결과로 my 아이디를 저장한다.

매개변수
pszCallIdSIP Call-ID
strFromIdmy 아이디를 저장할 객체
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CSipUserAgent::GetInviteHeaderValue ( const char *  pszCallId,
const char *  pszHeaderName,
std::string &  strValue 
)

SIP INVITE 메시지를 수신한 경우, 해당 SIP INVITE 메시지에서 헤더 이름을 검색하여서 이에 대한 값을 리턴한다.

                    모든 헤더를 검색하는 것은 아니고 CSipMessage 의 m_clsHeaderList 에 저장된 헤더만 검색한다.
매개변수
pszCallIdSIP Call-ID
pszHeaderName헤더 이름
strValue헤더의 값을 저장할 변수
반환값
검색에 성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
int CSipCallRtp::GetMediaCount ( )

미디어 개수를 리턴한다.

반환값
미디어 개수를 리턴한다.
bool CSipUserAgent::GetRemoteCallRtp ( const char *  pszCallId,
CSipCallRtp pclsRtp 
)

SIP Call-ID 로 통화를 검색한 후, 검색된 결과로 peer RTP 정보를 저장한다.

매개변수
pszCallIdSIP Call-ID
pclsRtppeer RTP 정보를 저장할 객체
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
int CSipUserAgent::GetRSeq ( const char *  pszCallId)

Dialog 의 RSeq 값을 리턴한다.

매개변수
pszCallIdSIP Call-ID
반환값
Dialog 에 RSeq 가 존재하면 RSeq 값을 리턴하고 그렇지 않으면 -1 을 리턴한다.
ERtpDirection GetRtpDirectionEnum ( const char *  pszDirection)

문자열 direction 을 enum direction 으로 리턴한다.

매개변수
pszDirection문자열 direction
반환값
문자열 direction 을 enum direction 으로 리턴한다.
const char* GetRtpDirectionString ( ERtpDirection  eDirection)

enum direction 을 문자열로 리턴한다.

매개변수
eDirectionenum direction
반환값
enum direction 을 문자열로 리턴한다.
void CSipUserAgent::GetServerString ( CMonitorString strBuf)

IP-PBX 로그인 자료구조 모니터링을 위한 문자열을 저장한다.

매개변수
strBuf자료구조 모니터링을 위한 문자열 변수
bool CSipUserAgent::GetToId ( const char *  pszCallId,
std::string &  strToId 
)

SIP Call-ID 로 통화를 검색한 후, 검색된 결과로 peer 아이디를 저장한다.

매개변수
pszCallIdSIP Call-ID
strToIdpeer 아이디를 저장할 객체
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
int CSipCallRtp::GetVideoPort ( )

미디어 리스트에서 video media 를 검색한 후, video media 에 대한 포트 번호를 리턴한다.

반환값
성공하면 video media 에 대한 포트 번호를 리턴하고 실패하면 -1 를 리턴한다.
bool CSipUserAgent::HoldCall ( const char *  pszCallId,
ERtpDirection  eDirection = E_RTP_SEND 
)

통화 hold 요청 메시지를 전송한다.

매개변수
pszCallIdSIP Call-ID
eDirection미디어 direction
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CSipUserAgent::InsertRegisterInfo ( CSipServerInfo clsInfo)

SIP 로그인 정보를 추가한다.

매개변수
clsInfoSIP 로그인 정보 저장 객체
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CSipUserAgent::Is100rel ( const char *  pszCallId)

100rel 기능이 활성화 유무를 검색한다.

매개변수
pszCallIdSIP Call-ID
반환값
100rel 기능이 활성화되어 있으면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool CSipUserAgent::IsConnected ( const char *  pszCallId)

통화 연결되었는지 검사한다.

매개변수
pszCallIdSIP Call-ID
반환값
통화 연결되었으면 true 로 리턴하고 그렇지 않으면 false 를 리턴한다.
bool CSipDialog::IsConnected ( )

통화 연결된 Dialog 인가?

반환값
통화 연결된 Dialog 이면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool CSipUserAgent::IsHold ( const char *  pszCallId)

hold 인지 검사한다.

매개변수
pszCallIdSIP Call-ID
반환값
hold 이면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool CSipDialog::IsUseCodec ( int  iCodec)
static

Dialog 에서 사용하는 코덱인지 검사한다.

매개변수
iCodec코덱 payload type
반환값
Dialog 에서 사용하는 코덱이면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool CSipUserAgent::RecvRequest ( int  iThreadId,
CSipMessage pclsMessage 
)
virtual

SIP 요청 메시지 수신 callback method.

매개변수
iThreadIdSIP stack 의 UDP 쓰레드 아이디
pclsMessage수신된 SIP 요청 메시지
반환값
SIP 요청 메시지를 처리한 경우 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.

ISipStackCallBack를 구현.

bool CSipUserAgent::RecvResponse ( int  iThreadId,
CSipMessage pclsMessage 
)
virtual

SIP 응답 메시지 수신 callback method.

매개변수
iThreadIdSIP stack 의 UDP 쓰레드 아이디
pclsMessage수신된 SIP 응답 메시지
반환값
SIP 응답 메시지를 처리한 경우 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.

ISipStackCallBack를 구현.

bool CSipUserAgent::ResumeCall ( const char *  pszCallId)

통화 resume 요청 메시지를 전송한다.

매개변수
pszCallIdSIP Call-ID
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CSipUserAgent::RingCall ( const char *  pszCallId,
CSipCallRtp pclsRtp 
)

183 응답 메시지를 전송한다.

SIP 클라이언트에서 183 응답 메시지를 전송할 때에 사용된다.

매개변수
pszCallIdSIP Call-ID
pclsRtplocal RTP 정보 저장 객체
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CSipUserAgent::RingCall ( const char *  pszCallId,
int  iSipStatus,
CSipCallRtp pclsRtp 
)

SIP 통화 요청에 대한 Ring / Session Progress 응답 메시지를 전송한다.

IP-PBX 에서 Ring / Session Progress 메시지를 전달할 때에 사용된다.

매개변수
pszCallIdSIP Call-ID
iSipStatusSIP 응답 코드
pclsRtplocal RTP 정보 저장 객체
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CSipDialog::SelectLocalRtp ( CSipCallRtp pclsRtp)

my SIP 클라이언트의 RTP 정보를 가져온다.

매개변수
pclsRtpSIP 클라이언트의 RTP 정보를 저장할 변수
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CSipDialog::SelectRemoteRtp ( CSipCallRtp pclsRtp)

SIP 클라이언트의 RTP 정보를 가져온다.

매개변수
pclsRtpSIP 클라이언트의 RTP 정보를 저장할 변수
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CSipUserAgent::SendDtmf ( const char *  pszCallId,
char  cDtmf 
)

INFO 메시지로 DTMF 를 전송한다.

매개변수
pszCallIdSIP Call-ID
cDtmfDTMF 문자. '0' ~ '9' 및 '*', '#'
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CSipUserAgent::SendNotify ( const char *  pszCallId,
int  iSipCode 
)

Blind Transfer 에서 사용되는 NOTIFY 메시지를 전송한다.

매개변수
pszCallIdSIP Call-ID
iSipCodeINVITE 응답 메시지의 SIP status code
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CSipUserAgent::SendPrack ( const char *  pszCallId,
CSipCallRtp pclsRtp 
)

SIP PRACK 메시지를 전송한다.

매개변수
pszCallIdSIP Call-ID
pclsRtplocal RTP 정보 저장 객체
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CSipUserAgent::SendReInvite ( const char *  pszCallId,
CSipCallRtp pclsRtp 
)

ReINVITE 메시지를 전송한다.

매개변수
pszCallIdSIP Call-ID
pclsRtplocal RTP 정보 저장 객체
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CSipUserAgent::SendSms ( const char *  pszFrom,
const char *  pszTo,
const char *  pszText,
CSipCallRoute pclsRoute 
)

text 기반 SMS 메시지를 전송한다.

매개변수
pszFrom발신자 아이디
pszTo수신자 아이디
pszTextSMS 메시지
pclsRouteSIP 메시지 목적지 주소 저장 객체
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CSipUserAgent::SendTimeout ( int  iThreadId,
CSipMessage pclsMessage 
)
virtual

SIP 메시지 전송 timeout callback method.

매개변수
iThreadIdSIP stack 의 UDP 쓰레드 아이디
pclsMessage수신된 SIP 응답 메시지
반환값
SIP 응답 메시지를 처리한 경우 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.

ISipStackCallBack를 구현.

bool CSipServerInfo::SetChallenge ( CSipMessage pclsResponse)

SIP REGISTER 요청에 대한 응답 메시지에서 Chanllenge 를 저장한다.

매개변수
pclsResponseSIP REGISTER 요청에 대한 응답 메시지
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
void CSipCallRtp::SetDirection ( ERtpDirection  eDirection)

RTP 전송/수신 방향을 설정한다.

매개변수
eDirectionRTP 전송/수신 방향
void CSipCallRtp::SetIpPort ( const char *  pszIp,
int  iPort,
int  iSocketCountPerMedia 
)

RTP IP/Port 를 수정한다.

매개변수
pszIpIP 주소
iPortPort 번호
iSocketCountPerMedia미디어마다 생성하는 소켓 개수
bool CSipDialog::SetLocalRtp ( CSipCallRtp pclsRtp)

local RTP 정보를 저장한다.

매개변수
pclsRtpRTP 정보를 저장한 객체
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CSipDialog::SetRemoteRtp ( CSipCallRtp pclsRtp)

remote RTP 정보를 저장한다.

매개변수
pclsRtpRTP 정보를 저장한 객체
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
void CSipUserAgent::SetRSeq ( const char *  pszCallId,
int  iRSeq 
)

Dialog 의 RSeq 값을 설정한다.

매개변수
pszCallIdSIP Call-ID
iRSeqRSeq 값
THREAD_API SipRegisterThread ( LPVOID  lpParameter)

SIP 서버에 주기적으로 REGISTER 메시지를 전송하는 쓰레드

매개변수
lpParameterCSipUserAgent 객체의 포인터
반환값
0 을 리턴한다.
bool CSipUserAgent::Start ( CSipStackSetup clsSetup,
ISipUserAgentCallBack pclsCallBack,
ISipStackSecurityCallBack pclsSecurityCallBack = NULL 
)

SIP stack 을 시작하고 SIP 로그인 쓰레드를 시작한다.

매개변수
clsSetupSIP stack 설정 객체
pclsCallBackSIP UserAgent callback 객체
pclsSecurityCallBackSIP stack 보안 callback 객체
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CSipUserAgent::StartCall ( const char *  pszFrom,
const char *  pszTo,
CSipCallRtp pclsRtp,
CSipCallRoute pclsRoute,
std::string &  strCallId 
)

SIP 통화 요청 메시지를 전송한다.

매개변수
pszFrom발신자 아이디
pszTo수신자 아이디
pclsRtplocal RTP 정보 저장 객체
pclsRouteSIP 메시지 목적지 주소 저장 객체
strCallId생성된 INVITE 메시지의 Call-ID 가 저장될 변수
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CSipUserAgent::StartCall ( const char *  pszCallId,
CSipMessage pclsInvite 
)

CreateCall 메소드로 생성된 INVITE 메시지를 전송한다.

매개변수
pszCallIdSIP Call-ID
pclsInviteSIP INVITE 메시지
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool StartSipRegisterThread ( CSipUserAgent pclsSipUserAgent)

SIP 서버에 주기적으로 REGISTER 메시지를 전송하는 쓰레드를 시작한다.

매개변수
pclsSipUserAgentCSipUserAgent 객체의 포인터
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CSipUserAgent::Stop ( )

SIP stack 을 종료하고 SIP 로그인 쓰레드를 종료한다.

반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CSipUserAgent::StopCall ( const char *  pszCallId,
int  iSipCode = 0 
)

통화를 종료한다.

                    통화 요청을 보내고 연결되지 않으면 통화 취소 메시지를 전송한다.
                    통화 연결되었으면 통화 종료 메시지를 전송한다.
                    통화 수락인 경우 통화 거절 응답 메시지를 전송한다.
매개변수
pszCallIdSIP Call-ID
iSipCode통화 요청을 거절할 때에 전송할 SIP status code
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CSipUserAgent::StopCall ( const char *  pszCallId,
const char *  pszForward 
)

착신 전환한다.

매개변수
pszCallIdSIP Call-ID
pszForward착신 전환 전화번호
반환값
착신 전환에 성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
void CSipUserAgent::StopCallAll ( )

모든 통화를 종료시킨다.

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

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

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

ISipStackCallBack(으)로부터 재구현되었습니다.

void CSipUserAgent::ThreadEnd ( int  iThreadId)
virtual

SIP 쓰레드 종료 이벤트 핸들러

매개변수
iThreadId쓰레드 번호

ISipStackCallBack(으)로부터 재구현되었습니다.

bool CSipUserAgent::TransferCall ( const char *  pszCallId,
const char *  pszToCallId 
)

Screened / Unscreened transfer 를 실행한다.

매개변수
pszCallIdSIP Call-ID
pszToCallId통화 전달을 받을 SIP Call-ID
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CSipUserAgent::TransferCallBlind ( const char *  pszCallId,
const char *  pszTo 
)

Blind transfer 를 실행한다.

매개변수
pszCallIdSIP Call-ID
pszTo통화 전달을 받을 아이디
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
void CSipServerInfo::Update ( CSipServerInfo clsInfo)

IP-PBX 정보를 수정한다.

매개변수
clsInfoIP-PBX 정보
bool CSipUserAgent::UpdateRegisterInfo ( CSipServerInfo clsInfo)

SIP 로그인 정보를 수정한다.

매개변수
clsInfoSIP 로그인 정보 저장 객체
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
CSipDialog::~CSipDialog ( )

소멸자.

CSipServerInfo::~CSipServerInfo ( )

소멸자

CSipUserAgent::~CSipUserAgent ( )

소멸자