项目场景:
使用 opensips 源码编译 opensips server。使用linphone demo(自己编译的版本)测试 opensips server 的各种消息请求是否正常
问题描述:
SUBSCRIBE 请求消息异常, 收到 opensips server 消息发来的 “ 503 Service Unavailable”
原因分析:
其他的请求,比如说 INVITE 请求,就可以正常处理。代码里面可能有其他设置,把 SUBSCRIBE 请求回复回复502了;也有可能是某些字段不符合规范导致的
解决方案:
修改 opensips.cfg 文件中把 SUBSCRIBE 请求直接写死了回复 503 导致。
if (is_method("PUBLISH")) { # 修改后的逻辑
# if (is_method("PUBLISH|SUBSCRIBE")) { # 原来的逻辑
send_reply("503", "Service Unavailable");
exit;
}
其他:
opensips 源码的某些逻辑是放在配置文件中的,比如说 SUBSCRIBE 请求的回复,这种情况比较少见