Index: modules/registrar/save.c =================================================================== --- modules/registrar/save.c (revision 9974) +++ modules/registrar/save.c (working copy) @@ -73,6 +73,7 @@ #include "path.h" #include "save.h" +extern int disable_gruu; struct save_ctx { unsigned int flags; Index: modules/registrar/reg_mod.c =================================================================== --- modules/registrar/reg_mod.c (revision 9974) +++ modules/registrar/reg_mod.c (working copy) @@ -116,6 +116,7 @@ str sock_hdr_name = {0,0}; str gruu_secret = {0,0}; +int disable_gruu = 0; #define RCV_NAME "received" str rcv_param = str_init(RCV_NAME); @@ -180,6 +181,7 @@ {"sock_hdr_name", STR_PARAM, &sock_hdr_name.s }, {"mcontact_avp", STR_PARAM, &mct_avp_param }, {"gruu_secret", STR_PARAM, &gruu_secret.s }, + {"disable_gruu", INT_PARAM, &disable_gruu }, {0, 0, 0} }; Index: modules/registrar/reply.c =================================================================== --- modules/registrar/reply.c (revision 9974) +++ modules/registrar/reply.c (working copy) @@ -87,6 +87,7 @@ extern str gruu_secret; str default_gruu_secret=str_init("0p3nS1pS"); +extern int disable_gruu; /*! \brief * Buffer for Contact header field @@ -226,7 +227,7 @@ int build_gruu = 0; struct socket_info *sock; - if (_m->supported && parse_supported(_m) == 0 && + if (!disable_gruu && _m->supported && parse_supported(_m) == 0 && (get_supported(_m) & F_SUPPORTED_GRUU)) build_gruu=1;