外呼电话的时候,添加自定义的字段
pjsip 的写法是
pjsua_msg_data msg_data;
pjsua_msg_data_init(&msg_data);
pj_caching_pool cp;
pj_pool_t *pool;
pj_caching_pool_init(&cp, &pj_pool_factory_default_policy, 0);
pool = pj_pool_create(&cp.factory, "header", 1000, 1000, NULL);
pj_str_t hname = StrToPjStr("X-MyHeader");
pj_str_t hvalue = StrToPjStr(callHeader);
pjsip_generic_string_hdr* add_hdr = pjsip_generic_string_hdr_create(pool, &hname, &hvalue);
pj_list_push_back(&msg_data.hdr_list, add_hdr);
pj_status_t status = pjsua_call_make_call(
acc_id,
&pj_uri,
&call_setting,
NULL,
&msg_data,
&call_id);
free(hname.ptr);
free(hvalue.ptr);
free(pj_uri.ptr);
注意:只关注 msg_data 这个变量
这样就添加了一个sip头部的字段 “X-MyHeader”:“xxxxxxxxx”
pjsua2使用方法是
CallOpParam prm(true);//使用默认的值
//将这些值添加到sip头部里去
std::string t_value = strcbsn.toStdString();
SipHeader t_oneHeader;
t_oneHeader.hName = "X-MyHeader";
t_oneHeader.hValue = strcbsn.toStdString();
prm.txOption.headers.push_back(t_oneHeader);
makeCall(dst_uri,prm);
简洁了很多,就是难找。