diff --git a/src/mod/endpoints/mod_sofia/sofia_presence.c b/src/mod/endpoints/mod_sofia/sofia_presence.c
index 986e3dc54f..f2975d08db 100644
--- a/src/mod/endpoints/mod_sofia/sofia_presence.c
+++ b/src/mod/endpoints/mod_sofia/sofia_presence.c
@@ -682,21 +682,18 @@ static int sofia_presence_sub_callback(void *pArg, int argc, char **argv, char *
astate = dft_state;
}
+ if (!strcasecmp(event_status, "hold")) {
+ astate = "early";
+ }
+
stream.write_function(&stream,
"\n"
"\n",
switch_str_nil(switch_event_get_header(helper->event, "event_count")), clean_id);
- /* astate of aleg/outbound should start @ confirmed not early. direction is recipient or initiator */
+
stream.write_function(&stream, "\n\n");
pl = stream.data;
ct = "application/dialog-info+xml";
@@ -704,7 +701,7 @@ static int sofia_presence_sub_callback(void *pArg, int argc, char **argv, char *
if (astate && uuid && helper->stream.data) {
stream.write_function(&helper->stream, "update sip_dialogs set state='%s' where uuid='%s';\n", astate, uuid);
}
-
+
} else {
pl = switch_mprintf("\r\n"
"