Send Info Message with defined body

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi guys,

I’ll try to send an Sip Info message on PJSIP_INV_STATE_CONFIRMED state during enstablished dialog.

On on_call_state(…) pjsua Callback I have introduced the following code but I obtained a crash:

 

void PjCallback::on_call_state(pjsua_call_id call_id, pjsip_event *e) {

 

     pj_status_t status;

 

     //Obtain detail information about the specified call

     pjsua_call_info ci;

     status = pjsua_call_get_info(call_id, &ci);

 

     //Obtain detail information about the specified call

pjsip_tx_data tdata;

 

//Pointer to tdata

     pjsip_tx_data  *pTdata;

//take the address of tdata

     pTdata = &tdata;

 

//Pointer to pointer tdata

     pjsip_tx_data  **ppTdata;

//take the address of pTdata using address of operator &

     ppTdata = &pTdata;

 

     //Get incoming message buffer

     pjsip_rx_data *rdata;

     rdata = e->body.tsx_state.src.rdata;

    

     //Get pjsip_dialog

pjsip_dialog *dlg;

     dlg = pjsip_rdata_get_dlg(rdata);

 

     //Get endpoint

     pjsip_endpoint *endpt = pjsua_get_pjsip_endpt();

 

     //Define standard xml to send in Info Sip body message

     pj_str_t xmlString = pj_str("<note>

<to>Tove</to>

<from>Jani</from>

<heading>Reminder</heading>

<body>Don't forget me this weekend!</body>

</note>");

     pj_str_t typeMessage = pj_str("text");

     pj_str_t subtypeMessage = pj_str("xml");

 

     pj_pool_t *poolTest;

     poolTest = pjsua_pool_create("infoMessage", 1000, 1000);

     pjsip_msg_body *createMessageBody;

    

     char dup[1500];

    

     switch(ci.state) {

     case PJSIP_INV_STATE_CONFIRMED:                 

           //Body Sip Info message

           createMessageBody = pjsip_msg_body_create(poolTest, &typeMessage, &subtypeMessage, &xmlString);

           pjsip_print_text_body(createMessageBody, dup, sizeof(dup));

          

           //Create dialog request

           status = pjsip_dlg_create_request(dlg, &pjsip_info_method, -1, ppTdata);

           if (status == PJ_SUCCESS) {

                //Send request (send Info message

                status = pjsip_dlg_send_request(dlg, pTdata, -1, NULL);

           }

           break;    

     default:

           ;

     }

}

 

I get a crash when I call pjsip_msg_body_create function. Where is the problem? Thanks in advice.

 

Best Regards

Ll

_______________________________________________
Visit our blog: http://blog.pjsip.org

pjsip mailing list
pjsip@xxxxxxxxxxxxxxx
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org

[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux