diff --git a/src/mod/endpoints/mod_sofia/sofia.c b/src/mod/endpoints/mod_sofia/sofia.c index acb10c4f9d..158ca28e59 100644 --- a/src/mod/endpoints/mod_sofia/sofia.c +++ b/src/mod/endpoints/mod_sofia/sofia.c @@ -1617,6 +1617,8 @@ static void our_sofia_event_callback(nua_event_t event, const char *call_id, *full_from, *full_to, *full_via, *from_user = NULL, *from_host = NULL, *to_user, *to_host, *full_agent; char to_tag[13] = ""; char *event_str = "refer"; + sip_accept_t *ap = sip->sip_accept; + char accept_header[256] = ""; np.fs_path = 1; contact_str = sofia_glue_gen_contact_str(profile, sip, nh, de, &np); @@ -1645,6 +1647,12 @@ static void our_sofia_event_callback(nua_event_t event, to_user = "n/a"; to_host = "n/a"; } + + while (ap) { + switch_snprintf(accept_header + strlen(accept_header), sizeof(accept_header) - strlen(accept_header), + "%s%s ", ap->ac_type, ap->ac_next ? "," : ""); + ap = ap->ac_next; + } sql = switch_mprintf("insert into sip_subscriptions " "(proto,sip_user,sip_host,sub_to_user,sub_to_host,presence_hosts,event,contact,call_id,full_from," diff --git a/src/mod/endpoints/mod_sofia/sofia_presence.c b/src/mod/endpoints/mod_sofia/sofia_presence.c index 41b4055a09..3dd216624b 100644 --- a/src/mod/endpoints/mod_sofia/sofia_presence.c +++ b/src/mod/endpoints/mod_sofia/sofia_presence.c @@ -3904,12 +3904,13 @@ void sofia_presence_handle_sip_i_subscribe(int status, } else { sip_accept_t *ap = sip->sip_accept; - char accept[256] = ""; + char accept_header[256] = ""; sub_state = nua_substate_active; while (ap) { - switch_snprintf(accept + strlen(accept), sizeof(accept) - strlen(accept), "%s%s ", ap->ac_type, ap->ac_next ? "," : ""); + switch_snprintf(accept_header + strlen(accept_header), sizeof(accept_header) - strlen(accept_header), + "%s%s ", ap->ac_type, ap->ac_next ? "," : ""); ap = ap->ac_next; }