PJSIP添加多个头 [英] PjSip Add multiple headers
本文介绍了PJSIP添加多个头的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我开发利用PJSIP作为SIP堆栈我手机在VoIP应用程序,我想添加自定义页眉是能够增加,但只有一个被添加,我坚持我下架不什么是错,下面是我的$ ç$ C段
pj_status_t状态= PJ_SUCCESS;
pj_str_t pj_uri; pjsua_msg_data msg_data;
pjsip_generic_string_hdr主题;
pj_str_t hvalue,hname; pj_uri = pj_str((字符*),URI);
对(在[标题allKeys]的NSString *键){ 的NSLog(@呼叫%@%@ Call.m键值键,[标题objectForKey:键]); pjsua_msg_data_init(安培; msg_data); hname = pj_str((字符*)键UTF8字符串]); 字符* headerValue =(的char *)[(的NSString *)[头objectForKey:键] UTF8字符串] hvalue = pj_str(headerValue);
pjsip_generic_string_hdr_init2(安培;主体,与放大器; hname,&安培; hvalue);
pj_list_push_back(安培; msg_data.hdr_list,&安培;一级学科); }
状态= pjsua_call_make_call(ACC_ID,&安培; pj_uri,0,NULL,&安培; msg_data,CALL_ID);
解决方案
我又结束了回答我的问题,赢得了
生病竖起code这wrks
pj_caching_pool CP;
pj_pool_t *池;
pj_status_t状态= PJ_SUCCESS;
pj_str_t pj_uri; pjsua_msg_data msg_data;
pjsua_msg_data_init(安培; msg_data);
pj_uri = pj_str((字符*),URI);
pj_caching_pool_init(&放大器; CP,&放大器; pj_pool_factory_default_policy,0);
池= pj_pool_create(安培; cp.factory,头,1000,1000,NULL); 对(在[标题allKeys]的NSString *键){ 的NSLog(@呼叫%@%@ Call.m键值键,[标题objectForKey:键]);
pj_str_t hname = pj_str((字符*)键UTF8字符串]);
字符* headerValue =(的char *)[(的NSString *)[头objectForKey:键] UTF8字符串]
pj_str_t hvalue = pj_str(headerValue);
pjsip_generic_string_hdr * add_hdr = pjsip_generic_string_hdr_create(游泳池,和放大器; hname,&安培; hvalue);
pj_list_push_back(安培; msg_data.hdr_list,add_hdr);
}
状态= pjsua_call_make_call(ACC_ID,&安培; pj_uri,0,NULL,&安培; msg_data,CALL_ID);
pj_pool_release(池);
I am developing a voip app for I-phone using pjsip as sip stack, and i want to add custom headers am able to add, but only one gets added, am stuck i dont under stand whats wrong, below is my code snippet
pj_status_t status = PJ_SUCCESS;
pj_str_t pj_uri;
pjsua_msg_data msg_data;
pjsip_generic_string_hdr subject;
pj_str_t hvalue, hname;
pj_uri = pj_str((char *)uri);
for(NSString *key in [headers allKeys]){
NSLog(@"Call.m key value in call %@,%@",key,[headers objectForKey:key] );
pjsua_msg_data_init(&msg_data);
hname = pj_str((char *)[key UTF8String]);
char * headerValue=(char *)[(NSString *)[headers objectForKey:key] UTF8String];
hvalue = pj_str(headerValue);
pjsip_generic_string_hdr_init2 (&subject, &hname, &hvalue);
pj_list_push_back(&msg_data.hdr_list, &subject);
}
status = pjsua_call_make_call(acc_id, &pj_uri, 0, NULL, &msg_data, call_id);
解决方案
Again I end up answering my won question.
Ill put up the code which wrks
pj_caching_pool cp;
pj_pool_t *pool;
pj_status_t status = PJ_SUCCESS;
pj_str_t pj_uri;
pjsua_msg_data msg_data;
pjsua_msg_data_init(&msg_data);
pj_uri = pj_str((char *)uri);
pj_caching_pool_init(&cp, &pj_pool_factory_default_policy, 0);
pool= pj_pool_create(&cp.factory, "header", 1000, 1000, NULL);
for(NSString *key in [headers allKeys]){
NSLog(@"Call.m key value in call %@,%@",key,[headers objectForKey:key] );
pj_str_t hname = pj_str((char *)[key UTF8String]);
char * headerValue=(char *)[(NSString *)[headers objectForKey:key] UTF8String];
pj_str_t hvalue = pj_str(headerValue);
pjsip_generic_string_hdr* add_hdr = pjsip_generic_string_hdr_create(pool, &hname, &hvalue);
pj_list_push_back(&msg_data.hdr_list, add_hdr);
}
status = pjsua_call_make_call(acc_id, &pj_uri, 0, NULL, &msg_data, call_id);
pj_pool_release(pool);
这篇关于PJSIP添加多个头的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文