int b2b_bridge_request(struct sip_msg* msg, str* p1, str* p2) { pv_value_t pv_val; str key = {NULL, 0}; int entity_no; if (p1 && (pv_get_spec_value(msg, (pv_spec_t *)p1, &pv_val) == 0)) { if (pv_val.flags & PV_VAL_STR) { LM_DBG("got key:'%.*s'\n", pv_val.rs.len, pv_val.rs.s); key = pv_val.rs; } else { LM_ERR("Unable to get key from PV that is not a string\n"); return -1; } } else { LM_ERR("Unable to get key from pv:%p\n", p1); return -1; } if (p2 && (pv_get_spec_value(msg, (pv_spec_t *)p2, &pv_val) == 0)) { if (pv_val.flags & PV_VAL_INT) { entity_no = pv_val.ri; LM_DBG("got entity_no %d\n", entity_no); } else if (pv_val.flags & PV_VAL_STR) { if(str2int(&(pv_val.rs), (unsigned int*)&entity_no) != 0) { LM_ERR("Unable to get entity_no from pv '%.*s'i\n", pv_val.rs.len, pv_val.rs.s); return -1; } } else { LM_ERR("second pv not a str or int type\n"); return -1; } } else { LM_ERR("Unable to get entity from pv:%p\n", p1); return -1; } return b2bl_bridge_msg(msg, &key, entity_no); }
int b2b_bridge_request(struct sip_msg* msg, str *key, int *entity_no) { return b2bl_bridge_msg(msg, key, *entity_no); }