我使用pjsua2 api进行呼叫转移时遇到问题。实际上我不明白这应该如何实现呼叫转移(REFER方法)。
我的问题在于受让人:当受让人收到REFER消息时,在向转让人发送NOTIFY后,它会创建对转移目标的调用:但同一个Call类实例用于两个调用(查找方法更改了id匹配搜索到的id),而pjsua有2个不同的呼叫ID用于旧呼叫和新呼叫。 因此,当受让方从转让方接收到BYE时,它会删除用于两个呼叫的Call实例,而pjsua仍然保留对目标转移的新呼叫的引用,该目标转移以程序异常结束。
我在受让方中实现了onCallTransferRequest()回调,但我不知道该怎么做(pjsua在其类似的回调中没有做任何事情......) 我的问题是:我应该如何使用pjsua2处理这种转移?
感谢您的帮助和圣诞快乐。 巴尔
答案 0 :(得分:0)
不幸的是,我不是C ++方面的专家。如果可以,我可以向您解释如何在PJSUA2
中盲目转移主动SIP呼叫。
首先,您必须使用默认呼叫设置创建CallOpParam
- 对象。然后,您必须在其上调用当前的Call
- 对象和传输方法。据我所知,盲转移方法应该采用两(2)个参数,目标为String
和CallOpParam
。您应将目的地指定为:sip:username@domain
。您要做的最后一件事是为CallOpParam
设置状态代码,它应为PJSIP_SC_DECLINE
,并挂断您的有效Call
。
毕竟,B
和C
合作伙伴应该能够交谈。