我正在尝试通过 SIP 将 USSD 连接 OpenBTS 连接到 Restcomm-Connect。看起来这应该是可能的,但我一直遇到问题。希望有人以前这样做过并且可以提供帮助。
到目前为止我做了什么
- OpenBTS 正在运行,手机可以连接到收音机
- Restcomm Connect 正在运行,我创建了一个 USSD 应用程序来配置 *100# 指向它。
- SIP.USSD.Proxy 指向 Restcomm SIP 端口
拨打 USSD 代码时会发生什么
一个 SIP INVITE 转到 Restcomm 服务器。看起来像这样
邀请 sip:*100#;phone-context=irrelevant.net;user=dialstring@xxx.xx.x.xx:5080 SIP/2.0
<?xml version="1.0" encoding="UTF-8"?> <ussd-data> <language>en</language> <ussd-string>%s</ussd-string> </ussd-data>
- Restcomm 服务器然后发回 400 Bad 请求。
- Restcomm 日志中会留下一条通知。
Restcomm 无法处理此呼叫,因为无法找到目标号码 *100#;phone-context=irrelevant.net;user=dialstring 或附加了应用程序
我们重新编译了 OpenBTS,删除了添加;phone-context=irrelevant.net;user=dialstring
字符串source的行。认为这可能会使 Restcomm 感到困惑。仍然没有运气。
一种理论是 OpenBTS SIP 客户端需要通过 Restcomm 进行身份验证。
要求
- 我不依赖 Restcomm,并且可以使用任何 OpenBTS -> SIP -> HTTP 网关。
- OpenBTS USSD SIP 的参考实现是什么?