From 9c6c63de6a5564b32ee1239bb77ef605c8a69837 Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Thu, 2 Mar 2006 21:14:16 +0000 Subject: Added optional header and body in pjsip_dlg_respond git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@265 74dad513-b988-da41-8d7b-12977e46ad98 --- pjsip/include/pjsip/sip_dialog.h | 8 +++++--- pjsip/src/pjsip/sip_dialog.c | 21 ++++++++++++++++++++- 2 files changed, 25 insertions(+), 4 deletions(-) (limited to 'pjsip') diff --git a/pjsip/include/pjsip/sip_dialog.h b/pjsip/include/pjsip/sip_dialog.h index d4454a8e..27ea7980 100644 --- a/pjsip/include/pjsip/sip_dialog.h +++ b/pjsip/include/pjsip/sip_dialog.h @@ -321,9 +321,9 @@ PJ_DECL(pj_status_t) pjsip_dlg_send_response( pjsip_dialog *dlg, /** * This composite function sends response message statefully to an incoming - * request message. + * request message inside dialog. * - * @param endpt The endpoint instance. + * @param dlg The endpoint instance. * @param rdata The incoming request message. * @param st_code Status code of the response. * @param st_text Optional status text of the response. @@ -336,7 +336,9 @@ PJ_DECL(pj_status_t) pjsip_dlg_send_response( pjsip_dialog *dlg, PJ_DECL(pj_status_t) pjsip_dlg_respond( pjsip_dialog *dlg, pjsip_rx_data *rdata, int st_code, - const pj_str_t *st_text); + const pj_str_t *st_text, + const pjsip_hdr *hdr_list, + const pjsip_msg_body *body ); /* * Internal (called by sip_ua_layer.c) diff --git a/pjsip/src/pjsip/sip_dialog.c b/pjsip/src/pjsip/sip_dialog.c index 5a61100a..4139b221 100644 --- a/pjsip/src/pjsip/sip_dialog.c +++ b/pjsip/src/pjsip/sip_dialog.c @@ -1194,7 +1194,9 @@ PJ_DEF(pj_status_t) pjsip_dlg_send_response( pjsip_dialog *dlg, PJ_DEF(pj_status_t) pjsip_dlg_respond( pjsip_dialog *dlg, pjsip_rx_data *rdata, int st_code, - const pj_str_t *st_text ) + const pj_str_t *st_text, + const pjsip_hdr *hdr_list, + const pjsip_msg_body *body ) { pj_status_t status; pjsip_tx_data *tdata; @@ -1214,6 +1216,23 @@ PJ_DEF(pj_status_t) pjsip_dlg_respond( pjsip_dialog *dlg, if (status != PJ_SUCCESS) return status; + /* Add additional header, if any */ + if (hdr_list) { + const pjsip_hdr *hdr; + + hdr = hdr_list->next; + while (hdr != hdr_list) { + pjsip_msg_add_hdr(tdata->msg, + pjsip_hdr_clone(tdata->pool, hdr)); + hdr = hdr->next; + } + } + + /* Add the message body, if any. */ + if (body) { + tdata->msg->body = pjsip_msg_body_clone( tdata->pool, body); + } + /* Send the response. */ return pjsip_dlg_send_response(dlg, pjsip_rdata_get_tsx(rdata), tdata); } -- cgit v1.2.3