|
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 | ( | ) |
소멸자
1.8.1.2