1. FSGUI**动态座席组及最新的推送事件的接口**:
  2. 宁卫通信
  3. 新闻动态
  4. 宁卫新闻
  5. FSGUI**动态座席组及最新的推送事件的接口**

FSGUI**动态座席组及最新的推送事件的接口**

到2020-7实现的座席组逻辑如下:

a. 在系统中预定几个组,如 110,12345,12320等

B. 接着由座席上线时,指定上线了哪几个组

c. 我们在路由中配置了,如 85733555是进到12320这个组,则配操作符为 16,明细是 12320这个组号

d. 优先进行和组配套的黑名单,如果是处于黑名单就挂 机或放音

e. 接着查询历史沟通记录,如果记忆中的座席空闲,那么就由该座席来处理,否则找空闲座席处理

f. 如果没有历史沟通,就直接找该组空闲座席

g. 如果没空闲座席了,则判断是vip还是普通用户来电,有一定时器,不断优先判断vip的来电,接着判断普通的来电,在查找到有空闲座席的情况下,转给该空闲座席.

h. 不同的客户,需求有所不同,在有关挂 机的要求,有的要求放音几次后挂 ,有的是,客户不挂 机,我们不主动挂 机,按实际来配.

  1. 获取token

返回值: "token":"token code"

非正常返回值: "Not Authorized"

curl -d '{"username": "admin", "password": "admin"}' -H "Content-Type:application/json" http://ip:8085/api/login


  1. 上线

    让座席分机为上线或下线,即up or down //up为上线 //down为下线

    里边的组,可以为多个如: "12345,12320"

curl -H "Content-Type: application/json" -d '{"Extension":"1002","Value":"up" ,"Groups":"12345,110"}'  -H "Authorization:Nway token " http://ip:8085/api/extension_seatstate


  1. 分机忙闲

    让座席分机置忙或置闲 ,这里和设置呼叫状态,在不同的客户需求时,需要进行分开,否则可能只用呼叫状态一项处理不了

    //ready or rest //ready 意为设置为闲 //rest 意为设置为忙,小休,开会等

curl -H "Content-Type: application/json" -d '{"Extension":"1002","Value":"ready" }'  -H "Authorization:Nway token " http://ip:8085/api/extension_seatstatus
  1. 设置呼叫状态

    //ring,talking,ivr,ready,typing,no_answer, no_ready //ready是等待电话-置闲 //talking是正在通话中 //typing 整理态,接完电话后在整理,默认5分钟 //no_answer 久不应答,即响铃后座席未接 //busy 置忙 //rest 小休

curl -H "Content-Type: application/json" -d '{"Extension":"1002","Value":"ring" }'  -H "Authorization:Nway token " http://ip:8085/api/extension_callstate
  1. 获取排队中的来电

    按以下的信息返回排队中的电话信息

      Uuid             string    //呼入的channel的uuid  Number           string    //呼入的号码  RealCallinNumber string    //实际呼入的号码  Group            string    //进入的组  Level            string    //保留用于normal,vip  CallinTime       time.Time //呼入时间
curl  -H "Authorization:Nway token " http://ip:8085/api/queues
  1. 获取所有的分机状态

    按以下的信息返回所有的分机状态信息

      Extension            string  RegStatus            string  AgentState           string  CallState            string  LastStatusChangeTime string
curl  -H "Authorization:Nway token " http://ip:8085/api/get_extensions
  1. 事件和消息的推送

    我们使用redis的pub/sub模式推送如来电,挂 机等事件,以及来电排队等事件,以及cdr

    a. 来电,振铃,接通,挂 机等事件

    需要psubscribe event_*

    就会将所有的event事件推过来

    模式如下:

    evt_name,callin_number, dest_number, domain, dtmf, gateway, originate_number, direction, auuid, buuid, origination_dest_number

    其中evt_name为以下项:

      EVENT_CALLIN EVENT_NAME = 1 + iota     //呼入  EVENT_CALLOUT     //呼出  EVENT_RING        //回铃  EVNET_ALERT       //振铃  EVENT_ANSWER      //应答  EVENT_HANGUP      //座席  EVENT_DTMF        //按键  EVENT_PLAYRING    //开始放音  EVENT_PLAYSTOP    //放音结束  EVENT_PARK        //park掉  EVENT_UNPARK      //解决park  EVENT_HOLD        //hold掉  EVENT_UNHOLD      //unhold  EVENT_BRIDGED     //已桥接  EVENT_DESTORY     //已完全释放  EVENT_TALKING     //正在通话中  EVENT_DA          //回铃检测

Callin_number为呼入号码,或称为主叫号码

dest_number 目标号码

domain 域,先不用考虑

dtmf, 如果是按键,则这里有值

gateway, 如果是呼出,则这是呼出的gateway名称

originate_number, 原主叫号码

direction, 呼入还是呼出

auuid, 这条通道的uuid

buuid, 关联通道的uuid

origination_dest_number 原始被叫号码

b. 通话详单信息

以前采用http推送模式,虽然也没什么影 响,但后来还是采用redis或进一步放个大点的mq等的来完成推送消息的过程

psubscribe cdr_*

其中,主叫,被叫,如果是呼入到座席,那么中间经过了几个没有回应或转接的信息都一起推送过来,如代码:

arr := []string{strings.Trim(uuid, " "),    strings.Trim(a_caller_id_number, " "),    strings.Trim(a_destination_number, " "),    strings.Trim(a_start_stamp, " "),    strings.Trim(a_answer_stamp, " "),    strings.Trim(a_end_stamp, " "),    strings.Trim(a_duration, " "),    strings.Trim(a_billsec, " "),    strings.Trim(a_sip_hangup_disposition, " "),    strings.Trim(a_record_file, " "),    strings.Trim(str_no_answer_agents, " "),    strings.Trim(destination_number, " "),    strings.Trim(start_stamp, " "),    strings.Trim(answer_stamp, " "),    strings.Trim(end_stamp, " "),    strings.Trim(duration, " "),    strings.Trim(billsec, " ")}   if len(no_answer_agents) > 0 {    var tmpstr string    tmpstr = "{"    for _, v := range no_answer_agents {     tmpstr += v + ","    }    tmpstr = tmpstr[:len(tmpstr)-1]    tmpstr += "}"    arr = append(arr, tmpstr)   } else {    arr = append(arr, "")   }

c. 排队信息

psubscripe queue_*

其大概信息如下:

method, uuid, number, group, level, callin_time

d. 在分机发生状态变化时,由系统向外发状态变更


psubscripe agent_*

其大概信息如下:

number, status, time