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