全部产品
云市场

回执消息文档

更新时间:2019-04-01 17:16:37

简介

当您使用融合通信服务时,可以通过使用MNS的Queue模型来接收通话的回执消息。

消息的订阅

云通信的所有业务消息都会通过MNS消息服务向外发送。目前融合通信服务支持的消息类型有:

  1. ArtcCdrReport:呼叫话单消息
  2. ArtcTempStatusReport:呼叫中间状态消息

以上两种消息类型都需要消息队列名称,获取名称请联系您的客户经理。

请按照以下步骤完成消息接收:

  1. 替换您自己的AK与SK
  2. 设置相应的消息类型与消息队列名称
  3. 启动应用开始接收消息

注意:不同类型的消息返回的消息体内包含的字段是不一样的,您需要依据订阅的消息类型做适当修改。

消息类型

一、呼叫话单消息

介绍

消息类型为:ArtcCdrReport,您可以通过订阅这个消息获取呼叫的话单信息,包括通话时长,通话发起时间,结束时间等。

点对点消息体格式

名称 类型 描述 示例
uuid String 呼叫唯一ID(主叫uuid) 281b7fd5-5670-43b3-bd5a-8c3c354bda6d
startTime String 通话开始时间,未接通则为空 2017-06-01 10:00:00
endTime String 通话结束时间,未接通则为空 2017-06-01 10:00:00
duration String 通话时长,未接通为0 10
caller String 主叫用户ID 20000000000000001
callee String 被叫用户ID 20000000000000001
roomId String 房间号 236
alicomRtcType String 通话类型,当前类型有:voip2voip,video2video等 voip2voip
extend String 扩展字段 123456

多方消息体格式

名称 类型 描述 示例
uuid String 呼叫唯一ID 281b7fd5-5670-43b3-bd5a-8c3c354bda6d
startTime String 通话开始时间,未接通则为空 2017-06-01 10:00:00
endTime String 通话结束时间,未接通则为空 2017-06-01 10:00:00
duration String 通话时长,未接通为0 10
userId String 用户ID 20000000000000001
roomId String 房间号 236
alicomRtcType String 通话类型,当前类型有:voip2voip,video2video,multiAudio,multiVideo等 voip2voip
isCustomAccount Boolean 是否为无账号模式 false
extend String 扩展字段 123456

二、通话中间状态消息

消息类型为:ArtcTempStatusReport,您可以通过订阅这个消息获取通话的各种中间状态,如:房间创建、销毁、成员加入等。不同的中间状态通过messageType字段区分,不同类型的中间状态消息的格式可能不一样。

1. 房间创建销毁消息

介绍

房间创建或销毁时开发者可以通过消息通道获取对应的事件,创建或销毁房间对应的消息类型分别是:createRoom、destroyRoom。

消息体格式
名称 类型 描述 示例
messageType String 消息类型 createRoom
timeStr String 时间 2017-10-16 21:04:35
roomId String 房间ID 123
roomType String 房间类型,音频/视频 video

2. 成员加入消息

介绍

多方场景下,成员加入时开发者可以通过消息通道获取该事件,消息类型为: addParticipant。

消息体格式
名称 类型 描述 示例
messageType String 消息类型 addParticipant
uuid String 呼叫ID 281b7fd5-5670-43b3-bd5a-8c3c354bda6d
userId String 用户ID 20000000000000001
roomId String 房间号 236
alicomRtcType String 通话类型,当前类型有:voip2voip,video2video,multiAudio,multiVideo等 voip2voip
timeStr String 时间 2017-10-16 21:04:35

集成步骤

下载消息SDK

下载融合通信对应的消息DEMO工程,工程所依赖的jar包都放在lib目录下,将对应的jar包引入到您的工程中即可编写接收消息的程序。

SDK&DEMO[下载地址]

  1. /**
  2. * 只能用于接收云通信的消息,不能用于接收其他业务的消息
  3. */
  4. public class ReceiveAlicomMsgDemo {
  5. private static Log logger=LogFactory.getLog(ReceiveAlicomMsgDemo.class);
  6. static class MyMessageListener implements MessageListener{
  7. private Gson gson=new Gson();
  8. @Override
  9. public boolean dealMessage(Message message) {
  10. System.out.println("message handle: " + message.getReceiptHandle());
  11. System.out.println("message body: " + message.getMessageBodyAsString());
  12. System.out.println("message id: " + message.getMessageId());
  13. System.out.println("message dequeue count:" + message.getDequeueCount());
  14. try{
  15. Map<String,Object> contentMap=gson.fromJson(message.getMessageBodyAsString(), HashMap.class);
  16. //依据自己的消息类型,获取对应的字段
  17. String uuid=(String)contentMap.get("uuid");
  18. //TODO 这里开始写业务代码
  19. }catch(com.google.gson.JsonSyntaxException e){
  20. logger.error("error_json_format:"+message.getMessageBodyAsString(),e);
  21. }
  22. Boolean dealResult=true;
  23. return dealResult;//返回true,则工具类自动删除已拉取的消息。
  24. }
  25. }
  26. public static void main(String[] args) throws com.aliyuncs.exceptions.ClientException, ParseException {
  27. DefaultAlicomMessagePuller puller=new DefaultAlicomMessagePuller();
  28. String accessKeyId="yourAccessKeyId";
  29. String accessKeySecret="yourAccessKeySecret";
  30. String messageType="ArtcCdrReport"; //注意替换成您需要获取的消息类型
  31. String queueName="yourQueueName";//联系您的客户经理获取queueName
  32. puller.startReceiveMsg(accessKeyId,accessKeySecret ,messageType,queueName, new MyMessageListener());
  33. }
  34. }