FreeSwitch当使用bridge方式桥接起AB腿时,B腿回复的部分状态码中携带的某些字段,并不会透传给A腿,由于部分字段的缺失会导致A腿方向的会话无法确定异常的状态原因,以422消息举例:
本文章是在FreeSwitch 1.10.9的代码基础上进行的改动,过早的版本,或者过于未来的版本可能有改动,如果时间不长应该大同小异。
1.422消息的用途
当uac发起初始INVITE请求时,会携带Session-Expire头域指定会话的刷新时间和刷新方,格式为:
Session-Expire: 90;refresher=uac
上面的例子代表,会话刷新消息的超时时间为90秒,由uac来刷新消息。
uas收到后由于不同终端、设备等原因可能认为90秒更新频率过高,要求uac重新发起INVITE,并加大Session-Expire,将使用422响应码回复uac端。uas端进行422响应时会携带一个名为Min-SE的头域来指定最小的更新时间,单位为秒。
2.FreeSwitch当前处理
由于FreeSwitch对于回复INVITE消息的状态码的特殊头域未