diff options
| author | dumeijied <[email protected]> | 2018-11-07 14:39:11 +0800 |
|---|---|---|
| committer | dumeijied <[email protected]> | 2018-11-07 14:39:11 +0800 |
| commit | 256c0223b61c13271888e24e6b525a5f44c1db30 (patch) | |
| tree | 6fd5585512b07257f659c98a62b0802b9a024048 /src | |
| parent | d95b0344574bc94bbfa9b042095d12447421eb82 (diff) | |
2018.10.22 v4.0//alter g_sip_opt_type and add enum sip_opt_index
2018.11.02 v4.0//add timer_on
2018.11.05 v4.0//alter voip save_media frg_len>headerlen
2018.11.07 v4.0//alter json_log opt name for k
Diffstat (limited to 'src')
| -rw-r--r-- | src/frag_dedup.c | 1 | ||||
| -rw-r--r-- | src/frag_reassembly.c | 19 | ||||
| -rw-r--r-- | src/frag_reassembly_in.h | 52 | ||||
| -rw-r--r-- | src/frag_recv.c | 4 | ||||
| -rw-r--r-- | src/frag_voip.c | 110 | ||||
| -rw-r--r-- | src/frag_voip.h | 66 | ||||
| -rw-r--r-- | src/main.c | 22 | ||||
| -rw-r--r-- | src/main.h | 4 | ||||
| -rw-r--r-- | src/message.c | 2 |
9 files changed, 201 insertions, 79 deletions
diff --git a/src/frag_dedup.c b/src/frag_dedup.c index 64e9cb8..0c2d503 100644 --- a/src/frag_dedup.c +++ b/src/frag_dedup.c @@ -486,6 +486,7 @@ void proc_media_multisrc(media_t* mdi, int timeout) context, soqav_query_free_timeout, &mdi->timer_idx); + g_frag_run.multisrc_timer_on[mdi->thread_seq] = 1; if(NULL!=mdi->opt[MEDIA_OPT_URL][mdi->url_opt_index]) { query_detail->url = (char*)malloc(mdi->opt[MEDIA_OPT_URL][mdi->url_opt_index]->opt_len); diff --git a/src/frag_reassembly.c b/src/frag_reassembly.c index b3e8e91..ed0fde7 100644 --- a/src/frag_reassembly.c +++ b/src/frag_reassembly.c @@ -410,6 +410,7 @@ void set_sip_query_task(frag_unit_t* frg_unit, media_t* mdi) context, index_query_timeout_free, &mdi->index_query_timer_idx); + g_frag_run.index_query_timer_on[mdi->thread_seq] = 1; } } } @@ -467,6 +468,7 @@ void save_media_opt(frag_unit_t* frg_unit, media_t* mdi) context, index_query_timeout_free, &mdi->index_query_timer_idx); + g_frag_run.index_query_timer_on[mdi->thread_seq] = 1; } } } @@ -677,12 +679,12 @@ int media_create(frag_unit_t* frg_unit) long rec_cb = 0; /*��鶨ʱ��*/ - if(g_frag_cfg.av_dedup_switch && g_frag_run.multisrc_timer[frg_unit->thread_seq]) + if(g_frag_cfg.av_dedup_switch && g_frag_run.multisrc_timer_on[frg_unit->thread_seq] && g_frag_run.multisrc_timer[frg_unit->thread_seq]) { MESA_timer_check(g_frag_run.multisrc_timer[frg_unit->thread_seq], time(NULL), g_frag_cfg.multisrc_timer_cb_maxtime); } /*��鶨ʱ��*/ - if(g_frag_run.index_query_timer[frg_unit->thread_seq]) + if(g_frag_run.index_query_timer_on[frg_unit->thread_seq] && g_frag_run.index_query_timer[frg_unit->thread_seq]) { MESA_timer_check(g_frag_run.index_query_timer[frg_unit->thread_seq], time(NULL), g_frag_cfg.index_query_timer_cb_maxtime); } @@ -1060,11 +1062,14 @@ long media_preproc_cb(void *data, const uint8_t *key, uint size, void *user_arg) { if(g_frag_cfg.cpz_type == CPZ_VOIP) { - uint32_t datalen = frg->datalen - sizeof(voip_header_t); - char* data = (char*)calloc(1,datalen); - memcpy(data,frg->data + sizeof(voip_header_t),datalen); - IVI_seg_t* a_ivi_seg = IVI_seg_malloc(frg->offset, frg->offset + datalen - 1, data); - IVI_insert(mdi->save_ivi,a_ivi_seg); + if(frg->datalen > sizeof(voip_header_t)) + { + uint32_t datalen = frg->datalen - sizeof(voip_header_t); + char* data = (char*)calloc(1,datalen); + memcpy(data,frg->data + sizeof(voip_header_t),datalen); + IVI_seg_t* a_ivi_seg = IVI_seg_malloc(frg->offset, frg->offset + datalen - 1, data); + IVI_insert(mdi->save_ivi,a_ivi_seg); + } } else { diff --git a/src/frag_reassembly_in.h b/src/frag_reassembly_in.h index c8d3691..89ae0e6 100644 --- a/src/frag_reassembly_in.h +++ b/src/frag_reassembly_in.h @@ -16,7 +16,7 @@ #include "main.h" #include "sifter.h" #include "frag_reassembly.h" -#include "frag_reassembly_in.h" +//#include "frag_voip.h" #define LAY_ADDR_CNT 8 #define PID_MAX_LEN 64 @@ -109,9 +109,55 @@ typedef enum #define WEBMAIL_CONT_INFO_NUM 10 /*SIPѡ�����*/ -#define SIP_OPT_NUM 32 +typedef enum +{ + SIP_HMGET_INDEX,//NOT SAVE OPT + SIP_KEY_INDEX,//NOT SAVE OPT + SIP_DATA_FLAG_INDEX,//NOT SAVE OPT + SIP_RTP_4TUPLE_OPT_INDEX,//NOT SAVE OPT + SIP_URI_OPT_INDEX, + + SIP_FROM_OPT_INDEX, + SIP_TO_OPT_INDEX, + SIP_SGATEWAY_OPT_INDEX,//NOT NEED SENDBACK + SIP_CGATEWAY_OPT_INDEX,//NOT NEED SENDBACK + SIP_DURATION_OPT_INDEX, + + SIP_S_CODING_OPT_INDEX, + SIP_C_CODING_OPT_INDEX, + SIP_FROM_TAGS_OPT_INDEX, + SIP_TO_TAGS_OPT_INDEX, + SIP_CALL_ID_OPT_INDEX, + + SIP_CSEQ_OPT_INDEX, + SIP_C_CONTACT_OPT_INDEX, + SIP_S_CONTACT_OPT_INDEX, + SIP_USERAGENT_OPT_INDEX, + SIP_SERVER_OPT_INDEX,//NOT NEED SENDBACK + + SIP_C_CRYPTO_OPT_INDEX,//NOT NEED SENDBACK + SIP_C_INLINE_OPT_INDEX,//NOT NEED SENDBACK + SIP_S_CRYPTO_OPT_INDEX,//NOT NEED SENDBACK + SIP_S_INLINE_OPT_INDEX,//NOT NEED SENDBACK + SIP_RINGING_OPT_INDEX,//NOT NEED SENDBACK + + SIP_REASON_OPT_INDEX, + SIP_SIP_4TUPLE_OPT_INDEX, + SIP_S_VIA_OPT_INDEX, + SIP_S_RECORD_ROUTES_OPT_INDEX, + SIP_S_ROUTE_OPT_INDEX, + + SIP_C_VIA_OPT_INDEX, + SIP_C_RECORD_ROUTES_OPT_INDEX, + SIP_C_ROUTE_OPT_INDEX, + SIP_RESCODE_OPT_INDEX, + SIP_CAPIP_OPT_INDEX, + + SIP_OPT_NUM, +}sip_opt_index; +//#define SIP_OPT_NUM 33 /*SIP��ѯredis���������*/ -#define SIP_REDIS_CMMD_NUM 35 +//#define SIP_REDIS_CMMD_NUM 35 /*SIP��ѡ��*/ typedef struct sip_opt_s { diff --git a/src/frag_recv.c b/src/frag_recv.c index 19f3324..c907029 100644 --- a/src/frag_recv.c +++ b/src/frag_recv.c @@ -183,6 +183,7 @@ void* bizman_recv_data_to_queue(void *param) size = bizman_recv(g_frag_run.recv_bizman[tid],(char*)buf,sizeof(buf),&src_ip,&src_port,&stream_id,&is_complete); if(is_complete&BIZMAN_READ_CHUNK && size>0) { + if(g_frag_stat.sysinfo_stat[BIZMAN_RECV_QUEUE][QUEUE_CURRENT]<g_frag_cfg.bizman_queue_maxnum) { recv_data = (bizman_recv_data_t*)calloc(1, sizeof(bizman_recv_data_t)); @@ -190,12 +191,10 @@ void* bizman_recv_data_to_queue(void *param) recv_data->src_ip = src_ip; recv_data->data = (char*)malloc(size); memcpy(recv_data->data, buf, size); - /*data[15] = the last byte of PID*/ tid = recv_data->data[15]%g_frag_cfg.thread_num; lq_rec = MESA_lqueue_join_tail(g_frag_run.recv_bizman_lq[tid], &recv_data, sizeof(recv_data)); if(lq_rec==MESA_QUEUE_RET_OK) { - /*add to queue stat */ atomic_inc(&g_frag_stat.sysinfo_stat[BIZMAN_RECV_QUEUE][QUEUE_IN]); } else @@ -209,6 +208,7 @@ void* bizman_recv_data_to_queue(void *param) { atomic_inc(&g_frag_stat.stat_info[RECV_DROP][TOTAL_PKTS]); atomic_add(&g_frag_stat.stat_info[RECV_DROP][TOTAL_BYTES], size); + } atomic_inc(&g_frag_stat.stat_info[RECV][TOTAL_PKTS]); atomic_add(&g_frag_stat.stat_info[RECV][TOTAL_BYTES], size); diff --git a/src/frag_voip.c b/src/frag_voip.c index 3e2fd81..1a96981 100644 --- a/src/frag_voip.c +++ b/src/frag_voip.c @@ -49,41 +49,45 @@ extern frag_reassembly_t frag_rssb; int g_voip_fulllog_sock_fd = -1; int g_voip_surveylog_sock_fd = -1; -const char* g_sip_cmmd_argv[SIP_REDIS_CMMD_NUM] = +const char* g_sip_cmmd_argv[SIP_OPT_NUM] = { "HMGET", "", "data_flag", "RTP_4tuple", "URI", - "From", + + "From", "To", "S_gateway", "C_gateway", "Duration", - "S_coding", + + "S_coding", "C_coding", - "From_tag", "To_tag", "Call_ID", - "CSeq", + + "CSeq", "C_Contact", "S_Contact", "User_Agent", "Server", - "C_crypto", + + "C_crypto", "C_inline", "S_crypto", "S_inline", - "Ringing_time", - "Reason", + + "Reason", "SIP_4tuple", "S_Via", "S_Record_Route", "S_Route", - "C_Via", + + "C_Via", "C_Record_Route", "C_Route", "Rescode", @@ -93,40 +97,46 @@ const char* g_sip_cmmd_argv[SIP_REDIS_CMMD_NUM] = /*opt_type is fulllog opt_type*/ sip_opt_t g_sip_opt_type[SIP_OPT_NUM] = { - { "RTP_4tuple", 0xFF}, + { "HMGET", 0xFF}, + { "", 0xFF}, + { "data_flag", 0xFF}, + { "RTP_4tuple", 0xFF}, { "URI", 0x20}, + { "From", 0x25}, { "To", 0x26}, - { "S_gateway", 0xFF}, - { "C_gateway", 0xFF}, - { "Duration", 0x2A}, //6 - { "S_coding", 0x24}, //7 - { "C_coding", 0x23}, //8 - - { "From_tag", 0xFF}, //9 - { "To_tag", 0xFF}, //10 - { "Call_ID", 0xFF}, //11 - { "CSeq", 0xFF}, //12 - { "C_Contact", 0x21}, //13 - { "S_Contact", 0x21}, //14 - { "User_Agent", 0xFF}, //15 + { "S_gateway", 0xFF}, + { "C_gateway", 0xFF}, + { "Duration", 0x2A}, + + { "S_coding", 0x24}, + { "C_coding", 0x23}, + { "From_tag", 0xFF}, + { "To_tag", 0xFF}, + { "Call_ID", 0xFF}, + + { "CSeq", 0xFF}, + { "C_Contact", 0x21}, + { "S_Contact", 0x21},//14 + { "User_Agent", 0xFF}, //15 { "Server", 0xFF}, + { "C_crypto", 0xFF}, { "C_inline", 0xFF}, { "S_crypto", 0xFF}, - { "S_inline", 0xFF}, - - { "Ringing_time", 0xFF}, + { "S_inline", 0xFF}, + { "Ringing_time", 0xFF}, + { "Reason", 0xFF}, //22 - { "SIP_4tuple", 0xFF}, //23 + { "SIP_4tuple", 0xFF}, //23 { "S_Via", 0x22}, //24 - { "S_Record_Route", 0x27}, //25 + { "S_Record_Route", 0x27}, //25 { "S_Route", 0x28}, //26 + { "C_Via", 0x22}, //27 - { "C_Record_Route", 0x27}, //28 + { "C_Record_Route", 0x27}, //28 { "C_Route", 0x28}, //29 { "Rescode", 0xFF}, //30 - { "CAPIP", 0x2C}, //31 }; @@ -499,6 +509,7 @@ int sip_send_survey_log(media_t* mdi, char* survey, uint32_t survey_len) char sip_capip[128]={0}; if(NULL!=mdi->sip_opt[SIP_CAPIP_OPT_INDEX]) { + strcat(cap_ip_buf,","); memcpy(sip_capip,mdi->sip_opt[SIP_CAPIP_OPT_INDEX]->opt_value,mdi->sip_opt[SIP_CAPIP_OPT_INDEX]->opt_len); strcat(cap_ip_buf,sip_capip); } @@ -843,6 +854,7 @@ int sip_send_full_log(media_t* mdi) char sip_capip[128]={0}; if(NULL!=mdi->sip_opt[SIP_CAPIP_OPT_INDEX]) { + strcat(cap_ip_buf,","); memcpy(sip_capip,mdi->sip_opt[SIP_CAPIP_OPT_INDEX]->opt_value,mdi->sip_opt[SIP_CAPIP_OPT_INDEX]->opt_len); strcat(cap_ip_buf,sip_capip); } @@ -925,7 +937,7 @@ void send_voip_full_json_log(media_t* mdi) memset(pbuf, 0, sizeof(pbuf)); snprintf(pbuf, sizeof(pbuf), "%" PRIu64 "", mdi->lastpkt_time - mdi->create_time); - cJSON_AddStringToObject(root, "duation", pbuf); + cJSON_AddStringToObject(root, "duration", pbuf); char src_ip[32] = {0}; char src_port[8] = {0}; @@ -987,43 +999,43 @@ void send_voip_full_json_log(media_t* mdi) if(NULL!=mdi->sip_opt[SIP_C_CONTACT_OPT_INDEX]) { - cJSON_AddStringToObject(root, "Contacts", mdi->sip_opt[SIP_C_CONTACT_OPT_INDEX]->opt_value); + cJSON_AddStringToObject(root, "contacts", mdi->sip_opt[SIP_C_CONTACT_OPT_INDEX]->opt_value); } else if(NULL!=mdi->sip_opt[SIP_S_CONTACT_OPT_INDEX]) { - cJSON_AddStringToObject(root, "Contacts", mdi->sip_opt[SIP_S_CONTACT_OPT_INDEX]->opt_value); + cJSON_AddStringToObject(root, "contacts", mdi->sip_opt[SIP_S_CONTACT_OPT_INDEX]->opt_value); } if(NULL!=mdi->sip_opt[SIP_C_VIA_OPT_INDEX]) { - cJSON_AddStringToObject(root, "Via", mdi->sip_opt[SIP_C_VIA_OPT_INDEX]->opt_value); + cJSON_AddStringToObject(root, "via", mdi->sip_opt[SIP_C_VIA_OPT_INDEX]->opt_value); } else if(NULL!=mdi->sip_opt[SIP_S_VIA_OPT_INDEX]) { - cJSON_AddStringToObject(root, "Via", mdi->sip_opt[SIP_S_VIA_OPT_INDEX]->opt_value); + cJSON_AddStringToObject(root, "via", mdi->sip_opt[SIP_S_VIA_OPT_INDEX]->opt_value); } if(NULL!=mdi->sip_opt[SIP_C_ROUTE_OPT_INDEX]) { - cJSON_AddStringToObject(root, "Route", mdi->sip_opt[SIP_C_ROUTE_OPT_INDEX]->opt_value); + cJSON_AddStringToObject(root, "route", mdi->sip_opt[SIP_C_ROUTE_OPT_INDEX]->opt_value); } else if(NULL!=mdi->sip_opt[SIP_S_ROUTE_OPT_INDEX]) { - cJSON_AddStringToObject(root, "Route", mdi->sip_opt[SIP_S_ROUTE_OPT_INDEX]->opt_value); + cJSON_AddStringToObject(root, "route", mdi->sip_opt[SIP_S_ROUTE_OPT_INDEX]->opt_value); } if(NULL!=mdi->sip_opt[SIP_C_RECORD_ROUTES_OPT_INDEX]) { - cJSON_AddStringToObject(root, "Record_route", mdi->sip_opt[SIP_C_RECORD_ROUTES_OPT_INDEX]->opt_value); + cJSON_AddStringToObject(root, "record_route", mdi->sip_opt[SIP_C_RECORD_ROUTES_OPT_INDEX]->opt_value); } else if(NULL!=mdi->sip_opt[SIP_S_RECORD_ROUTES_OPT_INDEX]) { - cJSON_AddStringToObject(root, "Record_route", mdi->sip_opt[SIP_S_RECORD_ROUTES_OPT_INDEX]->opt_value); + cJSON_AddStringToObject(root, "record_route", mdi->sip_opt[SIP_S_RECORD_ROUTES_OPT_INDEX]->opt_value); } if((NULL != mdi->sip_opt[SIP_USERAGENT_OPT_INDEX])&&(mdi->sip_opt[SIP_USERAGENT_OPT_INDEX]->opt_len > 0)&&(NULL != mdi->sip_opt[SIP_USERAGENT_OPT_INDEX]->opt_value)) { - cJSON_AddStringToObject(root, "User_agent", mdi->sip_opt[SIP_USERAGENT_OPT_INDEX]->opt_value); + cJSON_AddStringToObject(root, "user_agent", mdi->sip_opt[SIP_USERAGENT_OPT_INDEX]->opt_value); } char* survey = NULL; @@ -1118,17 +1130,17 @@ int redis_sip_index_3_query(char* index_key, frag_unit_t* frg_unit, int thread_ char command[REDIS_CMMD_MAXLEN] = {0}; char* p_cmmd = command; int cmmd_len = 0; - size_t cmmd_argvlen[SIP_REDIS_CMMD_NUM] = {0}; + size_t cmmd_argvlen[SIP_OPT_NUM] = {0}; redisReply* reply = NULL; g_sip_cmmd_argv[1] = index_key; - for(int i=0;i<SIP_REDIS_CMMD_NUM;i++) + for(int i=0;i<SIP_OPT_NUM;i++) { cmmd_argvlen[i] = strlen(g_sip_cmmd_argv[i]); } /*just for record log*/ - for(int i=0;i<SIP_REDIS_CMMD_NUM;i++) + for(int i=0;i<SIP_OPT_NUM;i++) { snprintf(p_cmmd, REDIS_CMMD_MAXLEN-cmmd_len, "%s ", g_sip_cmmd_argv[i]); cmmd_len = strlen(g_sip_cmmd_argv[i])+1; @@ -1137,7 +1149,7 @@ int redis_sip_index_3_query(char* index_key, frag_unit_t* frg_unit, int thread_ MESA_handle_runtime_log(frag_rssb.logger, RLOG_LV_INFO, FRAG_REASSEMBLY_MODULE_NAME, "{%s:%d} [before %d redis cluster exec command %" PRIu64 "='%s' succ].", __FILE__,__LINE__, thread_seq, frg_unit->pid,command); - rec = redis_excute_command(thread_seq, frag_rssb.logger, &reply, command ,SIP_REDIS_CMMD_NUM, g_sip_cmmd_argv, cmmd_argvlen); + rec = redis_excute_command(thread_seq, frag_rssb.logger, &reply, command ,SIP_OPT_NUM, g_sip_cmmd_argv, cmmd_argvlen); MESA_handle_runtime_log(frag_rssb.logger, RLOG_LV_INFO, FRAG_REASSEMBLY_MODULE_NAME, "{%s:%d} [after %d redis cluster exec command %" PRIu64 "='%s' succ].", __FILE__,__LINE__, thread_seq, frg_unit->pid,command); @@ -1168,11 +1180,11 @@ int redis_sip_index_3_query(char* index_key, frag_unit_t* frg_unit, int thread_ } else { - frg_unit->sip_opt[i] = (opt_in_t*)malloc(sizeof(opt_in_t)); - frg_unit->sip_opt[i]->opt_len = reply->element[i]->len; - frg_unit->sip_opt[i]->opt_value = (char*)malloc(reply->element[i]->len); - frg_unit->sip_opt[i]->opt_type = g_sip_opt_type[i].opt_type; - memcpy(frg_unit->sip_opt[i]->opt_value, reply->element[i]->str, reply->element[i]->len); + frg_unit->sip_opt[i+2] = (opt_in_t*)malloc(sizeof(opt_in_t)); + frg_unit->sip_opt[i+2]->opt_len = reply->element[i]->len; + frg_unit->sip_opt[i+2]->opt_value = (char*)malloc(reply->element[i]->len); + frg_unit->sip_opt[i+2]->opt_type = g_sip_opt_type[i+2].opt_type; + memcpy(frg_unit->sip_opt[i+2]->opt_value, reply->element[i]->str, reply->element[i]->len); } } } diff --git a/src/frag_voip.h b/src/frag_voip.h index 90dad76..7b2b33e 100644 --- a/src/frag_voip.h +++ b/src/frag_voip.h @@ -4,6 +4,54 @@ #include "frag_reassembly_in.h" /*index in g_sip_opt_type*/ +/*typedef enum +{ + SIP_HMGET_INDEX,//NOT SAVE OPT + SIP_KEY_INDEX,//NOT SAVE OPT + SIP_DATA_FLAG_INDEX,//NOT SAVE OPT + SIP_RTP_4TUPLE_OPT_INDEX,//NOT SAVE OPT + SIP_URI_OPT_INDEX, + + SIP_FROM_OPT_INDEX, + SIP_TO_OPT_INDEX, + SIP_SGATEWAY_OPT_INDEX,//NOT NEED SENDBACK + SIP_CGATEWAY_OPT_INDEX,//NOT NEED SENDBACK + SIP_DURATION_OPT_INDEX, + + SIP_S_CODING_OPT_INDEX, + SIP_C_CODING_OPT_INDEX, + SIP_FROM_TAGS_OPT_INDEX, + SIP_TO_TAGS_OPT_INDEX, + SIP_CALL_ID_OPT_INDEX, + + SIP_CSEQ_OPT_INDEX, + SIP_C_CONTACT_OPT_INDEX, + SIP_S_CONTACT_OPT_INDEX, + SIP_USERAGENT_OPT_INDEX, + SIP_SERVER_OPT_INDEX,//NOT NEED SENDBACK + + SIP_C_CRYPTO_OPT_INDEX,//NOT NEED SENDBACK + SIP_C_INLINE_OPT_INDEX,//NOT NEED SENDBACK + SIP_S_CRYPTO_OPT_INDEX,//NOT NEED SENDBACK + SIP_S_INLINE_OPT_INDEX,//NOT NEED SENDBACK + SIP_RINGING_OPT_INDEX,//NOT NEED SENDBACK + + SIP_REASON_OPT_INDEX, + SIP_SIP_4TUPLE_OPT_INDEX, + SIP_S_VIA_OPT_INDEX, + SIP_S_RECORD_ROUTES_OPT_INDEX, + SIP_S_ROUTE_OPT_INDEX, + + SIP_C_VIA_OPT_INDEX, + SIP_C_RECORD_ROUTES_OPT_INDEX, + SIP_C_ROUTE_OPT_INDEX, + SIP_RESCODE_OPT_INDEX, + SIP_CAPIP_OPT_INDEX, + + SIP_OPT_NUM, +}sip_opt_index; + +#define SIP_OPT_MAXNUM 16 #define SIP_CALL_ID_OPT_INDEX 11 #define SIP_FROM_TAGS_OPT_INDEX 9 #define SIP_TO_TAGS_OPT_INDEX 10 @@ -28,6 +76,7 @@ #define SIP_SIP_4TUPLE_OPT_INDEX 23 #define SIP_DURATION_OPT_INDEX 6 #define SIP_CAPIP_OPT_INDEX 31 +*/ #define SIP_PROTO_SIP "SIP-RTP" #define SIP_PROTO_RTP "RTP" @@ -35,7 +84,6 @@ #define SIP_PROTO_OPT "SIP" /*ȫ����־�����ѡ�����*/ -#define SIP_OPT_MAXNUM 16 /*voip��־��Ϣͷsip_log_msg_header_t*/ #define SIP_LOG_CONT_CODE_NOTHING 0 #define SIP_LOG_VERSION 3 @@ -47,25 +95,25 @@ #define SIP_SURVEYLOG_MSG_TYPE 0x21 /*ȫ����־����g_sip_opt_type*/ -#define OPT_VOIP_PID 0x29 +#define OPT_VOIP_PID 0x29 #define OPT_VOIP_DUATION_FULLLOG 0x2A #define OPT_VOIP_VOICE_DIR_FULLLOG 0x2B #define OPT_VOIP_CAP_IP_FULLLOG 0x2C /*�����־ѡ������*/ -#define OPT_LAYER_ADDR_V4 0x3B //0x3B:RTP, 0x2D:SIP, change -#define OPT_VOIP_RECV_TIME 0x2F -#define OPT_VOIP_DUATION 0x30 -#define OPT_VOIP_PROTOCOL 0x31 +#define OPT_LAYER_ADDR_V4 0x3B //0x3B:RTP, 0x2D:SIP, change +#define OPT_VOIP_RECV_TIME 0x2F +#define OPT_VOIP_DUATION 0x30 +#define OPT_VOIP_PROTOCOL 0x31 #define OPT_VOIP_CALLING_ACCOUNT 0x32 #define OPT_VOIP_CALLED_ACCOUNT 0x33 -#define OPT_VOIP_RELATION_RTP_LAYER_ADDR_V4 0x2D //0x3B:RTP, 0x2D:SIP, change +#define OPT_VOIP_RELATION_RTP_LAYER_ADDR_V4 0x2D //0x3B:RTP, 0x2D:SIP, change #define OPT_VOIP_FROM_TO_STORE_IP 0x36 #define OPT_VOIP_FROM_TO_STORE_URL 0x37 #define OPT_VOIP_TO_FROM_STORE_IP 0x38 #define OPT_VOIP_TO_FROM_STORE_URL 0x39 -#define OPT_VOIP_VOICE_DIR 0x3C -#define OPT_VOIP_CAP_IP 0x3D +#define OPT_VOIP_VOICE_DIR 0x3C +#define OPT_VOIP_CAP_IP 0x3D /*sip_sendlog_flag*/ #define SIP_SEND_FULL_LOG 0x01 @@ -42,9 +42,9 @@ const char* frag_rssb_version = "2018-08-13T09:00:00"; const char* frag_rssb_version_time = "2018-08-13T09:00:00"; const char* frag_rssb_version_des = "MESA@iie rssb_maskey"; -int FRAG_RSSB_VERSION_1_0_20181008 = 0; -const char* frag_rssb_version_time_in = "2018-10-08"; -const char* frag_rssb_version_des_in = "hard balance"; +int FRAG_RSSB_VERSION_1_0_20181107 = 0; +const char* frag_rssb_version_time_in = "2018-11-07"; +const char* frag_rssb_version_des_in = "alter json_log opt name for k"; void frag_rssb_history() { //2015.11.15 v1.0 create the project @@ -219,6 +219,10 @@ void frag_rssb_history() //2018.09.20 v4.0//1 voip_fulllog add voice_dir opt //2018.09.27 v4.0 //1. hard balance //2018.10.08 v4.0//1.add send_voip_full_json_log for K_PROJECT;2.voip_fulllog and voip_surveylog add voice_dir and cap_ip opt + //2018.10.22 v4.0//alter g_sip_opt_type and add enum sip_opt_index + //2018.11.02 v4.0//add timer_on + //2018.11.05 v4.0//alter voip save_media frg_len>headerlen + //2018.11.07 v4.0//alter json_log opt name for k } frag_rssb_parameter_t g_frag_run; @@ -1258,19 +1262,23 @@ int main(int argc, char **argv) else { g_frag_run.recv_bizman_lq = (MESA_lqueue_head*)calloc(1, g_frag_cfg.thread_num*sizeof(MESA_lqueue_head)); - for(i=0;i<g_frag_cfg.thread_num;i++) - { + + for(i=0;i<g_frag_cfg.thread_num;i++) + { g_frag_run.recv_bizman_lq[i] = MESA_lqueue_create(1, 0); + } + for(i=0;i<g_frag_cfg.thread_num;i++) + { if(-1 == create_pthread(bizman_recv_data_to_queue, (void*)i, g_frag_run.logger)) { MESA_handle_runtime_log(g_frag_run.logger, RLOG_LV_FATAL, FRAG_REASSEMBLY_MODULE_NAME, (char*)"[%s:%d] Thread bizman_recv_data_to_queue Create Failed." , __FILE__,__LINE__,FRAG_REASSEMBLY_MODULE_NAME); return -1; } - } + } for(i=0;i<g_frag_cfg.thread_num;i++) - { + { if(-1 == create_pthread(bizman_recv_data_from_queue,(void*)i,g_frag_run.logger)) { MESA_handle_runtime_log(g_frag_run.logger, RLOG_LV_FATAL, FRAG_REASSEMBLY_MODULE_NAME, @@ -5,7 +5,7 @@ #include </usr/include/stdint.h> #define APP_FUNC 0 //�ֻ�APP -#define VOIP_FUNC 0 //VOIP ��Ҫ�������ļ���һ�� +#define VOIP_FUNC 1 //VOIP ��Ҫ�������ļ���һ�� #define PIC_FUNC 0 //PIC ��Ҫ�������ļ���һ�� #include "MESA_list_queue.h" @@ -62,11 +62,13 @@ typedef struct frag_rssb_parameter_s MESA_htable_handle media_hash; //media_hash MESA_timer_t* index_query_timer[MAX_THREAD_NUM]; + char index_query_timer_on[MAX_THREAD_NUM]; /*��Դ����ҵ��*/ void* dedup_hd; //av_dedup_handle void* dedup_logger; //av_dedup log MESA_timer_t* multisrc_timer[MAX_THREAD_NUM]; + char multisrc_timer_on[MAX_THREAD_NUM]; KafkaProducer* kafka_producer; //kafka diff --git a/src/message.c b/src/message.c index a159d55..f3a1a07 100644 --- a/src/message.c +++ b/src/message.c @@ -409,7 +409,7 @@ void send_json_log(media_t* mdi, resp_checkresult_t* check_res) memset(pbuf, 0, sizeof(pbuf));
snprintf(pbuf, sizeof(pbuf), "%" PRIu64 "", mdi->lastpkt_time - mdi->create_time);
- cJSON_AddStringToObject(root, "duation", pbuf);
+ cJSON_AddStringToObject(root, "duration", pbuf);
if((NULL != mdi->sip_opt[SIP_FROM_OPT_INDEX])&&(mdi->sip_opt[SIP_FROM_OPT_INDEX]->opt_len > 0)&&(NULL != mdi->sip_opt[SIP_FROM_OPT_INDEX]->opt_value))
{
|
