aboutsummaryrefslogtreecommitdiffstats
path: root/channels/chan_misdn.c
diff options
context:
space:
mode:
authorrmudgett <rmudgett@f38db490-d61c-443f-a65b-d21fe96a405b>2010-09-30 19:35:47 +0000
committerrmudgett <rmudgett@f38db490-d61c-443f-a65b-d21fe96a405b>2010-09-30 19:35:47 +0000
commitb6d452073b6109ab1b1ca8bcdd57bca577e3e902 (patch)
treeb70e88ed7bd0404c02194a0ca73b82278292d442 /channels/chan_misdn.c
parentc3136e840c63b14a23522a49ca49193fed9af20a (diff)
Merged revisions 289549 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8 ................ r289549 | rmudgett | 2010-09-30 14:28:36 -0500 (Thu, 30 Sep 2010) | 17 lines Merged revision 289547 from https://origsvn.digium.com/svn/asterisk/be/branches/C.3-bier .......... r289547 | rmudgett | 2010-09-30 14:16:36 -0500 (Thu, 30 Sep 2010) | 10 lines In chan_misdn, the DivertingLegInformation2 DivertingNr is garbage when the number is restricted. The same thing happens with DivertingLegInformation1 DivertedTo number. The misdn_PresentedNumberUnscreened_extract() extracted the Unscreened PartyNumber field unconditionally. It now checks the presented number unscreened type to see if the PartyNumber was even present. JIRA ABE-2595 .......... ................ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@289552 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_misdn.c')
-rw-r--r--channels/chan_misdn.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c
index ed41c25c3..2dee0ee7e 100644
--- a/channels/chan_misdn.c
+++ b/channels/chan_misdn.c
@@ -2454,7 +2454,20 @@ static void misdn_PresentedNumberUnscreened_extract(struct misdn_party_id *id, c
{
id->presentation = PresentedNumberUnscreened_to_misdn_pres(presented->Type);
id->screening = 0;/* unscreened */
- misdn_PartyNumber_extract(id, &presented->Unscreened);
+ switch (presented->Type) {
+ case 0:/* presentationAllowedNumber */
+ case 3:/* presentationRestrictedNumber */
+ misdn_PartyNumber_extract(id, &presented->Unscreened);
+ break;
+ case 1:/* presentationRestricted */
+ case 2:/* numberNotAvailableDueToInterworking */
+ default:
+ /* Number not present (And uninitialized so do not even look at it!) */
+ id->number_type = NUMTYPE_UNKNOWN;
+ id->number_plan = NUMPLAN_ISDN;
+ id->number[0] = 0;
+ break;
+ }
}
#endif /* defined(AST_MISDN_ENHANCEMENTS) */