-
Notifications
You must be signed in to change notification settings - Fork 788
Open
Description
When jssip build "Refer-to" header not considering rfc3515 (SIP) Refer Method
A REFER request MAY be placed outside the scope of a dialog created with an INVITE. REFER creates a dialog, and MAY be Record-Routed, hence MUST contain a single Contact header field value. REFERs occurring inside an existing dialog MUST follow the Route/Record- Route logic of that dialog.
RFC 3261 12.1.1. and RFC 3261 12.1.2. say how take "local tag" and "remote tag" for dialog and this is correctly implemented
The behaviour of this rfc mismatch is that refer of 2 incoming call failed (eg. in asterisk server)
Solution is to change "Refer-to" builder from
if (options.replaces)
{
replaces = options.replaces._request.call_id;
replaces += `;to-tag=${options.replaces._to_tag}`;
replaces += `;from-tag=${options.replaces._from_tag}`;
replaces = encodeURIComponent(replaces);
}to
if (options.replaces)
{
if (options.replaces._dialog)
{
replaces = options.replaces._dialog.id.call_id;
replaces += `;to-tag=${options.replaces._dialog.id.remote_tag}`;
replaces += `;from-tag=${options.replaces._dialog.id.local_tag}`;
} else {
replaces = options.replaces._request.call_id;
replaces += `;to-tag=${options.replaces._to_tag}`;
replaces += `;from-tag=${options.replaces._from_tag}`;
}
replaces = encodeURIComponent(replaces);
}Metadata
Metadata
Assignees
Labels
No labels