是否有任何方法可以通过回调函数或与PJSUA2-library类似的方法来获取SDP主体中的media属性?
我正在寻找一种方法来获取在SIP INVITE请求中发送的远程媒体端口和IP地址。
我知道如何为呼入呼叫注册回调,但是afaik,该回调不包含有关远程方的任何信息。
当然,有一种方法可以做到这一点。例如在on_call_media_state
回调中:
#include <pjsua-lib/pjsua_internal.h>
pjsua_call
结构指针:pjsua_call *call = &pjsua_var.calls[call_id];
现在您已经可以读取当前的本地和远程SDP:
const pjmedia_sdp_session *remote_sdp;
const pjmedia_sdp_session *local_sdp;
pj_status_t status = pjmedia_sdp_neg_get_active_remote(call->inv->neg, &remote_sdp);
pj_status_t status = pjmedia_sdp_neg_get_active_local(call->inv->neg, &local_sdp);
for (int i = 0; i < remote_sdp->media_count; i++) {
// structure with access to SDP m values
pjmedia_sdp_media *m = remote_sdp->media[i];
}
我没有运行此代码,但它应该可以工作。
希望对您有帮助!