mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-13 08:13:22 +00:00
manually merged r49922 and r50335, because of conflicts. this commint includes addition of the ISDN RESTART Message
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@51648 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -792,6 +792,20 @@ static int misdn_restart_pid (int fd, int argc, char *argv[])
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int misdn_send_restart(int fd, int argc, char *argv[])
|
||||||
|
{
|
||||||
|
int port;
|
||||||
|
|
||||||
|
if (argc != 4)
|
||||||
|
return RESULT_SHOWUSAGE;
|
||||||
|
|
||||||
|
port = atoi(argv[3]);
|
||||||
|
|
||||||
|
misdn_lib_send_restart(port);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static int misdn_port_up (int fd, int argc, char *argv[])
|
static int misdn_port_up (int fd, int argc, char *argv[])
|
||||||
{
|
{
|
||||||
int port;
|
int port;
|
||||||
@@ -1426,6 +1440,9 @@ static struct ast_cli_entry chan_misdn_clis[] = {
|
|||||||
"Usage: misdn restart port\n" },
|
"Usage: misdn restart port\n" },
|
||||||
{ {"misdn","restart","pid", NULL}, misdn_restart_pid, "Restarts the given pid",
|
{ {"misdn","restart","pid", NULL}, misdn_restart_pid, "Restarts the given pid",
|
||||||
"Usage: misdn restart pid\n" },
|
"Usage: misdn restart pid\n" },
|
||||||
|
{ {"misdn","send","restart", NULL}, misdn_send_restart,
|
||||||
|
"Sends a restart for every bchannel on the given port",
|
||||||
|
"Usage: misdn send restart <port>\n"},
|
||||||
{ {"misdn","port","up", NULL}, misdn_port_up, "Tries to establish L1 on the given port",
|
{ {"misdn","port","up", NULL}, misdn_port_up, "Tries to establish L1 on the given port",
|
||||||
"Usage: misdn port up <port>\n" },
|
"Usage: misdn port up <port>\n" },
|
||||||
{ {"misdn","port","down", NULL}, misdn_port_down, "Tries to deacivate the L1 on the given port",
|
{ {"misdn","port","down", NULL}, misdn_port_down, "Tries to deacivate the L1 on the given port",
|
||||||
|
@@ -3603,6 +3603,31 @@ int misdn_lib_pid_restart(int pid)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*Sends Restart message for every bchnanel*/
|
||||||
|
int misdn_lib_send_restart(int port)
|
||||||
|
{
|
||||||
|
struct misdn_stack *stack=find_stack_by_port(port);
|
||||||
|
cb_log(0, port, "Sending Restarts on this port.\n");
|
||||||
|
|
||||||
|
struct misdn_bchannel dummybc;
|
||||||
|
memset (&dummybc,0,sizeof(dummybc));
|
||||||
|
dummybc.port=stack->port;
|
||||||
|
dummybc.l3_id=MISDN_ID_DUMMY;
|
||||||
|
dummybc.nt=stack->nt;
|
||||||
|
|
||||||
|
int max=stack->pri?30:2;
|
||||||
|
int i;
|
||||||
|
for (i=1;i<max;i++) {
|
||||||
|
dummybc.channel=i;
|
||||||
|
cb_log(0, port, "Restarting channel %d\n",i);
|
||||||
|
misdn_lib_send_event(&dummybc, EVENT_RESTART);
|
||||||
|
/*do we need to wait before we get an EVENT_RESTART_ACK ?*/
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*reinitializes the L2/L3*/
|
||||||
int misdn_lib_port_restart(int port)
|
int misdn_lib_port_restart(int port)
|
||||||
{
|
{
|
||||||
struct misdn_stack *stack=find_stack_by_port(port);
|
struct misdn_stack *stack=find_stack_by_port(port);
|
||||||
|
@@ -409,6 +409,7 @@ void isdn_lib_stop_dtmf (struct misdn_bchannel *bc);
|
|||||||
|
|
||||||
int misdn_lib_port_restart(int port);
|
int misdn_lib_port_restart(int port);
|
||||||
int misdn_lib_pid_restart(int pid);
|
int misdn_lib_pid_restart(int pid);
|
||||||
|
int misdn_lib_send_restart(int port);
|
||||||
|
|
||||||
int misdn_lib_get_port_info(int port);
|
int misdn_lib_get_port_info(int port);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user