|
|
@ -1952,10 +1952,10 @@ static int misdn_hangup(struct ast_channel *ast)
|
|
|
|
struct chan_list *p;
|
|
|
|
struct chan_list *p;
|
|
|
|
struct misdn_bchannel *bc=NULL;
|
|
|
|
struct misdn_bchannel *bc=NULL;
|
|
|
|
|
|
|
|
|
|
|
|
if (!ast || ! (p=MISDN_ASTERISK_TECH_PVT(ast) ) ) return -1;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ast_log(LOG_DEBUG, "misdn_hangup(%s)\n", ast->name);
|
|
|
|
ast_log(LOG_DEBUG, "misdn_hangup(%s)\n", ast->name);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!ast || ! (p=MISDN_ASTERISK_TECH_PVT(ast) ) ) return -1;
|
|
|
|
|
|
|
|
|
|
|
|
if (!p) {
|
|
|
|
if (!p) {
|
|
|
|
chan_misdn_log(3, 0, "misdn_hangup called, without chan_list obj.\n");
|
|
|
|
chan_misdn_log(3, 0, "misdn_hangup called, without chan_list obj.\n");
|
|
|
|
return 0 ;
|
|
|
|
return 0 ;
|
|
|
@ -1976,11 +1976,15 @@ static int misdn_hangup(struct ast_channel *ast)
|
|
|
|
|
|
|
|
|
|
|
|
if (ast->_state == AST_STATE_RESERVED) {
|
|
|
|
if (ast->_state == AST_STATE_RESERVED) {
|
|
|
|
/* between request and call */
|
|
|
|
/* between request and call */
|
|
|
|
|
|
|
|
ast_log(LOG_DEBUG, "State Reserved => chanIsAvail\n");
|
|
|
|
MISDN_ASTERISK_TECH_PVT(ast)=NULL;
|
|
|
|
MISDN_ASTERISK_TECH_PVT(ast)=NULL;
|
|
|
|
|
|
|
|
|
|
|
|
cl_dequeue_chan(&cl_te, p);
|
|
|
|
cl_dequeue_chan(&cl_te, p);
|
|
|
|
free(p);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
close(p->pipe[0]);
|
|
|
|
|
|
|
|
close(p->pipe[1]);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
free(p);
|
|
|
|
if (bc)
|
|
|
|
if (bc)
|
|
|
|
misdn_lib_release(bc);
|
|
|
|
misdn_lib_release(bc);
|
|
|
|
|
|
|
|
|
|
|
|