diff --git a/src/mod/endpoints/mod_sofia/sofia_presence.c b/src/mod/endpoints/mod_sofia/sofia_presence.c index afccf7ea55..9bde6d33f0 100644 --- a/src/mod/endpoints/mod_sofia/sofia_presence.c +++ b/src/mod/endpoints/mod_sofia/sofia_presence.c @@ -742,14 +742,21 @@ static int sofia_presence_sub_callback(void *pArg, int argc, char **argv, char * stream.write_function(&stream, "\nsip:%s@%s\n", clean_from_user, clean_from_user, host); stream.write_function(&stream, "\n", clean_to_user, host); stream.write_function(&stream, "\n"); - } else if (!strcasecmp(proto, "park") | !strcasecmp(proto, "conf") | !strcasecmp(proto, "ext")) { - stream.write_function(&stream, "\nsip:%s@%s;%s=%s\n", - proto, proto, host, proto, !switch_strlen_zero(clean_to_user) ? clean_to_user : "unknown"); - stream.write_function(&stream, "\n", proto, host); - stream.write_function(&stream, "\n\n\n", - !strcasecmp(proto, "park") ? "no" : "yes"); - stream.write_function(&stream, "\nsip:%s@%s\n", proto, uuid, host); - stream.write_function(&stream, "\n", proto, uuid, host, proto, uuid); + } else if (!strcasecmp(proto, "park")) { + stream.write_function(&stream, "\nsip:parking@%s;fifo=%s\n", + host, !switch_strlen_zero(clean_to_user) ? clean_to_user : "unknown"); + stream.write_function(&stream, "\n", host); + stream.write_function(&stream, "\n\n\n"); + stream.write_function(&stream, "\nsip:%s\n", uuid); + stream.write_function(&stream, "\n", uuid); + stream.write_function(&stream, "\n"); + } else if (!strcasecmp(proto, "conf")) { + stream.write_function(&stream, "\nsip:conference@%s;conference=%s\n", + host, !switch_strlen_zero(clean_to_user) ? clean_to_user : "unknown"); + stream.write_function(&stream, "\n", host); + stream.write_function(&stream, "\n\n\n"); + stream.write_function(&stream, "\nsip:%s@%s\n", uuid, host); + stream.write_function(&stream, "\n", uuid, host); stream.write_function(&stream, "\n"); } }