MCPcopy Create free account
hub / github.com/OpenSIPS/opensips / os_entry

Function os_entry

modules/aaa_diameter/app_opensips/app_opensips.c:727–784  ·  view source on GitHub ↗

entry point: register handlers for Accounting and Digest Auth */

Source from the content-addressed store, hash-verified

725
726/* entry point: register handlers for Accounting and Digest Auth */
727static int os_entry(char *confstring)
728{
729 struct disp_when data;
730 char *extra_avps_file;
731 int lib_mode;
732
733 CHECK_FCT(register_osips_avps());
734
735 CHECK_FCT(parse_conf_string(confstring, &extra_avps_file, &lib_mode));
736 CHECK_FCT(parse_extra_avps(extra_avps_file));
737 free(extra_avps_file);
738
739 if (lib_mode)
740 return 0;
741
742 /* Initialize the dictionary objects we use */
743 CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_AVP, AVP_BY_NAME, "Accounting-Record-Number", &dm_dict.Accounting_Record_Number, ENOENT) );
744 CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_AVP, AVP_BY_NAME, "Accounting-Record-Type", &dm_dict.Accounting_Record_Type, ENOENT) );
745 CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_AVP, AVP_BY_NAME, "Acct-Session-Id", &dm_dict.Acct_Session_Id, ENOENT) );
746 CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_AVP, AVP_BY_NAME, "Event-Timestamp", &dm_dict.Event_Timestamp, ENOENT) );
747 CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_AVP, AVP_BY_NAME, "Transaction-Id", &dm_dict.Transaction_Id, ENOENT) );
748 CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_AVP, AVP_BY_NAME, "Session-Id", &dm_dict.Session_Id, ENOENT) );
749
750 CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_AVP, AVP_BY_NAME, "Auth-Application-Id", &dm_dict.Auth_Application_Id, ENOENT) );
751 CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_AVP, AVP_BY_NAME, "Auth-Session-State", &dm_dict.Auth_Session_State, ENOENT) );
752 CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_AVP, AVP_BY_NAME, "User-Name", &dm_dict.User_Name, ENOENT) );
753 CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_AVP, AVP_BY_NAME, "Digest-Username", &dm_dict.Digest_Username, ENOENT) );
754 CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_AVP, AVP_BY_NAME, "Digest-Realm", &dm_dict.Digest_Realm, ENOENT) );
755 CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_AVP, AVP_BY_NAME, "Digest-Nonce", &dm_dict.Digest_Nonce, ENOENT) );
756 CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_AVP, AVP_BY_NAME, "Digest-URI", &dm_dict.Digest_URI, ENOENT) );
757 CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_AVP, AVP_BY_NAME, "Digest-Response", &dm_dict.Digest_Response, ENOENT) );
758 CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_AVP, AVP_BY_NAME, "Digest-Method", &dm_dict.Digest_Method, ENOENT) );
759
760 /* Register the dispatch callback */
761 memset(&data, 0, sizeof data);
762 CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_APPLICATION, APPLICATION_BY_NAME, "Diameter Base Accounting", &data.app, ENOENT) );
763 CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_COMMAND, CMD_BY_NAME, "Accounting-Request", &data.command, ENOENT) );
764 CHECK_FCT( fd_disp_register( acc_request, DISP_HOW_CC, &data, NULL, NULL ) );
765
766 /* Advertise the support for the Diameter Base Accounting application in the peer */
767 CHECK_FCT( fd_disp_app_support ( data.app, NULL, 0, 1 ) );
768
769 memset(&data, 0, sizeof data);
770 CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_APPLICATION, APPLICATION_BY_NAME, "Diameter Session Initiation Protocol (SIP) Application", &data.app, ENOENT) );
771 CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_COMMAND, CMD_BY_NAME, "Multimedia-Auth-Request", &data.command, ENOENT) );
772 CHECK_FCT( fd_disp_register( auth_request, DISP_HOW_CC, &data, NULL, NULL ) );
773
774 /* Advertise the support for the SIP application in the peer */
775 CHECK_FCT( fd_disp_app_support ( data.app, NULL, 0, 1 ) );
776
777 if (init_acc_log() != 0)
778 fd_log_error("[ACC] failed to init logging! CDR generation is disabled!");
779
780 if (init_auth() != 0)
781 fd_log_error("[AUTH] failed to initialize auth support!");
782
783 return 0;
784}

Callers

nothing calls this directly

Calls 5

register_osips_avpsFunction · 0.85
parse_conf_stringFunction · 0.85
parse_extra_avpsFunction · 0.85
init_acc_logFunction · 0.85
init_authFunction · 0.85

Tested by

no test coverage detected