Timeout events with subcmds should clear any old subcmds.
git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@1084 2fbb986a-6c06-0410-b554-c9c1f0a7f128
This commit is contained in:
parent
25b2496b0f
commit
c8de5d057b
29
q931.c
29
q931.c
@ -623,6 +623,20 @@ int q931_party_id_presentation(const struct q931_party_id *id)
|
|||||||
return number_value | number_screening;
|
return number_value | number_screening;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void q931_clr_subcommands(struct pri *ctrl)
|
||||||
|
{
|
||||||
|
ctrl->subcmds.counter_subcmd = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct pri_subcommand *q931_alloc_subcommand(struct pri *ctrl)
|
||||||
|
{
|
||||||
|
if (ctrl->subcmds.counter_subcmd < PRI_MAX_SUBCOMMANDS) {
|
||||||
|
return &ctrl->subcmds.subcmd[ctrl->subcmds.counter_subcmd++];
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
static char *code2str(int code, struct msgtype *codes, int max)
|
static char *code2str(int code, struct msgtype *codes, int max)
|
||||||
{
|
{
|
||||||
int x;
|
int x;
|
||||||
@ -3736,6 +3750,7 @@ static void pri_release_finaltimeout(void *data)
|
|||||||
c->t308_timedout++;
|
c->t308_timedout++;
|
||||||
c->ourcallstate = Q931_CALL_STATE_NULL;
|
c->ourcallstate = Q931_CALL_STATE_NULL;
|
||||||
c->peercallstate = Q931_CALL_STATE_NULL;
|
c->peercallstate = Q931_CALL_STATE_NULL;
|
||||||
|
q931_clr_subcommands(ctrl);
|
||||||
ctrl->schedev = 1;
|
ctrl->schedev = 1;
|
||||||
ctrl->ev.e = PRI_EVENT_HANGUP_ACK;
|
ctrl->ev.e = PRI_EVENT_HANGUP_ACK;
|
||||||
ctrl->ev.hangup.subcmds = &ctrl->subcmds;
|
ctrl->ev.hangup.subcmds = &ctrl->subcmds;
|
||||||
@ -4136,20 +4151,6 @@ int q931_hangup(struct pri *ctrl, q931_call *c, int cause)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void q931_clr_subcommands(struct pri *ctrl)
|
|
||||||
{
|
|
||||||
ctrl->subcmds.counter_subcmd = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct pri_subcommand *q931_alloc_subcommand(struct pri *ctrl)
|
|
||||||
{
|
|
||||||
if (ctrl->subcmds.counter_subcmd < PRI_MAX_SUBCOMMANDS) {
|
|
||||||
return &ctrl->subcmds.subcmd[ctrl->subcmds.counter_subcmd++];
|
|
||||||
}
|
|
||||||
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int prepare_to_handle_maintenance_message(struct pri *ctrl, q931_mh *mh, q931_call *c)
|
static int prepare_to_handle_maintenance_message(struct pri *ctrl, q931_mh *mh, q931_call *c)
|
||||||
{
|
{
|
||||||
if ((!ctrl) || (!mh) || (!c)) {
|
if ((!ctrl) || (!mh) || (!c)) {
|
||||||
|
Loading…
Reference in New Issue
Block a user