AnyChat技术支持论坛

标题: BRAC_ObjectControl进入营业厅返回-1 [打印本页]

作者: liangchao    时间: 2015-11-5 17:17
标题: BRAC_ObjectControl进入营业厅返回-1
请问在登陆系统成功的回调函数OnAnyChatLoginSystem中调用BRAC_ObjectControl进入营业厅 返回码是-1,是什么错误呢?

作者: admin    时间: 2015-11-5 17:18
详细的日志信息,以及进入营业厅的调用代码帖上来帮您分析一下?
作者: liangchao    时间: 2015-11-5 17:25
var NEED_ANYCHAT_APILEVEL = "0"; //插件level
var mDefaultServerAddr = "demo.anychat.cn";                // 默认服务器地址
var mDefaultServerPort = 8906;                                        // 默认服务器端口号
var mSelfUserId = -1;                          //用户ID
var mSelfUserName = "user01";                          //用户名
var mUserType = "1";                                  // 用户类型 1为客户,2为坐席
var mCurrentQueueID01 = "101";   //默认队列号
var mCurrentQueueID02 = "201";   //默认队列号
var mCurrentAreaId = "10001";    //默认营业厅号
var errorcode = BRAC_InitSDK(NEED_ANYCHAT_APILEVEL);
errorcode = BRAC_Connect(mDefaultServerAddr, mDefaultServerPort);
var loginTag = BRAC_Login( mSelfUserName, "", 0);
function OnAnyChatLoginSystem(dwUserId, errorcode) {
        if (errorcode == 0) {
            if (mUserType == 2) {//客服
                mCurrentAgentID = dwUserId;
                        mObjectInitFlag=ANYCHAT_OBJECT_FLAGS_AGENT;//坐席标识
                }else if(mUserType==1){
                        mObjectInitFlag=0;//客户

    }
                mSelfUserId = dwUserId;
                mPriority = parseInt($("#dwPrioritySelect option:selected").val());
                //登陆营业厅
                 var enterArea = BRAC_ObjectControl(ANYCHAT_OBJECT_TYPE_AREA, mCurrentAreaId, ANYCHAT_AREA_CTRL_USERENTER, 0, 0, 0, 0, "");
                 alert("yingyeting"+enterArea);
                 //登陆队列
                 var enterQueue = BRAC_ObjectControl(ANYCHAT_OBJECT_TYPE_QUEUE, mCurrentQueueID01, ANYCHAT_QUEUE_CTRL_USERENTER, 0, 0, 0, 0, "");
                alert("queue"+enterQueue);
                 if(enterQueue == 0){
                }else{
                        BRAC_ObjectControl(ANYCHAT_OBJECT_TYPE_QUEUE, mCurrentQueueID02, ANYCHAT_QUEUE_CTRL_USERENTER, 0, 0, 0, 0, "");
                }
        } else {
               
        }
}
作者: liangchao    时间: 2015-11-5 17:27
[2015-11-05 17:20:54(072)]        ---------------------------AnyChat Platform Core SDK Client Log---------------------------
[2015-11-05 17:20:54(073)]        Load BRAnyChatCore.dll success!(V5.3 Build Time:Aug 10 2015 12:20:22)
[2015-11-05 17:20:54(086)]        Load BRMiscUtil.dll success!(V5.3 Build Time:Aug 10 2015 12:20:50)
[2015-11-05 17:20:54(187)]        Load BRMediaUtil.dll success!(V5.3 Build Time:Aug 10 2015 12:20:02)
[2015-11-05 17:20:54(188)]        Load BRMediaShow.dll success!(V5.3 Build Time:Aug 10 2015 12:20:53)
[2015-11-05 17:20:54(192)]        Load BRMediaCore.dll success!(V5.3 Build Time:Aug 10 2015 12:21:04)
[2015-11-05 17:20:54(446)]        Invoke        Connect(demo.anychat.cn,8906)=0
[2015-11-05 17:20:54(447)]        Invoke        LoginServer(username=user01)
[2015-11-05 17:20:54(520)]        CheckClientSocketLink         Connect(ip=121.199.51.198,port=8906)
[2015-11-05 17:20:54(830)]        Server version: V5.3(Build Time:2015-09-29 22:14:08, Server OS:Windows)
[2015-11-05 17:20:55(670)]        Message        OnConnect(bSuccess:1, errorcode=0)
[2015-11-05 17:20:56(031)]        Message        OnLoginSystem(userid=-21957,errorcode=0,username=user01), msg deliver worked(1)
[2015-11-05 17:20:56(032)]        Server running time: 13 days, 1 hours, 21 minutes, license mode:1
[2015-11-05 17:20:58(655)]        Area(10002) Object Event, unknow event:2, dwParam1:-21957
[2015-11-05 17:21:04(122)]        Warning: The UDP communication with the server abnormal!
[2015-11-05 17:21:05(539)]        Invoke        LogoutServer(userid=-21957)        Elapse:31 ms
[2015-11-05 17:21:05(559)]        Invoke        BRAC_Release        Elapse:15 ms

