pjsua2

时间:2016-12-24 14:47:30

标签: c++11 voip pjsip

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

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

我在受让方中实现了onCallTransferRequest()回调,但我不知道该怎么做(pjsua在其类似的回调中没有做任何事情......) 我的问题是:我应该如何使用pjsua2处理这种转移?

感谢您的帮助和圣诞快乐。 巴尔

1 个答案:

答案 0 :(得分:0)

不幸的是,我不是C ++方面的专家。如果可以,我可以向您解释如何在PJSUA2中盲目转移主动SIP呼叫。

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

毕竟,BC合作伙伴应该能够交谈。