]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
wip
authorMichael Jerris <mike@jerris.com>
Tue, 7 Oct 2008 21:55:58 +0000 (21:55 +0000)
committerMichael Jerris <mike@jerris.com>
Tue, 7 Oct 2008 21:55:58 +0000 (21:55 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@9884 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/mod/endpoints/mod_sofia/sofia_reg.c

index 0e597c1b3ad6df4a60c0837a98f69d7b5b93b2a5..a0c2d1c2d1d7c4ca990f20056c273aa70b8e6562 100644 (file)
@@ -1020,16 +1020,24 @@ void sofia_reg_handle_sip_r_register(int status,
        if (sofia_private && sofia_private->gateway) {
                switch (status) {
                case 200:
-                       if (sip && sip->sip_contact && sip->sip_contact->m_expires) {
-                               char *new_expires = (char *) sip->sip_contact->m_expires;
-                               uint32_t expi = (uint32_t) atoi(new_expires);
-
-                               if (expi != sofia_private->gateway->freq) {
-                                       sofia_private->gateway->freq = expi;
-                                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG,
-                                                                         "Changing expire time to %d by request of proxy %s\n", expi, sofia_private->gateway->register_proxy);
+                       if (sip && sip->sip_contact) { // && sip->sip_contact->m_expires
+                               sip_contact_t *contact = sip->sip_contact;
+                               const char *new_expires;
+                               uint32_t expi;
+                               if (contact->m_next) {
+                                       //const char *sipip = profile->extsipip ?  profile->extsipip : profile->sipip;
+                                       //find the contact
+                               }
+                               if (contact->m_expires) {
+                                       new_expires = contact->m_expires;
+                                       expi = (uint32_t) atoi(new_expires);
+       
+                                       if (expi != sofia_private->gateway->freq) {
+                                               sofia_private->gateway->freq = expi;
+                                               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG,
+                                                                                 "Changing expire time to %d by request of proxy %s\n", expi, sofia_private->gateway->register_proxy);
+                                       }
                                }
-
                        }
                        sofia_private->gateway->state = REG_STATE_REGISTER;
                        break;