Changeset 3901 for pjproject/trunk/pjsip/src/pjsua-lib/pjsua_call.c
- Timestamp:
- Dec 7, 2011 10:43:28 AM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjsip/src/pjsua-lib/pjsua_call.c
r3892 r3901 35 35 #define LOCK_CODEC_MAX_RETRY 5 36 36 37 38 /* 39 * The INFO method. 40 */ 41 const pjsip_method pjsip_info_method = 42 { 43 PJSIP_OTHER_METHOD, 44 { "INFO", 4 } 45 }; 46 47 37 48 /* This callback receives notification from invite session when the 38 49 * session state has changed. … … 501 512 #if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0) 502 513 opt->video_cnt = 1; 503 //{ 504 // unsigned i; 505 // for (i = 0; i < PJ_ARRAY_SIZE(opt->vid_cap_dev); ++i) 506 // opt->vid_cap_dev[i] = PJMEDIA_VID_DEFAULT_CAPTURE_DEV; 507 //} 514 opt->req_keyframe_method = PJSUA_VID_REQ_KEYFRAME_SIP_INFO | 515 PJSUA_VID_REQ_KEYFRAME_RTCP_PLI; 508 516 #endif 509 517 } … … 4191 4199 call->index, tsx->status_code)); 4192 4200 } 4201 } else if (tsx->role==PJSIP_ROLE_UAS && 4202 tsx->state==PJSIP_TSX_STATE_TRYING && 4203 pjsip_method_cmp(&tsx->method, &pjsip_info_method)==0) 4204 { 4205 /* 4206 * Incoming INFO request for media control. 4207 */ 4208 const pj_str_t STR_APPLICATION = { "application", 11}; 4209 const pj_str_t STR_MEDIA_CONTROL_XML = { "media_control+xml", 17 }; 4210 pjsip_rx_data *rdata = e->body.tsx_state.src.rdata; 4211 pjsip_msg_body *body = rdata->msg_info.msg->body; 4212 4213 if (body && body->len && 4214 pj_stricmp(&body->content_type.type, &STR_APPLICATION)==0 && 4215 pj_stricmp(&body->content_type.subtype, &STR_MEDIA_CONTROL_XML)==0) 4216 { 4217 pjsip_tx_data *tdata; 4218 pj_str_t control_st; 4219 pj_status_t status; 4220 4221 /* Apply and answer the INFO request */ 4222 pj_strset(&control_st, (char*)body->data, body->len); 4223 status = pjsua_media_apply_xml_control(call->index, &control_st); 4224 if (status == PJ_SUCCESS) { 4225 status = pjsip_endpt_create_response(tsx->endpt, rdata, 4226 200, NULL, &tdata); 4227 if (status == PJ_SUCCESS) 4228 status = pjsip_tsx_send_msg(tsx, tdata); 4229 } else { 4230 status = pjsip_endpt_create_response(tsx->endpt, rdata, 4231 400, NULL, &tdata); 4232 if (status == PJ_SUCCESS) 4233 status = pjsip_tsx_send_msg(tsx, tdata); 4234 } 4235 } 4193 4236 } 4194 4237
Note: See TracChangeset
for help on using the changeset viewer.