繁体   English   中英

从JUnit测试SIP软电话是否正在响铃,接听电话,已断开连接

[英]Testing from JUnit if a SIP Soft Phone is ringing, answered a call, disconnected

我想使用第三方API发起对两个号码的调用。 我需要确保设备在接到电话时响起,在接听电话时媒体开始传输,在挂断电话时终止通话。

理想情况下,我想从JUnit测试中执行此操作,以便可以使整个过程自动化。 但是任何其他工具也可以。

所以这就是我要编程的方式

1)配置两个SIP软电话,以使用测试提供的某些凭据应答2个不同的号码。

2)使用API​​拨打电话

3)断言两个电话处于振铃状态

4)接听电话

5)确认正在其中传输RTP媒体

6)挂断

7)断言该呼叫现在已成功断开

我对电话技术还很陌生,因此,不胜感激任何工具或SDK可以帮助我完成此任务的任何指针。

请检出SipUnit https://code.google.com/p/commtesting/wiki/SipUnit 除了检查媒体是否还在流动之外,它可以执行以上所有操作。

查看KitCAT框架 它基于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()));

在此处查看完整的API

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM