
分机注册(需要查询分机状态来判断是否可用)->登录(接听呼入电话需要登录到指定queue)->拨打电话->就绪->未就绪-> 登出。
根据相应事件产生自己需要的事件,之后根据dn关联坐席的websocket,之后把解析的信息推送到前端,做软电话按钮的展现。
String callUuid = event.get("Channel-Call-UUID"); String eventDate = event.get("Event-Date-Local"); String logicalDirection = event.get("Caller-Logical-Direction"); String thisDn = event.get("variable_dialed_user");//被叫 String otherDn = event.get("Caller-Caller-ID-Number");//主叫 String answerState = event.get("Answer-State");//话务状态->ringing String switchName = event.get("FreeSWITCH-Switchname"); String ani = event.get("Caller-Caller-ID-Number"); String dnis = event.get("Caller-Callee-ID-Number"); logger.info("【Fs EsEvent】->>> onEventDialing EsEvent callUuid:{},eventDate:{}, logicalDirection:{}, thisDn:{},otherDn:{},answerState:{},switchName:{}", callUuid, eventDate, logicalDirection, thisDn, otherDn, answerState, switchName); Integer referenceId = Integer.valueOf(event.get("Event-Sequence"));
{
"agentId": "21009",
"ani": "0000000000",
"callType": "outbound",
"callUuid": "b85e2357-c85d-4eaf-be09-e08b48a2650e",
"connId": "b85e2357-c85d-4eaf-be09-e08b48a2650e",
"dnis": "1000",
"eventType": "EVENT_DIALING",
"mediaType": "voice",
"messageType": "VoiceCallStateChangeMessage",
"referenceId": 47755,
"sessionId": "079dc84e-a643-4dd7-86fa-d9a991008c08",
"thisDn": "1000"
}
/*<--注册分机-->*/
//EslMessage eslMessage1 =inboundClient.sendApiCommand("callcenter_config agent set contact", "21010@default user/1000");
//System.out.println("#####dial eslMessage: "+eslMessage1.getHeaders().toString());
//System.out.println("#####dial eslMessage: "+eslMessage1.getBodyLines().toString()+"=&&="+eslMessage1.getBodyLines().get(0));
/*<--查询分机状态-->*/
// EslMessage eslMessage=inboundClient.sendApiCommand("list_users", "group default user 1000"); //System.out.println("#####eslMessage: "+eslMessage.getHeaders().toString()); //System.out.println("#####eslMessage: "+eslMessage.getBodyLines().get(0));
/*<--播放欢迎语-->*/
//inboundClient.sendBackgroundApiCommand("originate", "user/1000 &playback(/usr/local/freeswitch/sounds/huanying.wav)");
//inboundClient.sendBackgroundApiCommand("callcenter_config agent set status", "21009@default 'Available'");
/*<--就绪-->*/
//inboundClient.sendBackgroundApiCommand("callcenter_config agent set status", "21009@default 'Available'");
/*<--登出-->*/
//inboundClient.sendBackgroundApiCommand("callcenter_config agent set status", "21009@default 'Logged Out'");
/*<--拨打电话异步(没有事件消息)-->*/
//inboundClient.sendBackgroundApiCommand("originate", "user/1000 1001");
/*<--拨打电话同步-->*/
//EslMessage eslMessage1=inboundClient.sendApiCommand("originate", "user/1000 1001");
//System.out.println("#####dial eslMessage: "+eslMessage1.getHeaders().toString());
//System.out.println("#####dial eslMessage: "+eslMessage1.getBodyLines().toString()+"&&"+eslMessage1.getBodyLines().get(0));
/*<--登录到queue-->*/
//inboundClient.sendBackgroundApiCommand("callcenter_config tier add", "support@default 21009@default 1 1");
//callcenter_config tier set [key(state|level|position)] [queue name] [agent name] [value]
//*<--登录到queue-->*/
// inboundClient.sendBackgroundApiCommand("callcenter_config tier add", "support@default 21009@default 1 1");
//EslMessage eslMessage1=inboundClient.sendApiCommand("callcenter_config tier add", "support@default 21009@default 1 1");;
//#####dial eslMessage: [-ERR Tier already exist!]&&-ERR Tier already exist!
//System.out.println("#####dial eslMessage: "+eslMessage1.getHeaders().toString());
//System.out.println("#####dial eslMessage: "+eslMessage1.getBodyLines().toString()+"&&"+eslMessage1.getBodyLines().get(0));
/*<--这个queue未就绪-->*/
// support@default 21009@default on break
//inboundClient.sendBackgroundApiCommand("callcenter_config tier set state", "support@default 21009@default on break");
System.out.println("###################Fs excuted start############");
PS:待后续完善