/* * Find buddy. */ static pjsua_buddy_id pjsua_find_buddy(const pjsip_uri *uri) { const pjsip_sip_uri *sip_uri; unsigned i; uri = (const pjsip_uri*) pjsip_uri_get_uri((pjsip_uri*)uri); if (!PJSIP_URI_SCHEME_IS_SIP(uri) && !PJSIP_URI_SCHEME_IS_SIPS(uri)) return PJSUA_INVALID_ID; sip_uri = (const pjsip_sip_uri*) uri; for (i=0; i<PJ_ARRAY_SIZE(pjsua_var.buddy); ++i) { const pjsua_buddy *b = &pjsua_var.buddy[i]; if (!pjsua_buddy_is_valid(i)) continue; if (pj_stricmp(&sip_uri->user, &b->name)==0 && pj_stricmp(&sip_uri->host, &b->host)==0 && (sip_uri->port==(int)b->port || (sip_uri->port==0 && b->port==5060))) { /* Match */ return i; } } return PJSUA_INVALID_ID; }
static void ui_delete_buddy() { char buf[128]; int i; if (!simple_input("Enter buddy ID to delete", buf, sizeof(buf))) return; i = my_atoi(buf) - 1; if (!pjsua_buddy_is_valid(i)) { printf("Invalid buddy id %d\n", i); } else { pjsua_buddy_del(i); printf("Buddy %d deleted\n", i); } }