diff options
Diffstat (limited to 'pjsip-apps/src/samples/siprtp.c')
-rw-r--r-- | pjsip-apps/src/samples/siprtp.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/pjsip-apps/src/samples/siprtp.c b/pjsip-apps/src/samples/siprtp.c index 262e2033..8e74c338 100644 --- a/pjsip-apps/src/samples/siprtp.c +++ b/pjsip-apps/src/samples/siprtp.c @@ -637,8 +637,8 @@ static void process_incoming_call(pjsip_rx_data *rdata) } /* Create UAS dialog */ - status = pjsip_dlg_create_uas( pjsip_ua_instance(), rdata, - &app.local_contact, &dlg); + status = pjsip_dlg_create_uas_and_inc_lock( pjsip_ua_instance(), rdata, + &app.local_contact, &dlg); if (status != PJ_SUCCESS) { const pj_str_t reason = pj_str("Unable to create dialog"); pjsip_endpt_respond_stateless( app.sip_endpt, rdata, @@ -655,9 +655,12 @@ static void process_incoming_call(pjsip_rx_data *rdata) if (status != PJ_SUCCESS) { pjsip_dlg_create_response(dlg, rdata, 500, NULL, &tdata); pjsip_dlg_send_response(dlg, pjsip_rdata_get_tsx(rdata), tdata); + pjsip_dlg_dec_lock(dlg); return; } + /* Invite session has been created, decrement & release dialog lock */ + pjsip_dlg_dec_lock(dlg); /* Attach call data to invite session */ call->inv->mod_data[mod_siprtp.id] = call; |