Added display of current active TEI values (L2) at lcradmin.
[lcr.git] / action_vbox.cpp
index 0a5ebed..56028ce 100644 (file)
@@ -9,13 +9,6 @@
 **                                                                           **
 \*****************************************************************************/ 
 
-#include <stdio.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <errno.h>
-#include <string.h>
-#include <stdlib.h>
-#include <unistd.h>
 #include "main.h"
 
 
@@ -51,14 +44,14 @@ VBOX_STATE_CALLINFO_END, /* this value defines the end of callingo */
        VBOX_STATE_DELETE_DONE, /* tell that message is delete */
 };
 
-char *months_english[] = {"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};
-char *months_german[] = {"Jan","Feb","Maer","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"};
+const char *months_english[] = {"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};
+const char *months_german[] = {"Jan","Feb","Maer","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"};
 
 struct vbox_menu {
-       char digit;
-       char *english;
-       char *german;
-       } vbox_menu[] = {
+       const char digit;
+       const char *english;
+       const char *german;
+} vbox_menu[] = {
        {'1', "<< previous", "<< zurueck"},
        {'2', "-> play", "-> anhoeren"},
        {'3', ">> next", ">> vor"},
@@ -70,7 +63,7 @@ struct vbox_menu {
        {'9', "X  delete", "X  loeschen"},
        {'0', "*  call", "*  anrufen"},
        {'\0', NULL, NULL}
-       };
+};
 
 /*
  * initialize the vbox. this is called at process_dialing(), when the VBOX_PLAY
@@ -80,7 +73,7 @@ void EndpointAppPBX::action_init_vbox_play(void)
 {
        int                     language = e_ext.vbox_language;
        struct route_param      *rparam;
-       struct message          *message;
+       struct lcr_msg          *message;
        struct port_list        *portlist = ea_endpoint->ep_portlist;
 
        /* get extension */
@@ -143,7 +136,7 @@ void EndpointAppPBX::vbox_index_read(int num)
 
        e_vbox_index_num = 0;
 
-       SPRINT(filename, "%s/%s/%s/vbox/index", INSTALL_DATA, options.extensions_dir, e_vbox);
+       SPRINT(filename, "%s/%s/vbox/index", EXTENSION_DATA, e_vbox);
        if (!(fp = fopen(filename, "r")))
        {
                PDEBUG(DEBUG_EPOINT, "EPOINT(%d) no files in index\n", ea_endpoint->ep_serial);
@@ -201,8 +194,8 @@ void EndpointAppPBX::vbox_index_remove(int num)
 
        PDEBUG(DEBUG_EPOINT, "EPOINT(%d) removing entrie #%d\n", ea_endpoint->ep_serial, num);
 
-       SPRINT(filename1, "%s/%s/%s/vbox/index", INSTALL_DATA, options.extensions_dir, e_vbox);
-       SPRINT(filename2, "%s/%s/%s/vbox/index-temp", INSTALL_DATA, options.extensions_dir, e_vbox);
+       SPRINT(filename1, "%s/%s/vbox/index", EXTENSION_DATA, e_vbox);
+       SPRINT(filename2, "%s/%s/vbox/index-temp", EXTENSION_DATA, e_vbox);
        if (!(fpr = fopen(filename1, "r")))
        {
                return;
@@ -267,13 +260,13 @@ void EndpointAppPBX::action_dialing_vbox_play(void)
 
        if (e_vbox_state == VBOX_STATE_RECORD_RECORD)
        {
-               if (e_extdialing[0] == '1')
+               if (e_extdialing[0] == '1' || e_extdialing[0] == '0')
                {
                        PDEBUG(DEBUG_EPOINT, "EPOINT(%d) stopping recording of announcement.\n", ea_endpoint->ep_serial);
 
                        port = find_port_id(portlist->port_id);
                        if (port)
-                               port->close_record(6000); /* append beep */
+                               port->close_record((e_extdialing[0]=='1')?6000:0, 2000); /* append beep */
                        goto record_ask;
                }
                goto done;
@@ -326,8 +319,8 @@ void EndpointAppPBX::action_dialing_vbox_play(void)
                        port = find_port_id(portlist->port_id);
                        if (port)
                        {
-                               port->close_record(6000); /* append beep */
-                               port->open_record(CODEC_MONO, 1, 5000, e_ext.number, 0, "", 0); /* record announcement, skip the first 5000 samples */
+                               port->close_record(0,0); 
+                               port->open_record(CODEC_MONO, 1, 4000, e_ext.number, 0, "", 0); /* record announcement, skip the first 4000 samples */
                        }
                        e_vbox_state = VBOX_STATE_RECORD_RECORD;
                        if (e_ext.vbox_language)
@@ -355,12 +348,12 @@ void EndpointAppPBX::action_dialing_vbox_play(void)
 
                        case '1':
                        PDEBUG(DEBUG_EPOINT, "EPOINT(%d) do store/delete.\n", ea_endpoint->ep_serial);
-                       SPRINT(filename, "%s/%s/%s/vbox/%s", INSTALL_DATA, options.extensions_dir, e_vbox, e_vbox_index_file);
+                       SPRINT(filename, "%s/%s/vbox/%s", EXTENSION_DATA, e_vbox, e_vbox_index_file);
 
                        /* move file */
                        if (e_vbox_state == VBOX_STATE_STORE_ASK)
                        {
-                               SPRINT(filename, "%s/%s/%s/recordings", INSTALL_DATA, options.extensions_dir, e_vbox);
+                               SPRINT(filename, "%s/%s/recordings", EXTENSION_DATA, e_vbox);
                                if (mkdir(filename, 0755) < 0)
                                {
                                        if (errno != EEXIST)
@@ -369,7 +362,7 @@ void EndpointAppPBX::action_dialing_vbox_play(void)
                                                goto done;
                                        }
                                }
-                               SPRINT(filename2, "%s/%s/%s/recordings/%s", INSTALL_DATA, options.extensions_dir, e_vbox, e_vbox_index_file);
+                               SPRINT(filename2, "%s/%s/recordings/%s", EXTENSION_DATA, e_vbox, e_vbox_index_file);
                                rename(filename, filename2);
                                e_vbox_state = VBOX_STATE_STORE_DONE;
                                if (e_ext.vbox_language)
@@ -668,7 +661,7 @@ void EndpointAppPBX::vbox_handler(void)
        if (e_vbox_display_refresh && e_ext.vbox_display!=VBOX_DISPLAY_OFF)
        {
                char counter[32];
-               struct message *message;
+               struct lcr_msg *message;
 
                SPRINT(counter, "%02d:%02d", e_vbox_counter/60, e_vbox_counter%60);
                if (e_vbox_counter_max)
@@ -897,9 +890,9 @@ void EndpointAppPBX::vbox_message_eof(void)
  * set the given vbox-tone with full path (without appending)
  * the tone is played and after eof, a message is received
  */
-void EndpointAppPBX::set_tone_vbox(char *tone)
+void EndpointAppPBX::set_tone_vbox(const char *tone)
 {
-       struct message *message;
+       struct lcr_msg *message;
 
        if (tone == NULL)
                tone = "";
@@ -909,7 +902,7 @@ void EndpointAppPBX::set_tone_vbox(char *tone)
                PERROR("EPOINT(%d) no portlist\n", ea_endpoint->ep_serial);
        }
        message = message_create(ea_endpoint->ep_serial, ea_endpoint->ep_portlist->port_id, EPOINT_TO_PORT, MESSAGE_VBOX_TONE);
-       SCPY(message->param.tone.dir, (char *)((e_ext.vbox_language)?"vbox_german":"vbox_english"));
+       SCPY(message->param.tone.dir, ((e_ext.vbox_language) ? "vbox_german" : "vbox_english"));
        SCPY(message->param.tone.name, tone);
        message_put(message);
 
@@ -924,12 +917,12 @@ void EndpointAppPBX::set_tone_vbox(char *tone)
  * the current counter value is also received by a message
  * set the offset in seconds of the current recording
  */
-void EndpointAppPBX::set_play_vbox(char *file, int offset)
+void EndpointAppPBX::set_play_vbox(const char *file, int offset)
 {
        char filename[256];
-       struct message *message;
+       struct lcr_msg *message;
 
-       SPRINT(filename, "%s/%s/%s/vbox/%s", INSTALL_DATA, options.extensions_dir, e_vbox, file);
+       SPRINT(filename, "%s/%s/vbox/%s", EXTENSION_DATA, e_vbox, file);
        
        /* remove .wav */
        if (!strcmp(filename+strlen(filename)-4, ".wav")) /* filename is always more than 4 digits long */
@@ -958,7 +951,7 @@ void EndpointAppPBX::set_play_vbox(char *file, int offset)
  */
 void EndpointAppPBX::set_play_speed(int speed)
 {
-       struct message *message;
+       struct lcr_msg *message;
 
        if (!ea_endpoint->ep_portlist)
        {