设备呼叫小程序
小程序授权被呼叫,并获取 openID

1. 进入小程序,选中底部的 Features,然后单击 TWeCall。

2. 在输入设备信息这一栏中,填入我们申请的设备三元组中的“产品ID_设备名称”。

注意:
这里的设备 sn 必须得是产品 ID 和设备名的拼接,并且是用下划线(_)来拼接,这是设备和小程序建立联系的关键,不可填错。
3. 然后依次单击拉取和订阅,拿到 openID。
设备 SDK 填入被呼叫小程序的相关信息和 openID
1. 在 tc_twetalk_ws_init 的入参中填入体验小程序的 appid 和 modelid。
// 体验小程序是这两个,如果用户自己开发小程序,则填入自己小程序的twetalk_params.wxa_appid = "wx9e8fbc98ceac2628";twetalk_params.wxa_modelid = "DYEbVE9kfjAONqnWsOhXgw";
2. 然后在初始化完成后,填入用户的 openID 并同步给智能体。
TWeCallOpenids openids[2];memset(openids, 0, sizeof(openids));strcpy(openids[0].name, "张三");strcpy(openids[0].open_id, "oOMCN5CR14xUh7vBmxRQdSYjsLek"); // p2p player --> xphstrcpy(openids[4].name, "小明");strcpy(openids[4].open_id, "o196r5J33Q5N0o4w22379978ss26");tc_twetalk_call_sync_openids(sg_twetalk_handle, openids, 2);
如果想呼叫多个用户,则按照上一个步骤中的操作逻辑,获取用户的 openID,并填入上述数组中,类似通讯录的概念。其中的 name 字段就是被呼叫用户的昵称,可以自定义。当在对话过程中检测到:给张三打电话、呼叫张三、帮我给妈妈打电话等指令后,智能体会根据 openids 来自动识别给某人打电话。并且相关人员的微信弹窗会出现音频呼叫提醒,接听即可通话。
设备运行日志分析
INF|58361|twetalk_call.c|tc_twetalk_call_event_type_print(133): ✅ [04] RECV_USR_ANSWER - 小程序接听INF|58362|twetalk_app.c|_twetalk_recv_event_cb(330): user answer called: \\u5988\\u5988 openid: oOMCN5CR14xUh7vBmxRQdSYjsLekI (66286) TWETALK: vad startINF|65948|twetalk_ws.c|ws_recv(474): Received Ping, auto-replied Pong (payload len:1010820564 data len : 4)I (67312) TWETALK: vad endI (67808) TWETALK: vad startI (69044) TWETALK: vad endINF|69227|twetalk_call.c|tc_twetalk_call_event_type_print(142): 📞 [07] RECV_USR_HANGUP - 小程序挂断INF|69227|twetalk_app.c|_twetalk_recv_event_cb(336): user hangup called: \\u5988\\u5988 openid: oOMCN5CR14xUh7vBmxRQdSYjsLekINF|69534|twetalk_call.c|tc_twetalk_call_event_type_print(119): 🎤 [00] BOT_START_SPEAKING - 机器人开始说话INF|69534|twetalk_app.c|_twetalk_recv_event_cb(298): bot start speakingI (72045) TWETALK: vad startINF|71377|twetalk_call.c|tc_twetalk_call_event_type_print(122): 🔇 [01] BOT_STOP_SPEAKING - 机器人停止说话INF|71377|twetalk_app.c|_twetalk_recv_event_cb(303): bot stop speakingI (73063) TWETALK: vad endINF|72217|twetalk_call.c|tc_twetalk_call_event_type_print(128): 👤 [03] USR_TRANSCRIPTION - 用户字幕
小程序呼叫设备
我们还是以“设备呼叫小程序”中提到的 demo 小程序为例,来介绍小程序呼叫设备的流程。
控制台操作
1. 在 物联网开发平台控制台 创建应用。具体操作可参加 应用开发。
2. 在应用信息中,获取小程序的 APP Key 和 APP Secret。

3. 在应用开发的关联产品模块下,选择 入门指引 中新创建的产品并关联在一起。

小程序操作
1. 回到体验小程序界面,选择 Features > voip呼叫设备。

2. 填入相关参数:

APPKey 和 APPSecret 就是上文新建应用获取的 APP Key 和 APP Secret,建议直接复制粘贴,避免手动输入导致出错。
Sn 是被呼叫的设备产品 ID 和设备名称的拼接,这里需要严格按照此格式(产品 ID_设备名称)来填入。
测试设备的 ModelId 是固定值 DYEbVE9kfjAONqnWsOhXgw,请直接复制粘贴填入即可。
呼叫方式目前只支持音频。
3. 确保设备在线,单击呼叫即可和设备建立音频通话。
设备运行日志分析
INF|135695|twetalk_call.c|tc_twetalk_call_event_type_print(155): 📞 [08] RECV_ROOMID - 收到呼叫INF|135705|twetalk_app.c|_twetalk_recv_event_cb(320): calling roomid: wxf830863afde621ebWmpfVoip13888364703407054023INF|138146|twetalk_call.c|tc_twetalk_call_event_type_print(141): ✅ [04] RECV_USR_ANSWER - 小程序接听INF|138147|twetalk_app.c|_twetalk_recv_event_cb(330): user answer called: \\u5988\\u5988 openid: oOMCN5CR14xUh7vBmxRQdSYjsLekINF|146676|twetalk_ws.c|ws_recv(474): Received Ping, auto-replied Pong (payload len:1010812192 data len : 4)INF|146804|twetalk_call.c|tc_twetalk_call_event_type_print(147): 📞 [06] RECV_USR_HANGUP - 小程序挂断INF|146805|twetalk_app.c|_twetalk_recv_event_cb(336): user hangup(user_to_device) called: \\u5988\\u5988 openid: oOMCN5CR14xUh7vBmxRQdSYjsLekINF|147192|twetalk_call.c|tc_twetalk_call_event_type_print(127): 🎤 [00] BOT_START_SPEAKING - 机器人开始说话INF|147192|twetalk_app.c|_twetalk_recv_event_cb(298): bot start speakingINF|149071|twetalk_call.c|tc_twetalk_call_event_type_print(130): 🔇 [01] BOT_STOP_SPEAKING - 机器人停止说话INF|149071|twetalk_app.c|_twetalk_recv_event_cb(303): bot stop speaking