]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
merge patch from http://jira.freeswitch.org/browse/SFSIP-11 . Please note, when...
authorMichael Jerris <mike@jerris.com>
Wed, 18 Apr 2007 20:21:53 +0000 (20:21 +0000)
committerMichael Jerris <mike@jerris.com>
Wed, 18 Apr 2007 20:21:53 +0000 (20:21 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4970 d0543943-73ff-0310-b7d9-9358b9ac24b2

conf/sofia.conf.xml
src/mod/endpoints/mod_sofia/mod_sofia.c
src/mod/endpoints/mod_sofia/mod_sofia.h
src/mod/endpoints/mod_sofia/sofia.c

index e22c94b555fe2f09a4b30748f8d563ccc533fe98..b21e8b0a67ca71b44068c36947955ee68a458d74 100644 (file)
@@ -10,6 +10,8 @@
          <!--<param name="realm" value="asterlink.com"/>-->
          <!--/// account password *required* ///-->
          <!--<param name="password" value="2007"/>--> 
+         <!--/// replace the INVITE from user with the auth username ///-->
+         <!--<param name="force-fromuser" value="false"/>-->
          <!--/// extension for inbound calls: *optional* same as username, if blank ///-->
          <!--<param name="extension" value="cluecon"/>-->
          <!--/// proxy host: *optional* same as realm, if blank ///-->
index 09d64e787d1177549bf379aceb4f9969529f18d8..c4d3d9883792739c89b0bf57a171960c15c27176 100644 (file)
@@ -890,7 +890,9 @@ static switch_call_cause_t sofia_outgoing_channel(switch_core_session_t *session
                }
 
                profile = gateway_ptr->profile;
-               tech_pvt->gateway_from_str = switch_core_session_strdup(nsession, gateway_ptr->register_from);
+               if (gateway_ptr->force_fromuser) {
+                       tech_pvt->gateway_from_str = switch_core_session_strdup(nsession, gateway_ptr->register_from);
+               }
                if (!strchr(dest, '@')) {
                        tech_pvt->dest = switch_core_session_sprintf(nsession, "sip:%s@%s", dest, gateway_ptr->register_proxy + 4);
                } else {
@@ -1095,3 +1097,4 @@ SWITCH_MOD_DECLARE(switch_status_t) switch_module_shutdown(void)
  * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
  */
 
+
index 0c129d7144dfffdc262d7955684327f655f02a00..cc308768ef9550fe5cf881b741f1bf336ce0a3c6 100644 (file)
@@ -176,6 +176,7 @@ struct outbound_reg {
        char *register_realm;
        char *register_username;
        char *register_password;
+       switch_bool_t force_fromuser;
        char *register_from;
        char *register_contact;
        char *register_to;
index 9e3dfe97d29f7517e3f7eec3b43149db7c868e03..1993b17ef420fa3482768150b5e0630d6531f941 100644 (file)
@@ -680,7 +680,7 @@ switch_status_t config_sofia(int reload)
                                                if ((gateway = switch_core_alloc(profile->pool, sizeof(*gateway)))) {
                                                        char *register_str = "true", *scheme = "Digest",
                                                                *realm = NULL,
-                                                               *username = NULL, *password = NULL, *extension = NULL, *proxy = NULL, *context = "default", *expire_seconds = "3600";
+                                                               *username = NULL, *password = NULL, *force_fromuser = "false", *extension = NULL, *proxy = NULL, *context = "default", *expire_seconds = "3600";
 
                                                        gateway->pool = profile->pool;
                                                        gateway->profile = profile;
@@ -702,6 +702,8 @@ switch_status_t config_sofia(int reload)
                                                                        username = val;
                                                                } else if (!strcmp(var, "password")) {
                                                                        password = val;
+                                                               } else if (!strcmp(var, "force-fromuser")) {
+                                                                       force_fromuser = val;
                                                                } else if (!strcmp(var, "extension")) {
                                                                        extension = val;
                                                                } else if (!strcmp(var, "proxy")) {
@@ -745,6 +747,7 @@ switch_status_t config_sofia(int reload)
                                                        gateway->register_realm = switch_core_strdup(gateway->pool, realm);
                                                        gateway->register_username = switch_core_strdup(gateway->pool, username);
                                                        gateway->register_password = switch_core_strdup(gateway->pool, password);
+                                                       gateway->force_fromuser = switch_true(force_fromuser);
                                                        gateway->register_from = switch_core_sprintf(gateway->pool, "sip:%s@%s", username, realm);
                                                        gateway->register_contact = switch_core_sprintf(gateway->pool, "sip:%s@%s:%d", extension, profile->sipip, profile->sip_port);
 
@@ -1765,3 +1768,4 @@ void sofia_handle_sip_i_options(int status,
 
 
 
+