我想使用第三方API启动对两个号码的调用。我需要确保设备在接到电话时响铃,媒体在接听电话时开始发送,并在挂断电话时终止呼叫。
理想情况下,我想从JUnit测试中执行此操作,以便我可以自动完成整个过程。但是任何其他工具也都可以。
所以这就是我想以编程方式做的事情,
1)配置两个SIP软电话,使用测试提供的一些凭据来回答2个不同的号码。
2)使用API
拨打电话3)断言两部手机处于振铃状态
4)接听电话
5)断言RTP媒体正在它们之间传输
6)挂断
7)断言呼叫现已成功断开
我是电话新手,所以我会很感激任何有助于我实现这一目标的工具或SDK的指针。
答案 0 :(得分:1)
请查看SipUnit https://code.google.com/p/commtesting/wiki/SipUnit。 它可以做到以上所有,除了检查媒体正在流动。
答案 1 :(得分:0)
查看KitCAT framework。它基于JUnit,可以满足您的所有要求。它支持多个用户代理,这些代理都可以在测试用例中进行协调。它还提供与其他协议(例如,RTP,HTTP)的协调。
示例代码:
SIPAgent callee1 = createAgent("callee1"); // sip:callee1@host
SIPAgent callee2 = createAgent("callee2"); // sip:callee2@host
// invoke your API here
invoke3rdPartyAPI(callee1.getSipURI(), callee2.getSipURI());
pause(2000);
assertThat(callee1, is(invited()));
assertThat(callee2, is(invited()));
callee1.answer();
callee2.answer();
pause(500);
assertThat(callee1, is(connectedTo(callee2))); // check for SDP match
callee1.playAudio(audioFileName);
pause(500);
assertThat(callee2, has(incomingMedia());
callee1.disconnect();
pause(500);
assertThat(callee2, is(disconnected()));