diff options
author | crichter <crichter@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-03-09 18:01:27 +0000 |
---|---|---|
committer | crichter <crichter@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-03-09 18:01:27 +0000 |
commit | 7b5c69e01b1389771de39ad841526bfee3e2987a (patch) | |
tree | a02da80a93db3d20e25068d1018cc3e73c4009af | |
parent | 19d818048a5ff1d1102cd8e5afa75196bb19c1f9 (diff) |
added option to change the connected party number dialplan (ton)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@12481 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r-- | channels/chan_misdn.c | 34 | ||||
-rw-r--r-- | channels/misdn/chan_misdn_config.h | 1 | ||||
-rw-r--r-- | channels/misdn/isdn_lib.c | 1 | ||||
-rw-r--r-- | channels/misdn/isdn_lib.h | 1 | ||||
-rw-r--r-- | channels/misdn/isdn_msg_parser.c | 2 | ||||
-rw-r--r-- | channels/misdn_config.c | 1 | ||||
-rw-r--r-- | configs/misdn.conf.sample | 7 |
7 files changed, 40 insertions, 7 deletions
diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c index d4a314bbb..4290a30e1 100644 --- a/channels/chan_misdn.c +++ b/channels/chan_misdn.c @@ -648,13 +648,14 @@ static void print_bc_info (int fd, struct chan_list* help, struct misdn_bchannel { struct ast_channel *ast=help->ast; ast_cli(fd, - "* Pid:%d Prt:%d Ch:%d Mode:%s Org:%s dad:%s oad:%s ctx:%s state:%s\n", + "* Pid:%d Prt:%d Ch:%d Mode:%s Org:%s dad:%s oad:%s rad:%s ctx:%s state:%s\n", bc->pid, bc->port, bc->channel, bc->nt?"NT":"TE", help->orginator == ORG_AST?"*":"I", ast?ast->exten:NULL, ast?AST_CID_P(ast):NULL, + bc->rad, ast?ast->context:NULL, misdn_get_ch_state(help) ); @@ -1340,26 +1341,47 @@ static int read_config(struct chan_list *ch, int orig) { misdn_cfg_get( port, MISDN_CFG_LOCALDIALPLAN, &bc->onumplan, sizeof(int)); switch (bc->onumplan) { case NUMPLAN_INTERNATIONAL: - chan_misdn_log(2, port, " --> TON: International\n"); + chan_misdn_log(2, port, " --> LTON: International\n"); break; case NUMPLAN_NATIONAL: - chan_misdn_log(2, port, " --> TON: National\n"); + chan_misdn_log(2, port, " --> LTON: National\n"); break; case NUMPLAN_SUBSCRIBER: - chan_misdn_log(2, port, " --> TON: Subscriber\n"); + chan_misdn_log(2, port, " --> LTON: Subscriber\n"); break; case NUMPLAN_UNKNOWN: - chan_misdn_log(2, port, " --> TON: Unknown\n"); + chan_misdn_log(2, port, " --> LTON: Unknown\n"); break; /* Maybe we should cut off the prefix if present ? */ default: chan_misdn_log(0, port, " --> !!!! Wrong dialplan setting, please see the misdn.conf sample file\n "); break; } + + misdn_cfg_get( port, MISDN_CFG_CPNDIALPLAN, &bc->cpnnumplan, sizeof(int)); + + switch (bc->cpnnumplan) { + case NUMPLAN_INTERNATIONAL: + chan_misdn_log(2, port, " --> CTON: International\n"); + break; + case NUMPLAN_NATIONAL: + chan_misdn_log(2, port, " --> CTON: National\n"); + break; + case NUMPLAN_SUBSCRIBER: + chan_misdn_log(2, port, " --> CTON: Subscriber\n"); + break; + case NUMPLAN_UNKNOWN: + chan_misdn_log(2, port, " --> CTON: Unknown\n"); + break; + /* Maybe we should cut off the prefix if present ? */ + default: + chan_misdn_log(0, port, " --> !!!! Wrong dialplan setting, please see the misdn.conf sample file\n "); + break; + } + } - } else { /** ORIGINATOR MISDN **/ diff --git a/channels/misdn/chan_misdn_config.h b/channels/misdn/chan_misdn_config.h index 1c6bb106d..d30e1482c 100644 --- a/channels/misdn/chan_misdn_config.h +++ b/channels/misdn/chan_misdn_config.h @@ -34,6 +34,7 @@ enum misdn_cfg_elements { MISDN_CFG_METHOD, /* char[] */ MISDN_CFG_DIALPLAN, /* int */ MISDN_CFG_LOCALDIALPLAN, /* int */ + MISDN_CFG_CPNDIALPLAN, /* int */ MISDN_CFG_NATPREFIX, /* char[] */ MISDN_CFG_INTERNATPREFIX, /* char[] */ MISDN_CFG_PRES, /* int */ diff --git a/channels/misdn/isdn_lib.c b/channels/misdn/isdn_lib.c index 37f0bfbe9..a699d7f8a 100644 --- a/channels/misdn/isdn_lib.c +++ b/channels/misdn/isdn_lib.c @@ -463,6 +463,7 @@ void empty_bc(struct misdn_bchannel *bc) bc->dnumplan=NUMPLAN_UNKNOWN; bc->onumplan=NUMPLAN_UNKNOWN; bc->rnumplan=NUMPLAN_UNKNOWN; + bc->cpnnumplan=NUMPLAN_UNKNOWN; bc->active = 0; diff --git a/channels/misdn/isdn_lib.h b/channels/misdn/isdn_lib.h index 4b5d17db6..2c99d946b 100644 --- a/channels/misdn/isdn_lib.h +++ b/channels/misdn/isdn_lib.h @@ -210,6 +210,7 @@ struct misdn_bchannel { enum mISDN_NUMBER_PLAN dnumplan; enum mISDN_NUMBER_PLAN rnumplan; enum mISDN_NUMBER_PLAN onumplan; + enum mISDN_NUMBER_PLAN cpnnumplan; int progress_coding; int progress_location; diff --git a/channels/misdn/isdn_msg_parser.c b/channels/misdn/isdn_msg_parser.c index 5eb7e1f68..7ae9a5369 100644 --- a/channels/misdn/isdn_msg_parser.c +++ b/channels/misdn/isdn_msg_parser.c @@ -359,7 +359,7 @@ msg_t *build_connect (struct isdn_msg msgs[], struct misdn_bchannel *bc, int nt) } { - int type=0, plan=1, present=2, screen=0; + int type=bc->cpnnumplan, plan=1, present=2, screen=0; enc_ie_connected_pn(&connect->CONNECT_PN, msg, type,plan, present, screen, (unsigned char*) bc->dad , nt , bc); } diff --git a/channels/misdn_config.c b/channels/misdn_config.c index 593642959..fa712d523 100644 --- a/channels/misdn_config.c +++ b/channels/misdn_config.c @@ -95,6 +95,7 @@ static const struct misdn_cfg_spec port_spec[] = { { "method", MISDN_CFG_METHOD, MISDN_CTYPE_STR, "standard", NONE }, { "dialplan", MISDN_CFG_DIALPLAN, MISDN_CTYPE_INT, "0", NONE }, { "localdialplan", MISDN_CFG_LOCALDIALPLAN, MISDN_CTYPE_INT, "0", NONE }, + { "cpndialplan", MISDN_CFG_CPNDIALPLAN, MISDN_CTYPE_INT, "0", NONE }, { "nationalprefix", MISDN_CFG_NATPREFIX, MISDN_CTYPE_STR, "0", NONE }, { "internationalprefix", MISDN_CFG_INTERNATPREFIX, MISDN_CTYPE_STR, "00", NONE }, { "presentation", MISDN_CFG_PRES, MISDN_CTYPE_INT, "-1", NONE }, diff --git a/configs/misdn.conf.sample b/configs/misdn.conf.sample index 841823035..d69e06398 100644 --- a/configs/misdn.conf.sample +++ b/configs/misdn.conf.sample @@ -176,6 +176,12 @@ method=standard ; ; dialplan means Type Of Number in ISDN Terms (for outgoing calls) ; +; there are different types of the dialplan: +; +; dialplan -> outgoing Number +; localdialplan -> callerid +; cpndialplan -> connected party number +; ; dialplan options: ; ; 0 - unknown @@ -189,6 +195,7 @@ method=standard ; dialplan=0 localdialplan=0 +cpndialplan=0 |