--- l4isup_1.2.c	2006-07-19 05:13:40.000000000 -0300
+++ l4isup.c	2007-05-31 17:20:57.000000000 -0300
@@ -54,7 +54,7 @@
 #include "asterisk/indications.h"
 #include "asterisk/module.h"
 
-#include "zaptel.h"
+#include "zaptel/zaptel.h"
 
 #include "config.h"
 #include "lffifo.h"
@@ -184,7 +184,7 @@
 static int ss7_write(struct ast_channel * chan, struct ast_frame *frame);
 static struct ast_frame *ss7_exception(struct ast_channel *chan);
 static int ss7_fixup(struct ast_channel *oldchan, struct ast_channel *newchan);
-static int ss7_indicate(struct ast_channel *chan, int condition);
+static int ss7_indicate(struct ast_channel *chan, int condition, const void *data, size_t datalen);
 static void t7_clear(struct ss7_chan *pvt);
 static void t1_start(struct ss7_chan *pvt);
 static void t5_start(struct ss7_chan *pvt);
@@ -208,7 +208,7 @@
   .description = tdesc,
   .capabilities = AST_FORMAT_ALAW,
   .requester = ss7_requester,
-  .send_digit = ss7_send_digit,
+  .send_digit_begin = ss7_send_digit,
   .call = ss7_call,
   .hangup = ss7_hangup,
   .answer = ss7_answer,
@@ -216,7 +216,7 @@
   .write = ss7_write,
   .exception = ss7_exception,
   .fixup = ss7_fixup,
-  .indicate = ss7_indicate,
+  .indicate = ss7_indicate
 };
 
 
@@ -568,14 +568,14 @@
   int parm;
   int res;
 
-  chan = ast_channel_alloc(0);
-  if(!chan) {
-    return NULL;
+  if ((chan = ast_channel_alloc(0, state, 0, 0, NULL, NULL, pvt->context, 0, NULL) ) == NULL)
+  {
+    ast_log(LOG_WARNING, "Unable to allocate channel structure\n");
+    return  NULL;
   }
 
   chan->tech = &ss7_tech;
-  snprintf(chan->name, sizeof(chan->name), "%s/%s/%d", type, pvt->link->linkset->name, pvt->cic);
-  chan->type = type;
+  snprintf((char *) chan->name, sizeof(chan->name), "%s/%s/%d", type, pvt->link->linkset->name, pvt->cic);
   chan->nativeformats = AST_FORMAT_ALAW;
   chan->rawreadformat = AST_FORMAT_ALAW;
   chan->rawwriteformat = AST_FORMAT_ALAW;
@@ -729,7 +729,7 @@
   mtp_enqueue_isup(pvt, msg, current);
 }
 
-static int ss7_indicate(struct ast_channel *chan, int condition) {
+static int ss7_indicate(struct ast_channel *chan, int condition, const void *data, size_t datalen) {
   struct ss7_chan *pvt = chan->tech_pvt;
   int res;
 
@@ -1280,7 +1280,7 @@
 
   ast_copy_string(chan->exten, iam->dni.num, sizeof(chan->exten));
   ast_copy_string(chan->context, pvt->context, sizeof(chan->context));
-  ast_copy_string(chan->language, pvt->language, sizeof(chan->language));
+  ast_copy_string((char *) chan->language, pvt->language, sizeof(chan->language));
 
   if(iam->ani.present) {
     chan->cid.cid_num = strdup(iam->ani.num);

    Source: geocities.com/br/bruno_agostinho/chan_ss7-09_144

               ( geocities.com/br/bruno_agostinho)                   ( geocities.com/br)