Cisco Sinch服务不支持CallId中的特殊字符

时间:2015-10-07 04:52:07

标签: android sinch

我正在使用sinch调用服务app应用程序调用它可以正常使用int和字符串作为onSinchServiceConnected()中的callId但是如果用户名有特殊字符,则不会调用。

<location path="images">    
         <system.web>
     <authorization>
        <allow users="?"/>
     </authorization>
  </system.web>

2 个答案:

答案 0 :(得分:0)

作为一般准则,在与Sinch通话时,应根据E.164号码格式([http://en.wikipedia.org/wiki/E.164][1])建议指定电话号码,并应以“+”为前缀。

参考:https://www.sinch.com/docs/voice/android/#calling

答案 1 :(得分:0)

我无法完美地回答您的问题,但我认为这样就解决了。 您可以通过使用mCallId的编码和解码来完成此操作。 放置调用编码callId

public String Encode(String str) {
    byte[] data = null;
    try {
        data = str.getBytes("UTF-8");
    } catch (UnsupportedEncodingException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    String base64 = Base64.encodeToString(data, Base64.DEFAULT);
    return base64;
}

并将呼叫ID用作

Call call = getSinchServiceInterface().callUser(Encode(name));

和接听电话

public String decode(String str) {
    byte[] data = Base64.decode(str, Base64.DEFAULT);
    String text = null;
    try {
        text = new String(data, "UTF-8");
    } catch (UnsupportedEncodingException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return text;
}

并使用它

String userEncoded = call.getRemoteUserId();
String decodedUserName = decode(userEncoded);