Update of /usr/cvsroot/asterisk/channels
In directory mongoose.digium.com:/tmp/cvs-serv18997/channels

Modified Files:
        chan_oss.c 
Log Message:
issue #5800


Index: chan_oss.c
===================================================================
RCS file: /usr/cvsroot/asterisk/channels/chan_oss.c,v
retrieving revision 1.63
retrieving revision 1.64
diff -u -d -r1.63 -r1.64
--- chan_oss.c  12 Nov 2005 23:44:16 -0000      1.63
+++ chan_oss.c  21 Nov 2005 01:11:40 -0000      1.64
@@ -55,6 +55,7 @@
 #include "asterisk/lock.h"
 #include "asterisk/frame.h"
 #include "asterisk/logger.h"
+#include "asterisk/callerid.h" /* for ast_callerid_split() */
 #include "asterisk/channel.h"
 #include "asterisk/module.h"
 #include "asterisk/options.h"
@@ -284,6 +285,8 @@
        char ext[AST_MAX_EXTENSION];
        char ctx[AST_MAX_CONTEXT];
        char language[MAX_LANGUAGE];
+       char cid_name[256]; /*XXX */
+       char cid_num[256]; /*XXX */
 
        /* buffers used in oss_write */
        char oss_write_buf[FRAME_SIZE*2];
@@ -892,6 +895,10 @@
                ast_copy_string(c->exten, ext, sizeof(c->exten));
        if (!ast_strlen_zero(o->language))
                ast_copy_string(c->language, o->language, sizeof(c->language));
+        if (!ast_strlen_zero(o->cid_num))
+                c->cid.cid_num = strdup(o->cid_num);
+        if (!ast_strlen_zero(o->cid_name))
+                c->cid.cid_name = strdup(o->cid_name);
 
        o->owner = c;
        ast_setstate(c, state);
@@ -1275,6 +1282,14 @@
 }
 
 /*
+ * store the callerid components
+ */
+static void store_callerid(struct chan_oss_pvt *o, char *s)
+{
+       ast_callerid_split(s, o->cid_name, sizeof(o->cid_name), o->cid_num, 
sizeof(o->cid_num));
+}
+
+/*
  * grab fields from the config file, init the descriptor and open the device.
  */
 static struct chan_oss_pvt * store_config(struct ast_config *cfg, char *ctg)
@@ -1315,6 +1330,7 @@
                M_STR("language", o->language)
                M_STR("extension", o->ext)
                M_F("mixer", store_mixer(o, v->value))
+               M_F("callerid", store_callerid(o, v->value))
                M_END(;);
        }
        if (ast_strlen_zero(o->device))

_______________________________________________
Asterisk-Cvs mailing list
Asterisk-Cvs@lists.digium.com
http://lists.digium.com/mailman/listinfo/asterisk-cvs

Reply via email to