【问题标题】:call transfer in pjsua2pjsua2中的呼叫转移
【发布时间】:2017-07-26 22:09:07
【问题描述】:

我在使用 pjsua2 api 进行呼叫转移时遇到问题。其实我不明白这应该如何实现呼叫转移(REFER方法)。

我的问题在于受让人:当受让人收到 REFER 消息时,在向转让人发送 NOTIFY 后,它会创建对转移目标的调用:但是两个调用使用相同的 Call 类实例(查找方法会更改id 以匹配搜索到的 id),而 pjsua 有 2 个不同的呼叫 ID 用于旧呼叫和新呼叫。 因此,当被转移者收到转移者的 BYE 时,它会删除两个调用都使用的 Call 实例,而 pjsua 仍然保留对目标转移的新调用的引用,并以程序异常结束。

我在受让人中实现了 onCallTransferRequest() 回调,但我看不到这里要做什么(pjsua 在其类似的回调中没有做任何事情......) 我的问题是:我应该如何使用 pjsua2 处理这种传输?

感谢您的帮助,祝您圣诞快乐。 蒂博

【问题讨论】:

  • 您使用的是哪种编程语言?
  • 抱歉,我忘记了这个标签/信息。我使用 C++ 作为编程语言。

标签: c++11 voip pjsip


【解决方案1】:

不幸的是,我不是 C++ 专家。如果可以的话,我可以在PJSUA2 向您解释如何盲转活动的 SIP 呼叫。

首先,您必须使用默认调用设置创建CallOpParam-object。然后,您必须调用您当前的Call-object 并在其上传输方法。据我所知,盲传输方法应采用两 (2) 个参数,目的地为 StringCallOpParam。您应该将目的地指定为:sip:username@domain。你要做的最后一件事是给你的CallOpParam设置一个状态码,它应该是PJSIP_SC_DECLINE,然后挂断你的活动Call

毕竟BC 合作伙伴应该可以交谈。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-09
    • 1970-01-01
    • 1970-01-01
    • 2012-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多