summaryrefslogtreecommitdiff
path: root/pjsip
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2008-09-02 11:25:07 +0000
committerBenny Prijono <bennylp@teluu.com>2008-09-02 11:25:07 +0000
commitfd06ab7299278576be5ee742b8fb8884054cbb0f (patch)
treef7e96864409ab03b8d87e58eef357722326dd36c /pjsip
parent9f6611d9776676a4e71836a8ef94645ce0007f77 (diff)
Ticket #608: Added API to retrieve media transport and session from pjsua call
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2259 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip')
-rw-r--r--pjsip/include/pjsua-lib/pjsua.h26
-rw-r--r--pjsip/src/pjsua-lib/pjsua_call.c22
2 files changed, 48 insertions, 0 deletions
diff --git a/pjsip/include/pjsua-lib/pjsua.h b/pjsip/include/pjsua-lib/pjsua.h
index 4989ef07..f8801776 100644
--- a/pjsip/include/pjsua-lib/pjsua.h
+++ b/pjsip/include/pjsua-lib/pjsua.h
@@ -2935,6 +2935,32 @@ PJ_DECL(pj_bool_t) pjsua_call_has_media(pjsua_call_id call_id);
/**
+ * Retrieve the media session associated with this call. Note that the media
+ * session may not be available depending on the current call's media status
+ * (the pjsua_call_media_status information in pjsua_call_info). Application
+ * may use the media session to retrieve more detailed information about the
+ * call's media.
+ *
+ * @param call_id Call identification.
+ *
+ * @return Call media session.
+ */
+PJ_DECL(pjmedia_session*) pjsua_call_get_media_session(pjsua_call_id call_id);
+
+
+/**
+ * Retrieve the media transport instance that is used for this call.
+ * Application may use the media transport to query more detailed information
+ * about the media transport.
+ *
+ * @param cid Call identification (the call_id).
+ *
+ * @return Call media transport.
+ */
+PJ_DECL(pjmedia_transport*) pjsua_call_get_media_transport(pjsua_call_id cid);
+
+
+/**
* Get the conference port identification associated with the call.
*
* @param call_id Call identification.
diff --git a/pjsip/src/pjsua-lib/pjsua_call.c b/pjsip/src/pjsua-lib/pjsua_call.c
index 737cc017..71fc8a24 100644
--- a/pjsip/src/pjsua-lib/pjsua_call.c
+++ b/pjsip/src/pjsua-lib/pjsua_call.c
@@ -1024,6 +1024,28 @@ PJ_DEF(pj_bool_t) pjsua_call_has_media(pjsua_call_id call_id)
}
+/*
+ * Retrieve the media session associated with this call.
+ */
+PJ_DEF(pjmedia_session*) pjsua_call_get_media_session(pjsua_call_id call_id)
+{
+ PJ_ASSERT_RETURN(call_id>=0 && call_id<(int)pjsua_var.ua_cfg.max_calls,
+ NULL);
+ return pjsua_var.calls[call_id].session;
+}
+
+
+/*
+ * Retrieve the media transport instance that is used for this call.
+ */
+PJ_DEF(pjmedia_transport*) pjsua_call_get_media_transport(pjsua_call_id cid)
+{
+ PJ_ASSERT_RETURN(cid>=0 && cid<(int)pjsua_var.ua_cfg.max_calls,
+ NULL);
+ return pjsua_var.calls[cid].med_tp;
+}
+
+
/* Acquire lock to the specified call_id */
pj_status_t acquire_call(const char *title,
pjsua_call_id call_id,