|
@@ -22,12 +22,11 @@
|
|
|
|
|
|
|
|
//KEYS
|
|
//KEYS
|
|
|
#define UNKEY 0
|
|
#define UNKEY 0
|
|
|
-#define KEY1 1
|
|
|
|
|
-#define KEY2 2
|
|
|
|
|
-#define KEY3 3
|
|
|
|
|
-#define KEY4_3 4
|
|
|
|
|
-#define KEY4_10 5
|
|
|
|
|
-#define DKEY 6
|
|
|
|
|
|
|
+#define KEY 1
|
|
|
|
|
+#define KEY2_3 2
|
|
|
|
|
+#define KEY2_10 3
|
|
|
|
|
+#define OPEN 4
|
|
|
|
|
+#define CLOSED 4
|
|
|
|
|
|
|
|
//SCHEDULE STATE
|
|
//SCHEDULE STATE
|
|
|
#define ERROR -1
|
|
#define ERROR -1
|
|
@@ -74,9 +73,7 @@
|
|
|
#define STA "SIP STATE"
|
|
#define STA "SIP STATE"
|
|
|
#define SCHED "SCHEDULE"
|
|
#define SCHED "SCHEDULE"
|
|
|
|
|
|
|
|
-#define GPIO_130 "gpio130"
|
|
|
|
|
-#define GPIO_RELAY "gpio67"
|
|
|
|
|
-#define GPIO_LED "gpio135"
|
|
|
|
|
|
|
+#define GPIO_RELAY "gpio112"
|
|
|
#define VAR_IP "${ip}"
|
|
#define VAR_IP "${ip}"
|
|
|
#define VAR_MAC "${mac}"
|
|
#define VAR_MAC "${mac}"
|
|
|
#define VAR_UA "${ua}"
|
|
#define VAR_UA "${ua}"
|
|
@@ -992,21 +989,6 @@ void ProcessReply( redisReply * pReply )
|
|
|
writeLog( STA, "CALL ESTABLISHED", "incoming" );
|
|
writeLog( STA, "CALL ESTABLISHED", "incoming" );
|
|
|
//amplifier_switch(TRUE);
|
|
//amplifier_switch(TRUE);
|
|
|
BARESIP_STATUS = INUSE;
|
|
BARESIP_STATUS = INUSE;
|
|
|
- switch(CURRENT_KEY){
|
|
|
|
|
- case KEY1:
|
|
|
|
|
- key1LedStatus = Led_Slow;
|
|
|
|
|
- key2LedStatus = Led_On;
|
|
|
|
|
- break;
|
|
|
|
|
- case KEY2:
|
|
|
|
|
- key1LedStatus = Led_On;
|
|
|
|
|
- key2LedStatus = Led_Slow;
|
|
|
|
|
- break;
|
|
|
|
|
- case UNKEY:
|
|
|
|
|
- case DKEY:
|
|
|
|
|
- key1LedStatus = Led_Slow;
|
|
|
|
|
- key2LedStatus = Led_Slow;
|
|
|
|
|
- break;
|
|
|
|
|
- }
|
|
|
|
|
answeredTrigger();
|
|
answeredTrigger();
|
|
|
}
|
|
}
|
|
|
else if(strcmp(cJSON_GetObjectItem(pJson, "direction")->valuestring, "outgoing") == 0 &&
|
|
else if(strcmp(cJSON_GetObjectItem(pJson, "direction")->valuestring, "outgoing") == 0 &&
|
|
@@ -1016,21 +998,6 @@ void ProcessReply( redisReply * pReply )
|
|
|
writeLog( STA, "CALL ESTABLISHED", "outgoing" );
|
|
writeLog( STA, "CALL ESTABLISHED", "outgoing" );
|
|
|
//amplifier_switch(TRUE);
|
|
//amplifier_switch(TRUE);
|
|
|
BARESIP_STATUS = INUSE;
|
|
BARESIP_STATUS = INUSE;
|
|
|
- switch(CURRENT_KEY){
|
|
|
|
|
- case KEY1:
|
|
|
|
|
- key1LedStatus = Led_Slow;
|
|
|
|
|
- key2LedStatus = Led_On;
|
|
|
|
|
- break;
|
|
|
|
|
- case KEY2:
|
|
|
|
|
- key1LedStatus = Led_On;
|
|
|
|
|
- key2LedStatus = Led_Slow;
|
|
|
|
|
- break;
|
|
|
|
|
- case UNKEY:
|
|
|
|
|
- case DKEY:
|
|
|
|
|
- key1LedStatus = Led_Slow;
|
|
|
|
|
- key2LedStatus = Led_Slow;
|
|
|
|
|
- break;
|
|
|
|
|
- }
|
|
|
|
|
answeredTrigger();
|
|
answeredTrigger();
|
|
|
}
|
|
}
|
|
|
else if(strcmp(cJSON_GetObjectItem(pJson, "direction")->valuestring, "incoming") == 0 &&
|
|
else if(strcmp(cJSON_GetObjectItem(pJson, "direction")->valuestring, "incoming") == 0 &&
|
|
@@ -1041,18 +1008,6 @@ void ProcessReply( redisReply * pReply )
|
|
|
writeLog( STA, "CALL CLOSED", cJSON_GetObjectItem(pJson, "param")->valuestring );
|
|
writeLog( STA, "CALL CLOSED", cJSON_GetObjectItem(pJson, "param")->valuestring );
|
|
|
if(BARESIP_STATUS != OFFLINE){
|
|
if(BARESIP_STATUS != OFFLINE){
|
|
|
BARESIP_STATUS = IDLE;
|
|
BARESIP_STATUS = IDLE;
|
|
|
- switch(CURRENT_KEY){
|
|
|
|
|
- case KEY1:
|
|
|
|
|
- key1LedStatus = Led_On;
|
|
|
|
|
- break;
|
|
|
|
|
- case KEY2:
|
|
|
|
|
- key2LedStatus = Led_On;
|
|
|
|
|
- break;
|
|
|
|
|
- case UNKEY:
|
|
|
|
|
- key1LedStatus = Led_On;
|
|
|
|
|
- key2LedStatus = Led_On;
|
|
|
|
|
- break;
|
|
|
|
|
- }
|
|
|
|
|
}
|
|
}
|
|
|
if(strlen(DTMF_STRING))
|
|
if(strlen(DTMF_STRING))
|
|
|
memset(DTMF_STRING, 0, sizeof(DTMF_STRING));
|
|
memset(DTMF_STRING, 0, sizeof(DTMF_STRING));
|
|
@@ -1077,18 +1032,6 @@ void ProcessReply( redisReply * pReply )
|
|
|
writeLog( STA, "CALL CLOSED", cJSON_GetObjectItem(pJson, "param")->valuestring );
|
|
writeLog( STA, "CALL CLOSED", cJSON_GetObjectItem(pJson, "param")->valuestring );
|
|
|
if(BARESIP_STATUS != OFFLINE){
|
|
if(BARESIP_STATUS != OFFLINE){
|
|
|
BARESIP_STATUS = IDLE;
|
|
BARESIP_STATUS = IDLE;
|
|
|
- switch(CURRENT_KEY){
|
|
|
|
|
- case KEY1:
|
|
|
|
|
- key1LedStatus = Led_On;
|
|
|
|
|
- break;
|
|
|
|
|
- case KEY2:
|
|
|
|
|
- key2LedStatus = Led_On;
|
|
|
|
|
- break;
|
|
|
|
|
- case DKEY:
|
|
|
|
|
- key1LedStatus = Led_On;
|
|
|
|
|
- key2LedStatus = Led_On;
|
|
|
|
|
- break;
|
|
|
|
|
- }
|
|
|
|
|
}
|
|
}
|
|
|
CURRENT_KEY = UNKEY;
|
|
CURRENT_KEY = UNKEY;
|
|
|
if(strlen(DTMF_STRING))
|
|
if(strlen(DTMF_STRING))
|
|
@@ -1115,8 +1058,6 @@ void ProcessReply( redisReply * pReply )
|
|
|
if(BARESIP_STATUS == IDLE)
|
|
if(BARESIP_STATUS == IDLE)
|
|
|
{
|
|
{
|
|
|
BARESIP_STATUS = RING;
|
|
BARESIP_STATUS = RING;
|
|
|
- key1LedStatus = Led_Fast;
|
|
|
|
|
- key2LedStatus = Led_Fast;
|
|
|
|
|
CURRENT_KEY = UNKEY;
|
|
CURRENT_KEY = UNKEY;
|
|
|
incomingTrigger();
|
|
incomingTrigger();
|
|
|
}
|
|
}
|
|
@@ -1139,14 +1080,6 @@ void ProcessReply( redisReply * pReply )
|
|
|
if(BARESIP_STATUS == IDLE || BARESIP_STATUS == DIALING)
|
|
if(BARESIP_STATUS == IDLE || BARESIP_STATUS == DIALING)
|
|
|
{
|
|
{
|
|
|
BARESIP_STATUS = RINGING;
|
|
BARESIP_STATUS = RINGING;
|
|
|
- switch(CURRENT_KEY){
|
|
|
|
|
- case KEY1:
|
|
|
|
|
- key1LedStatus = Led_Fast;
|
|
|
|
|
- break;
|
|
|
|
|
- case KEY2:
|
|
|
|
|
- key2LedStatus = Led_Fast;
|
|
|
|
|
- break;
|
|
|
|
|
- }
|
|
|
|
|
outgoingTrigger();
|
|
outgoingTrigger();
|
|
|
}
|
|
}
|
|
|
memset(callerid, 0, sizeof(callerid));
|
|
memset(callerid, 0, sizeof(callerid));
|
|
@@ -1173,8 +1106,6 @@ void ProcessReply( redisReply * pReply )
|
|
|
if(BARESIP_STATUS == OFFLINE || BARESIP_STATUS == DIALING || strcmp(cJSON_GetObjectItem(pJson, "class")->valuestring, "init register") == 0)
|
|
if(BARESIP_STATUS == OFFLINE || BARESIP_STATUS == DIALING || strcmp(cJSON_GetObjectItem(pJson, "class")->valuestring, "init register") == 0)
|
|
|
{
|
|
{
|
|
|
BARESIP_STATUS = IDLE;
|
|
BARESIP_STATUS = IDLE;
|
|
|
- key1LedStatus = Led_On;
|
|
|
|
|
- key2LedStatus = Led_On;
|
|
|
|
|
CURRENT_CALLS = 0;
|
|
CURRENT_CALLS = 0;
|
|
|
}
|
|
}
|
|
|
if(cJSON_GetObjectItem(pJson, "accountaor") != NULL)
|
|
if(cJSON_GetObjectItem(pJson, "accountaor") != NULL)
|
|
@@ -1265,8 +1196,6 @@ void ProcessReply( redisReply * pReply )
|
|
|
ACCOUNT1_REG = REGISTER_FAIL;
|
|
ACCOUNT1_REG = REGISTER_FAIL;
|
|
|
if( ACCOUNT2_REG == REGISTER_FAIL && ACCOUNT3_REG == REGISTER_FAIL && ACCOUNTP2P_REG == REGISTER_FAIL ){
|
|
if( ACCOUNT2_REG == REGISTER_FAIL && ACCOUNT3_REG == REGISTER_FAIL && ACCOUNTP2P_REG == REGISTER_FAIL ){
|
|
|
BARESIP_STATUS = OFFLINE;
|
|
BARESIP_STATUS = OFFLINE;
|
|
|
- key1LedStatus = Led_Off;
|
|
|
|
|
- key2LedStatus = Led_Off;
|
|
|
|
|
}
|
|
}
|
|
|
sprintf(strtmp,"Primary Account REGISTER FAILED <%s>",accountaor1);
|
|
sprintf(strtmp,"Primary Account REGISTER FAILED <%s>",accountaor1);
|
|
|
writeLog( STA, strtmp, cJSON_GetObjectItem(pJson, "param")->valuestring );
|
|
writeLog( STA, strtmp, cJSON_GetObjectItem(pJson, "param")->valuestring );
|
|
@@ -1290,8 +1219,6 @@ void ProcessReply( redisReply * pReply )
|
|
|
ACCOUNT2_REG = REGISTER_FAIL;
|
|
ACCOUNT2_REG = REGISTER_FAIL;
|
|
|
if( ACCOUNT1_REG == REGISTER_FAIL && ACCOUNT3_REG == REGISTER_FAIL && ACCOUNTP2P_REG == REGISTER_FAIL ){
|
|
if( ACCOUNT1_REG == REGISTER_FAIL && ACCOUNT3_REG == REGISTER_FAIL && ACCOUNTP2P_REG == REGISTER_FAIL ){
|
|
|
BARESIP_STATUS = OFFLINE;
|
|
BARESIP_STATUS = OFFLINE;
|
|
|
- key1LedStatus = Led_Off;
|
|
|
|
|
- key2LedStatus = Led_Off;
|
|
|
|
|
}
|
|
}
|
|
|
sprintf(strtmp,"Secondary Account-1 REGISTER FAILED <%s>",accountaor2);
|
|
sprintf(strtmp,"Secondary Account-1 REGISTER FAILED <%s>",accountaor2);
|
|
|
writeLog( STA, strtmp, cJSON_GetObjectItem(pJson, "param")->valuestring );
|
|
writeLog( STA, strtmp, cJSON_GetObjectItem(pJson, "param")->valuestring );
|
|
@@ -1315,8 +1242,6 @@ void ProcessReply( redisReply * pReply )
|
|
|
ACCOUNT3_REG = REGISTER_FAIL;
|
|
ACCOUNT3_REG = REGISTER_FAIL;
|
|
|
if( ACCOUNT1_REG == REGISTER_FAIL && ACCOUNT2_REG == REGISTER_FAIL && ACCOUNTP2P_REG == REGISTER_FAIL ){
|
|
if( ACCOUNT1_REG == REGISTER_FAIL && ACCOUNT2_REG == REGISTER_FAIL && ACCOUNTP2P_REG == REGISTER_FAIL ){
|
|
|
BARESIP_STATUS = OFFLINE;
|
|
BARESIP_STATUS = OFFLINE;
|
|
|
- key1LedStatus = Led_Off;
|
|
|
|
|
- key2LedStatus = Led_Off;
|
|
|
|
|
}
|
|
}
|
|
|
sprintf(strtmp,"Secondary Account-2 REGISTER FAILED <%s>",accountaor3);
|
|
sprintf(strtmp,"Secondary Account-2 REGISTER FAILED <%s>",accountaor3);
|
|
|
writeLog( STA, strtmp, cJSON_GetObjectItem(pJson, "param")->valuestring );
|
|
writeLog( STA, strtmp, cJSON_GetObjectItem(pJson, "param")->valuestring );
|
|
@@ -1331,8 +1256,6 @@ void ProcessReply( redisReply * pReply )
|
|
|
{
|
|
{
|
|
|
//如果是注册失败熄灭指示灯
|
|
//如果是注册失败熄灭指示灯
|
|
|
BARESIP_STATUS = OFFLINE;
|
|
BARESIP_STATUS = OFFLINE;
|
|
|
- key1LedStatus = Led_Off;
|
|
|
|
|
- key2LedStatus = Led_Off;
|
|
|
|
|
ACCOUNT1_REG = REGISTER_FAIL;
|
|
ACCOUNT1_REG = REGISTER_FAIL;
|
|
|
ACCOUNT2_REG = REGISTER_FAIL;
|
|
ACCOUNT2_REG = REGISTER_FAIL;
|
|
|
ACCOUNT3_REG = REGISTER_FAIL;
|
|
ACCOUNT3_REG = REGISTER_FAIL;
|
|
@@ -1347,8 +1270,6 @@ void ProcessReply( redisReply * pReply )
|
|
|
if(strcmp(p2penable,"yes") == 0)
|
|
if(strcmp(p2penable,"yes") == 0)
|
|
|
{
|
|
{
|
|
|
BARESIP_STATUS = IDLE;
|
|
BARESIP_STATUS = IDLE;
|
|
|
- key1LedStatus = Led_On;
|
|
|
|
|
- key2LedStatus = Led_On;
|
|
|
|
|
if(ACCOUNTP2P_REG == REGISTER_FAIL)
|
|
if(ACCOUNTP2P_REG == REGISTER_FAIL)
|
|
|
{
|
|
{
|
|
|
ACCOUNTP2P_REG = REGISTER_OK;
|
|
ACCOUNTP2P_REG = REGISTER_OK;
|
|
@@ -1430,13 +1351,13 @@ void keyAction(int key)
|
|
|
printf( "BARESIP_STATUS [%d]\n", BARESIP_STATUS );
|
|
printf( "BARESIP_STATUS [%d]\n", BARESIP_STATUS );
|
|
|
|
|
|
|
|
switch(key){
|
|
switch(key){
|
|
|
- case KEY1://处理按键1动作
|
|
|
|
|
- if( CURRENT_KEY == UNKEY || CURRENT_KEY == KEY1 )
|
|
|
|
|
|
|
+ case KEY://处理按键动作
|
|
|
|
|
+ if( CURRENT_KEY == UNKEY || CURRENT_KEY == KEY )
|
|
|
{
|
|
{
|
|
|
switch(BARESIP_STATUS)
|
|
switch(BARESIP_STATUS)
|
|
|
{
|
|
{
|
|
|
case IDLE:
|
|
case IDLE:
|
|
|
- CURRENT_KEY = KEY1;
|
|
|
|
|
|
|
+ CURRENT_KEY = KEY;
|
|
|
BARESIP_STATUS = DIALING;
|
|
BARESIP_STATUS = DIALING;
|
|
|
GetCmdValue(SPK_CONF, "intercom:onekey_1_num", onekey_num, sizeof(onekey_num));
|
|
GetCmdValue(SPK_CONF, "intercom:onekey_1_num", onekey_num, sizeof(onekey_num));
|
|
|
GetCmdValue(SPK_CONF, "intercom:onekey_1_line", onekey_line, sizeof(onekey_line));
|
|
GetCmdValue(SPK_CONF, "intercom:onekey_1_line", onekey_line, sizeof(onekey_line));
|
|
@@ -1519,7 +1440,7 @@ void keyAction(int key)
|
|
|
printf( "dial [%s]\n", cmd );
|
|
printf( "dial [%s]\n", cmd );
|
|
|
control_cmd(channel, cmd);
|
|
control_cmd(channel, cmd);
|
|
|
sprintf(strtmp, "%s <%s>", onekey_num, onekey_line);
|
|
sprintf(strtmp, "%s <%s>", onekey_num, onekey_line);
|
|
|
- writeLog( FUN, "KEY1 Call", strtmp );
|
|
|
|
|
|
|
+ writeLog( FUN, "KEY Call", strtmp );
|
|
|
break;
|
|
break;
|
|
|
case RINGING:
|
|
case RINGING:
|
|
|
case INUSE:
|
|
case INUSE:
|
|
@@ -1529,161 +1450,16 @@ void keyAction(int key)
|
|
|
if(DEBUG)
|
|
if(DEBUG)
|
|
|
printf( "hangup call\n" );
|
|
printf( "hangup call\n" );
|
|
|
control_cmd(channel, cmd);
|
|
control_cmd(channel, cmd);
|
|
|
- writeLog( FUN, "KEY1 Hangup", "" );
|
|
|
|
|
|
|
+ writeLog( FUN, "KEY Hangup", "" );
|
|
|
}
|
|
}
|
|
|
break;
|
|
break;
|
|
|
case RING:
|
|
case RING:
|
|
|
- CURRENT_KEY = KEY1;
|
|
|
|
|
|
|
+ CURRENT_KEY = KEY;
|
|
|
strcpy(cmd,"{\"cmd\":\"accept\",\"data\":\"\"}");
|
|
strcpy(cmd,"{\"cmd\":\"accept\",\"data\":\"\"}");
|
|
|
if(DEBUG)
|
|
if(DEBUG)
|
|
|
printf( "answer call\n" );
|
|
printf( "answer call\n" );
|
|
|
control_cmd(channel, cmd);
|
|
control_cmd(channel, cmd);
|
|
|
- writeLog( FUN, "KEY1 Answer", "" );
|
|
|
|
|
- break;
|
|
|
|
|
- case OFFLINE:
|
|
|
|
|
- GetCmdValue(SPK_CONF, "call_action_url:unregistered_enable", enable, sizeof(enable));
|
|
|
|
|
- if(strcmp(enable,"yes") == 0)
|
|
|
|
|
- {
|
|
|
|
|
- GetCmdValue(SPK_CONF, "call_action_url:unregistered_url", url, sizeof(url));
|
|
|
|
|
- if(strstr(url,VAR_IP))
|
|
|
|
|
- {
|
|
|
|
|
- if(get_ip(ipaddr))
|
|
|
|
|
- strcpy(url, strrpl(url, VAR_IP, ipaddr));
|
|
|
|
|
- }
|
|
|
|
|
- if(strstr(url,VAR_MAC))
|
|
|
|
|
- {
|
|
|
|
|
- if(get_mac(macaddr))
|
|
|
|
|
- strcpy(url, strrpl(url, VAR_MAC, macaddr));
|
|
|
|
|
- }
|
|
|
|
|
- if(strstr(url,VAR_UA))
|
|
|
|
|
- {
|
|
|
|
|
- GetCmdValue(SPK_CONF, "intercom:onekey_line", onekey_line, sizeof(onekey_line));
|
|
|
|
|
- sprintf(strtmp,"%s:username",onekey_line);
|
|
|
|
|
- GetCmdValue(SPK_CONF, strtmp, account, sizeof(account));
|
|
|
|
|
- strcpy(url, strrpl(url, VAR_UA, account));
|
|
|
|
|
- }
|
|
|
|
|
- if(strstr(url,VAR_NUM))
|
|
|
|
|
- {
|
|
|
|
|
- GetCmdValue(SPK_CONF, "intercom:onekey_num", onekey_num, sizeof(onekey_num));
|
|
|
|
|
- strcpy(url, strrpl(url, VAR_NUM, onekey_num));
|
|
|
|
|
- }
|
|
|
|
|
- action_url(url);
|
|
|
|
|
- writeLog(FUN, "HTTP Request", url);
|
|
|
|
|
- }
|
|
|
|
|
- break;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- break;
|
|
|
|
|
- case KEY2://处理按键2动作
|
|
|
|
|
- if( CURRENT_KEY == UNKEY || CURRENT_KEY == KEY2 )
|
|
|
|
|
- {
|
|
|
|
|
- switch(BARESIP_STATUS)
|
|
|
|
|
- {
|
|
|
|
|
- case IDLE:
|
|
|
|
|
- CURRENT_KEY = KEY2;
|
|
|
|
|
- BARESIP_STATUS = DIALING;
|
|
|
|
|
- system("/app/ispeaker-service/bin/ispeakerctl stop_music");
|
|
|
|
|
- GetCmdValue(SPK_CONF, "intercom:onekey_2_num", onekey_num, sizeof(onekey_num));
|
|
|
|
|
- GetCmdValue(SPK_CONF, "intercom:onekey_2_line", onekey_line, sizeof(onekey_line));
|
|
|
|
|
- if(strlen(onekey_num) == 0)
|
|
|
|
|
- {
|
|
|
|
|
- BARESIP_STATUS = IDLE;
|
|
|
|
|
- break;
|
|
|
|
|
- }
|
|
|
|
|
- get_line(line_id);
|
|
|
|
|
- if(strcmp(onekey_line,"auto") == 0)
|
|
|
|
|
- {
|
|
|
|
|
- if(DEBUG)
|
|
|
|
|
- printf("ACCOUNT1 is %d, ACCOUNT2 is %d, ACCOUNT3 is %d\n",ACCOUNT1_REG,ACCOUNT2_REG,ACCOUNT3_REG);
|
|
|
|
|
- if(ACCOUNT1_REG == REGISTER_OK)
|
|
|
|
|
- {
|
|
|
|
|
- if(line_id[1] == -1)
|
|
|
|
|
- {
|
|
|
|
|
- BARESIP_STATUS = IDLE;
|
|
|
|
|
- break;
|
|
|
|
|
- }
|
|
|
|
|
- sprintf(cmd,"{\"cmd\":\"dial\",\"data\":\"%s %d\"}",onekey_num, line_id[1]);
|
|
|
|
|
- }
|
|
|
|
|
- else if(ACCOUNT2_REG == REGISTER_OK)
|
|
|
|
|
- {
|
|
|
|
|
- if(line_id[2] == -1)
|
|
|
|
|
- {
|
|
|
|
|
- BARESIP_STATUS = IDLE;
|
|
|
|
|
- break;
|
|
|
|
|
- }
|
|
|
|
|
- sprintf(cmd,"{\"cmd\":\"dial\",\"data\":\"%s %d\"}",onekey_num, line_id[2]);
|
|
|
|
|
- }
|
|
|
|
|
- else if(ACCOUNT3_REG == REGISTER_OK)
|
|
|
|
|
- {
|
|
|
|
|
- if(line_id[3] == -1)
|
|
|
|
|
- {
|
|
|
|
|
- BARESIP_STATUS = IDLE;
|
|
|
|
|
- break;
|
|
|
|
|
- }
|
|
|
|
|
- sprintf(cmd,"{\"cmd\":\"dial\",\"data\":\"%s %d\"}",onekey_num, line_id[3]);
|
|
|
|
|
- }
|
|
|
|
|
- else
|
|
|
|
|
- {
|
|
|
|
|
- BARESIP_STATUS = IDLE;
|
|
|
|
|
- break;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- else if (strcmp(onekey_line, "account_info_1") == 0)
|
|
|
|
|
- {
|
|
|
|
|
- if(line_id[1] == -1 || ACCOUNT1_REG != REGISTER_OK)
|
|
|
|
|
- {
|
|
|
|
|
- BARESIP_STATUS = IDLE;
|
|
|
|
|
- break;
|
|
|
|
|
- }
|
|
|
|
|
- sprintf(cmd,"{\"cmd\":\"dial\",\"data\":\"%s %d\"}",onekey_num, line_id[1]);
|
|
|
|
|
- }
|
|
|
|
|
- else if (strcmp(onekey_line, "account_info_2") == 0)
|
|
|
|
|
- {
|
|
|
|
|
- if(line_id[2] == -1 || ACCOUNT2_REG != REGISTER_OK)
|
|
|
|
|
- {
|
|
|
|
|
- BARESIP_STATUS = IDLE;
|
|
|
|
|
- break;
|
|
|
|
|
- }
|
|
|
|
|
- sprintf(cmd,"{\"cmd\":\"dial\",\"data\":\"%s %d\"}",onekey_num, line_id[2]);
|
|
|
|
|
- }
|
|
|
|
|
- else if (strcmp(onekey_line, "account_info_3") == 0)
|
|
|
|
|
- {
|
|
|
|
|
- if(line_id[3] == -1 || ACCOUNT3_REG != REGISTER_OK)
|
|
|
|
|
- {
|
|
|
|
|
- BARESIP_STATUS = IDLE;
|
|
|
|
|
- break;
|
|
|
|
|
- }
|
|
|
|
|
- sprintf(cmd,"{\"cmd\":\"dial\",\"data\":\"%s %d\"}",onekey_num, line_id[3]);
|
|
|
|
|
- }
|
|
|
|
|
- else if(strcmp(onekey_line,"p2p") == 0)
|
|
|
|
|
- {
|
|
|
|
|
- sprintf(cmd,"{\"cmd\":\"dial\",\"data\":\"%s\"}",onekey_num);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if(DEBUG)
|
|
|
|
|
- printf( "dial [%s]\n", cmd );
|
|
|
|
|
- control_cmd(channel, cmd);
|
|
|
|
|
- sprintf(strtmp, "%s <%s>", onekey_num, onekey_line);
|
|
|
|
|
- writeLog( FUN, "KEY2 Call", strtmp );
|
|
|
|
|
- break;
|
|
|
|
|
- case RINGING:
|
|
|
|
|
- case INUSE:
|
|
|
|
|
- GetCmdValue(SPK_CONF, "intercom:repress_2_cancel", repress_cancel, sizeof(repress_cancel));
|
|
|
|
|
- if(strcmp(repress_cancel, "yes") == 0){
|
|
|
|
|
- strcpy(cmd,"{\"cmd\":\"hangup\",\"data\":\"\"}");
|
|
|
|
|
- if(DEBUG)
|
|
|
|
|
- printf( "hangup call\n" );
|
|
|
|
|
- control_cmd(channel, cmd);
|
|
|
|
|
- writeLog( FUN, "KEY2 Hangup", "" );
|
|
|
|
|
- }
|
|
|
|
|
- break;
|
|
|
|
|
- case RING:
|
|
|
|
|
- CURRENT_KEY = KEY2;
|
|
|
|
|
- strcpy(cmd,"{\"cmd\":\"accept\",\"data\":\"\"}");
|
|
|
|
|
- if(DEBUG)
|
|
|
|
|
- printf( "answer call\n" );
|
|
|
|
|
- control_cmd(channel, cmd);
|
|
|
|
|
- writeLog( FUN, "KEY2 Answer", "" );
|
|
|
|
|
|
|
+ writeLog( FUN, "KEY Answer", "" );
|
|
|
break;
|
|
break;
|
|
|
case OFFLINE:
|
|
case OFFLINE:
|
|
|
GetCmdValue(SPK_CONF, "call_action_url:unregistered_enable", enable, sizeof(enable));
|
|
GetCmdValue(SPK_CONF, "call_action_url:unregistered_enable", enable, sizeof(enable));
|
|
@@ -1719,17 +1495,13 @@ void keyAction(int key)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
break;
|
|
break;
|
|
|
- case KEY3:
|
|
|
|
|
|
|
+ case KEY2_10:
|
|
|
system("/etc/scripts/play_rebooting.sh");
|
|
system("/etc/scripts/play_rebooting.sh");
|
|
|
system("rm -f /oem/.userdata && /sbin/reboot");
|
|
system("rm -f /oem/.userdata && /sbin/reboot");
|
|
|
break;
|
|
break;
|
|
|
- case KEY4_3:
|
|
|
|
|
|
|
+ case KEY2_3:
|
|
|
PlayIP();
|
|
PlayIP();
|
|
|
break;
|
|
break;
|
|
|
- case KEY4_10:
|
|
|
|
|
- system("/etc/scripts/play_rebooting.sh 1");
|
|
|
|
|
- system("/sbin/reboot");
|
|
|
|
|
- break;
|
|
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -1750,74 +1522,6 @@ void *checkReg()
|
|
|
regcount = 0;
|
|
regcount = 0;
|
|
|
iniparser_freedict(ini);
|
|
iniparser_freedict(ini);
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
-//根据不同的业务状态点灯
|
|
|
|
|
-void *led_status()
|
|
|
|
|
-{
|
|
|
|
|
- int ledFlashTime = 0,led1FlashTag1 = 0,led1FlashTag2 = 0,led2FlashTag1 = 0,led2FlashTag2 = 0, count = 0;
|
|
|
|
|
- pthread_t thread1;
|
|
|
|
|
- while(1)
|
|
|
|
|
- {
|
|
|
|
|
- usleep(10 * 1000);
|
|
|
|
|
- /* led flash controller */
|
|
|
|
|
- ledFlashTime++;
|
|
|
|
|
-
|
|
|
|
|
- if(ledFlashTime == 47 || ledFlashTime == 143){
|
|
|
|
|
- if(key1LedStatus == Led_On)
|
|
|
|
|
- system("echo 0 > /sys/class/gpio/gpio130/value");
|
|
|
|
|
- else if(key1LedStatus == Led_Off)
|
|
|
|
|
- system("echo 1 > /sys/class/gpio/gpio130/value");
|
|
|
|
|
- if(key2LedStatus == Led_On)
|
|
|
|
|
- system("echo 0 > /sys/class/gpio/gpio131/value");
|
|
|
|
|
- else if(key2LedStatus == Led_Off)
|
|
|
|
|
- system("echo 1 > /sys/class/gpio/gpio131/value");
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if(ledFlashTime % 19 == 0){
|
|
|
|
|
- if(key1LedStatus == Led_Fast){
|
|
|
|
|
- led1FlashTag1 = !led1FlashTag1;
|
|
|
|
|
- if(led1FlashTag1){
|
|
|
|
|
- system("echo 0 > /sys/class/gpio/gpio130/value");
|
|
|
|
|
- }else{
|
|
|
|
|
- system("echo 1 > /sys/class/gpio/gpio130/value");
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- if(key2LedStatus == Led_Fast){
|
|
|
|
|
- led2FlashTag1 = !led2FlashTag1;
|
|
|
|
|
- if(led2FlashTag1){
|
|
|
|
|
- system("echo 0 > /sys/class/gpio/gpio131/value");
|
|
|
|
|
- }else{
|
|
|
|
|
- system("echo 1 > /sys/class/gpio/gpio131/value");
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if(ledFlashTime % 99 == 0){
|
|
|
|
|
- if(key1LedStatus == Led_Slow){
|
|
|
|
|
- led1FlashTag2 = !led1FlashTag2;
|
|
|
|
|
- if(led1FlashTag2){
|
|
|
|
|
- system("echo 0 > /sys/class/gpio/gpio130/value");
|
|
|
|
|
- }else{
|
|
|
|
|
- system("echo 1 > /sys/class/gpio/gpio130/value");
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- if(key2LedStatus == Led_Slow){
|
|
|
|
|
- led2FlashTag2 = !led2FlashTag2;
|
|
|
|
|
- if(led2FlashTag2){
|
|
|
|
|
- system("echo 0 > /sys/class/gpio/gpio131/value");
|
|
|
|
|
- }else{
|
|
|
|
|
- system("echo 1 > /sys/class/gpio/gpio131/value");
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /* restart the led flash loop */
|
|
|
|
|
- if(ledFlashTime == 200)
|
|
|
|
|
- {
|
|
|
|
|
- ledFlashTime = 0;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-}
|
|
|
|
|
|
|
|
|
|
void reset_vlcInfo(int id)
|
|
void reset_vlcInfo(int id)
|
|
|
{
|
|
{
|
|
@@ -2226,9 +1930,9 @@ void *handleDateTime()
|
|
|
|
|
|
|
|
if(pTM->tm_sec == 0)
|
|
if(pTM->tm_sec == 0)
|
|
|
{
|
|
{
|
|
|
- year = pTM->tm_year + 1900;
|
|
|
|
|
- month = pTM->tm_mon + 1;
|
|
|
|
|
- schedule(year, month, pTM->tm_mday, pTM->tm_hour, pTM->tm_min, pTM->tm_wday);
|
|
|
|
|
|
|
+ // year = pTM->tm_year + 1900;
|
|
|
|
|
+ // month = pTM->tm_mon + 1;
|
|
|
|
|
+ // schedule(year, month, pTM->tm_mday, pTM->tm_hour, pTM->tm_min, pTM->tm_wday);
|
|
|
count ++;
|
|
count ++;
|
|
|
if(count > 120)
|
|
if(count > 120)
|
|
|
{
|
|
{
|
|
@@ -2408,8 +2112,8 @@ void sip_reg_status_init()
|
|
|
|
|
|
|
|
const int init()
|
|
const int init()
|
|
|
{
|
|
{
|
|
|
- int ret_thrd1,ret_thrd2,ret_thrd3,ret_thrd4,ret_thrd5;
|
|
|
|
|
- pthread_t thread1, thread2, thread3, thread4, thread5;
|
|
|
|
|
|
|
+ int ret_thrd1,ret_thrd2,ret_thrd3,ret_thrd4;
|
|
|
|
|
+ pthread_t thread1, thread2, thread3, thread4;
|
|
|
|
|
|
|
|
redisClient = create_redis_pool_client(unix_socket_path);
|
|
redisClient = create_redis_pool_client(unix_socket_path);
|
|
|
|
|
|
|
@@ -2423,32 +2127,26 @@ const int init()
|
|
|
printf("create thread1 baresip_status failed\n");
|
|
printf("create thread1 baresip_status failed\n");
|
|
|
return FALSE;
|
|
return FALSE;
|
|
|
}
|
|
}
|
|
|
- //启动线程根据不同的业务状态点亮状态指示灯
|
|
|
|
|
- ret_thrd2 = pthread_create(&thread2, NULL, led_status, NULL);
|
|
|
|
|
- if (ret_thrd2 != 0) {
|
|
|
|
|
- printf("create thread2 led_status failed\n");
|
|
|
|
|
- return FALSE;
|
|
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
//启动日志记录线程
|
|
//启动日志记录线程
|
|
|
- ret_thrd3 = pthread_create(&thread3, NULL, write_opnlog, NULL);
|
|
|
|
|
- if (ret_thrd3 != 0) {
|
|
|
|
|
- printf("create thread3 write_opnlog failed\n");
|
|
|
|
|
|
|
+ ret_thrd2 = pthread_create(&thread2, NULL, write_opnlog, NULL);
|
|
|
|
|
+ if (ret_thrd2 != 0) {
|
|
|
|
|
+ printf("create thread2 write_opnlog failed\n");
|
|
|
return FALSE;
|
|
return FALSE;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//启动系统时间显示线程
|
|
//启动系统时间显示线程
|
|
|
- ret_thrd4 = pthread_create(&thread4, NULL, handleDateTime, NULL);
|
|
|
|
|
- if (ret_thrd4 != 0)
|
|
|
|
|
|
|
+ ret_thrd3 = pthread_create(&thread3, NULL, handleDateTime, NULL);
|
|
|
|
|
+ if (ret_thrd3 != 0)
|
|
|
{
|
|
{
|
|
|
- printf("create thread4 handleDateTime failed\n");
|
|
|
|
|
|
|
+ printf("create thread3 handleDateTime failed\n");
|
|
|
return FALSE;
|
|
return FALSE;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//启动线程订阅音量设置
|
|
//启动线程订阅音量设置
|
|
|
- ret_thrd5 = pthread_create(&thread5, NULL, get_volume_info, NULL);
|
|
|
|
|
- if (ret_thrd5 != 0) {
|
|
|
|
|
- printf("create thread5 get_volume_info failed\n");
|
|
|
|
|
|
|
+ ret_thrd4 = pthread_create(&thread4, NULL, get_volume_info, NULL);
|
|
|
|
|
+ if (ret_thrd4 != 0) {
|
|
|
|
|
+ printf("create thread4 get_volume_info failed\n");
|
|
|
return FALSE;
|
|
return FALSE;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -2471,7 +2169,7 @@ int main(int argc, char *argv[]){
|
|
|
exit( -1 );
|
|
exit( -1 );
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- /* SWITCH */
|
|
|
|
|
|
|
+ /* BUTTON */
|
|
|
switch_fd = open("/sys/class/gpio/gpio111/value", O_RDONLY);
|
|
switch_fd = open("/sys/class/gpio/gpio111/value", O_RDONLY);
|
|
|
read(switch_fd, buf, sizeof(buf));
|
|
read(switch_fd, buf, sizeof(buf));
|
|
|
lseek(switch_fd, 0, SEEK_SET);
|
|
lseek(switch_fd, 0, SEEK_SET);
|
|
@@ -2496,7 +2194,7 @@ int main(int argc, char *argv[]){
|
|
|
|
|
|
|
|
if(ret == 0)
|
|
if(ret == 0)
|
|
|
continue;
|
|
continue;
|
|
|
- /*SWITCH*/
|
|
|
|
|
|
|
+ /*BUTTON*/
|
|
|
if( fdset[0].revents & POLLPRI )
|
|
if( fdset[0].revents & POLLPRI )
|
|
|
{
|
|
{
|
|
|
count = 0;
|
|
count = 0;
|
|
@@ -2510,151 +2208,30 @@ int main(int argc, char *argv[]){
|
|
|
}
|
|
}
|
|
|
// printf("zero counts: %d\n", count);
|
|
// printf("zero counts: %d\n", count);
|
|
|
if (count >= 70) {
|
|
if (count >= 70) {
|
|
|
- GetCmdValue(SPK_CONF, "intercom:type", type, sizeof(type));
|
|
|
|
|
- GetCmdValue(SPK_CONF, "trigger:input", input, sizeof(input));
|
|
|
|
|
- if(strcmp(type,"key") == 0)
|
|
|
|
|
- {
|
|
|
|
|
- playBeep();
|
|
|
|
|
|
|
+ playBeep();
|
|
|
|
|
+ if(DEBUG)
|
|
|
printf("KEY DOWN\n");
|
|
printf("KEY DOWN\n");
|
|
|
- writeLog(BTN, "KEY", "Click");
|
|
|
|
|
-
|
|
|
|
|
- char action[8],url[256];
|
|
|
|
|
- GetCmdValue(SPK_CONF, "intercom:key_action", action, sizeof(action));
|
|
|
|
|
- if(strcmp(action,"call") == 0)
|
|
|
|
|
- {
|
|
|
|
|
- outgoingCall(KEY);
|
|
|
|
|
- }
|
|
|
|
|
- else if(strcmp(action,"http") == 0)
|
|
|
|
|
- {
|
|
|
|
|
- GetCmdValue(SPK_CONF, "intercom:http_url", url, sizeof(url));
|
|
|
|
|
- action_url(url);
|
|
|
|
|
- writeLog(FUN, "KEY HTTP Request", url);
|
|
|
|
|
- }
|
|
|
|
|
- else if(strcmp(action,"play") == 0)
|
|
|
|
|
- {
|
|
|
|
|
- char audiofile[32],repeat_tmp[16];
|
|
|
|
|
- GetCmdValue(SPK_CONF, "intercom:audio_file", audiofile, sizeof(audiofile));
|
|
|
|
|
- GetCmdValue(SPK_CONF, "intercom:audio_repeat", repeat_tmp, sizeof(repeat_tmp));
|
|
|
|
|
- int repeat = atoi(repeat_tmp);
|
|
|
|
|
- play_audio(audiofile,repeat);
|
|
|
|
|
- sprintf(strtmp, "File: %s; Repeat: %d", audiofile, repeat);
|
|
|
|
|
- writeLog( FUN, "KEY Play Auido", strtmp );
|
|
|
|
|
- }
|
|
|
|
|
- if(strcmp(input,"key") == 0)
|
|
|
|
|
- {
|
|
|
|
|
- outputControl(GPIO_135, GPIO_ON);
|
|
|
|
|
- if(DEBUG)
|
|
|
|
|
- printf( "gpio135 set on\n" );
|
|
|
|
|
- //gpio触发后判断是否为延时复位
|
|
|
|
|
- pthread_t thread_delay;
|
|
|
|
|
- pthread_create(&thread_delay, NULL, gpioDelayControl, NULL);
|
|
|
|
|
- pthread_detach(thread_delay);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ writeLog(BTN, "KEY", "DOWN");
|
|
|
|
|
+ GetCmdValue(SPK_CONF, "intercom:key_1_action", action, sizeof(action));
|
|
|
|
|
+ if(strcmp(action,"call") == 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ keyAction(KEY);
|
|
|
}
|
|
}
|
|
|
- else if(strcmp(type,"switch") == 0)
|
|
|
|
|
|
|
+ if(strcmp(action,"http") == 0)
|
|
|
{
|
|
{
|
|
|
- char action[8],url[256];
|
|
|
|
|
- writeLog(FUN, "SWITCH", "CLOSED");
|
|
|
|
|
- GetCmdValue(SPK_CONF, "intercom:closed_action", action, sizeof(action));
|
|
|
|
|
- if(strcmp(action,"call") == 0)
|
|
|
|
|
- {
|
|
|
|
|
- outgoingCall(CLOSED);
|
|
|
|
|
- }
|
|
|
|
|
- else if(strcmp(action,"hangup") == 0)
|
|
|
|
|
- {
|
|
|
|
|
- if(BARESIP_STATUS == RINGING || BARESIP_STATUS == INUSE)
|
|
|
|
|
- {
|
|
|
|
|
- if(DEBUG)
|
|
|
|
|
- printf( "hangup call\n" );
|
|
|
|
|
- control_cmd(BARESIP_CHAN, "{\"cmd\":\"hangup\",\"data\":\"\"}");
|
|
|
|
|
- writeLog( FUN, "CLOSED Hangup", "" );
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- else if(strcmp(action,"http") == 0)
|
|
|
|
|
- {
|
|
|
|
|
- GetCmdValue(SPK_CONF, "intercom:closed_http_url", url, sizeof(url));
|
|
|
|
|
- action_url(url);
|
|
|
|
|
- writeLog(FUN, "CLOSED HTTP Request", url);
|
|
|
|
|
- }
|
|
|
|
|
- else if(strcmp(action,"play") == 0)
|
|
|
|
|
- {
|
|
|
|
|
- char audiofile[32],repeat_tmp[16];
|
|
|
|
|
- GetCmdValue(SPK_CONF, "intercom:closed_audio_file", audiofile, sizeof(audiofile));
|
|
|
|
|
- GetCmdValue(SPK_CONF, "intercom:closed_audio_repeat", repeat_tmp, sizeof(repeat_tmp));
|
|
|
|
|
- int repeat = atoi(repeat_tmp);
|
|
|
|
|
- play_audio(audiofile,repeat);
|
|
|
|
|
- sprintf(strtmp, "File: %s; Repeat: %d", audiofile, repeat);
|
|
|
|
|
- writeLog( FUN, "CLOSED Play Auido", strtmp );
|
|
|
|
|
- }
|
|
|
|
|
- else if(strcmp(action,"stop") == 0)
|
|
|
|
|
- {
|
|
|
|
|
- control_cmd(BARESIP_CHAN, "{\"cmd\":\"play\",\"data\":\"\"}");
|
|
|
|
|
- writeLog( FUN, "CLOSED Stop Audio", "" );
|
|
|
|
|
- }
|
|
|
|
|
- if(strcmp(input,"closed") == 0)
|
|
|
|
|
- {
|
|
|
|
|
- outputControl(GPIO_135, GPIO_ON);
|
|
|
|
|
- if(DEBUG)
|
|
|
|
|
- printf( "gpio135 set on\n" );
|
|
|
|
|
- //gpio触发后判断是否为延时复位
|
|
|
|
|
- pthread_t thread_delay;
|
|
|
|
|
- pthread_create(&thread_delay, NULL, gpioDelayControl, NULL);
|
|
|
|
|
- pthread_detach(thread_delay);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ GetCmdValue(SPK_CONF, "intercom:http_1_url", url, sizeof(url));
|
|
|
|
|
+ action_url(url);
|
|
|
|
|
+ writeLog(FUN, "KEY1 HTTP Request", url);
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
- else
|
|
|
|
|
- {
|
|
|
|
|
- if(strcmp(type,"switch") == 0)
|
|
|
|
|
|
|
+ else if(strcmp(action,"play") == 0)
|
|
|
{
|
|
{
|
|
|
- char action[8],url[256];
|
|
|
|
|
- writeLog(FUN, "SWITCH", "OPEN");
|
|
|
|
|
- GetCmdValue(SPK_CONF, "intercom:open_action", action, sizeof(action));
|
|
|
|
|
- if(strcmp(action,"call") == 0)
|
|
|
|
|
- {
|
|
|
|
|
- outgoingCall(OPEN);
|
|
|
|
|
- }
|
|
|
|
|
- else if(strcmp(action,"hangup") == 0)
|
|
|
|
|
- {
|
|
|
|
|
- if(BARESIP_STATUS == RINGING || BARESIP_STATUS == INUSE)
|
|
|
|
|
- {
|
|
|
|
|
- if(DEBUG)
|
|
|
|
|
- printf( "hangup call\n" );
|
|
|
|
|
- control_cmd(BARESIP_CHAN, "{\"cmd\":\"hangup\",\"data\":\"\"}");
|
|
|
|
|
- writeLog( FUN, "OPEN Hangup", "" );
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- else if(strcmp(action,"http") == 0)
|
|
|
|
|
- {
|
|
|
|
|
- GetCmdValue(SPK_CONF, "intercom:open_http_url", url, sizeof(url));
|
|
|
|
|
- action_url(url);
|
|
|
|
|
- writeLog(FUN, "OPEN HTTP Request", url);
|
|
|
|
|
- }
|
|
|
|
|
- else if(strcmp(action,"play") == 0)
|
|
|
|
|
- {
|
|
|
|
|
- char audiofile[32],repeat_tmp[16];
|
|
|
|
|
- GetCmdValue(SPK_CONF, "intercom:open_audio_file", audiofile, sizeof(audiofile));
|
|
|
|
|
- GetCmdValue(SPK_CONF, "intercom:open_audio_repeat", repeat_tmp, sizeof(repeat_tmp));
|
|
|
|
|
- int repeat = atoi(repeat_tmp);
|
|
|
|
|
- play_audio(audiofile,repeat);
|
|
|
|
|
- sprintf(strtmp, "File: %s; Repeat: %d", audiofile, repeat);
|
|
|
|
|
- writeLog( FUN, "OPEN Play Auido", strtmp );
|
|
|
|
|
- }
|
|
|
|
|
- else if(strcmp(action,"stop") == 0)
|
|
|
|
|
- {
|
|
|
|
|
- control_cmd(BARESIP_CHAN, "{\"cmd\":\"play\",\"data\":\"\"}");
|
|
|
|
|
- writeLog( FUN, "OPEN Stop Audio", "" );
|
|
|
|
|
- }
|
|
|
|
|
- if(strcmp(input,"open") == 0)
|
|
|
|
|
- {
|
|
|
|
|
- outputControl(GPIO_135, GPIO_ON);
|
|
|
|
|
- if(DEBUG)
|
|
|
|
|
- printf( "gpio135 set on\n" );
|
|
|
|
|
- //gpio触发后判断是否为延时复位
|
|
|
|
|
- pthread_t thread_delay;
|
|
|
|
|
- pthread_create(&thread_delay, NULL, gpioDelayControl, NULL);
|
|
|
|
|
- pthread_detach(thread_delay);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ char audiofile[32],repeat_tmp[16];
|
|
|
|
|
+ GetCmdValue(SPK_CONF, "intercom:audio_1_file", audiofile, sizeof(audiofile));
|
|
|
|
|
+ GetCmdValue(SPK_CONF, "intercom:audio_1_repeat", repeat_tmp, sizeof(repeat_tmp));
|
|
|
|
|
+ int repeat = atoi(repeat_tmp);
|
|
|
|
|
+ play_audio(audiofile,repeat);
|
|
|
|
|
+ sprintf(strtmp, "File: %s; Repeat: %d", audiofile, repeat);
|
|
|
|
|
+ writeLog( FUN, "KEY1 Play Auido", strtmp );
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -2683,11 +2260,11 @@ int main(int argc, char *argv[]){
|
|
|
|
|
|
|
|
if(len > 10)
|
|
if(len > 10)
|
|
|
{
|
|
{
|
|
|
- keyAction(KEY3);
|
|
|
|
|
|
|
+ keyAction(KEY2_10);
|
|
|
}
|
|
}
|
|
|
else if(len > 3)
|
|
else if(len > 3)
|
|
|
{
|
|
{
|
|
|
- keyAction(KEY4_3)
|
|
|
|
|
|
|
+ keyAction(KEY2_3);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|