作者: admin    时间: 2015-11-5 17:32
var mCurrentQueueID01 = "101";   //默认队列号
var mCurrentQueueID02 = "201";   //默认队列号
var mCurrentAreaId = "10001";    //默认营业厅号

这些不应该定义为字符串吧?应该是整型,如:var mCurrentQueueID01 = 101;
作者: liangchao    时间: 2015-11-7 08:36
admin 发表于 2015-11-5 17:32
这些不应该定义为字符串吧?应该是整型,如:var mCurrentQueueID01 = 101;

改成整型之后登陆营业厅还是返回-1.

作者: liangchao    时间: 2015-11-7 08:40
[2015-11-07 08:35:58(667)]        ---------------------------AnyChat Platform Core SDK Client Log---------------------------
[2015-11-07 08:35:58(667)]        Load BRAnyChatCore.dll success!(V5.3 Build Time:Aug 10 2015 12:20:22)
[2015-11-07 08:35:58(671)]        Load BRMiscUtil.dll success!(V5.3 Build Time:Aug 10 2015 12:20:50)
[2015-11-07 08:35:58(775)]        Load BRMediaUtil.dll success!(V5.3 Build Time:Aug 10 2015 12:20:02)
[2015-11-07 08:35:58(777)]        Load BRMediaShow.dll success!(V5.3 Build Time:Aug 10 2015 12:20:53)
[2015-11-07 08:35:58(780)]        Load BRMediaCore.dll success!(V5.3 Build Time:Aug 10 2015 12:21:04)
[2015-11-07 08:35:59(079)]        Invoke        Connect(demo.anychat.cn,8906)=0
[2015-11-07 08:35:59(081)]        Invoke        LoginServer(username=user01)
[2015-11-07 08:35:59(101)]        CheckClientSocketLink         Connect(ip=121.199.51.198,port=8906)
[2015-11-07 08:35:59(284)]        Server version: V5.3(Build Time:2015-09-29 22:14:08, Server OS:Windows)
[2015-11-07 08:35:59(521)]        Message        OnConnect(bSuccess:1, errorcode=0)
[2015-11-07 08:35:59(853)]        Message        OnLoginSystem(userid=-24354,errorcode=0,username=user01), msg deliver worked(1)
[2015-11-07 08:35:59(854)]        Server running time: 14 days, 16 hours, 36 minutes, license mode:1
[2015-11-07 08:36:07(942)]        Warning: The UDP communication with the server abnormal!
[2015-11-07 08:36:08(068)]        Invoke        LogoutServer(userid=-24354)        Elapse:62 ms
[2015-11-07 08:36:08(099)]        Invoke        BRAC_Release        Elapse:31 ms

作者: 佰锐科技-李友勤    时间: 2015-11-7 09:16
liangchao 发表于 2015-11-7 08:40
[2015-11-07 08:35:58(667)]        ---------------------------AnyChat Platform Core SDK Client Log---------- ...

您好,可在登陆成功的回调中调用此接口。

AnyChat的异步消息机制,会在执行速度快于消息返回速度时返回-1.
作者: liangchao    时间: 2015-11-7 09:32
佰锐科技-李友勤 发表于 2015-11-7 09:16
您好,可在登陆成功的回调中调用此接口。

