Yu.Ding 3 months ago
parent
commit
a75a2c42ca

+ 4 - 0
usr/src/generate_extension_conf.c

@@ -331,6 +331,10 @@ same => n,WaitExten(1)\n");
                 else if(strcmp(keysObject[i].type, "group") == 0){
                     fprintf(conf_ivr_fp,"exten => %s,1,Goto(paging-group-%s,%s,1)\n",keysObject[i].key,keysObject[i].exten,keysObject[i].exten);
                 }
+                else if(strcmp(keysObject[i].type, "user") == 0){
+                    int id = 100000 + atoi(keysObject[i].exten);
+                    fprintf(conf_ivr_fp,"exten => %s,1,Goto(manager-queue-%d,s,1)\n",keysObject[i].key,id);
+                }
             }
         }
     }

+ 15 - 3
usr/src/generate_group_conf.c

@@ -39,7 +39,7 @@ MYSQL_ROW r_row; // 字符串数组,mysql 记录行
 #define KEYVALLEN 100
 #define VERSION "V1.0.1"
 
-#define QUERY_PAGING_GROUP_SQL "select id,name,exten,paging_mode from t_paging_groups"
+#define QUERY_PAGING_GROUP_SQL "select id,name,exten,paging_mode,paging_volume from t_paging_groups"
 
 char g_host_name[MINI_SIZE];
 char g_user_name[MINI_SIZE];
@@ -50,6 +50,7 @@ char sql_tmp[MIDLE_SIZE];
 char exten_tmp[MAX_SIZE];
 char dest_tmp[MAX_SIZE];
 char page_option[MINI_SIZE];
+char page_volume[MINI_SIZE];
 
 //读取配置文件函数----功能:删除左边空格
 char *l_trim(char *szOutput, const char *szInput)
@@ -311,7 +312,7 @@ if (conf_hints_fp == NULL){
 mytime()\
 );
 while ((g_row=mysql_fetch_row(g_res))){ // 打印结果集
-    if (g_row[0] == NULL || g_row[1] == NULL || g_row[2] == NULL || g_row[3] == NULL){
+    if (g_row[0] == NULL || g_row[1] == NULL || g_row[2] == NULL || g_row[3] == NULL || g_row[4] == NULL){
         printf("some feild is empty!\n");
         continue;
     }
@@ -367,11 +368,20 @@ while ((g_row=mysql_fetch_row(g_res))){ // 打印结果集
     if(strcmp(g_row[3],"duplex") == 0){
         strcat(page_option,"d");
     }
+    memset(page_volume, 0, sizeof(page_volume));
+    pJson = cJSON_Parse(r_row[4]);
+    if(cJSON_GetObjectItem(pJson, "enableForce") != NULL && cJSON_IsBool(cJSON_GetObjectItem(pJson, "enableForce")))
+    {
+        if(cJSON_IsTrue(cJSON_GetObjectItem(pJson, "enableForce")))
+        {
+            sprintf(page_volume,";volume=%d",cJSON_GetObjectItem(pJson, "softvolume")->valueint);
+        }
+    }
 
     fprintf(conf_paging_fp, "\
 [paging-group-%s]\n\
 exten => %s,1,NoOp(%s)\n\
-same => n,MSet(__SRCEXTEN=${CALLERID(num)},__DESTS=%s,DATE=${STRFTIME(${EPOCH},,%%Y%%m%%d)},__UUID=${UNIQUEID},ALERTINFO=Alert-Info: Ring Answer,CALLINFO=Call-Info: <uri>\\;answer-after=0)\n\
+same => n,MSet(__SRCEXTEN=${CALLERID(num)},__DESTS=%s,DATE=${STRFTIME(${EPOCH},,%%Y%%m%%d)},__UUID=${UNIQUEID},ALERTINFO=Alert-Info: Ring Answer,CALLINFO=Call-Info: <uri>\\;answer-after=0%s)\n\
 same => n,SIPAddHeader(${ALERTINFO})\n\
 same => n,SIPAddHeader(${CALLINFO})\n\
 same => n,GotoIf($[\"foo${PAGING_RECORD}\" != \"fooyes\"]?unrc)\n\
@@ -396,6 +406,7 @@ g_row[2],\
 g_row[2],\
 g_row[1],\
 dest_tmp,\
+page_volume,\
 page_option,\
 exten_tmp,\
 page_option\
@@ -434,4 +445,5 @@ mysql_free_result(g_res); // 释放结果集
 mysql_free_result(d_res);
 mysql_free_result(r_res);
 mysql_close(g_conn); // 关闭链接
+cJSON_Delete(pJson);
 }

+ 1 - 1
usr/src/generate_group_conf.c.acorp

@@ -357,7 +357,7 @@ same => n,GotoIf($[\"foo${PAGING_RECORD}\" != \"fooyes\"]?unrc)\n\
 same => n,System(/bin/sh /etc/scripts/shell_scripts.sh mkrcdir paging ${DATE})\n\
 same => n,Set(FILENAME=paging/${DATE}/paging-${SRCEXTEN}-${UUID}.wav)\n\
 same => n,MixMonitor(${FILENAME},b)\n\
-same => n,Wait(0.5)\n\
+same => n(unrc),Wait(0.5)\n\
 same => n,Set(__CONFNO=${EXTEN})\n\
 same => n,MSet(startT=${STRFTIME(${EPOCH},,%%s)},__CALLEE=${DESTS},__calltype=paging)\n\
 same => n,MSet(CONFBRIDGE(user,quiet)=yes,CONFBRIDGE(user,marked)=yes)\n\

+ 8 - 0
usr/src/generate_trunk_conf.c

@@ -1036,6 +1036,14 @@ exten => %s,1,Goto(call-trigger,${EXTEN},1)\
 \n", \
 didObject[m].didnumber\
 );
+                }else if(strcmp(didObject[m].type, "user") == 0){
+                int id = 100000 + atoi(didObject[m].exten);
+                fprintf(did_fp, "\
+exten => %s,1,Goto(manager-queue-%d,s,1)\
+\n", \
+didObject[m].didnumber,\
+id\
+);
                 }
             }
             m++;