Misc fix (#1026): incoming call event is not detected by PocketPJ sample application
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@3073 74dad513-b988-da41-8d7b-12977e46ad98
diff --git a/pjsip-apps/src/pocketpj/PocketPJDlg.cpp b/pjsip-apps/src/pocketpj/PocketPJDlg.cpp
index b8a6bf2..87caf19 100644
--- a/pjsip-apps/src/pocketpj/PocketPJDlg.cpp
+++ b/pjsip-apps/src/pocketpj/PocketPJDlg.cpp
@@ -394,6 +394,19 @@
}
}
+void CPocketPJDlg::OnIncomingCall()
+{
+ pjsua_call_info ci;
+
+ pjsua_call_get_info(0, &ci);
+
+ PopUp_Show(POPUP_CALL, "Incoming call..", ci.remote_info.ptr, "",
+ "Answer", "Hangup", 0);
+ pjsua_call_answer(0, 180, NULL, NULL);
+ if (m_Cfg.m_AutoAnswer)
+ OnPopUpButton(1);
+}
+
void CPocketPJDlg::OnCallState()
{
pjsua_call_info ci;
@@ -408,11 +421,7 @@
"", "Hangup", 0);
break;
case PJSIP_INV_STATE_INCOMING: /**< After INVITE is received. */
- PopUp_Show(POPUP_CALL, "Incoming call..", ci.remote_info.ptr, "",
- "Answer", "Hangup", 0);
- pjsua_call_answer(0, 180, NULL, NULL);
- if (m_Cfg.m_AutoAnswer)
- OnPopUpButton(1);
+ OnIncomingCall();
break;
case PJSIP_INV_STATE_EARLY: /**< After response with To tag. */
case PJSIP_INV_STATE_CONNECTING:/**< After 2xx is sent/received. */
@@ -454,6 +463,8 @@
PJ_UNUSED_ARG(acc_id);
PJ_UNUSED_ARG(call_id);
PJ_UNUSED_ARG(rdata);
+
+ theDlg->OnIncomingCall();
}
void CPocketPJDlg::OnRegState()
diff --git a/pjsip-apps/src/pocketpj/PocketPJDlg.h b/pjsip-apps/src/pocketpj/PocketPJDlg.h
index 98bed57..2b3eb97 100644
--- a/pjsip-apps/src/pocketpj/PocketPJDlg.h
+++ b/pjsip-apps/src/pocketpj/PocketPJDlg.h
@@ -23,6 +23,7 @@
CPocketPJDlg(CWnd* pParent = NULL); // standard constructor
void OnPopUpButton(int btnNo);
+ void OnIncomingCall();
// Dialog Data
//{{AFX_DATA(CPocketPJDlg)
@@ -40,6 +41,7 @@
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
+
// Implementation
protected:
HICON m_hIcon;