Module: sip-router
Branch: refs/tags/voicemail_0_1_0
Commit: c88d96180f88ccec7ac5c153374dee28d0bae107
URL:    
http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=c88d96180f88ccec7ac5c153374dee28d0bae107

Author: Raphael Coeffic <[email protected]>
Committer: Raphael Coeffic <[email protected]>
Date:   Sun Apr 27 12:10:14 2003 +0000

2nd 'vm' parameter now indicates which app should be started.

---

 modules_s/vm/etc/ser.cfg |   14 +++--
 modules_s/vm/vm.c        |  147 ++++++++++++++-------------------------------
 2 files changed, 55 insertions(+), 106 deletions(-)

diff --git a/modules_s/vm/etc/ser.cfg b/modules_s/vm/etc/ser.cfg
index c56b376..9275e8c 100644
--- a/modules_s/vm/etc/ser.cfg
+++ b/modules_s/vm/etc/ser.cfg
@@ -6,16 +6,16 @@
 
 # ----------- global configuration parameters ------------------------
 
-debug=3                        # debug level (cmd line: -dddddddddd)
-fork=yes
+debug=7                        # debug level (cmd line: -dddddddddd)
+fork=no
 
-log_stderror=no                # (cmd line: -E)
+log_stderror=yes       # (cmd line: -E)
 check_via=no           # (cmd. line: -v)
 dns=no                 # (cmd. line: -r)
 rev_dns=no             # (cmd. line: -R)
 port=5060
 children=4
-fifo="/tmp/ser_vm_fifo"
+fifo="/tmp/ser_fifo"
 
 # ------------------ module loading ----------------------------------
 
