在asp.net mvc

时间:2018-08-29 07:16:59

标签: asp.net-mvc nexmo

    [HttpPost]
    public ActionResult MakeCall(string ToNumber)
    {
        string TO_NUMBER = ToNumber;  
        string NEXMO_NUMBER = "************"; 
        var results = Client.Call.Do(new Call.CallCommand
        {
            to = new[]
            {
                new Call.Endpoint {
                    type = "phone",
                    number = TO_NUMBER
                }
            },
            from = new Call.Endpoint
            {
                type = "phone",
                number = NEXMO_NUMBER
            },
            answer_url = new[]
            {
                "https://developer.nexmo.com/ncco/tts.json"
            },
            machine_detection = "hangup"
        });

        Session["UUID"] = results.uuid;
        return PlayAudioStreamToCall();
    }


    [HttpPut]
    public ActionResult PlayAudioStreamToCall()
    {
        string NEXMO_CALL_UUID = Session["UUID"].ToString();
        var result = Client.Call.BeginStream(NEXMO_CALL_UUID, new Call.StreamCommand
        {
            stream_url = new[]
            {
                "https://nexmo-community.github.io/ncco-examples/assets/voice_api_audio_streaming.mp3"
            }
        });

        return RedirectToAction("MakeCall");
    }

上下文: 我已经成功进行了出站呼叫,但是每当我尝试向现有呼叫中添加“播放音频文件”时,都会给我一个例外:“值不能为null。参数名称为value”。有人可以给我一些建议吗?

错误说明: [ArgumentNullException:值不能为null。 参数名称:值]    Newtonsoft.Json.JsonConvert.DeserializeObject(字符串值,类型,JsonSerializerSettings设置)+242    Newtonsoft.Json.JsonConvert.DeserializeObject(字符串值,JsonSerializerSettings设置)+66    Nexmo.Api.Voice.Call.BeginStream(String id,StreamCommand cmd,Credentials creds)+103

[图像描述:尝试添加“将音频文件播放到呼出电话”时出现错误 http://i66.tinypic.com/2wfoi0l.jpg]。

[图片描述:我打出站电话时收到的UUID http://i68.tinypic.com/mtqv7m.jpg]

4 个答案:

答案 0 :(得分:0)

您需要购买Nexmo虚拟号码才能拨打电话。 注册Nexmo帐户后,您会获得一些免费积分,因此您可以使用该积分获得一个号码。

答案 1 :(得分:0)

要使用TTS,您无需使用BeginTalk,只需将TTS放入NCCO中并将其用作呼叫的answer_url。

答案 2 :(得分:0)

尝试发送语音呼叫时出现相同的错误。最后,在Nexmo仪表板中创建一个新应用程序,并向该应用程序添加语音功能似乎可以解决该问题。我通过从应用程序中删除语音功能进行了重新检查,它给了我Value不能为null的错误。希望这会帮助某人

答案 3 :(得分:0)

错误处理能力差是SDK中的当前问题。

发生了什么事,SDK从服务器返回的响应不成功,因此SDK从未提取JSON-因此,当它尝试解析JSON时会引发此错误。

如果没有错误代码,就不可能确切地说出问题所在。我猜这可能是401(错误的身份验证凭据)或400(格式错误的请求)。

最好的选择是启用日志记录,请参阅README的日志记录部分,并查看返回的错误代码。