diff --git a/src/mod/endpoints/mod_sofia/sofia_presence.c b/src/mod/endpoints/mod_sofia/sofia_presence.c
index 9bde6d33f0..156b5f555e 100644
--- a/src/mod/endpoints/mod_sofia/sofia_presence.c
+++ b/src/mod/endpoints/mod_sofia/sofia_presence.c
@@ -742,21 +742,13 @@ 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")) {
- 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);
+ } 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");
- 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, "\nsip:%s@%s\n", proto, uuid, host);
+ stream.write_function(&stream, "\n", proto, uuid, host, proto, uuid);
stream.write_function(&stream, "\n");
}
}