Merged revisions 279755 via svnmerge from
authorPaul Belanger <paul.belanger@polybeacon.com>
Tue, 27 Jul 2010 03:02:33 +0000 (03:02 +0000)
committerPaul Belanger <paul.belanger@polybeacon.com>
Tue, 27 Jul 2010 03:02:33 +0000 (03:02 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.8

........
  r279755 | pabelanger | 2010-07-26 22:57:33 -0400 (Mon, 26 Jul 2010) | 10 lines

  If dringXcontext is null, fallback to default context value.

  (closes issue #17693)
  Reported by: iasgoscouk
  Patches:
        issue17693.patch uploaded by pabelanger (license 224)
  Tested by: iasgoscouk

  Review: https://reviewboard.asterisk.org/r/803/
........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@279756 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_dahdi.c

index 372af0f..4c5f081 100644 (file)
@@ -1825,8 +1825,8 @@ static int my_distinctive_ring(struct ast_channel *chan, void *pvt, int idx, int
 
                        if (distMatches == 3) {
                                /* The ring matches, set the context to whatever is for distinctive ring.. */
-                               ast_copy_string(p->context, p->drings.ringContext[counter].contextData, sizeof(p->context));
-                               ast_copy_string(chan->context, p->drings.ringContext[counter].contextData, sizeof(chan->context));
+                               ast_copy_string(p->context, S_OR(p->drings.ringContext[counter].contextData, p->defcontext), sizeof(p->context));
+                               ast_copy_string(chan->context, S_OR(p->drings.ringContext[counter].contextData, p->defcontext), sizeof(chan->context));
                                ast_verb(3, "Distinctive Ring matched context %s\n",p->context);
                                break;
                        }
@@ -10209,8 +10209,8 @@ static void *analog_ss_thread(void *data)
 
                                                        if (distMatches == 3) {
                                                                /* The ring matches, set the context to whatever is for distinctive ring.. */
-                                                               ast_copy_string(p->context, p->drings.ringContext[counter].contextData, sizeof(p->context));
-                                                               ast_copy_string(chan->context, p->drings.ringContext[counter].contextData, sizeof(chan->context));
+                                                               ast_copy_string(p->context, S_OR(p->drings.ringContext[counter].contextData, p->defcontext), sizeof(p->context));
+                                                               ast_copy_string(chan->context, S_OR(p->drings.ringContext[counter].contextData, p->defcontext), sizeof(chan->context));
                                                                ast_verb(3, "Distinctive Ring matched context %s\n",p->context);
                                                                break;
                                                        }
@@ -10447,8 +10447,8 @@ static void *analog_ss_thread(void *data)
                                                        }
                                                        if (distMatches == 3) {
                                                                /* The ring matches, set the context to whatever is for distinctive ring.. */
-                                                               ast_copy_string(p->context, p->drings.ringContext[counter].contextData, sizeof(p->context));
-                                                               ast_copy_string(chan->context, p->drings.ringContext[counter].contextData, sizeof(chan->context));
+                                                               ast_copy_string(p->context, S_OR(p->drings.ringContext[counter].contextData, p->defcontext), sizeof(p->context));
+                                                               ast_copy_string(chan->context, S_OR(p->drings.ringContext[counter].contextData, p->defcontext), sizeof(chan->context));
                                                                ast_verb(3, "Distinctive Ring matched context %s\n",p->context);
                                                                break;
                                                        }