我在使用pjsua2接口进行呼叫转移时遇到问题。实际上,我不明白如何为呼叫转移实现这一点(参考方法)。
我的问题出在受让方:当受让方接收到REFER消息时,在向转让方发送通知之后,它会创建到转接目标的呼叫:但两个呼叫使用相同的call类实例( lookup方法更改id以匹配搜索到的id),而pjsua对新旧呼叫有两个不同的呼叫id。因此,当受让方从转让方接收到BYE时,它删除用于两个呼叫的Call实例,而pjsua仍然保留对具有目标转接的新呼叫的引用,其以程序异常结束。
我在受让方中实现了onCallTransferRequest()回调,但我不知道在这里要做什么(pjsua在类似的回调中没有做任何事情……)我的问题是:我应该如何使用pjsua2处理这种传输?
谢谢你的帮助,祝你圣诞快乐。蒂博特
发布于 2017-07-25 19:51:23
不幸的是,我不是C++方面的专家。如果可以,我可以在PJSUA2中向您解释如何盲转接活动的SIP呼叫。
首先,您必须创建具有默认呼叫设置的CallOpParam-object。然后,您必须调用当前的Call-object并在其上传输方法。据我所知,盲传输方法需要两(2)个参数,destination As a String和CallOpParam。您应该将目标指定为:sip:username@domain。你要做的最后一件事就是给你的CallOpParam设置一个状态码,它应该是PJSIP_SC_DECLINE,然后挂起你的active Call。
毕竟,B和C合作伙伴应该能够交谈了。
https://stackoverflow.com/questions/41314246
复制相似问题