static int mod_init(void) { bind_usrloc_t ul_bind_usrloc; if (natpingInterval > 0) { ul_bind_usrloc = (bind_usrloc_t)find_export("ul_bind_usrloc", 1, 0); if (!ul_bind_usrloc) { LOG(L_ERR, "error: mediaproxy/mod_init(): can't find the usrloc " "module. Check if usrloc.so is loaded.\n"); return -1; } if (ul_bind_usrloc(&userLocation) < 0) { LOG(L_ERR, "error: mediaproxy/mod_init(): can't access the usrloc module.\n"); return -1; } register_timer(pingClients, NULL, natpingInterval); } checkAsymmetricFile(&sipAsymmetrics); checkAsymmetricFile(&rtpAsymmetrics); // children won't benefit from this. figure another way //register_timer(checkAsymmetricFiles, NULL, 5); return 0; }
static int mod_init(void) { bind_usrloc_t ul_bind_usrloc; pv_spec_t avp_spec; // initialize the signaling_ip_avp structure if (signaling_ip_avp.spec.s==NULL || *(signaling_ip_avp.spec.s)==0) { LM_WARN("missing/empty signaling_ip_avp parameter. will use default.\n"); signaling_ip_avp.spec.s = SIGNALING_IP_AVP_SPEC; } signaling_ip_avp.spec.len = strlen(signaling_ip_avp.spec.s); if (pv_parse_spec(&(signaling_ip_avp.spec), &avp_spec)==0 || avp_spec.type!=PVT_AVP) { LM_CRIT("invalid AVP specification for signaling_ip_avp: `%s'\n", signaling_ip_avp.spec.s); return -1; } if (pv_get_avp_name(0, &(avp_spec.pvp), &(signaling_ip_avp.name), &(signaling_ip_avp.type))!=0) { LM_CRIT("invalid AVP specification for signaling_ip_avp: `%s'\n", signaling_ip_avp.spec.s); return -1; } // initialize the domain_avp structure if (domain_avp.spec.s==NULL || *(domain_avp.spec.s)==0) { LM_WARN("missing/empty domain_avp parameter. will use default.\n"); domain_avp.spec.s = DOMAIN_AVP_SPEC; } domain_avp.spec.len = strlen(domain_avp.spec.s); if (pv_parse_spec(&(domain_avp.spec), &avp_spec)==0 || avp_spec.type!=PVT_AVP) { LM_CRIT("invalid AVP specification for domain_avp: `%s'\n", domain_avp.spec.s); return -1; } if (pv_get_avp_name(0, &(avp_spec.pvp), &(domain_avp.name), &(domain_avp.type))!=0) { LM_CRIT("invalid AVP specification for domain_avp: `%s'\n", domain_avp.spec.s); return -1; } isFromLocal = (CheckLocalPartyProc)find_export("is_from_local", 0, 0); isDestinationLocal = (CheckLocalPartyProc)find_export("is_uri_host_local", 0, 0); if (!isFromLocal || !isDestinationLocal) { LM_CRIT("can't find the is_from_local and/or is_uri_host_local " "functions. Check if domain.so is loaded\n"); return -1; } if (natpingInterval > 0) { ul_bind_usrloc = (bind_usrloc_t)find_export("ul_bind_usrloc", 1, 0); if (!ul_bind_usrloc) { LM_CRIT("can't find the usrloc module. Check if usrloc.so is loaded.\n"); return -1; } if (ul_bind_usrloc(&userLocation) < 0) { LM_CRIT("can't access the usrloc module.\n"); return -1; } if (userLocation.nat_flag==0) { LM_CRIT("bad config - nat ping enabled, but no nat bflag set in " "the usrloc module\n"); return -1; } register_timer(pingClients, NULL, natpingInterval); } checkAsymmetricFile(&sipAsymmetrics); checkAsymmetricFile(&rtpAsymmetrics); // children won't benefit from this. figure another way //register_timer(checkAsymmetricFiles, NULL, 5); return 0; }