Skip to content

652 logger for in/out Xuc messages (Ami, webscocket)

username-removed-730944 requested to merge 652-external-messages-logger into master

Prepare logger:

  • for all incoming and outgoing Xuc messages (AMI, WebSockets)
  • log as JSON
  • for incomming messages also log internal representation after parsing JSON
  • prepare logging to separate file inside ./logs/
  • turned off by default
  • can be enabled selectively for channel, channel+direction, chqannel+direction+user

Closes #652

Sample log content:

15:38:27.745 xucevents.cti.in.aaaa {"function":"updateconfig","listname":"users","tipbxid":"xivo","timenow":1.485268707737405E9,"tid":"1","config":{"enablednd":false,"destrna":"","enablerna":0,"firstname":"aaaa","lastname":"aaaa","enableunc":0,"destbusy":"1001","enablebusy":0,"voicemailid":1,"incallfilter":0,"destunc":"","enablevoicemail":1,"xivo_uuid":"2d5813d9-d72a-423c-9941-8bcde39c8785","enablexfer":1,"fullname":"aaaa aaaa","agentid":5,"mobilephonenumber":"01230041305","linelist":["1"]},"class":"getlist"} -> org.xivo.cti.message.UserConfigUpdate@619839db[userId=1,dndEnabled=false,naFwdEnabled=false,naFwdDestination=,uncFwdEnabled=false,uncFwdDestination=,busyFwdEnabled=false,busyFwdDestination=1001,firstName=aaaa,lastName=aaaa,fullName=aaaa aaaa,mobileNumber=01230041305,agentId=5,lineIds=[1],voiceMailId=1,voiceMailEnabled=true]
15:38:27.752 xucevents.cti.out.aaaa {"tipbxid":"xivo","function":"updatestatus","listname":"voicemails","class":"getlist","commandid":57,"tid":"1"}
15:38:27.752 xucevents.ws.out.aaaa {"msgType":"UserConfigUpdate","ctiMessage":{"userId":1,"dndEnabled":false,"naFwdEnabled":false,"naFwdDestination":"","uncFwdEnabled":false,"uncFwdDestination":"","busyFwdEnabled":false,"busyFwdDestination":"1001","firstName":"aaaa","lastName":"aaaa","fullName":"aaaa aaaa","mobileNumber":"01230041305","agentId":5,"lineIds":[1],"voiceMailId":1,"voiceMailEnabled":true}}
15:38:27.752 xucevents.ws.out.aaaa {"msgType":"AgentStateEvent","ctiMessage":{"name":"AgentReady","agentId":5,"phoneNb":"1000","since":3517,"queues":[4,2,1,5],"cause":"available"}}
15:38:27.758 xucevents.cti.in.aaaa {"function":"updatestatus","listname":"voicemails","tipbxid":"xivo","timenow":1.485268707748413E9,"status":{"new":"4"},"tid":"1","class":"getlist"} -> org.xivo.cti.message.VoiceMailStatusUpdate@3bb9ae2d[voiceMailId=1,newMessages=4,waitingMessages=0,oldMessages=0]
15:38:27.759 xucevents.ws.out.aaaa {"msgType":"VoiceMailStatusUpdate","ctiMessage":{"voiceMailId":1,"newMessages":4,"waitingMessages":0,"oldMessages":0}}
15:38:29.850 xucevents.ws.in.aaaa {"claz":"web","command":"dial","destination":"1001","variables":{}} -> Dial(1001,Map())
15:38:29.883 xucevents.cti.in.xuc {"function":"updatestatus","listname":"phones","tipbxid":"xivo","timenow":1.485268709874328E9,"status":{"hintstatus":"8"},"tid":"1","class":"getlist"} -> org.xivo.cti.message.PhoneStatusUpdate@c243233[lineId=1,hintStatus=8]

Sample log content pretty-printed:

15:56:07.895 xucevents.cti.out.xuc {
  "class": "login_id",
  "commandid": 6,
  "company": "default",
  "ident": "xucXuC",
  "userlogin": "xuc",
  "version": "9999",
  "xivoversion": "2.1"
}
15:56:19.890 xucevents.ws.out.aaaa {
  "msgType" : "PhoneStatusUpdate",
  "ctiMessage" : {
    "status" : "AVAILABLE"
  }
}
15:56:30.190 xucevents.ws.in.aaaa {
  "claz" : "web",
  "command" : "dial",
  "destination" : "1001",
  "variables" : { }
} -> Dial(1001,Map())
15:56:30.225 xucevents.cti.in.aaaa {
  "function" : "updatestatus",
  "listname" : "phones",
  "tipbxid" : "xivo",
  "timenow" : 1.48526979021173E9,
  "status" : {
    "hintstatus" : "8"
  },
  "tid" : "1",
  "class" : "getlist"
} -> org.xivo.cti.message.PhoneStatusUpdate@6cee3eb6[lineId=1,hintStatus=8]

Merge request reports