AnyChat的异步消息机制,会在执行速度快于消息返回速度时返 ...

我是在登陆成功的回调函数function OnAnyChatLoginSystem(dwUserId, errorcode) {中调用的 BRAC_ObjectControl
作者: 佰锐科技-李友勤    时间: 2015-11-7 09:48
liangchao 发表于 2015-11-7 09:32
我是在登陆成功的回调函数function OnAnyChatLoginSystem(dwUserId, errorcode) {中调用的 BRAC_ObjectCo ...

将登陆营业厅、进入队列等均放到回调中执行,如果有同时执行的,则返回速度慢时就会出现-1,这应该不影响程序正常运行
作者: liangchao    时间: 2015-11-7 11:30
目前登陆营业厅和登陆队列都是放到登录系统成功的回调函数中一起调的,登陆营业厅返回-1,登陆队列返回0.但是坐席那边这时候应该有排队用户提示了,并没有出现排队用户。所以登陆营业厅和登陆队列肯定是没成功的,不知道什么原因。日志如下
[2015-11-07 08:35:58(667)]        ---------------------------AnyChat Platform Core SDK Client Log---------------------------
[2015-11-07 08:35:58(667)]        Load BRAnyChatCore.dll success!(V5.3 Build Time:Aug 10 2015 12:20:22)
[2015-11-07 08:35:58(671)]        Load BRMiscUtil.dll success!(V5.3 Build Time:Aug 10 2015 12:20:50)
[2015-11-07 08:35:58(775)]        Load BRMediaUtil.dll success!(V5.3 Build Time:Aug 10 2015 12:20:02)
[2015-11-07 08:35:58(777)]        Load BRMediaShow.dll success!(V5.3 Build Time:Aug 10 2015 12:20:53)
[2015-11-07 08:35:58(780)]        Load BRMediaCore.dll success!(V5.3 Build Time:Aug 10 2015 12:21:04)
[2015-11-07 08:35:59(079)]        Invoke        Connect(demo.anychat.cn,8906)=0
[2015-11-07 08:35:59(081)]        Invoke        LoginServer(username=user01)
[2015-11-07 08:35:59(101)]        CheckClientSocketLink         Connect(ip=121.199.51.198,port=8906)
[2015-11-07 08:35:59(284)]        Server version: V5.3(Build Time:2015-09-29 22:14:08, Server OS:Windows)
[2015-11-07 08:35:59(521)]        Message        OnConnect(bSuccess:1, errorcode=0)
[2015-11-07 08:35:59(853)]        Message        OnLoginSystem(userid=-24354,errorcode=0,username=user01), msg deliver worked(1)
[2015-11-07 08:35:59(854)]        Server running time: 14 days, 16 hours, 36 minutes, license mode:1
[2015-11-07 08:36:07(942)]        Warning: The UDP communication with the server abnormal!
[2015-11-07 08:36:08(068)]        Invoke        LogoutServer(userid=-24354)        Elapse:62 ms
[2015-11-07 08:36:08(099)]        Invoke        BRAC_Release        Elapse:31 ms
作者: 佰锐科技-陈伟    时间: 2015-11-7 11:58
本帖最后由 佰锐科技-陈伟 于 2015-11-7 12:10 编辑
liangchao 发表于 2015-11-7 11:30
目前登陆营业厅和登陆队列都是放到登录系统成功的回调函数中一起调的,登陆营业厅返回-1,登陆队列返回0.但 ...

您好  同事正在分析您代码 ,另外请检查下UDP 端口 Warning: The UDP communication with the server abnormal!
作者: liangchao    时间: 2015-11-7 13:35
佰锐科技-陈伟 发表于 2015-11-7 11:58
您好  同事正在分析您代码 ,另外请检查下UDP 端口 Warning: The UDP communication with the server abn ...

UDP端口应该没问题啊 例子里的网页都正常
作者: liangchao    时间: 2015-11-7 13:52
var mCurrentQueueID01 = 101;   //默认队列号
var mCurrentQueueID02 = 201;   //默认队列号
var mCurrentAreaId01 = 10001;    //默认营业厅号
var mCurrentAreaId02 = 10002;    //默认营业厅号
BRAC_ObjectControl(ANYCHAT_OBJECT_TYPE_AREA, mCurrentAreaId01, ANYCHAT_AREA_CTRL_USERENTER, 0, 0, 0, 0, "");
这样调函数是不是营业厅号那个参数会有问题,所以进入营业厅不成功呢?
作者: liangchao    时间: 2015-11-7 15:59
登陆营业厅和队列已经成功了,视频也连上了。但是想请问一下BRAC_GetDmoObject(id)这个函数返回为null是什么原因呢?
作者: 佰锐科技-李友勤    时间: 2015-11-7 17:23
liangchao 发表于 2015-11-7 15:59
登陆营业厅和队列已经成功了,视频也连上了。但是想请问一下BRAC_GetDmoObject(id)这个函数返回为null是 ...

请问是什么浏览器呢?
这个函数是需要自己封装的,demo里面有进行封装的源码。

之前连接不上的原因找到了吗
作者: liangchao    时间: 2015-11-9 09:17
function BRAC_GetDmoObject(id) {
        if (document.getElementById) {
                return document.getElementById(id);
        } else if (window[id]) {
                return window[id];
        }
        return null;
}
调用BRAC_GetDmoObject传入的参数是固定的字符串                 "ANYCHAT_VIDEO_LOCAL",
或“ANYCHAT_VIDEO_REMOTE”.
我同样这样封装调用传参的,我不明白这个参数是哪里定义的?也不知道为什么我的返回Null

之前连接不上视频的原因是我//身份信息设置
                InitClientObjectInfo(mSelfUserId,mObjectInitFlag,mPriority);这个函数没有调用
作者: 佰锐科技-李友勤    时间: 2015-11-9 09:40
liangchao 发表于 2015-11-9 09:17
function BRAC_GetDmoObject(id) {
        if (document.getElementById) {
                return document.getElementById ...

您好,这个参数应该是dmo对象,可弹出一下看看此时的值
作者: liangchao    时间: 2015-11-9 11:10
目前我遇到的问题是,自己的视频窗口正常显示,可是坐席的视频没有显示。请求坐席音视频BRAC_UserCameraControl(uid, state); BRAC_UserSpeakControl(uid, state);都正常执行了, BRAC_SetVideoPos(uid, videoID, videoType)执行没有完成,设置弹框确定传入的参数都没有问题,
function BRAC_SetVideoPos(userid, parentobj, id) {
        alert("brac_setvideopso"+userid+"parentobj"+parentobj+"id"+id);
        var videoobj = BRAC_GetDmoObject(id);
        if(videoobj != null) {
                alert("!=null");
                videoobj.SetIPCGuid(BRAC_GetIPCGuid());
                videoobj.SetUserId(userid);
                alert("!=null01");
        } else {
                alert("=null");
                // 创建视频显示插件
            videoobj = document.createElement("object")
            if (window.ActiveXObject || "ActiveXObject" in window)
                videoobj.classid = "clsid:B685A393-905F-45B5-B26E-FF199EEE2FD7";
            else
                videoobj.type = "application/anychat-video";
                videoobj.id = id;
                parentobj.appendChild(videoobj);
                videoobj.width = "100%";
                videoobj.height = "100%";
                // 关联到AnyChat SDK
                videoobj.SetIPCGuid(BRAC_GetIPCGuid());
                videoobj.SetUserId(userid);
                alert("=null01");
        }       
}
不知道怎么回事  设置自己视频位置和坐席视频位置都是同一个函数。设置自己的视频位置是执行力else里边的代码。设置坐席视频位置执行了if里边的代码但是没有执行完成,就是没有弹框(!=null01).
麻烦各位了
作者: liangchao    时间: 2015-11-9 11:36
目前我设弹框发现,主要是BRAC_SetVideoPos函数中videoobj.SetIPCGuid(BRAC_GetIPCGuid());
                videoobj.SetUserId(userid);执行不成功。但是有两次居然执行成功了,显示出了坐席视频窗口。多数情况下执行不成功,显示不出来坐席视频
作者: 佰锐科技-陈伟    时间: 2015-11-9 11:37
liangchao 发表于 2015-11-9 11:36
目前我设弹框发现,主要是BRAC_SetVideoPos函数中videoobj.SetIPCGuid(BRAC_GetIPCGuid());
                videoobj.Se ...

您好 我们测试看看
作者: admin    时间: 2015-11-9 12:07
BRAC_SetVideoPos(uid, videoID, videoType)
第三个参数不是videoType呢,是一个名称,会不会是,您本地视频和坐席视频的第三个参数重复了?
作者: liangchao    时间: 2015-11-9 13:11
admin 发表于 2015-11-9 12:07
第三个参数不是videoType呢,是一个名称,会不会是,您本地视频和坐席视频的第三个参数重复了?

"ANYCHAT_VIDEO_LOCAL"本地
“ANYCHAT_VIDEO_REMOTE"坐席

作者: huachengfeng    时间: 2016-4-27 13:37
您好!我想问一下:在坐席端点开始服务之后,没有回调OnAnyChatServiceStart此方法,队列里有客户,无客户的话会调OnAnyChatAgentWaitingUser()方法。这是为啥?

下面是日志:
[2016-04-27 13:15:53(893)]        ---------------------------AnyChat Platform Core SDK Client Log---------------------------
[2016-04-27 13:15:53(894)]        Load BRAnyChatCore.dll success!(V5.3 Build Time:Aug 10 2015 12:20:22)
[2016-04-27 13:15:53(900)]        Load BRMiscUtil.dll success!(V5.3 Build Time:Aug 10 2015 12:20:50)
[2016-04-27 13:15:53(945)]        Load BRMediaUtil.dll success!(V5.3 Build Time:Aug 10 2015 12:20:02)
[2016-04-27 13:15:53(947)]        Load BRMediaShow.dll success!(V5.3 Build Time:Aug 10 2015 12:20:53)
[2016-04-27 13:15:53(949)]        Load BRMediaCore.dll success!(V5.3 Build Time:Aug 10 2015 12:21:04)
[2016-04-27 13:15:54(667)]        Invoke        Connect(192.168.101.45,8906)=0
[2016-04-27 13:15:54(669)]        Invoke        LoginServer(username=hhhhh)
[2016-04-27 13:15:54(710)]        CheckClientSocketLink         Connect(ip=192.168.101.45,port=8906)
[2016-04-27 13:15:54(830)]        Server version: V6.0(Build Time:2016-03-22 20:21:52, Server OS:Windows)
[2016-04-27 13:15:54(833)]        Message        OnConnect(bSuccess:1, errorcode=0)
[2016-04-27 13:15:54(944)]        Message        OnLoginSystem(userid=17,errorcode=0,username=hhhhh), msg deliver worked(1)
[2016-04-27 13:15:54(947)]        Object InitFlags:0xffffffff
[2016-04-27 13:15:54(947)]        Server running time: 0 days, 4 hours, 10 minutes, license mode:0
[2016-04-27 13:15:54(990)]        Connection to streaming media server successfully!(udp delay:23ms)
[2016-04-27 13:15:55(011)]        Area(10001) Object Event, unknow event:2, dwParam1:17
[2016-04-27 13:15:55(081)]        Area(10001) Object Event, Enter Result:0
[2016-04-27 13:15:55(081)]        Area(10001) Object Event, unknow event:401, dwParam1:0
[2016-04-27 13:16:24(532)]        Area(10001) Object Event, unknow event:401, dwParam1:0
[2016-04-27 13:16:29(085)]        Area(10001) Object Event, unknow event:401, dwParam1:0
[2016-04-27 13:16:31(097)]        Area(10001) Object Event, unknow event:401, dwParam1:0
[2016-04-27 13:16:35(797)]        Area(10001) Object Event, unknow event:401, dwParam1:0
[2016-04-27 13:23:55(177)]        Area(10001) Object Event, unknow event:401, dwParam1:0
[2016-04-27 13:23:59(250)]        Area(10001) Object Event, unknow event:401, dwParam1:0
[2016-04-27 13:24:01(248)]        Area(10001) Object Event, unknow event:401, dwParam1:0
[2016-04-27 13:24:07(969)]        Area(10001) Object Event, unknow event:401, dwParam1:0

作者: 佰锐科技-邵光清    时间: 2016-4-27 15:49
huachengfeng 发表于 2016-4-27 13:37
您好!我想问一下:在坐席端点开始服务之后,没有回调OnAnyChatServiceStart此方法,队列里有客户,无客户 ...

您好,日志显示反复进入队列:
[2016-04-27 13:16:24(532)]        Area(10001) Object Event, unknow event:401, dwParam1:0
[2016-04-27 13:16:29(085)]        Area(10001) Object Event, unknow event:401, dwParam1:0
[2016-04-27 13:16:31(097)]        Area(10001) Object Event, unknow event:401, dwParam1:0
[2016-04-27 13:16:35(797)]        Area(10001) Object Event, unknow event:401, dwParam1:0
[2016-04-27 13:23:55(177)]        Area(10001) Object Event, unknow event:401, dwParam1:0
[2016-04-27 13:23:59(250)]        Area(10001) Object Event, unknow event:401, dwParam1:0
[2016-04-27 13:24:01(248)]        Area(10001) Object Event, unknow event:401, dwParam1:0
[2016-04-27 13:24:07(969)]        Area(10001) Object Event, unknow event:401, dwParam1:0
请问有没有调用BRAC_ObjectControl(ANYCHAT_OBJECT_TYPE_AGENT, mSelfUserId, ANYCHAT_AGENT_CTRL_SERVICEREQUEST, 0, 0, 0, 0, "");呢?
作者: huachengfeng    时间: 2016-4-28 10:05
您好!回调的调成功了!!反复进入队列的这个问题请给解答一下。我是在进入区域的回调中调用调BRAC_ObjectControl(ANYCHAT_OBJECT_TYPE_QUEUE, queueList[0], ANYCHAT_QUEUE_CTRL_USERENTER, 0, 0, 0, 0, "");
代码如下:
// 进入服务区域通知事件
function OnAnyChatEnterAreaResult(dwObjectType, dwObjectId, dwErrorCode) {
        AddLog('OnAnyChatEnterAreaResult(' + dwObjectType + ',' + dwObjectId +','+dwErrorCode + ')', LOG_TYPE_EVENT);
        if (dwErrorCode == 0) {
            colorIdx = 0;
                // 进入服务区域成功
                if(mUserType==1){//客户
                        /**获取队列*/
                        var queueList =BRAC_ObjectGetIdList(ANYCHAT_OBJECT_TYPE_QUEUE);
                        if (queueList.length>0){
                                //2 进入队列
                                var errorEnterQue=BRAC_ObjectControl(ANYCHAT_OBJECT_TYPE_QUEUE, queueList[0], ANYCHAT_QUEUE_CTRL_USERENTER, 0, 0, 0, 0, "");
                                if (errorEnterQue==0){
                                        currentSelectedQueueId = parseInt(queueList[0]); //获取队列id
                                       
                                }else{
                                        alert("errorEnterQue:"+errorEnterQue);
                                }
                        }
                        else{
                                alert("未获得队列");
                        }
作者: 佰锐科技-邵光清    时间: 2016-4-28 10:55
huachengfeng 发表于 2016-4-28 10:05
您好!回调的调成功了!!反复进入队列的这个问题请给解答一下。我是在进入区域的回调中调用调BRAC_ObjectC ...

您好,现在坐席能不能正常服务用户了?
作者: huachengfeng    时间: 2016-4-28 15:45
坐席的服务正常了,反复进入队列的问题还是存在。
作者: 佰锐科技-邵光清    时间: 2016-4-28 16:30
huachengfeng 发表于 2016-4-28 15:45
坐席的服务正常了,反复进入队列的问题还是存在。

您好,25楼的回复有误了,日志中输出多条Area(10001) Object Event, unknow event:401, dwParam1:0,是正常的,并不是反复进入队列。
现在能够正常使用就好了。
作者: huachengfeng    时间: 2016-4-28 17:36
好的!谢了




欢迎光临 AnyChat技术支持论坛 (http://bbs.anychat.cn/) Powered by Discuz! X3