Index: chan_sccp.c =================================================================== RCS file: /cvsroot/chan-sccp/chan_sccp/chan_sccp.c,v retrieving revision 1.48 diff -u -r1.48 chan_sccp.c --- chan_sccp.c 17 Jun 2005 13:30:30 -0000 1.48 +++ chan_sccp.c 19 Jul 2005 14:02:03 -0000 @@ -15,6 +15,7 @@ #include #include #include +#include /* Socket Stuff */ static struct sockaddr_in bindaddr; Index: chan_sccp.h =================================================================== RCS file: /cvsroot/chan-sccp/chan_sccp/chan_sccp.h,v retrieving revision 1.52 diff -u -r1.52 chan_sccp.h --- chan_sccp.h 15 Jun 2005 13:08:00 -0000 1.52 +++ chan_sccp.h 19 Jul 2005 14:02:03 -0000 @@ -491,7 +491,7 @@ struct { uint32_t lel_tone; - char unkown[12]; + char unknown[12]; } StartToneMessage; struct { @@ -553,6 +553,17 @@ int32_t lel_callType; /* INBOUND=1, OUTBOUND=2, FORWARD=3 */ char originalCalledPartyName[40]; char originalCalledParty[24]; + char lastredirectingPartyName[40]; + char lastredirectingParty[24]; + int32_t lel_origRedirectReason; + int32_t lel_lastRedirectReason; + char cgpnVoiceMailbox[24]; + char cdpnVoiceMailbox[24]; + char origCdpnVoiceMailbox[24]; + char lastRedirectingVoiceMailbox[24]; + int32_t lel_callInstance; // 01 + int32_t lel_callSecurityStatus; // 001 + unsigned char partyPIRestrictionBits[8]; // 84 01 00 00 00 00 00 00 } CallInfoMessage; struct {} ForwardStatMessage; @@ -567,7 +578,7 @@ uint32_t lel_lineNumber; char lineDirNumber[StationMaxDirnumSize]; char lineFullyQualifiedDisplayName[StationMaxNameSize]; - char _unknown5[44]; + char _unknown5[44]; // Hrm. Without Filler line does not shown on display } LineStatMessage; struct { Index: sccp_channel.c =================================================================== RCS file: /cvsroot/chan-sccp/chan_sccp/sccp_channel.c,v retrieving revision 1.38 diff -u -r1.38 sccp_channel.c --- sccp_channel.c 17 Jun 2005 13:58:50 -0000 1.38 +++ sccp_channel.c 19 Jul 2005 14:02:03 -0000 @@ -19,6 +19,8 @@ c = c->lnext; } ast_mutex_unlock(&chanlock); + if (c == NULL) + return c; if (c->callid != id) { if (sccp_debug) ast_log(LOG_DEBUG,"Could not find channel id %d",id); Index: sccp_sched.c =================================================================== RCS file: /cvsroot/chan-sccp/chan_sccp/sccp_sched.c,v retrieving revision 1.3 diff -u -r1.3 sccp_sched.c --- sccp_sched.c 25 Apr 2005 12:49:51 -0000 1.3 +++ sccp_sched.c 19 Jul 2005 14:02:03 -0000 @@ -21,6 +21,7 @@ ast_log(LOG_DEBUG, "Removing session %p, device %p\n", s, s->device); if (s->device != NULL) { + if (s->device->lines != NULL) { ast_mutex_lock(&s->device->lock); @@ -44,6 +45,7 @@ ast_mutex_unlock(&s->device->lock); + } } if (s->in_addr)