【问题标题】:Twilio - getting ERROR : Account SID cannot be null when making a callTwilio - 出现错误:拨打电话时帐户 SID 不能为空
【发布时间】:2016-01-09 07:09:59
【问题描述】:

当应用程序长时间保持活动状态时,我有时会收到此异常。 谁能告诉我,这是什么问题?

连接通话失败

java.lang.IllegalArgumentException: Account SID cannot be null when making a call
                                                          at com.twilio.client.impl.MakeCallCommand.<init>(MakeCallCommand.java:33)
                                                          at com.twilio.client.impl.CallControlManager.makeCall(CallControlManager.java:423)
                                                          at com.twilio.client.impl.InternalConnectionImpl.connect(InternalConnectionImpl.java:212)
                                                          at com.twilio.client.impl.DeviceImpl$2.onCompletion(DeviceImpl.java:339)
                                                          at com.twilio.client.impl.MediaManager.onPlayComplete(MediaManager.java:279)
                                                          at com.twilio.client.impl.MediaManager.queueSound(MediaManager.java:173)
                                                          at com.twilio.client.impl.DeviceImpl.connect(DeviceImpl.java:335)
                                                          at com.lola.activities.CallingActivity.connect(CallingActivity.java:199)
                                                          at com.lola.activities.CallingActivity.onCreate(CallingActivity.java:92)
                                                          at android.app.Activity.performCreate(Activity.java:5122)
                                                          at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1081)
                                                          at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2307)
                                                          at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2395)
                                                          at android.app.ActivityThread.access$600(ActivityThread.java:162)
                                                          at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364)
                                                          at android.os.Handler.dispatchMessage(Handler.java:107)
                                                          at android.os.Looper.loop(Looper.java:194)
                                                          at android.app.ActivityThread.main(ActivityThread.java:5371)
                                                          at java.lang.reflect.Method.invokeNative(Native Method)
                                                          at java.lang.reflect.Method.invoke(Method.java:525)
                                                          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
                                                          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
                                                          at dalvik.system.NativeStart.main(Native Method)

**编辑:**这里是单击呼叫按钮时调用的 connect() 方法:

public void connect(String fromMobileNo, String phoneNumber)
    {

        Map<String, String> parameters = new HashMap<String, String>();

        parameters.put("frommobileno", fromMobileNo);
        parameters.put("mobileno",  phoneNumber);

        Log.d("parameters", parameters + "");
        Log.d(TAG, "device :" + device);
        Log.d(TAG, "device :" + device);

        if(device == null)
        {
            Toast.makeText(getApplicationContext(),"Sorry from our side.Please try again.",Toast.LENGTH_LONG).show();
            finish();
        }
        else{
            connection = device.connect(parameters, (Controller)getApplication()/* ConnectionListener */);

            if (connection == null && ((Controller)getApplication()).basicConnectionListener != null)
                ((Controller)getApplication()).basicConnectionListener.onConnectionFailedConnecting(new Exception("Couldn't create new connection"));

        }

        if (connection != null){
            Controller.setConnection(connection);


        }else {
            Log.w(TAG, "Failed to create new connection");
        }

    }

【问题讨论】:

  • 你能粘贴你的代码让我们解决这个问题
  • @IjasAhamed 看看连接方法
  • @IjasAhamed 我用 InitListener、DeivceListener 和 ConnectionListener 实现了一个应用程序类。
  • com.lola.activities.CallingActivity.connect.java 第 199 行中的内容
  • connection = device.connect(parameters, (Controller)getApplication()/* ConnectionListener */);

标签: android twilio


【解决方案1】:

能力令牌有生命周期。它在它之后过期。我认为,这个问题与您的能力令牌到期有关。

所以更新你的能力令牌来解决这个问题。

Check out this

按照以下步骤解决此问题

第 1 步:在拨打电话前先尝试检查设备的状态。

Check device state

第 2 步:如果您的设备离线,请尝试更新令牌。如果READY,请致电。如果BUSY,不要打电话。

Device State Values

【讨论】:

    【解决方案2】:

    C# 用户

    将您的 TWILIO 凭据设置为环境变量。

    在这里查看:Add environment variables Windows

    如下称呼他们:

        string accountSid = Environment.GetEnvironmentVariable("TWILIO_ACCOUNT_SID");
        string authToken = Environment.GetEnvironmentVariable("TWILIO_AUTH_TOKEN");
    

    然后执行程序。

    【讨论】:

      【解决方案3】:

      您必须使用 this twilio 控制台作为您的帐户 sid 和身份验证令牌,而不是 this

      [编辑]: 第二个链接是旧的 twilio 用户面板,我认为它从我编辑这个答案的日期开始被重定向到新的用户面板(!),这是上面的第一个链接。 使用新的用户面板控件 (www.twilio.com/console) 再次尝试获取新帐户 sid 和身份验证令牌解决了我的问题。

      【讨论】:

        猜你喜欢
        • 2019-05-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多