设为首页收藏本站

AnyChat技术支持论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 13927|回复: 24
打印 上一主题 下一主题

坐席(客服)转接功能

[复制链接]

1

主题

13

帖子

49

积分

新手上路

Rank: 1

积分
49
跳转到指定楼层
楼主
发表于 2017-5-22 14:05:41 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
客户登录手机端anyChat Queue 智能排队系统,排队等待坐席人员服务,坐席人员A接入客户采用:
var errorcode = BRAC_ObjectControl(ANYCHAT_OBJECT_TYPE_AGENT, mSelfUserId, ANYCHAT_AGENT_CTRL_SERVICEREQUEST, 0, 0, 0, 0, "");建立视频连接。现在坐席人员A将当前客户转接给坐席人员B服务。按照AnyChatCallCenter这个demo上讲述的转接功能,需要传入sessionId的,demo上的sessionId是这样来的://呼叫用户双击
function VideoCallRequest(ID) {
    if (mSelfUserId == ID)
        ForSession("不能呼叫自己...");
    else {
        mTargetUserId = ID;
        var cmdMsg={};
        cmdMsg.cmdOption=CMD_SESSION_REQUEST;
        cmdMsg.srcUserId=mSelfUserId;
        cmdMsg.tarUserId=mTargetUserId;
        cmdMsg.sessionId=-1;
        cmdMsg.sessionType=SESSION_TYPE_CALL;
        BRAC_TransBuffer(0, JSON.stringify(cmdMsg));
        //BRAC_VideoCallControl(BRAC_VIDEOCALL_EVENT_REQUEST,mTargetUserId,0,0,0,"");  // 向指定的用户发送会话邀请
    }
}
但是我们坐席接入调用的不是这个方法,那我们该如何获取sessionId呢。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

1

主题

13

帖子

49

积分

新手上路

Rank: 1

积分
49
沙发
 楼主| 发表于 2017-5-22 17:16:56 | 显示全部楼层
排队系统在手机端,坐席服务在pc端 web网页: 坐席服务通过这个方法向手机端发送视频邀请。var errorcode = BRAC_VideoCallControl(BRAC_VIDEOCALL_EVENT_REQUEST, ID, 0, 0, 0, "");
回复 支持 反对

使用道具 举报

1

主题

13

帖子

49

积分

新手上路

Rank: 1

积分
49
板凳
 楼主| 发表于 2017-5-23 13:35:55 | 显示全部楼层
佰锐科技-梁国桦 发表于 2017-5-23 11:58
您好,由于接口特性,VideoCallControl只能支持一对一视频,如果是实现转接或三方,那就只能用透明通道来模 ...

pc端的网页能否通过透明通道向android手机上的anyChat Queue app中的客户发起视频邀请?
function VideoCallRequest(ID) {
  
        mTargetUserId = ID;
        var cmdMsg={};
        cmdMsg.cmdOption=CMD_SESSION_REQUEST;
        cmdMsg.srcUserId=mSelfUserId;
        cmdMsg.tarUserId=mTargetUserId;
        cmdMsg.sessionId=-1;
        cmdMsg.sessionType=SESSION_TYPE_CALL;
        BRAC_TransBuffer(0, JSON.stringify(cmdMsg));
        //BRAC_VideoCallControl(BRAC_VIDEOCALL_EVENT_REQUEST,mTargetUserId,0,0,0,"");  // 向指定的用户发送会话邀请
   
}
手机端无法接收到视频邀请,用BRAC_VideoCallControl(BRAC_VIDEOCALL_EVENT_REQUEST, ID, 0, 0, 0, "");则可以接收到邀请。
回复 支持 反对

使用道具 举报

1

主题

13

帖子

49

积分

新手上路

Rank: 1

积分
49
地板
 楼主| 发表于 2017-5-24 14:34:17 | 显示全部楼层
谢谢,那android端接收pc端web网页调用以下代码
    mTargetUserId = ID;
       var cmdMsg={};
      cmdMsg.cmdOption=CMD_SESSION_REQUEST;
    var curSessionUser={
    "srcUser":{"userId":mSelfUserId},
    "tarUser":{"userId":mTargetUserId}
};
    cmdMsg.curSessionUser=curSessionUser;
    cmdMsg.srcUserId= mSelfUserId;
    cmdMsg.tarUserId= mTargetUserId;
    cmdMsg.sessionId= -1;
    cmdMsg.sessionType=SESSION_TYPE_CALL;
    var errorCode=BRAC_TransBuffer(mTargetUserId , JSON.stringify(cmdMsg));
    AddLog("VideoCallRequest("  + "cellphone Clinet ID" + ID + ")=" + errorCode, LOG_TYPE_API);
