diff --git a/res/res_pjsip.c b/res/res_pjsip.c index db33a4e12cc2409fda49be16ae396a67ad46da87..0a2e79c67c5bf4ca2eab4ab140126f56ddf41172 100644 --- a/res/res_pjsip.c +++ b/res/res_pjsip.c @@ -4056,6 +4056,7 @@ pjsip_dialog *ast_sip_create_dialog_uac(const struct ast_sip_endpoint *endpoint, const char *outbound_proxy = endpoint->outbound_proxy; pjsip_tpselector selector = { .type = PJSIP_TPSELECTOR_NONE, }; static const pj_str_t HCONTACT = { "Contact", 7 }; + const char *fromuser; snprintf(enclosed_uri, sizeof(enclosed_uri), "<%s>", uri); pj_cstr(&remote_uri, enclosed_uri); @@ -4083,7 +4084,8 @@ pjsip_dialog *ast_sip_create_dialog_uac(const struct ast_sip_endpoint *endpoint, ast_sip_dlg_set_transport(endpoint, dlg, &selector); - if (sip_dialog_create_from(dlg->pool, &local_uri, endpoint->fromuser, endpoint->fromdomain, &remote_uri, &selector)) { + fromuser = ast_strlen_zero(endpoint->fromuser) ? endpoint->contact_user : endpoint->fromuser; + if (sip_dialog_create_from(dlg->pool, &local_uri, fromuser, endpoint->fromdomain, &remote_uri, &selector)) { dlg->sess_count--; pjsip_dlg_terminate(dlg); ast_sip_tpselector_unref(&selector);