基于pn-param、pn-prid参数向安卓SIP客户端发送FCM推送通知咨询
问题1解答
你无法直接用拿到的第三方SIP客户端的pn-prid设备令牌发送FCM推送通知。
FCM设备令牌是和应用所属的Firebase项目一一绑定的,你获取到的令牌是MizuDroid应用自身关联的Firebase项目生成的,只有使用该项目对应的SenderID和ServerKey才能成功推送,这是FCM内置的安全机制,目的是避免无关第三方随意给应用用户发送骚扰推送,你返回的MismatchSenderId错误就是密钥和令牌所属项目不匹配的明确提示。
问题2解答
如果要实现自有PBX向SIP客户端推送通知,仅有以下两种可行路径,对应要求分别如下:
- 路径1:使用自研SIP客户端
这是最可控的实现方案,前置要求和调用规则如下:- 客户端需集成你自行注册的Firebase项目的SDK,生成对应项目的设备令牌,在REGISTER请求的
pn-prid字段携带该令牌,pn-param字段填写你自己的应用包名 - 推荐调用FCM HTTP v1 API完成推送,需要提交的核心参数包括:
- 目标设备令牌:即SIP REGISTER请求里的
pn-prid值 - 推送消息类型:优先使用静默数据消息,不需要展示通知栏提示,仅唤醒SIP客户端重新注册/处理呼入请求即可
- 鉴权凭证:你自有Firebase项目生成的服务账号密钥
- 目标设备令牌:即SIP REGISTER请求里的
- 客户端需集成你自行注册的Firebase项目的SDK,生成对应项目的设备令牌,在REGISTER请求的
- 路径2:向第三方SIP客户端官方申请推送权限
如果你坚持使用MizuDroid这类第三方客户端,需要联系应用开发者获取对应Firebase项目的推送调用授权,要么开放他们的推送接口给你调用,要么提供对应项目的合法ServerKey,一般仅商业合作场景下会开放这类权限,你可以咨询MizuDroid官方付费版本是否支持自定义推送网关的相关能力。
内容的提问来源于stack exchange,提问作者Bilbo Hobbit
相关产品推荐
相关产品推荐