后android应该怎么处理呢。以下代码是否可行
        public void OnAnyChatTransBuffer(int dwUserid, byte[] lpBuf, int dwLen) {
                 
            
                 String returnData = new String(lpBuf, "UTF-8");
                 JSONObject json = new JSONObject(returnData);
                 
                 JSONObject json1 = new JSONObject(json.optString("curSessionUser"));
                 
                 JSONObject json2 =new JSONObject(json1.optString("tarUser"));
                 
                 int mTargetUserId = json2.optInt("userId");   
                     anychat.VideoCallControl(AnyChatDefine.BRAC_VIDEOCALL_EVENT_REQUEST, mTargetUserId, 0, 0, 0, "");
        }
还是要调用anychat.TransBuffer(0, lpBuf, lpBuf.length);
回复 支持 反对

使用道具 举报

1

主题

13

帖子

49

积分

新手上路

Rank: 1

积分
49
5#
 楼主| 发表于 2017-5-24 15:07:26 | 显示全部楼层
佰锐科技-梁国桦 发表于 2017-5-24 15:03
Web端调TransBuffer来发送消息,Android自然也要用TransBuffer的回调来接收。。。Android端如何设置该回 ...

能否发给我一份AnyChatFeatures的demo呢2328787988@qq.com,非常感谢
回复 支持 反对

使用道具 举报

1

主题

13

帖子

49

积分

新手上路

Rank: 1

积分
49
6#
 楼主| 发表于 2017-5-26 14:37:08 | 显示全部楼层
//点对对通话开始
function onP2PSessionStart(dwSrcUserId,dwTarUserId,sessionId,param){
    sessionVideo={};
    sessionVideo.srcUser=dwSrcUserId;
    sessionVideo.tarUser=dwTarUserId;
    sessionVideo.sessionType=SESSION_TYPE_CALL;
    sessionVideo.sessionId=sessionId;
    BRAC_EnterRoom(sessionId, "", 0);
    //隐藏呼叫层
    Getdmo("Initiative_Call_Div").style.display = "none";
    //打开远程客户视频屏幕
    createRemoteScreenStartVideo(dwTarUserId);
}


//创建远程客户视频
function createRemoteScreenStartVideo(dwTarUserId){
    console.log("------------------dwTarUserId------------>"+dwTarUserId);
    var dwTarUserIdUserName = BRAC_GetUserInfo(dwTarUserId,USERINFO_NAME);
    // 打开目标用户视频
    var parentObj=document.getElementById("remoteVideoPos");
    BRAC_SetVideoPos(dwTarUserId, parentObj, "ANYCHAT_VIDEO_REMOTE");
}

但是网页上显示不出会话的手机端视频。
回复 支持 反对

使用道具 举报

1

主题

13

帖子

49

积分

新手上路

Rank: 1

积分
49
7#
 楼主| 发表于 2017-5-26 14:42:22 | 显示全部楼层
零度以下 发表于 2017-5-26 14:37
//点对对通话开始
function onP2PSessionStart(dwSrcUserId,dwTarUserId,sessionId,param){
    sessionV ...

就是如何获取手机端的视频呢
回复 支持 反对

使用道具 举报

1

主题

13

帖子

49

积分

新手上路

Rank: 1

积分
49
8#
 楼主| 发表于 2017-5-26 14:59:49 | 显示全部楼层
零度以下 发表于 2017-5-26 14:42
就是如何获取手机端的视频呢

加上这两句也不行啊
  BRAC_UserCameraControl(dwTarUserId, 1);//打开视频
    BRAC_UserSpeakControl(dwTarUserId, 1);//打开声音
回复 支持 反对

使用道具 举报

1

主题

13

帖子

49

积分

新手上路

Rank: 1

积分
49
9#
 楼主| 发表于 2017-5-26 16:26:42 | 显示全部楼层
后台打印日志,双方都进入了room。但是就是接不到手机上的视频
回复 支持 反对

使用道具 举报

1

主题

13

帖子

49

积分

新手上路

Rank: 1

积分
49
10#
 楼主| 发表于 2017-5-27 10:14:21 | 显示全部楼层
透明通道接通手机和网页端视频,网页上偶尔会显示手机端视屏,是否网络问题,感觉成功率不高。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|AnyChat ( 粤ICP备13022410号-1 )  

GMT+8, 2024-5-22 11:33 , Processed in 0.176567 second(s), 21 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表