static void init_sdp_parser(void) { if (is_initialized != 0) return; pj_enter_critical_section(); if (is_initialized != 0) { pj_leave_critical_section(); return; } pj_cis_buf_init(&cis_buf); pj_cis_init(&cis_buf, &cs_token); pj_cis_add_alpha(&cs_token); pj_cis_add_num(&cs_token); pj_cis_add_str(&cs_token, TOKEN); pj_cis_init(&cis_buf, &cs_digit); pj_cis_add_num(&cs_digit); is_initialized = 1; pj_leave_critical_section(); }
pj_status_t pjsip_tel_uri_subsys_init(void) { pj_status_t status; pj_cis_buf_init(&cis_buf); status = pj_cis_init(&cis_buf, &pjsip_TEL_EXT_VALUE_SPEC); PJ_ASSERT_RETURN(status==PJ_SUCCESS, status); pj_cis_add_str(&pjsip_TEL_EXT_VALUE_SPEC, PHONE_DIGITS); status = pj_cis_init(&cis_buf, &pjsip_TEL_NUMBER_SPEC); PJ_ASSERT_RETURN(status==PJ_SUCCESS, status); pj_cis_add_str(&pjsip_TEL_NUMBER_SPEC, NUMBER_SPEC); status = pj_cis_init(&cis_buf, &pjsip_TEL_VISUAL_SEP_SPEC); PJ_ASSERT_RETURN(status==PJ_SUCCESS, status); pj_cis_add_str(&pjsip_TEL_VISUAL_SEP_SPEC, VISUAL_SEP); status = pj_cis_init(&cis_buf, &pjsip_TEL_PHONE_CONTEXT_SPEC); PJ_ASSERT_RETURN(status==PJ_SUCCESS, status); pj_cis_add_alpha(&pjsip_TEL_PHONE_CONTEXT_SPEC); pj_cis_add_num(&pjsip_TEL_PHONE_CONTEXT_SPEC); pj_cis_add_str(&pjsip_TEL_PHONE_CONTEXT_SPEC, PHONE_CONTEXT); status = pj_cis_init(&cis_buf, &pjsip_TEL_URIC_SPEC); PJ_ASSERT_RETURN(status==PJ_SUCCESS, status); pj_cis_add_alpha(&pjsip_TEL_URIC_SPEC); pj_cis_add_num(&pjsip_TEL_URIC_SPEC); pj_cis_add_str(&pjsip_TEL_URIC_SPEC, URIC); status = pj_cis_init(&cis_buf, &pjsip_TEL_PNAME_SPEC); PJ_ASSERT_RETURN(status==PJ_SUCCESS, status); pj_cis_add_alpha(&pjsip_TEL_PNAME_SPEC); pj_cis_add_num(&pjsip_TEL_PNAME_SPEC); pj_cis_add_str(&pjsip_TEL_PNAME_SPEC, "-"); status = pj_cis_init(&cis_buf, &pjsip_TEL_PVALUE_SPEC); PJ_ASSERT_RETURN(status==PJ_SUCCESS, status); pj_cis_add_alpha(&pjsip_TEL_PVALUE_SPEC); pj_cis_add_num(&pjsip_TEL_PVALUE_SPEC); pj_cis_add_str(&pjsip_TEL_PVALUE_SPEC, PARAM_CHAR); status = pj_cis_dup(&pjsip_TEL_PVALUE_SPEC_ESC, &pjsip_TEL_PVALUE_SPEC); pj_cis_del_str(&pjsip_TEL_PVALUE_SPEC_ESC, "%"); status = pj_cis_dup(&pjsip_TEL_PARSING_PVALUE_SPEC, &pjsip_TEL_URIC_SPEC); PJ_ASSERT_RETURN(status==PJ_SUCCESS, status); pj_cis_add_cis(&pjsip_TEL_PARSING_PVALUE_SPEC, &pjsip_TEL_PVALUE_SPEC); pj_cis_add_str(&pjsip_TEL_PARSING_PVALUE_SPEC, "="); status = pj_cis_dup(&pjsip_TEL_PARSING_PVALUE_SPEC_ESC, &pjsip_TEL_PARSING_PVALUE_SPEC); pj_cis_del_str(&pjsip_TEL_PARSING_PVALUE_SPEC_ESC, "%"); status = pjsip_register_uri_parser("tel", &tel_uri_parse); PJ_ASSERT_RETURN(status==PJ_SUCCESS, status); return PJ_SUCCESS; }
void add_num() { pj_cis_add_num(&cis_); }