我正在我的应用中实施 IVR通话。
我在公共服务器上托管的语音xml代码如下。
我已经按照Nexmo网站上的所有步骤进行操作,即使获得状态代码= 0 这意味着成功,但我没有接到任何电话。知道我错在哪里吗?
<?xml version="1.0" encoding="UTF-8"?>
<vxml version = "2.1" >
<menu dtmf="true">
<property name="inputmodes" value="dtmf"/>
<prompt>
For sales press 1, For support press 2.
</prompt>
<choice dtmf="1" next="#sales"/>
<choice dtmf="2" next="#support"/>
</menu>
<form id="sales">
<block>
<prompt>
Please wait while we transfer the call
</prompt>
</block>
<transfer name="MyCall" dest="tel:+4400000001" bridge="true" connecttimeout="20s"/>
</form>
<form id="support">
<block>
<prompt>
Please wait while we transfer the call
</prompt>
</block>
<transfer name="MyCall" dest="tel:+4400000002" bridge="true" connecttimeout="20s"/>
</form>
</vxml>
对于IVR呼叫我使用了以下代码片段
if(id == R.id.action_call){
CallRequest request=new CallRequest();
request.setApiKey(ApiConfig.NEXMO_KEY);
request.setApiSecret(ApiConfig.NEXMO_SECRET);
request.setTo("919582455283");
request.setAnswerUrl(ApiConfig.ANSWER_URL);
Toast.makeText(MainActivity.this,"Initiating call...",Toast.LENGTH_LONG).show();
App.getRestClient().doMakeCall(new RequestCallback<CallResponse>() {
@Override
public void onRestResponse(Exception e, CallResponse result) {
if (e==null){
Toast.makeText(MainActivity.this,result.toString(),Toast.LENGTH_LONG).show();
}else {
Toast.makeText(MainActivity.this,e.getMessage(),Toast.LENGTH_LONG);
}
}
}, Constants.CALL_BASE_URL,request);
return true;
}
我在SUCCESS
中收到CallResponse
但没有接到任何电话。
答案 0 :(得分:2)
披露:我为Nexmo工作。
语音呼叫上的status
属性仅表示请求已成功排队(所有参数均有效,身份验证正确等)。
如果您在初始请求中传递error_url
,则会获得有关您未接听电话的原因的信息。 docs on that are here。
您还可以向支持小组发送您在回复中获得的call-id
,并查看他们是否可以提供更多信息。