@@ -73,18 +73,22 @@ route{
                                t_reply("100","Trying -- just wait a minute !");
 
                                if(method=="INVITE"){
-                                       if(!vm("/tmp/am_fifo","invite")){
+                                       log("**************** vm start - begin 
******************\n");
+                                       if(!vm("/tmp/am_fifo","voicemail")){
                                                log("could not contact the 
answer machine\n");
                                                t_reply("500","could not 
contact the answer machine");
                                        };
+                                       log("**************** vm start - end 
******************\n");
                                        break;
                                };
 
                                if(method=="BYE"){
+                                       log("**************** vm end - begin 
******************\n");
                                        if(!vm("/tmp/am_fifo","bye")){
                                                log("could not contact the 
answer machine\n");
                                                t_reply("500","could not 
contact the answer machine");
                                        };
+                                       log("**************** vm end - end 
******************\n");
                                        break;
                                };
                        }
diff --git a/modules_s/vm/vm.c b/modules_s/vm/vm.c
index a19bbe1..34ab2d7 100644
--- a/modules_s/vm/vm.c
+++ b/modules_s/vm/vm.c
@@ -199,111 +199,59 @@ static int vm_get_user_info( str* user,   /*[in]*/
 {
         db_res_t*       email_res=0;
     
-#ifdef _OBSO
-       char*           s=0;
-        str             email_query;
-
-           email_query.len = SQL_SELECT_LEN
-               + strlen(email_column)
-               + SQL_FROM_LEN
-               + strlen(subscriber_table)
-               + SQL_WHERE_LEN
-               + strlen(user_column)
-               + SQL_EQUAL_LEN
-               + user->len + 2/* strlen("''") */
-#ifdef MULTI_DOMAIN
-               + SQL_AND_LEN
-               + strlen(domain_column)
-               + SQL_EQUAL_LEN
-               + host->len + 2/* strlen("''") */
-#endif
-               ;
+       db_key_t keys[2];
+       db_val_t vals[2];
+       db_key_t cols[1];
+
+       keys[0] = user_column;
+       cols[0] = email_column;
+       VAL_TYPE(&(vals[0])) = DB_STR;
+       VAL_NULL(&(vals[0])) = 0;
+       VAL_STR(&(vals[0]))  = *user;
            
-           email_query.s = malloc(email_query.len+1);
-           if(!email_query.s){
-               LOG(L_ERR,"ERROR: %s: not enough memory\n",
-                   exports.name);
-               goto error;
-           }
-           s = email_query.s;
-           append_str(s,SQL_SELECT,SQL_SELECT_LEN);
-           append_str(s,email_column,strlen(email_column));
-           append_str(s,SQL_FROM,SQL_FROM_LEN);
-           append_str(s,subscriber_table,strlen(subscriber_table));
-           append_str(s,SQL_WHERE,SQL_WHERE_LEN);
-           append_str(s,user_column,strlen(user_column));
-           append_str(s,SQL_EQUAL,SQL_EQUAL_LEN);
-           *s = '\''; s++;
-           append_str(s,user->s,user->len);
-           *s = '\''; s++;
 #ifdef MULTI_DOMAIN
-           append_str(s,SQL_AND,SQL_AND_LEN);
-           append_str(s,domain_column,strlen(domain_column));
-           append_str(s,SQL_EQUAL,SQL_EQUAL_LEN);
-           *s = '\''; s++;
-           append_str(s,msg->parsed_uri.host.s,msg->parsed_uri.host.len);
-           *s = '\''; s++;
+       keys[1] = domain_column;
+       VAL_TYPE(&vals[1]) = DB_STR;
+       VAL_NULL(&vals[1]) = 0;
+       VAL_STR(&vals[1])  = *host;
 #endif
-           *s = '\0';
-           
-           
-           (*db_raw_query)(db_handle,email_query.s,&email_res);
-           free(email_query.s);
-#else
-           db_key_t keys[2];
-           db_val_t vals[2];
-           db_key_t cols[1];
-
-           keys[0] = user_column;
-           cols[0] = email_column;
-           VAL_TYPE(&(vals[0])) = DB_STR;
-           VAL_NULL(&(vals[0])) = 0;
-           VAL_STR(&(vals[0]))  = *user;
 
+       db_use_table(db_handle,subscriber_table);
+       if ((*db_query)(db_handle, keys, 0, vals, cols, 
 #ifdef MULTI_DOMAIN
-           keys[1] = domain_column;
-           VAL_TYPE(&vals[1]) = DB_STR;
-           VAL_NULL(&vals[1]) = 0;
-           VAL_STR(&vals[1])  = *host;
-#endif
-
-           db_use_table(db_handle,subscriber_table);
-           if ((*db_query)(db_handle, keys, 0, vals, cols, 
-#ifdef MULTI_DOMAIN
-                           2, 
+                       2, 
 #else
-                           1,
-#endif
-                           1, 0, &email_res))
-           {
-
-               LOG(L_ERR,"ERROR: vm: db_query() failed.");
-               goto error;
-           }
+                       1,
 #endif
+                       1, 0, &email_res))
+         {
            
-           if( (!email_res) || (email_res->n != 1) ){
+           LOG(L_ERR,"ERROR: vm: db_query() failed.");
+           goto error;
+         }
            
-               if(email_res)
-                   (*db_free_query)(db_handle,email_res);
+       if( (!email_res) || (email_res->n != 1) ){
+         
+         if(email_res)
+           (*db_free_query)(db_handle,email_res);
                
-               LOG( L_ERR,"ERROR: %s: no email for user '%.*s'",
-                    exports.name,
-                    user->len,user->s);
-               goto error;
-           }
+         LOG( L_ERR,"ERROR: %s: no email for user '%.*s'",
+              exports.name,
+              user->len,user->s);
+         goto error;
+       }
            
-           email->s = strdup(VAL_STRING(&(email_res->rows[0].values[0])));
-           email->len = strlen(email->s);
-
+       email->s = strdup(VAL_STRING(&(email_res->rows[0].values[0])));
+       email->len = strlen(email->s);
+       
 #ifdef MULTI_DOMAIN
-           domain->s = strdup(VAL_STRING(&(email_res->rows[0].values[1])));
-           domain->s = strlen(domain->s);
+       domain->s = strdup(VAL_STRING(&(email_res->rows[0].values[1])));
+       domain->s = strlen(domain->s);
 #endif     
-
-           return 0;
-error:
-           return -1;
+       
+       return 0;
+ error:
+       return -1;
 }
 
 static int vm_action(struct sip_msg* msg, char* vm_fifo, char* action)
@@ -392,10 +340,6 @@ static int vm_action(struct sip_msg* msg, char* vm_fifo, 
char* action)
         if(!str_uri.len)
            str_uri = get_from(msg)->uri;
 
-       //if(parse_nameaddr(str* _s, name_addr_t* _a)){
-       //    LOG(L_ERR,"ERROR: parse_nameaddr failed\n");
-       //}
-
        route.s = route_buffer; route.len = 0;
        s = route_buffer;
 
@@ -476,7 +420,7 @@ static int vm_action(struct sip_msg* msg, char* vm_fifo, 
char* action)
        email = empty_param;
        domain = empty_param;
 
-       if(!strcmp(action,VM_INVITE)){
+       if(strcmp(action,VM_BYE)){
 
            if( (body.s = get_body(msg)) == 0 ){
                LOG(L_ERR, "ERROR: vm: get_body failed\n");
@@ -497,13 +441,14 @@ static int vm_action(struct sip_msg* msg, char* vm_fifo, 
char* action)
        lines[1]=msg->parsed_uri.user;          /* user from r-uri */
        lines[2]=email;                         /* email address from db */
        lines[3]=domain;                        /* domain */
-       /*  lines[4].s=ip_addr2a(&msg->rcv.dst_ip); */
-       /*  lines[4].len=strlen(lines[4].s); */
+
        lines[4]=msg->rcv.bind_address->address_str; /* dst ip */
-       lines[5]=msg->rcv.bind_address->port_no_str; /* port */
+
+       lines[5]=msg->parsed_uri.port.len ? empty_param : 
msg->rcv.bind_address->port_no_str; /* port */
        lines[6]=msg->first_line.u.request.uri;      /* r_uri ('Contact:' for 
next requests) */
-       /*  lines[6]=empty_param; */
+
        lines[7]=str_uri.len?str_uri:empty_param; /* r_uri for subsequent 
requests */
+
        lines[8]=get_from(msg)->body;           /* from */
        lines[9]=msg->to->body;                 /* to */
        lines[10]=msg->callid->body;            /* callid */


_______________________________________________
sr-dev mailing list
[email protected]
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev

Reply via email to