Exemple #1
0
void on_adv_info_riuc(adv_server_t *adv_server, adv_request_t *request, char *caddr_str) {
    node_t *node = adv_server->user_data;

    int i;
    void *found = NULL;
    int idx;
    int *pidx;

    for (i = 0; i < MAX_NODE; i++) {
        SHOW_LOG(3, "LIST TABLE\n");
        ht_list_item(&node[i].group_table);
        SHOW_LOG(3, "=========== NODE :%s ========\n", node[i].id);
        found = node_in_group(&node[i], "OIUC-FEDORA");
        SHOW_LOG(3, "node_id: %s, adv_owner:%s, found:%d \n", node[i].id, "OIUC-FEDORA", found);
        found = node_in_group(&node[i], "OIUC-UBUNTU");
        SHOW_LOG(3, "node_id: %s, adv_owner:%s, found:%d \n", node[i].id, "OIUC-UBUNTU", found);
        SHOW_LOG(3, "=============================\n");
    }

    for (i = 0; i < MAX_NODE; i++) {
        found = node_in_group(&node[i], request->adv_info.adv_owner);
    
        if (found != NULL) {
            SHOW_LOG(3, "New session: %s(%s:%d)\n", request->adv_info.adv_owner, request->adv_info.sdp_mip, request->adv_info.sdp_port);

            if(!node_has_media(&node[i])) {
                SHOW_LOG(1, "Node does not have media endpoints configured\n");
                return;
            }

            pidx = (int *)ht_get_item(&node[i].group_table, request->adv_info.adv_owner);
            if (pidx != NULL) {
                idx = *pidx;
                //idx = *((int *)ht_get_item(&node[i].group_table, request->adv_info.adv_owner);
                SHOW_LOG(3, "idx(ht_get_item): %d for owner: %s\n", idx, request->adv_info.adv_owner);
#if 1
                if( request->adv_info.sdp_port > 0 ) {
                    receiver_stop(node[i].receiver, idx);

                    //for (i = 0; i < node->receiver->nstreams; i++) {
                    receiver_config_stream(node[i].receiver, request->adv_info.sdp_mip, request->adv_info.sdp_port, idx);
                    //}

                    receiver_start(node[i].receiver);
                    riuc4_on_ptt(&riuc_data.riuc4, node[i].radio_port);
                }
                else {
                    receiver_stop(node[i].receiver, idx);
                    riuc4_off_ptt(&riuc_data.riuc4, node[i].radio_port);
                }
                usleep(250*1000);
            }
#endif
        }
    }
}
Exemple #2
0
void
server_stop ()
{
  _server_is_stopped = true;
  receiver_stop ();
}