diff options
Diffstat (limited to 'res/res_pjsip_refer.c')
-rw-r--r-- | res/res_pjsip_refer.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/res/res_pjsip_refer.c b/res/res_pjsip_refer.c index 4896a00e8..c23097e60 100644 --- a/res/res_pjsip_refer.c +++ b/res/res_pjsip_refer.c @@ -342,6 +342,7 @@ static int refer_progress_alloc(struct ast_sip_session *session, pjsip_rx_data * const pj_str_t str_true = { "true", 4 }; pjsip_tx_data *tdata; pjsip_hdr hdr_list; + char tps_name[AST_TASKPROCESSOR_MAX_NAME + 1]; *progress = NULL; @@ -363,7 +364,11 @@ static int refer_progress_alloc(struct ast_sip_session *session, pjsip_rx_data * /* To prevent a potential deadlock we need the dialog so we can lock/unlock */ (*progress)->dlg = session->inv_session->dlg; - if (!((*progress)->serializer = ast_sip_create_serializer())) { + /* Create name with seq number appended. */ + ast_taskprocessor_build_name(tps_name, sizeof(tps_name), "pjsip/refer/%s", + ast_sorcery_object_get_id(session->endpoint)); + + if (!((*progress)->serializer = ast_sip_create_serializer_named(tps_name))) { goto error; } |