I am using Elastix 2.5Beta2 with asterisk version 11.5.I found a bug,when two sip client communicate with video.A sip client sends INVITE pacakge as a=fmtp:99 profile-level-id=42800D
to Elastix,then Elastix transfer it to B sip client.But there is a bug:Elastix transfer INVITE pacakge as a=fmtp:99 profile-level-id=4280D.Notice it is 4280D but 42800D.
I downalod asterisk 11.5 source code,and I find D:\asterisk-11.5.0\res\res_format_attr_h264.c–> h264_format_attr_sdp_generate():
if (!added) {
ast_str_append(str, 0, “a=fmtp:%d profile-level-id=%X%X%X”, payload, format_attr->format_attr
[H264_ATTR_KEY_PROFILE_IDC], format_attr->format_attr[H264_ATTR_KEY_PROFILE_IOP],
format_attr->format_attr[H264_ATTR_KEY_LEVEL]);
added = 1;
}
else {
ast_str_append(str, 0, “;profile-level-id=%X%X%X”, format_attr->format_attr[H264_ATTR_KEY_PROFILE_IDC],
format_attr->format_attr[H264_ATTR_KEY_PROFILE_IOP], format_attr->format_attr[H264_ATTR_KEY_LEVEL]);
}
Please notice the statement
ast_str_append(str, 0, “;profile-level-id=%X%X%X”, format_attr->format_attr[H264_ATTR_KEY_PROFILE_IDC],
format_attr->format_attr[H264_ATTR_KEY_PROFILE_IOP], format_attr->format_attr[H264_ATTR_KEY_LEVEL]);
The right is
ast_str_append(str, 0, “;profile-level-id=%02X%02X%02X”, format_attr->format_attr[H264_ATTR_KEY_PROFILE_IDC],
format_attr->format_attr[H264_ATTR_KEY_PROFILE_IOP], format_attr->format_attr[H264_ATTR_KEY_LEVEL]);
Please help me to correct the bug.
Thanks.