mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-17 23:38:23 +00:00
Merged revisions 89169 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r89169 | crichter | 2007-11-12 10:45:36 +0100 (Mo, 12 Nov 2007) | 1 line aded ntkeepcalls option, to avoid droÃpping calls when the L2 goes down on a PTP link. There are some pbx which do turn off the L1 for a very short while and restart it immediately. normally T310 should be started and after 10 seconds or so the calls should be dropped, this is a simple fix wihtout this timer. ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89174 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -5024,7 +5024,7 @@ static int unload_module(void)
|
|||||||
static int load_module(void)
|
static int load_module(void)
|
||||||
{
|
{
|
||||||
int i, port;
|
int i, port;
|
||||||
int ntflags = 0;
|
int ntflags = 0, ntkc = 0;
|
||||||
char ports[256] = "";
|
char ports[256] = "";
|
||||||
char tempbuf[BUFFERSIZE + 1];
|
char tempbuf[BUFFERSIZE + 1];
|
||||||
char ntfile[BUFFERSIZE + 1];
|
char ntfile[BUFFERSIZE + 1];
|
||||||
@@ -5091,7 +5091,9 @@ static int load_module(void)
|
|||||||
|
|
||||||
misdn_cfg_get(0, MISDN_GEN_NTDEBUGFLAGS, &ntflags, sizeof(ntflags));
|
misdn_cfg_get(0, MISDN_GEN_NTDEBUGFLAGS, &ntflags, sizeof(ntflags));
|
||||||
misdn_cfg_get(0, MISDN_GEN_NTDEBUGFILE, &ntfile, sizeof(ntfile));
|
misdn_cfg_get(0, MISDN_GEN_NTDEBUGFILE, &ntfile, sizeof(ntfile));
|
||||||
|
misdn_cfg_get( 0, MISDN_GEN_NTKEEPCALLS, &ntkc, sizeof(ntkc));
|
||||||
|
|
||||||
|
misdn_lib_nt_keepcalls(ntkc);
|
||||||
misdn_lib_nt_debug_init(ntflags, ntfile);
|
misdn_lib_nt_debug_init(ntflags, ntfile);
|
||||||
|
|
||||||
if (ast_channel_register(&misdn_tech)) {
|
if (ast_channel_register(&misdn_tech)) {
|
||||||
|
|||||||
@@ -97,6 +97,7 @@ enum misdn_cfg_elements {
|
|||||||
MISDN_GEN_DYNAMIC_CRYPT, /* int (bool) */
|
MISDN_GEN_DYNAMIC_CRYPT, /* int (bool) */
|
||||||
MISDN_GEN_CRYPT_PREFIX, /* char[] */
|
MISDN_GEN_CRYPT_PREFIX, /* char[] */
|
||||||
MISDN_GEN_CRYPT_KEYS, /* char[] */
|
MISDN_GEN_CRYPT_KEYS, /* char[] */
|
||||||
|
MISDN_GEN_NTKEEPCALLS, /* int (bool) */
|
||||||
MISDN_GEN_NTDEBUGFLAGS, /* int */
|
MISDN_GEN_NTDEBUGFLAGS, /* int */
|
||||||
MISDN_GEN_NTDEBUGFILE, /* char[] */
|
MISDN_GEN_NTDEBUGFILE, /* char[] */
|
||||||
MISDN_GEN_LAST
|
MISDN_GEN_LAST
|
||||||
|
|||||||
@@ -2752,12 +2752,14 @@ static int handle_l1(msg_t *msg)
|
|||||||
case PH_DEACTIVATE | CONFIRM:
|
case PH_DEACTIVATE | CONFIRM:
|
||||||
case PH_DEACTIVATE | INDICATION:
|
case PH_DEACTIVATE | INDICATION:
|
||||||
cb_log (3, stack->port, "L1: PH L1Link Down! \n");
|
cb_log (3, stack->port, "L1: PH L1Link Down! \n");
|
||||||
|
|
||||||
|
#if 0
|
||||||
for (i=0; i<=stack->b_num; i++) {
|
for (i=0; i<=stack->b_num; i++) {
|
||||||
if (global_state == MISDN_INITIALIZED) {
|
if (global_state == MISDN_INITIALIZED) {
|
||||||
cb_event(EVENT_CLEANUP, &stack->bc[i], glob_mgr->user_data);
|
cb_event(EVENT_CLEANUP, &stack->bc[i], glob_mgr->user_data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (stack->nt) {
|
if (stack->nt) {
|
||||||
if (stack->nst.l1_l2(&stack->nst, msg))
|
if (stack->nst.l1_l2(&stack->nst, msg))
|
||||||
@@ -2859,7 +2861,9 @@ static int handle_mgmt(msg_t *msg)
|
|||||||
case SSTATUS_L1_DEACTIVATED:
|
case SSTATUS_L1_DEACTIVATED:
|
||||||
cb_log(3, 0, "MGMT: SSTATUS: L1_DEACTIVATED \n");
|
cb_log(3, 0, "MGMT: SSTATUS: L1_DEACTIVATED \n");
|
||||||
stack->l1link=0;
|
stack->l1link=0;
|
||||||
|
#if 0
|
||||||
clear_l3(stack);
|
clear_l3(stack);
|
||||||
|
#endif
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SSTATUS_L2_ESTABLISHED:
|
case SSTATUS_L2_ESTABLISHED:
|
||||||
@@ -3866,6 +3870,18 @@ int misdn_lib_maxports_get() { /** BE AWARE WE HAVE NO CB_LOG HERE! **/
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void misdn_lib_nt_keepcalls( int kc)
|
||||||
|
{
|
||||||
|
#ifdef FEATURE_NET_KEEPCALLS
|
||||||
|
if (kc) {
|
||||||
|
struct misdn_stack *stack=get_misdn_stack();
|
||||||
|
for ( ; stack; stack=stack->next) {
|
||||||
|
stack->nst.feature |= FEATURE_NET_KEEPCALLS;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
void misdn_lib_nt_debug_init( int flags, char *file )
|
void misdn_lib_nt_debug_init( int flags, char *file )
|
||||||
{
|
{
|
||||||
int static init=0;
|
int static init=0;
|
||||||
|
|||||||
@@ -382,6 +382,8 @@ struct misdn_lib_iface {
|
|||||||
|
|
||||||
/***** USER IFACE **********/
|
/***** USER IFACE **********/
|
||||||
|
|
||||||
|
void misdn_lib_nt_keepcalls(int kc);
|
||||||
|
|
||||||
void misdn_lib_nt_debug_init( int flags, char *file );
|
void misdn_lib_nt_debug_init( int flags, char *file );
|
||||||
|
|
||||||
int misdn_lib_init(char *portlist, struct misdn_lib_iface* iface, void *user_data);
|
int misdn_lib_init(char *portlist, struct misdn_lib_iface* iface, void *user_data);
|
||||||
|
|||||||
@@ -369,6 +369,10 @@ static const struct misdn_cfg_spec gen_spec[] = {
|
|||||||
{ "crypt_keys", MISDN_GEN_CRYPT_KEYS, MISDN_CTYPE_STR, NO_DEFAULT, NONE,
|
{ "crypt_keys", MISDN_GEN_CRYPT_KEYS, MISDN_CTYPE_STR, NO_DEFAULT, NONE,
|
||||||
"Keys for cryption, you reference them in the dialplan\n"
|
"Keys for cryption, you reference them in the dialplan\n"
|
||||||
"\tLater also in dynamic encr." },
|
"\tLater also in dynamic encr." },
|
||||||
|
{ "ntkeepcalls", MISDN_GEN_NTKEEPCALLS, MISDN_CTYPE_BOOL, "no", NONE,
|
||||||
|
"avoid dropping calls if the L2 goes down. some nortel pbx\n"
|
||||||
|
"do put down the L2/L1 for some milliseconds even if there\n"
|
||||||
|
"are running calls. with this option you can avoid dropping them\n" },
|
||||||
{ "ntdebugflags", MISDN_GEN_NTDEBUGFLAGS, MISDN_CTYPE_INT, "0", NONE,
|
{ "ntdebugflags", MISDN_GEN_NTDEBUGFLAGS, MISDN_CTYPE_INT, "0", NONE,
|
||||||
"No description yet."},
|
"No description yet."},
|
||||||
{ "ntdebugfile", MISDN_GEN_NTDEBUGFILE, MISDN_CTYPE_STR, "/var/log/misdn-nt.log", NONE,
|
{ "ntdebugfile", MISDN_GEN_NTDEBUGFILE, MISDN_CTYPE_STR, "/var/log/misdn-nt.log", NONE,
|
||||||
|
|||||||
@@ -56,6 +56,12 @@ debug=0
|
|||||||
ntdebugflags=0
|
ntdebugflags=0
|
||||||
ntdebugfile=/var/log/misdn-nt.log
|
ntdebugfile=/var/log/misdn-nt.log
|
||||||
|
|
||||||
|
|
||||||
|
; some pbx systems do cut the L1 for some milliseconds, to avoid
|
||||||
|
; dropping running calls, we can set this flag to yes and tell
|
||||||
|
; mISDNuser not to drop the calls on L2_RELEASE
|
||||||
|
ntkeepcalls=no
|
||||||
|
|
||||||
; the big trace
|
; the big trace
|
||||||
;
|
;
|
||||||
; default value: [not set]
|
; default value: [not set]
|
||||||
|
|||||||
Reference in New Issue
Block a user