diff --git a/src/mod/endpoints/mod_sofia/sofia_presence.c b/src/mod/endpoints/mod_sofia/sofia_presence.c
index 5e83978640..b33480938d 100644
--- a/src/mod/endpoints/mod_sofia/sofia_presence.c
+++ b/src/mod/endpoints/mod_sofia/sofia_presence.c
@@ -740,12 +740,27 @@ static int sofia_presence_sub_callback(void *pArg, int argc, char **argv, char *
stream.write_function(&stream, "\n", !strcasecmp(event_status, "hold") ? "no" : "yes" );
stream.write_function(&stream, "\n\n");
stream.write_function(&stream, "\nsip:%s@%s\n", clean_from_user, clean_from_user, host);
- stream.write_function(&stream, "\n", !strcasecmp(proto, "park") ? "park+" : "", clean_to_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);
+ 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");
-
}
-
}
+
stream.write_function(&stream, "\n");
}