diff --git a/app/call_block/app_languages.php b/app/call_block/app_languages.php index eba6287e68..264857a12a 100644 --- a/app/call_block/app_languages.php +++ b/app/call_block/app_languages.php @@ -120,7 +120,7 @@ $text['label-provide-number']['de-de'] = "Bitte geben Sie die Nummer an"; $text['label-provide-number']['el-gr'] = "Εισάγετε: Αριθμό"; $text['label-provide-number']['es-cl'] = "Por favor agregue: Número"; $text['label-provide-number']['es-mx'] = "Por favor agregue: Número"; //copied from es-cl -$text['label-provide-number']['fr-ca'] = "Merci d'indiquer: Numéro"; //copied from fr-fr +$text['label-provide-number']['fr-ca'] = "S'il vous plaît indiquer: Numéro"; $text['label-provide-number']['fr-fr'] = "Merci d'indiquer: Numéro"; $text['label-provide-number']['he-il'] = "אנא הכנס מספר"; $text['label-provide-number']['it-it'] = "Prego fornire: Numero"; @@ -142,7 +142,7 @@ $text['label-provide-name']['de-de'] = "Bitte geben Sie den Namen an"; $text['label-provide-name']['el-gr'] = "Εισάγετε: Όνομα"; $text['label-provide-name']['es-cl'] = "Por favor agregue: Nombre"; $text['label-provide-name']['es-mx'] = "Por favor agregue: Nombre"; //copied from es-cl -$text['label-provide-name']['fr-ca'] = "Merci d'indiquer: Nom"; //copied from fr-fr +$text['label-provide-name']['fr-ca'] = "S'il vous plaît indiquer: Nom"; //copied from fr-fr $text['label-provide-name']['fr-fr'] = "Merci d'indiquer: Nom"; $text['label-provide-name']['he-il'] = "אנא הכנס שם"; $text['label-provide-name']['it-it'] = "Prego fornire: Nome"; @@ -164,7 +164,7 @@ $text['label-provide-enabled']['de-de'] = "Bitte geben Sie folgendes an: Aktiv"; $text['label-provide-enabled']['el-gr'] = "Εισάγετε: Ενεργοποιημένο"; $text['label-provide-enabled']['es-cl'] = "Por favor agregue: Activo"; $text['label-provide-enabled']['es-mx'] = "Por favor agregue: Activo"; //copied from es-cl -$text['label-provide-enabled']['fr-ca'] = "Merci d'indiquer: Actif"; //copied from fr-fr +$text['label-provide-enabled']['fr-ca'] = "S'il vous plaît indiquer: Actif"; //copied from fr-fr $text['label-provide-enabled']['fr-fr'] = "Merci d'indiquer: Actif"; $text['label-provide-enabled']['he-il'] = ""; $text['label-provide-enabled']['it-it'] = "Prego fornire: Abilitazione"; @@ -381,7 +381,7 @@ $text['label-edit-add']['de-de'] = "Sperrlisten"; $text['label-edit-add']['el-gr'] = "Λίστα Απόρριψης"; $text['label-edit-add']['es-cl'] = "Agregar bloqueo de llamada"; $text['label-edit-add']['es-mx'] = "Agregar bloqueo de llamada"; //copied from es-cl -$text['label-edit-add']['fr-ca'] = "Ajouter filtrage d'appel"; //copied from fr-fr +$text['label-edit-add']['fr-ca'] = "Ajouter au filtrage d'appels"; //copied from fr-fr $text['label-edit-add']['fr-fr'] = "Ajouter filtrage d'appel"; $text['label-edit-add']['he-il'] = "חסימת שיחה"; $text['label-edit-add']['it-it'] = "Blocco Chiamate"; @@ -666,8 +666,8 @@ $text['description-direction']['de-de'] = "Select the direction of the calls to $text['description-direction']['el-gr'] = "Select the direction of the calls to block."; $text['description-direction']['es-cl'] = "Select the direction of the calls to block."; $text['description-direction']['es-mx'] = "Select the direction of the calls to block."; -$text['description-direction']['fr-ca'] = "Select the direction of the calls to block."; -$text['description-direction']['fr-fr'] = "Select the direction of the calls to block."; +$text['description-direction']['fr-ca'] = "Sélectionnez la direction des appels à bloquer."; +$text['description-direction']['fr-fr'] = "Sélectionnez la direction des appels à bloquer."; $text['description-direction']['he-il'] = "Select the direction of the calls to block."; $text['description-direction']['it-it'] = "Select the direction of the calls to block."; $text['description-direction']['nl-nl'] = "Select the direction of the calls to block."; @@ -797,7 +797,7 @@ $text['description-call-block']['de-de'] = "Eine Liste von Nummern die gesperrt $text['description-call-block']['el-gr'] = "Μια λίστα από αριθμούς προς απόρριψη εισερχομένων κλήσεων."; $text['description-call-block']['es-cl'] = "Un listado de números desde los cuales se bloquean las llamadas"; $text['description-call-block']['es-mx'] = "Un listado de números desde los cuales se bloquean las llamadas"; //copied from es-cl -$text['description-call-block']['fr-ca'] = "Une liste de numéros depuis lesquels vous pouvez bloquer les appels"; //copied from fr-fr +$text['description-call-block']['fr-ca'] = "Une liste de numéros à partir de laquelle vous pouvez bloquer les appels."; //copied from fr-fr $text['description-call-block']['fr-fr'] = "Une liste de numéros depuis lesquels vous pouvez bloquer les appels"; $text['description-call-block']['he-il'] = ""; $text['description-call-block']['it-it'] = "Una lista di numeri per cui è possibile bloccare le chiamate."; @@ -841,8 +841,8 @@ $text['confirm-block']['de-de'] = "Do you really want to block this?"; $text['confirm-block']['el-gr'] = "Do you really want to block this?"; $text['confirm-block']['es-cl'] = "Do you really want to block this?"; $text['confirm-block']['es-mx'] = "Do you really want to block this?"; -$text['confirm-block']['fr-ca'] = "Do you really want to block this?"; -$text['confirm-block']['fr-fr'] = "Do you really want to block this?"; +$text['confirm-block']['fr-ca'] = "Voulez-vous vraiment bloquer ceci?"; +$text['confirm-block']['fr-fr'] = "Voulez-vous vraiment bloquer ceci?"; $text['confirm-block']['he-il'] = "Do you really want to block this?"; $text['confirm-block']['it-it'] = "Do you really want to block this?"; $text['confirm-block']['nl-nl'] = "Do you really want to block this?"; @@ -864,8 +864,8 @@ $text['button-block']['de-de'] = "Block"; $text['button-block']['el-gr'] = "Block"; $text['button-block']['es-cl'] = "Block"; $text['button-block']['es-mx'] = "Block"; -$text['button-block']['fr-ca'] = "Block"; -$text['button-block']['fr-fr'] = "Block"; +$text['button-block']['fr-ca'] = "Bloquer"; +$text['button-block']['fr-fr'] = "Bloquer"; $text['button-block']['he-il'] = "Block"; $text['button-block']['it-it'] = "Block"; $text['button-block']['nl-nl'] = "Block"; @@ -878,4 +878,4 @@ $text['button-block']['sv-se'] = "Block"; $text['button-block']['uk-ua'] = "Block"; $text['button-block']['tr-tr'] = "Block"; -?> \ No newline at end of file +?> diff --git a/app/call_broadcast/app_config.php b/app/call_broadcast/app_config.php index 315f60ae70..58f4dfe9be 100644 --- a/app/call_broadcast/app_config.php +++ b/app/call_broadcast/app_config.php @@ -155,5 +155,9 @@ $apps[$x]['db'][$y]['fields'][$z]['name'] = "broadcast_accountcode"; $apps[$x]['db'][$y]['fields'][$z]['type'] = "text"; $apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = ""; - + $z++; + $apps[$x]['db'][$y]['fields'][$z]['name'] = "broadcast_toll_allow"; + $apps[$x]['db'][$y]['fields'][$z]['type'] = "text"; + $apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = ""; + $z++; ?> diff --git a/app/call_broadcast/call_broadcast_edit.php b/app/call_broadcast/call_broadcast_edit.php index 43ce0b19a5..f224f243f9 100644 --- a/app/call_broadcast/call_broadcast_edit.php +++ b/app/call_broadcast/call_broadcast_edit.php @@ -103,6 +103,7 @@ $broadcast_avmd = $_POST["broadcast_avmd"]; $broadcast_destination_data = $_POST["broadcast_destination_data"]; $broadcast_description = $_POST["broadcast_description"]; + $broadcast_toll_allow = $_POST["broadcast_toll_allow"]; if (if_group("superadmin")) { $broadcast_accountcode = $_POST["broadcast_accountcode"]; @@ -234,6 +235,7 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { $array['call_broadcasts'][0]['broadcast_destination_data'] = $broadcast_destination_data; $array['call_broadcasts'][0]['broadcast_accountcode'] = $broadcast_accountcode; $array['call_broadcasts'][0]['broadcast_description'] = $broadcast_description; + $array['call_broadcasts'][0]['broadcast_toll_allow'] = $broadcast_toll_allow; //execute $database = new database; @@ -274,6 +276,7 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { $broadcast_destination_data = $row["broadcast_destination_data"]; $broadcast_accountcode = $row["broadcast_accountcode"]; $broadcast_description = $row["broadcast_description"]; + $broadcast_toll_allow = $row["broadcast_toll_allow"]; } unset($sql, $parameters, $row); } @@ -493,6 +496,17 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; + echo " ".$text['label-broadcast_toll_allow']."\n"; + echo "\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-broadcast_toll_allow']."\n"; + echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo " ".$text['label-description']."\n"; diff --git a/app/call_broadcast/call_broadcast_send.php b/app/call_broadcast/call_broadcast_send.php index 51786bbcd0..8fdb40ee05 100644 --- a/app/call_broadcast/call_broadcast_send.php +++ b/app/call_broadcast/call_broadcast_send.php @@ -182,6 +182,7 @@ $channel_variables .= ",domain=".$_SESSION['domain_name']; $channel_variables .= ",domain_name=".$_SESSION['domain_name']; $channel_variables .= ",accountcode='$broadcast_accountcode'"; + $channel_variables .= ",toll_allow='$broadcast_toll_allow'"; if ($broadcast_avmd == "true") { $channel_variables .= ",execute_on_answer='avmd start'"; } diff --git a/app/call_centers/app_config.php b/app/call_centers/app_config.php index fc25496112..4cb5dc14a9 100644 --- a/app/call_centers/app_config.php +++ b/app/call_centers/app_config.php @@ -261,6 +261,10 @@ $apps[$x]['db'][$y]['fields'][$z]['name'] = "agent_no_answer_delay_time"; $apps[$x]['db'][$y]['fields'][$z]['type'] = "text"; $apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = ""; + $z++; + $apps[$x]['db'][$y]['fields'][$z]['name'] = "agent_record"; + $apps[$x]['db'][$y]['fields'][$z]['type'] = "text"; + $apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = ""; $y++; $apps[$x]['db'][$y]['table']['name'] = "v_call_center_queues"; @@ -333,6 +337,10 @@ $apps[$x]['db'][$y]['fields'][$z]['type'] = "text"; $apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = ""; $z++; + $apps[$x]['db'][$y]['fields'][$z]['name'] = "queue_time_base_score_sec"; + $apps[$x]['db'][$y]['fields'][$z]['type'] = "numeric"; + $apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "Used to set the time base score of the Call Center to prioritize one call center over another."; + $z++; $apps[$x]['db'][$y]['fields'][$z]['name'] = "queue_max_wait_time"; $apps[$x]['db'][$y]['fields'][$z]['type'] = "numeric"; $apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = ""; diff --git a/app/call_centers/app_languages.php b/app/call_centers/app_languages.php index b69d2c6f0a..c87041aea5 100644 --- a/app/call_centers/app_languages.php +++ b/app/call_centers/app_languages.php @@ -30,8 +30,8 @@ $text['title-call_center_tier_edit']['de-ch'] = "Callcenter Ebene"; //copied fro $text['title-call_center_tier_edit']['de-de'] = "Callcenter Ebene"; $text['title-call_center_tier_edit']['es-cl'] = "Editar Nivel de Centro de Llamados"; $text['title-call_center_tier_edit']['es-mx'] = "Editar Nivel de Centro de Llamados"; //copied from es-cl -$text['title-call_center_tier_edit']['fr-ca'] = "Editer un Niveau du Centre d'Appel"; //copied from fr-fr -$text['title-call_center_tier_edit']['fr-fr'] = "Editer un Niveau du Centre d'Appel"; +$text['title-call_center_tier_edit']['fr-ca'] = "Editer un niveau du centre d'appel"; +$text['title-call_center_tier_edit']['fr-fr'] = "Editer un niveau du Centre d'appel"; $text['title-call_center_tier_edit']['he-il'] = ""; $text['title-call_center_tier_edit']['it-it'] = "Tier del Call Center"; $text['title-call_center_tier_edit']['nl-nl'] = "Call-center vergelijking"; @@ -177,8 +177,8 @@ $text['title-call_center_agent_status']['de-ch'] = "Callcenter Agenten Status"; $text['title-call_center_agent_status']['de-de'] = "Callcenter Agenten Status"; $text['title-call_center_agent_status']['es-cl'] = "Estado de Agente de Centro de Llamados"; $text['title-call_center_agent_status']['es-mx'] = "Estado de Agente de Centro de Llamados"; //copied from es-cl -$text['title-call_center_agent_status']['fr-ca'] = "Etat de l'Agent"; //copied from fr-fr -$text['title-call_center_agent_status']['fr-fr'] = "Etat de l'Agent"; +$text['title-call_center_agent_status']['fr-ca'] = "État de l'agent"; +$text['title-call_center_agent_status']['fr-fr'] = "Etat de l'agent"; $text['title-call_center_agent_status']['he-il'] = ""; $text['title-call_center_agent_status']['it-it'] = "Stato Agenti Call Center"; $text['title-call_center_agent_status']['nl-nl'] = "Call-Center agent status"; @@ -198,8 +198,8 @@ $text['title-call_center_agent_edit']['de-ch'] = "Callcenter Agenten"; //copied $text['title-call_center_agent_edit']['de-de'] = "Callcenter Agenten"; $text['title-call_center_agent_edit']['es-cl'] = "Editar Agente de Centro de Llamados"; $text['title-call_center_agent_edit']['es-mx'] = "Editar Agente de Centro de Llamados"; //copied from es-cl -$text['title-call_center_agent_edit']['fr-ca'] = "Agent de centre d'appel"; //copied from fr-fr -$text['title-call_center_agent_edit']['fr-fr'] = "Agent de centre d'appel"; +$text['title-call_center_agent_edit']['fr-ca'] = "Agent du centre d'appel"; +$text['title-call_center_agent_edit']['fr-fr'] = "Agent du centre d'appel"; $text['title-call_center_agent_edit']['he-il'] = ""; $text['title-call_center_agent_edit']['it-it'] = "Agente Call Center"; $text['title-call_center_agent_edit']['nl-nl'] = "Call-Center Agent"; @@ -324,8 +324,8 @@ $text['option-top_down']['de-ch'] = "Absteigend"; //copied from de-de $text['option-top_down']['de-de'] = "Absteigend"; $text['option-top_down']['es-cl'] = "Top Down"; $text['option-top_down']['es-mx'] = "Top Down"; //copied from es-cl -$text['option-top_down']['fr-ca'] = "Haut bas"; //copied from fr-fr -$text['option-top_down']['fr-fr'] = "Haut bas"; +$text['option-top_down']['fr-ca'] = "Du haut vers le bas"; +$text['option-top_down']['fr-fr'] = "Du haut vers le bas"; $text['option-top_down']['he-il'] = ""; $text['option-top_down']['it-it'] = "Dall'alto al basso"; $text['option-top_down']['nl-nl'] = "Hoog->Laag"; @@ -450,8 +450,8 @@ $text['option-ring_all']['de-ch'] = "Alle läuten"; //copied from de-de $text['option-ring_all']['de-de'] = "Alle läuten"; $text['option-ring_all']['es-cl'] = "Sonar todos"; $text['option-ring_all']['es-mx'] = "Sonar todos"; //copied from es-cl -$text['option-ring_all']['fr-ca'] = "Sonner tous"; //copied from fr-fr -$text['option-ring_all']['fr-fr'] = "Sonner tous"; +$text['option-ring_all']['fr-ca'] = "Sonner partout"; //copied from fr-fr +$text['option-ring_all']['fr-fr'] = "Sonner partout"; $text['option-ring_all']['he-il'] = ""; $text['option-ring_all']['it-it'] = "Squillano tutti"; $text['option-ring_all']['nl-nl'] = "Allen gelijktijdig"; @@ -534,7 +534,7 @@ $text['option-on_break']['de-ch'] = "In Pause"; //copied from de-de $text['option-on_break']['de-de'] = "In Pause"; $text['option-on_break']['es-cl'] = "En Pausa"; $text['option-on_break']['es-mx'] = "En Pausa"; //copied from es-cl -$text['option-on_break']['fr-ca'] = "En Pause"; //copied from fr-fr +$text['option-on_break']['fr-ca'] = "En pause"; $text['option-on_break']['fr-fr'] = "En Pause"; $text['option-on_break']['he-il'] = ""; $text['option-on_break']['it-it'] = "In Pausa"; @@ -555,7 +555,7 @@ $text['option-no_change']['de-ch'] = "Keine Änderung"; //copied from de-de $text['option-no_change']['de-de'] = "Keine Änderung"; $text['option-no_change']['es-cl'] = "Sin Cambios"; $text['option-no_change']['es-mx'] = "Sin Cambios"; //copied from es-cl -$text['option-no_change']['fr-ca'] = "Pas de Changement"; //copied from fr-fr +$text['option-no_change']['fr-ca'] = "Pas de changement"; $text['option-no_change']['fr-fr'] = "Pas de Changement"; $text['option-no_change']['he-il'] = ""; $text['option-no_change']['it-it'] = "Nessun Cambiamento"; @@ -576,8 +576,8 @@ $text['option-longest_idle_agent']['de-ch'] = "Agent mit der höchsten Wartezeit $text['option-longest_idle_agent']['de-de'] = "Agent mit der höchsten Wartezeit"; $text['option-longest_idle_agent']['es-cl'] = "Agente desocupado por más tiempo"; $text['option-longest_idle_agent']['es-mx'] = "Agente desocupado por más tiempo"; //copied from es-cl -$text['option-longest_idle_agent']['fr-ca'] = "Agent logué depuis le plus lontemps"; //copied from fr-fr -$text['option-longest_idle_agent']['fr-fr'] = "Agent logué depuis le plus lontemps"; +$text['option-longest_idle_agent']['fr-ca'] = "Agent inactif le plus longtemps"; +$text['option-longest_idle_agent']['fr-fr'] = "Agent inactif le plus longtemps"; $text['option-longest_idle_agent']['he-il'] = ""; $text['option-longest_idle_agent']['it-it'] = "Da più tempo libero"; $text['option-longest_idle_agent']['nl-nl'] = "Langst wachtende agent"; @@ -702,8 +702,8 @@ $text['option-do_not_disturb']['de-ch'] = "Bitte nicht stören"; //copied from d $text['option-do_not_disturb']['de-de'] = "Bitte nicht stören"; $text['option-do_not_disturb']['es-cl'] = "No Molestar"; $text['option-do_not_disturb']['es-mx'] = "No Molestar"; //copied from es-cl -$text['option-do_not_disturb']['fr-ca'] = "Ne Pas Derranger"; //copied from fr-fr -$text['option-do_not_disturb']['fr-fr'] = "Ne Pas Derranger"; +$text['option-do_not_disturb']['fr-ca'] = "Ne pas déranger"; //copied from fr-fr +$text['option-do_not_disturb']['fr-fr'] = "Ne pas déranger"; $text['option-do_not_disturb']['he-il'] = ""; $text['option-do_not_disturb']['it-it'] = "Non Disturbare"; $text['option-do_not_disturb']['nl-nl'] = "Niet Storen"; @@ -723,8 +723,8 @@ $text['option-available_on_demand']['de-ch'] = "Verfügbar (auf Anfrage)"; //cop $text['option-available_on_demand']['de-de'] = "Verfügbar (auf Anfrage)"; $text['option-available_on_demand']['es-cl'] = "Disponible (Bajo Demanda)"; $text['option-available_on_demand']['es-mx'] = "Disponible (Bajo Demanda)"; //copied from es-cl -$text['option-available_on_demand']['fr-ca'] = "Disponible (Sur Demande)"; //copied from fr-fr -$text['option-available_on_demand']['fr-fr'] = "Disponible (Sur Demande)"; +$text['option-available_on_demand']['fr-ca'] = "Disponible (sur demande)"; +$text['option-available_on_demand']['fr-fr'] = "Disponible (sur demande)"; $text['option-available_on_demand']['he-il'] = ""; $text['option-available_on_demand']['it-it'] = "Disponibile (Su Richiesta)"; $text['option-available_on_demand']['nl-nl'] = "beschikbaar (op aanvraag)"; @@ -765,8 +765,8 @@ $text['option-agent_with_least_talk_time']['de-ch'] = "Agent mit geringster Spre $text['option-agent_with_least_talk_time']['de-de'] = "Agent mit geringster Sprechzeit"; $text['option-agent_with_least_talk_time']['es-cl'] = "Agente con el menor tiempo de comunicación"; $text['option-agent_with_least_talk_time']['es-mx'] = "Agente con el menor tiempo de comunicación"; //copied from es-cl -$text['option-agent_with_least_talk_time']['fr-ca'] = "Agent ayant le plus petit temps de parole"; //copied from fr-fr -$text['option-agent_with_least_talk_time']['fr-fr'] = "Agent ayant le plus petit temps de parole"; +$text['option-agent_with_least_talk_time']['fr-ca'] = "Agent avec le moins de temps de conversation"; +$text['option-agent_with_least_talk_time']['fr-fr'] = "Agent avec le moins de temps de conversation"; $text['option-agent_with_least_talk_time']['he-il'] = ""; $text['option-agent_with_least_talk_time']['it-it'] = "Agent che ha parlato di meno"; $text['option-agent_with_least_talk_time']['nl-nl'] = "Agent met kostste gesprekstijd"; @@ -807,7 +807,7 @@ $text['message-maximum_queues']['de-ch'] = "Maximale Anzahl Warteschlangen:"; // $text['message-maximum_queues']['de-de'] = "Maximale Anzahl Warteschlangen:"; $text['message-maximum_queues']['es-cl'] = "Colas Máximo Permitido:"; $text['message-maximum_queues']['es-mx'] = "Colas Máximo Permitido:"; //copied from es-cl -$text['message-maximum_queues']['fr-ca'] = "Files d'attente Maximum Autorisé:"; //copied from fr-fr +$text['message-maximum_queues']['fr-ca'] = "Files d'attente maximum autorisé:"; $text['message-maximum_queues']['fr-fr'] = "Files d'attente Maximum Autorisé:"; $text['message-maximum_queues']['he-il'] = ""; $text['message-maximum_queues']['it-it'] = "Massimo Code:"; @@ -828,8 +828,8 @@ $text['message-duplicate_agent_id']['de-ch'] = "Agenten ID bereits vorhanden"; / $text['message-duplicate_agent_id']['de-de'] = "Agenten ID bereits vorhanden"; $text['message-duplicate_agent_id']['es-cl'] = "Duplicar ID de Agente detectada"; $text['message-duplicate_agent_id']['es-mx'] = "Duplicar ID de Agente detectada"; //copied from es-cl -$text['message-duplicate_agent_id']['fr-ca'] = "Dupliquer Agent ID détecté"; //copied from fr-fr -$text['message-duplicate_agent_id']['fr-fr'] = "Dupliquer Agent ID détecté"; +$text['message-duplicate_agent_id']['fr-ca'] = "ID d'agent duplicat détecté"; +$text['message-duplicate_agent_id']['fr-fr'] = "ID d'agent duplicat détecté"; $text['message-duplicate_agent_id']['he-il'] = ""; $text['message-duplicate_agent_id']['it-it'] = "Rilevato ID Agente Duplicato"; $text['message-duplicate_agent_id']['nl-nl'] = "Duplicaat Agent ID ontdekt"; @@ -849,8 +849,8 @@ $text['label-wrap_up_time']['de-ch'] = "Nachbereitungszeit"; //copied from de-de $text['label-wrap_up_time']['de-de'] = "Nachbereitungszeit"; $text['label-wrap_up_time']['es-cl'] = "Tiempo de Preparación"; $text['label-wrap_up_time']['es-mx'] = "Tiempo de Preparación"; //copied from es-cl -$text['label-wrap_up_time']['fr-ca'] = "temps de Wrap Up"; //copied from fr-fr -$text['label-wrap_up_time']['fr-fr'] = "temps de Wrap Up"; +$text['label-wrap_up_time']['fr-ca'] = "Temps de clôture"; +$text['label-wrap_up_time']['fr-fr'] = "Temps de clôture"; $text['label-wrap_up_time']['he-il'] = ""; $text['label-wrap_up_time']['it-it'] = "Wrap Up Time"; $text['label-wrap_up_time']['nl-nl'] = "Afrondtijd"; @@ -870,8 +870,8 @@ $text['label-type']['de-ch'] = "Typ"; //copied from de-de $text['label-type']['de-de'] = "Typ"; $text['label-type']['es-cl'] = "Tipo"; $text['label-type']['es-mx'] = "Tipo"; //copied from es-cl -$text['label-type']['fr-ca'] = "Type"; //copied from fr-fr -$text['label-type']['fr-fr'] = "Type"; +$text['label-type']['fr-ca'] = "Genre"; +$text['label-type']['fr-fr'] = "Genre"; $text['label-type']['he-il'] = ""; $text['label-type']['it-it'] = "Tipo"; $text['label-type']['nl-nl'] = "Type"; @@ -891,7 +891,7 @@ $text['label-timeout_action']['de-ch'] = "Aktion bei Zeitüberschreitung"; //cop $text['label-timeout_action']['de-de'] = "Aktion bei Zeitüberschreitung"; $text['label-timeout_action']['es-cl'] = "Acción de Timeout"; $text['label-timeout_action']['es-mx'] = "Acción de Timeout"; //copied from es-cl -$text['label-timeout_action']['fr-ca'] = "Action sur Timeout"; //copied from fr-fr +$text['label-timeout_action']['fr-ca'] = "Action si délai d'attente excédé"; $text['label-timeout_action']['fr-fr'] = "Action sur Timeout"; $text['label-timeout_action']['he-il'] = ""; $text['label-timeout_action']['it-it'] = "Azione al Timeout"; @@ -912,8 +912,8 @@ $text['label-time_base_score']['de-ch'] = "Zeitgeber für Klassifikation"; //cop $text['label-time_base_score']['de-de'] = "Zeitgeber für Klassifikation"; $text['label-time_base_score']['es-cl'] = "Puntuación basada en tiempo"; $text['label-time_base_score']['es-mx'] = "Puntuación basada en tiempo"; //copied from es-cl -$text['label-time_base_score']['fr-ca'] = "Score Basé sur le Temps"; //copied from fr-fr -$text['label-time_base_score']['fr-fr'] = "Score Basé sur le Temps"; +$text['label-time_base_score']['fr-ca'] = "Score basé sur le temps"; +$text['label-time_base_score']['fr-fr'] = "Score Basé sur le temps"; $text['label-time_base_score']['he-il'] = ""; $text['label-time_base_score']['it-it'] = "Punteggio su Base Tempo"; $text['label-time_base_score']['nl-nl'] = "Tijd basis score"; @@ -925,6 +925,27 @@ $text['label-time_base_score']['ru-ru'] = "Оценка по времени"; $text['label-time_base_score']['sv-se'] = "Tidsbaserat Resultat"; $text['label-time_base_score']['uk-ua'] = ""; +$text['label-time_base_score_sec']['en-us'] = "Time Base Score Seconds"; +$text['label-time_base_score_sec']['en-gb'] = "Time Base Score Seconds"; +$text['label-time_base_score_sec']['ar-eg'] = ""; +$text['label-time_base_score_sec']['de-at'] = "Zeitgeber für Klassifikation Seconden"; //copied from de-de +$text['label-time_base_score_sec']['de-ch'] = "Zeitgeber für Klassifikation Seconden"; //copied from de-de +$text['label-time_base_score_sec']['de-de'] = "Zeitgeber für Klassifikation Seconden"; +$text['label-time_base_score_sec']['es-cl'] = "Puntuación basada en tiempo Segundos"; +$text['label-time_base_score_sec']['es-mx'] = "Puntuación basada en tiempo Segundos"; //copied from es-cl +$text['label-time_base_score_sec']['fr-ca'] = "Score basé sur le temps Seconds"; +$text['label-time_base_score_sec']['fr-fr'] = "Score Basé sur le temps Seconds"; +$text['label-time_base_score_sec']['he-il'] = ""; +$text['label-time_base_score_sec']['it-it'] = "Punteggio su Base Tempo Secondi"; +$text['label-time_base_score_sec']['nl-nl'] = "Tijd basis score"; +$text['label-time_base_score_sec']['pl-pl'] = "Wynik oparty na czasie Sekundy"; +$text['label-time_base_score_sec']['pt-br'] = "Pontuação baseada no tempo Segundos"; //copied from pt-pt +$text['label-time_base_score_sec']['pt-pt'] = "Pontuação baseada no tempo Segundos"; +$text['label-time_base_score_sec']['ro-ro'] = ""; +$text['label-time_base_score_sec']['ru-ru'] = "Оценка по времени секунды"; +$text['label-time_base_score_sec']['sv-se'] = "Tidsbaserat Resultat Sekunder"; +$text['label-time_base_score_sec']['uk-ua'] = ""; + $text['label-tiers']['en-us'] = "Tiers"; $text['label-tiers']['en-gb'] = "Tiers"; $text['label-tiers']['ar-eg'] = ""; @@ -933,8 +954,8 @@ $text['label-tiers']['de-ch'] = "Ebenen"; //copied from de-de $text['label-tiers']['de-de'] = "Ebenen"; $text['label-tiers']['es-cl'] = "Niveles de Centro de Llamados"; $text['label-tiers']['es-mx'] = "Niveles de Centro de Llamados"; //copied from es-cl -$text['label-tiers']['fr-ca'] = "Niveaux du Centre d'Appel"; //copied from fr-fr -$text['label-tiers']['fr-fr'] = "Niveaux du Centre d'Appel"; +$text['label-tiers']['fr-ca'] = "Niveaux du centre d'appel"; +$text['label-tiers']['fr-fr'] = "Niveaux du Centre d'appel"; $text['label-tiers']['he-il'] = ""; $text['label-tiers']['it-it'] = "Tiers"; $text['label-tiers']['nl-nl'] = "Vergelijkingen"; @@ -954,8 +975,8 @@ $text['label-tier_rules_apply']['de-ch'] = "Ebenen-Regeln werden angewendet"; // $text['label-tier_rules_apply']['de-de'] = "Ebenen-Regeln werden angewendet"; $text['label-tier_rules_apply']['es-cl'] = "Aplicar Reglas de Nivel"; $text['label-tier_rules_apply']['es-mx'] = "Aplicar Reglas de Nivel"; //copied from es-cl -$text['label-tier_rules_apply']['fr-ca'] = "Appliquer la Règle du Niveau"; //copied from fr-fr -$text['label-tier_rules_apply']['fr-fr'] = "Appliquer la Règle du Niveau"; +$text['label-tier_rules_apply']['fr-ca'] = "Appliquer les règles du niveau"; +$text['label-tier_rules_apply']['fr-fr'] = "Appliquer les règles du niveau"; $text['label-tier_rules_apply']['he-il'] = ""; $text['label-tier_rules_apply']['it-it'] = "Applica regole del Tier"; $text['label-tier_rules_apply']['nl-nl'] = "Vergelijkingsregels zijn van toepassing"; @@ -975,8 +996,8 @@ $text['label-tier_rule_wait_second']['de-ch'] = "Ebenen-Regel Wartezeit"; //copi $text['label-tier_rule_wait_second']['de-de'] = "Ebenen-Regel Wartezeit"; $text['label-tier_rule_wait_second']['es-cl'] = "Regla de nível segundo de espera"; $text['label-tier_rule_wait_second']['es-mx'] = "Regla de nível segundo de espera"; //copied from es-cl -$text['label-tier_rule_wait_second']['fr-ca'] = "Attente, en seconde, de la Règle du Tier"; //copied from fr-fr -$text['label-tier_rule_wait_second']['fr-fr'] = "Attente, en seconde, de la Règle du Tier"; +$text['label-tier_rule_wait_second']['fr-ca'] = "Délai d'attente, en secondes, de la règle du niveau"; +$text['label-tier_rule_wait_second']['fr-fr'] = "Délai d'attente, en secondes, de la règle du niveau"; $text['label-tier_rule_wait_second']['he-il'] = ""; $text['label-tier_rule_wait_second']['it-it'] = "Regola Tier Attesa Secondi"; $text['label-tier_rule_wait_second']['nl-nl'] = "Vergelijkigsregels wachttijd"; @@ -996,8 +1017,8 @@ $text['label-tier_rule_wait_multiply_level']['de-ch'] = "Multiplikator für die $text['label-tier_rule_wait_multiply_level']['de-de'] = "Multiplikator für die Ebenen-Regel Wartezeit"; $text['label-tier_rule_wait_multiply_level']['es-cl'] = "Regla de nivel multiplicar nivel de espera"; $text['label-tier_rule_wait_multiply_level']['es-mx'] = "Regla de nivel multiplicar nivel de espera"; //copied from es-cl -$text['label-tier_rule_wait_multiply_level']['fr-ca'] = "Règle d'Attente du Niveau Multipliée par Niveau"; //copied from fr-fr -$text['label-tier_rule_wait_multiply_level']['fr-fr'] = "Règle d'Attente du Niveau Multipliée par Niveau"; +$text['label-tier_rule_wait_multiply_level']['fr-ca'] = "Règle d'attente du niveau multipliée par niveau"; +$text['label-tier_rule_wait_multiply_level']['fr-fr'] = "Règle d'attente du niveau multipliée par niveau"; $text['label-tier_rule_wait_multiply_level']['he-il'] = ""; $text['label-tier_rule_wait_multiply_level']['it-it'] = "Regola Tier Attesa Moltiplica Livello"; $text['label-tier_rule_wait_multiply_level']['nl-nl'] = "Vergelijkingsregels Vermenigvuldigingsfactor"; @@ -1017,8 +1038,8 @@ $text['label-tier_rule_no_agent_no_wait']['de-ch'] = "Ebenen-Regel kein Agent ni $text['label-tier_rule_no_agent_no_wait']['de-de'] = "Ebenen-Regel kein Agent nicht warten"; $text['label-tier_rule_no_agent_no_wait']['es-cl'] = "Regla de nivel No espera Sin Agente"; $text['label-tier_rule_no_agent_no_wait']['es-mx'] = "Regla de nivel No espera Sin Agente"; //copied from es-cl -$text['label-tier_rule_no_agent_no_wait']['fr-ca'] = "Règle du Niveau Pas d'Agent, Pas d'attente"; //copied from fr-fr -$text['label-tier_rule_no_agent_no_wait']['fr-fr'] = "Règle du Niveau Pas d'Agent, Pas d'attente"; +$text['label-tier_rule_no_agent_no_wait']['fr-ca'] = "Règle du niveau pas d'agent, pas d'attente"; +$text['label-tier_rule_no_agent_no_wait']['fr-fr'] = "Règle du niveau pas d'agent, pas d'attente"; $text['label-tier_rule_no_agent_no_wait']['he-il'] = ""; $text['label-tier_rule_no_agent_no_wait']['it-it'] = "Regola Tier No Agente No Attesa"; $text['label-tier_rule_no_agent_no_wait']['nl-nl'] = "Vergelijkingsregel Geen agent niet wachten"; @@ -1101,8 +1122,8 @@ $text['label-status']['de-ch'] = "Status"; //copied from de-de $text['label-status']['de-de'] = "Status"; $text['label-status']['es-cl'] = "Estado"; $text['label-status']['es-mx'] = "Estado"; //copied from es-cl -$text['label-status']['fr-ca'] = "Etat"; //copied from fr-fr -$text['label-status']['fr-fr'] = "Etat"; +$text['label-status']['fr-ca'] = "État"; +$text['label-status']['fr-fr'] = "État"; $text['label-status']['he-il'] = ""; $text['label-status']['it-it'] = "Status"; $text['label-status']['nl-nl'] = "Status"; @@ -1122,8 +1143,8 @@ $text['label-reject_delay_time']['de-ch'] = "Zeitverzögerung für Zeitüberschr $text['label-reject_delay_time']['de-de'] = "Zeitverzögerung für Zeitüberschreitung"; $text['label-reject_delay_time']['es-cl'] = "Tiempo de Espera para Rechazar"; $text['label-reject_delay_time']['es-mx'] = "Tiempo de Espera para Rechazar"; //copied from es-cl -$text['label-reject_delay_time']['fr-ca'] = "Délais pour le Rejet"; //copied from fr-fr -$text['label-reject_delay_time']['fr-fr'] = "Délais pour le Rejet"; +$text['label-reject_delay_time']['fr-ca'] = "Délai avant de rejeter"; +$text['label-reject_delay_time']['fr-fr'] = "Délai avant de rejeter"; $text['label-reject_delay_time']['he-il'] = ""; $text['label-reject_delay_time']['it-it'] = "Tempo Ritardo Rifiuto"; $text['label-reject_delay_time']['nl-nl'] = "Afwijzings vertragingstijd"; @@ -1143,8 +1164,8 @@ $text['label-record_template']['de-ch'] = "Aufnehmen"; //copied from de-de $text['label-record_template']['de-de'] = "Aufnehmen"; $text['label-record_template']['es-cl'] = "Guardar"; $text['label-record_template']['es-mx'] = "Guardar"; //copied from es-cl -$text['label-record_template']['fr-ca'] = "Enregistrement"; //copied from fr-fr -$text['label-record_template']['fr-fr'] = "Enregistrement"; +$text['label-record_template']['fr-ca'] = "Enregistrer"; +$text['label-record_template']['fr-fr'] = "Enregistrer"; $text['label-record_template']['he-il'] = ""; $text['label-record_template']['it-it'] = "Registra"; $text['label-record_template']['nl-nl'] = "Opnemen"; @@ -1248,8 +1269,8 @@ $text['label-no_answer_delay_time']['de-ch'] = "Verzögerung für keine Antwort" $text['label-no_answer_delay_time']['de-de'] = "Verzögerung für keine Antwort"; $text['label-no_answer_delay_time']['es-cl'] = "Tiempo de Espera sin Respuesta"; $text['label-no_answer_delay_time']['es-mx'] = "Tiempo de Espera sin Respuesta"; //copied from es-cl -$text['label-no_answer_delay_time']['fr-ca'] = "Delais de Non Réponse"; //copied from fr-fr -$text['label-no_answer_delay_time']['fr-fr'] = "Delais de Non Réponse"; +$text['label-no_answer_delay_time']['fr-ca'] = "Délai de non réponse"; +$text['label-no_answer_delay_time']['fr-fr'] = "Délai de non réponse"; $text['label-no_answer_delay_time']['he-il'] = ""; $text['label-no_answer_delay_time']['it-it'] = "Tempo Ritardo Mancata Risposta"; $text['label-no_answer_delay_time']['nl-nl'] = "Geen antwoord vertragingstijd"; @@ -1269,8 +1290,8 @@ $text['label-music_on_hold']['de-ch'] = "Wartemusik"; //copied from de-de $text['label-music_on_hold']['de-de'] = "Wartemusik"; $text['label-music_on_hold']['es-cl'] = "Música en Espera"; $text['label-music_on_hold']['es-mx'] = "Música en Espera"; //copied from es-cl -$text['label-music_on_hold']['fr-ca'] = "Musique en attente"; //copied from fr-fr -$text['label-music_on_hold']['fr-fr'] = "Musique en attente"; +$text['label-music_on_hold']['fr-ca'] = "Musique d'attente"; +$text['label-music_on_hold']['fr-fr'] = "Musique d'attente"; $text['label-music_on_hold']['he-il'] = ""; $text['label-music_on_hold']['it-it'] = "Musica d'Attesa"; $text['label-music_on_hold']['nl-nl'] = "Wachtmuziek"; @@ -1290,8 +1311,8 @@ $text['label-max_wait_time_with_no_agent_time_reached']['de-ch'] = "Maximale War $text['label-max_wait_time_with_no_agent_time_reached']['de-de'] = "Maximale Wartezeit ohne Agent erreicht"; $text['label-max_wait_time_with_no_agent_time_reached']['es-cl'] = "Tiempo máximo de espera sin agente obtenido"; $text['label-max_wait_time_with_no_agent_time_reached']['es-mx'] = "Tiempo máximo de espera sin agente obtenido"; //copied from es-cl -$text['label-max_wait_time_with_no_agent_time_reached']['fr-ca'] = "Max Attente Sans Agent Atteinte"; //copied from fr-fr -$text['label-max_wait_time_with_no_agent_time_reached']['fr-fr'] = "Max Attente Sans Agent Atteinte"; +$text['label-max_wait_time_with_no_agent_time_reached']['fr-ca'] = "Temps d'attente maximum sans temps d'agent atteint"; +$text['label-max_wait_time_with_no_agent_time_reached']['fr-fr'] = "Temps d'attente maximum sans temps d'agent atteint"; $text['label-max_wait_time_with_no_agent_time_reached']['he-il'] = ""; $text['label-max_wait_time_with_no_agent_time_reached']['it-it'] = "Max Tempo Attesa Raggiungimento Tempo No Agenti"; $text['label-max_wait_time_with_no_agent_time_reached']['nl-nl'] = "Maximale wachttijd zonder agent bereikt"; @@ -1311,8 +1332,8 @@ $text['label-max_wait_time_with_no_agent']['de-ch'] = "Maximale Wartezeit ohne A $text['label-max_wait_time_with_no_agent']['de-de'] = "Maximale Wartezeit ohne Agent"; $text['label-max_wait_time_with_no_agent']['es-cl'] = "Tiempo máximo de espera sin agente"; $text['label-max_wait_time_with_no_agent']['es-mx'] = "Tiempo máximo de espera sin agente"; //copied from es-cl -$text['label-max_wait_time_with_no_agent']['fr-ca'] = "Temps d'attente maximal Sans Agent"; //copied from fr-fr -$text['label-max_wait_time_with_no_agent']['fr-fr'] = "Temps d'attente maximal Sans Agent"; +$text['label-max_wait_time_with_no_agent']['fr-ca'] = "Temps d'attente maximum sans agent"; +$text['label-max_wait_time_with_no_agent']['fr-fr'] = "Temps d'attente maximum sans agent"; $text['label-max_wait_time_with_no_agent']['he-il'] = ""; $text['label-max_wait_time_with_no_agent']['it-it'] = "Max Tempo Attesa No Agenti"; $text['label-max_wait_time_with_no_agent']['nl-nl'] = "Maximale wachttijd zonder agent"; @@ -1395,8 +1416,8 @@ $text['label-discard_abandoned_after']['de-ch'] = "Zurückweisen nach Zeitübers $text['label-discard_abandoned_after']['de-de'] = "Zurückweisen nach Zeitüberschreitung"; $text['label-discard_abandoned_after']['es-cl'] = "Descartar Abandono Despues de"; $text['label-discard_abandoned_after']['es-mx'] = "Descartar Abandono Despues de"; //copied from es-cl -$text['label-discard_abandoned_after']['fr-ca'] = "Ecarter les Abandons fait Après"; //copied from fr-fr -$text['label-discard_abandoned_after']['fr-fr'] = "Ecarter les Abandons fait Après"; +$text['label-discard_abandoned_after']['fr-ca'] = "Écarter les abandons après"; +$text['label-discard_abandoned_after']['fr-fr'] = "Écarter les abandons après"; $text['label-discard_abandoned_after']['he-il'] = ""; $text['label-discard_abandoned_after']['it-it'] = "Scarta chi Abbandona Dopo"; $text['label-discard_abandoned_after']['nl-nl'] = "Afbreken na tijdsoverschreiding"; @@ -1416,8 +1437,8 @@ $text['label-default_status']['de-ch'] = "Standardzustand"; //copied from de-de $text['label-default_status']['de-de'] = "Standardzustand"; $text['label-default_status']['es-cl'] = "Estado Predeterminado"; $text['label-default_status']['es-mx'] = "Estado Predeterminado"; //copied from es-cl -$text['label-default_status']['fr-ca'] = "Statut Prédéterminée"; //copied from fr-fr -$text['label-default_status']['fr-fr'] = "Statut Prédéterminée"; +$text['label-default_status']['fr-ca'] = "État par défaut"; +$text['label-default_status']['fr-fr'] = "État par défaut"; $text['label-default_status']['he-il'] = ""; $text['label-default_status']['it-it'] = "Status di Default"; $text['label-default_status']['nl-nl'] = "Standaard status"; @@ -1458,8 +1479,8 @@ $text['label-caller_id_name_prefix']['de-ch'] = "Anruferkennung (Name) Prefix"; $text['label-caller_id_name_prefix']['de-de'] = "Anruferkennung (Name) Prefix"; $text['label-caller_id_name_prefix']['es-cl'] = "Prefijo de nombre de quien llama"; $text['label-caller_id_name_prefix']['es-mx'] = "Prefijo de nombre de quien llama"; //copied from es-cl -$text['label-caller_id_name_prefix']['fr-ca'] = "Préfixe du Nom d'Appelant"; //copied from fr-fr -$text['label-caller_id_name_prefix']['fr-fr'] = "Préfixe du Nom d'Appelant"; +$text['label-caller_id_name_prefix']['fr-ca'] = "Préfixe du nom de l'identification de l'appelant"; +$text['label-caller_id_name_prefix']['fr-fr'] = "Préfixe du nom de l'identification de l'appelant"; $text['label-caller_id_name_prefix']['he-il'] = ""; $text['label-caller_id_name_prefix']['it-it'] = "Prefisso Nome Chiamante"; $text['label-caller_id_name_prefix']['nl-nl'] = "CID Naam prefix"; @@ -1479,7 +1500,7 @@ $text['label-outbound_caller_id_name']['de-ch'] = "Ausgehende Anruferkennung (Na $text['label-outbound_caller_id_name']['de-de'] = "Ausgehende Anruferkennung (Name)"; $text['label-outbound_caller_id_name']['es-cl'] = "Nombre de Caller ID Saliente"; $text['label-outbound_caller_id_name']['es-mx'] = "Nombre de Caller ID Saliente"; //copied from es-cl -$text['label-outbound_caller_id_name']['fr-ca'] = "Nom de l'appelant sortant"; //copied from fr-fr +$text['label-outbound_caller_id_name']['fr-ca'] = "Nom de l'appelant sortant"; $text['label-outbound_caller_id_name']['fr-fr'] = "Nom de l'appelant sortant"; $text['label-outbound_caller_id_name']['he-il'] = ""; $text['label-outbound_caller_id_name']['it-it'] = "ID Nome Chiamante Esterno"; @@ -1521,8 +1542,8 @@ $text['label-caller_announce_sound']['de-ch'] = "Ton für Ankündigung"; //copie $text['label-caller_announce_sound']['de-de'] = "Ton für Ankündigung"; $text['label-caller_announce_sound']['es-cl'] = "El sonido anuncian"; $text['label-caller_announce_sound']['es-mx'] = "El sonido anuncian"; //copied from es-cl -$text['label-caller_announce_sound']['fr-ca'] = "Annoncer Sonore"; //copied from fr-fr -$text['label-caller_announce_sound']['fr-fr'] = "Annoncer Sonore"; +$text['label-caller_announce_sound']['fr-ca'] = "Son d'annonce"; +$text['label-caller_announce_sound']['fr-fr'] = "Son d'annonce"; $text['label-caller_announce_sound']['he-il'] = ""; $text['label-caller_announce_sound']['it-it'] = "Audio Annuncio"; $text['label-caller_announce_sound']['nl-nl'] = "Aankondigingsgeluid"; @@ -1542,8 +1563,8 @@ $text['label-caller_announce_frequency']['de-ch'] = "Häufigkeit der Ankündigun $text['label-caller_announce_frequency']['de-de'] = "Häufigkeit der Ankündigung"; $text['label-caller_announce_frequency']['es-cl'] = "La frecuencia anuncian"; $text['label-caller_announce_frequency']['es-mx'] = "La frecuencia anuncian"; //copied from es-cl -$text['label-caller_announce_frequency']['fr-ca'] = "Annoncer Fréquence"; //copied from fr-fr -$text['label-caller_announce_frequency']['fr-fr'] = "Annoncer Fréquence"; +$text['label-caller_announce_frequency']['fr-ca'] = "Fréquence d'annonce"; +$text['label-caller_announce_frequency']['fr-fr'] = "Fréquence d'annonce"; $text['label-caller_announce_frequency']['he-il'] = ""; $text['label-caller_announce_frequency']['it-it'] = "Frequenza Annuncio"; $text['label-caller_announce_frequency']['nl-nl'] = "Aantal aankondigingen"; @@ -1563,8 +1584,8 @@ $text['label-exit_keys']['de-ch'] = "Abbruch Taste"; //copied from de-de $text['label-exit_keys']['de-de'] = "Abbruch Taste"; $text['label-exit_keys']['es-cl'] = "Tecla de salida"; $text['label-exit_keys']['es-mx'] = "Tecla de salida"; //copied from es-cl -$text['label-exit_keys']['fr-ca'] = "Clé pour sortir la queue"; //copied from fr-fr -$text['label-exit_keys']['fr-fr'] = "Clé pour sortir la queue"; +$text['label-exit_keys']['fr-ca'] = "Touche pour sortir de la file d'attente"; +$text['label-exit_keys']['fr-fr'] = "Touche pour sortir de la file d'attente"; $text['label-exit_keys']['he-il'] = ""; $text['label-exit_keys']['it-it'] = ""; $text['label-exit_keys']['nl-nl'] = "Verlaat toets"; @@ -1584,8 +1605,8 @@ $text['description-exit_keys']['de-ch'] = "Tasten um die aktuelle Warteschlange $text['description-exit_keys']['de-de'] = "Tasten um die aktuelle Warteschlange zu verlassen."; $text['description-exit_keys']['es-cl'] = "Teclas para salir de la espera de la cola."; $text['description-exit_keys']['es-mx'] = "Teclas para salir de la espera de la cola."; //copied from es-cl -$text['description-exit_keys']['fr-ca'] = "Clés pour sortir de l'attendance de la queue."; //copied from fr-fr -$text['description-exit_keys']['fr-fr'] = "Clés pour sortir de l'attendance de la queue."; +$text['description-exit_keys']['fr-ca'] = "Touches pour quitter la file d'attente actuelle."; +$text['description-exit_keys']['fr-fr'] = "Touches pour quitter la file d'attente actuelle"; $text['description-exit_keys']['he-il'] = ""; $text['description-exit_keys']['it-it'] = ""; $text['description-exit_keys']['nl-nl'] = "Toetsen om de huidige wachtrij te verlaten."; @@ -1605,8 +1626,8 @@ $text['label-call_timeout']['de-ch'] = "Zeitüberschreitung"; //copied from de-d $text['label-call_timeout']['de-de'] = "Zeitüberschreitung"; $text['label-call_timeout']['es-cl'] = "Timeout de Llamada"; $text['label-call_timeout']['es-mx'] = "Timeout de Llamada"; //copied from es-cl -$text['label-call_timeout']['fr-ca'] = "Timeout d'appel"; //copied from fr-fr -$text['label-call_timeout']['fr-fr'] = "Timeout d'appel"; +$text['label-call_timeout']['fr-ca'] = "Délai d'expiration de l'appel"; +$text['label-call_timeout']['fr-fr'] = "Délai d'expiration de l'appel"; $text['label-call_timeout']['he-il'] = ""; $text['label-call_timeout']['it-it'] = "Timeout di Chiamata"; $text['label-call_timeout']['nl-nl'] = "Oproep tijdsoverschrijding"; @@ -1626,8 +1647,8 @@ $text['label-busy_delay_time']['de-ch'] = "Verzögerungszeit für Besetzt"; //co $text['label-busy_delay_time']['de-de'] = "Verzögerungszeit für Besetzt"; $text['label-busy_delay_time']['es-cl'] = "Tiempo de espera para ocupado"; $text['label-busy_delay_time']['es-mx'] = "Tiempo de espera para ocupado"; //copied from es-cl -$text['label-busy_delay_time']['fr-ca'] = "Délais d'occupation"; //copied from fr-fr -$text['label-busy_delay_time']['fr-fr'] = "Délais d'occupation"; +$text['label-busy_delay_time']['fr-ca'] = "Délai de temps occupé"; +$text['label-busy_delay_time']['fr-fr'] = "Délai de temps occupé"; $text['label-busy_delay_time']['he-il'] = ""; $text['label-busy_delay_time']['it-it'] = "Tempo ritardo su Occupato"; $text['label-busy_delay_time']['nl-nl'] = "Bezet wachttijd"; @@ -1647,8 +1668,8 @@ $text['label-agent_password']['de-ch'] = "Agenten Passwort"; //copied from de-de $text['label-agent_password']['de-de'] = "Agenten Passwort"; $text['label-agent_password']['es-cl'] = "Agente de Password"; $text['label-agent_password']['es-mx'] = "Agente de Password"; //copied from es-cl -$text['label-agent_password']['fr-ca'] = "Agent Mot de passe"; //copied from fr-fr -$text['label-agent_password']['fr-fr'] = "Agent Mot de passe"; +$text['label-agent_password']['fr-ca'] = "Mot de passe d'agent"; +$text['label-agent_password']['fr-fr'] = "Mot de passe d'agent"; $text['label-agent_password']['he-il'] = ""; $text['label-agent_password']['it-it'] = "Password Agente"; $text['label-agent_password']['nl-nl'] = "Agent wachtwoord"; @@ -1710,8 +1731,8 @@ $text['label-agent_id']['de-ch'] = "Agenten ID"; //copied from de-de $text['label-agent_id']['de-de'] = "Agenten ID"; $text['label-agent_id']['es-cl'] = "Agente de identidad"; $text['label-agent_id']['es-mx'] = "Agente de identidad"; //copied from es-cl -$text['label-agent_id']['fr-ca'] = "Identification Agent"; //copied from fr-fr -$text['label-agent_id']['fr-fr'] = "Identification Agent"; +$text['label-agent_id']['fr-ca'] = "Identification d'agent"; +$text['label-agent_id']['fr-fr'] = "Identification d'agent"; $text['label-agent_id']['he-il'] = ""; $text['label-agent_id']['it-it'] = "ID Agente"; $text['label-agent_id']['nl-nl'] = "Agent ID"; @@ -1773,8 +1794,8 @@ $text['label-abandoned_resume_allowed']['de-ch'] = "Wiederaufnahme nach Zurückw $text['label-abandoned_resume_allowed']['de-de'] = "Wiederaufnahme nach Zurückweisung erlaubt"; $text['label-abandoned_resume_allowed']['es-cl'] = "Permitir Reanudación de Abandono"; $text['label-abandoned_resume_allowed']['es-mx'] = "Permitir Reanudación de Abandono"; //copied from es-cl -$text['label-abandoned_resume_allowed']['fr-ca'] = "Recupération Permise des Abandons"; //copied from fr-fr -$text['label-abandoned_resume_allowed']['fr-fr'] = "Recupération Permise des Abandons"; +$text['label-abandoned_resume_allowed']['fr-ca'] = "Récupération des abandons permis"; +$text['label-abandoned_resume_allowed']['fr-fr'] = "Récupération des abandons permis"; $text['label-abandoned_resume_allowed']['he-il'] = ""; $text['label-abandoned_resume_allowed']['it-it'] = "Permetti ripristino chi Abbandona"; $text['label-abandoned_resume_allowed']['nl-nl'] = "Verlaten oproep voortzetten toestaan"; @@ -1794,8 +1815,8 @@ $text['header-call_center_tier_edit']['de-ch'] = "Callcenter Ebene"; //copied fr $text['header-call_center_tier_edit']['de-de'] = "Callcenter Ebene"; $text['header-call_center_tier_edit']['es-cl'] = "Editar Nivel de Centro de Llamados"; $text['header-call_center_tier_edit']['es-mx'] = "Editar Nivel de Centro de Llamados"; //copied from es-cl -$text['header-call_center_tier_edit']['fr-ca'] = "Niveau du Centre d'Appel"; //copied from fr-fr -$text['header-call_center_tier_edit']['fr-fr'] = "Niveau du Centre d'Appel"; +$text['header-call_center_tier_edit']['fr-ca'] = "Niveau du centre d'appel"; +$text['header-call_center_tier_edit']['fr-fr'] = "Niveau du centre d'appel"; $text['header-call_center_tier_edit']['he-il'] = ""; $text['header-call_center_tier_edit']['it-it'] = "Tier del Call Center"; $text['header-call_center_tier_edit']['nl-nl'] = "Call-Center vergelijking"; @@ -1899,7 +1920,7 @@ $text['header-call_center_agent_status']['de-ch'] = "Callcenter Agenten-Status"; $text['header-call_center_agent_status']['de-de'] = "Callcenter Agenten-Status"; $text['header-call_center_agent_status']['es-cl'] = "Estado de Agente de Centro de Llamados"; $text['header-call_center_agent_status']['es-mx'] = "Estado de Agente de Centro de Llamados"; //copied from es-cl -$text['header-call_center_agent_status']['fr-ca'] = "Etat de l'agent du Centre d'Appel"; //copied from fr-fr +$text['header-call_center_agent_status']['fr-ca'] = "État de l'agent du Centre d'appel"; $text['header-call_center_agent_status']['fr-fr'] = "Etat de l'agent du Centre d'Appel"; $text['header-call_center_agent_status']['he-il'] = ""; $text['header-call_center_agent_status']['it-it'] = "Stato Agente Call Center"; @@ -1920,7 +1941,7 @@ $text['header-call_center_agent_edit']['de-ch'] = "Callcenter Agent"; //copied f $text['header-call_center_agent_edit']['de-de'] = "Callcenter Agent"; $text['header-call_center_agent_edit']['es-cl'] = "Editar Agente de Centro de Llamados"; $text['header-call_center_agent_edit']['es-mx'] = "Editar Agente de Centro de Llamados"; //copied from es-cl -$text['header-call_center_agent_edit']['fr-ca'] = "Agent du Centre d'Appel"; //copied from fr-fr +$text['header-call_center_agent_edit']['fr-ca'] = "Agent du Centre d'appel"; $text['header-call_center_agent_edit']['fr-fr'] = "Agent du Centre d'Appel"; $text['header-call_center_agent_edit']['he-il'] = ""; $text['header-call_center_agent_edit']['it-it'] = "Agente Call Center"; @@ -1941,8 +1962,8 @@ $text['header-call_center_agent_add']['de-ch'] = "Callcenter Agenten"; //copied $text['header-call_center_agent_add']['de-de'] = "Callcenter Agenten"; $text['header-call_center_agent_add']['es-cl'] = "Agregar Agente de Centro de Llamados"; $text['header-call_center_agent_add']['es-mx'] = "Agregar Agente de Centro de Llamados"; //copied from es-cl -$text['header-call_center_agent_add']['fr-ca'] = "Agent du Centre d'Appel"; //copied from fr-fr -$text['header-call_center_agent_add']['fr-fr'] = "Agent du Centre d'Appel"; +$text['header-call_center_agent_add']['fr-ca'] = "Agents du centre d'appel"; +$text['header-call_center_agent_add']['fr-fr'] = "Agents du centre d'appel"; $text['header-call_center_agent_add']['he-il'] = ""; $text['header-call_center_agent_add']['it-it'] = "Agenti Call Center"; $text['header-call_center_agent_add']['nl-nl'] = "Call-Center agenten"; @@ -1962,8 +1983,8 @@ $text['description-wrap_up_time']['de-ch'] = "Geben Sie die Nachbereitungszeit e $text['description-wrap_up_time']['de-de'] = "Geben Sie die Nachbereitungszeit ein."; $text['description-wrap_up_time']['es-cl'] = "Introduzca el tiempo de preparación."; $text['description-wrap_up_time']['es-mx'] = "Introduzca el tiempo de preparación."; //copied from es-cl -$text['description-wrap_up_time']['fr-ca'] = "choisir le temps de wrap up."; //copied from fr-fr -$text['description-wrap_up_time']['fr-fr'] = "choisir le temps de wrap up."; +$text['description-wrap_up_time']['fr-ca'] = "Choisir le temps de clôture."; +$text['description-wrap_up_time']['fr-fr'] = "Choisir le temps de clôture."; $text['description-wrap_up_time']['he-il'] = ""; $text['description-wrap_up_time']['it-it'] = "Inserire Tempo di wrap up."; $text['description-wrap_up_time']['nl-nl'] = "Voer de afwikkeltijd in."; @@ -2004,8 +2025,8 @@ $text['description-timeout_action']['de-ch'] = "Aktion, wenn die maximale Wartez $text['description-timeout_action']['de-de'] = "Aktion, wenn die maximale Wartezeit erreicht wurde."; $text['description-timeout_action']['es-cl'] = "Defina una acción a realizar cuando el tiempo máximo es alcanzado."; $text['description-timeout_action']['es-mx'] = "Defina una acción a realizar cuando el tiempo máximo es alcanzado."; //copied from es-cl -$text['description-timeout_action']['fr-ca'] = "Choisir l'action à faire quand le temps max d'attente est atteint."; //copied from fr-fr -$text['description-timeout_action']['fr-fr'] = "Choisir l'action à faire quand le temps max d'attente est atteint."; +$text['description-timeout_action']['fr-ca'] = "Définir l'action à exécuter lorsque le temps d'attente maximal est atteint."; +$text['description-timeout_action']['fr-fr'] = "Définir l'action à exécuter lorsque le temps d'attente maximal est atteint."; $text['description-timeout_action']['he-il'] = ""; $text['description-timeout_action']['it-it'] = "Seleziona l'azione da eseguire quando il tempo di attesa max viene superato."; $text['description-timeout_action']['nl-nl'] = "Aktie als de maximale wachttijd bereikt wordt"; @@ -2025,8 +2046,8 @@ $text['description-time_base_score']['de-ch'] = "Wählen Sie die Zeitgeber für $text['description-time_base_score']['de-de'] = "Wählen Sie die Zeitgeber für Klassifikation"; $text['description-time_base_score']['es-cl'] = "Seleccione el tiempo base"; $text['description-time_base_score']['es-mx'] = "Seleccione el tiempo base"; //copied from es-cl -$text['description-time_base_score']['fr-ca'] = "Sélection du score sur base de temps."; //copied from fr-fr -$text['description-time_base_score']['fr-fr'] = "Sélection du score sur base de temps."; +$text['description-time_base_score']['fr-ca'] = "Sélection du score basé sur le temps."; +$text['description-time_base_score']['fr-fr'] = "Sélection du score basé sur le temps."; $text['description-time_base_score']['he-il'] = ""; $text['description-time_base_score']['it-it'] = "Seleziona il punteggio su base tempo."; $text['description-time_base_score']['nl-nl'] = "Select de tijdsbasis score."; @@ -2038,6 +2059,28 @@ $text['description-time_base_score']['ru-ru'] = "Выберие оценку п $text['description-time_base_score']['sv-se'] = "Ange tids-baserad poäng."; $text['description-time_base_score']['uk-ua'] = ""; + +$text['description-time_base_score_sec']['en-us'] = "Set the time base score in seconds. Higher numbers mean higher priority over other call centers."; +$text['description-time_base_score_sec']['en-gb'] = "Set the time base score in seconds. Higher numbers mean higher priority over other call centers."; +$text['description-time_base_score_sec']['ar-eg'] = ""; +$text['description-time_base_score_sec']['de-at'] = ""; +$text['description-time_base_score_sec']['de-ch'] = ""; +$text['description-time_base_score_sec']['de-de'] = ""; +$text['description-time_base_score_sec']['es-cl'] = ""; +$text['description-time_base_score_sec']['es-mx'] = ""; +$text['description-time_base_score_sec']['fr-ca'] = ""; +$text['description-time_base_score_sec']['fr-fr'] = ""; +$text['description-time_base_score_sec']['he-il'] = ""; +$text['description-time_base_score_sec']['it-it'] = ""; +$text['description-time_base_score_sec']['nl-nl'] = ""; +$text['description-time_base_score_sec']['pl-pl'] = ""; +$text['description-time_base_score_sec']['pt-br'] = ""; +$text['description-time_base_score_sec']['pt-pt'] = ""; +$text['description-time_base_score_sec']['ro-ro'] = ""; +$text['description-time_base_score_sec']['ru-ru'] = ""; +$text['description-time_base_score_sec']['sv-se'] = ""; +$text['description-time_base_score_sec']['uk-ua'] = ""; + $text['description-tiers']['en-us'] = "Tiers assign agents to queues."; $text['description-tiers']['en-gb'] = "Tiers assign agents to queues."; $text['description-tiers']['ar-eg'] = ""; @@ -2046,8 +2089,8 @@ $text['description-tiers']['de-ch'] = "Agenten einer Warteschlange pro Ebene zuw $text['description-tiers']['de-de'] = "Agenten einer Warteschlange pro Ebene zuweisen."; $text['description-tiers']['es-cl'] = "Lista todos los niveles. Los niveles asignan agentes a las colas."; $text['description-tiers']['es-mx'] = "Lista todos los niveles. Los niveles asignan agentes a las colas."; //copied from es-cl -$text['description-tiers']['fr-ca'] = "Liste tous les Niveaux. Les Niveaux permettent d'affecter les agents aux queues."; //copied from fr-fr -$text['description-tiers']['fr-fr'] = "Liste tous les Niveaux. Les Niveaux permettent d'affecter les agents aux queues."; +$text['description-tiers']['fr-ca'] = "Liste tous les niveaux. Les niveaux permettent d'affecter les agents aux files d'attente."; +$text['description-tiers']['fr-fr'] = "Liste tous les niveaux. Les niveaux permettent d'affecter les agents aux files d'attente."; $text['description-tiers']['he-il'] = ""; $text['description-tiers']['it-it'] = "I tiers assegnano gli agenti alle code."; $text['description-tiers']['nl-nl'] = "Vergelijkingen towijzen van agenten aan wachtrij"; @@ -2067,8 +2110,8 @@ $text['description-tier_rules_apply']['de-ch'] = "Setzen Sie die Ebenen-Regel. R $text['description-tier_rules_apply']['de-de'] = "Setzen Sie die Ebenen-Regel. Regeln sind Ein oder Aus"; $text['description-tier_rules_apply']['es-cl'] = "Defina las reglas de nivel como verdaero o falso."; $text['description-tier_rules_apply']['es-mx'] = "Defina las reglas de nivel como verdaero o falso."; //copied from es-cl -$text['description-tier_rules_apply']['fr-ca'] = "Choisir l'activation de la règle du Niveau à oui ou non."; //copied from fr-fr -$text['description-tier_rules_apply']['fr-fr'] = "Choisir l'activation de la règle du Niveau à oui ou non."; +$text['description-tier_rules_apply']['fr-ca'] = "Définir l'activation de la règle du niveau à oui ou non."; +$text['description-tier_rules_apply']['fr-fr'] = "Définir l'activation de la règle du niveau à oui ou non."; $text['description-tier_rules_apply']['he-il'] = ""; $text['description-tier_rules_apply']['it-it'] = "Imposta a vero o falso se si vogliono applicare le regole di tier."; $text['description-tier_rules_apply']['nl-nl'] = "Kies de vergelijkingsregels, Regels staan aan of uit"; @@ -2109,8 +2152,8 @@ $text['description-tier_rule_wait_multiply_level']['de-ch'] = "Setzen Sie den Mu $text['description-tier_rule_wait_multiply_level']['de-de'] = "Setzen Sie den Multiplikator für die Ebenen-Regel Wartezeit auf Ein oder Aus."; $text['description-tier_rule_wait_multiply_level']['es-cl'] = "Ajuste el nidenvel de espera multiplicar regla de nivel de verdadero o falso."; $text['description-tier_rule_wait_multiply_level']['es-mx'] = "Ajuste el nidenvel de espera multiplicar regla de nivel de verdadero o falso."; //copied from es-cl -$text['description-tier_rule_wait_multiply_level']['fr-ca'] = "Choisir la multiplication du temps d'attente par niveau à oui ou non."; //copied from fr-fr -$text['description-tier_rule_wait_multiply_level']['fr-fr'] = "Choisir la multiplication du temps d'attente par niveau à oui ou non."; +$text['description-tier_rule_wait_multiply_level']['fr-ca'] = "Définir la multiplication du temps d'attente par niveau à oui ou non."; +$text['description-tier_rule_wait_multiply_level']['fr-fr'] = "Définir la multiplication du temps d'attente par niveau à oui ou non."; $text['description-tier_rule_wait_multiply_level']['he-il'] = ""; $text['description-tier_rule_wait_multiply_level']['it-it'] = "Imposta a vero o falso il tempo attesa moltiplica livello come regola tier."; $text['description-tier_rule_wait_multiply_level']['nl-nl'] = "Kies vergelijkingsregel vemenigvuldiging aan of uit "; @@ -2235,8 +2278,8 @@ $text['description-reject_delay_time']['de-ch'] = "Geben Sie die Verzögerung bi $text['description-reject_delay_time']['de-de'] = "Geben Sie die Verzögerung bis zur Zurückweisung an."; $text['description-reject_delay_time']['es-cl'] = "Introduzca el tiempo de espera de rechazo."; $text['description-reject_delay_time']['es-mx'] = "Introduzca el tiempo de espera de rechazo."; //copied from es-cl -$text['description-reject_delay_time']['fr-ca'] = "Choisir le délais de rejet."; //copied from fr-fr -$text['description-reject_delay_time']['fr-fr'] = "Choisir le délais de rejet."; +$text['description-reject_delay_time']['fr-ca'] = "Choisir le délai avant de rejeter."; +$text['description-reject_delay_time']['fr-fr'] = "Choisir le délai avant de rejeter."; $text['description-reject_delay_time']['he-il'] = ""; $text['description-reject_delay_time']['it-it'] = "Inserire Tempo Ritardo Rifiuto."; $text['description-reject_delay_time']['nl-nl'] = "Kies afwijzingsvertragingstijd"; @@ -2319,8 +2362,8 @@ $text['description-no_answer_delay_time']['de-ch'] = "Geben Sie die Zeit in Seku $text['description-no_answer_delay_time']['de-de'] = "Geben Sie die Zeit in Sekunden an, die gewartet werden soll bis ein Agent annimmt."; $text['description-no_answer_delay_time']['es-cl'] = "Introduzca el tiempo de espera sin responder del agente en segundos."; $text['description-no_answer_delay_time']['es-mx'] = "Introduzca el tiempo de espera sin responder del agente en segundos."; //copied from es-cl -$text['description-no_answer_delay_time']['fr-ca'] = "Choisir le delais de non réponse de l'agent."; //copied from fr-fr -$text['description-no_answer_delay_time']['fr-fr'] = "Choisir le delais de non réponse de l'agent."; +$text['description-no_answer_delay_time']['fr-ca'] = "Définir le délai maximum sans réponse de l'agent en secondes."; +$text['description-no_answer_delay_time']['fr-fr'] = "Définir le délai maximum sans réponse de l'agent en secondes."; $text['description-no_answer_delay_time']['he-il'] = ""; $text['description-no_answer_delay_time']['it-it'] = "Inserire il tempo ritardo agente non risponde in secondi."; $text['description-no_answer_delay_time']['nl-nl'] = "Voer de agent geen antwoord vertragingstijd in (seconden)"; @@ -2340,8 +2383,8 @@ $text['description-music_on_hold']['de-ch'] = "Wählen Sie die gewünschte Warte $text['description-music_on_hold']['de-de'] = "Wählen Sie die gewünschte Wartemusik."; $text['description-music_on_hold']['es-cl'] = "Seleccione una música de espera."; $text['description-music_on_hold']['es-mx'] = "Seleccione una música de espera."; //copied from es-cl -$text['description-music_on_hold']['fr-ca'] = "Sélection de la musique en attente."; //copied from fr-fr -$text['description-music_on_hold']['fr-fr'] = "Sélection de la musique en attente."; +$text['description-music_on_hold']['fr-ca'] = "Sélection de la musique d'attente."; +$text['description-music_on_hold']['fr-fr'] = "Sélection de la musique d'attente."; $text['description-music_on_hold']['he-il'] = ""; $text['description-music_on_hold']['it-it'] = "Selezionare la musica di attesa desiderata."; $text['description-music_on_hold']['nl-nl'] = "Kies de gewenste wachtmuziek."; @@ -2361,8 +2404,8 @@ $text['description-max_wait_time_with_no_agent_time_reached']['de-ch'] = "Geben $text['description-max_wait_time_with_no_agent_time_reached']['de-de'] = "Geben Sie die maximale Wartezeit in Sekunden an, die ohne Agent gewartet werden soll."; $text['description-max_wait_time_with_no_agent_time_reached']['es-cl'] = "Introduzca el tiempo máximo de espera sin agente alcanzado."; $text['description-max_wait_time_with_no_agent_time_reached']['es-mx'] = "Introduzca el tiempo máximo de espera sin agente alcanzado."; //copied from es-cl -$text['description-max_wait_time_with_no_agent_time_reached']['fr-ca'] = " Entrez le temps d'attente maximum avec un rien de temps de l'agent atteint."; //copied from fr-fr -$text['description-max_wait_time_with_no_agent_time_reached']['fr-fr'] = " Entrez le temps d'attente maximum avec un rien de temps de l'agent atteint."; +$text['description-max_wait_time_with_no_agent_time_reached']['fr-ca'] = "Entrer le temps d'attente maximal atteint sans agent."; +$text['description-max_wait_time_with_no_agent_time_reached']['fr-fr'] = "Entrer le temps d'attente maximal atteint sans agent."; $text['description-max_wait_time_with_no_agent_time_reached']['he-il'] = ""; $text['description-max_wait_time_with_no_agent_time_reached']['it-it'] = "Inserire Max Tempo Attesa Raggiungimento Tempo No Agenti."; $text['description-max_wait_time_with_no_agent_time_reached']['nl-nl'] = "Voer de maximale wachttijd voor 'geen agent' beschikbaar."; @@ -2382,7 +2425,7 @@ $text['description-max_wait_time_with_no_agent']['de-ch'] = "Geben Sie die maxim $text['description-max_wait_time_with_no_agent']['de-de'] = "Geben Sie die maximale Wartezeit ohne Agent an."; $text['description-max_wait_time_with_no_agent']['es-cl'] = "Introduzca el tiempo máximo de espera sin agente."; $text['description-max_wait_time_with_no_agent']['es-mx'] = "Introduzca el tiempo máximo de espera sin agente."; //copied from es-cl -$text['description-max_wait_time_with_no_agent']['fr-ca'] = "Entrer le temps max d'attente sans agent."; //copied from fr-fr +$text['description-max_wait_time_with_no_agent']['fr-ca'] = "Entrer le temps maximal d'attente sans agent."; $text['description-max_wait_time_with_no_agent']['fr-fr'] = "Entrer le temps max d'attente sans agent."; $text['description-max_wait_time_with_no_agent']['he-il'] = ""; $text['description-max_wait_time_with_no_agent']['it-it'] = "Inserire max tempo attesa senza agenti."; @@ -2416,16 +2459,16 @@ $text['description-max_wait_time']['ru-ru'] = "Введите максималь $text['description-max_wait_time']['sv-se'] = "Ange max vänt-tid."; $text['description-max_wait_time']['uk-ua'] = ""; -$text['description-max_no_answer']['en-us'] = "Enter max no answer."; -$text['description-max_no_answer']['en-gb'] = "Enter max no answer."; +$text['description-max_no_answer']['en-us'] = "At max no answer, the agent will be logged out."; +$text['description-max_no_answer']['en-gb'] = "At max no answer, the agent will be logged out."; $text['description-max_no_answer']['ar-eg'] = ""; $text['description-max_no_answer']['de-at'] = "Geben Sie Max keine Antwort an."; //copied from de-de $text['description-max_no_answer']['de-ch'] = "Geben Sie Max keine Antwort an."; //copied from de-de $text['description-max_no_answer']['de-de'] = "Geben Sie Max keine Antwort an."; -$text['description-max_no_answer']['es-cl'] = "Introduza el máximo de no respuestas."; -$text['description-max_no_answer']['es-mx'] = "Introduza el máximo de no respuestas."; //copied from es-cl -$text['description-max_no_answer']['fr-ca'] = "Choisir le maximum pas de réponse."; //copied from fr-fr -$text['description-max_no_answer']['fr-fr'] = "Choisir le maximum pas de réponse."; +$text['description-max_no_answer']['es-cl'] = "Si no hay respuesta como máximo, se cerrará la sesión del agente."; +$text['description-max_no_answer']['es-mx'] = "Si no hay respuesta como máximo, se cerrará la sesión del agente."; +$text['description-max_no_answer']['fr-ca'] = "Au maximum sans réponse, l'agent sera déconnecté"; +$text['description-max_no_answer']['fr-fr'] = "Au maximum sans réponse, l'agent sera déconnecté"; $text['description-max_no_answer']['he-il'] = ""; $text['description-max_no_answer']['it-it'] = "Inserire max mancata risposta."; $text['description-max_no_answer']['nl-nl'] = "Voer maximale geen antwoord tijd in."; @@ -2445,8 +2488,8 @@ $text['description-extension']['de-ch'] = "Geben Sie die Nebenstelle an."; //cop $text['description-extension']['de-de'] = "Geben Sie die Nebenstelle an."; $text['description-extension']['es-cl'] = "Introduzca el número de extensión."; $text['description-extension']['es-mx'] = "Introduzca el número de extensión."; //copied from es-cl -$text['description-extension']['fr-ca'] = "Entrer un numéro d'extension"; //copied from fr-fr -$text['description-extension']['fr-fr'] = "Entrer un numéro d'extension"; +$text['description-extension']['fr-ca'] = "Entrer un numéro de poste"; +$text['description-extension']['fr-fr'] = "Entrer un numéro de poste"; $text['description-extension']['he-il'] = ""; $text['description-extension']['it-it'] = "Inserire numero di interno."; $text['description-extension']['nl-nl'] = "Voer toestelnummer in."; @@ -2466,8 +2509,8 @@ $text['description-discard_abandoned_after']['de-ch'] = "Setzen Sie die Zeit in $text['description-discard_abandoned_after']['de-de'] = "Setzen Sie die Zeit in Sekunden, nach der ein Anrufer nicht wieder in die Warteschlange eingereiht wird."; $text['description-discard_abandoned_after']['es-cl'] = "Defina la cantidad de segundos para el abandono de descarte."; $text['description-discard_abandoned_after']['es-mx'] = "Defina la cantidad de segundos para el abandono de descarte."; //copied from es-cl -$text['description-discard_abandoned_after']['fr-ca'] = "Choisir d'écartrer les abandons après un nombre de secondes."; //copied from fr-fr -$text['description-discard_abandoned_after']['fr-fr'] = "Choisir d'écartrer les abandons après un nombre de secondes."; +$text['description-discard_abandoned_after']['fr-ca'] = "Définir le nombre de secondes avant écarter les appels abandonnés."; +$text['description-discard_abandoned_after']['fr-fr'] = "Définir le nombre de secondes avant écarter les appels abandonnés."; $text['description-discard_abandoned_after']['he-il'] = ""; $text['description-discard_abandoned_after']['it-it'] = "Imposta Scarta chi Abbandona Dopo secondi."; $text['description-discard_abandoned_after']['nl-nl'] = "Stel afwijzings tijd (seconden) in waarna de oproeper wer in de wachtrij gezet wordt."; @@ -2611,10 +2654,10 @@ $text['description-caller_announce_sound']['ar-eg'] = ""; $text['description-caller_announce_sound']['de-at'] = "Eine Datei, die regelmäßig dem Anrufer vorgespielt werden soll. Benötigt den kompletten Pfad zur wav Datei."; //copied from de-de $text['description-caller_announce_sound']['de-ch'] = "Eine Datei, die regelmäßig dem Anrufer vorgespielt werden soll. Benötigt den kompletten Pfad zur wav Datei."; //copied from de-de $text['description-caller_announce_sound']['de-de'] = "Eine Datei, die regelmäßig dem Anrufer vorgespielt werden soll. Benötigt den kompletten Pfad zur wav Datei."; -$text['description-caller_announce_sound']['es-cl'] = " Translate from: English Un sonido jugar a un cada persona que llama anunciar segundos de sonido. Necesita la ruta completa al archivo wav."; -$text['description-caller_announce_sound']['es-mx'] = " Translate from: English Un sonido jugar a un cada persona que llama anunciar segundos de sonido. Necesita la ruta completa al archivo wav."; //copied from es-cl -$text['description-caller_announce_sound']['fr-ca'] = " Un son à jouer à un appelant chaque annoncer secondes sonores. Besoins le chemin complet vers le fichier wav."; //copied from fr-fr -$text['description-caller_announce_sound']['fr-fr'] = " Un son à jouer à un appelant chaque annoncer secondes sonores. Besoins le chemin complet vers le fichier wav."; +$text['description-caller_announce_sound']['es-cl'] = "Translate from: English Un sonido jugar a un cada persona que llama anunciar segundos de sonido. Necesita la ruta completa al archivo wav."; +$text['description-caller_announce_sound']['es-mx'] = "Translate from: English Un sonido jugar a un cada persona que llama anunciar segundos de sonido. Necesita la ruta completa al archivo wav."; //copied from es-cl +$text['description-caller_announce_sound']['fr-ca'] = "Un son à jouer à un appelant à chaque fréquence de son d'annonce. Nécessite le chemin complet du fichier wav."; +$text['description-caller_announce_sound']['fr-fr'] = "Un son à jouer à un appelant à chaque fréquence de son d'annonce. Nécessite le chemin complet du fichier wav."; $text['description-caller_announce_sound']['he-il'] = ""; $text['description-caller_announce_sound']['it-it'] = "Un audio da suonare al chiamante ogni intervallo in secondi per l'annuncio. E' necessario il percorso completo al file wav."; $text['description-caller_announce_sound']['nl-nl'] = "Stel geluid in de oproeper hoort om de aankondigings tijd(seconden), volledige pad naar de .wav file."; @@ -2634,8 +2677,8 @@ $text['description-caller_announce_frequency']['de-ch'] = "Wie häufig soll der $text['description-caller_announce_frequency']['de-de'] = "Wie häufig soll der Anmeldeton abgespielt werden. Geben Sie eine Zahl in Sekunden an."; $text['description-caller_announce_frequency']['es-cl'] = "¿Con qué frecuencia deberíamos reproducir el sonido anunciar. Introduzca un número en segundos."; $text['description-caller_announce_frequency']['es-mx'] = "¿Con qué frecuencia deberíamos reproducir el sonido anunciar. Introduzca un número en segundos."; //copied from es-cl -$text['description-caller_announce_frequency']['fr-ca'] = " Combien de fois devrions-nous jouer le son annonce. Entrez un nombre dans secondes."; //copied from fr-fr -$text['description-caller_announce_frequency']['fr-fr'] = " Combien de fois devrions-nous jouer le son annonce. Entrez un nombre dans secondes."; +$text['description-caller_announce_frequency']['fr-ca'] = "Fréquence auquel le son d'annonce joue. Entrer un nombre en secondes."; +$text['description-caller_announce_frequency']['fr-fr'] = "Fréquence auquel le son d'annonce joue. Entrer un nombre en secondes."; $text['description-caller_announce_frequency']['he-il'] = ""; $text['description-caller_announce_frequency']['it-it'] = "Quanto spesso deve essere suonato l'annuncio, in secondi."; $text['description-caller_announce_frequency']['nl-nl'] = "Hoe vaak wordt de annoncering afgespeeld"; @@ -2655,8 +2698,8 @@ $text['description-call_timeout']['de-ch'] = "Geben Sie den Wert für die Zeitü $text['description-call_timeout']['de-de'] = "Geben Sie den Wert für die Zeitüberschreitung an."; $text['description-call_timeout']['es-cl'] = "Introduzca el timeout de la llamada."; $text['description-call_timeout']['es-mx'] = "Introduzca el timeout de la llamada."; //copied from es-cl -$text['description-call_timeout']['fr-ca'] = "Choisir le timeout de l'appel."; //copied from fr-fr -$text['description-call_timeout']['fr-fr'] = "Choisir le timeout de l'appel."; +$text['description-call_timeout']['fr-ca'] = "Définir le délai d'expiration de l'appel."; +$text['description-call_timeout']['fr-fr'] = "Définir le délai d'expiration de l'appel"; $text['description-call_timeout']['he-il'] = ""; $text['description-call_timeout']['it-it'] = "Inserire timeout di chiamata."; $text['description-call_timeout']['nl-nl'] = "Voer oproep overscheidingstijd in."; @@ -2739,8 +2782,8 @@ $text['description-busy_delay_time']['de-ch'] = "Geben Sie eine Wartezeit für d $text['description-busy_delay_time']['de-de'] = "Geben Sie eine Wartezeit für den Agenten an."; $text['description-busy_delay_time']['es-cl'] = "Introduzca el tiempo de espera de agente ocupado."; $text['description-busy_delay_time']['es-mx'] = "Introduzca el tiempo de espera de agente ocupado."; //copied from es-cl -$text['description-busy_delay_time']['fr-ca'] = "Choisir le temps d'attente quand l'agent est occupé."; //copied from fr-fr -$text['description-busy_delay_time']['fr-fr'] = "Choisir le temps d'attente quand l'agent est occupé."; +$text['description-busy_delay_time']['fr-ca'] = "Choisir le délai d'attente lorsque l'agent est occupé."; +$text['description-busy_delay_time']['fr-fr'] = "Choisir le délai d'attente lorsque l'agent est occupé."; $text['description-busy_delay_time']['he-il'] = ""; $text['description-busy_delay_time']['it-it'] = "Inserire il tempo di ritardo su agente occupato."; $text['description-busy_delay_time']['nl-nl'] = "Voer de agent bezet wachttijd in"; @@ -2865,8 +2908,8 @@ $text['description-abandoned_resume_allowed']['de-ch'] = "Schalten Sie die Wider $text['description-abandoned_resume_allowed']['de-de'] = "Schalten Sie die Wideraufnahme von Anrufern in der Warteschlange Ein oder Aus."; $text['description-abandoned_resume_allowed']['es-cl'] = "Defina el permiso para permitir la continuación de abandono a verdadero o falso."; $text['description-abandoned_resume_allowed']['es-mx'] = "Defina el permiso para permitir la continuación de abandono a verdadero o falso."; //copied from es-cl -$text['description-abandoned_resume_allowed']['fr-ca'] = "choisir l'autorisation de reprise d'abandon à oui ou non."; //copied from fr-fr -$text['description-abandoned_resume_allowed']['fr-fr'] = "choisir l'autorisation de reprise d'abandon à oui ou non."; +$text['description-abandoned_resume_allowed']['fr-ca'] = "Définir l'autorisation de reprise d'abandon à oui ou non."; +$text['description-abandoned_resume_allowed']['fr-fr'] = "Définir l'autorisation de reprise d'abandon à oui ou non."; $text['description-abandoned_resume_allowed']['he-il'] = ""; $text['description-abandoned_resume_allowed']['it-it'] = "Imposta a vero o falso il permesso di ripristinare chi ha abbandonato."; $text['description-abandoned_resume_allowed']['nl-nl'] = "Kies de afgebroken vervolgen toestaan aan of uit."; @@ -2886,8 +2929,8 @@ $text['confirm-copy']['de-ch'] = "Wollen Sie das wirklich kopieren?"; //copied f $text['confirm-copy']['de-de'] = "Wollen Sie das wirklich kopieren?"; $text['confirm-copy']['es-cl'] = "¿Realmente desea copiar esto?"; $text['confirm-copy']['es-mx'] = "¿Realmente desea copiar esto?"; //copied from es-cl -$text['confirm-copy']['fr-ca'] = "Voulez-vous vraiment copier cela?"; //copied from fr-fr -$text['confirm-copy']['fr-fr'] = "Voulez-vous vraiment copier cela?"; +$text['confirm-copy']['fr-ca'] = "Voulez-vous vraiment créer une copie?"; +$text['confirm-copy']['fr-fr'] = "Voulez-vous vraiment créer une copie?"; $text['confirm-copy']['he-il'] = ""; $text['confirm-copy']['it-it'] = "Vuoi veramente farne una copia?"; $text['confirm-copy']['nl-nl'] = "Wil je dit werkelijk overnemen?"; @@ -2907,8 +2950,8 @@ $text['button-update_status']['de-ch'] = "Status Aktualisieren"; //copied from d $text['button-update_status']['de-de'] = "Status Aktualisieren"; $text['button-update_status']['es-cl'] = "Actualizar Estado"; $text['button-update_status']['es-mx'] = "Actualizar Estado"; //copied from es-cl -$text['button-update_status']['fr-ca'] = "Mis à jour état"; //copied from fr-fr -$text['button-update_status']['fr-fr'] = "Mis à jour état"; +$text['button-update_status']['fr-ca'] = "Mettre à jour l'état"; +$text['button-update_status']['fr-fr'] = "Mettre à jour l'état"; $text['button-update_status']['he-il'] = ""; $text['button-update_status']['it-it'] = "Stato Aggiornato"; $text['button-update_status']['nl-nl'] = "Bijwerk status"; @@ -2928,8 +2971,8 @@ $text['button-tiers']['de-ch'] = "Ebenen"; //copied from de-de $text['button-tiers']['de-de'] = "Ebenen"; $text['button-tiers']['es-cl'] = "Niveles"; $text['button-tiers']['es-mx'] = "Niveles"; //copied from es-cl -$text['button-tiers']['fr-ca'] = "Tiers"; //copied from fr-fr -$text['button-tiers']['fr-fr'] = "Tiers"; +$text['button-tiers']['fr-ca'] = "Niveaux"; +$text['button-tiers']['fr-fr'] = "Niveaux"; $text['button-tiers']['he-il'] = ""; $text['button-tiers']['it-it'] = "Tiers"; $text['button-tiers']['nl-nl'] = "Vergelijkingen"; diff --git a/app/call_centers/call_center_agent_edit.php b/app/call_centers/call_center_agent_edit.php index 8fff6c511f..f2d404663b 100644 --- a/app/call_centers/call_center_agent_edit.php +++ b/app/call_centers/call_center_agent_edit.php @@ -93,6 +93,7 @@ $agent_wrap_up_time = $_POST["agent_wrap_up_time"]; $agent_reject_delay_time = $_POST["agent_reject_delay_time"]; $agent_busy_delay_time = $_POST["agent_busy_delay_time"]; + $agent_record = $_POST["agent_record"]; //$agent_logout = $_POST["agent_logout"]; } @@ -174,6 +175,7 @@ $array['call_center_agents'][0]['agent_wrap_up_time'] = $agent_wrap_up_time; $array['call_center_agents'][0]['agent_reject_delay_time'] = $agent_reject_delay_time; $array['call_center_agents'][0]['agent_busy_delay_time'] = $agent_busy_delay_time; + $array['call_center_agents'][0]['agent_record'] = $agent_record; if (is_uuid($user_uuid)) { $array['users'][0]['domain_uuid'] = $_SESSION['domain_uuid']; $array['users'][0]['user_uuid'] = $user_uuid; @@ -301,6 +303,7 @@ $agent_wrap_up_time = $row["agent_wrap_up_time"]; $agent_reject_delay_time = $row["agent_reject_delay_time"]; $agent_busy_delay_time = $row["agent_busy_delay_time"]; + $agent_record = $row["agent_record"]; //$agent_logout = $row["agent_logout"]; } unset($sql, $parameters, $row); @@ -579,6 +582,20 @@ echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; + echo " ".$text['label-record_template']."\n"; + echo "\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-record_template']."\n"; + echo "\n"; + echo "\n"; + /* echo "\n"; echo "\n"; diff --git a/app/call_centers/call_center_agents.php b/app/call_centers/call_center_agents.php index 5542f2fe77..69d9d7ad38 100644 --- a/app/call_centers/call_center_agents.php +++ b/app/call_centers/call_center_agents.php @@ -119,6 +119,9 @@ echo "
".$text['header-call_center_agents']." (".$num_rows.")
\n"; echo "
\n"; echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$_SESSION['theme']['button_icon_back'],'id'=>'btn_back','link'=>'call_center_queues.php','style'=>'margin-right: 15px;']); + if (permission_exists('call_center_imports')) { + echo button::create(['type'=>'button','label'=>$text['button-import'],'icon'=>$_SESSION['theme']['button_icon_import'],'link'=>PROJECT_PATH.'/app/call_center_imports/call_center_imports.php?import_type=call_center_agents']); + } if ($num_rows) { echo button::create(['type'=>'button','label'=>$text['button-status'],'icon'=>'user-clock','style'=>'margin-right: 15px;','link'=>'call_center_agent_status.php']); } @@ -242,4 +245,4 @@ //show the footer require_once "resources/footer.php"; -?> \ No newline at end of file +?> diff --git a/app/call_centers/call_center_queue_edit.php b/app/call_centers/call_center_queue_edit.php index 0669ccc193..f73c96ff0c 100644 --- a/app/call_centers/call_center_queue_edit.php +++ b/app/call_centers/call_center_queue_edit.php @@ -86,6 +86,7 @@ $queue_moh_sound = $_POST["queue_moh_sound"]; $queue_record_template = $_POST["queue_record_template"]; $queue_time_base_score = $_POST["queue_time_base_score"]; + $queue_time_base_score_sec = $_POST["queue_time_base_score_sec"]; $queue_max_wait_time = $_POST["queue_max_wait_time"]; $queue_max_wait_time_with_no_agent = $_POST["queue_max_wait_time_with_no_agent"]; $queue_max_wait_time_with_no_agent_time_reached = $_POST["queue_max_wait_time_with_no_agent_time_reached"]; @@ -188,6 +189,7 @@ //if (strlen($queue_moh_sound) == 0) { $msg .= $text['message-required'].$text['label-music_on_hold']."
\n"; } //if (strlen($queue_record_template) == 0) { $msg .= $text['message-required'].$text['label-record_template']."
\n"; } //if (strlen($queue_time_base_score) == 0) { $msg .= $text['message-required'].$text['label-time_base_score']."
\n"; } + //if (strlen($queue_time_base_score_sec) == 0) { $msg .= $text['message-required'].$text['label-time_base_score_sec']."
\n"; } //if (strlen($queue_max_wait_time) == 0) { $msg .= $text['message-required'].$text['label-max_wait_time']."
\n"; } //if (strlen($queue_max_wait_time_with_no_agent) == 0) { $msg .= $text['message-required'].$text['label-max_wait_time_with_no_agent']."
\n"; } //if (strlen($queue_max_wait_time_with_no_agent_time_reached) == 0) { $msg .= $text['message-required'].$text['label-max_wait_time_with_no_agent_time_reached']."
\n"; } @@ -269,6 +271,7 @@ $array['call_center_queues'][0]['queue_moh_sound'] = $queue_moh_sound; $array['call_center_queues'][0]['queue_record_template'] = $queue_record_template; $array['call_center_queues'][0]['queue_time_base_score'] = $queue_time_base_score; + $array['call_center_queues'][0]['queue_time_base_score_sec'] = $queue_time_base_score_sec; $array['call_center_queues'][0]['queue_max_wait_time'] = $queue_max_wait_time; $array['call_center_queues'][0]['queue_max_wait_time_with_no_agent'] = $queue_max_wait_time_with_no_agent; $array['call_center_queues'][0]['queue_max_wait_time_with_no_agent_time_reached'] = $queue_max_wait_time_with_no_agent_time_reached; @@ -324,6 +327,9 @@ $dialplan_xml .= " \n"; $dialplan_xml .= " \n"; $dialplan_xml .= " \n"; + if ($queue_time_base_score_sec != '') { + $dialplan_xml .= " \n"; + } if ($queue_greeting_path != '') { $greeting_array = explode(':', $queue_greeting_path); if (count($greeting_array) == 1) { @@ -481,6 +487,7 @@ $queue_moh_sound = $row["queue_moh_sound"]; $queue_record_template = $row["queue_record_template"]; $queue_time_base_score = $row["queue_time_base_score"]; + $queue_time_base_score_sec = $row["queue_time_base_score_sec"]; $queue_max_wait_time = $row["queue_max_wait_time"]; $queue_max_wait_time_with_no_agent = $row["queue_max_wait_time_with_no_agent"]; $queue_max_wait_time_with_no_agent_time_reached = $row["queue_max_wait_time_with_no_agent_time_reached"]; @@ -551,6 +558,7 @@ if (strlen($queue_strategy) == 0) { $queue_strategy = "longest-idle-agent"; } if (strlen($queue_moh_sound) == 0) { $queue_moh_sound = "\$\${hold_music}"; } if (strlen($queue_time_base_score) == 0) { $queue_time_base_score = "system"; } + if (strlen($queue_time_base_score) == 0) { $queue_time_base_score = ""; } if (strlen($queue_max_wait_time) == 0) { $queue_max_wait_time = "0"; } if (strlen($queue_max_wait_time_with_no_agent) == 0) { $queue_max_wait_time_with_no_agent = "90"; } if (strlen($queue_max_wait_time_with_no_agent_time_reached) == 0) { $queue_max_wait_time_with_no_agent_time_reached = "30"; } @@ -897,6 +905,17 @@ echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; + echo " ".$text['label-time_base_score_sec']."\n"; + echo "\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-time_base_score_sec']."\n"; + echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo " ".$text['label-max_wait_time']."\n"; diff --git a/app/call_centers/call_center_queues.php b/app/call_centers/call_center_queues.php index 86a8ed46c4..f56991567e 100644 --- a/app/call_centers/call_center_queues.php +++ b/app/call_centers/call_center_queues.php @@ -124,6 +124,9 @@ echo "
\n"; echo "
".$text['header-call_center_queues']." (".$num_rows.")
\n"; echo "
\n"; + if (permission_exists('call_center_imports')) { + echo button::create(['type'=>'button','label'=>$text['button-import'],'icon'=>$_SESSION['theme']['button_icon_import'],'link'=>PROJECT_PATH.'/app/call_center_imports/call_center_imports.php?import_type=call_center_queues']); + } if (permission_exists('call_center_agent_view')) { echo button::create(['type'=>'button','label'=>$text['button-agents'],'icon'=>'users','link'=>'call_center_agents.php']); } @@ -182,6 +185,7 @@ //echo th_order_by('queue_moh_sound', $text['label-music_on_hold'], $order_by, $order); //echo th_order_by('queue_record_template', $text['label-record_template'], $order_by, $order); //echo th_order_by('queue_time_base_score', $text['label-time_base_score'], $order_by, $order); + //echo th_order_by('queue_time_base_score_sec', $text['label-time_base_score_sec'], $order_by, $order); //echo th_order_by('queue_max_wait_time', $text['label-max_wait_time'], $order_by, $order); //echo th_order_by('queue_max_wait_time_with_no_agent', $text['label-max_wait_time_with_no_agent'], $order_by, $order); echo th_order_by('queue_tier_rules_apply', $text['label-tier_rules_apply'], $order_by, $order); @@ -222,6 +226,7 @@ //echo " ".escape($row[queue_moh_sound])." \n"; //echo " ".escape($row[queue_record_template])." \n"; //echo " ".escape($row[queue_time_base_score])." \n"; + //echo " ".escape($row[queue_time_base_score_sec])." \n"; //echo " ".escape($row[queue_max_wait_time])." \n"; //echo " ".escape($row[queue_max_wait_time_with_no_agent])." \n"; echo " ".ucwords(escape($row['queue_tier_rules_apply']))."\n"; @@ -253,4 +258,4 @@ //show the footer require_once "resources/footer.php"; -?> \ No newline at end of file +?> diff --git a/app/call_centers/resources/classes/call_center.php b/app/call_centers/resources/classes/call_center.php index bd9887cce9..53b08e0065 100644 --- a/app/call_centers/resources/classes/call_center.php +++ b/app/call_centers/resources/classes/call_center.php @@ -346,6 +346,17 @@ //delete the checked rows if (is_array($array) && @sizeof($array) != 0) { + //setup the event socket connection + $fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']); + + //delete the queue in the switch + if ($fp) { + foreach ($uuids as $uuid) { + $cmd = "api callcenter_config queue unload ".$uuid; + $response = event_socket_request($fp, $cmd); + } + } + //grant temporary permissions $p = new permissions; $p->add('call_center_tier_delete', 'temp'); @@ -422,7 +433,7 @@ //build the delete array if (is_array($uuids) && @sizeof($uuids) != 0) { - foreach ($uuids as $uuid) { + foreach ($uuids as $x => $uuid) { $array[$this->table][$x][$this->uuid_prefix.'uuid'] = $uuid; $array[$this->table][$x]['domain_uuid'] = $_SESSION['domain_uuid']; $array['call_center_tiers'][$x]['call_center_agent_uuid'] = $uuid; diff --git a/app/calls/app_config.php b/app/calls/app_config.php index 157c972801..ec3f393e8e 100644 --- a/app/calls/app_config.php +++ b/app/calls/app_config.php @@ -51,8 +51,6 @@ $y++; $apps[$x]['permissions'][$y]['name'] = "call_forward_all"; $apps[$x]['permissions'][$y]['groups'][] = "superadmin"; - $y++; - $apps[$x]['permissions'][$y]['name'] = "call_forward_caller_id"; //default settings $y=0; diff --git a/app/calls/call_edit.php b/app/calls/call_edit.php index 830447985e..56ec9d6c84 100644 --- a/app/calls/call_edit.php +++ b/app/calls/call_edit.php @@ -101,7 +101,6 @@ $forward_user_not_registered_destination = $row["forward_user_not_registered_destination"]; $forward_user_not_registered_enabled = $row["forward_user_not_registered_enabled"]; $follow_me_uuid = $row["follow_me_uuid"]; - $forward_caller_id_uuid = $row["forward_caller_id_uuid"]; } else { echo "access denied"; @@ -123,11 +122,9 @@ $forward_user_not_registered_enabled = $_POST["forward_user_not_registered_enabled"]; $forward_user_not_registered_destination = $_POST["forward_user_not_registered_destination"]; - $forward_caller_id_uuid = $_POST["forward_caller_id_uuid"]; $cid_name_prefix = $_POST["cid_name_prefix"]; $cid_number_prefix = $_POST["cid_number_prefix"]; $follow_me_enabled = $_POST["follow_me_enabled"]; - $follow_me_caller_id_uuid = $_POST["follow_me_caller_id_uuid"]; $follow_me_ignore_busy = $_POST["follow_me_ignore_busy"]; $n = 0; @@ -194,7 +191,6 @@ $array['extensions'][0]['forward_no_answer_destination'] = $forward_no_answer_destination; $array['extensions'][0]['forward_user_not_registered_enabled'] = $forward_user_not_registered_enabled; $array['extensions'][0]['forward_user_not_registered_destination'] = $forward_user_not_registered_destination; - $array['extensions'][0]['forward_caller_id_uuid'] = $forward_caller_id_uuid; } //do not disturb (dnd) config @@ -226,7 +222,6 @@ $array['follow_me'][0]['follow_me_uuid'] = $follow_me_uuid; $array['follow_me'][0]['cid_name_prefix'] = $cid_name_prefix; $array['follow_me'][0]['cid_number_prefix'] = $cid_number_prefix; - $array['follow_me'][0]['follow_me_caller_id_uuid'] = $follow_me_caller_id_uuid; $array['follow_me'][0]['follow_me_ignore_busy'] = $follow_me_ignore_busy; if ($destination_found) { $array['follow_me'][0]['follow_me_enabled'] = $follow_me_enabled; @@ -297,7 +292,6 @@ $call_forward->extension_uuid = $extension_uuid; $call_forward->forward_all_destination = $forward_all_destination; $call_forward->forward_all_enabled = $forward_all_enabled; - $call_forward->forward_caller_id_uuid = $forward_caller_id_uuid; } //do not disturb (dnd) config @@ -328,7 +322,6 @@ $follow_me->extension_uuid = $extension_uuid; $follow_me->follow_me_uuid = $follow_me_uuid; $follow_me->follow_me_ignore_busy = $follow_me_ignore_busy; - $follow_me->follow_me_caller_id_uuid = $follow_me_caller_id_uuid; $follow_me->follow_me_enabled = $follow_me_enabled; $follow_me->set(); unset($follow_me); @@ -431,7 +424,6 @@ $cid_name_prefix = $row["cid_name_prefix"]; $cid_number_prefix = $row["cid_number_prefix"]; $follow_me_enabled = $row["follow_me_enabled"]; - $follow_me_caller_id_uuid = $row["follow_me_caller_id_uuid"]; $follow_me_ignore_busy = $row["follow_me_ignore_busy"]; unset($row); @@ -582,43 +574,6 @@ echo "\n"; echo "\n"; - if (permission_exists('call_forward_caller_id')) { - $sql = "select destination_uuid, destination_number, destination_description, destination_caller_id_number, destination_caller_id_name "; - $sql .= "from v_destinations "; - $sql .= "where domain_uuid = :domain_uuid "; - $sql .= "and destination_type = 'inbound' "; - $sql .= "order by destination_number asc "; - $parameters['domain_uuid'] = $_SESSION['domain_uuid']; - $database = new database; - $result = $database->select($sql, $parameters, 'all'); - if (is_array($result) && sizeof($result) != 0) { - echo "\n"; - echo ""; - echo $text['label-cid-number']; - echo "\n"; - echo "\n"; - echo "
\n"; - echo $text['description-cid-number']."\n"; - echo "\n"; - echo "\n"; - } - unset($sql, $parameters, $result, $row); - } - echo "
\n"; echo "\n"; @@ -628,9 +583,6 @@ echo "\n"; $on_click = "document.getElementById('forward_all_disabled').checked=true; "; $on_click .= "document.getElementById('dnd_disabled').checked=true; "; - if (permission_exists('follow_me_caller_id')) { - $on_click .= "document.getElementById('follow_me_caller_id_uuid').focus(); "; - } echo " \n"; echo " \n"; unset($on_click); @@ -699,45 +651,6 @@ echo " \n"; } - if (permission_exists('follow_me_caller_id')) { - $sql = "select destination_uuid, destination_number, destination_description, destination_caller_id_number, destination_caller_id_name "; - $sql .= "from v_destinations "; - $sql .= "where domain_uuid = :domain_uuid "; - $sql .= "and destination_type = 'inbound' "; - $sql .= "order by destination_number asc "; - $parameters['domain_uuid'] = $_SESSION['domain_uuid']; - $database = new database; - $result = $database->select($sql, $parameters, 'all'); - if (is_array($result) && sizeof($result) != 0) { - echo "\n"; - echo ""; - echo $text['label-cid-number']; - echo "\n"; - echo "\n"; - echo "
\n"; - echo $text['description-cid-number']."\n"; - echo "\n"; - echo "\n"; - } - unset($sql, $parameters, $result, $row); - } - if (permission_exists('follow_me_cid_name_prefix')) { echo "\n"; echo "\n"; diff --git a/app/calls/resources/classes/call_forward.php b/app/calls/resources/classes/call_forward.php index 31517b5c65..e03f1d9daf 100644 --- a/app/calls/resources/classes/call_forward.php +++ b/app/calls/resources/classes/call_forward.php @@ -42,7 +42,6 @@ include "root.php"; private $dial_string; private $toll_allow; public $accountcode; - public $forward_caller_id_uuid; public $outbound_caller_id_name; public $outbound_caller_id_number; @@ -280,4 +279,4 @@ include "root.php"; }// class -?> \ No newline at end of file +?> diff --git a/app/calls/resources/classes/follow_me.php b/app/calls/resources/classes/follow_me.php index fa6df03d8a..fa602d9654 100644 --- a/app/calls/resources/classes/follow_me.php +++ b/app/calls/resources/classes/follow_me.php @@ -39,7 +39,6 @@ include "root.php"; public $cid_number_prefix; public $accountcode; public $follow_me_enabled; - public $follow_me_caller_id_uuid; public $follow_me_ignore_busy; public $outbound_caller_id_name; public $outbound_caller_id_number; @@ -89,7 +88,7 @@ include "root.php"; if (strlen($this->cid_number_prefix) > 0) { $array['follow_me'][0]['cid_number_prefix'] = $this->cid_number_prefix; } - $array['follow_me'][0]['follow_me_caller_id_uuid'] = is_uuid($this->follow_me_caller_id_uuid) ? $this->follow_me_caller_id_uuid : null; + $array['follow_me'][0]['follow_me_enabled'] = $this->follow_me_enabled; $array['follow_me'][0]['follow_me_ignore_busy'] = $this->follow_me_ignore_busy; //grant temporary permissions @@ -114,7 +113,6 @@ include "root.php"; $array['follow_me'][0]['follow_me_uuid'] = $this->follow_me_uuid; $array['follow_me'][0]['cid_name_prefix'] = $this->cid_name_prefix; $array['follow_me'][0]['cid_number_prefix'] = $this->cid_number_prefix; - $array['follow_me'][0]['follow_me_caller_id_uuid'] = is_uuid($this->follow_me_caller_id_uuid) ? $this->follow_me_caller_id_uuid : null; $array['follow_me'][0]['follow_me_enabled'] = $this->follow_me_enabled; $array['follow_me'][0]['follow_me_ignore_busy'] = $this->follow_me_ignore_busy; //grant temporary permissions @@ -459,4 +457,4 @@ include "root.php"; } //class -?> \ No newline at end of file +?> diff --git a/app/click_to_call/app_languages.php b/app/click_to_call/app_languages.php index 4fd199f41d..25bc633844 100644 --- a/app/click_to_call/app_languages.php +++ b/app/click_to_call/app_languages.php @@ -450,8 +450,8 @@ $text['desc-ringback']['de-ch'] = "Geben Sie an, was Sie hören möchten, währe $text['desc-ringback']['de-de'] = "Geben Sie an, was Sie hören möchten, während die Verbindung aufgebaut wird. Zur Auswahl stehen musik (Wartemusik) oder Rufton"; $text['desc-ringback']['es-cl'] = "Defina qué desea escuchar mientras se llama al destinatario. Las opciones son música (música en espera) o tono de marcado"; $text['desc-ringback']['es-mx'] = "Defina qué desea escuchar mientras se llama al destinatario. Las opciones son música (música en espera) o tono de marcado"; //copied from es-cl -$text['desc-ringback']['fr-ca'] = "Défini ce vous entendrez pendant que la destination sera appelée. Les choix sont musique (musique de garde) sonnerie."; //copied from fr-fr -$text['desc-ringback']['fr-fr'] = "Défini ce vous entendrez pendant que la destination sera appelée. Les choix sont musique (musique de garde) sonnerie."; +$text['desc-ringback']['fr-ca'] = "Défini ce vous entendrez pendant que la destination sera appelée. Les choix sont musique (musique d'attente) sonnerie."; //copied from fr-fr +$text['desc-ringback']['fr-fr'] = "Défini ce vous entendrez pendant que la destination sera appelée. Les choix sont musique (musique d'attente) sonnerie."; $text['desc-ringback']['he-il'] = ""; $text['desc-ringback']['it-it'] = "Definisce cosa sentirai mentre il destinatario è chiamato. Le scelte sono musica (music on hold) o tono (ring tone)."; $text['desc-ringback']['nl-nl'] = "Kies wachtmuziek terwijl de bestemming gebeld wordt. De keuze is wachtmuziek of beltoon."; diff --git a/app/click_to_call/click_to_call.php b/app/click_to_call/click_to_call.php index 4d6cc4d8a3..50a7ff3f5b 100644 --- a/app/click_to_call/click_to_call.php +++ b/app/click_to_call/click_to_call.php @@ -2,7 +2,7 @@ /* $Id$ */ /* click_to_call.php - Copyright (C) 2008, 2018 Mark J Crane + Copyright (C) 2008, 2021 Mark J Crane All rights reserved. Redistribution and use in source and binary forms, with or without @@ -209,7 +209,7 @@ else { //display the last command $switch_cmd = "api originate ".$source.$switch_cmd; - echo "
".$switch_cmd."

".$src." has called ".$dest."
\n"; + echo "
".escape($src)." has called ".escape($dest)."
\n"; //show the command result $result = trim(event_socket_request($fp, $switch_cmd)); if (substr($result, 0,3) == "+OK") { @@ -218,11 +218,13 @@ //use the server's time zone to ensure it matches the time zone used by freeswitch date_default_timezone_set($_SESSION['time_zone']['system']); //create the api record command and send it over event socket - $switch_cmd = "api uuid_record ".$origination_uuid." start ".$record_path."/".$record_name; + if (is_uuid($origination_uuid) && file_exists($record_path)) { + $switch_cmd = "api uuid_record ".$origination_uuid." start ".$record_path."/".$record_name; + } $result2 = trim(event_socket_request($fp, $switch_cmd)); } } - echo "

".$result."

\n"; + echo "

".escape($result)."

\n"; } } @@ -291,7 +293,7 @@ echo "\n"; echo " ".$text['label-src-num']."\n"; echo " \n"; - echo " \n"; + echo " \n"; echo "
\n"; echo " ".$text['desc-src-num']."\n"; echo " \n"; @@ -300,7 +302,7 @@ echo "\n"; echo " ".$text['label-dest-num']."\n"; echo " \n"; - echo " \n"; + echo " \n"; echo "
\n"; echo " ".$text['desc-dest-num']."\n"; echo " \n"; diff --git a/app/destinations/app_config.php b/app/destinations/app_config.php index 666cef6107..334e241324 100644 --- a/app/destinations/app_config.php +++ b/app/destinations/app_config.php @@ -319,6 +319,10 @@ $apps[$x]['db'][$y]['fields'][$z]['type'] = "text"; $apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "Enter the alternate data."; $z++; + $apps[$x]['db'][$y]['fields'][$z]['name'] = "destination_order"; + $apps[$x]['db'][$y]['fields'][$z]['type'] = "numeric"; + $apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "Set the destination order."; + $z++; $apps[$x]['db'][$y]['fields'][$z]['name'] = "destination_enabled"; $apps[$x]['db'][$y]['fields'][$z]['type'] = "text"; $apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = ""; diff --git a/app/destinations/app_languages.php b/app/destinations/app_languages.php index 804e5dc5d3..0e18def489 100644 --- a/app/destinations/app_languages.php +++ b/app/destinations/app_languages.php @@ -723,8 +723,8 @@ $text['label-destination_hold_music']['de-ch'] = "Wartemusik"; //copied from de- $text['label-destination_hold_music']['de-de'] = "Wartemusik"; $text['label-destination_hold_music']['es-cl'] = "Música en Espera"; $text['label-destination_hold_music']['es-mx'] = "Música en Espera"; //copied from es-cl -$text['label-destination_hold_music']['fr-ca'] = "Musique de Garde"; //copied from fr-fr -$text['label-destination_hold_music']['fr-fr'] = "Musique de Garde"; +$text['label-destination_hold_music']['fr-ca'] = "Musique d'attente"; //copied from fr-fr +$text['label-destination_hold_music']['fr-fr'] = "Musique d'attente"; $text['label-destination_hold_music']['he-il'] = "מוסיקה בהמתנה"; $text['label-destination_hold_music']['it-it'] = "Musica di Attesa"; $text['label-destination_hold_music']['nl-nl'] = "Wachtmuziek"; diff --git a/app/destinations/destination_edit.php b/app/destinations/destination_edit.php index 5008789fba..7231204d62 100644 --- a/app/destinations/destination_edit.php +++ b/app/destinations/destination_edit.php @@ -17,7 +17,7 @@ The Initial Developer of the Original Code is Mark J Crane - Portions created by the Initial Developer are Copyright (C) 2008-2020 + Portions created by the Initial Developer are Copyright (C) 2008-2021 the Initial Developer. All Rights Reserved. Contributor(s): @@ -95,6 +95,7 @@ $destination_cid_name_prefix = trim($_POST["destination_cid_name_prefix"]); $destination_context = trim($_POST["destination_context"]); $fax_uuid = trim($_POST["fax_uuid"]); + $destination_order= trim($_POST["destination_order"]); $destination_enabled = trim($_POST["destination_enabled"]); $destination_description = trim($_POST["destination_description"]); $destination_sell = check_float($_POST["destination_sell"]); @@ -196,12 +197,12 @@ //array cleanup if (is_array($dialplan_details)) { - foreach ($dialplan_details as $index => $row) { - //unset the empty row - if (strlen($row["dialplan_detail_data"]) == 0) { - unset($dialplan_details[$index]); - } + foreach ($dialplan_details as $index => $row) { + //unset the empty row + if (strlen($row["dialplan_detail_data"]) == 0) { + unset($dialplan_details[$index]); } + } } //get the fax information @@ -296,7 +297,7 @@ $dialplan["dialplan_number"] = $destination_area_code.$destination_number; $dialplan["dialplan_context"] = $destination_context; $dialplan["dialplan_continue"] = "false"; - $dialplan["dialplan_order"] = "100"; + $dialplan["dialplan_order"] = $destination_order; $dialplan["dialplan_enabled"] = $destination_enabled; $dialplan["dialplan_description"] = ($dialplan_description != '') ? $dialplan_description : $destination_description; $dialplan_detail_order = 10; @@ -683,8 +684,10 @@ $array['destinations'][0]["destination_alternate_app"] = $destination_alternate_app; $array['destinations'][0]["destination_alternate_data"] = $destination_alternate_data; } + $array['destinations'][0]["destination_order"] = $destination_order; $array['destinations'][0]["destination_enabled"] = $destination_enabled; $array['destinations'][0]["destination_description"] = $destination_description; + //prepare the array $array['dialplans'][] = $dialplan; unset($dialplan); @@ -803,13 +806,14 @@ $destination_alternate_app = $row["destination_alternate_app"]; $destination_alternate_data = $row["destination_alternate_data"]; $fax_uuid = $row["fax_uuid"]; - $destination_enabled = $row["destination_enabled"]; - $destination_description = $row["destination_description"]; $currency = $row["currency"]; $destination_sell = $row["destination_sell"]; $destination_buy = $row["destination_buy"]; $currency_buy = $row["currency_buy"]; $destination_carrier = $row["destination_carrier"]; + $destination_order = $row["destination_order"]; + $destination_enabled = $row["destination_enabled"]; + $destination_description = $row["destination_description"]; } unset($sql, $parameters, $row); } @@ -865,6 +869,7 @@ } //set the defaults + if (strlen($destination_order) == 0) { $destination_order = '100'; } if (strlen($destination_type) == 0) { $destination_type = 'inbound'; } if (strlen($destination_context) == 0) { $destination_context = 'public'; } if ($destination_type =="outbound") { $destination_context = $_SESSION['domain_name']; } @@ -1285,6 +1290,31 @@ echo "\n"; } + echo " \n"; + echo " \n"; + echo " ".$text['label-order']."\n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo "
\n"; + echo " \n"; + echo " \n"; + echo "\n"; echo "\n"; echo " ".$text['label-destination_enabled']."\n"; diff --git a/app/destinations/destinations.php b/app/destinations/destinations.php index fb67cd79d9..7784278e7a 100644 --- a/app/destinations/destinations.php +++ b/app/destinations/destinations.php @@ -110,22 +110,6 @@ //add the search term $search = strtolower($_GET["search"]); - if (strlen($search) > 0) { - $sql_search = "and ("; - $sql_search .= "lower(destination_type) like :search "; - $sql_search .= "or lower(destination_number) like :search "; - $sql_search .= "or lower(destination_context) like :search "; - $sql_search .= "or lower(destination_accountcode) like :search "; - if (permission_exists('outbound_caller_id_select')) { - $sql_search .= "or lower(destination_caller_id_name) like :search "; - $sql_search .= "or destination_caller_id_number like :search "; - } - $sql_search .= "or lower(destination_enabled) like :search "; - $sql_search .= "or lower(destination_description) like :search "; - $sql_search .= "or lower(destination_data) like :search "; - $sql_search .= ") "; - $parameters['search'] = '%'.$search.'%'; - } //prepare to page the results $sql = "select count(*) from v_destinations "; @@ -134,7 +118,22 @@ $sql .= "and (domain_uuid = :domain_uuid or domain_uuid is null) "; $parameters['domain_uuid'] = $domain_uuid; } - $sql .= $sql_search; + if (strlen($search) > 0) { + $sql .= "and ("; + $sql .= "lower(destination_type) like :search "; + $sql .= "or lower(destination_number) like :search "; + $sql .= "or lower(destination_context) like :search "; + $sql .= "or lower(destination_accountcode) like :search "; + if (permission_exists('outbound_caller_id_select')) { + $sql .= "or lower(destination_caller_id_name) like :search "; + $sql .= "or destination_caller_id_number like :search "; + } + $sql .= "or lower(destination_enabled) like :search "; + $sql .= "or lower(destination_description) like :search "; + $sql .= "or lower(destination_data) like :search "; + $sql .= ") "; + $parameters['search'] = '%'.$search.'%'; + } $parameters['destination_type'] = $destination_type; $database = new database; $num_rows = $database->select($sql, $parameters, 'column'); @@ -152,8 +151,29 @@ $offset = $rows_per_page * $page; //get the list - $sql = str_replace('count(*)', '*', $sql); - $sql .= order_by($order_by, $order, 'destination_number', 'asc'); + $sql = "select * from v_destinations "; + $sql .= "where destination_type = :destination_type "; + if ($_GET['show'] != "all" || !permission_exists('destination_all')) { + $sql .= "and (domain_uuid = :domain_uuid or domain_uuid is null) "; + $parameters['domain_uuid'] = $domain_uuid; + } + if (strlen($search) > 0) { + $sql .= "and ("; + $sql .= "lower(destination_type) like :search "; + $sql .= "or lower(destination_number) like :search "; + $sql .= "or lower(destination_context) like :search "; + $sql .= "or lower(destination_accountcode) like :search "; + if (permission_exists('outbound_caller_id_select')) { + $sql .= "or lower(destination_caller_id_name) like :search "; + $sql .= "or destination_caller_id_number like :search "; + } + $sql .= "or lower(destination_enabled) like :search "; + $sql .= "or lower(destination_description) like :search "; + $sql .= "or lower(destination_data) like :search "; + $sql .= ") "; + $parameters['search'] = '%'.$search.'%'; + } + $sql .= order_by($order_by, $order, 'destination_number, destination_order ', 'asc'); $sql .= limit_offset($rows_per_page, $offset); $database = new database; $destinations = $database->select($sql, $parameters, 'all'); diff --git a/app/devices/app_languages.php b/app/devices/app_languages.php index 9437eec4fe..1358639e2f 100644 --- a/app/devices/app_languages.php +++ b/app/devices/app_languages.php @@ -1650,8 +1650,8 @@ $text['label-keys']['de-ch'] = "Tasten"; //copied from de-de $text['label-keys']['de-de'] = "Tasten"; $text['label-keys']['es-cl'] = "Claves"; $text['label-keys']['es-mx'] = "Claves"; //copied from es-cl -$text['label-keys']['fr-ca'] = "Clés"; //copied from fr-fr -$text['label-keys']['fr-fr'] = "Clés"; +$text['label-keys']['fr-ca'] = "Touches"; //copied from fr-fr +$text['label-keys']['fr-fr'] = "Touches"; $text['label-keys']['he-il'] = ""; $text['label-keys']['it-it'] = "Tasti"; $text['label-keys']['nl-nl'] = "Toetsen"; diff --git a/app/devices/device_imports.php b/app/devices/device_imports.php index 460c07bf9c..a62ae53862 100644 --- a/app/devices/device_imports.php +++ b/app/devices/device_imports.php @@ -291,6 +291,12 @@ $result[$key] = preg_replace('{\D}', '', $result[$key]); } + //normalize the MAC address + if ($field_name == "device_mac_address") { + $result[$key] = strtolower($result[$key]); + $result[$key] = preg_replace('#[^a-fA-F0-9./]#', '', $result[$key]); + } + //build the data array if (strlen($table_name) > 0) { if (strlen($parent) == 0) { diff --git a/app/dialplans/dialplan_xml.php b/app/dialplans/dialplan_xml.php index 233561211e..2fea100426 100644 --- a/app/dialplans/dialplan_xml.php +++ b/app/dialplans/dialplan_xml.php @@ -92,8 +92,11 @@ $database->save($array); unset($array); - //clear the cache + //clear the cache $cache = new cache; + if ($dialplan_context == "\${domain_name}" or $dialplan_context == "global") { + $dialplan_context = "*"; + } $cache->delete("dialplan:".$dialplan_context); //save the message to a session variable @@ -320,4 +323,4 @@ //show the footer require_once "resources/footer.php"; -?> \ No newline at end of file +?> diff --git a/app/dialplans/resources/switch/conf/dialplan/055_rtp_has_crypto.xml b/app/dialplans/resources/switch/conf/dialplan/055_rtp_has_crypto.xml index e2576b75f1..b1ec3070f8 100644 --- a/app/dialplans/resources/switch/conf/dialplan/055_rtp_has_crypto.xml +++ b/app/dialplans/resources/switch/conf/dialplan/055_rtp_has_crypto.xml @@ -1,8 +1,8 @@ - - + + diff --git a/app/dialplans/resources/switch/conf/dialplan/080_default_caller_id.xml b/app/dialplans/resources/switch/conf/dialplan/080_default_caller_id.xml index c110bbad89..3a892a44ed 100644 --- a/app/dialplans/resources/switch/conf/dialplan/080_default_caller_id.xml +++ b/app/dialplans/resources/switch/conf/dialplan/080_default_caller_id.xml @@ -1,11 +1,15 @@ - + + + - + + + diff --git a/app/dialplans/resources/switch/conf/dialplan/500_follow-me-destinations.xml b/app/dialplans/resources/switch/conf/dialplan/500_follow-me-destinations.xml index 26a9ddfa08..4bb6730aa2 100644 --- a/app/dialplans/resources/switch/conf/dialplan/500_follow-me-destinations.xml +++ b/app/dialplans/resources/switch/conf/dialplan/500_follow-me-destinations.xml @@ -2,6 +2,8 @@ + + diff --git a/app/dialplans/resources/switch/conf/dialplan/505_call-forward-all.xml b/app/dialplans/resources/switch/conf/dialplan/505_call-forward-all.xml index f56798f119..d509a919a2 100644 --- a/app/dialplans/resources/switch/conf/dialplan/505_call-forward-all.xml +++ b/app/dialplans/resources/switch/conf/dialplan/505_call-forward-all.xml @@ -2,7 +2,7 @@ - + diff --git a/app/extension_settings/app_config.php b/app/extension_settings/app_config.php new file mode 100755 index 0000000000..f73635a368 --- /dev/null +++ b/app/extension_settings/app_config.php @@ -0,0 +1,87 @@ + \ No newline at end of file diff --git a/app/extension_settings/app_defaults.php b/app/extension_settings/app_defaults.php new file mode 100755 index 0000000000..adadacce42 --- /dev/null +++ b/app/extension_settings/app_defaults.php @@ -0,0 +1,7 @@ + diff --git a/app/extension_settings/app_languages.php b/app/extension_settings/app_languages.php new file mode 100755 index 0000000000..24625e19ea --- /dev/null +++ b/app/extension_settings/app_languages.php @@ -0,0 +1,302 @@ + \ No newline at end of file diff --git a/app/extension_settings/extension_setting_edit.php b/app/extension_settings/extension_setting_edit.php new file mode 100755 index 0000000000..7e026aa786 --- /dev/null +++ b/app/extension_settings/extension_setting_edit.php @@ -0,0 +1,365 @@ + + Portions created by the Initial Developer are Copyright (C) 2021 + the Initial Developer. All Rights Reserved. +*/ + +//includes + require_once "root.php"; + require_once "resources/require.php"; + require_once "resources/check_auth.php"; + +//check permissions + if (permission_exists('extension_setting_add') || permission_exists('extension_setting_edit')) { + //access granted + } + else { + echo "access denied"; + exit; + } + +//add multi-lingual support + $language = new text; + $text = $language->get(); + +//action add or update + if (is_uuid($_REQUEST["id"])) { + $action = "update"; + $extension_setting_uuid = $_REQUEST["id"]; + $id = $_REQUEST["id"]; + } + else { + $action = "add"; + } + +//get the extension id + if (is_uuid($_REQUEST["extension_setting_uuid"])) { + $extension_setting_uuid = $_REQUEST["extension_setting_uuid"]; + } + if (is_uuid($_REQUEST["extension_uuid"])) { + $extension_uuid = $_REQUEST["extension_uuid"]; + } + +//get http post variables and set them to php variables + if (is_array($_POST)) { + $domain_uuid = $_POST["domain_uuid"]; + $extension_setting_type = $_POST["extension_setting_type"]; + $extension_setting_name = $_POST["extension_setting_name"]; + $extension_setting_value = $_POST["extension_setting_value"]; + $extension_setting_enabled = $_POST["extension_setting_enabled"]; + $extension_setting_description = $_POST["extension_setting_description"]; + } + +//process the user data and save it to the database + if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { + + //validate the token + $token = new token; + if (!$token->validate($_SERVER['PHP_SELF'])) { + message::add($text['message-invalid_token'],'negative'); + header('Location: extension_settings.php?id='.$extension_uuid); + exit; + } + + //process the http post data by submitted action + if ($_POST['action'] != '' && strlen($_POST['action']) > 0) { + + //prepare the array(s) + //send the array to the database class + switch ($_POST['action']) { + case 'copy': + if (permission_exists('extension_setting_add')) { + $obj = new database; + $obj->copy($array); + } + break; + case 'delete': + if (permission_exists('extension_setting_delete')) { + $obj = new database; + $obj->delete($array); + } + break; + case 'toggle': + if (permission_exists('extension_setting_update')) { + $obj = new database; + $obj->toggle($array); + } + break; + } + + //redirect the user + if (in_array($_POST['action'], array('copy', 'delete', 'toggle')) && is_uuid($id) && is_uuid($extension_uuid)) { + header('Location: extension_setting_edit.php?id='.$id.'&extension_uuid='.$extension_uuid); + exit; + } + } + + //check for all required data + $msg = ''; + //if (strlen($domain_uuid) == 0) { $msg .= $text['message-required']." ".$text['label-domain_uuid']."
\n"; } + if (strlen($extension_setting_type) == 0) { $msg .= $text['message-required']." ".$text['label-extension_setting_type']."
\n"; } + if (strlen($extension_setting_name) == 0) { $msg .= $text['message-required']." ".$text['label-extension_setting_name']."
\n"; } + //if (strlen($extension_setting_value) == 0) { $msg .= $text['message-required']." ".$text['label-extension_setting_value']."
\n"; } + if (strlen($extension_setting_enabled) == 0) { $msg .= $text['message-required']." ".$text['label-extension_setting_enabled']."
\n"; } + //if (strlen($extension_setting_description) == 0) { $msg .= $text['message-required']." ".$text['label-extension_setting_description']."
\n"; } + if (strlen($msg) > 0 && strlen($_POST["persistformvar"]) == 0) { + require_once "resources/header.php"; + require_once "resources/persist_form_var.php"; + echo "
\n"; + echo "
\n"; + echo $msg."
"; + echo "
\n"; + persistformvar($_POST); + echo "
\n"; + require_once "resources/footer.php"; + return; + } + + //add the extension_setting_uuid + if (!is_uuid($extension_setting_uuid)) { + $extension_setting_uuid = uuid(); + } + + //prepare the array + $array['extension_settings'][0]['extension_setting_uuid'] = $extension_setting_uuid; + $array['extension_settings'][0]['extension_uuid'] = $extension_uuid; + $array['extension_settings'][0]['domain_uuid'] = $_SESSION['domain_uuid']; + //$array['extension_settings'][0]['domain_uuid'] = $domain_uuid; + $array['extension_settings'][0]['extension_setting_type'] = $extension_setting_type; + $array['extension_settings'][0]['extension_setting_name'] = $extension_setting_name; + $array['extension_settings'][0]['extension_setting_value'] = $extension_setting_value; + $array['extension_settings'][0]['extension_setting_enabled'] = $extension_setting_enabled; + $array['extension_settings'][0]['extension_setting_description'] = $extension_setting_description; + + //save the data + $database = new database; + $database->app_name = 'extension settings'; + $database->app_uuid = '1416a250-f6e1-4edc-91a6-5c9b883638fd'; + $database->save($array); + + //redirect the user + if (isset($action)) { + if ($action == "add") { + $_SESSION["message"] = $text['message-add']; + } + if ($action == "update") { + $_SESSION["message"] = $text['message-update']; + } + //header('Location: extension_settings.php'); + header('Location: extension_setting_edit.php?id='.urlencode($extension_setting_uuid).'&extension_uuid='.$extension_uuid); + return; + } + } + +//pre-populate the form + if (is_array($_GET) && $_POST["persistformvar"] != "true") { + $sql = "select "; + //$sql .= "extension_uuid, "; + //$sql .= "domain_uuid, "; + $sql .= "extension_setting_uuid, "; + $sql .= "extension_setting_type, "; + $sql .= "extension_setting_name, "; + $sql .= "extension_setting_value, "; + $sql .= "cast(extension_setting_enabled as text), "; + $sql .= "extension_setting_description "; + $sql .= "from v_extension_settings "; + $sql .= "where extension_setting_uuid = :extension_setting_uuid "; + //$sql .= "and domain_uuid = :domain_uuid "; + //$parameters['domain_uuid'] = $_SESSION['domain_uuid']; + $parameters['extension_setting_uuid'] = $extension_setting_uuid; + $database = new database; + $row = $database->select($sql, $parameters, 'row'); + if (is_array($row) && @sizeof($row) != 0) { + if (is_uuid($row["extension_uuid"])) { + $extension_uuid = $row["extension_uuid"]; + } + //$domain_uuid = $row["domain_uuid"]; + $extension_setting_type = $row["extension_setting_type"]; + $extension_setting_name = $row["extension_setting_name"]; + $extension_setting_value = $row["extension_setting_value"]; + $extension_setting_enabled = $row["extension_setting_enabled"]; + $extension_setting_description = $row["extension_setting_description"]; + } + unset($sql, $parameters, $row); + } + +//create token + $object = new token; + $token = $object->create($_SERVER['PHP_SELF']); + +//show the header + $document['title'] = $text['title-extension_setting']; + require_once "resources/header.php"; + +//show the content + echo "
\n"; + echo "\n"; + + echo "
\n"; + echo "
".$text['title-extension_setting']."
\n"; + echo "
\n"; + echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$_SESSION['theme']['button_icon_back'],'id'=>'btn_back','collapse'=>'hide-xs','style'=>'margin-right: 15px;','link'=>'extension_settings.php?id='.$extension_uuid]); + if ($action == 'update') { + if (permission_exists('_add')) { + echo button::create(['type'=>'button','label'=>$text['button-copy'],'icon'=>$_SESSION['theme']['button_icon_copy'],'id'=>'btn_copy','name'=>'btn_copy','style'=>'display: none;','onclick'=>"modal_open('modal-copy','btn_copy');"]); + } + if (permission_exists('_delete')) { + echo button::create(['type'=>'button','label'=>$text['button-delete'],'icon'=>$_SESSION['theme']['button_icon_delete'],'id'=>'btn_delete','name'=>'btn_delete','style'=>'display: none; margin-right: 15px;','onclick'=>"modal_open('modal-delete','btn_delete');"]); + } + } + echo button::create(['type'=>'submit','label'=>$text['button-save'],'icon'=>$_SESSION['theme']['button_icon_save'],'id'=>'btn_save','collapse'=>'hide-xs']); + echo "
\n"; + echo "
\n"; + echo "
\n"; + + echo $text['title_description-extension_settings']."\n"; + echo "

\n"; + + if ($action == 'update') { + if (permission_exists('extension_setting_add')) { + echo modal::create(['id'=>'modal-copy','type'=>'copy','actions'=>button::create(['type'=>'submit','label'=>$text['button-continue'],'icon'=>'check','id'=>'btn_copy','style'=>'float: right; margin-left: 15px;','collapse'=>'never','name'=>'action','value'=>'copy','onclick'=>"modal_close();"])]); + } + if (permission_exists('extension_setting_delete')) { + echo modal::create(['id'=>'modal-delete','type'=>'delete','actions'=>button::create(['type'=>'submit','label'=>$text['button-continue'],'icon'=>'check','id'=>'btn_delete','style'=>'float: right; margin-left: 15px;','collapse'=>'never','name'=>'action','value'=>'delete','onclick'=>"modal_close();"])]); + } + } + + echo "\n"; + + //echo "\n"; + //echo "\n"; + //echo "\n"; + //echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + //echo " ".$text['label-domain_uuid']."\n"; + //echo "\n"; + //echo " \n"; + //echo "
\n"; + //echo $text['description-domain_uuid']."\n"; + //echo "
\n"; + echo " ".$text['label-extension_setting_type']."\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-extension_setting_type']."\n"; + echo "
\n"; + echo " ".$text['label-extension_setting_name']."\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-extension_setting_name']."\n"; + echo "
\n"; + echo " ".$text['label-extension_setting_value']."\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-extension_setting_value']."\n"; + echo "
\n"; + echo " ".$text['label-extension_setting_enabled']."\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-extension_setting_enabled']."\n"; + echo "
\n"; + echo " ".$text['label-extension_setting_description']."\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-extension_setting_description']."\n"; + echo "
\n"; + echo "

\n"; + + echo "\n"; + echo "\n"; + + echo "
"; + +//include the footer + require_once "resources/footer.php"; + +?> diff --git a/app/extension_settings/extension_settings.php b/app/extension_settings/extension_settings.php new file mode 100755 index 0000000000..a2cd197a80 --- /dev/null +++ b/app/extension_settings/extension_settings.php @@ -0,0 +1,327 @@ + + Portions created by the Initial Developer are Copyright (C) 2021 + the Initial Developer. All Rights Reserved. +*/ + +//includes + require_once "root.php"; + require_once "resources/require.php"; + require_once "resources/check_auth.php"; + +//check permissions + if (permission_exists('extension_setting_view')) { + //access granted + } + else { + echo "access denied"; + exit; + } + +//add multi-lingual support + $language = new text; + $text = $language->get(); + +//get the http post data + if (is_array($_POST['extension_settings'])) { + $action = $_POST['action']; + $search = $_POST['search']; + $extension_settings = $_POST['extension_settings']; + } + +//action add or update + if (is_uuid($_REQUEST["id"])) { + $extension_uuid = $_REQUEST["id"]; + } + +//process the http post data by action + if ($action != '' && is_array($extension_settings) && @sizeof($extension_settings) != 0) { + + //validate the token + $token = new token; + if (!$token->validate($_SERVER['PHP_SELF'])) { + message::add($text['message-invalid_token'],'negative'); + header('Location: extension_settings.php'); + exit; + } + + //prepare the array + foreach($extension_settings as $row) { + $array['extension_settings'][$x]['checked'] = $row['checked']; + $array['extension_settings'][$x]['extension_setting_uuid'] = $row['extension_setting_uuid']; + $array['extension_settings'][$x]['extension_setting_enabled'] = $row['extension_setting_enabled']; + $x++; + } + + //prepare the database object + $database = new database; + $database->app_name = 'extension_settings'; + $database->app_uuid = '1416a250-f6e1-4edc-91a6-5c9b883638fd'; + + //send the array to the database class + switch ($action) { + case 'copy': + if (permission_exists('extension_setting_add')) { + $database->copy($array); + } + break; + case 'toggle': + if (permission_exists('extension_setting_edit')) { + $database->toggle($array); + } + break; + case 'delete': + if (permission_exists('extension_setting_delete')) { + $database->delete($array); + } + break; + } + + //redirect the user + header('Location: extension_settings.php?id='.urlencode($extension_uuid).'&'.($search != '' ? '?search='.urlencode($search) : null)); + exit; + } + +//get order and order by + $order_by = $_GET["order_by"]; + $order = $_GET["order"]; + +//add the search + if (isset($_GET["search"])) { + $search = strtolower($_GET["search"]); + } + +//get the count + $sql = "select count(extension_setting_uuid) "; + $sql .= "from v_extension_settings "; + $sql .= "where extension_uuid = :extension_uuid "; + if (isset($search)) { + $sql .= "and ("; + $sql .= " lower(extension_setting_type) like :search "; + $sql .= " or lower(extension_setting_name) like :search "; + $sql .= " or lower(extension_setting_description) like :search "; + $sql .= ") "; + $parameters['search'] = '%'.$search.'%'; + } + else { + $sql .= "and (domain_uuid = :domain_uuid or domain_uuid is null) "; + if (isset($sql_search)) { + $sql .= "and ".$sql_search; + } + $parameters['domain_uuid'] = $domain_uuid; + } + $parameters['extension_uuid'] = $extension_uuid; + $database = new database; + $num_rows = $database->select($sql, $parameters, 'column'); + unset($sql, $parameters); + +//get the list + $sql = "select "; + //$sql .= "d.domain_name, "; + $sql .= "extension_setting_uuid, "; + $sql .= "extension_setting_type, "; + $sql .= "extension_setting_name, "; + $sql .= "extension_setting_value, "; + $sql .= "cast(extension_setting_enabled as text), "; + $sql .= "extension_setting_description "; + $sql .= "from v_extension_settings as e "; + //$sql .= ",v_domains as d "; + $sql .= "where extension_uuid = :extension_uuid "; + $sql .= "and (e.domain_uuid = :domain_uuid or e.domain_uuid is null) "; + //$sql .= "and d.domain_uuid = e.domain_uuid "; + if (isset($_GET["search"])) { + $sql .= "and ("; + $sql .= " lower(extension_setting_type) like :search "; + $sql .= " or lower(extension_setting_name) like :search "; + $sql .= " or lower(extension_setting_description) like :search "; + $sql .= ") "; + $parameters['search'] = '%'.$search.'%'; + } + + $sql .= order_by($order_by, $order, 'extension_setting_type', 'asc'); + $sql .= limit_offset($rows_per_page, $offset); + $parameters['extension_uuid'] = $extension_uuid; + $parameters['domain_uuid'] = $domain_uuid; + $database = new database; + $extension_settings = $database->select($sql, $parameters, 'all'); + unset($sql, $parameters); + +//create token + $object = new token; + $token = $object->create($_SERVER['PHP_SELF']); + +//additional includes + $document['title'] = $text['title-extension_settings']; + require_once "resources/header.php"; + +//show the content + echo "
\n"; + echo "
".$text['title-extension_settings']." (".$num_rows.")
\n"; + echo "
\n"; + + echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$_SESSION['theme']['button_icon_back'],'id'=>'btn_add','name'=>'btn_add','link'=>'/app/extensions/extension_edit.php?id='.$extension_uuid]); + + if (permission_exists('extension_setting_add')) { + echo button::create(['type'=>'button','label'=>$text['button-add'],'icon'=>$_SESSION['theme']['button_icon_add'],'id'=>'btn_add','name'=>'btn_add','link'=>'extension_setting_edit.php?extension_uuid='.$extension_uuid]); + } + if (permission_exists('extension_setting_add') && $extension_settings) { + echo button::create(['type'=>'button','label'=>$text['button-copy'],'icon'=>$_SESSION['theme']['button_icon_copy'],'id'=>'btn_copy','name'=>'btn_copy','style'=>'display:none;','onclick'=>"modal_open('modal-copy','btn_copy');"]); + } + if (permission_exists('extension_setting_edit') && $extension_settings) { + echo button::create(['type'=>'button','label'=>$text['button-toggle'],'icon'=>$_SESSION['theme']['button_icon_toggle'],'id'=>'btn_toggle','name'=>'btn_toggle','style'=>'display:none;','onclick'=>"modal_open('modal-toggle','btn_toggle');"]); + } + if (permission_exists('extension_setting_delete') && $extension_settings) { + echo button::create(['type'=>'button','label'=>$text['button-delete'],'icon'=>$_SESSION['theme']['button_icon_delete'],'id'=>'btn_delete','name'=>'btn_delete','style'=>'display:none;','onclick'=>"modal_open('modal-delete','btn_delete');"]); + } + echo "\n"; + echo "
\n"; + echo "
\n"; + echo "
\n"; + + if (permission_exists('extension_setting_add') && $extension_settings) { + echo modal::create(['id'=>'modal-copy','type'=>'copy','actions'=>button::create(['type'=>'button','label'=>$text['button-continue'],'icon'=>'check','id'=>'btn_copy','style'=>'float: right; margin-left: 15px;','collapse'=>'never','onclick'=>"modal_close(); list_action_set('copy'); list_form_submit('form_list');"])]); + } + if (permission_exists('extension_setting_edit') && $extension_settings) { + echo modal::create(['id'=>'modal-toggle','type'=>'toggle','actions'=>button::create(['type'=>'button','label'=>$text['button-continue'],'icon'=>'check','id'=>'btn_toggle','style'=>'float: right; margin-left: 15px;','collapse'=>'never','onclick'=>"modal_close(); list_action_set('toggle'); list_form_submit('form_list');"])]); + } + if (permission_exists('extension_setting_delete') && $extension_settings) { + echo modal::create(['id'=>'modal-delete','type'=>'delete','actions'=>button::create(['type'=>'button','label'=>$text['button-continue'],'icon'=>'check','id'=>'btn_delete','style'=>'float: right; margin-left: 15px;','collapse'=>'never','onclick'=>"modal_close(); list_action_set('delete'); list_form_submit('form_list');"])]); + } + + echo $text['title_description-extension_settings']."\n"; + echo "

\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + if (is_array($extension_settings) && @sizeof($extension_settings) != 0) { + $x = 0; + foreach ($extension_settings as $row) { + $extension_setting_type = $row['extension_setting_type']; + $extension_setting_type = strtolower($extension_setting_type); + + $label_extension_setting_type = $row['extension_setting_type']; + $label_extension_setting_type = str_replace("_", " ", $label_extension_setting_type); + $label_extension_setting_type = str_replace("-", " ", $label_extension_setting_type); + $label_extension_setting_type = ucwords($label_extension_setting_type); + + if ($previous_extension_setting_type !== $row['extension_setting_type']) { + echo " "; + echo " \n"; + echo " "; + echo " "; + echo " \n"; + echo " "; + echo "\n"; + if (permission_exists('extension_setting_add') || permission_exists('extension_setting_edit') || permission_exists('extension_setting_delete')) { + echo " \n"; + } + //if ($_GET['show'] == 'all' && permission_exists('extension_setting_all')) { + // echo th_order_by('domain_name', $text['label-domain'], $order_by, $order); + //} + + //echo th_order_by('extension_setting_type', $text['label-extension_setting_type'], $order_by, $order); + //echo th_order_by('extension_setting_name', $text['label-extension_setting_name'], $order_by, $order); + //echo th_order_by('extension_setting_value', $text['label-extension_setting_value'], $order_by, $order); + //echo th_order_by('extension_setting_enabled', $text['label-extension_setting_enabled'], $order_by, $order, null, "class='center'"); + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + + echo " \n"; + if (permission_exists('extension_setting_edit') && $_SESSION['theme']['list_row_edit_button']['boolean'] == 'true') { + echo " \n"; + } + echo "\n"; + + } + if (permission_exists('extension_setting_edit')) { + $list_row_url = "extension_setting_edit.php?id=".urlencode($row['extension_setting_uuid'])."&extension_uuid=".urlencode($extension_uuid); + } + echo "\n"; + if (permission_exists('extension_setting_add') || permission_exists('extension_setting_edit') || permission_exists('extension_setting_delete')) { + echo " \n"; + } + //if ($_GET['show'] == 'all' && permission_exists('extension_setting_all')) { + // echo " \n"; + //} + echo " \n"; + echo " \n"; + echo " \n"; + if (permission_exists('extension_setting_edit')) { + echo " \n"; + echo " \n"; + if (permission_exists('extension_setting_edit') && $_SESSION['theme']['list_row_edit_button']['boolean'] == 'true') { + echo " \n"; + } + echo "\n"; + + //set the previous category + $previous_extension_setting_type = $row['extension_setting_type']; + $x++; + } + unset($extension_settings); + } + + echo "
 
".escape($label_extension_setting_type)."
\n"; + echo " \n"; + echo " ".$text['label-extension_setting_type']."".$text['label-extension_setting_name']."".$text['label-extension_setting_value']."".$text['label-extension_setting_enabled']."".$text['label-extension_setting_description']." 
\n"; + echo " \n"; + echo " \n"; + echo " ".escape($row['domain_name'])."".escape($row['extension_setting_type'])."".escape($row['extension_setting_name'])."".escape($row['extension_setting_value'])."\n"; + echo $text['label-'.$row['extension_setting_enabled']]; + } + echo " ".escape($row['extension_setting_description'])."\n"; + echo button::create(['type'=>'button','title'=>$text['button-edit'],'icon'=>$_SESSION['theme']['button_icon_edit'],'link'=>$list_row_url]); + echo "
\n"; + echo "
\n"; + echo "
".$paging_controls."
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + +//include the footer + require_once "resources/footer.php"; + +?> diff --git a/app/extension_settings/resources/classes/extension_settings.php b/app/extension_settings/resources/classes/extension_settings.php new file mode 100755 index 0000000000..a8d21ce41f --- /dev/null +++ b/app/extension_settings/resources/classes/extension_settings.php @@ -0,0 +1,266 @@ + + Portions created by the Initial Developer are Copyright (C) 2021 + the Initial Developer. All Rights Reserved. + + Contributor(s): + Mark J Crane +*/ + +/** + * extension_settings class + * + * @method null delete + * @method null toggle + * @method null copy + */ +if (!class_exists('extension_settings')) { + class extension_settings { + + /** + * declare the variables + */ + private $app_name; + private $app_uuid; + private $name; + private $table; + private $toggle_field; + private $toggle_values; + private $description_field; + private $location; + + /** + * called when the object is created + */ + public function __construct() { + //assign the variables + $this->app_name = 'extension_settings'; + $this->app_uuid = '1416a250-f6e1-4edc-91a6-5c9b883638fd'; + $this->name = 'extension_setting'; + $this->table = 'extension_settings'; + $this->toggle_field = 'extension_setting_enabled'; + $this->toggle_values = ['true','false']; + $this->description_field = 'extension_setting_description'; + $this->location = 'extension_settings.php'; + } + + /** + * called when there are no references to a particular object + * unset the variables used in the class + */ + public function __destruct() { + foreach ($this as $key => $value) { + unset($this->$key); + } + } + + /** + * delete rows from the database + */ + public function delete($records) { + if (permission_exists($this->name.'_delete')) { + + //add multi-lingual support + $language = new text; + $text = $language->get(); + + //validate the token + $token = new token; + if (!$token->validate($_SERVER['PHP_SELF'])) { + message::add($text['message-invalid_token'],'negative'); + header('Location: '.$this->location); + exit; + } + + //delete multiple records + if (is_array($records) && @sizeof($records) != 0) { + //build the delete array + $x = 0; + foreach ($records as $record) { + //add to the array + if ($record['checked'] == 'true' && is_uuid($record['uuid'])) { + $array[$this->table][$x][$this->name.'_uuid'] = $record['uuid']; + $array[$this->table][$x]['domain_uuid'] = $_SESSION['domain_uuid']; + } + + //increment the id + $x++; + } + + //delete the checked rows + if (is_array($array) && @sizeof($array) != 0) { + //execute delete + $database = new database; + $database->app_name = $this->app_name; + $database->app_uuid = $this->app_uuid; + $database->delete($array); + unset($array); + + //set message + message::add($text['message-delete']); + } + unset($records); + } + } + } + + /** + * toggle a field between two values + */ + public function toggle($records) { + if (permission_exists($this->name.'_edit')) { + + //add multi-lingual support + $language = new text; + $text = $language->get(); + + //validate the token + $token = new token; + if (!$token->validate($_SERVER['PHP_SELF'])) { + message::add($text['message-invalid_token'],'negative'); + header('Location: '.$this->location); + exit; + } + + //toggle the checked records + if (is_array($records) && @sizeof($records) != 0) { + //get current toggle state + foreach($records as $record) { + if ($record['checked'] == 'true' && is_uuid($record['uuid'])) { + $uuids[] = "'".$record['uuid']."'"; + } + } + if (is_array($uuids) && @sizeof($uuids) != 0) { + $sql = "select ".$this->name."_uuid as uuid, ".$this->toggle_field." as toggle from v_".$this->table." "; + $sql .= "where ".$this->name."_uuid in (".implode(', ', $uuids).") "; + $sql .= "and (domain_uuid = :domain_uuid or domain_uuid is null) "; + $parameters['domain_uuid'] = $_SESSION['domain_uuid']; + $database = new database; + $rows = $database->select($sql, $parameters, 'all'); + if (is_array($rows) && @sizeof($rows) != 0) { + foreach ($rows as $row) { + $states[$row['uuid']] = $row['toggle']; + } + } + unset($sql, $parameters, $rows, $row); + } + + //build update array + $x = 0; + foreach($states as $uuid => $state) { + //create the array + $array[$this->table][$x][$this->name.'_uuid'] = $uuid; + $array[$this->table][$x][$this->toggle_field] = $state == $this->toggle_values[0] ? $this->toggle_values[1] : $this->toggle_values[0]; + + //increment the id + $x++; + } + + //save the changes + if (is_array($array) && @sizeof($array) != 0) { + //save the array + $database = new database; + $database->app_name = $this->app_name; + $database->app_uuid = $this->app_uuid; + $database->save($array); + unset($array); + + //set message + message::add($text['message-toggle']); + } + unset($records, $states); + } + } + } + + /** + * copy rows from the database + */ + public function copy($records) { + if (permission_exists($this->name.'_add')) { + + //add multi-lingual support + $language = new text; + $text = $language->get(); + + //validate the token + $token = new token; + if (!$token->validate($_SERVER['PHP_SELF'])) { + message::add($text['message-invalid_token'],'negative'); + header('Location: '.$this->location); + exit; + } + + //copy the checked records + if (is_array($records) && @sizeof($records) != 0) { + + //get checked records + foreach($records as $record) { + if ($record['checked'] == 'true' && is_uuid($record['uuid'])) { + $uuids[] = "'".$record['uuid']."'"; + } + } + + //create the array from existing data + if (is_array($uuids) && @sizeof($uuids) != 0) { + $sql = "select * from v_".$this->table." "; + $sql .= "where ".$this->name."_uuid in (".implode(', ', $uuids).") "; + $sql .= "and (domain_uuid = :domain_uuid or domain_uuid is null) "; + $parameters['domain_uuid'] = $_SESSION['domain_uuid']; + $database = new database; + $rows = $database->select($sql, $parameters, 'all'); + if (is_array($rows) && @sizeof($rows) != 0) { + $x = 0; + foreach ($rows as $row) { + //copy data + $array[$this->table][$x] = $row; + + //add copy to the description + $array[$this->table][$x][$this->name.'_uuid'] = uuid(); + $array[$this->table][$x][$this->description_field] = trim($row[$this->description_field]).' ('.$text['label-copy'].')'; + + //increment the id + $x++; + } + } + unset($sql, $parameters, $rows, $row); + } + + //save the changes and set the message + if (is_array($array) && @sizeof($array) != 0) { + //save the array + $database = new database; + $database->app_name = $this->app_name; + $database->app_uuid = $this->app_uuid; + $database->save($array); + unset($array); + + //set message + message::add($text['message-copy']); + } + unset($records); + } + } + } + + } +} + +?> diff --git a/app/extension_settings/root.php b/app/extension_settings/root.php new file mode 100755 index 0000000000..6fdf32f37b --- /dev/null +++ b/app/extension_settings/root.php @@ -0,0 +1,90 @@ + + Portions created by the Initial Developer are Copyright (C) 2008-2012 + the Initial Developer. All Rights Reserved. + + Contributor(s): + Mark J Crane +*/ + +// make sure the PATH_SEPARATOR is defined + umask(2); + if (!defined("PATH_SEPARATOR")) { + if (strpos($_ENV["OS"], "Win") !== false) { + define("PATH_SEPARATOR", ";"); + } else { + define("PATH_SEPARATOR", ":"); + } + } + + if (!isset($output_format)) $output_format = (PHP_SAPI == 'cli') ? 'text' : 'html'; + + // make sure the document_root is set + $_SERVER["SCRIPT_FILENAME"] = str_replace("\\", '/', $_SERVER["SCRIPT_FILENAME"]); + if(PHP_SAPI == 'cli'){ + chdir(pathinfo(realpath($_SERVER["PHP_SELF"]), PATHINFO_DIRNAME)); + $script_full_path = str_replace("\\", '/', getcwd() . '/' . $_SERVER["SCRIPT_FILENAME"]); + $dirs = explode('/', pathinfo($script_full_path, PATHINFO_DIRNAME)); + if (file_exists('/project_root.php')) { + $path = '/'; + } else { + $i = 1; + $path = ''; + while ($i < count($dirs)) { + $path .= '/' . $dirs[$i]; + if (file_exists($path. '/project_root.php')) { + break; + } + $i++; + } + } + $_SERVER["DOCUMENT_ROOT"] = $path; + }else{ + $_SERVER["DOCUMENT_ROOT"] = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]); + } + $_SERVER["DOCUMENT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"]); +// try to detect if a project path is being used + if (!defined('PROJECT_PATH')) { + if (is_dir($_SERVER["DOCUMENT_ROOT"]. '/fusionpbx')) { + define('PROJECT_PATH', '/fusionpbx'); + } elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/project_root.php')) { + define('PROJECT_PATH', ''); + } else { + $dirs = explode('/', str_replace('\\', '/', pathinfo($_SERVER["PHP_SELF"], PATHINFO_DIRNAME))); + $i = 1; + $path = $_SERVER["DOCUMENT_ROOT"]; + while ($i < count($dirs)) { + $path .= '/' . $dirs[$i]; + if (file_exists($path. '/project_root.php')) { + break; + } + $i++; + } + if(!file_exists($path. '/project_root.php')){ + die("Failed to locate the Project Root by searching for project_root.php please contact support for assistance"); + } + $project_path = str_replace($_SERVER["DOCUMENT_ROOT"], "", $path); + define('PROJECT_PATH', $project_path); + } + $_SERVER["PROJECT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"] . PROJECT_PATH); + set_include_path(get_include_path() . PATH_SEPARATOR . $_SERVER["PROJECT_ROOT"]); + } + +?> \ No newline at end of file diff --git a/app/extensions/app_config.php b/app/extensions/app_config.php index be45dbe80c..1f7bee03d4 100644 --- a/app/extensions/app_config.php +++ b/app/extensions/app_config.php @@ -591,12 +591,6 @@ $apps[$x]['db'][$y]['fields'][$z]['key']['reference']['table'] = "v_follow_me"; $apps[$x]['db'][$y]['fields'][$z]['key']['reference']['field'] = "follow_me_uuid"; $z++; - $apps[$x]['db'][$y]['fields'][$z]['name'] = "forward_caller_id_uuid"; - $apps[$x]['db'][$y]['fields'][$z]['type']['pgsql'] = "uuid"; - $apps[$x]['db'][$y]['fields'][$z]['type']['sqlite'] = "text"; - $apps[$x]['db'][$y]['fields'][$z]['type']['mysql'] = "char(36)"; - $apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = ""; - $z++; $apps[$x]['db'][$y]['fields'][$z]['name'] = "follow_me_enabled"; $apps[$x]['db'][$y]['fields'][$z]['type'] = "text"; $apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = ""; diff --git a/app/extensions/app_languages.php b/app/extensions/app_languages.php index 0e0913cddd..5b4801b597 100644 --- a/app/extensions/app_languages.php +++ b/app/extensions/app_languages.php @@ -1150,8 +1150,8 @@ $text['label-hold_music']['de-ch'] = "Wartemusik"; //copied from de-de $text['label-hold_music']['de-de'] = "Wartemusik"; $text['label-hold_music']['es-cl'] = "Música en Espera"; $text['label-hold_music']['es-mx'] = "Música en Espera"; //copied from es-cl -$text['label-hold_music']['fr-ca'] = "Musique de Garde"; //copied from fr-fr -$text['label-hold_music']['fr-fr'] = "Musique de Garde"; +$text['label-hold_music']['fr-ca'] = "Musique d'attente"; //copied from fr-fr +$text['label-hold_music']['fr-fr'] = "Musique d'attente"; $text['label-hold_music']['he-il'] = "מוסיקה בהמתנה"; $text['label-hold_music']['it-it'] = "Musica di Attesa"; $text['label-hold_music']['nl-nl'] = "Wachtmuziek"; @@ -2460,8 +2460,8 @@ $text['description-hold_music']['de-ch'] = "Wählen Sie die Wartemusik Kategorie $text['description-hold_music']['de-de'] = "Wählen Sie die Wartemusik Kategorie."; $text['description-hold_music']['es-cl'] = "Ingrese la categoría de música en espera aquí"; $text['description-hold_music']['es-mx'] = "Ingrese la categoría de música en espera aquí"; //copied from es-cl -$text['description-hold_music']['fr-ca'] = "Choisir la musique de garde."; //copied from fr-fr -$text['description-hold_music']['fr-fr'] = "Choisir la musique de garde."; +$text['description-hold_music']['fr-ca'] = "Choisir la musique d'attente'."; //copied from fr-fr +$text['description-hold_music']['fr-fr'] = "Choisir la musique d'attente."; $text['description-hold_music']['he-il'] = ""; $text['description-hold_music']['it-it'] = "Seleziona la categoria di Musica d'attesa."; $text['description-hold_music']['nl-nl'] = "Kies Wachtmuziek hier."; diff --git a/app/extensions/extension_download.php b/app/extensions/extension_download.php index 4ade0e978c..04292c47df 100644 --- a/app/extensions/extension_download.php +++ b/app/extensions/extension_download.php @@ -92,7 +92,6 @@ $available_columns[] = 'follow_me_uuid'; $available_columns[] = 'enabled'; $available_columns[] = 'description'; - $available_columns[] = 'forward_caller_id_uuid'; $available_columns[] = 'absolute_codec_string'; $available_columns[] = 'forward_user_not_registered_destination'; $available_columns[] = 'forward_user_not_registered_enabled'; @@ -210,4 +209,4 @@ //include the footer require_once "resources/footer.php"; -?> \ No newline at end of file +?> diff --git a/app/extensions/extension_edit.php b/app/extensions/extension_edit.php index 45bfc1aeae..384ce485ef 100644 --- a/app/extensions/extension_edit.php +++ b/app/extensions/extension_edit.php @@ -937,12 +937,13 @@ echo button::create(['type'=>'button','label'=>$text['button-call_forward'],'icon'=>'project-diagram','style'=>$button_margin,'link'=>'../calls/call_edit.php?id='.urlencode($extension_uuid)]); unset($button_margin); } + if (permission_exists('extension_setting_view')) { + echo button::create(['type'=>'button','label'=>$text['button-settings'],'icon'=>$_SESSION['theme']['button_icon_settings'],'id'=>'btn_settings','style'=>'','link'=>PROJECT_PATH.'/app/extension_settings/extension_settings.php?id='.urlencode($extension_uuid)]); + } if (permission_exists('extension_copy')) { echo button::create(['type'=>'button','label'=>$text['button-copy'],'icon'=>$_SESSION['theme']['button_icon_copy'],'id'=>'btn_copy','style'=>'margin-left: 15px;','onclick'=>"copy_extension();"]); } - if (permission_exists('domain_setting_view') && file_exists(PROJECT_PATH.'/app/extension_settings/app_config.php')) { - echo button::create(['type'=>'button','label'=>$text['button-settings'],'icon'=>$_SESSION['theme']['button_icon_settings'],'id'=>'btn_settings','style'=>'','link'=>PROJECT_PATH.'/app/extension_settings/extension_settings.php?id='.urlencode($extension_uuid)]); - } + } echo button::create(['type'=>'button','label'=>$text['button-save'],'icon'=>$_SESSION['theme']['button_icon_save'],'id'=>'btn_save','style'=>'margin-left: 15px;','onclick'=>'submit_form();']); echo "
\n"; diff --git a/app/fanvil/app_config.php b/app/fanvil/app_config.php index dd6f792bab..c4fe460dab 100644 --- a/app/fanvil/app_config.php +++ b/app/fanvil/app_config.php @@ -655,334 +655,6 @@ $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; $apps[$x]['default_settings'][$y]['default_setting_description'] = "EGS Syslog Server Port"; $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "68feb973-be9a-42ac-94a1-54263dfde589"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_lldp_tx_enable"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "0"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = " LLDP Transmit. 0-Disabled, 1-Enabled"; - $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "f0d1dd5b-7130-428c-bddb-a975d85587f5"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_lldp_refresh"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "60"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = "LLDP Refresh Timer. Default 60 seconds"; - $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "10af1d27-ef61-4c7c-94cf-8db797a84ebc"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_lldp_learn"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "0"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = "Use LLDP learned information such as voip vlan"; - $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "b4cc791a-5389-4e1f-9f87-e8394b399d64"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_enable_vlan"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "0"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = "Enable VLAN Support. 0 - NO, 1 - Yes"; - $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "16d74bd9-7f44-4780-a202-3cfcbaa6ef5a"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_lan_port_vlan"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "256"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = "Default VLAN for phone LAN port."; - $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "530564ac-17aa-4167-b047-bf764250d91a"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_pc_port_vlan"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "1"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = "Default VLAN for phone PC port."; - $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "2b72e19b-2437-45c0-9df5-4fef6ac078c6"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_enable_diffserv"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "1"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = "Enable DiffServ(DSCP) Support. 0 - NO, 1 - Yes"; - $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "86081f7e-af03-41b9-a5af-b5593182c9ff"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_qos_rtp_voice"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "0"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = "Layer 2 QoS 802.1p Priority Value for RTP Voice media"; - $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "8050cfbd-44d1-46db-b553-2cc0defd5fc2"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_qos_rtp_video"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "0"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = "Layer 2 QoS 802.1p Priority Value for RTP Video media"; - $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "ddf89377-7303-435c-917a-bdd32579cf36"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_qos_sip"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "0"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = "Layer 2 QoS 802.1p Priority Value for SIP signaling"; - $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "b6a89aa6-2e21-489c-8f1f-e819e6ced17b"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_dscp_rtp_voice"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "46"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = "Layer 3 QoS DSCP Value for RTP Voice media"; - $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "9a22bd5b-c2b0-4c06-bd19-63ef58837011"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_dscp_rtp_video"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "46"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = "Layer 3 QoS DSCP Value for RTP Video media"; - $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "94effa7d-8c0f-4cca-b617-9d2d24748aa7"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_dscp_sip"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "text"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "-1"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = "Layer 3 QoS DSCP Value for SIP signaling (Disabled by default)"; - $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "49f2ff3f-0628-44fa-a8d2-82cb38fbaf98"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_video_codec"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "text"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "H264"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = "Enable video codec on sip lines (Only h264 currently supported)"; - $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "be8c1341-3cb6-4aa8-bef5-642ff11199e8"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_syslog_enable"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "0"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = "Enable Syslog server"; - $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "8281507b-80fa-450a-94b7-6f58a7a9e6e1"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_syslog_server"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "text"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "0.0.0.0"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = "Syslog Server ip"; - $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "db7595a1-318b-49d8-86a6-8ff4b44e30f5"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_syslog_server_port"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "514"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = "Syslog Server Port number"; - $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "67a916be-35df-44f1-ab12-81756fd1f911"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_default_answer_mode"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "2"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = "Answer call as audio only or audio with video. 1-Audio, 2-Video"; - $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "bbbdf01c-d760-43cf-958d-e47c54dd3997"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_default_dial_mode"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "1"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = "Dial call as audio only or audio with video. 1-Audio, 2-Video Note: If you set this to video, then video is offered in the first invite which can cause your call to hang or not complete if going through a sip trunk provider."; - $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "37ddabf0-8d7c-494f-b381-5bc4e3048bff"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_enable_auto_upgrade"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "0"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = "Enable firmware auto upgrade 0 - NO, 1 - Yes"; - $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "5a2a79c3-befb-4b7a-998d-3f0bfc9fcde4"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_firmware_upgrade_server_1"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "text"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "https://server.yourdomain.com/app/fanvil/resources/firmware"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = "Auto upgrade firmware server 1."; - $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "de60a8fb-628a-4ee3-a76a-ff3e0a7f045f"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_firmware_upgrade_server_2"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "text"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "https://server2.yourdomain.com/app/fanvil/resources/firmware"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = "Auto upgrade firmware server 2."; - $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "09134520-647a-4a86-bffd-d927aff2b33b"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_firmware_upgrade_interval"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "24"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = "Check for firmware every X hours."; - $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "3ca2b12b-21f1-4a6d-a0eb-8670105c77d9"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_firmware_i20s"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "text"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "i20S2.1.1.3664T20180809203309.z"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = " Filename of the i20S firmware ROM"; - $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "d07be0b3-a34b-4739-a227-766231e5bb52"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_firmware_i23s"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "text"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "i23S2.1.1.3664T20180809204215.z"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = " Filename of the i23S firmware ROM"; - $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "6e0d313d-e44a-446f-9274-99e778d87cf5"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_firmware_i30"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "text"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "i302.1.1.3664T20180809203614.z"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = " Filename of the i30 firmware ROM"; - $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "a3cf0c35-4f92-4607-84a6-b06b29d67134"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_firmware_i31s"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "text"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "i31S2.1.1.3664T20180809203916.z"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = " Filename of the i31S firmware ROM"; - $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "235ccea6-5ed0-45ff-a03f-d0cbc6ebaf01"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_firmware_x2p"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "text"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "x2-mono2.8.0.6251T20181017203533.z"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = " Filename of the X2P firmware ROM"; - $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "8912437c-7142-4a85-b4aa-f83c1e50ad30"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_firmware_x3"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "text"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "x3s2.8.0.6251T20181017202549.z"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = " Filename of the X3S/G firmware ROM"; - $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "756059c7-b754-4285-be22-0d51c82d62b3"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_firmware_x4"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "text"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "x42.8.0.6251T20181017202853.z"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = " Filename of the X4/G firmware ROM"; - $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "122ba840-7dee-4c8e-a93c-739681b4b1d4"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_firmware_x5s"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "text"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "x5s-6900-P0.13.3-1.8.0-2698T2018-09-30-15.23.04.z"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = " Filename of the X5S firmware ROM"; - $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "32635e1c-dcb8-44e1-a0c4-5209b4f84392"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_firmware_x6"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "text"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "x6-6914-P0.13.3-1.8.0-2697T2018-09-30-15.10.00.z"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = " Filename of the X6 firmware ROM"; - $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "4b7f56f3-31a9-46dd-b588-35b253024b1f"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_egs_switch_mode"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "0"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = "0 - Monostable, 1 - Bistable"; - $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "316ce083-69ba-4932-be02-845d3ed8f585"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_egs_enable_card_reader"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "0"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = "Enable RFID Card Reader. 0 - NO, 1 - Yes"; - $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "7226d18c-7d49-449b-be7b-8cfb46c1ddb3"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_egs_enable_indoor_open"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "0"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = "Use indoor switch to unlock the door. 0 - NO, 1 - Yes"; - $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "83dce10f-6254-490c-af89-a2a004890c47"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_egs_enable_access_table"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "1"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = "Default: Enabled. 0 - NO, 1 - Yes"; - $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "d4ffbf45-5abe-4ef3-9cf7-f222257d5633"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_egs_opening_door_code_remote"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "text"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "*"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = "Default: *"; - $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "c51013fc-765e-4758-99a9-2738cfe9a7dd"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_egs_opening_door_code_local"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "text"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "6789"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = "Default: 6789"; - $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "0c5fe247-0361-4c69-a247-d14b5417e53e"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_egs_enable_syslog"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "0"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = "Enable EGS Syslog. 0 - NO, 1 - Yes"; - $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "1a74a177-49fc-432e-b10e-39c7d0c7ddc4"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_egs_log_server"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "text"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "0.0.0.0"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = "EGS Syslog Server. Hostname or IP"; - $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "3fb2a87b-89b1-4d53-923d-c1478aec4f58"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_egs_log_port"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "514"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = "EGS Syslog Server Port"; - $y++; $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "108f26c5-568d-4cc0-af94-097ecb600b8f"; $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "fanvil_provision_url"; diff --git a/app/fax/app_languages.php b/app/fax/app_languages.php index 2f5e22804c..751e3ddf2d 100644 --- a/app/fax/app_languages.php +++ b/app/fax/app_languages.php @@ -303,8 +303,8 @@ $text['option-fax-resolution-superfine']['de-ch'] = "Superfein"; //copied from d $text['option-fax-resolution-superfine']['de-de'] = "Superfein"; $text['option-fax-resolution-superfine']['es-cl'] = "Superfino"; $text['option-fax-resolution-superfine']['es-mx'] = "Superfino"; //copied from es-cl -$text['option-fax-resolution-superfine']['fr-ca'] = "Superfin"; //copied from fr-fr -$text['option-fax-resolution-superfine']['fr-fr'] = "Superfin"; +$text['option-fax-resolution-superfine']['fr-ca'] = "Superfine"; //copied from fr-fr +$text['option-fax-resolution-superfine']['fr-fr'] = "Superfine"; $text['option-fax-resolution-superfine']['he-il'] = ""; $text['option-fax-resolution-superfine']['it-it'] = "Superfine"; $text['option-fax-resolution-superfine']['nl-nl'] = ""; @@ -324,8 +324,8 @@ $text['option-fax-resolution-normal']['de-ch'] = "Normal"; //copied from de-de $text['option-fax-resolution-normal']['de-de'] = "Normal"; $text['option-fax-resolution-normal']['es-cl'] = "Normal"; $text['option-fax-resolution-normal']['es-mx'] = "Normal"; //copied from es-cl -$text['option-fax-resolution-normal']['fr-ca'] = "Normal"; //copied from fr-fr -$text['option-fax-resolution-normal']['fr-fr'] = "Normal"; +$text['option-fax-resolution-normal']['fr-ca'] = "Normale"; //copied from fr-fr +$text['option-fax-resolution-normal']['fr-fr'] = "Normale"; $text['option-fax-resolution-normal']['he-il'] = ""; $text['option-fax-resolution-normal']['it-it'] = "Normale"; $text['option-fax-resolution-normal']['nl-nl'] = ""; @@ -492,8 +492,8 @@ $text['label-sent']['de-ch'] = "Gesendet"; //copied from de-de $text['label-sent']['de-de'] = "Gesendet"; $text['label-sent']['es-cl'] = "Enviado"; $text['label-sent']['es-mx'] = "Enviado"; //copied from es-cl -$text['label-sent']['fr-ca'] = "Envoyé"; //copied from fr-fr -$text['label-sent']['fr-fr'] = "Envoyé"; +$text['label-sent']['fr-ca'] = "Envoyés"; //copied from fr-fr +$text['label-sent']['fr-fr'] = "Envoyés"; $text['label-sent']['he-il'] = ""; $text['label-sent']['it-it'] = "Spedito"; $text['label-sent']['nl-nl'] = ""; @@ -1017,8 +1017,8 @@ $text['label-fax_files']['de-ch'] = "Fax Dateien"; //copied from de-de $text['label-fax_files']['de-de'] = "Fax Dateien"; $text['label-fax_files']['es-cl'] = "Facsímil del Archivo(s)"; $text['label-fax_files']['es-mx'] = "Facsímil del Archivo(s)"; //copied from es-cl -$text['label-fax_files']['fr-ca'] = "Télécopieur Fichier(s)"; //copied from fr-fr -$text['label-fax_files']['fr-fr'] = "Télécopieur Fichier(s)"; +$text['label-fax_files']['fr-ca'] = "Fichier(s) à Télécopier"; //copied from fr-fr +$text['label-fax_files']['fr-fr'] = "Fichier(s) à Télécopier"; $text['label-fax_files']['he-il'] = ""; $text['label-fax_files']['it-it'] = "File(s) FAX"; $text['label-fax_files']['nl-nl'] = ""; @@ -1332,8 +1332,8 @@ $text['label-fax-subject']['de-ch'] = "Betreff"; //copied from de-de $text['label-fax-subject']['de-de'] = "Betreff"; $text['label-fax-subject']['es-cl'] = "Asunto"; $text['label-fax-subject']['es-mx'] = "Asunto"; //copied from es-cl -$text['label-fax-subject']['fr-ca'] = "Sujet"; //copied from fr-fr -$text['label-fax-subject']['fr-fr'] = "Sujet"; +$text['label-fax-subject']['fr-ca'] = "Objet"; //copied from fr-fr +$text['label-fax-subject']['fr-fr'] = "Objet"; $text['label-fax-subject']['he-il'] = "נושא"; $text['label-fax-subject']['it-it'] = "Oggetto"; $text['label-fax-subject']['nl-nl'] = ""; @@ -1542,8 +1542,8 @@ $text['label-fax-footer']['de-ch'] = "Fußzeile"; //copied from de-de $text['label-fax-footer']['de-de'] = "Fußzeile"; $text['label-fax-footer']['es-cl'] = "Pie de Página"; $text['label-fax-footer']['es-mx'] = "Pie de Página"; //copied from es-cl -$text['label-fax-footer']['fr-ca'] = "Footer"; //copied from fr-fr -$text['label-fax-footer']['fr-fr'] = "Footer"; +$text['label-fax-footer']['fr-ca'] = "Bas de page"; //copied from fr-fr +$text['label-fax-footer']['fr-fr'] = "Bas de page"; $text['label-fax-footer']['he-il'] = "תחתית עמוד"; $text['label-fax-footer']['it-it'] = "PiÃè di pagina"; $text['label-fax-footer']['nl-nl'] = ""; @@ -2697,8 +2697,8 @@ $text['description-fax_files']['de-ch'] = "Wählen Sie die Datei(en) zum senden. $text['description-fax_files']['de-de'] = "Wählen Sie die Datei(en) zum senden."; $text['description-fax_files']['es-cl'] = "Seleccione el archivo a subir y enviar como fax."; $text['description-fax_files']['es-mx'] = "Seleccione el archivo a subir y enviar como fax."; //copied from es-cl -$text['description-fax_files']['fr-ca'] = "Choisir un fichier à télécharger pour être émis en tant que Fax."; //copied from fr-fr -$text['description-fax_files']['fr-fr'] = "Choisir un fichier à télécharger pour être émis en tant que Fax."; +$text['description-fax_files']['fr-ca'] = "Choisir un fichier à télécharger pour émettre en tant que Fax."; //copied from fr-fr +$text['description-fax_files']['fr-fr'] = "Choisir un fichier à télécharger pour émettre en tant que Fax."; $text['description-fax_files']['he-il'] = ""; $text['description-fax_files']['it-it'] = "Scegli i/il file da caricare e spedire."; $text['description-fax_files']['nl-nl'] = ""; @@ -3214,8 +3214,8 @@ $text['description-email_outbound_subject_tag']['ru-ru'] = "Установите $text['description-email_outbound_subject_tag']['sv-se'] = "Ange E-post ämne för utgående fax."; $text['description-email_outbound_subject_tag']['uk-ua'] = ""; -$text['description-email_outbound_authorized_senders']['en-us'] = "Define the email address(es) and/or domains allowed to send faxes through this server."; -$text['description-email_outbound_authorized_senders']['en-gb'] = "Define the email address(es) and/or domains allowed to send faxes through this server."; +$text['description-email_outbound_authorized_senders']['en-us'] = "Define the email address(es) allowed to send faxes through this server."; +$text['description-email_outbound_authorized_senders']['en-gb'] = "Define the email address(es) allowed to send faxes through this server."; $text['description-email_outbound_authorized_senders']['ar-eg'] = ""; $text['description-email_outbound_authorized_senders']['de-at'] = "Geben Sie die Email Addresse(n) an, von welchen Faxe gesendet werden dürfen."; //copied from de-de $text['description-email_outbound_authorized_senders']['de-ch'] = "Geben Sie die Email Addresse(n) an, von welchen Faxe gesendet werden dürfen."; //copied from de-de @@ -3537,8 +3537,8 @@ $text['description-2']['de-ch'] = "Um ein Fax zu senden, laden Sie eine PDF oder $text['description-2']['de-de'] = "Um ein Fax zu senden, laden Sie eine PDF oder eine TIF Datei hoch. Um ein Deckblatt zu generieren, geben Sie einen Betreff und/oder eine Nachricht unten an."; $text['description-2']['es-cl'] = "Para enviar un fax, cargar un archivo PDF o TIF. Para generar una hoja de presentación, escriba un asunto y / o mensaje a continuación."; $text['description-2']['es-mx'] = "Para enviar un fax, cargar un archivo PDF o TIF. Para generar una hoja de presentación, escriba un asunto y / o mensaje a continuación."; //copied from es-cl -$text['description-2']['fr-ca'] = "Pour envoyer un fax, télécharger un fichier PDF ou TIF. Pour générer une feuille de couverture, entrer un sujet et / ou un message ci-dessous."; //copied from fr-fr -$text['description-2']['fr-fr'] = "Pour envoyer un fax, télécharger un fichier PDF ou TIF. Pour générer une feuille de couverture, entrer un sujet et / ou un message ci-dessous."; +$text['description-2']['fr-ca'] = "Pour envoyer un fax, téléchargez un fichier PDF ou TIF. Pour générer une feuille de couverture, entrez un sujet et / ou un message ci-dessous."; //copied from fr-fr +$text['description-2']['fr-fr'] = "Pour envoyer un fax, téléchargez un fichier PDF ou TIF. Pour générer une feuille de couverture, entrez un sujet et / ou un message ci-dessous."; $text['description-2']['he-il'] = ""; $text['description-2']['it-it'] = "Per spedire un fax, carica un PDF o un TIF. Per generare una copertina, inserisci un oggetto e/o un Messaggio qui sotto."; $text['description-2']['nl-nl'] = ""; @@ -3747,8 +3747,8 @@ $text['button-preview']['de-ch'] = "Vorschau"; //copied from de-de $text['button-preview']['de-de'] = "Vorschau"; $text['button-preview']['es-cl'] = "Prevista"; $text['button-preview']['es-mx'] = "Prevista"; //copied from es-cl -$text['button-preview']['fr-ca'] = "Pré-Visualisation"; //copied from fr-fr -$text['button-preview']['fr-fr'] = "Pré-Visualisation"; +$text['button-preview']['fr-ca'] = "Aperçu"; //copied from fr-fr +$text['button-preview']['fr-fr'] = "Aperçu"; $text['button-preview']['he-il'] = "תצוגה מקדימה"; $text['button-preview']['it-it'] = "Anteprima"; $text['button-preview']['nl-nl'] = ""; diff --git a/app/follow_me/app_config.php b/app/follow_me/app_config.php index a09aff8c7e..cd25312375 100644 --- a/app/follow_me/app_config.php +++ b/app/follow_me/app_config.php @@ -99,8 +99,6 @@ $apps[$x]['permissions'][$y]['groups'][] = "admin"; $apps[$x]['permissions'][$y]['groups'][] = "user"; $apps[$x]['permissions'][$y]['groups'][] = "agent"; - $y++; - $apps[$x]['permissions'][$y]['name'] = "follow_me_caller_id"; //default settings $y=0; @@ -153,15 +151,6 @@ $apps[$x]['db'][$y]['fields'][$z]['type'] = "text"; $apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = ""; $z++; - $apps[$x]['db'][$y]['fields'][$z]['name'] = "follow_me_caller_id_uuid"; - $apps[$x]['db'][$y]['fields'][$z]['type']['pgsql'] = "uuid"; - $apps[$x]['db'][$y]['fields'][$z]['type']['sqlite'] = "text"; - $apps[$x]['db'][$y]['fields'][$z]['type']['mysql'] = "char(36)"; - $apps[$x]['db'][$y]['fields'][$z]['key']['type'] = "foreign"; - $apps[$x]['db'][$y]['fields'][$z]['key']['reference']['table'] = "v_destinations"; - $apps[$x]['db'][$y]['fields'][$z]['key']['reference']['field'] = "destination_uuid"; - $apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = ""; - $z++; $apps[$x]['db'][$y]['fields'][$z]['name'] = "follow_me_ignore_busy"; $apps[$x]['db'][$y]['fields'][$z]['type'] = "text"; $apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = ""; diff --git a/app/grandstream/app_config.php b/app/grandstream/app_config.php index cd098d104b..f3673393b5 100644 --- a/app/grandstream/app_config.php +++ b/app/grandstream/app_config.php @@ -302,6 +302,22 @@ $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; $apps[$x]['default_settings'][$y]['default_setting_description'] = "Bluetooth Handsfree - 0 - Off, 1 - On"; $y++; + $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "5bc527d0-6f83-403b-a6c0-574540cfa9a6"; + $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; + $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "grandstream_headset_type"; + $apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric"; + $apps[$x]['default_settings'][$y]['default_setting_value'] = "1"; + $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; + $apps[$x]['default_settings'][$y]['default_setting_description'] = "Headset Type. 0 - Normal, 1 - Plantronics EHS. Default is 0"; + $y++; + $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "522ee640-5e24-4058-95ed-605bd982ec33"; + $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; + $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "grandstream_headset_key_mode"; + $apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric"; + $apps[$x]['default_settings'][$y]['default_setting_value'] = "1"; + $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; + $apps[$x]['default_settings'][$y]['default_setting_description'] = "HEADSET Key Mode. 0 - Default Mode, 1 - Toggle Headset/Speaker. Default is 0"; + $y++; $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "453ec939-ef61-4ecd-ad0a-31905153efd8"; $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "grandstream_auto_attended_transfer"; @@ -406,6 +422,14 @@ $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true"; $apps[$x]['default_settings'][$y]['default_setting_description'] = "BLF Call-pickup. 0 - Auto, 1 - Force BLF Call-pickup by prefix, 2 - Disabled. Default is 0"; $y++; + $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "53a9f955-d199-44f5-a97d-eed636348da5"; + $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; + $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "grandstream_blf_remote_status"; + $apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric"; + $apps[$x]['default_settings'][$y]['default_setting_value'] = "0"; + $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true"; + $apps[$x]['default_settings'][$y]['default_setting_description'] = "Hide BLF Remote Status. Default 0 - Not hidden, 1 - Hidden"; + $y++; $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "09ed1352-2594-4eb8-b3f8-93cdaabe6302"; $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "grandstream_active_backlight_timeout"; diff --git a/app/ivr_menus/app_defaults.php b/app/ivr_menus/app_defaults.php index 6f54dc7ca8..4075d60551 100644 --- a/app/ivr_menus/app_defaults.php +++ b/app/ivr_menus/app_defaults.php @@ -68,9 +68,16 @@ if ($domains_processed == 1) { //use the ivr_menu_language to update the language dialect and voice $sql = "update v_ivr_menus set "; - $sql .= "ivr_menu_language = split_part(ivr_menu_language, '/', 1), "; - $sql .= "ivr_menu_dialect = split_part(ivr_menu_language, '/', 2), "; - $sql .= "ivr_menu_voice = split_part(ivr_menu_language, '/', 3) "; + if ($db_type == 'pgsql') { + $sql .= "ivr_menu_language = split_part(ivr_menu_language, '/', 1), "; + $sql .= "ivr_menu_dialect = split_part(ivr_menu_language, '/', 2), "; + $sql .= "ivr_menu_voice = split_part(ivr_menu_language, '/', 3) "; + } + elseif ($db_type == 'mysql') { + $sql .= "ivr_menu_language = SUBSTRING_INDEX(SUBSTRING_INDEX(ivr_menu_language, '/', 1), '/', -1), "; + $sql .= "ivr_menu_dialect = SUBSTRING_INDEX(SUBSTRING_INDEX(ivr_menu_language, '/', 2), '/', -1), "; + $sql .= "ivr_menu_voice = SUBSTRING_INDEX(SUBSTRING_INDEX(ivr_menu_language, '/', 3), '/', -1) "; + } $sql .= "where ivr_menu_language like '%/%/%'; "; $database = new database; $ivr_menus = $database->select($sql, null, 'all'); diff --git a/app/ivr_menus/app_languages.php b/app/ivr_menus/app_languages.php index 6b1cc89727..d87b6b46ac 100644 --- a/app/ivr_menus/app_languages.php +++ b/app/ivr_menus/app_languages.php @@ -9,8 +9,8 @@ $text['title-option_edit']['de-ch'] = "Optionen der Automatischen Vermittlung be $text['title-option_edit']['de-de'] = "Optionen der Automatischen Vermittlung bearbeiten"; $text['title-option_edit']['es-cl'] = "Editar Menú IVR"; $text['title-option_edit']['es-mx'] = "Editar Menú IVR"; //copied from es-cl -$text['title-option_edit']['fr-ca'] = "Menu SVI Editer un Option"; //copied from fr-fr -$text['title-option_edit']['fr-fr'] = "Menu SVI Editer un Option"; +$text['title-option_edit']['fr-ca'] = "Menu RVI Editer un Option"; //copied from fr-fr +$text['title-option_edit']['fr-fr'] = "Menu RVI Editer un Option"; $text['title-option_edit']['he-il'] = ""; $text['title-option_edit']['it-it'] = "Modifica Opzioni Menu IVR"; $text['title-option_edit']['nl-nl'] = "IVR meni optie bewerken"; @@ -30,7 +30,7 @@ $text['title-option_add']['de-ch'] = "Optionen der Automatischen Vermittlung hin $text['title-option_add']['de-de'] = "Optionen der Automatischen Vermittlung hinzufügen"; $text['title-option_add']['es-cl'] = "Agregar Menú IVR"; $text['title-option_add']['es-mx'] = "Agregar Menú IVR"; //copied from es-cl -$text['title-option_add']['fr-ca'] = "Menu SVI Ajouter une Option"; //copied from fr-fr +$text['title-option_add']['fr-ca'] = "Menu RVI Ajouter une Option"; //copied from fr-fr $text['title-option_add']['fr-fr'] = "Menu SVI Ajouter une Option"; $text['title-option_add']['he-il'] = ""; $text['title-option_add']['it-it'] = "Inserisci Opzione Menu IVR"; @@ -51,7 +51,7 @@ $text['title-ivr_menus']['de-ch'] = "Automatische Vermittlungen"; //copied from $text['title-ivr_menus']['de-de'] = "Automatische Vermittlungen"; $text['title-ivr_menus']['es-cl'] = "Menus IVR"; $text['title-ivr_menus']['es-mx'] = "Menus IVR"; //copied from es-cl -$text['title-ivr_menus']['fr-ca'] = "Menus SVI"; //copied from fr-fr +$text['title-ivr_menus']['fr-ca'] = "Menus RVI"; //copied from fr-fr $text['title-ivr_menus']['fr-fr'] = "Menus SVI"; $text['title-ivr_menus']['he-il'] = ""; $text['title-ivr_menus']['it-it'] = "Menu IVR"; @@ -72,7 +72,7 @@ $text['title-ivr_menu']['de-ch'] = "Automatische Vermittlung"; //copied from de- $text['title-ivr_menu']['de-de'] = "Automatische Vermittlung"; $text['title-ivr_menu']['es-cl'] = "Menú IVR"; $text['title-ivr_menu']['es-mx'] = "Menú IVR"; //copied from es-cl -$text['title-ivr_menu']['fr-ca'] = "Menu SVI"; //copied from fr-fr +$text['title-ivr_menu']['fr-ca'] = "Menu RVI"; //copied from fr-fr $text['title-ivr_menu']['fr-fr'] = "Menu SVI"; $text['title-ivr_menu']['he-il'] = ""; $text['title-ivr_menu']['it-it'] = "Menu IVR"; @@ -93,7 +93,7 @@ $text['title-ivr_menus_sub']['de-ch'] = "Automatische Vermittlungen - Sub"; //co $text['title-ivr_menus_sub']['de-de'] = "Automatische Vermittlungen - Sub"; $text['title-ivr_menus_sub']['es-cl'] = "Menus IVR - Sub"; $text['title-ivr_menus_sub']['es-mx'] = "Menus IVR - Sub"; //copied from es-cl -$text['title-ivr_menus_sub']['fr-ca'] = "Menus SVI - Sub"; //copied from fr-fr +$text['title-ivr_menus_sub']['fr-ca'] = "Menus RVI - Sub"; //copied from fr-fr $text['title-ivr_menus_sub']['fr-fr'] = "Menus SVI - Sub"; $text['title-ivr_menus_sub']['he-il'] = ""; $text['title-ivr_menus_sub']['it-it'] = "Menu IVR - Sub"; @@ -114,8 +114,8 @@ $text['title-ivr_menus_other']['de-ch'] = "Automatische Vermittlungen - Other"; $text['title-ivr_menus_other']['de-de'] = "Automatische Vermittlungen - Other"; $text['title-ivr_menus_other']['es-cl'] = "Menus IVR - Other"; $text['title-ivr_menus_other']['es-mx'] = "Menus IVR - Other"; //copied from es-cl -$text['title-ivr_menus_other']['fr-ca'] = "Menus SVI - Other"; //copied from fr-fr -$text['title-ivr_menus_other']['fr-fr'] = "Menus SVI - Other"; +$text['title-ivr_menus_other']['fr-ca'] = "Menus RVI - Autre"; //copied from fr-fr +$text['title-ivr_menus_other']['fr-fr'] = "Menus SVI - Autre"; $text['title-ivr_menus_other']['he-il'] = ""; $text['title-ivr_menus_other']['it-it'] = "Menu IVR - Other"; $text['title-ivr_menus_other']['nl-nl'] = "IVR Sub - menu"; @@ -198,7 +198,7 @@ $text['message-maximum_ivr_menus']['de-ch'] = "Maximale Anzahl an Automatischen $text['message-maximum_ivr_menus']['de-de'] = "Maximale Anzahl an Automatischen Vermittlungen:"; $text['message-maximum_ivr_menus']['es-cl'] = "Máxima IVR Menús Animales:"; $text['message-maximum_ivr_menus']['es-mx'] = "Máxima IVR Menús Animales:"; //copied from es-cl -$text['message-maximum_ivr_menus']['fr-ca'] = "Menus Maximale SVI Admis:"; //copied from fr-fr +$text['message-maximum_ivr_menus']['fr-ca'] = "Menus Maximale RVI Admis:"; $text['message-maximum_ivr_menus']['fr-fr'] = "Menus Maximale SVI Admis:"; $text['message-maximum_ivr_menus']['he-il'] = ""; $text['message-maximum_ivr_menus']['it-it'] = "Massimo Menu IVR:"; @@ -786,7 +786,7 @@ $text['header-option_edit']['de-ch'] = "Optionen der Automatischen Vermittlung b $text['header-option_edit']['de-de'] = "Optionen der Automatischen Vermittlung bearbeiten"; $text['header-option_edit']['es-cl'] = "Editar Menú IVR"; $text['header-option_edit']['es-mx'] = "Editar Menú IVR"; //copied from es-cl -$text['header-option_edit']['fr-ca'] = "Menu SVI Editer un Option"; //copied from fr-fr +$text['header-option_edit']['fr-ca'] = "Menu RVI Editer un Option"; $text['header-option_edit']['fr-fr'] = "Menu SVI Editer un Option"; $text['header-option_edit']['he-il'] = ""; $text['header-option_edit']['it-it'] = "Modificare Opzioni Menu IVR"; @@ -807,7 +807,7 @@ $text['header-option_add']['de-ch'] = "Optionen der Automatischen Vermittlung hi $text['header-option_add']['de-de'] = "Optionen der Automatischen Vermittlung hinzufügen"; $text['header-option_add']['es-cl'] = "Agregar Menú IVR"; $text['header-option_add']['es-mx'] = "Agregar Menú IVR"; //copied from es-cl -$text['header-option_add']['fr-ca'] = "Menu SVI Ajouter une Option"; //copied from fr-fr +$text['header-option_add']['fr-ca'] = "Menu RVI Ajouter une Option"; //copied from fr-fr $text['header-option_add']['fr-fr'] = "Menu SVI Ajouter une Option"; $text['header-option_add']['he-il'] = ""; $text['header-option_add']['it-it'] = "Inserire Opzioni Menu IVR"; @@ -828,7 +828,7 @@ $text['header-ivr_menus']['de-ch'] = "Automatische Vermittlungen"; //copied from $text['header-ivr_menus']['de-de'] = "Automatische Vermittlungen"; $text['header-ivr_menus']['es-cl'] = "Menus IVR"; $text['header-ivr_menus']['es-mx'] = "Menus IVR"; //copied from es-cl -$text['header-ivr_menus']['fr-ca'] = "Menus SVI"; //copied from fr-fr +$text['header-ivr_menus']['fr-ca'] = "Menus RVI"; $text['header-ivr_menus']['fr-fr'] = "Menus SVI"; $text['header-ivr_menus']['he-il'] = ""; $text['header-ivr_menus']['it-it'] = "Menu IVR"; @@ -849,7 +849,7 @@ $text['header-ivr_menu']['de-ch'] = "Automatische Vermittlung"; //copied from de $text['header-ivr_menu']['de-de'] = "Automatische Vermittlung"; $text['header-ivr_menu']['es-cl'] = "Menú IVR"; $text['header-ivr_menu']['es-mx'] = "Menú IVR"; //copied from es-cl -$text['header-ivr_menu']['fr-ca'] = "Menu SVI"; //copied from fr-fr +$text['header-ivr_menu']['fr-ca'] = "Menu RVI"; $text['header-ivr_menu']['fr-fr'] = "Menu SVI"; $text['header-ivr_menu']['he-il'] = ""; $text['header-ivr_menu']['it-it'] = "Menu IVR"; @@ -1059,7 +1059,7 @@ $text['description-name']['de-ch'] = "Geben Sie den Namen der Automatischen Verm $text['description-name']['de-de'] = "Geben Sie den Namen der Automatischen Vermittlung an"; $text['description-name']['es-cl'] = "Ingrese un nombre para el menú IVR."; $text['description-name']['es-mx'] = "Ingrese un nombre para el menú IVR."; //copied from es-cl -$text['description-name']['fr-ca'] = "Choisir un nom pour le menu SVI"; //copied from fr-fr +$text['description-name']['fr-ca'] = "Choisir un nom pour le menu RVI"; $text['description-name']['fr-fr'] = "Choisir un nom pour le menu SVI"; $text['description-name']['he-il'] = ""; $text['description-name']['it-it'] = "Inserire un nome per l'IVR."; @@ -1122,7 +1122,7 @@ $text['description-ivr_menus']['de-ch'] = "Die Automatische Vermittlung spielt e $text['description-ivr_menus']['de-de'] = "Die Automatische Vermittlung spielt eine Aufnahme oder eine vordefinierte Phrase ab von welcher der Anrufe seine Optionen wählt. Jede Option hat ein entsprechendes Ziel. Das Ziel kann eine Nebenstelle, eine Mailbox eine andere Automatische Vermittlung, Rufgruppen, Fax Server und weitere Funktionen sein."; $text['description-ivr_menus']['es-cl'] = "El menú IVR reproduce una grabación o una frase predefinida que presenta opciones para elegir. Cada opción corresponde a un destino. Los destinos pueden ser extensiones, correo de voz, IVR, grupos, fax entre otros."; $text['description-ivr_menus']['es-mx'] = "El menú IVR reproduce una grabación o una frase predefinida que presenta opciones para elegir. Cada opción corresponde a un destino. Los destinos pueden ser extensiones, correo de voz, IVR, grupos, fax entre otros."; //copied from es-cl -$text['description-ivr_menus']['fr-ca'] = "Le Menu SVI joue un guide vocal ou un texte prédéfini qui présente à l'appelant des options à choisir. Chaque option est configurée avec une destination correspondante. Ces destnations peuvent être des extensions, messageries vocales, d'autres menus SVI, groupes d'appel, Fax, ou autres."; //copied from fr-fr +$text['description-ivr_menus']['fr-ca'] = "Le Menu RVI joue un guide vocal ou un texte prédéfini qui présente à l'appelant des options à choisir. Chaque option est configurée avec une destination correspondante. Ces destnations peuvent être des extensions, messageries vocales, d'autres menus RVI, groupes d'appel, Fax, ou autres."; $text['description-ivr_menus']['fr-fr'] = "Le Menu SVI joue un guide vocal ou un texte prédéfini qui présente à l'appelant des options à choisir. Chaque option est configurée avec une destination correspondante. Ces destnations peuvent être des extensions, messageries vocales, d'autres menus SVI, groupes d'appel, Fax, ou autres."; $text['description-ivr_menus']['he-il'] = ""; $text['description-ivr_menus']['it-it'] = "Il Menu IVR suona al chiamante una registrazione o una frase che illustra le opzioni selezionabili. Ciascuna opzione ha una destinazione corrispondente. Le destinazioni possono essere interni, caselle vocali, altri IVR, gruppi di squillo, FAX virtuali, etc."; @@ -1143,7 +1143,7 @@ $text['description-ivr_menu']['de-ch'] = "Die Automatische Vermittlung spielt ei $text['description-ivr_menu']['de-de'] = "Die Automatische Vermittlung spielt eine Aufnahme oder eine vordefinierte Phrase ab von welcher der Anrufe seine Optionen wählt. Jede Option hat ein entsprechendes Ziel. Das Ziel kann eine Nebenstelle, eine Mailbox eine andere Automatische Vermittlung, Rufgruppen, Fax Server und weitere Funktionen sein."; $text['description-ivr_menu']['es-cl'] = "El menú IVR reproduce una grabación o una frase predefinida que presenta opciones para elegir. Cada opción corresponde a un destino. Los destinos pueden ser extensiones, correo de voz, IVR, grupos, fax entre otros."; $text['description-ivr_menu']['es-mx'] = "El menú IVR reproduce una grabación o una frase predefinida que presenta opciones para elegir. Cada opción corresponde a un destino. Los destinos pueden ser extensiones, correo de voz, IVR, grupos, fax entre otros."; //copied from es-cl -$text['description-ivr_menu']['fr-ca'] = "Le Menu SVI joue un guide vocal ou un texte prédéfini qui présente à l'appelant des options à choisir. Chaque option est configurée avec une destination correspondante. Ces destnations peuvent être des extensions, messageries vocales, d'autres menus SVI, groupes d'appel, Fax, ou autres."; //copied from fr-fr +$text['description-ivr_menu']['fr-ca'] = "Le Menu RVI joue un guide vocal ou un texte prédéfini qui présente à l'appelant des options à choisir. Chaque option est configurée avec une destination correspondante. Ces destnations peuvent être des extensions, messageries vocales, d'autres menus RVI, groupes d'appel, Fax, ou autres."; //copied from fr-fr $text['description-ivr_menu']['fr-fr'] = "Le Menu SVI joue un guide vocal ou un texte prédéfini qui présente à l'appelant des options à choisir. Chaque option est configurée avec une destination correspondante. Ces destnations peuvent être des extensions, messageries vocales, d'autres menus SVI, groupes d'appel, Fax, ou autres."; $text['description-ivr_menu']['he-il'] = ""; $text['description-ivr_menu']['it-it'] = "Il Menu IVR suona al chiamante una registrazione o una frase che illustra le opzioni selezionabili. Ciascuna opzione ha una destinazione corrispondente. Le destinazioni possono essere interni, caselle vocali, altri IVR, gruppi di squillo, FAX virtuali, etc."; @@ -1290,7 +1290,7 @@ $text['description-exit_action']['de-ch'] = "Wählen Sie eine Aktion bei Verlass $text['description-exit_action']['de-de'] = "Wählen Sie eine Aktion bei Verlassen der Automatischen Vermittlung."; $text['description-exit_action']['es-cl'] = "Seleccione la acción de salida a ser realizada si el IVR existe."; $text['description-exit_action']['es-mx'] = "Seleccione la acción de salida a ser realizada si el IVR existe."; //copied from es-cl -$text['description-exit_action']['fr-ca'] = "Choisir l'action à executer en sortie si on sort du SVI par ailleurs qu'un des choix proposé."; //copied from fr-fr +$text['description-exit_action']['fr-ca'] = "Choisir l'action à executer en sortie si on sort du RVI par ailleurs qu'un des choix proposé."; //copied from fr-fr $text['description-exit_action']['fr-fr'] = "Choisir l'action à executer en sortie si on sort du SVI par ailleurs qu'un des choix proposé."; $text['description-exit_action']['he-il'] = ""; $text['description-exit_action']['it-it'] = "Scegliere l'azione da compiere quando si esce dall'IVR."; @@ -1332,7 +1332,7 @@ $text['description-direct_dial']['de-ch'] = "Definieren Sie ob Anrufer direkt zu $text['description-direct_dial']['de-de'] = "Definieren Sie ob Anrufer direkt zu Nebenstellen durchwählen können."; $text['description-direct_dial']['es-cl'] = "Define si quienes llaman pueden marcar directamente a las extensiones y códigos."; $text['description-direct_dial']['es-mx'] = "Define si quienes llaman pueden marcar directamente a las extensiones y códigos."; //copied from es-cl -$text['description-direct_dial']['fr-ca'] = "Défini si on peut appeler directement le SVI via une extension."; //copied from fr-fr +$text['description-direct_dial']['fr-ca'] = "Défini si on peut appeler directement le RVI via une extension."; //copied from fr-fr $text['description-direct_dial']['fr-fr'] = "Défini si on peut appeler directement le SVI via une extension."; $text['description-direct_dial']['he-il'] = ""; $text['description-direct_dial']['it-it'] = "Definire se i chiamanti possono chiamare direttamente gli interni registrati."; diff --git a/app/provision/index.php b/app/provision/index.php index aba0070ba6..c2e9874493 100644 --- a/app/provision/index.php +++ b/app/provision/index.php @@ -137,26 +137,23 @@ } //get the domain_uuid - $sql = "select device_uuid, domain_uuid from v_devices "; + $sql = "select d.device_uuid, d.domain_uuid, n.domain_name "; + $sql .= "from v_devices as d, v_domains as n "; $sql .= "where device_mac_address = :mac "; + $sql .= "and d.domain_uuid = n.domain_uuid; "; $parameters['mac'] = $mac; $database = new database; $row = $database->select($sql, $parameters, 'row'); if (is_array($row)) { - $domain_uuid = $row['domain_uuid']; $device_uuid = $row['device_uuid']; + $domain_uuid = $row['domain_uuid']; + $domain_name = $row['domain_name']; $_SESSION['domain_uuid'] = $domain_uuid; } unset($sql, $parameters); //get the domain_name and domain_uuid - if ($_SESSION['provision']['http_domain_filter']['boolean'] == "false") { - - //get the domain name - $domain_name = $_SESSION['domains'][$domain_uuid]['domain_name']; - - } - else { + if ($_SESSION['provision']['http_domain_filter']['boolean'] == "true") { //get the domain_name $domain_array = explode(":", $_SERVER["HTTP_HOST"]); $domain_name = $domain_array[0]; diff --git a/app/provision/resources/classes/provision.php b/app/provision/resources/classes/provision.php index a5e702093f..74d6b8c816 100644 --- a/app/provision/resources/classes/provision.php +++ b/app/provision/resources/classes/provision.php @@ -295,11 +295,12 @@ include "root.php"; $provision = array(); if (is_array($_SESSION['provision'])) { foreach ($_SESSION['provision'] as $key => $val) { - if (strlen($val['var']) > 0) { $value = $val['var']; } - if (strlen($val['text']) > 0) { $value = $val['text']; } - if (strlen($val['boolean']) > 0) { $value = $val['boolean']; } - if (strlen($val['numeric']) > 0) { $value = $val['numeric']; } - if (strlen($value) > 0) { $provision[$key] = $value; } + if (isset($val['var'])) { $value = $val['var']; } + elseif (isset($val['text'])) { $value = $val['text']; } + elseif (isset($val['boolean'])) { $value = $val['boolean']; } + elseif (isset($val['numeric'])) { $value = $val['numeric']; } + elseif (is_array($val) && !is_uuid($val['uuid'])) { $value = $val; } + if (isset($value)) { $provision[$key] = $value; } unset($value); } } diff --git a/app/recordings/app_config.php b/app/recordings/app_config.php index a0f039be2c..81ebbcfbab 100644 --- a/app/recordings/app_config.php +++ b/app/recordings/app_config.php @@ -16,8 +16,8 @@ $apps[$x]['description']['de-de'] = "Aufnahmen verwalten. Diese werden hauptsächlich für Anrufzentralen (IVR) verwendet."; $apps[$x]['description']['es-cl'] = "Administrador de grabaciones, utilizadas primordialmente con un IVR"; $apps[$x]['description']['es-mx'] = ""; - $apps[$x]['description']['fr-ca'] = ""; - $apps[$x]['description']['fr-fr'] = "Gestion des enregistrements principalement utilisés dans les IVR"; + $apps[$x]['description']['fr-ca'] = "Gestion des guides vocaux principalement utilisés dans les RVI"; + $apps[$x]['description']['fr-fr'] = "Gestion des guides vocaux principalement utilisés dans les RVI"; $apps[$x]['description']['he-il'] = ""; $apps[$x]['description']['it-it'] = ""; $apps[$x]['description']['nl-nl'] = "Beheer opnamen met name gebruikt in een IVR."; @@ -92,8 +92,7 @@ $apps[$x]['default_settings'][$y]['default_setting_value'] = "base64"; $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; $apps[$x]['default_settings'][$y]['default_setting_description'] = ""; - - $y=0; + $y++; $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "960828e1-8d6b-4381-86c4-fa03fce4276a"; $apps[$x]['default_settings'][$y]['default_setting_category'] = "recordings"; $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "recording_max_length"; diff --git a/app/recordings/app_languages.php b/app/recordings/app_languages.php index fb7c7d59d3..231178c9fb 100644 --- a/app/recordings/app_languages.php +++ b/app/recordings/app_languages.php @@ -9,8 +9,8 @@ $text['title-edit']['de-ch'] = "Aufnahmen"; //copied from de-de $text['title-edit']['de-de'] = "Aufnahmen"; $text['title-edit']['es-cl'] = "Grabación"; $text['title-edit']['es-mx'] = "Grabación"; //copied from es-cl -$text['title-edit']['fr-ca'] = "Guide"; //copied from fr-fr -$text['title-edit']['fr-fr'] = "Guide"; +$text['title-edit']['fr-ca'] = "Guides vocaux"; +$text['title-edit']['fr-fr'] = "Guides vocaux"; $text['title-edit']['he-il'] = "קובץ מדיה"; $text['title-edit']['it-it'] = "Registrazioni Audio"; $text['title-edit']['nl-nl'] = "Opname"; @@ -30,8 +30,8 @@ $text['title-add']['de-ch'] = "Aufnahme hinzufügen"; //copied from de-de $text['title-add']['de-de'] = "Aufnahme hinzufügen"; $text['title-add']['es-cl'] = "Agregar Grabación"; $text['title-add']['es-mx'] = "Agregar Grabación"; //copied from es-cl -$text['title-add']['fr-ca'] = "Ajouter un Guide"; //copied from fr-fr -$text['title-add']['fr-fr'] = "Ajouter un Guide"; +$text['title-add']['fr-ca'] = "Ajouter un guide vocal"; //copied from fr-fr +$text['title-add']['fr-fr'] = "Ajouter un guide vocal"; $text['title-add']['he-il'] = "הוסף קבצי מדיה"; $text['title-add']['it-it'] = "Inserire Registrazione"; $text['title-add']['nl-nl'] = "Voeg opname toe"; @@ -51,8 +51,8 @@ $text['title-recordings']['de-ch'] = "Aufnahmen"; //copied from de-de $text['title-recordings']['de-de'] = "Aufnahmen"; $text['title-recordings']['es-cl'] = "Grabaciones"; $text['title-recordings']['es-mx'] = "Grabaciones"; //copied from es-cl -$text['title-recordings']['fr-ca'] = "Guides Vocaux"; //copied from fr-fr -$text['title-recordings']['fr-fr'] = "Guides Vocaux"; +$text['title-recordings']['fr-ca'] = "Guides vocaux"; //copied from fr-fr +$text['title-recordings']['fr-fr'] = "Guides vocaux"; $text['title-recordings']['he-il'] = "קבצי מדיה"; $text['title-recordings']['it-it'] = "Registrazioni"; $text['title-recordings']['nl-nl'] = "Opnamen"; @@ -72,8 +72,8 @@ $text['message-uploaded']['de-ch'] = "Datei hochgeladen"; //copied from de-de $text['message-uploaded']['de-de'] = "Datei hochgeladen"; $text['message-uploaded']['es-cl'] = "Subida de Archivos"; $text['message-uploaded']['es-mx'] = "Subida de Archivos"; //copied from es-cl -$text['message-uploaded']['fr-ca'] = "Fichier Téléchargé"; //copied from fr-fr -$text['message-uploaded']['fr-fr'] = "Fichier Téléchargé"; +$text['message-uploaded']['fr-ca'] = "Fichier téléchargé"; //copied from fr-fr +$text['message-uploaded']['fr-fr'] = "Fichier téléchargé"; $text['message-uploaded']['he-il'] = "הקובץ הועלה"; $text['message-uploaded']['it-it'] = "File Caricato"; $text['message-uploaded']['nl-nl'] = "Bestand opsturen"; @@ -114,8 +114,8 @@ $text['label-upload']['de-ch'] = "Dateipfad"; //copied from de-de $text['label-upload']['de-de'] = "Dateipfad"; $text['label-upload']['es-cl'] = "Archivo a subir"; $text['label-upload']['es-mx'] = "Archivo a subir"; //copied from es-cl -$text['label-upload']['fr-ca'] = "Fichier à déposer"; //copied from fr-fr -$text['label-upload']['fr-fr'] = "Fichier à déposer"; +$text['label-upload']['fr-ca'] = "Chemin du fichier"; //copied from fr-fr +$text['label-upload']['fr-fr'] = "Chemin du fichier"; $text['label-upload']['he-il'] = "נתיב הקובץ"; $text['label-upload']['it-it'] = "Percorso File"; $text['label-upload']['nl-nl'] = "Bestandspad"; @@ -240,8 +240,8 @@ $text['label-file_size']['de-ch'] = "Dateigröße"; //copied from de-de $text['label-file_size']['de-de'] = "Dateigröße"; $text['label-file_size']['es-cl'] = "Tamaño del archivo"; $text['label-file_size']['es-mx'] = "Tamaño del archivo"; //copied from es-cl -$text['label-file_size']['fr-ca'] = "Taille de Fichier"; //copied from fr-fr -$text['label-file_size']['fr-fr'] = "Taille de Fichier"; +$text['label-file_size']['fr-ca'] = "Taille du fichier"; //copied from fr-fr +$text['label-file_size']['fr-fr'] = "Taille du fichier"; $text['label-file_size']['he-il'] = "גודל קובץ"; $text['label-file_size']['it-it'] = "Dimensioni File"; $text['label-file_size']['nl-nl'] = "Bestandsomvang"; @@ -261,8 +261,8 @@ $text['label-size']['de-ch'] = "Dateigröße"; //copied from de-de $text['label-size']['de-de'] = "Dateigröße"; $text['label-size']['es-cl'] = "Tamaño del archivo"; $text['label-size']['es-mx'] = "Tamaño del archivo"; //copied from es-cl -$text['label-size']['fr-ca'] = "Taille de Fichier"; //copied from fr-fr -$text['label-size']['fr-fr'] = "Taille de Fichier"; +$text['label-size']['fr-ca'] = "Taille du fichier"; //copied from fr-fr +$text['label-size']['fr-fr'] = "Taille du fichier"; $text['label-size']['he-il'] = "גודל"; $text['label-size']['it-it'] = "Dimensioni File"; $text['label-size']['nl-nl'] = "Afmetingen"; @@ -366,8 +366,8 @@ $text['header']['de-ch'] = "Aufnahme hochladen"; //copied from de-de $text['header']['de-de'] = "Aufnahme hochladen"; $text['header']['es-cl'] = "Subir Grabación"; $text['header']['es-mx'] = "Subir Grabación"; //copied from es-cl -$text['header']['fr-ca'] = "Télécharger Enregistrement"; //copied from fr-fr -$text['header']['fr-fr'] = "Télécharger Enregistrement"; +$text['header']['fr-ca'] = "Télécharger l'enregistrement"; //copied from fr-fr +$text['header']['fr-fr'] = "Télécharger l'enregistrement"; $text['header']['he-il'] = "העלאת הקלטה"; $text['header']['it-it'] = "Caricare Registrazione"; $text['header']['nl-nl'] = "Opsturen opname"; @@ -387,8 +387,8 @@ $text['description-recording']['de-ch'] = "Ein Name für die Aufnahme."; //copie $text['description-recording']['de-de'] = "Ein Name für die Aufnahme."; $text['description-recording']['es-cl'] = "Nombre de la grabación."; $text['description-recording']['es-mx'] = "Nombre de la grabación."; //copied from es-cl -$text['description-recording']['fr-ca'] = "Nom de l'enregistrement (non parsé)."; //copied from fr-fr -$text['description-recording']['fr-fr'] = "Nom de l'enregistrement (non parsé)."; +$text['description-recording']['fr-ca'] = "Nom de l'enregistrement (non analysé)."; //copied from fr-fr +$text['description-recording']['fr-fr'] = "Nom de l'enregistrement (non analysé)."; $text['description-recording']['he-il'] = "שם להקלטה לא מנותח."; $text['description-recording']['it-it'] = "Un nome per la registrazione (non parsato)."; $text['description-recording']['nl-nl'] = "Een naam voor de opname (niet gecontroleerd)."; diff --git a/app/recordings/app_menu.php b/app/recordings/app_menu.php index f0d3e45c06..9bcb6ed611 100644 --- a/app/recordings/app_menu.php +++ b/app/recordings/app_menu.php @@ -8,8 +8,8 @@ $apps[$x]['menu'][$y]['title']['de-de'] = "Aufnahmen"; $apps[$x]['menu'][$y]['title']['es-cl'] = "Grabaciones"; $apps[$x]['menu'][$y]['title']['es-mx'] = ""; - $apps[$x]['menu'][$y]['title']['fr-ca'] = ""; - $apps[$x]['menu'][$y]['title']['fr-fr'] = "Guides Vocaux"; + $apps[$x]['menu'][$y]['title']['fr-ca'] = "Guides vocaux"; + $apps[$x]['menu'][$y]['title']['fr-fr'] = "Guides vocaux"; $apps[$x]['menu'][$y]['title']['he-il'] = ""; $apps[$x]['menu'][$y]['title']['it-it'] = "Registrazioni Audio"; $apps[$x]['menu'][$y]['title']['nl-nl'] = "Opnamen"; diff --git a/app/registrations/registrations.php b/app/registrations/registrations.php index ece59bf31e..97527b380d 100644 --- a/app/registrations/registrations.php +++ b/app/registrations/registrations.php @@ -191,13 +191,28 @@ foreach ($registrations as $row) { $matches = preg_grep('/'.$search.'/i', $row); if ($matches != false) { + + //prepare the user variable $user = explode('@', $row['user']); if ($user[1] == $_SESSION['domains'][$_SESSION['domain_uuid']]['domain_name']) { - $user = "".escape($row['user'])."".escape($user[0])."@..."; + $user = "".escape($row['user'])."".escape($user[0]).""; } else { $user = escape($row['user']); } + + //reformat the status + $patterns = array(); + $patterns[] = '/(\d{4})-(\d{2})-(\d{2})/'; + $patterns[] = '/(\d{2}):(\d{2}):(\d{2})/'; + $patterns[] = '/unknown/'; + $patterns[] = '/exp\(/'; + $patterns[] = '/\(/'; + $patterns[] = '/\)/'; + $patterns[] = '/\s+/'; + $status = preg_replace($patterns, ' ', $row['status']); + + //show the content echo "\n"; echo " \n"; echo " \n"; @@ -207,14 +222,14 @@ echo " \n"; echo " \n"; echo " \n"; - echo " ".$user."\n"; - echo " ".escape($row['agent'])."\n"; + echo " ".$user."\n"; + echo " ".escape($row['agent'])."\n"; echo " ".escape(explode('"',$row['contact'])[1])."\n"; echo " ".escape($row['lan-ip'])."\n"; echo " ".escape($row['network-ip'])."\n"; echo " ".escape($row['network-port'])."\n"; echo " ".escape($row['host'])."\n"; - echo " ".escape($row['status'])."\n"; + echo " ".escape($status)."\n"; echo " ".escape($row['ping-time'])."\n"; echo " ".escape($row['sip_profile_name'])."\n"; echo " \n"; diff --git a/app/scripts/resources/scripts/app/feature_event/index.lua b/app/scripts/resources/scripts/app/feature_event/index.lua index d0d38d3930..a8aa898f60 100644 --- a/app/scripts/resources/scripts/app/feature_event/index.lua +++ b/app/scripts/resources/scripts/app/feature_event/index.lua @@ -16,7 +16,7 @@ -- -- The Initial Developer of the Original Code is -- Mark J Crane --- Copyright (C) 2013 - 2014 +-- Copyright (C) 2013 - 2021 -- the Initial Developer. All Rights Reserved. -- -- Contributor(s): @@ -72,11 +72,11 @@ end --get the events - --if (user == nil) then + --if (user == nil) then --serialize the data for the console --freeswitch.consoleLog("notice","[events] " .. event:serialize("xml") .. "\n"); --freeswitch.consoleLog("notice","[evnts] " .. event:serialize("json") .. "\n"); - + --get the event variables user = event:getHeader("user"); host = event:getHeader("host"); @@ -87,7 +87,7 @@ action_name = event:getHeader("Action-Name"); action_value = event:getHeader("Action-Value") ring_count = event:getHeader("ringCount") - + --send to the log --freeswitch.consoleLog("notice","[events] user: " .. user .. "\n"); --freeswitch.consoleLog("notice","[events] host: " .. host .. "\n"); @@ -96,7 +96,7 @@ --if (action_name ~= nil) then freeswitch.consoleLog("notice","[events] action_name: " .. action_name .. "\n"); end --if (action_value ~= nil) then freeswitch.consoleLog("notice","[events] action_value: " .. action_value .. "\n"); end --end - + --get the domain uuid from the host local sql = "select * from v_domains "; sql = sql .. "where domain_name = :domain_name "; @@ -112,19 +112,20 @@ if (user ~= nil and domain_name ~= nil) then do_not_disturb, forward_all_enabled, forward_all_destination, forward_busy_enabled, forward_busy_destination, forward_no_answer_enabled, forward_no_answer_destination, call_timeout = notify.get_db_values(user, domain_name) end - + --get sip profile if (user ~= nil and host ~= nil) then sip_profile = notify.get_profile(user, host); end - + --DND - + --DND enabled if (feature_action == "SetDoNotDisturb" and feature_enabled == "true" and sip_profile ~= nil) then --set a variable dial_string = "error/user_busy"; do_not_disturb = "true"; + --update the extension sql = "update v_extensions set "; sql = sql .. "do_not_disturb = :do_not_disturb, "; @@ -152,16 +153,16 @@ dbh:query(sql, params); end end - + --send notify to the phone notify.dnd(user, host, sip_profile, do_not_disturb); - end --DND disabled if (feature_action == "SetDoNotDisturb" and feature_enabled == "false" and sip_profile ~= nil ) then --set a variable do_not_disturb = "false"; + --update the extension sql = "update v_extensions set "; sql = sql .. "do_not_disturb = :do_not_disturb, "; @@ -177,11 +178,11 @@ --send notify to the phone notify.dnd(user, host, sip_profile, do_not_disturb); - + end --Call Forward - + --Call Formward All enabled if (feature_action == "SetCallForward" and feature_enabled == "true" and action_name == "forward_immediate" and sip_profile ~= nil) then --set a variable @@ -189,48 +190,11 @@ forward_all_enabled = "true"; forward_immediate_destination = action_value; forward_immediate_enabled = "true"; - - --get the caller_id for outbound call - local forward_caller_id = "" - if not empty(forward_caller_id_uuid) then - local sql = "select destination_number, destination_description,".. - "destination_caller_id_number, destination_caller_id_name " .. - "from v_destinations where domain_uuid = :domain_uuid and " .. - "destination_type = 'inbound' and destination_uuid = :destination_uuid"; - local params = {domain_uuid = domain_uuid; destination_uuid = forward_caller_id_uuid} - if (debug["sql"]) then - freeswitch.consoleLog("notice", "[feature_event] "..sql.."; params:" .. json.encode(params) .. "\n"); - end - local row = dbh:first_row(sql, params) - if row then - local caller_id_number = row.destination_caller_id_number - if empty(caller_id_number) then - caller_id_number = row.destination_number - end - - local caller_id_name = row.destination_caller_id_name - if empty(caller_id_name) then - caller_id_name = row.destination_description - end - - if not empty(caller_id_number) then - forward_caller_id = forward_caller_id .. - ",outbound_caller_id_number=" .. caller_id_number .. - ",origination_caller_id_number=" .. caller_id_number - end - - if not empty(caller_id_name) then - forward_caller_id = forward_caller_id .. - ",outbound_caller_id_name=" .. caller_id_name .. - ",origination_caller_id_name=" .. caller_id_name - end - end - end - + --set the dial string if feature_enabled == "true" then local destination_extension, destination_number_alias - + --used for number_alias to get the correct user local sql = "select extension, number_alias from v_extensions "; sql = sql .. "where domain_uuid = :domain_uuid "; @@ -244,47 +208,46 @@ destination_extension = row.extension; destination_number_alias = row.number_alias or ''; end); - + if (destination_user ~= nil) then cmd = "user_exists id ".. destination_user .." "..domain_name; else cmd = "user_exists id ".. forward_all_destination .." "..domain_name; end local user_exists = trim(api:executeString(cmd)); - end - - --update the extension - sql = "update v_extensions set "; - sql = sql .. "do_not_disturb = 'false', "; - sql = sql .. "forward_all_enabled = 'true', "; - sql = sql .. "forward_all_destination = :forward_all_destination, "; - sql = sql .. "dial_string = null "; - sql = sql .. "where domain_uuid = :domain_uuid "; - sql = sql .. "and extension_uuid = :extension_uuid "; - local params = {domain_uuid = domain_uuid, extension_uuid = extension_uuid, forward_all_destination = forward_all_destination}; - if (debug["sql"]) then - freeswitch.consoleLog("notice", "[feature_event] "..sql.."; params:" .. json.encode(params) .. "\n"); - end - dbh:query(sql, params); - - --update follow me - if (follow_me_uuid ~= nil) then - if (string.len(follow_me_uuid) > 0) then - local sql = "update v_follow_me set "; - sql = sql .. "follow_me_enabled = 'false' "; - sql = sql .. "where domain_uuid = :domain_uuid "; - sql = sql .. "and follow_me_uuid = :follow_me_uuid "; - local params = {domain_uuid = domain_uuid, follow_me_uuid = follow_me_uuid}; - if (debug["sql"]) then - freeswitch.consoleLog("notice", "[feature_event] "..sql.."; params:" .. json.encode(params) .. "\n"); - end - dbh:query(sql, params); + + --update the extension + sql = "update v_extensions set "; + sql = sql .. "do_not_disturb = 'false', "; + sql = sql .. "forward_all_enabled = 'true', "; + sql = sql .. "forward_all_destination = :forward_all_destination, "; + sql = sql .. "dial_string = null "; + sql = sql .. "where domain_uuid = :domain_uuid "; + sql = sql .. "and extension_uuid = :extension_uuid "; + local params = {domain_uuid = domain_uuid, extension_uuid = extension_uuid, forward_all_destination = forward_all_destination}; + if (debug["sql"]) then + freeswitch.consoleLog("notice", "[feature_event] "..sql.."; params:" .. json.encode(params) .. "\n"); + end + dbh:query(sql, params); + + --update follow me + if (follow_me_uuid ~= nil) then + if (string.len(follow_me_uuid) > 0) then + local sql = "update v_follow_me set "; + sql = sql .. "follow_me_enabled = 'false' "; + sql = sql .. "where domain_uuid = :domain_uuid "; + sql = sql .. "and follow_me_uuid = :follow_me_uuid "; + local params = {domain_uuid = domain_uuid, follow_me_uuid = follow_me_uuid}; + if (debug["sql"]) then + freeswitch.consoleLog("notice", "[feature_event] "..sql.."; params:" .. json.encode(params) .. "\n"); end + dbh:query(sql, params); end - - --send notify to the phone - notify.forward_immediate(user, host, sip_profile, forward_immediate_enabled, forward_immediate_destination); + end + + --send notify to the phone + notify.forward_immediate(user, host, sip_profile, forward_immediate_enabled, forward_immediate_destination); end --Call Formward All disable @@ -294,6 +257,7 @@ forward_all_enabled = "false"; forward_immediate_enabled = "false"; forward_immediate_destination = action_value; + --update the extension sql = "update v_extensions set "; sql = sql .. "do_not_disturb = 'false', "; @@ -311,19 +275,20 @@ freeswitch.consoleLog("notice", "[feature_event] "..sql.."; params:" .. json.encode(params) .. "\n"); end dbh:query(sql, params); - - --send notify to the phone - if (forward_immediate_destination == nil) then - forward_immediate_destination = " "; - end - notify.forward_immediate(user, host, sip_profile, forward_immediate_enabled, forward_immediate_destination); + + --send notify to the phone + if (forward_immediate_destination == nil) then + forward_immediate_destination = " "; + end + notify.forward_immediate(user, host, sip_profile, forward_immediate_enabled, forward_immediate_destination); end - + --Call Formward BUSY enable if (feature_action == "SetCallForward" and feature_enabled == "true" and action_name == "forward_busy" and sip_profile ~= nil) then --set a variable forward_busy_destination = action_value; forward_busy_enabled = "true"; + --update the extension sql = "update v_extensions set "; sql = sql .. "do_not_disturb = 'false', "; @@ -336,16 +301,17 @@ freeswitch.consoleLog("notice", "[feature_event] "..sql.."; params:" .. json.encode(params) .. "\n"); end dbh:query(sql, params); - + --send notify to the phone notify.forward_busy(user, host, sip_profile, forward_busy_enabled, forward_busy_destination); end - + --Call Formward BUSY disable if (feature_action == "SetCallForward" and feature_enabled == "false" and action_name == "forward_busy" and sip_profile ~= nil) then --set a variable forward_busy_destination = action_value; forward_busy_enabled = "false"; + --update the extension sql = "update v_extensions set "; sql = sql .. "do_not_disturb = 'false', "; @@ -362,7 +328,7 @@ freeswitch.consoleLog("notice", "[feature_event] "..sql.."; params:" .. json.encode(params) .. "\n"); end dbh:query(sql, params); - + --send notify to the phone notify.forward_busy(user, host, sip_profile, forward_busy_enabled, forward_busy_destination); end @@ -373,6 +339,7 @@ forward_no_answer_destination = action_value; forward_no_answer_enabled = "true"; call_timeout = ring_count * 6; + --update the extension sql = "update v_extensions set "; sql = sql .. "do_not_disturb = 'false', "; @@ -390,12 +357,13 @@ --send notify to the phone notify.forward_no_answer(user, host, sip_profile, forward_no_answer_enabled, forward_no_answer_destination, ring_count); end - + --Call Formward NO ANSWER disable if (feature_action == "SetCallForward" and feature_enabled == "false" and action_name == "forward_no_answer" and sip_profile ~= nil) then --set a variable forward_no_answer_destination = action_value; forward_no_answer_enabled = "false"; + --update the extension sql = "update v_extensions set "; sql = sql .. "do_not_disturb = 'false', "; @@ -420,19 +388,19 @@ --No feature event (phone boots): Send all values if (feature_enabled == nil) then --Do Not Disturb - --notify.dnd(user, host, sip_profile, do_not_disturb); + --notify.dnd(user, host, sip_profile, do_not_disturb); --Forward all - forward_immediate_enabled = forward_all_enabled; - forward_immediate_destination = forward_all_destination; - --notify.forward_immediate(user, host, sip_profile, forward_immediate_enabled, forward_immediate_destination); + forward_immediate_enabled = forward_all_enabled; + forward_immediate_destination = forward_all_destination; + --notify.forward_immediate(user, host, sip_profile, forward_immediate_enabled, forward_immediate_destination); --Forward busy - --notify.forward_busy(user, host, sip_profile, forward_busy_enabled, forward_busy_destination); + --notify.forward_busy(user, host, sip_profile, forward_busy_enabled, forward_busy_destination); --Forward No Answer - ring_count = math.ceil (call_timeout / 6); - --notify.forward_no_answer(user, host, sip_profile, forward_no_answer_enabled, forward_no_answer_destination, ring_count); + ring_count = math.ceil (call_timeout / 6); + --notify.forward_no_answer(user, host, sip_profile, forward_no_answer_enabled, forward_no_answer_destination, ring_count); notify.init(user, host, sip_profile, @@ -445,9 +413,9 @@ ring_count, do_not_disturb); end - + -- feature_event_notify.init(user, host, sip_profile, forward_immediate_enabled, forward_immediate_destination, forward_busy_enabled, forward_busy_destination, forward_no_answer_enabled, forward_no_answer_destination, ring_count, do_not_disturb) - + --clear the cache if (feature_enabled ~= nil) then cache.del("directory:"..user.."@"..host) diff --git a/app/scripts/resources/scripts/app/feature_event/resources/functions/feature_event_notify.lua b/app/scripts/resources/scripts/app/feature_event/resources/functions/feature_event_notify.lua index e5769cada0..e2c145b984 100644 --- a/app/scripts/resources/scripts/app/feature_event/resources/functions/feature_event_notify.lua +++ b/app/scripts/resources/scripts/app/feature_event/resources/functions/feature_event_notify.lua @@ -39,7 +39,6 @@ function feature_event_notify.get_db_values(user, domain_name) forward_no_answer_destination = row.forward_no_answer_destination; forward_user_not_registered_enabled = row.forward_user_not_registered_enabled; forward_user_not_registered_destination = row.forward_user_not_registered_destination; - forward_caller_id_uuid = row.forward_caller_id_uuid; toll_allow = row.toll_allow call_timeout = row.call_timeout --freeswitch.consoleLog("NOTICE", "[feature_event] extension "..row.extension.."\n"); diff --git a/app/scripts/resources/scripts/app/follow_me/index.lua b/app/scripts/resources/scripts/app/follow_me/index.lua index 883ed790ee..5713d65a4d 100644 --- a/app/scripts/resources/scripts/app/follow_me/index.lua +++ b/app/scripts/resources/scripts/app/follow_me/index.lua @@ -28,6 +28,7 @@ if (session:ready()) then domain_name = session:getVariable("domain_name"); domain_uuid = session:getVariable("domain_uuid"); + uuid = session:getVariable("uuid"); destination_number = session:getVariable("destination_number"); caller_id_name = session:getVariable("caller_id_name"); caller_id_number = session:getVariable("caller_id_number"); @@ -142,7 +143,7 @@ --get the follow me data if (follow_me_uuid ~= nil) then local sql = "select cid_name_prefix, cid_number_prefix, "; - sql = sql .. "follow_me_enabled, follow_me_caller_id_uuid, follow_me_ignore_busy "; + sql = sql .. "follow_me_enabled, follow_me_ignore_busy "; sql = sql .. "from v_follow_me "; sql = sql .. "where domain_uuid = :domain_uuid "; sql = sql .. "and follow_me_uuid = :follow_me_uuid; "; @@ -154,7 +155,6 @@ caller_id_name_prefix = row["cid_name_prefix"]; caller_id_number_prefix = row["cid_number_prefix"]; follow_me_enabled = row["follow_me_enabled"]; - follow_me_caller_id_uuid = row["follow_me_caller_id_uuid"]; follow_me_ignore_busy = row["follow_me_ignore_busy"]; end); --dbh:query(sql, params, function(row); @@ -330,8 +330,23 @@ --get the extension_uuid cmd = "user_data ".. destination_number .."@"..domain_name.." var extension_uuid"; extension_uuid = trim(api:executeString(cmd)); + + local record_session = ""; + --if session is already recording then skip + if (session:getVariable("record_session") ~= "true") then + local cmd = "user_data "..destination_number.."@"..domain_name.." var user_record"; + local user_record = api:executeString(cmd); + if (user_record == "all" or user_record == call_direction) then + local recordings_dir = session:getVariable("recordings_dir"); + local record_ext = session:getVariable("record_ext") or "wav"; + local record_name = uuid.."."..record_ext; + local record_path = recordings_dir .. "/" .. domain_name .. "/archive/" .. os.date("%Y/%b/%d"); + record_session = ",api_on_answer='uuid_record "..uuid.." start ".. record_path .. "/" .. record_name .. "',record_path='".. record_path .."',record_name="..record_name; + end + end + --send to user - local dial_string_to_user = "[sip_invite_domain="..domain_name..",call_direction="..call_direction..","..group_confirm..","..timeout_name.."="..destination_timeout..","..delay_name.."="..destination_delay..",dialed_extension=" .. row.destination_number .. ",extension_uuid="..extension_uuid .. "]user/" .. row.destination_number .. "@" .. domain_name; + local dial_string_to_user = "[sip_invite_domain="..domain_name..",call_direction="..call_direction..","..group_confirm..","..timeout_name.."="..destination_timeout..","..delay_name.."="..destination_delay..",dialed_extension=" .. row.destination_number .. ",extension_uuid="..extension_uuid..record_session.."]user/" .. row.destination_number .. "@" .. domain_name; dial_string = dial_string_to_user; elseif (tonumber(destination_number) == nil) then --sip uri @@ -348,23 +363,6 @@ toll_allow = ''; end - --get the destination caller id name and number - if (follow_me_caller_id_uuid and follow_me_caller_id_uuid ~= '') then - local sql = "select destination_uuid, destination_number, destination_description, destination_caller_id_name, destination_caller_id_number "; - sql = sql .. "from v_destinations "; - sql = sql .. "where domain_uuid = :domain_uuid "; - sql = sql .. "and destination_uuid = :destination_uuid "; - sql = sql .. "order by destination_number asc "; - local params = {domain_uuid = domain_uuid, destination_uuid = follow_me_caller_id_uuid}; - if (debug["sql"]) then - freeswitch.consoleLog("notice", "SQL:" .. sql .. "; params: " .. json.encode(params) .. "\n"); - end - status = dbh:query(sql, params, function(field) - caller_id_name = field["destination_caller_id_name"]; - caller_id_number = field["destination_caller_id_number"]; - end); - end - --check if the user exists if tonumber(caller_id_number) ~= nil then cmd = "user_exists id ".. caller_id_number .." "..domain_name; diff --git a/app/scripts/resources/scripts/app/provision/index.lua b/app/scripts/resources/scripts/app/provision/index.lua index 3256e785d7..05a2c78e58 100644 --- a/app/scripts/resources/scripts/app/provision/index.lua +++ b/app/scripts/resources/scripts/app/provision/index.lua @@ -193,6 +193,7 @@ event:addHeader('content-type', 'application/simple-message-summary'); --check sync event:addHeader('event-string', 'check-sync;reboot='..reboot); + --event:addHeader('event-string', 'resync'); --send the event event:fire(); end); @@ -249,6 +250,7 @@ event:addHeader('content-type', 'application/simple-message-summary'); --check sync event:addHeader('event-string', 'check-sync;reboot='..reboot); + --event:addHeader('event-string', 'resync'); --send the event event:fire(); end diff --git a/app/scripts/resources/scripts/app/ring_groups/index.lua b/app/scripts/resources/scripts/app/ring_groups/index.lua index cfef10f1b4..61d72800cb 100644 --- a/app/scripts/resources/scripts/app/ring_groups/index.lua +++ b/app/scripts/resources/scripts/app/ring_groups/index.lua @@ -325,6 +325,7 @@ if (debug["sql"]) then freeswitch.consoleLog("notice", "[voicemail] SQL: " .. sql .. "; params:" .. json.encode(params) .. "\n"); end + dbh = Database.new('system'); dbh:query(sql, params, function(row) subject = row["template_subject"]; body = row["template_body"]; @@ -882,6 +883,9 @@ end end + --release dbh before bridge + dbh:release(); + --session execute if (session:ready()) then --set the variables @@ -1006,6 +1010,7 @@ session:execute(ring_group_timeout_app, ring_group_timeout_data); end else + dbh = Database.new('system'); local sql = "SELECT ring_group_timeout_app, ring_group_timeout_data FROM v_ring_groups "; sql = sql .. "where ring_group_uuid = :ring_group_uuid"; local params = {ring_group_uuid = ring_group_uuid}; diff --git a/app/scripts/resources/scripts/app/voicemail/resources/functions/record_message.lua b/app/scripts/resources/scripts/app/voicemail/resources/functions/record_message.lua index a459da7b8a..93a61d9c68 100644 --- a/app/scripts/resources/scripts/app/voicemail/resources/functions/record_message.lua +++ b/app/scripts/resources/scripts/app/voicemail/resources/functions/record_message.lua @@ -587,7 +587,7 @@ --if the recording is below the minimal length then re-record the message if (message_length > 2) then - --continue + session:setVariable("voicemail_message_seconds", message_length); else if (session:ready()) then --your recording is below the minimal acceptable length, please try again diff --git a/app/scripts/resources/scripts/app/xml_handler/resources/scripts/configuration/callcenter.conf.lua b/app/scripts/resources/scripts/app/xml_handler/resources/scripts/configuration/callcenter.conf.lua index 01a404abb5..8d747bd7c4 100644 --- a/app/scripts/resources/scripts/app/xml_handler/resources/scripts/configuration/callcenter.conf.lua +++ b/app/scripts/resources/scripts/app/xml_handler/resources/scripts/configuration/callcenter.conf.lua @@ -180,16 +180,21 @@ agent_wrap_up_time = row.agent_wrap_up_time; agent_reject_delay_time = row.agent_reject_delay_time; agent_busy_delay_time = row.agent_busy_delay_time; + agent_record = row.agent_record; --get and then set the complete agent_contact with the call_timeout and when necessary confirm --confirm = "group_confirm_file=custom/press_1_to_accept_this_call.wav,group_confirm_key=1"; --if you change this variable also change app/call_center/call_center_agent_edit.php confirm = "group_confirm_file=ivr/ivr-accept_reject_voicemail.wav,group_confirm_key=1,group_confirm_read_timeout=2000,leg_timeout="..agent_call_timeout; + local record = ""; + if (agent_record == "true") then + record = string.format(",execute_on_pre_bridge='record_session %s/%s/archive/${strftime(%%Y)}/${strftime(%%b)}/${strftime(%%d)}/${uuid}.${record_ext}'", recordings_dir, domain_name) + end if (string.find(agent_contact, '}') == nil) then --not found if (string.find(agent_contact, 'sofia/gateway') == nil) then --add the call_timeout - agent_contact = "{call_timeout="..agent_call_timeout..",domain_name="..domain_name..",domain_uuid="..domain_uuid..",extension_uuid="..extension_uuid..",sip_h_caller_destination=${caller_destination}}"..agent_contact; + agent_contact = "{call_timeout="..agent_call_timeout..",domain_name="..domain_name..",domain_uuid="..domain_uuid..",extension_uuid="..extension_uuid..",sip_h_caller_destination=${caller_destination}"..record.."}"..agent_contact; else --add the call_timeout and confirm agent_contact = "{"..confirm..",call_timeout="..agent_call_timeout..",domain_name="..domain_name..",domain_uuid="..domain_uuid..",sip_h_caller_destination=${caller_destination}}"..agent_contact; diff --git a/app/scripts/resources/scripts/app/xml_handler/resources/scripts/directory/directory.lua b/app/scripts/resources/scripts/app/xml_handler/resources/scripts/directory/directory.lua index b02e0fc606..89a5b3d044 100644 --- a/app/scripts/resources/scripts/app/xml_handler/resources/scripts/directory/directory.lua +++ b/app/scripts/resources/scripts/app/xml_handler/resources/scripts/directory/directory.lua @@ -312,6 +312,7 @@ password = row.password; mwi_account = row.mwi_account; auth_acl = row.auth_acl; + --variables sip_from_user = row.extension; sip_from_number = (#number_alias > 0) and number_alias or row.extension; @@ -412,6 +413,25 @@ end); end + --get the extension settings from the database + if (extension_uuid) then + local sql = "SELECT * FROM v_extension_settings " + .. "WHERE extension_uuid = :extension_uuid " + .. "and extension_setting_enabled = 'true' "; + local params = {extension_uuid=extension_uuid}; + if (debug["sql"]) then + freeswitch.consoleLog("notice", "[xml_handler] SQL: " .. sql .. "; params:" .. json.encode(params) .. "\n"); + end + extension_settings = {} + dbh:query(sql, params, function(row) + table.insert(extension_settings, { + extension_setting_type = row.extension_setting_type, + extension_setting_name = row.extension_setting_name, + extension_setting_value = row.extension_setting_value + }); + end); + end + --get the voicemail from the database if (continue) then vm_enabled = "true"; @@ -510,6 +530,11 @@ table.insert(xml, [[ ]]); table.insert(xml, [[ ]]); table.insert(xml, [[ ]]); + for key,row in pairs(extension_settings) do + if (row.extension_setting_type == 'param') then + table.insert(xml, [[ ]]); + end + end table.insert(xml, [[ ]]); table.insert(xml, [[ ]]); table.insert(xml, [[ ]]); @@ -645,6 +670,11 @@ table.insert(xml, [[ ]]); table.insert(xml, [[ ]]); table.insert(xml, [[ ]]); + for key,row in pairs(extension_settings) do + if (row.extension_setting_type == 'variable') then + table.insert(xml, [[ ]]); + end + end table.insert(xml, [[ ]]); table.insert(xml, [[ ]]); table.insert(xml, [[ ]]); diff --git a/app/scripts/resources/scripts/call_forward.lua b/app/scripts/resources/scripts/call_forward.lua index bc97e5f130..33e69d8bd6 100644 --- a/app/scripts/resources/scripts/call_forward.lua +++ b/app/scripts/resources/scripts/call_forward.lua @@ -147,7 +147,6 @@ local last_forward_all_destination = row.forward_all_destination; local follow_me_uuid = row.follow_me_uuid; local toll_allow = row.toll_allow or ''; - local forward_caller_id_uuid = row.forward_caller_id_uuid; --toggle enabled if enabled == "toggle" then @@ -190,56 +189,17 @@ session:streamFile(sounds_dir.."/"..default_language.."/"..default_dialect.."/"..default_voice.."/ivr/ivr-call_forwarding_has_been_set.wav"); end ---get the caller_id for outbound call - local forward_caller_id = "" - if enabled == "true" and not empty(forward_caller_id_uuid) then - local sql = "select destination_number, destination_description,".. - "destination_caller_id_number, destination_caller_id_name " .. - "from v_destinations where domain_uuid = :domain_uuid and " .. - "destination_type = 'inbound' and destination_uuid = :destination_uuid"; - local params = {domain_uuid = domain_uuid; destination_uuid = forward_caller_id_uuid} - if (debug["sql"]) then - log.noticef("SQL: %s; params: %s", sql, json.encode(params)); - end - local row = dbh:first_row(sql, params) - if row then - local caller_id_number = row.destination_caller_id_number - if empty(caller_id_number) then - caller_id_number = row.destination_number - end - - local caller_id_name = row.destination_caller_id_name - if empty(caller_id_name) then - caller_id_name = row.destination_description - end - - if not empty(caller_id_number) then - forward_caller_id = forward_caller_id .. - ",outbound_caller_id_number=" .. caller_id_number .. - ",origination_caller_id_number=" .. caller_id_number - end - - if not empty(caller_id_name) then - forward_caller_id = forward_caller_id .. - ",outbound_caller_id_name=" .. caller_id_name .. - ",origination_caller_id_name=" .. caller_id_name - end - end - end - --get default caller_id for outbound call - if enabled == "true" and empty(forward_caller_id_uuid) then - if settings:get('cdr', 'call_forward_fix', 'boolean') == 'true' then - if not empty(row.outbound_caller_id_number) then - forward_caller_id = forward_caller_id .. - ",outbound_caller_id_number=" .. row.outbound_caller_id_number .. - ",origination_caller_id_number=" .. row.outbound_caller_id_number - end - if not empty(row.outbound_caller_id_name) then - forward_caller_id = forward_caller_id .. - ",outbound_caller_id_name=" .. row.outbound_caller_id_name .. - ",origination_caller_id_name=" .. row.outbound_caller_id_name - end + if enabled == "true" and settings:get('cdr', 'call_forward_fix', 'boolean') == 'true' then + if not empty(row.outbound_caller_id_number) then + forward_caller_id = forward_caller_id .. + ",outbound_caller_id_number=" .. row.outbound_caller_id_number .. + ",origination_caller_id_number=" .. row.outbound_caller_id_number + end + if not empty(row.outbound_caller_id_name) then + forward_caller_id = forward_caller_id .. + ",outbound_caller_id_name=" .. row.outbound_caller_id_name .. + ",origination_caller_id_name=" .. row.outbound_caller_id_name end end diff --git a/app/scripts/resources/scripts/resources/functions/send_mail.lua b/app/scripts/resources/scripts/resources/functions/send_mail.lua index aa5837a4cc..c99ce9be3f 100644 --- a/app/scripts/resources/scripts/resources/functions/send_mail.lua +++ b/app/scripts/resources/scripts/resources/functions/send_mail.lua @@ -1,5 +1,5 @@ -local Settings = require "resources.functions.lazy_settings"; local Database = require "resources.functions.database"; +local Settings = require "resources.functions.lazy_settings"; local cache = require"resources.functions.cache"; local log = require "resources.functions.log".send_mail @@ -28,6 +28,7 @@ if (email_queue_enabled == 'true') then email_action_after = ''; end + local db = dbh or Database.new('system'); local settings = Settings.new(db, domain_name, domain_uuid); local email_from = settings:get('email', 'smtp_from', 'text'); diff --git a/app/sip_status/app_languages.php b/app/sip_status/app_languages.php index ad694a46fb..9b939199e0 100644 --- a/app/sip_status/app_languages.php +++ b/app/sip_status/app_languages.php @@ -345,8 +345,8 @@ $text['button-flush_registrations']['de-ch'] = "Registrierungen verwerfen"; //co $text['button-flush_registrations']['de-de'] = "Registrierungen verwerfen"; $text['button-flush_registrations']['es-cl'] = "Inscripciones Flush"; $text['button-flush_registrations']['es-mx'] = "Inscripciones Flush"; //copied from es-cl -$text['button-flush_registrations']['fr-ca'] = "Nettoyer enregistrements"; //copied from fr-fr -$text['button-flush_registrations']['fr-fr'] = "Nettoyer enregistrements"; +$text['button-flush_registrations']['fr-ca'] = "Effacer enregistrements"; //copied from fr-fr +$text['button-flush_registrations']['fr-fr'] = "Effacer enregistrements"; $text['button-flush_registrations']['he-il'] = ""; $text['button-flush_registrations']['it-it'] = "Pulisci Registrazioni"; $text['button-flush_registrations']['nl-nl'] = "Verwijder Registraties"; diff --git a/app/time_conditions/time_condition_edit.php b/app/time_conditions/time_condition_edit.php index d9936e4ca7..e99afdb52d 100644 --- a/app/time_conditions/time_condition_edit.php +++ b/app/time_conditions/time_condition_edit.php @@ -49,8 +49,11 @@ $preset_region = "preset_".$_SESSION['time_conditions']['region']['text']; if (is_array($_SESSION['time_conditions'][$preset_region])) { foreach ($_SESSION['time_conditions'][$preset_region] as $json) { - $available_presets[] = json_decode($json, true); - $valid_presets[] = array_key_first(end($available_presets)); + $json_array = json_decode($json, true); + if (is_array($json_array)) { + $available_presets[] = $json_array; + $valid_presets[] = array_key_first(end($available_presets)); + } } } unset($preset_region); @@ -1296,4 +1299,4 @@ if ($action == 'update') { //include the footer require_once "resources/footer.php"; -?> \ No newline at end of file +?> diff --git a/app/xml_cdr/app_config.php b/app/xml_cdr/app_config.php index b130e477ef..3cd481481d 100644 --- a/app/xml_cdr/app_config.php +++ b/app/xml_cdr/app_config.php @@ -197,6 +197,9 @@ $apps[$x]['permissions'][$y]['name'] = "xml_cdr_lose_race"; $apps[$x]['permissions'][$y]['groups'][] = "superadmin"; $y++; + $apps[$x]['permissions'][$y]['name'] = "xml_cdr_enterprise_leg"; + $apps[$x]['permissions'][$y]['groups'][] = "superadmin"; + $y++; $apps[$x]['permissions'][$y]['name'] = "xml_cdr_cc_agent_leg"; $apps[$x]['permissions'][$y]['groups'][] = "superadmin"; $y++; @@ -537,6 +540,12 @@ $apps[$x]['db'][$y]['fields'][$z]['type']['mysql'] = "char(1)"; $apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "The leg of the call a or b."; $z++; + $apps[$x]['db'][$y]['fields'][$z]['name'] = "originating_leg_uuid"; + $apps[$x]['db'][$y]['fields'][$z]['type']['pgsql'] = "uuid"; + $apps[$x]['db'][$y]['fields'][$z]['type']['sqlite'] = "text"; + $apps[$x]['db'][$y]['fields'][$z]['type']['mysql'] = "char(36)"; + $apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "Originating Leg UUID. Used to identify legs of an enterprise ring group - and exclude them "; + $z++; $apps[$x]['db'][$y]['fields'][$z]['name'] = "pdd_ms"; $apps[$x]['db'][$y]['fields'][$z]['type']['pgsql'] = "numeric"; $apps[$x]['db'][$y]['fields'][$z]['type']['sqlite'] = "numeric"; @@ -555,6 +564,12 @@ $apps[$x]['db'][$y]['fields'][$z]['type'] = "text"; $apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "Save the last application data."; $z++; + $apps[$x]['db'][$y]['fields'][$z]['name'] = "voicemail_message"; + $apps[$x]['db'][$y]['fields'][$z]['type']['pgsql'] = "boolean"; + $apps[$x]['db'][$y]['fields'][$z]['type']['sqlite'] = "text"; + $apps[$x]['db'][$y]['fields'][$z]['type']['mysql'] = "text"; + $apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = ""; + $z++; $apps[$x]['db'][$y]['fields'][$z]['name'] = "missed_call"; $apps[$x]['db'][$y]['fields'][$z]['type']['pgsql'] = "boolean"; $apps[$x]['db'][$y]['fields'][$z]['type']['sqlite'] = "text"; diff --git a/app/xml_cdr/app_languages.php b/app/xml_cdr/app_languages.php index 366fd4a3f5..be989695a1 100644 --- a/app/xml_cdr/app_languages.php +++ b/app/xml_cdr/app_languages.php @@ -1562,8 +1562,8 @@ $text['label-hangup_cause']['de-ch'] = "Hangup Ursache"; //copied from de-de $text['label-hangup_cause']['de-de'] = "Hangup Ursache"; $text['label-hangup_cause']['es-cl'] = "Causa Colgar"; $text['label-hangup_cause']['es-mx'] = "Causa Colgar"; //copied from es-cl -$text['label-hangup_cause']['fr-ca'] = "Parce hangup"; //copied from fr-fr -$text['label-hangup_cause']['fr-fr'] = "Parce hangup"; +$text['label-hangup_cause']['fr-ca'] = "Cause de raccrochage"; //copied from fr-fr +$text['label-hangup_cause']['fr-fr'] = "Cause de raccrochage"; $text['label-hangup_cause']['he-il'] = ""; $text['label-hangup_cause']['it-it'] = "Causa Chiusura Chiamata"; $text['label-hangup_cause']['nl-nl'] = ""; @@ -1982,8 +1982,8 @@ $text['label-caller_id_number']['de-ch'] = "Anrufer Nummer"; //copied from de-de $text['label-caller_id_number']['de-de'] = "Anrufer Nummer"; $text['label-caller_id_number']['es-cl'] = "Número CID"; $text['label-caller_id_number']['es-mx'] = "Número CID"; //copied from es-cl -$text['label-caller_id_number']['fr-ca'] = "Nombre de l'Appelant"; //copied from fr-fr -$text['label-caller_id_number']['fr-fr'] = "Nombre de l'Appelant"; +$text['label-caller_id_number']['fr-ca'] = "Numéro de l'Appelant"; //copied from fr-fr +$text['label-caller_id_number']['fr-fr'] = "Numéro de l'Appelant"; $text['label-caller_id_number']['he-il'] = ""; $text['label-caller_id_number']['it-it'] = "Numero CID"; $text['label-caller_id_number']['nl-nl'] = ""; @@ -2402,8 +2402,8 @@ $text['label-order']['de-ch'] = "Order"; $text['label-order']['de-de'] = "Order"; $text['label-order']['es-cl'] = "Order"; $text['label-order']['es-mx'] = "Order"; -$text['label-order']['fr-ca'] = "Order"; -$text['label-order']['fr-fr'] = "Order"; +$text['label-order']['fr-ca'] = "Ordre"; +$text['label-order']['fr-fr'] = "Ordre"; $text['label-order']['he-il'] = "Order"; $text['label-order']['it-it'] = "Order"; $text['label-order']['nl-nl'] = "Order"; @@ -2696,8 +2696,8 @@ $text['description-tta']['de-ch'] = "Zeit zu beantworten"; //copied from de-de $text['description-tta']['de-de'] = "Zeit zu beantworten"; $text['description-tta']['es-cl'] = "Hora de contestar"; $text['description-tta']['es-mx'] = "Hora de contestar"; //copied from es-cl -$text['description-tta']['fr-ca'] = "Le temps de répondre"; //copied from fr-fr -$text['description-tta']['fr-fr'] = "Le temps de répondre"; +$text['description-tta']['fr-ca'] = "Temps de réponse"; //copied from fr-fr +$text['description-tta']['fr-fr'] = "Temps de réponse"; $text['description-tta']['he-il'] = "הגיע הזמן לענות"; $text['description-tta']['it-it'] = "Tempo per rispondere"; $text['description-tta']['nl-nl'] = "Tijd om te antwoorden"; @@ -2898,4 +2898,4 @@ $text['button-advanced_search']['ru-ru'] = "Расширенный поиск"; $text['button-advanced_search']['sv-se'] = "Avancerad"; $text['button-advanced_search']['uk-ua'] = ""; -?> \ No newline at end of file +?> diff --git a/app/xml_cdr/resources/classes/xml_cdr.php b/app/xml_cdr/resources/classes/xml_cdr.php index 904f920290..4f488c1002 100644 --- a/app/xml_cdr/resources/classes/xml_cdr.php +++ b/app/xml_cdr/resources/classes/xml_cdr.php @@ -145,10 +145,12 @@ if (!class_exists('xml_cdr')) { $this->fields[] = "record_path"; $this->fields[] = "record_name"; $this->fields[] = "leg"; + $this->fields[] = "originating_leg_uuid"; $this->fields[] = "pdd_ms"; $this->fields[] = "rtp_audio_in_mos"; $this->fields[] = "last_app"; $this->fields[] = "last_arg"; + $this->fields[] = "voicemail_message"; $this->fields[] = "cc_side"; $this->fields[] = "cc_member_uuid"; $this->fields[] = "cc_queue_joined_epoch"; @@ -316,7 +318,7 @@ if (!class_exists('xml_cdr')) { //set missed calls $missed_call = 'false'; - if (strlen($xml->variables->answer_stamp) == 0) { + if ($xml->variables->cc_side != "agent" && strlen($xml->variables->originating_leg_uuid) == 0 && $xml->variables->call_direction != 'outbound' && strlen($xml->variables->answer_stamp) == 0) { $missed_call = 'true'; } if ($xml->variables->missed_call == 'true') { @@ -390,6 +392,14 @@ if (!class_exists('xml_cdr')) { $this->array[$key]['last_app'] = urldecode($xml->variables->last_app); $this->array[$key]['last_arg'] = urldecode($xml->variables->last_arg); + //voicemail message success + if ($xml->variables->voicemail_action == "save" && $xml->variables->voicemail_message_seconds > 0){ + $this->array[$key]['voicemail_message'] = "true"; + } + else { //if ($xml->variables->voicemail_action == "save") { + $this->array[$key]['voicemail_message'] = "false"; + } + //conference $this->array[$key]['conference_name'] = urldecode($xml->variables->conference_name); $this->array[$key]['conference_uuid'] = urldecode($xml->variables->conference_uuid); @@ -404,6 +414,9 @@ if (!class_exists('xml_cdr')) { //store the call leg $this->array[$key]['leg'] = $leg; + //store the originating leg uuid + $this->array[$key]['originating_leg_uuid'] = urldecode($xml->variables->originating_leg_uuid); + //store post dial delay, in milliseconds $this->array[$key]['pdd_ms'] = urldecode($xml->variables->progress_mediamsec) + urldecode($xml->variables->progressmsec); @@ -430,7 +443,7 @@ if (!class_exists('xml_cdr')) { if (strlen($domain_name) == 0) { $presence_id = urldecode($xml->variables->presence_id); if (strlen($presence_id) > 0) { - $presence_array = explode($presence_id); + $presence_array = explode($presence_id, '%40'); $domain_name = $presence_array[1]; } } @@ -918,13 +931,13 @@ if (!class_exists('xml_cdr')) { if (strlen($this->start_stamp_begin) > 0 || strlen($this->start_stamp_end) > 0) { unset($this->quick_select); if (strlen($this->start_stamp_begin) > 0 && strlen($this->start_stamp_end) > 0) { - $sql_date_range .= " and start_stamp between :start_stamp_begin and :start_stamp_end \n"; + $sql_date_range = " and start_stamp between :start_stamp_begin and :start_stamp_end \n"; $parameters['start_stamp_begin'] = $this->start_stamp_begin.':00.000'; $parameters['start_stamp_end'] = $this->start_stamp_end.':59.999'; } else { if (strlen($this->start_stamp_begin) > 0) { - $sql_date_range .= "and start_stamp >= :start_stamp_begin \n"; + $sql_date_range = "and start_stamp >= :start_stamp_begin \n"; $parameters['start_stamp_begin'] = $this->start_stamp_begin.':00.000'; } if (strlen($this->start_stamp_end) > 0) { @@ -935,13 +948,13 @@ if (!class_exists('xml_cdr')) { } else { switch ($this->quick_select) { - case 1: $sql_date_range .= "and start_stamp >= '".date('Y-m-d H:i:s.000', strtotime("-1 week"))."' \n"; break; //last 7 days - case 2: $sql_date_range .= "and start_stamp >= '".date('Y-m-d H:i:s.000', strtotime("-1 hour"))."' \n"; break; //last hour - case 3: $sql_date_range .= "and start_stamp >= '".date('Y-m-d')." "."00:00:00.000' \n"; break; //today - case 4: $sql_date_range .= "and start_stamp between '".date('Y-m-d',strtotime("-1 day"))." "."00:00:00.000' and '".date('Y-m-d',strtotime("-1 day"))." "."23:59:59.999' \n"; break; //yesterday - case 5: $sql_date_range .= "and start_stamp >= '".date('Y-m-d',strtotime("this week"))." "."00:00:00.000' \n"; break; //this week - case 6: $sql_date_range .= "and start_stamp >= '".date('Y-m-')."01 "."00:00:00.000' \n"; break; //this month - case 7: $sql_date_range .= "and start_stamp >= '".date('Y-')."01-01 "."00:00:00.000' \n"; break; //this year + case 1: $sql_date_range = "and start_stamp >= '".date('Y-m-d H:i:s.000', strtotime("-1 week"))."' \n"; break; //last 7 days + case 2: $sql_date_range = "and start_stamp >= '".date('Y-m-d H:i:s.000', strtotime("-1 hour"))."' \n"; break; //last hour + case 3: $sql_date_range = "and start_stamp >= '".date('Y-m-d')." "."00:00:00.000' \n"; break; //today + case 4: $sql_date_range = "and start_stamp between '".date('Y-m-d',strtotime("-1 day"))." "."00:00:00.000' and '".date('Y-m-d',strtotime("-1 day"))." "."23:59:59.999' \n"; break; //yesterday + case 5: $sql_date_range = "and start_stamp >= '".date('Y-m-d',strtotime("this week"))." "."00:00:00.000' \n"; break; //this week + case 6: $sql_date_range = "and start_stamp >= '".date('Y-m-')."01 "."00:00:00.000' \n"; break; //this month + case 7: $sql_date_range = "and start_stamp >= '".date('Y-')."01-01 "."00:00:00.000' \n"; break; //this year } } @@ -969,7 +982,10 @@ if (!class_exists('xml_cdr')) { $sql .= "filter ( \n"; $sql .= " where c.extension_uuid = e.extension_uuid \n"; $sql .= " and missed_call = true \n"; - if (!permission_exists('xml_cdr_lose_race')) { + if (!permission_exists('xml_cdr_enterprise_leg')) { + $sql .= " and originating_leg_uuid is null \n"; + } + elseif (!permission_exists('xml_cdr_lose_race')) { $sql .= " and hangup_cause <> 'LOSE_RACE' \n"; } if ($this->include_internal) { @@ -1025,7 +1041,10 @@ if (!class_exists('xml_cdr')) { $sql .= "count(*) \n"; $sql .= "filter ( \n"; $sql .= " where c.extension_uuid = e.extension_uuid \n"; - if (!permission_exists('xml_cdr_lose_race')) { + if (!permission_exists('xml_cdr_enterprise_leg')) { + $sql .= " and originating_leg_uuid is null \n"; + } + elseif (!permission_exists('xml_cdr_lose_race')) { $sql .= " and hangup_cause <> 'LOSE_RACE' \n"; } if ($this->include_internal) { @@ -1076,6 +1095,7 @@ if (!class_exists('xml_cdr')) { $sql .= " direction, \n"; $sql .= " start_stamp, \n"; $sql .= " hangup_cause, \n"; + $sql .= " originating_leg_uuid, \n"; $sql .= " billsec \n"; $sql .= " from v_xml_cdr \n"; if (!($_GET['show'] === 'all' && permission_exists('xml_cdr_all'))) { @@ -1210,7 +1230,7 @@ if (!class_exists('xml_cdr')) { // If the range starts with an '-' we start from the beginning // If not, we forward the file pointer // And make sure to get the end byte if spesified - if ($range0 == '-') { + if ($range == '-') { // The n-number of the last bytes is requested $c_start = $size - substr($range, 1); } diff --git a/app/xml_cdr/v_xml_cdr_import.php b/app/xml_cdr/v_xml_cdr_import.php index d8a3198aef..6230f8c030 100644 --- a/app/xml_cdr/v_xml_cdr_import.php +++ b/app/xml_cdr/v_xml_cdr_import.php @@ -198,6 +198,14 @@ $database->fields['last_app'] = urldecode($xml->variables->last_app); $database->fields['last_arg'] = urldecode($xml->variables->last_arg); + //voicemail message success + if ($xml->variables->voicemail_action == "save" && $xml->variables->voicemail_message_seconds > 0){ + $database->fields['voicemail_message'] = "true"; + } + elseif ($xml->variables->voicemail_action == "save") { + $database->fields['voicemail_message'] = "false"; + } + //conference $database->fields['conference_name'] = urldecode($xml->variables->conference_name); $database->fields['conference_uuid'] = urldecode($xml->variables->conference_uuid); @@ -211,7 +219,7 @@ //set missed calls $database->fields['missed_call'] = 'false'; - if (strlen($xml->variables->answer_stamp) == 0) { + if ($xml->variables->cc_side != "agent" && strlen($xml->variables->originating_leg_uuid) == 0 && $xml->variables->call_direction != 'outbound' && strlen($xml->variables->answer_stamp) == 0) { $database->fields['missed_call'] = 'true'; } if ($xml->variables->missed_call == 'true') { @@ -292,7 +300,7 @@ if (strlen($domain_name) == 0) { $presence_id = urldecode($xml->variables->presence_id); if (strlen($presence_id) > 0) { - $presence_array = explode($presence_id); + $presence_array = explode($presence_id, '%40'); $domain_name = $presence_array[1]; } } diff --git a/app/xml_cdr/xml_cdr.php b/app/xml_cdr/xml_cdr.php index 5cd4e71c94..05d889091b 100644 --- a/app/xml_cdr/xml_cdr.php +++ b/app/xml_cdr/xml_cdr.php @@ -796,7 +796,7 @@ } //tta (time to answer) if (permission_exists('xml_cdr_tta')) { - $content .= " ".(($row['tta'] > 0) ? $row['tta']."s" : " ")."\n"; + $content .= " ".(($row['tta'] >= 0) ? $row['tta']."s" : " ")."\n"; } //duration if (permission_exists('xml_cdr_duration')) { @@ -823,14 +823,6 @@ } $content .= "\n"; - - if (!permission_exists('xml_cdr_lose_race') && $row['hangup_cause'] == 'LOSE_RACE') { - $content = ''; - } - //show agent originated legs only to those with the permission - if (!permission_exists('xml_cdr_cc_agent_leg') && $row['cc_side'] == "agent") { - $content = ''; - } //show the leg b only to those with the permission if ($row['leg'] == 'a') { echo $content; diff --git a/app/xml_cdr/xml_cdr_details.php b/app/xml_cdr/xml_cdr_details.php index dee13f107e..3e76933f16 100644 --- a/app/xml_cdr/xml_cdr_details.php +++ b/app/xml_cdr/xml_cdr_details.php @@ -387,9 +387,17 @@ //foreach($array["variables"] as $key => $value) { if (is_array($array["app_log"]["application"])) { - foreach ($array["app_log"]["application"] as $row) { - $app_name = $row["@attributes"]["app_name"]; - $app_data = urldecode($row["@attributes"]["app_data"]); + foreach ($array["app_log"]["application"] as $key=>$row) { + //single app + if ($key === "@attributes") { + $app_name = $row["app_name"]; + $app_data = urldecode($row["app_data"]); + } + //multiple apps + else { + $app_name = $row["@attributes"]["app_name"]; + $app_data = urldecode($row["@attributes"]["app_data"]); + } echo "\n"; echo " ".escape($app_name)." \n"; echo " ".escape(wordwrap($app_data,75,"\n", true))." \n"; diff --git a/app/xml_cdr/xml_cdr_export.php b/app/xml_cdr/xml_cdr_export.php index b39ce53d03..96a12d26f7 100644 --- a/app/xml_cdr/xml_cdr_export.php +++ b/app/xml_cdr/xml_cdr_export.php @@ -192,7 +192,7 @@ $data_body[$p] .= ''.format_phone($fields['destination_number']).''; $data_body[$p] .= ''.$fields['start_stamp'].''; $total['tta'] += ($fields['tta'] > 0) ? $fields['tta'] : 0; - $data_body[$p] .= ''.(($fields['tta'] > 0) ? $fields['tta'].'s' : null).''; + $data_body[$p] .= ''.(($fields['tta'] >= 0) ? $fields['tta'].'s' : null).''; $seconds = ($fields['hangup_cause'] == "ORIGINATOR_CANCEL") ? $fields['duration'] : round(($fields['billmsec'] / 1000), 0, PHP_ROUND_HALF_UP); $total['duration'] += $seconds; $data_body[$p] .= ''.gmdate("G:i:s", $seconds).''; diff --git a/app/xml_cdr/xml_cdr_inc.php b/app/xml_cdr/xml_cdr_inc.php index df1653fbb1..d7255167d8 100644 --- a/app/xml_cdr/xml_cdr_inc.php +++ b/app/xml_cdr/xml_cdr_inc.php @@ -417,6 +417,13 @@ $sql .= "and hangup_cause like :hangup_cause "; $parameters['hangup_cause'] = '%'.$hangup_cause.'%'; } + elseif (!permission_exists('xml_cdr_lose_race') && !permission_exists('xml_cdr_enterprise_leg')) { + $sql .= "and hangup_cause != 'LOSE_RACE' "; + } + //exclude enterprise ring group legs + if (!permission_exists('xml_cdr_enterprise_leg')) { + $sql .= "and originating_leg_uuid IS NULL "; + } if (strlen($call_result) > 0) { switch ($call_result) { case 'answered': @@ -430,10 +437,20 @@ break; case 'cancelled': if ($direction == 'inbound' || $direction == 'local' || $call_result == 'missed') { - $sql = "and (answer_stamp is null and bridge_uuid is null and sip_hangup_disposition <> 'send_refuse') "; + $sql .= " + and (( + answer_stamp is null + and bridge_uuid is null + and sip_hangup_disposition <> 'send_refuse' + ) + or ( + answer_stamp is not null + and bridge_uuid is null + and voicemail_message = false + ))"; } else if ($direction == 'outbound') { - $sql = "and (answer_stamp is null and bridge_uuid is not null) "; + $sql .= "and (answer_stamp is null and bridge_uuid is not null) "; } else { $sql .= " @@ -447,10 +464,17 @@ direction = 'outbound' and answer_stamp is null and bridge_uuid is not null + ) + or ( + (direction = 'inbound' or direction = 'local') + and answer_stamp is not null + and bridge_uuid is null + and voicemail_message = false ))"; } break; - default: //failed + default: + $sql .= "and (answer_stamp is null and bridge_uuid is null and duration = 0) "; //$sql .= "and (answer_stamp is null and bridge_uuid is null and billsec = 0 and sip_hangup_disposition = 'send_refuse') "; } } @@ -507,6 +531,10 @@ $sql .= "and (c.record_path is null or c.record_name is null) "; } } + //show agent originated legs only to those with the permission + if (!permission_exists('xml_cdr_cc_agent_leg')) { + $sql .= "and (cc_side is null or cc_side != 'agent') "; + } //end where if (strlen($order_by) > 0) { $sql .= order_by($order_by, $order); diff --git a/app/xml_cdr/xml_cdr_statistics.php b/app/xml_cdr/xml_cdr_statistics.php index f05ebdccbb..554fc73048 100644 --- a/app/xml_cdr/xml_cdr_statistics.php +++ b/app/xml_cdr/xml_cdr_statistics.php @@ -314,7 +314,7 @@ echo " ".escape($row['volume'])." \n"; echo " ".(round(escape($row['minutes']),2))." \n"; echo " ".(round(escape($row['avg_min']),2))." / ".(round(escape($row['cpm_ans']),2))." \n"; - echo " ".escape($row['missed'])." \n"; + echo " ".escape($row['missed'])." \n"; echo " ".(round(escape($row['asr']),2))." \n"; echo " ".(round(escape($row['aloc']),2))." \n"; echo "\n"; diff --git a/app/xml_cdr/xml_cdr_statistics_inc.php b/app/xml_cdr/xml_cdr_statistics_inc.php index 6d48f28174..e695b8e67c 100644 --- a/app/xml_cdr/xml_cdr_statistics_inc.php +++ b/app/xml_cdr/xml_cdr_statistics_inc.php @@ -153,7 +153,7 @@ $parameters['domain_uuid'] = $_SESSION['domain_uuid']; } if ($missed == true) { - $sql_where_ands[] = "billsec = '0'"; + $sql_where_ands[] = "missed_call = true "; } if (strlen($start_epoch) > 0 && strlen($stop_epoch) > 0) { $sql_where_ands[] = "start_epoch between :start_epoch and :stop_epoch"; @@ -280,6 +280,15 @@ $sql_where_ands[] = "leg = :leg"; $parameters['leg'] = $leg; } + //Exclude enterprise ring group legs + if (!permission_exists('xml_cdr_enterprise_leg')) { + $sql_where_ands[] .= "originating_leg_uuid IS NULL"; + } + //If you can't see lose_race, don't run stats on it + elseif (!permission_exists('xml_cdr_lose_race')) { + $sql_where_ands[] = "hangup_cause != 'LOSE_RACE'"; + } + //if not admin or superadmin, only show own calls if (!permission_exists('xml_cdr_domain')) { @@ -345,7 +354,7 @@ //get the call volume between a start end end time in seconds function get_call_volume_between($start, $end, $where, $parameters) { - $sql = "select count(*) as count, sum(billsec) as seconds from v_xml_cdr "; + $sql = "select count(*) as count, sum(billsec) as seconds, sum(answer_stamp - start_stamp) as tta from v_xml_cdr "; $sql .= $where." "; $sql .= "start_epoch between :start and :end "; $parameters['start'] = $start; @@ -356,6 +365,7 @@ return array( 'volume' => $row['count'], 'seconds' => $row['seconds'], + 'tta' => $row['tta'], ); } return false; @@ -375,14 +385,13 @@ $stats[$i]['volume'] = $stat_range ? $stat_range['volume'] : 0; $stats[$i]['seconds'] = $stat_range ? $stat_range['seconds'] : 0; $stats[$i]['minutes'] = $stats[$i]['seconds'] / 60; - $stats[$i]['avg_sec'] = $stats[$i]['volume'] == 0 ? 0 : $stats[$i]['seconds'] / $stats[$i]['volume']; if ($missed) { //we select only missed calls at first place - no reasons to select it again $stats[$i]['missed'] = $stats[$i]['volume']; } else { - $where = $sql_where."billsec = '0' and "; + $where = $sql_where."missed_call = true and "; $stat_range = get_call_volume_between($stats[$i]['start_epoch'], $stats[$i]['stop_epoch'], $where, $parameters); $stats[$i]['missed'] = $stat_range ? $stat_range['volume'] : 0; } @@ -399,6 +408,9 @@ //answer / seizure ratio $stats[$i]['asr'] = $stats[$i]['volume'] == 0 ? 0 : ($success_volume / $stats[$i]['volume'] * 100); + //average time to answer + $stats[$i]['avg_tta'] = $stats[$i]['volume'] == 0 ? 0 : round($stat_range['tta'] / $success_volume); + //average length of call $stats[$i]['aloc'] = $success_volume == 0 ? 0 : $stats[$i]['minutes'] / $success_volume; } diff --git a/app/yealink/app_config.php b/app/yealink/app_config.php index a67a0626a5..983e0478c7 100644 --- a/app/yealink/app_config.php +++ b/app/yealink/app_config.php @@ -263,6 +263,14 @@ $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true"; $apps[$x]['default_settings'][$y]['default_setting_description'] = "Filename of the CP860 firmware ROM"; $y++; + $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "2d167eaf-dbfb-423d-a073-feb66e1434bd"; + $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; + $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "yealink_firmware_cp920"; + $apps[$x]['default_settings'][$y]['default_setting_name'] = "text"; + $apps[$x]['default_settings'][$y]['default_setting_value'] = "cp920-78.85.0.5.rom"; + $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true"; + $apps[$x]['default_settings'][$y]['default_setting_description'] = "Filename of the CP920 firmware ROM"; + $y++; $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "7a769f2f-2833-4b90-9789-ff96a4723773"; $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "yealink_firmware_cp960"; @@ -559,14 +567,6 @@ $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; $apps[$x]['default_settings'][$y]['default_setting_description'] = "http://localhost/all,delete all the customized ring tones"; $y++; - $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "7af991ec-ddb9-4942-a05d-d1acc529fef5"; - $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; - $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "yealink_ringtone_url"; - $apps[$x]['default_settings'][$y]['default_setting_name'] = "text"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = "custom.wav"; - $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; - $apps[$x]['default_settings'][$y]['default_setting_description'] = "Before using this parameter, you should store the desired ring tone (custom.wav) to the provisioning server"; - $y++; $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "95862d61-18ac-41b5-ac69-467e0ef3afd7"; $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "yealink_remote_phonebook_1_name"; @@ -1206,5 +1206,44 @@ $apps[$x]['default_settings'][$y]['default_setting_value'] = ""; $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; $apps[$x]['default_settings'][$y]['default_setting_description'] = "PC port VLAN enable Set 1 = ON 0 = OFF."; - + $y++; + $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "fe946865-b2a4-47a0-92f7-9b2b879be8ef"; + $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; + $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "yealink_lock_enable"; + $apps[$x]['default_settings'][$y]['default_setting_name'] = "boolean"; + $apps[$x]['default_settings'][$y]['default_setting_value'] = "0"; + $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; + $apps[$x]['default_settings'][$y]['default_setting_description'] = "Configure the keypad lock type; 0-Disabled (default), 1-Enable. If needing remove pin lock, set value=0 and enabled=true, reprovision. Then you can set enabled=false and reprovision again for full removal and disablement."; + $y++; + $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "c9020c9e-ffb8-4755-9bf8-e3c9344cd129"; + $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; + $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "yealink_lock_key_type"; + $apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric"; + $apps[$x]['default_settings'][$y]['default_setting_value'] = "0"; + $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; + $apps[$x]['default_settings'][$y]['default_setting_description'] = "Configure the keypad lock type;0-All Keys(default), 1-Function Key, 2-Menu Key"; + $y++; + $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "d3ebfed3-13a8-44b6-bed9-6eaeb6ba7bf6"; + $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; + $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "yealink_lock_pin"; + $apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric"; + $apps[$x]['default_settings'][$y]['default_setting_value'] = "123"; + $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; + $apps[$x]['default_settings'][$y]['default_setting_description'] = "Configure the unlock password for the phone. The default value is 123."; + $y++; + $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "b4e7451c-ff42-4269-8404-5434a6303013"; + $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; + $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "yealink_emergency_number"; + $apps[$x]['default_settings'][$y]['default_setting_name'] = "text"; + $apps[$x]['default_settings'][$y]['default_setting_value'] = "911,110,112"; + $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; + $apps[$x]['default_settings'][$y]['default_setting_description'] = "Configure the emergency number, each separated by a comma. The default value is 911,110,112."; + $y++; + $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "76efe175-8701-4222-b022-552c43e647cf"; + $apps[$x]['default_settings'][$y]['default_setting_category'] = "provision"; + $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "yealink_lock_timeout"; + $apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric"; + $apps[$x]['default_settings'][$y]['default_setting_value'] = "0"; + $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; + $apps[$x]['default_settings'][$y]['default_setting_description'] = "Configures the interval (in seconds) to automatically lock the IP phone. It ranges from 0 to 3600, the default value is 0."; ?> diff --git a/core/authentication/resources/classes/authentication.php b/core/authentication/resources/classes/authentication.php index a6b50bad9f..6b7fd340d5 100644 --- a/core/authentication/resources/classes/authentication.php +++ b/core/authentication/resources/classes/authentication.php @@ -102,7 +102,7 @@ class authentication { } //add user logs - if (file_exists($_SERVER["PROJECT_ROOT"]."/app/user_logs/app_config.php")) { + if (file_exists($_SERVER["PROJECT_ROOT"]."/core/user_logs/app_config.php")) { user_logs::add($result); } diff --git a/core/default_settings/default_setting_edit.php b/core/default_settings/default_setting_edit.php index 23e96862a0..9dde93d365 100644 --- a/core/default_settings/default_setting_edit.php +++ b/core/default_settings/default_setting_edit.php @@ -765,8 +765,8 @@ echo " ".$text['label-description']."\n"; echo "\n"; echo "\n"; - echo " \n"; - echo "
\n"; + echo " \n"; + echo "
\n"; echo $text['description-description']."\n"; echo "\n"; echo "\n"; diff --git a/core/domain_settings/domain_setting_edit.php b/core/domain_settings/domain_setting_edit.php index 55f6dd8afc..5fd1e5dbc3 100644 --- a/core/domain_settings/domain_setting_edit.php +++ b/core/domain_settings/domain_setting_edit.php @@ -17,7 +17,7 @@ The Initial Developer of the Original Code is Mark J Crane - Portions created by the Initial Developer are Copyright (C) 2008-2020 + Portions created by the Initial Developer are Copyright (C) 2008-2021 the Initial Developer. All Rights Reserved. Contributor(s): @@ -820,7 +820,7 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { echo " ".$text['label-description']."\n"; echo "\n"; echo "\n"; - echo " \n"; + echo " \n"; echo "
\n"; echo $text['description-description']."\n"; echo "\n"; diff --git a/core/domains/domains.php b/core/domains/domains.php index 1f1ca5a62f..742cc3bbc5 100644 --- a/core/domains/domains.php +++ b/core/domains/domains.php @@ -233,6 +233,7 @@ echo th_order_by('domain_name', $text['label-domain'], $order_by, $order); } echo th_order_by('domain_name', $text['label-domain_name'], $order_by, $order); + echo "".$text['label-tools'].""; echo th_order_by('domain_enabled', $text['label-domain_enabled'], $order_by, $order, null, "class='center'"); echo " ".$text['label-domain_description']."\n"; if (permission_exists('domain_edit') && $_SESSION['theme']['list_row_edit_button']['boolean'] == 'true') { @@ -264,15 +265,19 @@ echo " ".escape($row['domain_name']); } echo " \n"; + echo " \n"; + echo " ".$text['label-manage'].""; + echo " \n"; if (permission_exists('domain_edit')) { echo " \n"; echo button::create(['type'=>'submit','class'=>'link','label'=>$text['label-'.$row['domain_enabled']],'title'=>$text['button-toggle'],'onclick'=>"list_self_check('checkbox_".$x."'); list_action_set('toggle'); list_form_submit('form_list')"]); + echo " \n"; } else { echo " \n"; echo $text['label-'.$row['domain_enabled']]; + echo " \n"; } - echo " \n"; echo " ".escape($row['domain_description'])."\n"; if (permission_exists('domain_edit') && $_SESSION['theme']['list_row_edit_button']['boolean'] == 'true') { echo " \n"; diff --git a/core/software/resources/classes/software.php b/core/software/resources/classes/software.php index 1b7e4cdcd0..2760d50b2d 100644 --- a/core/software/resources/classes/software.php +++ b/core/software/resources/classes/software.php @@ -12,7 +12,7 @@ if (!class_exists('software')) { * version */ public static function version() { - return '4.5.20'; + return '4.5.22'; } /** diff --git a/core/user_logs/app_config.php b/core/user_logs/app_config.php new file mode 100644 index 0000000000..a303770571 --- /dev/null +++ b/core/user_logs/app_config.php @@ -0,0 +1,84 @@ + diff --git a/core/user_logs/app_defaults.php b/core/user_logs/app_defaults.php new file mode 100644 index 0000000000..adadacce42 --- /dev/null +++ b/core/user_logs/app_defaults.php @@ -0,0 +1,7 @@ + diff --git a/core/user_logs/app_languages.php b/core/user_logs/app_languages.php new file mode 100644 index 0000000000..75c752b8a4 --- /dev/null +++ b/core/user_logs/app_languages.php @@ -0,0 +1,422 @@ + \ No newline at end of file diff --git a/core/user_logs/app_menu.php b/core/user_logs/app_menu.php new file mode 100644 index 0000000000..77d20630af --- /dev/null +++ b/core/user_logs/app_menu.php @@ -0,0 +1,19 @@ + diff --git a/core/user_logs/resources/classes/user_logs.php b/core/user_logs/resources/classes/user_logs.php new file mode 100644 index 0000000000..b654a06416 --- /dev/null +++ b/core/user_logs/resources/classes/user_logs.php @@ -0,0 +1,161 @@ + + Portions created by the Initial Developer are Copyright (C) 2019-2021 + the Initial Developer. All Rights Reserved. + + Contributor(s): + Mark J Crane +*/ + +/** + * user_logs class + * + * @method null delete + * @method null toggle + * @method null copy + */ +if (!class_exists('user_logs')) { + class user_logs { + + /** + * declare the variables + */ + private $app_name; + private $app_uuid; + private $name; + private $table; + private $toggle_field; + private $toggle_values; + private $location; + + /** + * called when the object is created + */ + public function __construct() { + //assign the variables + $this->app_name = 'user_logs'; + $this->app_uuid = '582a13cf-7d75-4ea3-b2d9-60914352d76e'; + $this->name = 'user_log'; + $this->table = 'user_logs'; + $this->toggle_field = ''; + $this->toggle_values = ['true','false']; + $this->location = 'user_logs.php'; + } + + /** + * called when there are no references to a particular object + * unset the variables used in the class + */ + public function __destruct() { + foreach ($this as $key => $value) { + unset($this->$key); + } + } + + /** + * add user_logs + */ + public static function add($result) { + //prepare the array + $array['user_logs'][0]["timestamp"] = 'now()'; + $array['user_logs'][0]["domain_uuid"] = $result['domain_uuid']; + $array['user_logs'][0]["user_uuid"] = $result['user_uuid']; + $array['user_logs'][0]["username"] = $result['username']; + $array['user_logs'][0]["type"] = 'login'; + $array['user_logs'][0]["remote_address"] = $_SERVER['REMOTE_ADDR']; + $array['user_logs'][0]["user_agent"] = $_SERVER['HTTP_USER_AGENT']; + $array['user_logs'][0]["type"] = 'login'; + if ($result["authorized"] == "true") { + $array['user_logs'][0]["result"] = 'success'; + } + else { + $array['user_logs'][0]["result"] = 'failure'; + } + + //add the dialplan permission + $p = new permissions; + $p->add("user_log_add", 'temp'); + + //save to the data + $database = new database; + $database->app_name = 'authentication'; + $database->app_uuid = 'a8a12918-69a4-4ece-a1ae-3932be0e41f1'; + $database->uuid($user_log_uuid); + $database->save($array); + $message = $database->message; + + //remove the temporary permission + $p->delete("user_log_add", 'temp'); + } + + /** + * delete rows from the database + */ + public function delete($records) { + if (permission_exists($this->name.'_delete')) { + + //add multi-lingual support + $language = new text; + $text = $language->get(); + + //validate the token + $token = new token; + if (!$token->validate($_SERVER['PHP_SELF'])) { + message::add($text['message-invalid_token'],'negative'); + header('Location: '.$this->location); + exit; + } + + //delete multiple records + if (is_array($records) && @sizeof($records) != 0) { + //build the delete array + $x = 0; + foreach ($records as $record) { + //add to the array + if ($record['checked'] == 'true' && is_uuid($record['uuid'])) { + $array[$this->table][$x][$this->name.'_uuid'] = $record['uuid']; + $array[$this->table][$x]['domain_uuid'] = $_SESSION['domain_uuid']; + } + + //increment the id + $x++; + } + + //delete the checked rows + if (is_array($array) && @sizeof($array) != 0) { + //execute delete + $database = new database; + $database->app_name = $this->app_name; + $database->app_uuid = $this->app_uuid; + $database->delete($array); + unset($array); + + //set message + message::add($text['message-delete']); + } + unset($records); + } + } + } + + } +} + +?> diff --git a/core/user_logs/root.php b/core/user_logs/root.php new file mode 100644 index 0000000000..6fdf32f37b --- /dev/null +++ b/core/user_logs/root.php @@ -0,0 +1,90 @@ + + Portions created by the Initial Developer are Copyright (C) 2008-2012 + the Initial Developer. All Rights Reserved. + + Contributor(s): + Mark J Crane +*/ + +// make sure the PATH_SEPARATOR is defined + umask(2); + if (!defined("PATH_SEPARATOR")) { + if (strpos($_ENV["OS"], "Win") !== false) { + define("PATH_SEPARATOR", ";"); + } else { + define("PATH_SEPARATOR", ":"); + } + } + + if (!isset($output_format)) $output_format = (PHP_SAPI == 'cli') ? 'text' : 'html'; + + // make sure the document_root is set + $_SERVER["SCRIPT_FILENAME"] = str_replace("\\", '/', $_SERVER["SCRIPT_FILENAME"]); + if(PHP_SAPI == 'cli'){ + chdir(pathinfo(realpath($_SERVER["PHP_SELF"]), PATHINFO_DIRNAME)); + $script_full_path = str_replace("\\", '/', getcwd() . '/' . $_SERVER["SCRIPT_FILENAME"]); + $dirs = explode('/', pathinfo($script_full_path, PATHINFO_DIRNAME)); + if (file_exists('/project_root.php')) { + $path = '/'; + } else { + $i = 1; + $path = ''; + while ($i < count($dirs)) { + $path .= '/' . $dirs[$i]; + if (file_exists($path. '/project_root.php')) { + break; + } + $i++; + } + } + $_SERVER["DOCUMENT_ROOT"] = $path; + }else{ + $_SERVER["DOCUMENT_ROOT"] = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]); + } + $_SERVER["DOCUMENT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"]); +// try to detect if a project path is being used + if (!defined('PROJECT_PATH')) { + if (is_dir($_SERVER["DOCUMENT_ROOT"]. '/fusionpbx')) { + define('PROJECT_PATH', '/fusionpbx'); + } elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/project_root.php')) { + define('PROJECT_PATH', ''); + } else { + $dirs = explode('/', str_replace('\\', '/', pathinfo($_SERVER["PHP_SELF"], PATHINFO_DIRNAME))); + $i = 1; + $path = $_SERVER["DOCUMENT_ROOT"]; + while ($i < count($dirs)) { + $path .= '/' . $dirs[$i]; + if (file_exists($path. '/project_root.php')) { + break; + } + $i++; + } + if(!file_exists($path. '/project_root.php')){ + die("Failed to locate the Project Root by searching for project_root.php please contact support for assistance"); + } + $project_path = str_replace($_SERVER["DOCUMENT_ROOT"], "", $path); + define('PROJECT_PATH', $project_path); + } + $_SERVER["PROJECT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"] . PROJECT_PATH); + set_include_path(get_include_path() . PATH_SEPARATOR . $_SERVER["PROJECT_ROOT"]); + } + +?> \ No newline at end of file diff --git a/core/user_logs/user_log_edit.php b/core/user_logs/user_log_edit.php new file mode 100644 index 0000000000..10c368ab30 --- /dev/null +++ b/core/user_logs/user_log_edit.php @@ -0,0 +1,213 @@ +get(); + +//get the uuid + $user_log_uuid = $_GET['id']; + +//pre-populate the form + if (is_array($_GET) && $_POST["persistformvar"] != "true") { + $sql = "select * from v_user_logs "; + $sql .= "where user_log_uuid = :user_log_uuid "; + //$sql .= "and domain_uuid = :domain_uuid "; + //$parameters['domain_uuid'] = $_SESSION['domain_uuid']; + $parameters['user_log_uuid'] = $user_log_uuid; + $database = new database; + $row = $database->select($sql, $parameters, 'row'); + if (is_array($row) && @sizeof($row) != 0) { + $domain_uuid = $row["domain_uuid"]; + $timestamp = $row["timestamp"]; + $user_uuid = $row["user_uuid"]; + $username = $row["username"]; + $type = $row["type"]; + $result = $row["result"]; + $remote_address = $row["remote_address"]; + $user_agent = $row["user_agent"]; + } + unset($sql, $parameters, $row); + } + +//create token + $object = new token; + $token = $object->create($_SERVER['PHP_SELF']); + +//show the header + $document['title'] = $text['title-user_log']; + require_once "resources/header.php"; + +//get the users + $sql = "SELECT user_uuid, username FROM v_users "; + $sql .= "WHERE domain_uuid = :domain_uuid "; + $sql .= "ORDER by username asc "; + $parameters['domain_uuid'] = $_SESSION['domain_uuid']; + $database = new database; + $users = $database->execute($sql, $parameters, 'all'); + unset ($sql, $parameters); + +//show the content + echo "
\n"; + echo "\n"; + + echo "
\n"; + echo "
".$text['title-user_log']."
\n"; + echo "
\n"; + echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$_SESSION['theme']['button_icon_back'],'id'=>'btn_back','collapse'=>'hide-xs','style'=>'margin-right: 15px;','link'=>'user_logs.php']); + echo "
\n"; + echo "
\n"; + echo "
\n"; + + echo $text['title_description-user_logs']."\n"; + echo "

\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo " ".$text['label-domain_uuid']."\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-domain_uuid']."\n"; + echo "
\n"; + echo " ".$text['label-timestamp']."\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-timestamp']."\n"; + echo "
\n"; + echo " ".$text['label-user_uuid']."\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-user_uuid']."\n"; + echo "
\n"; + echo " ".$text['label-username']."\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-username']."\n"; + echo "
\n"; + echo " ".$text['label-type']."\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-type']."\n"; + echo "
\n"; + echo " ".$text['label-result']."\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-result']."\n"; + echo "
\n"; + echo " ".$text['label-remote_address']."\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-remote_address']."\n"; + echo "
\n"; + echo " ".$text['label-user_agent']."\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-user_agent']."\n"; + echo "
"; + echo "

"; + + echo "\n"; + + echo "
"; + +//include the footer + require_once "resources/footer.php"; + +?> \ No newline at end of file diff --git a/core/user_logs/user_logs.php b/core/user_logs/user_logs.php new file mode 100644 index 0000000000..a924d64d02 --- /dev/null +++ b/core/user_logs/user_logs.php @@ -0,0 +1,263 @@ + + Portions created by the Initial Developer are Copyright (C) 2018 - 2020 + the Initial Developer. All Rights Reserved. +*/ + +//includes + require_once "root.php"; + require_once "resources/require.php"; + require_once "resources/check_auth.php"; + require_once "resources/paging.php"; + +//check permissions + if (permission_exists('user_log_view')) { + //access granted + } + else { + echo "access denied"; + exit; + } + +//add multi-lingual support + $language = new text; + $text = $language->get(); + +//get the http post data + if (is_array($_POST['user_logs'])) { + $action = $_POST['action']; + $search = $_POST['search']; + $user_logs = $_POST['user_logs']; + } + +//process the http post data by action + if ($action != '' && is_array($user_logs) && @sizeof($user_logs) != 0) { + + //validate the token + $token = new token; + if (!$token->validate($_SERVER['PHP_SELF'])) { + message::add($text['message-invalid_token'],'negative'); + header('Location: user_logs.php'); + exit; + } + + //prepare the array + foreach($user_logs as $row) { + $array['user_logs'][$x]['checked'] = $row['checked']; + $array['user_logs'][$x]['user_log_uuid'] = $row['user_log_uuid']; + $x++; + } + + //prepare the database object + $database = new database; + $database->app_name = 'user_logs'; + $database->app_uuid = '582a13cf-7d75-4ea3-b2d9-60914352d76e'; + + //send the array to the database class + if ($action == 'delete') { + if (permission_exists('user_log_delete')) { + $database->delete($array); + } + } + + //redirect the user + header('Location: user_logs.php'.($search != '' ? '?search='.urlencode($search) : null)); + exit; + } + +//get order and order by + $order_by = $_GET["order_by"]; + $order = $_GET["order"]; + +//add the search + if (isset($_GET["search"])) { + $search = strtolower($_GET["search"]); + } + +//get the count + $sql = "select count(user_log_uuid) "; + $sql .= "from v_user_logs "; + if (isset($search)) { + $sql .= "where ("; + $sql .= " lower(username) like :search "; + $sql .= " or lower(type) like :search "; + $sql .= " or lower(result) like :search "; + $sql .= " or lower(remote_address) like :search "; + $sql .= " or lower(user_agent) like :search "; + $sql .= ") "; + $parameters['search'] = '%'.$search.'%'; + } + else { + $sql .= "where (domain_uuid = :domain_uuid or domain_uuid is null) "; + if (isset($sql_search)) { + $sql .= "and ".$sql_search; + } + $parameters['domain_uuid'] = $domain_uuid; + } + $database = new database; + $num_rows = $database->select($sql, $parameters, 'column'); + unset($sql, $parameters); + +//prepare to page the results + $rows_per_page = ($_SESSION['domain']['paging']['numeric'] != '') ? $_SESSION['domain']['paging']['numeric'] : 50; + $param = $search ? "&search=".$search : null; + $param = ($_GET['show'] == 'all' && permission_exists('user_log_all')) ? "&show=all" : null; + $page = is_numeric($_GET['page']) ? $_GET['page'] : 0; + list($paging_controls, $rows_per_page) = paging($num_rows, $param, $rows_per_page); + list($paging_controls_mini, $rows_per_page) = paging($num_rows, $param, $rows_per_page, true); + $offset = $rows_per_page * $page; + +//get the list + $sql = "select "; + $sql .= "domain_uuid, "; + $sql .= "user_log_uuid, "; + $sql .= "timestamp, "; + $sql .= "username, "; + $sql .= "type, "; + $sql .= "result, "; + $sql .= "remote_address, "; + $sql .= "user_agent "; + $sql .= "from v_user_logs "; + if (isset($_GET["search"])) { + $sql .= "where ("; + $sql .= " lower(username) like :search "; + $sql .= " or lower(type) like :search "; + $sql .= " or lower(result) like :search "; + $sql .= " or lower(remote_address) like :search "; + $sql .= " or lower(user_agent) like :search "; + $sql .= ") "; + $parameters['search'] = '%'.$search.'%'; + } + $sql .= order_by($order_by, $order, 'timestamp', 'desc'); + $sql .= limit_offset($rows_per_page, $offset); + $database = new database; + $user_logs = $database->select($sql, $parameters, 'all'); + unset($sql, $parameters); + +//create token + $object = new token; + $token = $object->create($_SERVER['PHP_SELF']); + +//additional includes + $document['title'] = $text['title-user_logs']; + require_once "resources/header.php"; + +//show the content + echo "
\n"; + echo "
".$text['title-user_logs']." (".$num_rows.")
\n"; + echo "
\n"; + if (permission_exists('user_log_delete') && $user_logs) { + echo button::create(['type'=>'button','label'=>$text['button-delete'],'icon'=>$_SESSION['theme']['button_icon_delete'],'id'=>'btn_delete','name'=>'btn_delete','style'=>'display:none;','onclick'=>"modal_open('modal-delete','btn_delete');"]); + } + echo "\n"; + echo "
\n"; + echo "
\n"; + echo "
\n"; + + if (permission_exists('user_log_delete') && $user_logs) { + echo modal::create(['id'=>'modal-delete','type'=>'delete','actions'=>button::create(['type'=>'button','label'=>$text['button-continue'],'icon'=>'check','id'=>'btn_delete','style'=>'float: right; margin-left: 15px;','collapse'=>'never','onclick'=>"modal_close(); list_action_set('delete'); list_form_submit('form_list');"])]); + } + + echo $text['title_description-user_logs']."\n"; + echo "

\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + if (permission_exists('user_log_add') || permission_exists('user_log_edit') || permission_exists('user_log_delete')) { + echo " \n"; + } + if ($_GET['show'] == 'all' && permission_exists('user_log_all')) { + echo th_order_by('domain_name', $text['label-domain'], $order_by, $order); + } + echo th_order_by('timestamp', $text['label-timestamp'], $order_by, $order); + echo th_order_by('username', $text['label-username'], $order_by, $order); + echo th_order_by('type', $text['label-type'], $order_by, $order); + echo th_order_by('result', $text['label-result'], $order_by, $order); + echo th_order_by('remote_address', $text['label-remote_address'], $order_by, $order); + echo th_order_by('user_agent', $text['label-user_agent'], $order_by, $order); + if (permission_exists('user_log_edit') && $_SESSION['theme']['list_row_edit_button']['boolean'] == 'true') { + echo " \n"; + } + echo "\n"; + + if (is_array($user_logs) && @sizeof($user_logs) != 0) { + $x = 0; + foreach ($user_logs as $row) { + if (permission_exists('user_log_edit')) { + $list_row_url = "user_log_edit.php?id=".urlencode($row['user_log_uuid']); + } + echo "\n"; + if (permission_exists('user_log_add') || permission_exists('user_log_edit') || permission_exists('user_log_delete')) { + echo " \n"; + } + if ($_GET['show'] == 'all' && permission_exists('user_log_all')) { + echo " \n"; + } + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + if (permission_exists('user_log_edit') && $_SESSION['theme']['list_row_edit_button']['boolean'] == 'true') { + echo " \n"; + } + echo "\n"; + $x++; + } + unset($user_logs); + } + + echo "
\n"; + echo " \n"; + echo "  
\n"; + echo " \n"; + echo " \n"; + echo " ".escape($_SESSION['domains'][$row['domain_uuid']]['domain_name'])."".escape($row['timestamp'])."".escape($row['username'])."".escape($row['type'])."".escape($row['result'])."".escape($row['remote_address'])."".escape($row['user_agent'])."\n"; + echo button::create(['type'=>'button','title'=>$text['button-edit'],'icon'=>$_SESSION['theme']['button_icon_edit'],'link'=>$list_row_url]); + echo "
\n"; + echo "
\n"; + echo "
".$paging_controls."
\n"; + echo "\n"; + echo "
\n"; + +//include the footer + require_once "resources/footer.php"; + +?> diff --git a/core/user_settings/app_languages.php b/core/user_settings/app_languages.php index 457ecb3cdb..714a717fff 100644 --- a/core/user_settings/app_languages.php +++ b/core/user_settings/app_languages.php @@ -1332,7 +1332,7 @@ $text['label-ivr_menus']['de-de'] = "Automatische Vermittlungen"; $text['label-ivr_menus']['el-gr'] = "Μενού IVR"; $text['label-ivr_menus']['es-cl'] = "Menus IVR"; $text['label-ivr_menus']['es-mx'] = "Menus IVR"; //copied from es-cl -$text['label-ivr_menus']['fr-ca'] = "Menus SVI"; //copied from fr-fr +$text['label-ivr_menus']['fr-ca'] = "Menus RVI"; $text['label-ivr_menus']['fr-fr'] = "Menus SVI"; $text['label-ivr_menus']['he-il'] = ""; $text['label-ivr_menus']['it-it'] = "Menu IVR"; diff --git a/resources/app_languages.php b/resources/app_languages.php index 72ffaa264b..ff678f3e07 100644 --- a/resources/app_languages.php +++ b/resources/app_languages.php @@ -662,8 +662,8 @@ $text['button-clear']['de-de'] = "Zurücksetzen"; $text['button-clear']['el-gr'] = "Εκκαθάριση"; $text['button-clear']['es-cl'] = "Limpiar"; $text['button-clear']['es-mx'] = "Limpiar"; //copied from es-cl -$text['button-clear']['fr-ca'] = "Nettoyer"; //copied from fr-fr -$text['button-clear']['fr-fr'] = "Nettoyer"; +$text['button-clear']['fr-ca'] = "Effacer"; //copied from fr-fr +$text['button-clear']['fr-fr'] = "Effacer"; $text['button-clear']['he-il'] = "נקה"; $text['button-clear']['it-it'] = "Pulisci"; $text['button-clear']['nl-nl'] = ""; @@ -754,8 +754,8 @@ $text['button-search']['de-de'] = "Suchen"; $text['button-search']['el-gr'] = "Αναζήτηση"; $text['button-search']['es-cl'] = "Buscar"; $text['button-search']['es-mx'] = "Buscar"; //copied from es-cl -$text['button-search']['fr-ca'] = "Chercher"; //copied from fr-fr -$text['button-search']['fr-fr'] = "Chercher"; +$text['button-search']['fr-ca'] = "Rechercher"; //copied from fr-fr +$text['button-search']['fr-fr'] = "Rechercher"; $text['button-search']['he-il'] = "חפש"; $text['button-search']['it-it'] = "Ricerca"; $text['button-search']['nl-nl'] = ""; @@ -4226,8 +4226,8 @@ $text['label-uploaded']['de-ch'] = "Hochgeladen"; //copied from de-de $text['label-uploaded']['de-de'] = "Hochgeladen"; $text['label-uploaded']['es-cl'] = "Subir"; $text['label-uploaded']['es-mx'] = "Subir"; //copied from es-cl -$text['label-uploaded']['fr-ca'] = "Envoyé"; //copied from fr-fr -$text['label-uploaded']['fr-fr'] = "Envoyé"; +$text['label-uploaded']['fr-ca'] = "Envoyés"; //copied from fr-fr +$text['label-uploaded']['fr-fr'] = "Envoyés"; $text['label-uploaded']['he-il'] = "הוטען"; $text['label-uploaded']['it-it'] = "Caricato"; $text['label-uploaded']['nl-nl'] = "Opgestuurd"; diff --git a/resources/check_auth.php b/resources/check_auth.php index 44eb209d0b..745bba9322 100644 --- a/resources/check_auth.php +++ b/resources/check_auth.php @@ -147,6 +147,7 @@ if (is_array($sql_where_or) && @sizeof($sql_where_or) != 0) { $sql .= "and (".implode(' or ', $sql_where_or).") "; } + $sql .= "and permission_assigned = 'true' "; $parameters['domain_uuid'] = $_SESSION["domain_uuid"]; $database = new database; $result = $database->select($sql, $parameters, 'all'); diff --git a/resources/templates/conf/sip_profiles/external-ipv6.xml.noload b/resources/templates/conf/sip_profiles/external-ipv6.xml.noload index d41740e9f4..4bf6ff2d46 100644 --- a/resources/templates/conf/sip_profiles/external-ipv6.xml.noload +++ b/resources/templates/conf/sip_profiles/external-ipv6.xml.noload @@ -84,7 +84,7 @@ - + diff --git a/resources/templates/conf/sip_profiles/external.xml.noload b/resources/templates/conf/sip_profiles/external.xml.noload index 5720040e3d..6ffd93ea6c 100644 --- a/resources/templates/conf/sip_profiles/external.xml.noload +++ b/resources/templates/conf/sip_profiles/external.xml.noload @@ -89,7 +89,7 @@ - + diff --git a/resources/templates/conf/sip_profiles/internal-ipv6.xml.noload b/resources/templates/conf/sip_profiles/internal-ipv6.xml.noload index 1129d7a80b..c9fcf7b73e 100644 --- a/resources/templates/conf/sip_profiles/internal-ipv6.xml.noload +++ b/resources/templates/conf/sip_profiles/internal-ipv6.xml.noload @@ -60,7 +60,7 @@ - + diff --git a/resources/templates/conf/sip_profiles/internal.xml.noload b/resources/templates/conf/sip_profiles/internal.xml.noload index d16e55677e..667147540b 100644 --- a/resources/templates/conf/sip_profiles/internal.xml.noload +++ b/resources/templates/conf/sip_profiles/internal.xml.noload @@ -181,7 +181,7 @@ - + diff --git a/resources/templates/provision/fanvil/x3u/{$mac}.cfg b/resources/templates/provision/fanvil/x3u/{$mac}.cfg index 0689edb733..814c34ed11 100644 --- a/resources/templates/provision/fanvil/x3u/{$mac}.cfg +++ b/resources/templates/provision/fanvil/x3u/{$mac}.cfg @@ -1,4 +1,5 @@ + 2.0000000000 @@ -11,7 +12,7 @@ {if isset($dns_server_secondary)}{$dns_server_secondary}{else}208.67.222.222{/if} 1 1 - 1 + 1 0 Fanvil X3U @@ -43,11 +44,11 @@ - + {if isset($fanvil_country_toneset)}{$fanvil_country_toneset}{else}11{/if} @@ -98,22 +99,25 @@ {$account.1.auth_id} {$account.1.password} {$account.1.register_expires} + 0 5060 0 3600 + 0 {if isset($account.1.password)}1{else}0{/if} {$account.1.outbound_proxy_primary} {$account.1.sip_port} {$account.1.auth_id} {$account.1.password} + 0 {$account.1.outbound_proxy_secondary} {$account.1.sip_port} + 0 {if isset($account.1.outbound_proxy_secondary)}1{else}0{/if} 1800 0 3 - 0 0 @@ -147,7 +151,7 @@ 0 0 1 - 0 + {if isset($account.1.user_id)}1{else}{/if} {$account.1.register_expires} 0 0 @@ -166,7 +170,7 @@ 5060 {if $account.1.sip_transport == 'udp'}0{/if} {if $account.1.sip_transport == 'tcp'}1{/if} - {if $account.1.sip_transport == 'tls'}2{/if} + {if $account.1.sip_transport == 'tls'}3{/if} 0 0 @@ -174,10 +178,11 @@ 1 0 - + {if isset($account.1.user_id)}*97{else}{/if} + 0 0 @@ -200,13 +205,14 @@ - OPUS,PCMU,PCMA,G726-32,G729,iLBC,G722 + PCMU,PCMA,G726-32,G729,iLBC,G722 {if isset($fanvil_video_codec)}{$fanvil_video_codec}{else}{/if} 0 0 4 + 0 0 1 @@ -223,7 +229,7 @@ 0 0 1 - 0 + 2 0 @@ -245,6 +251,8 @@ 500 4000 5000 + 0 + 0 {$account.2.user_id} @@ -255,22 +263,25 @@ {$account.2.auth_id} {$account.2.password} {$account.2.register_expires} + 0 5060 0 3600 + 0 {if isset($account.2.password)}1{else}0{/if} {$account.2.outbound_proxy_primary} {$account.2.sip_port} {$account.2.auth_id} {$account.2.password} + 0 {$account.2.outbound_proxy_secondary} {$account.2.sip_port} + 0 {if isset($account.2.outbound_proxy_secondary)}1{else}0{/if} 1800 0 3 - 0 0 @@ -304,7 +315,7 @@ 0 0 1 - 0 + {if isset($account.2.user_id)}1{else}{/if} {$account.2.register_expires} 0 0 @@ -323,7 +334,7 @@ 5060 {if $account.2.sip_transport == 'udp'}0{/if} {if $account.2.sip_transport == 'tcp'}1{/if} - {if $account.2.sip_transport == 'tls'}2{/if} + {if $account.2.sip_transport == 'tls'}3{/if} 0 0 @@ -331,10 +342,11 @@ 1 0 - + {if isset($account.2.user_id)}*97{else}{/if} + 0 0 @@ -357,13 +369,14 @@ - OPUS,PCMU,PCMA,G726-32,G729,iLBC,G722 + PCMU,PCMA,G726-32,G729,iLBC,G722 {if isset($fanvil_video_codec)}{$fanvil_video_codec}{else}{/if} 0 0 4 + 0 0 1 @@ -380,7 +393,7 @@ 0 0 1 - 0 + 2 0 @@ -402,6 +415,8 @@ 500 4000 5000 + 0 + 0 {$account.3.user_id} @@ -412,22 +427,25 @@ {$account.3.auth_id} {$account.3.password} {$account.3.register_expires} + 0 5060 0 3600 + 0 {if isset($account.3.password)}1{else}0{/if} {$account.3.outbound_proxy_primary} {$account.3.sip_port} {$account.3.auth_id} {$account.3.password} + 0 {$account.3.outbound_proxy_secondary} {$account.3.sip_port} + 0 {if isset($account.3.outbound_proxy_secondary)}1{else}0{/if} 1800 0 3 - 0 0 @@ -461,7 +479,7 @@ 0 0 1 - 0 + {if isset($account.3.user_id)}1{else}{/if} {$account.3.register_expires} 0 0 @@ -480,7 +498,7 @@ 5060 {if $account.3.sip_transport == 'udp'}0{/if} {if $account.3.sip_transport == 'tcp'}1{/if} - {if $account.3.sip_transport == 'tls'}2{/if} + {if $account.3.sip_transport == 'tls'}3{/if} 0 0 @@ -488,10 +506,11 @@ 1 0 - + {if isset($account.3.user_id)}*97{else}{/if} + 0 0 @@ -514,13 +533,14 @@ - OPUS,PCMU,PCMA,G726-32,G729,iLBC,G722 + PCMU,PCMA,G726-32,G729,iLBC,G722 {if isset($fanvil_video_codec)}{$fanvil_video_codec}{else}{/if} 0 0 4 + 0 0 1 @@ -537,7 +557,7 @@ 0 0 1 - 0 + 2 0 @@ -559,6 +579,8 @@ 500 4000 5000 + 0 + 0 {$account.4.user_id} @@ -569,22 +591,25 @@ {$account.4.auth_id} {$account.4.password} {$account.4.register_expires} + 0 5060 0 3600 + 0 {if isset($account.4.password)}1{else}0{/if} {$account.4.outbound_proxy_primary} {$account.4.sip_port} {$account.4.auth_id} {$account.4.password} + 0 {$account.4.outbound_proxy_secondary} {$account.4.sip_port} + 0 {if isset($account.4.outbound_proxy_secondary)}1{else}0{/if} 1800 0 3 - 0 0 @@ -618,7 +643,7 @@ 0 0 1 - 0 + {if isset($account.4.user_id)}1{else}{/if} {$account.4.register_expires} 0 0 @@ -637,7 +662,7 @@ 5060 {if $account.4.sip_transport == 'udp'}0{/if} {if $account.4.sip_transport == 'tcp'}1{/if} - {if $account.4.sip_transport == 'tls'}2{/if} + {if $account.4.sip_transport == 'tls'}3{/if} 0 0 @@ -645,10 +670,11 @@ 1 0 - + {if isset($account.4.user_id)}*97{else}{/if} + 0 0 @@ -671,13 +697,14 @@ - OPUS,PCMU,PCMA,G726-32,G729,iLBC,G722 + PCMU,PCMA,G726-32,G729,iLBC,G722 {if isset($fanvil_video_codec)}{$fanvil_video_codec}{else}{/if} 0 0 4 + 0 0 1 @@ -694,7 +721,7 @@ 0 0 1 - 0 + 2 0 @@ -716,6 +743,8 @@ 500 4000 5000 + 0 + 0 {$account.5.user_id} @@ -726,22 +755,25 @@ {$account.5.auth_id} {$account.5.password} {$account.5.register_expires} + 0 5060 0 3600 + 0 {if isset($account.5.password)}1{else}0{/if} {$account.5.outbound_proxy_primary} {$account.5.sip_port} {$account.5.auth_id} {$account.5.password} + 0 {$account.5.outbound_proxy_secondary} {$account.5.sip_port} + 0 {if isset($account.5.outbound_proxy_secondary)}1{else}0{/if} 1800 0 3 - 0 0 @@ -775,15 +807,15 @@ 0 0 1 - 0 + {if isset($account.5.user_id)}1{else}{/if} {$account.5.register_expires} 0 0 1 0 0 - 0 - 0 + {if $account.5.sip_transport == 'dns srv'}1{/if} + {if $account.5.sip_transport == 'dns srv'}1{/if} 0 0 0 @@ -794,7 +826,7 @@ 5060 {if $account.5.sip_transport == 'udp'}0{/if} {if $account.5.sip_transport == 'tcp'}1{/if} - {if $account.5.sip_transport == 'tls'}2{/if} + {if $account.5.sip_transport == 'tls'}3{/if} 0 0 @@ -802,10 +834,11 @@ 1 0 - + {if isset($account.5.user_id)}*97{else}{/if} + 0 0 @@ -828,13 +861,14 @@ - OPUS,PCMU,PCMA,G726-32,G729,iLBC,G722 + PCMU,PCMA,G726-32,G729,iLBC,G722 {if isset($fanvil_video_codec)}{$fanvil_video_codec}{else}{/if} 0 0 4 + 0 0 1 @@ -851,7 +885,7 @@ 0 0 1 - 0 + 2 0 @@ -873,6 +907,8 @@ 500 4000 5000 + 0 + 0 {$account.6.user_id} @@ -883,22 +919,25 @@ {$account.6.auth_id} {$account.6.password} {$account.6.register_expires} + 0 5060 0 3600 + 0 {if isset($account.6.password)}1{else}0{/if} {$account.6.outbound_proxy_primary} {$account.6.sip_port} {$account.6.auth_id} {$account.6.password} + 0 {$account.6.outbound_proxy_secondary} {$account.6.sip_port} + 0 {if isset($account.6.outbound_proxy_secondary)}1{else}0{/if} 1800 0 3 - 0 0 @@ -932,15 +971,15 @@ 0 0 1 - 0 + {if isset($account.6.user_id)}1{else}{/if} {$account.6.register_expires} 0 0 1 0 0 - 0 - 0 + {if $account.6.sip_transport == 'dns srv'}1{/if} + {if $account.6.sip_transport == 'dns srv'}1{/if} 0 0 0 @@ -951,7 +990,7 @@ 5060 {if $account.6.sip_transport == 'udp'}0{/if} {if $account.6.sip_transport == 'tcp'}1{/if} - {if $account.6.sip_transport == 'tls'}2{/if} + {if $account.6.sip_transport == 'tls'}3{/if} 0 0 @@ -959,10 +998,11 @@ 1 0 - + {if isset($account.6.user_id)}*97{else}{/if} + 0 0 @@ -985,13 +1025,14 @@ - OPUS,PCMU,PCMA,G726-32,G729,iLBC,G722 + PCMU,PCMA,G726-32,G729,iLBC,G722 {if isset($fanvil_video_codec)}{$fanvil_video_codec}{else}{/if} 0 0 4 + 0 0 1 @@ -1008,7 +1049,7 @@ 0 0 1 - 0 + 2 0 @@ -1030,17 +1071,22 @@ 500 4000 5000 + 0 + 0 0 30 1 0 + 0 + 0 + 1 - + 1 0 0 . @@ -1085,7 +1131,7 @@ 1 0 0 - 0 + 1 {$fanvil_default_answer_mode} {$fanvil_default_dial_mode} 0 @@ -1109,6 +1155,10 @@ 0 + 0 + 120 + 120 + 0 1 @@ -1189,13 +1239,17 @@ 0 1 1 - $name@$protocol$instance + $name 0 0 1 1 30 + 0 + 0 + 0 + {$fanvil_greeting} 5 @@ -1216,6 +1270,7 @@ 0 0 3 + 1 0 @@ -1224,25 +1279,36 @@ 0 1 + terminated 1 2 - 1 - 1 + early + 1 + 0 + + 1 + 1 + confirmed + 1 + 0 + 0 0 + failed 0 3 + parked - - - - - - - - - {if isset($fanvil_default_ringtone)}{$fanvil_default_ringtone}{else}Type 1{/if} + 5 + 3 + 5 + 3 + 5 + 8 + 3 + 4 + {if isset($fanvil_default_ringtone)}{$fanvil_default_ringtone}{else}Type 2{/if} {if isset($fanvil_enable_sntp)}{$fanvil_enable_sntp}{else}1{/if} @@ -1274,7 +1340,7 @@ 0 - {if isset($fanvil_softkey_exit)}{$fanvil_softkey_exit}{else}2{/if} + {if isset($fanvil_softkey_exit)}{$fanvil_softkey_exit}{else}2{/if} {if isset($fanvil_softkey_desktopsoftkey)}{$fanvil_softkey_desktopsoftkey}{else}history;contact;dnd;menu;{/if} {if isset($fanvil_softkey_talkingsoftkey)}{$fanvil_softkey_talkingsoftkey}{else}hold;xfer;conf;end;{/if} {if isset($fanvil_softkey_ringingsoftkey)}{$fanvil_softkey_ringingsoftkey}{else}accept;none;forward;reject;{/if} @@ -1289,6 +1355,7 @@ send;2aB;delete;exit; {if isset($fanvil_softkey_desktopclick)}{$fanvil_softkey_desktopclick}{else}history;status;none;none;none;{/if} pline;nline;none;none;none; + none;none;none;none;none; none;none;none;none;none; status;none;none;none;reset; contact;clogs;redial;video;cancel; @@ -1529,6 +1596,8 @@ 120 0 + 2 + 6 1 @@ -1544,6 +1613,7 @@ 1 1 + 0 @@ -1554,6 +1624,8 @@ + + @@ -1578,6 +1650,7 @@ + @@ -1649,6 +1722,9 @@ 0 0 + + 60 + 0 @@ -1656,10 +1732,12 @@ 1 1 0 + 0 0 16 360 1080 + 1 0 0 0 @@ -1725,7 +1803,7 @@ 1 - 00100400FV02001000000c383e3aaf78 + 1 0 0.0.0.0 @@ -1737,12 +1815,14 @@ dps dps 3600 - 2 + 0 020 0 {$fanvil_stun_server} {$fanvil_stun_port} 30000 + 30 + 30 0 @@ -1751,23 +1831,32 @@ 224.0.2.0 16360 SIP Hotspot + 0 + 0 + 0 1 + 1 + 1 + 1 + 1 + 1 + @@ -1794,7 +1883,7 @@ 1 - 0 + 1 5 {if isset($fanvil_provision_url)}{$fanvil_provision_url}{else}https://{$domain_name}/app/provision{/if} {$fanvil_firmware_config} @@ -1814,6 +1903,8 @@ 66 0 0 + 0 + 1 @@ -1839,7 +1930,7 @@ {if isset($fanvil_lldp_refresh)}{$fanvil_lldp_refresh}{else}60{/if} {if isset($fanvil_lldp_learn)}{$fanvil_lldp_learn}{else}0{/if} 0 - 0 + 1 60 132 @@ -1867,6 +1958,7 @@ 0.0.0.0 10000 + 0 0 @@ -1878,5 +1970,19 @@ 1 1 0 + 0 + 1,1,1,1 + 0 + 0x262626 + 0xffffff + 0xffffff + 0x262626 + 0x5a9dba + 0xc4012f + 0x007bb0 + 0xffffff + 0x262626 + 1 + diff --git a/resources/templates/provision/fanvil/x4u/{$mac}.cfg b/resources/templates/provision/fanvil/x4u/{$mac}.cfg index 9059dd5148..f9a24bd673 100644 --- a/resources/templates/provision/fanvil/x4u/{$mac}.cfg +++ b/resources/templates/provision/fanvil/x4u/{$mac}.cfg @@ -59,7 +59,7 @@ 1 1 0 - + Fanvil X4U 10 @@ -187,7 +187,7 @@ 0 0 1 - 0 + {if isset($account.1.user_id)}1{else}{/if} {$account.1.register_expires} 0 0 @@ -214,7 +214,7 @@ 1 0 - + {if isset($account.1.user_id)}*97{else}{/if} @@ -263,7 +263,7 @@ 0 0 1 - 0 + 2 0 @@ -349,7 +349,7 @@ 0 0 1 - 0 + {if isset($account.2.user_id)}1{else}{/if} {$account.2.register_expires} 0 0 @@ -376,7 +376,7 @@ 1 0 - + {if isset($account.2.user_id)}*97{else}{/if} @@ -425,7 +425,7 @@ 0 0 1 - 0 + 2 0 @@ -511,7 +511,7 @@ 0 0 1 - 0 + {if isset($account.3.user_id)}1{else}{/if} {$account.3.register_expires} 0 0 @@ -538,7 +538,7 @@ 1 0 - + {if isset($account.3.user_id)}*97{else}{/if} @@ -587,7 +587,7 @@ 0 0 1 - 0 + 2 0 @@ -673,7 +673,7 @@ 0 0 1 - 0 + {if isset($account.4.user_id)}1{else}{/if} {$account.4.register_expires} 0 0 @@ -700,7 +700,7 @@ 1 0 - + {if isset($account.4.user_id)}*97{else}{/if} @@ -749,7 +749,7 @@ 0 0 1 - 0 + 2 0 @@ -835,15 +835,15 @@ 0 0 1 - 0 + {if isset($account.5.user_id)}1{else}{/if} {$account.5.register_expires} 0 0 1 0 0 - 0 - 0 + {if $account.5.sip_transport == 'dns srv'}1{/if} + {if $account.5.sip_transport == 'dns srv'}1{/if} 0 0 0 @@ -862,7 +862,7 @@ 1 0 - + {if isset($account.5.user_id)}*97{else}{/if} @@ -911,7 +911,7 @@ 0 0 1 - 0 + 2 0 @@ -983,7 +983,7 @@ - {if isset($fanvil_ringtone_line)}{$fanvil_ringtone_line6}{else}default{/if} + {if isset($fanvil_ringtone_line6)}{$fanvil_ringtone_line6}{else}default{/if} 2 30 0 @@ -997,7 +997,7 @@ 0 0 1 - 0 + {if isset($account.6.user_id)}1{else}{/if} {$account.6.register_expires} 0 0 @@ -1020,11 +1020,11 @@ 0 0 - 0 + 1 1 0 - + {if isset($account.6.user_id)}*97{else}{/if} @@ -1035,7 +1035,7 @@ 5 1 - 0 + 1 @@ -1051,7 +1051,7 @@ PCMU,PCMA,G726-32,G729,G723,iLBC,AMR,G722,AMR-WB - + {if isset($fanvil_video_codec)}{$fanvil_video_codec}{else}{/if} 0 @@ -1073,7 +1073,7 @@ 0 0 1 - 0 + 2 0 @@ -1159,7 +1159,7 @@ 0 0 1 - 0 + {if isset($account.7.user_id)}1{else}{/if} {$account.7.register_expires} 0 0 @@ -1182,11 +1182,11 @@ 0 0 - 0 + 1 1 0 - + {if isset($account.7.user_id)}*97{else}{/if} @@ -1197,7 +1197,7 @@ 5 1 - 0 + 1 @@ -1213,7 +1213,7 @@ PCMU,PCMA,G726-32,G729,G723,iLBC,AMR,G722,AMR-WB - + {if isset($fanvil_video_codec)}{$fanvil_video_codec}{else}{/if} 0 @@ -1235,7 +1235,7 @@ 0 0 1 - 0 + 2 0 @@ -1321,7 +1321,7 @@ 0 0 1 - 0 + {if isset($account.8.user_id)}1{else}{/if} {$account.8.register_expires} 0 0 @@ -1344,11 +1344,11 @@ 0 0 - 0 + 1 1 0 - + {if isset($account.8.user_id)}*97{else}{/if} @@ -1359,7 +1359,7 @@ 5 1 - 0 + 1 @@ -1375,7 +1375,7 @@ PCMU,PCMA,G726-32,G729,G723,iLBC,AMR,G722,AMR-WB - + {if isset($fanvil_video_codec)}{$fanvil_video_codec}{else}{/if} 0 @@ -1397,7 +1397,7 @@ 0 0 1 - 0 + 2 0 @@ -1483,7 +1483,7 @@ 0 0 1 - 0 + {if isset($account.9.user_id)}1{else}{/if} {$account.9.register_expires} 0 0 @@ -1506,11 +1506,11 @@ 0 0 - 0 + 1 1 0 - + {if isset($account.9.user_id)}*97{else}{/if} @@ -1521,7 +1521,7 @@ 5 1 - 0 + 1 @@ -1537,7 +1537,7 @@ PCMU,PCMA,G726-32,G729,G723,iLBC,AMR,G722,AMR-WB - + {if isset($fanvil_video_codec)}{$fanvil_video_codec}{else}{/if} 0 @@ -1559,7 +1559,7 @@ 0 0 1 - 0 + 2 0 @@ -1645,7 +1645,7 @@ 0 0 1 - 0 + {if isset($account.10.user_id)}1{else}{/if} {$account.10.register_expires} 0 0 @@ -1668,11 +1668,11 @@ 0 0 - 0 + 1 1 0 - + {if isset($account.10.user_id)}*97{else}{/if} @@ -1683,7 +1683,7 @@ 5 1 - 0 + 1 @@ -1699,7 +1699,7 @@ PCMU,PCMA,G726-32,G729,G723,iLBC,AMR,G722,AMR-WB - + {if isset($fanvil_video_codec)}{$fanvil_video_codec}{else}{/if} 0 @@ -1721,7 +1721,7 @@ 0 0 1 - 0 + 2 0 @@ -1807,7 +1807,7 @@ 0 0 1 - 0 + {if isset($account.11.user_id)}1{else}{/if} {$account.11.register_expires} 0 0 @@ -1830,11 +1830,11 @@ 0 0 - 0 + 1 1 0 - + {if isset($account.11.user_id)}*97{else}{/if} @@ -1845,7 +1845,7 @@ 5 1 - 0 + 1 @@ -1861,7 +1861,7 @@ PCMU,PCMA,G726-32,G729,G723,iLBC,AMR,G722,AMR-WB - + {if isset($fanvil_video_codec)}{$fanvil_video_codec}{else}{/if} 0 @@ -1883,7 +1883,7 @@ 0 0 1 - 0 + 2 0 @@ -1969,7 +1969,7 @@ 0 0 1 - 0 + {if isset($account.12.user_id)}1{else}{/if} {$account.12.register_expires} 0 0 @@ -1992,11 +1992,11 @@ 0 0 - 0 + 1 1 0 - + {if isset($account.12.user_id)}*97{else}{/if} @@ -2007,7 +2007,7 @@ 5 1 - 0 + 1 @@ -2023,7 +2023,7 @@ PCMU,PCMA,G726-32,G729,G723,iLBC,AMR,G722,AMR-WB - + {if isset($fanvil_video_codec)}{$fanvil_video_codec}{else}{/if} 0 @@ -2045,7 +2045,7 @@ 0 0 1 - 0 + 2 0 @@ -2295,15 +2295,15 @@ parked - - - - - - - - - {if isset($fanvil_default_ringtone)}{$fanvil_default_ringtone}{else}Type 1{/if} + 5 + 3 + 5 + 3 + 5 + 8 + 3 + 4 + {if isset($fanvil_default_ringtone)}{$fanvil_default_ringtone}{else}Type 2{/if} {if isset($fanvil_enable_sntp)}{$fanvil_enable_sntp}{else}1{/if} @@ -2348,7 +2348,7 @@ send;2aB;delete;exit; delete;xfer;send;exit; send;2aB;delete;exit; - history;status;none;none;none; + {if isset($fanvil_softkey_desktopclick)}{$fanvil_softkey_desktopclick}{else}history;status;none;none;none;{/if} pline;nline;none;none;none; none;none;none;none;none; none;none;voldown;volup;none; @@ -2755,7 +2755,6 @@ {/foreach} - {strip}{*-- Each Internal Index contains 6 keys --*}{/strip} {foreach $keys["memory"] as $row} diff --git a/resources/templates/provision/fanvil/x5u/{$mac}.cfg b/resources/templates/provision/fanvil/x5u/{$mac}.cfg index cd5e37a823..353930b5cc 100644 --- a/resources/templates/provision/fanvil/x5u/{$mac}.cfg +++ b/resources/templates/provision/fanvil/x5u/{$mac}.cfg @@ -59,7 +59,7 @@ 1 1 0 - + Fanvil X5U 10 @@ -187,7 +187,7 @@ 0 0 1 - 0 + {if isset($account.1.user_id)}1{else}{/if} {$account.1.register_expires} 0 0 @@ -214,7 +214,7 @@ 1 0 - + {if isset($account.1.user_id)}*97{else}{/if} @@ -263,7 +263,7 @@ 0 0 1 - 0 + 2 0 @@ -312,7 +312,6 @@ {$account.2.outbound_proxy_secondary} {$account.2.sip_port} {if isset($account.2.outbound_proxy_secondary)}1{else}0{/if} - 1 1800 0 3 @@ -349,7 +348,7 @@ 0 0 1 - 0 + {if isset($account.2.user_id)}1{else}{/if} {$account.2.register_expires} 0 0 @@ -376,7 +375,7 @@ 1 0 - + {if isset($account.2.user_id)}*97{else}{/if} @@ -425,7 +424,7 @@ 0 0 1 - 0 + 2 0 @@ -511,7 +510,7 @@ 0 0 1 - 0 + {if isset($account.3.user_id)}1{else}{/if} {$account.3.register_expires} 0 0 @@ -538,7 +537,7 @@ 1 0 - + {if isset($account.3.user_id)}*97{else}{/if} @@ -587,7 +586,7 @@ 0 0 1 - 0 + 2 0 @@ -673,7 +672,7 @@ 0 0 1 - 0 + {if isset($account.4.user_id)}1{else}{/if} {$account.4.register_expires} 0 0 @@ -700,7 +699,7 @@ 1 0 - + {if isset($account.4.user_id)}*97{else}{/if} @@ -749,7 +748,7 @@ 0 0 1 - 0 + 2 0 @@ -835,7 +834,7 @@ 0 0 1 - 0 + {if isset($account.5.user_id)}1{else}{/if} {$account.5.register_expires} 0 0 @@ -862,7 +861,7 @@ 1 0 - + {if isset($account.5.user_id)}*97{else}{/if} @@ -911,7 +910,7 @@ 0 0 1 - 0 + 2 0 @@ -997,7 +996,7 @@ 0 0 1 - 0 + {if isset($account.6.user_id)}1{else}{/if} {$account.6.register_expires} 0 0 @@ -1020,11 +1019,11 @@ 0 0 - 0 + 1 1 0 - + {if isset($account.6.user_id)}*97{else}{/if} @@ -1035,7 +1034,7 @@ 5 1 - 0 + 1 @@ -1073,7 +1072,7 @@ 0 0 1 - 0 + 2 0 @@ -1159,7 +1158,7 @@ 0 0 1 - 0 + {if isset($account.7.user_id)}1{else}{/if} {$account.7.register_expires} 0 0 @@ -1182,11 +1181,11 @@ 0 0 - 0 + 1 1 0 - + {if isset($account.7.user_id)}*97{else}{/if} @@ -1197,7 +1196,7 @@ 5 1 - 0 + 1 @@ -1235,7 +1234,7 @@ 0 0 1 - 0 + 2 0 @@ -1321,7 +1320,7 @@ 0 0 1 - 0 + {if isset($account.8.user_id)}1{else}{/if} {$account.8.register_expires} 0 0 @@ -1344,11 +1343,11 @@ 0 0 - 0 + 1 1 0 - + {if isset($account.8.user_id)}*97{else}{/if} @@ -1359,7 +1358,7 @@ 5 1 - 0 + 1 @@ -1397,7 +1396,7 @@ 0 0 1 - 0 + 2 0 @@ -1483,7 +1482,7 @@ 0 0 1 - 0 + {if isset($account.9.user_id)}1{else}{/if} {$account.9.register_expires} 0 0 @@ -1506,11 +1505,11 @@ 0 0 - 0 + 1 1 0 - + {if isset($account.9.user_id)}*97{else}{/if} @@ -1521,7 +1520,7 @@ 5 1 - 0 + 1 @@ -1559,7 +1558,7 @@ 0 0 1 - 0 + 2 0 @@ -1645,7 +1644,7 @@ 0 0 1 - 0 + {if isset($account.10.user_id)}1{else}{/if} {$account.10.register_expires} 0 0 @@ -1668,11 +1667,11 @@ 0 0 - 0 + 1 1 0 - + {if isset($account.10.user_id)}*97{else}{/if} @@ -1683,7 +1682,7 @@ 5 1 - 0 + 1 @@ -1721,7 +1720,7 @@ 0 0 1 - 0 + 2 0 @@ -1807,7 +1806,7 @@ 0 0 1 - 0 + {if isset($account.11.user_id)}1{else}{/if} {$account.11.register_expires} 0 0 @@ -1830,11 +1829,11 @@ 0 0 - 0 + 1 1 0 - + {if isset($account.11.user_id)}*97{else}{/if} @@ -1845,7 +1844,7 @@ 5 1 - 0 + 1 @@ -1883,7 +1882,7 @@ 0 0 1 - 0 + 2 0 @@ -1969,7 +1968,7 @@ 0 0 1 - 0 + {if isset($account.12.user_id)}1{else}{/if} {$account.12.register_expires} 0 0 @@ -1992,11 +1991,11 @@ 0 0 - 0 + 1 1 0 - + {if isset($account.12.user_id)}*97{else}{/if} @@ -2007,7 +2006,7 @@ 5 1 - 0 + 1 @@ -2045,7 +2044,7 @@ 0 0 1 - 0 + 2 0 @@ -2131,7 +2130,7 @@ 0 0 1 - 0 + {if isset($account.13.user_id)}1{else}{/if} {$account.13.register_expires} 0 0 @@ -2154,11 +2153,11 @@ 0 0 - 0 + 1 1 0 - + {if isset($account.13.user_id)}*97{else}{/if} @@ -2169,7 +2168,7 @@ 5 1 - 0 + 1 @@ -2207,7 +2206,7 @@ 0 0 1 - 0 + 2 0 @@ -2293,7 +2292,7 @@ 0 0 1 - 0 + {if isset($account.14.user_id)}1{else}{/if} {$account.14.register_expires} 0 0 @@ -2316,11 +2315,11 @@ 0 0 - 0 + 1 1 0 - + {if isset($account.14.user_id)}*97{else}{/if} @@ -2331,7 +2330,7 @@ 5 1 - 0 + 1 @@ -2369,7 +2368,7 @@ 0 0 1 - 0 + 2 0 @@ -2455,7 +2454,7 @@ 0 0 1 - 0 + {if isset($account.15.user_id)}1{else}{/if} {$account.15.register_expires} 0 0 @@ -2478,11 +2477,11 @@ 0 0 - 0 + 1 1 0 - + {if isset($account.15.user_id)}*97{else}{/if} @@ -2493,7 +2492,7 @@ 5 1 - 0 + 1 @@ -2531,7 +2530,7 @@ 0 0 1 - 0 + 2 0 @@ -2617,7 +2616,7 @@ 0 0 1 - 0 + {if isset($account.16.user_id)}1{else}{/if} {$account.16.register_expires} 0 0 @@ -2640,11 +2639,11 @@ 0 0 - 0 + 1 1 0 - + {if isset($account.16.user_id)}*97{else}{/if} @@ -2655,7 +2654,7 @@ 5 1 - 0 + 1 @@ -2693,7 +2692,7 @@ 0 0 1 - 0 + 2 0 @@ -2943,15 +2942,15 @@ parked - - - - - - - - - {if isset($fanvil_default_ringtone)}{$fanvil_default_ringtone}{else}Type 1{/if} + 5 + 3 + 5 + 3 + 5 + 8 + 3 + 4 + {if isset($fanvil_default_ringtone)}{$fanvil_default_ringtone}{else}Type 2{/if} {if isset($fanvil_enable_sntp)}{$fanvil_enable_sntp}{else}1{/if} diff --git a/resources/templates/provision/fanvil/x6u/{$mac}.cfg b/resources/templates/provision/fanvil/x6u/{$mac}.cfg index e01b216bd7..6b597071e8 100644 --- a/resources/templates/provision/fanvil/x6u/{$mac}.cfg +++ b/resources/templates/provision/fanvil/x6u/{$mac}.cfg @@ -192,7 +192,7 @@ 0 0 1 - 0 + {if isset($account.1.user_id)}1{else}{/if} {$account.1.register_expires} 0 0 @@ -219,7 +219,7 @@ 1 0 - + {if isset($account.1.user_id)}*97{else}{/if} @@ -268,7 +268,7 @@ 0 0 1 - 0 + 2 0 @@ -354,7 +354,7 @@ 0 0 1 - 0 + {if isset($account.2.user_id)}1{else}{/if} {$account.2.register_expires} 0 0 @@ -381,7 +381,7 @@ 1 0 - + {if isset($account.2.user_id)}*97{else}{/if} @@ -430,7 +430,7 @@ 0 0 1 - 0 + 2 0 @@ -516,7 +516,7 @@ 0 0 1 - 0 + {if isset($account.3.user_id)}1{else}{/if} {$account.3.register_expires} 0 0 @@ -543,7 +543,7 @@ 1 0 - + {if isset($account.3.user_id)}*97{else}{/if} @@ -592,7 +592,7 @@ 0 0 1 - 0 + 2 0 @@ -678,7 +678,7 @@ 0 0 1 - 0 + {if isset($account.4.user_id)}1{else}{/if} {$account.4.register_expires} 0 0 @@ -705,7 +705,7 @@ 1 0 - + {if isset($account.4.user_id)}*97{else}{/if} @@ -754,7 +754,7 @@ 0 0 1 - 0 + 2 0 @@ -840,7 +840,7 @@ 0 0 1 - 0 + {if isset($account.5.user_id)}1{else}{/if} {$account.5.register_expires} 0 0 @@ -867,7 +867,7 @@ 1 0 - + {if isset($account.5.user_id)}*97{else}{/if} @@ -916,7 +916,7 @@ 0 0 1 - 0 + 2 0 @@ -1002,7 +1002,7 @@ 0 0 1 - 0 + {if isset($account.6.user_id)}1{else}{/if} {$account.6.register_expires} 0 0 @@ -1029,7 +1029,7 @@ 1 0 - + {if isset($account.6.user_id)}*97{else}{/if} @@ -1078,7 +1078,7 @@ 0 0 1 - 0 + 2 0 @@ -1164,7 +1164,7 @@ 0 0 1 - 0 + {if isset($account.7.user_id)}1{else}{/if} {$account.7.register_expires} 0 0 @@ -1191,7 +1191,7 @@ 1 0 - + {if isset($account.7.user_id)}*97{else}{/if} @@ -1240,7 +1240,7 @@ 0 0 1 - 0 + 2 0 @@ -1326,7 +1326,7 @@ 0 0 1 - 0 + {if isset($account.8.user_id)}1{else}{/if} {$account.8.register_expires} 0 0 @@ -1353,7 +1353,7 @@ 1 0 - + {if isset($account.8.user_id)}*97{else}{/if} @@ -1402,7 +1402,7 @@ 0 0 1 - 0 + 2 0 @@ -1488,7 +1488,7 @@ 0 0 1 - 0 + {if isset($account.9.user_id)}1{else}{/if} {$account.9.register_expires} 0 0 @@ -1515,7 +1515,7 @@ 1 0 - + {if isset($account.9.user_id)}*97{else}{/if} @@ -1564,7 +1564,7 @@ 0 0 1 - 0 + 2 0 @@ -1650,7 +1650,7 @@ 0 0 1 - 0 + {if isset($account.10.user_id)}1{else}{/if} {$account.10.register_expires} 0 0 @@ -1677,7 +1677,7 @@ 1 0 - + {if isset($account.10.user_id)}*97{else}{/if} @@ -1726,7 +1726,7 @@ 0 0 1 - 0 + 2 0 @@ -1812,7 +1812,7 @@ 0 0 1 - 0 + {if isset($account.11.user_id)}1{else}{/if} {$account.11.register_expires} 0 0 @@ -1839,7 +1839,7 @@ 1 0 - + {if isset($account.11.user_id)}*97{else}{/if} @@ -1888,7 +1888,7 @@ 0 0 1 - 0 + 2 0 @@ -1974,7 +1974,7 @@ 0 0 1 - 0 + {if isset($account.12.user_id)}1{else}{/if} {$account.12.register_expires} 0 0 @@ -2001,7 +2001,7 @@ 1 0 - + {if isset($account.12.user_id)}*97{else}{/if} @@ -2050,7 +2050,7 @@ 0 0 1 - 0 + 2 0 @@ -2135,7 +2135,7 @@ 0 0 1 - 0 + {if isset($account.13.user_id)}1{else}{/if} {$account.13.register_expires} 0 0 @@ -2162,7 +2162,7 @@ 1 0 - + {if isset($account.13.user_id)}*97{else}{/if} @@ -2211,7 +2211,7 @@ 0 0 1 - 0 + 2 0 @@ -2297,7 +2297,7 @@ 0 0 1 - 0 + {if isset($account.14.user_id)}1{else}{/if} {$account.14.register_expires} 0 0 @@ -2324,7 +2324,7 @@ 1 0 - + {if isset($account.14.user_id)}*97{else}{/if} @@ -2373,7 +2373,7 @@ 0 0 1 - 0 + 2 0 @@ -2459,7 +2459,7 @@ 0 0 1 - 0 + {if isset($account.15.user_id)}1{else}{/if} {$account.15.register_expires} 0 0 @@ -2486,7 +2486,7 @@ 1 0 - + {if isset($account.15.user_id)}*97{else}{/if} @@ -2535,7 +2535,7 @@ 0 0 1 - 0 + 2 0 @@ -2621,7 +2621,7 @@ 0 0 1 - 0 + {if isset($account.16.user_id)}1{else}{/if} {$account.16.register_expires} 0 0 @@ -2648,7 +2648,7 @@ 1 0 - + {if isset($account.16.user_id)}*97{else}{/if} @@ -2697,7 +2697,7 @@ 0 0 1 - 0 + 2 0 @@ -2783,14 +2783,13 @@ 0 0 1 - 0 + {if isset($account.17.user_id)}1{else}{/if} {$account.17.register_expires} 0 0 1 0 0 - 0 {if $account.17.sip_transport == 'dns srv'}1{/if} {if $account.17.sip_transport == 'dns srv'}1{/if} 0 @@ -2811,7 +2810,7 @@ 1 0 - + {if isset($account.17.user_id)}*97{else}{/if} @@ -2860,7 +2859,7 @@ 0 0 1 - 0 + 2 0 @@ -2946,14 +2945,13 @@ 0 0 1 - 0 + {if isset($account.18.user_id)}1{else}{/if} {$account.18.register_expires} 0 0 1 0 0 - 0 {if $account.18.sip_transport == 'dns srv'}1{/if} {if $account.18.sip_transport == 'dns srv'}1{/if} 0 @@ -2974,7 +2972,7 @@ 1 0 - + {if isset($account.18.user_id)}*97{else}{/if} @@ -3023,7 +3021,7 @@ 0 0 1 - 0 + 2 0 @@ -3109,14 +3107,13 @@ 0 0 1 - 0 + {if isset($account.19.user_id)}1{else}{/if} {$account.19.register_expires} 0 0 1 0 0 - 0 {if $account.19.sip_transport == 'dns srv'}1{/if} {if $account.19.sip_transport == 'dns srv'}1{/if} 0 @@ -3137,7 +3134,7 @@ 1 0 - + {if isset($account.19.user_id)}*97{else}{/if} @@ -3186,7 +3183,7 @@ 0 0 1 - 0 + 2 0 @@ -3272,14 +3269,13 @@ 0 0 1 - 0 + {if isset($account.20.user_id)}1{else}{/if} {$account.20.register_expires} 0 0 1 0 0 - 0 {if $account.20.sip_transport == 'dns srv'}1{/if} {if $account.20.sip_transport == 'dns srv'}1{/if} 0 @@ -3300,7 +3296,7 @@ 1 0 - + {if isset($account.20.user_id)}*97{else}{/if} @@ -3349,7 +3345,7 @@ 0 0 1 - 0 + 2 0 @@ -3599,14 +3595,14 @@ parked - - - - - - - - + 5 + 3 + 5 + 3 + 5 + 8 + 3 + 4 {if isset($fanvil_default_ringtone)}{$fanvil_default_ringtone}{else}Type 2{/if} diff --git a/resources/templates/provision/fanvil/x7/{$mac}.cfg b/resources/templates/provision/fanvil/x7/{$mac}.cfg index 89ca982271..656ec9b74a 100644 --- a/resources/templates/provision/fanvil/x7/{$mac}.cfg +++ b/resources/templates/provision/fanvil/x7/{$mac}.cfg @@ -3637,9 +3637,9 @@ 0 {if isset($fanvil_softkey_exit)}{$fanvil_softkey_exit}{else}2{/if} - {if isset($fanvil_softkey_desktopsoftkey)}{$fanvil_softkey_desktopsoftkey}{else}history;contact;dnd;menu; - {if isset($fanvil_softkey_talkingsoftkey)}{$fanvil_softkey_talkingsoftkey}{else}hold;xfer;conf;end; - {if isset($fanvil_softkey_ringingsoftkey)}{$fanvil_softkey_ringingsoftkey}{else}accept;none;forward;reject; + {if isset($fanvil_softkey_desktopsoftkey)}{$fanvil_softkey_desktopsoftkey}{else}history;contact;dnd;menu;{/if} + {if isset($fanvil_softkey_talkingsoftkey)}{$fanvil_softkey_talkingsoftkey}{else}hold;xfer;conf;end;{/if} + {if isset($fanvil_softkey_ringingsoftkey)}{$fanvil_softkey_ringingsoftkey}{else}accept;none;forward;reject;{/if} end;none;none;none; end;none;none;xfer; hold;none;split;end; @@ -3649,7 +3649,7 @@ send;2aB;delete;exit; delete;xfer;send;exit; send;2aB;delete;exit; - {if isset($fanvil_softkey_desktopclick)}{$fanvil_softkey_desktopclick}{else}history;status;none;none;none; + {if isset($fanvil_softkey_desktopclick)}{$fanvil_softkey_desktopclick}{else}history;status;none;none;none;{/if} pline;nline;none;none;none; none;none;none;none;none; none;none;voldown;volup;none; diff --git a/resources/templates/provision/grandstream/gac2500/{$mac}.xml b/resources/templates/provision/grandstream/gac2500/{$mac}.xml index 841f113a0a..1715e9fee0 100644 --- a/resources/templates/provision/grandstream/gac2500/{$mac}.xml +++ b/resources/templates/provision/grandstream/gac2500/{$mac}.xml @@ -488,7 +488,7 @@ - + {if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if} {if isset($grandstream_account_ring_tone_1)} @@ -502,7 +502,7 @@ - + {$grandstream_distinctive_ringtone_name_1} @@ -510,7 +510,7 @@ - + {$grandstream_distinctive_ringtone_name_2} @@ -518,7 +518,7 @@ - + {$grandstream_distinctive_ringtone_name_3} @@ -1056,7 +1056,7 @@ - + {if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if} @@ -1624,7 +1624,7 @@ - + {if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if} @@ -1632,7 +1632,7 @@ - + {$grandstream_distinctive_ringtone_name_1} content://settings/system/ringtone @@ -2193,7 +2193,7 @@ - + {if $nway_conference == true}nway{$account.4.user_id}@{$account.4.server_address}{/if} @@ -2764,7 +2764,7 @@ - + {if $nway_conference == true}nway{$account.5.user_id}@{$account.5.server_address}{/if} @@ -3335,7 +3335,7 @@ - + {if $nway_conference == true}nway{$account.6.user_id}@{$account.6.server_address}{/if} diff --git a/resources/templates/provision/grandstream/grp2612/{$mac}.xml b/resources/templates/provision/grandstream/grp2612/{$mac}.xml index a1c853a549..228d1f35b6 100644 --- a/resources/templates/provision/grandstream/grp2612/{$mac}.xml +++ b/resources/templates/provision/grandstream/grp2612/{$mac}.xml @@ -354,7 +354,7 @@ - + {if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if} @@ -795,7 +795,7 @@ - 5 + {$grandstream_distinctive_ringtone_1} @@ -805,87 +805,87 @@ - 2 + {$grandstream_distinctive_ringtone_2} - ring3 + {$grandstream_distinctive_ringtone_name_3} - 3 + {$grandstream_distinctive_ringtone_3} - + {$grandstream_distinctive_ringtone_name_4} - 5 + {$grandstream_distinctive_ringtone_4} - + {$grandstream_distinctive_ringtone_name_5} - 5 + {$grandstream_distinctive_ringtone_5} - + {$grandstream_distinctive_ringtone_name_6} - 5 + {$grandstream_distinctive_ringtone_6} - + {$grandstream_distinctive_ringtone_name_7} - 5 + {$grandstream_distinctive_ringtone_7} - + {$grandstream_distinctive_ringtone_name_8} - 5 + {$grandstream_distinctive_ringtone_8} - + {$grandstream_distinctive_ringtone_name_9} - 5 + {$grandstream_distinctive_ringtone_9} - + {$grandstream_distinctive_ringtone_name_10} - 5 + {$grandstream_distinctive_ringtone_10} @@ -1308,7 +1308,7 @@ - + {if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if} @@ -3654,7 +3654,7 @@ - 0 + {$grandstream_blf_remote_status} @@ -3917,17 +3917,21 @@ - 0 +{if isset($grandstream_headset_key_mode)} + {$grandstream_headset_key_mode} +{/if} - 0 +{if isset($grandstream_headset_type)} + {$grandstream_headset_type} - 0 + {$grandstream_headset_type} +{/if} @@ -4156,9 +4160,7 @@ {if isset($grandstream_wallpaper_url)} 1 {$grandstream_wallpaper_url} -{else} - 0 - + {/if} @@ -4170,8 +4172,6 @@ {if isset($grandstream_screensaver)} {$grandstream_screensaver} -{else} - 2 {/if} @@ -4179,8 +4179,6 @@ {if isset($grandstream_screensaver_source)} {$grandstream_screensaver_source} -{else} - 0 {/if} diff --git a/resources/templates/provision/grandstream/grp2612w/{$mac}.xml b/resources/templates/provision/grandstream/grp2612w/{$mac}.xml index 1a1cd241e1..d548293f61 100644 --- a/resources/templates/provision/grandstream/grp2612w/{$mac}.xml +++ b/resources/templates/provision/grandstream/grp2612w/{$mac}.xml @@ -354,7 +354,7 @@ - + {if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if} @@ -795,7 +795,7 @@ - 5 + {$grandstream_distinctive_ringtone_1} @@ -805,87 +805,87 @@ - 2 + {$grandstream_distinctive_ringtone_2} - ring3 + {$grandstream_distinctive_ringtone_name_3} - 3 + {$grandstream_distinctive_ringtone_3} - + {$grandstream_distinctive_ringtone_name_4} - 5 + {$grandstream_distinctive_ringtone_4} - + {$grandstream_distinctive_ringtone_name_5} - 5 + {$grandstream_distinctive_ringtone_5} - + {$grandstream_distinctive_ringtone_name_6} - 5 + {$grandstream_distinctive_ringtone_6} - + {$grandstream_distinctive_ringtone_name_7} - 5 + {$grandstream_distinctive_ringtone_7} - + {$grandstream_distinctive_ringtone_name_8} - 5 + {$grandstream_distinctive_ringtone_8} - + {$grandstream_distinctive_ringtone_name_9} - 5 + {$grandstream_distinctive_ringtone_9} - + {$grandstream_distinctive_ringtone_name_10} - 5 + {$grandstream_distinctive_ringtone_10} @@ -1308,7 +1308,7 @@ - + {if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if} @@ -3749,7 +3749,7 @@ - 0 + {$grandstream_blf_remote_status} @@ -4012,17 +4012,21 @@ - 0 +{if isset($grandstream_headset_key_mode)} + {$grandstream_headset_key_mode} +{/if} - 0 +{if isset($grandstream_headset_type)} + {$grandstream_headset_type} - 0 + {$grandstream_headset_type} +{/if} @@ -4251,9 +4255,7 @@ {if isset($grandstream_wallpaper_url)} 1 {$grandstream_wallpaper_url} -{else} - 0 - + {/if} @@ -4265,8 +4267,6 @@ {if isset($grandstream_screensaver)} {$grandstream_screensaver} -{else} - 2 {/if} @@ -4274,8 +4274,6 @@ {if isset($grandstream_screensaver_source)} {$grandstream_screensaver_source} -{else} - 0 {/if} diff --git a/resources/templates/provision/grandstream/grp2613/{$mac}.xml b/resources/templates/provision/grandstream/grp2613/{$mac}.xml index 4cab49735a..d82ed4cadd 100644 --- a/resources/templates/provision/grandstream/grp2613/{$mac}.xml +++ b/resources/templates/provision/grandstream/grp2613/{$mac}.xml @@ -354,7 +354,7 @@ - + {if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if} @@ -795,7 +795,7 @@ - 5 + {$grandstream_distinctive_ringtone_1} @@ -805,87 +805,87 @@ - 2 + {$grandstream_distinctive_ringtone_2} - ring3 + {$grandstream_distinctive_ringtone_name_3} - 3 + {$grandstream_distinctive_ringtone_3} - + {$grandstream_distinctive_ringtone_name_4} - 5 + {$grandstream_distinctive_ringtone_4} - + {$grandstream_distinctive_ringtone_name_5} - 5 + {$grandstream_distinctive_ringtone_5} - + {$grandstream_distinctive_ringtone_name_6} - 5 + {$grandstream_distinctive_ringtone_6} - + {$grandstream_distinctive_ringtone_name_7} - 5 + {$grandstream_distinctive_ringtone_7} - + {$grandstream_distinctive_ringtone_name_8} - 5 + {$grandstream_distinctive_ringtone_8} - + {$grandstream_distinctive_ringtone_name_9} - 5 + {$grandstream_distinctive_ringtone_9} - + {$grandstream_distinctive_ringtone_name_10} - 5 + {$grandstream_distinctive_ringtone_10} @@ -1308,7 +1308,7 @@ - + {if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if} @@ -2256,7 +2256,7 @@ - + {if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if} @@ -2615,7 +2615,7 @@ - + {$grandstream_distinctive_ringtone_name_1} @@ -4482,7 +4482,7 @@ - 0 + {$grandstream_blf_remote_status} @@ -4753,22 +4753,22 @@ - 0 +{if isset($grandstream_headset_key_mode)} + {$grandstream_headset_key_mode} +{/if} - {if isset ($grandstream_EHS)} - {$grandstream_EHS} - {$grandstream_EHS} - {else} - 0 +{if isset($grandstream_headset_type)} + {$grandstream_headset_type} - 0 - {/if} + {$grandstream_headset_type} +{/if} + @@ -4971,9 +4971,7 @@ {if isset($grandstream2135_wallpaper_url)} 1 {$grandstream2135_wallpaper_url} -{else} - 0 - + {/if} @@ -4985,8 +4983,6 @@ {if isset($grandstream_screensaver)} {$grandstream_screensaver} -{else} - 1 {/if} @@ -4994,8 +4990,6 @@ {if isset($grandstream_screensaver_source)} {$grandstream_screensaver_source} -{else} - 0 {/if} diff --git a/resources/templates/provision/grandstream/grp2614/{$mac}.xml b/resources/templates/provision/grandstream/grp2614/{$mac}.xml index 0928140e6d..ecd02c1682 100644 --- a/resources/templates/provision/grandstream/grp2614/{$mac}.xml +++ b/resources/templates/provision/grandstream/grp2614/{$mac}.xml @@ -354,7 +354,7 @@ - + {if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if} @@ -795,7 +795,7 @@ - 5 + {$grandstream_distinctive_ringtone_1} @@ -805,87 +805,87 @@ - 2 + {$grandstream_distinctive_ringtone_2} - ring3 + {$grandstream_distinctive_ringtone_name_3} - 3 + {$grandstream_distinctive_ringtone_3} - + {$grandstream_distinctive_ringtone_name_4} - 5 + {$grandstream_distinctive_ringtone_4} - + {$grandstream_distinctive_ringtone_name_5} - 5 + {$grandstream_distinctive_ringtone_5} - + {$grandstream_distinctive_ringtone_name_6} - 5 + {$grandstream_distinctive_ringtone_6} - + {$grandstream_distinctive_ringtone_name_7} - 5 + {$grandstream_distinctive_ringtone_7} - + {$grandstream_distinctive_ringtone_name_8} - 5 + {$grandstream_distinctive_ringtone_8} - + {$grandstream_distinctive_ringtone_name_9} - 5 + {$grandstream_distinctive_ringtone_9} - + {$grandstream_distinctive_ringtone_name_10} - 5 + {$grandstream_distinctive_ringtone_10} @@ -1308,7 +1308,7 @@ - + {if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if} @@ -2256,7 +2256,7 @@ - + {if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if} @@ -2615,7 +2615,7 @@ - + {$grandstream_distinctive_ringtone_name_1} @@ -3205,7 +3205,7 @@ - + {if $nway_conference == true}nway{$account.4.user_id}@{$account.4.server_address}{/if} @@ -5745,7 +5745,7 @@ - 0 + {$grandstream_blf_remote_status} @@ -6072,17 +6072,21 @@ - 0 +{if isset($grandstream_headset_key_mode)} + {$grandstream_headset_key_mode} +{/if} - 0 +{if isset($grandstream_headset_type)} + {$grandstream_headset_type} - 0 + {$grandstream_headset_type} +{/if} @@ -6286,9 +6290,7 @@ {if isset($grandstream_wallpaper_url)} 1 {$grandstream_wallpaper_url} -{else} - 0 - + {/if} @@ -6300,8 +6302,6 @@ {if isset($grandstream_screensaver)} {$grandstream_screensaver} -{else} - 2 {/if} @@ -6309,8 +6309,6 @@ {if isset($grandstream_screensaver_source)} {$grandstream_screensaver_source} -{else} - 0 {/if} diff --git a/resources/templates/provision/grandstream/grp2615/{$mac}.xml b/resources/templates/provision/grandstream/grp2615/{$mac}.xml index e3d2626e5f..c93b38aa22 100644 --- a/resources/templates/provision/grandstream/grp2615/{$mac}.xml +++ b/resources/templates/provision/grandstream/grp2615/{$mac}.xml @@ -354,7 +354,7 @@ - + {if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if} @@ -795,7 +795,7 @@ - 5 + {$grandstream_distinctive_ringtone_1} @@ -805,87 +805,87 @@ - 2 + {$grandstream_distinctive_ringtone_2} - ring3 + {$grandstream_distinctive_ringtone_name_3} - 3 + {$grandstream_distinctive_ringtone_3} - + {$grandstream_distinctive_ringtone_name_4} - 5 + {$grandstream_distinctive_ringtone_4} - + {$grandstream_distinctive_ringtone_name_5} - 5 + {$grandstream_distinctive_ringtone_5} - + {$grandstream_distinctive_ringtone_name_6} - 5 + {$grandstream_distinctive_ringtone_6} - + {$grandstream_distinctive_ringtone_name_7} - 5 + {$grandstream_distinctive_ringtone_7} - + {$grandstream_distinctive_ringtone_name_8} - 5 + {$grandstream_distinctive_ringtone_8} - + {$grandstream_distinctive_ringtone_name_9} - 5 + {$grandstream_distinctive_ringtone_9} - + {$grandstream_distinctive_ringtone_name_10} - 5 + {$grandstream_distinctive_ringtone_10} @@ -1308,7 +1308,7 @@ - + {if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if} @@ -2256,7 +2256,7 @@ - + {if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if} @@ -2615,7 +2615,7 @@ - + {$grandstream_distinctive_ringtone_name_1} @@ -3205,7 +3205,7 @@ - + {if $nway_conference == true}nway{$account.4.user_id}@{$account.4.server_address}{/if} @@ -4155,7 +4155,7 @@ - + {if $nway_conference == true}nway{$account.5.user_id}@{$account.5.server_address}{/if} @@ -6680,7 +6680,7 @@ - 0 + {$grandstream_blf_remote_status} @@ -7007,17 +7007,21 @@ - 0 +{if isset($grandstream_headset_key_mode)} + {$grandstream_headset_key_mode} +{/if} - 0 +{if isset($grandstream_headset_type)} + {$grandstream_headset_type} - 0 + {$grandstream_headset_type} +{/if} @@ -7220,9 +7224,7 @@ {if isset($grandstream_wallpaper_url)} 1 {$grandstream_wallpaper_url} -{else} - 0 - + {/if} @@ -7234,8 +7236,6 @@ {if isset($grandstream_screensaver)} {$grandstream_screensaver} -{else} - 2 {/if} @@ -7243,8 +7243,6 @@ {if isset($grandstream_screensaver_source)} {$grandstream_screensaver_source} -{else} - 0 {/if} diff --git a/resources/templates/provision/grandstream/grp2616/{$mac}.xml b/resources/templates/provision/grandstream/grp2616/{$mac}.xml index c5857ad26f..351d2b1174 100644 --- a/resources/templates/provision/grandstream/grp2616/{$mac}.xml +++ b/resources/templates/provision/grandstream/grp2616/{$mac}.xml @@ -354,7 +354,7 @@ - + {if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if} @@ -795,7 +795,7 @@ - 5 + {$grandstream_distinctive_ringtone_1} @@ -805,87 +805,87 @@ - 2 + {$grandstream_distinctive_ringtone_2} - ring3 + {$grandstream_distinctive_ringtone_name_3} - 3 + {$grandstream_distinctive_ringtone_3} - + {$grandstream_distinctive_ringtone_name_4} - 5 + {$grandstream_distinctive_ringtone_4} - + {$grandstream_distinctive_ringtone_name_5} - 5 + {$grandstream_distinctive_ringtone_5} - + {$grandstream_distinctive_ringtone_name_6} - 5 + {$grandstream_distinctive_ringtone_6} - + {$grandstream_distinctive_ringtone_name_7} - 5 + {$grandstream_distinctive_ringtone_7} - + {$grandstream_distinctive_ringtone_name_8} - 5 + {$grandstream_distinctive_ringtone_8} - + {$grandstream_distinctive_ringtone_name_9} - 5 + {$grandstream_distinctive_ringtone_9} - + {$grandstream_distinctive_ringtone_name_10} - 5 + {$grandstream_distinctive_ringtone_10} @@ -1308,7 +1308,7 @@ - + {if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if} @@ -2256,7 +2256,7 @@ - + {if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if} @@ -2615,7 +2615,7 @@ - + {$grandstream_distinctive_ringtone_name_1} @@ -3205,7 +3205,7 @@ - + {if $nway_conference == true}nway{$account.4.user_id}@{$account.4.server_address}{/if} @@ -4155,7 +4155,7 @@ - + {if $nway_conference == true}nway{$account.5.user_id}@{$account.5.server_address}{/if} @@ -5105,7 +5105,7 @@ - + {if $nway_conference == true}nway{$account.6.user_id}@{$account.6.server_address}{/if} @@ -7644,7 +7644,7 @@ - 0 + {$grandstream_blf_remote_status} @@ -7971,17 +7971,21 @@ - 0 +{if isset($grandstream_headset_key_mode)} + {$grandstream_headset_key_mode} +{/if} - 0 +{if isset($grandstream_headset_type)} + {$grandstream_headset_type} - 0 + {$grandstream_headset_type} +{/if} @@ -8185,9 +8189,7 @@ {if isset($grandstream_wallpaper_url)} 1 {$grandstream_wallpaper_url} -{else} - 0 - + {/if} @@ -8199,8 +8201,6 @@ {if isset($grandstream_screensaver)} {$grandstream_screensaver} -{else} - 2 {/if} @@ -8208,8 +8208,6 @@ {if isset($grandstream_screensaver_source)} {$grandstream_screensaver_source} -{else} - 0 {/if} diff --git a/resources/templates/provision/grandstream/grp26xx/{$mac}.xml b/resources/templates/provision/grandstream/grp26xx/{$mac}.xml index 3bea13d1bb..20351d820e 100644 --- a/resources/templates/provision/grandstream/grp26xx/{$mac}.xml +++ b/resources/templates/provision/grandstream/grp26xx/{$mac}.xml @@ -350,7 +350,7 @@ - + {if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if} @@ -802,7 +802,7 @@ - 5 + {$grandstream_distinctive_ringtone_1} @@ -812,87 +812,87 @@ - 2 + {$grandstream_distinctive_ringtone_2} - ring3 + {$grandstream_distinctive_ringtone_name_3} - 3 + {$grandstream_distinctive_ringtone_3} - + {$grandstream_distinctive_ringtone_name_4} - 5 + {$grandstream_distinctive_ringtone_4} - + {$grandstream_distinctive_ringtone_name_5} - 5 + {$grandstream_distinctive_ringtone_5} - + {$grandstream_distinctive_ringtone_name_6} - 5 + {$grandstream_distinctive_ringtone_6} - + {$grandstream_distinctive_ringtone_name_7} - 5 + {$grandstream_distinctive_ringtone_7} - + {$grandstream_distinctive_ringtone_name_8} - 5 + {$grandstream_distinctive_ringtone_8} - + {$grandstream_distinctive_ringtone_name_9} - 5 + {$grandstream_distinctive_ringtone_9} - + {$grandstream_distinctive_ringtone_name_10} - 5 + {$grandstream_distinctive_ringtone_10} @@ -1326,7 +1326,7 @@ - + {if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if} @@ -2293,7 +2293,7 @@ - + {if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if} @@ -2733,7 +2733,7 @@ - + {$grandstream_distinctive_ringtone_name_1} @@ -3262,7 +3262,7 @@ - + {if $nway_conference == true}nway{$account.4.user_id}@{$account.4.server_address}{/if} @@ -4233,7 +4233,7 @@ - + {if $nway_conference == true}nway{$account.5.user_id}@{$account.5.server_address}{/if} @@ -6999,7 +6999,7 @@ - 0 + {$grandstream_blf_remote_status} @@ -7249,17 +7249,21 @@ - 0 +{if isset($grandstream_headset_key_mode)} + {$grandstream_headset_key_mode} +{/if} - 0 +{if isset($grandstream_headset_type)} + {$grandstream_headset_type} - + - 0 + {$grandstream_headset_type} +{/if} @@ -7473,16 +7477,14 @@ - 0 + {if isset($grandstream_wallpaper_url)} 1 {$grandstream_wallpaper_url} -{else} - 0 - + {/if} @@ -7494,8 +7496,6 @@ {if isset($grandstream_screensaver)} {$grandstream_screensaver} -{else} - 1 {/if} @@ -7503,8 +7503,6 @@ {if isset($grandstream_screensaver_source)} {$grandstream_screensaver_source} -{else} - 0 {/if} diff --git a/resources/templates/provision/grandstream/gxp110x/{$mac}.xml b/resources/templates/provision/grandstream/gxp110x/{$mac}.xml index 5b166acd4a..ecb28b3e4c 100644 --- a/resources/templates/provision/grandstream/gxp110x/{$mac}.xml +++ b/resources/templates/provision/grandstream/gxp110x/{$mac}.xml @@ -353,7 +353,7 @@ - +{if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if} @@ -609,33 +609,33 @@ - +{$grandstream_distinctive_ringtone_name_1} -0 +{$grandstream_distinctive_ringtone_1} - +{$grandstream_distinctive_ringtone_name_2} -0 +{$grandstream_distinctive_ringtone_2} - +{$grandstream_distinctive_ringtone_name_3} -0 +{$grandstream_distinctive_ringtone_3} diff --git a/resources/templates/provision/grandstream/gxp116x/{$mac}.xml b/resources/templates/provision/grandstream/gxp116x/{$mac}.xml index 52b8eccfd1..7d9ce41884 100644 --- a/resources/templates/provision/grandstream/gxp116x/{$mac}.xml +++ b/resources/templates/provision/grandstream/gxp116x/{$mac}.xml @@ -227,7 +227,7 @@ - +{if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if} @@ -478,33 +478,33 @@ - +{$grandstream_distinctive_ringtone_name_1} -0 +{$grandstream_distinctive_ringtone_1} - +{$grandstream_distinctive_ringtone_name_2} -0 +{$grandstream_distinctive_ringtone_2} - +{$grandstream_distinctive_ringtone_name_3} -0 +{$grandstream_distinctive_ringtone_3} @@ -1279,12 +1279,21 @@ -0 +{if isset($grandstream_headset_key_mode)} + {$grandstream_headset_key_mode} +{/if} - - - -0 + + + +{if isset($grandstream_headset_type)} + {$grandstream_headset_type} + + + + + {$grandstream_headset_type} +{/if} diff --git a/resources/templates/provision/grandstream/gxp140x/{$mac}.xml b/resources/templates/provision/grandstream/gxp140x/{$mac}.xml index 654bf96fe5..18977b16ed 100644 --- a/resources/templates/provision/grandstream/gxp140x/{$mac}.xml +++ b/resources/templates/provision/grandstream/gxp140x/{$mac}.xml @@ -302,7 +302,7 @@ - + {if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if} @@ -504,28 +504,28 @@ 0 - + {$grandstream_distinctive_ringtone_name_1} - 0 + {$grandstream_distinctive_ringtone_1} - + {$grandstream_distinctive_ringtone_name_2} - 0 + {$grandstream_distinctive_ringtone_2} - + {$grandstream_distinctive_ringtone_name_3} - 0 + {$grandstream_distinctive_ringtone_3} @@ -736,7 +736,7 @@ - + {if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if} @@ -1550,7 +1550,9 @@ - 0 + {if isset($grandstream_headset_key_mode)} + {$grandstream_headset_key_mode} +{/if} diff --git a/resources/templates/provision/grandstream/gxp140xbk/{$mac}.xml b/resources/templates/provision/grandstream/gxp140xbk/{$mac}.xml index db3979a52d..248e5623fa 100644 --- a/resources/templates/provision/grandstream/gxp140xbk/{$mac}.xml +++ b/resources/templates/provision/grandstream/gxp140xbk/{$mac}.xml @@ -302,7 +302,7 @@ - + {if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if} @@ -504,28 +504,28 @@ 0 - + {$grandstream_distinctive_ringtone_name_1} - 0 + {$grandstream_distinctive_ringtone_1} - + {$grandstream_distinctive_ringtone_name_2} - 0 + {$grandstream_distinctive_ringtone_2} - + {$grandstream_distinctive_ringtone_name_3} - 0 + {$grandstream_distinctive_ringtone_3} @@ -736,7 +736,7 @@ - + {if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if} @@ -1550,7 +1550,9 @@ - 0 + {if isset($grandstream_headset_key_mode)} + {$grandstream_headset_key_mode} +{/if} diff --git a/resources/templates/provision/grandstream/gxp1450/{$mac}.xml b/resources/templates/provision/grandstream/gxp1450/{$mac}.xml index f6346b76cf..8cd4fd550e 100644 --- a/resources/templates/provision/grandstream/gxp1450/{$mac}.xml +++ b/resources/templates/provision/grandstream/gxp1450/{$mac}.xml @@ -417,7 +417,7 @@ - +{if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if} @@ -673,33 +673,33 @@ - +{$grandstream_distinctive_ringtone_name_1} -0 +{$grandstream_distinctive_ringtone_1} - +{$grandstream_distinctive_ringtone_name_2} -0 +{$grandstream_distinctive_ringtone_2} - +{$grandstream_distinctive_ringtone_name_3} -0 +{$grandstream_distinctive_ringtone_3} @@ -974,7 +974,7 @@ - +{if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if} @@ -2055,7 +2055,9 @@ -0 +{if isset($grandstream_headset_key_mode)} + {$grandstream_headset_key_mode} +{/if} diff --git a/resources/templates/provision/grandstream/gxp1450bk/{$mac}.xml b/resources/templates/provision/grandstream/gxp1450bk/{$mac}.xml index 101ab84d48..49d81cf5e3 100644 --- a/resources/templates/provision/grandstream/gxp1450bk/{$mac}.xml +++ b/resources/templates/provision/grandstream/gxp1450bk/{$mac}.xml @@ -226,7 +226,7 @@ - +{if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if} @@ -482,33 +482,33 @@ - +{$grandstream_distinctive_ringtone_name_1} -0 +{$grandstream_distinctive_ringtone_1} - +{$grandstream_distinctive_ringtone_name_2} -0 +{$grandstream_distinctive_ringtone_2} - +{$grandstream_distinctive_ringtone_name_3} -0 +{$grandstream_distinctive_ringtone_3} @@ -783,7 +783,7 @@ - +{if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if} @@ -1862,7 +1862,9 @@ -0 +{if isset($grandstream_headset_key_mode)} + {$grandstream_headset_key_mode} +{/if} diff --git a/resources/templates/provision/grandstream/gxp16xx/{$mac}.xml b/resources/templates/provision/grandstream/gxp16xx/{$mac}.xml index 656d33b3be..191766a91a 100644 --- a/resources/templates/provision/grandstream/gxp16xx/{$mac}.xml +++ b/resources/templates/provision/grandstream/gxp16xx/{$mac}.xml @@ -264,7 +264,7 @@ 0 - +{if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if} @@ -872,7 +872,7 @@ 0 - +{if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if} @@ -1445,7 +1445,7 @@ 0 - +{if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if} @@ -1686,7 +1686,7 @@ 0 - +{$grandstream_distinctive_ringtone_name_1} @@ -2694,11 +2694,21 @@ -0 - - - -0 +{if isset($grandstream_headset_key_mode)} + {$grandstream_headset_key_mode} +{/if} + + + + +{if isset($grandstream_headset_type)} + {$grandstream_headset_type} + + + + + {$grandstream_headset_type} +{/if} diff --git a/resources/templates/provision/grandstream/gxp17xx/{$mac}.xml b/resources/templates/provision/grandstream/gxp17xx/{$mac}.xml index e2acafe9ba..6257158e76 100644 --- a/resources/templates/provision/grandstream/gxp17xx/{$mac}.xml +++ b/resources/templates/provision/grandstream/gxp17xx/{$mac}.xml @@ -1034,7 +1034,7 @@ - +{if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if} @@ -1361,33 +1361,33 @@ - +{$grandstream_distinctive_ringtone_name_1} -0 +{$grandstream_distinctive_ringtone_1} - +{$grandstream_distinctive_ringtone_name_2} -0 +{$grandstream_distinctive_ringtone_2} - +{$grandstream_distinctive_ringtone_name_3} -0 +{$grandstream_distinctive_ringtone_3} @@ -1745,7 +1745,7 @@ - +{if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if} @@ -2445,7 +2445,7 @@ - +{if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if} @@ -2764,7 +2764,7 @@ - +{$grandstream_distinctive_ringtone_name_1} @@ -3859,12 +3859,21 @@ -0 +{if isset($grandstream_headset_key_mode)} + {$grandstream_headset_key_mode} +{/if} - - - -0 + + + +{if isset($grandstream_headset_type)} + {$grandstream_headset_type} + + + + + {$grandstream_headset_type} +{/if} diff --git a/resources/templates/provision/grandstream/gxp20xx/{$mac}.xml b/resources/templates/provision/grandstream/gxp20xx/{$mac}.xml index 40f841561c..16c3c84a6d 100644 --- a/resources/templates/provision/grandstream/gxp20xx/{$mac}.xml +++ b/resources/templates/provision/grandstream/gxp20xx/{$mac}.xml @@ -1991,7 +1991,9 @@ -0 +{if isset($grandstream_headset_key_mode)} + {$grandstream_headset_key_mode} +{/if} 0 diff --git a/resources/templates/provision/grandstream/gxp2100/{$mac}.xml b/resources/templates/provision/grandstream/gxp2100/{$mac}.xml index f3457360c9..4dea5864c1 100644 --- a/resources/templates/provision/grandstream/gxp2100/{$mac}.xml +++ b/resources/templates/provision/grandstream/gxp2100/{$mac}.xml @@ -263,7 +263,7 @@ - + {if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if} @@ -540,33 +540,33 @@ - + {$grandstream_distinctive_ringtone_name_1} - 0 + {$grandstream_distinctive_ringtone_1} - + {$grandstream_distinctive_ringtone_name_2} - 0 + {$grandstream_distinctive_ringtone_2} - + {$grandstream_distinctive_ringtone_name_3} - 0 + {$grandstream_distinctive_ringtone_3} @@ -893,7 +893,7 @@ - + {if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if} @@ -1521,7 +1521,7 @@ - + {if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if} @@ -1796,7 +1796,7 @@ - + {$grandstream_distinctive_ringtone_name_1} @@ -2147,7 +2147,7 @@ - + {if $nway_conference == true}nway{$account.4.user_id}@{$account.4.server_address}{/if} @@ -3472,7 +3472,9 @@ - 0 + {if isset($grandstream_headset_key_mode)} + {$grandstream_headset_key_mode} +{/if} diff --git a/resources/templates/provision/grandstream/gxp2124/{$mac}.xml b/resources/templates/provision/grandstream/gxp2124/{$mac}.xml index 4bcf7a47f3..d180e429c2 100644 --- a/resources/templates/provision/grandstream/gxp2124/{$mac}.xml +++ b/resources/templates/provision/grandstream/gxp2124/{$mac}.xml @@ -178,7 +178,7 @@ - + {if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if} @@ -380,28 +380,28 @@ 0 - + {$grandstream_distinctive_ringtone_name_1} - 0 + {$grandstream_distinctive_ringtone_1} - 0 + {$grandstream_distinctive_ringtone_name_2} - 0 + {$grandstream_distinctive_ringtone_2} - + {$grandstream_distinctive_ringtone_name_3} - 0 + {$grandstream_distinctive_ringtone_3} @@ -616,7 +616,7 @@ - + {if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if} @@ -1049,7 +1049,7 @@ - + {if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if} @@ -1243,7 +1243,7 @@ 0 - + {$grandstream_distinctive_ringtone_name_1} @@ -1480,7 +1480,7 @@ - + {if $nway_conference == true}nway{$account.4.user_id}@{$account.4.server_address}{/if} @@ -2285,11 +2285,21 @@ - 0 - - - - 0 +{if isset($grandstream_headset_key_mode)} + {$grandstream_headset_key_mode} +{/if} + + + + +{if isset($grandstream_headset_type)} + {$grandstream_headset_type} + + + + + {$grandstream_headset_type} +{/if} diff --git a/resources/templates/provision/grandstream/gxp2130/{$mac}.xml b/resources/templates/provision/grandstream/gxp2130/{$mac}.xml index 20458608a6..44bb563784 100644 --- a/resources/templates/provision/grandstream/gxp2130/{$mac}.xml +++ b/resources/templates/provision/grandstream/gxp2130/{$mac}.xml @@ -354,7 +354,7 @@ - + {if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if} @@ -1308,7 +1308,7 @@ - + {if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if} @@ -2256,7 +2256,7 @@ - + {if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if} @@ -2615,7 +2615,7 @@ - grandstream_distinctive_ringtone_name_1 + {$grandstream_distinctive_ringtone_name_1} @@ -3205,7 +3205,7 @@ - + {if $nway_conference == true}nway{$account.4.user_id}@{$account.4.server_address}{/if} @@ -4155,7 +4155,7 @@ - + {if $nway_conference == true}nway{$account.5.user_id}@{$account.5.server_address}{/if} @@ -5105,7 +5105,7 @@ - + {if $nway_conference == true}nway{$account.6.user_id}@{$account.6.server_address}{/if} @@ -6056,50 +6056,66 @@ +{if isset($grandstream_openvpn_enable)} + {$grandstream_openvpn_enable} +{else} 0 +{/if} - + {$grandstream_openvpn_server} - + +{if isset($grandstream_openvpn_port)} + {$grandstream_openvpn_port} +{else} 1194 +{/if} +{if isset($grandstream_openvpn_transport)} + {$grandstream_openvpn_transport} +{else} 0 +{/if} - + {$grandstream_openvpn_ca} - + {$grandstream_openvpn_cert} - + {$grandstream_openvpn_key} +{if isset($grandstream_openvpn_cipher)} + {$grandstream_openvpn_cipher} +{else} 0 +{/if} - + {$grandstream_openvpn_username} - + {$grandstream_openvpn_password} - + {$grandstream_openvpn_options} @@ -7591,7 +7607,7 @@ - 0 + {$grandstream_blf_remote_status} @@ -7918,17 +7934,21 @@ - 0 +{if isset($grandstream_headset_key_mode)} + {$grandstream_headset_key_mode} +{/if} - 0 +{if isset($grandstream_headset_type)} + {$grandstream_headset_type} - 0 + {$grandstream_headset_type} +{/if} @@ -8132,9 +8152,7 @@ {if isset($grandstream_wallpaper_url)} 1 {$grandstream_wallpaper_url} -{else} - 0 - + {/if} @@ -8146,8 +8164,6 @@ {if isset($grandstream_screensaver)} {$grandstream_screensaver} -{else} - 1 {/if} @@ -8155,8 +8171,6 @@ {if isset($grandstream_screensaver_source)} {$grandstream_screensaver_source} -{else} - 0 {/if} diff --git a/resources/templates/provision/grandstream/gxp2135/{$mac}.xml b/resources/templates/provision/grandstream/gxp2135/{$mac}.xml index 215603c896..eed4e495a7 100644 --- a/resources/templates/provision/grandstream/gxp2135/{$mac}.xml +++ b/resources/templates/provision/grandstream/gxp2135/{$mac}.xml @@ -354,7 +354,7 @@ - + {if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if} @@ -1308,7 +1308,7 @@ - + {if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if} @@ -2256,7 +2256,7 @@ - + {if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if} @@ -2615,7 +2615,7 @@ - grandstream_distinctive_ringtone_name_1 + {$grandstream_distinctive_ringtone_name_1} @@ -3205,7 +3205,7 @@ - + {if $nway_conference == true}nway{$account.4.user_id}@{$account.4.server_address}{/if} @@ -4155,7 +4155,7 @@ - + {if $nway_conference == true}nway{$account.5.user_id}@{$account.5.server_address}{/if} @@ -5105,7 +5105,7 @@ - + {if $nway_conference == true}nway{$account.6.user_id}@{$account.6.server_address}{/if} @@ -6056,50 +6056,66 @@ +{if isset($grandstream_openvpn_enable)} + {$grandstream_openvpn_enable} +{else} 0 +{/if} - + {$grandstream_openvpn_server} +{if isset($grandstream_openvpn_port)} + {$grandstream_openvpn_port} +{else} 1194 +{/if} +{if isset($grandstream_openvpn_transport)} + {$grandstream_openvpn_transport} +{else} 0 +{/if} - + {$grandstream_openvpn_ca} - + {$grandstream_openvpn_cert} - + {$grandstream_openvpn_key} +{if isset($grandstream_openvpn_cipher)} + {$grandstream_openvpn_cipher} +{else} 0 +{/if} - + {$grandstream_openvpn_username} - + {$grandstream_openvpn_password} - + {$grandstream_openvpn_options} @@ -7583,7 +7599,7 @@ - 0 + {$grandstream_blf_remote_status} @@ -7910,17 +7926,21 @@ - 0 +{if isset($grandstream_headset_key_mode)} + {$grandstream_headset_key_mode} +{/if} - 0 +{if isset($grandstream_headset_type)} + {$grandstream_headset_type} - 0 + {$grandstream_headset_type} +{/if} @@ -8125,9 +8145,7 @@ {if isset($grandstream_wallpaper_url)} 1 {$grandstream_wallpaper_url} -{else} - 0 - + {/if} @@ -8139,8 +8157,6 @@ {if isset($grandstream_screensaver)} {$grandstream_screensaver} -{else} - 1 {/if} @@ -8148,8 +8164,6 @@ {if isset($grandstream_screensaver_source)} {$grandstream_screensaver_source} -{else} - 0 {/if} diff --git a/resources/templates/provision/grandstream/gxp2140/{$mac}.xml b/resources/templates/provision/grandstream/gxp2140/{$mac}.xml index dec0278e19..131813c209 100644 --- a/resources/templates/provision/grandstream/gxp2140/{$mac}.xml +++ b/resources/templates/provision/grandstream/gxp2140/{$mac}.xml @@ -354,7 +354,7 @@ - + {if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if} @@ -1308,7 +1308,7 @@ - + {if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if} @@ -2256,7 +2256,7 @@ - + {if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if} @@ -2615,7 +2615,7 @@ - grandstream_distinctive_ringtone_name_1 + {$grandstream_distinctive_ringtone_name_1} @@ -3205,7 +3205,7 @@ - + {if $nway_conference == true}nway{$account.4.user_id}@{$account.4.server_address}{/if} @@ -4155,7 +4155,7 @@ - + {if $nway_conference == true}nway{$account.5.user_id}@{$account.5.server_address}{/if} @@ -5105,7 +5105,7 @@ - + {if $nway_conference == true}nway{$account.6.user_id}@{$account.6.server_address}{/if} @@ -6056,50 +6056,66 @@ +{if isset($grandstream_openvpn_enable)} + {$grandstream_openvpn_enable} +{else} 0 +{/if} - + {$grandstream_openvpn_server} +{if isset($grandstream_openvpn_port)} + {$grandstream_openvpn_port} +{else} 1194 +{/if} +{if isset($grandstream_openvpn_transport)} + {$grandstream_openvpn_transport} +{else} 0 +{/if} - + {$grandstream_openvpn_ca} - + {$grandstream_openvpn_cert} - + {$grandstream_openvpn_key} +{if isset($grandstream_openvpn_cipher)} + {$grandstream_openvpn_cipher} +{else} 0 +{/if} - + {$grandstream_openvpn_username} - + {$grandstream_openvpn_password} - + {$grandstream_openvpn_options} @@ -7583,7 +7599,7 @@ - 0 + {$grandstream_blf_remote_status} @@ -7910,17 +7926,21 @@ - 0 +{if isset($grandstream_headset_key_mode)} + {$grandstream_headset_key_mode} +{/if} - 0 +{if isset($grandstream_headset_type)} + {$grandstream_headset_type} - 0 + {$grandstream_headset_type} +{/if} @@ -8125,9 +8145,7 @@ {if isset($grandstream_wallpaper_url)} 1 {$grandstream_wallpaper_url} -{else} - 0 - + {/if} @@ -8139,8 +8157,6 @@ {if isset($grandstream_screensaver)} {$grandstream_screensaver} -{else} - 1 {/if} @@ -8148,8 +8164,6 @@ {if isset($grandstream_screensaver_source)} {$grandstream_screensaver_source} -{else} - 0 {/if} diff --git a/resources/templates/provision/grandstream/gxp2160/{$mac}.xml b/resources/templates/provision/grandstream/gxp2160/{$mac}.xml index 138cf8188b..802852d4ec 100644 --- a/resources/templates/provision/grandstream/gxp2160/{$mac}.xml +++ b/resources/templates/provision/grandstream/gxp2160/{$mac}.xml @@ -354,7 +354,7 @@ - + {if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if} @@ -1308,7 +1308,7 @@ - + {if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if} @@ -2256,7 +2256,7 @@ - + {if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if} @@ -2615,7 +2615,7 @@ - grandstream_distinctive_ringtone_name_1 + {$grandstream_distinctive_ringtone_name_1} @@ -3205,7 +3205,7 @@ - + {if $nway_conference == true}nway{$account.4.user_id}@{$account.4.server_address}{/if} @@ -4155,7 +4155,7 @@ - + {if $nway_conference == true}nway{$account.5.user_id}@{$account.5.server_address}{/if} @@ -5105,7 +5105,7 @@ - + {if $nway_conference == true}nway{$account.6.user_id}@{$account.6.server_address}{/if} @@ -6056,50 +6056,66 @@ +{if isset($grandstream_openvpn_enable)} + {$grandstream_openvpn_enable} +{else} 0 +{/if} - + {$grandstream_openvpn_server} +{if isset($grandstream_openvpn_port)} + {$grandstream_openvpn_port} +{else} 1194 +{/if} +{if isset($grandstream_openvpn_transport)} + {$grandstream_openvpn_transport} +{else} 0 +{/if} - + {$grandstream_openvpn_ca} - + {$grandstream_openvpn_cert} - + {$grandstream_openvpn_key} +{if isset($grandstream_openvpn_cipher)} + {$grandstream_openvpn_cipher} +{else} 0 +{/if} - + {$grandstream_openvpn_username} - + {$grandstream_openvpn_password} - + {$grandstream_openvpn_options} @@ -7595,7 +7611,7 @@ - 0 + {$grandstream_blf_remote_status} @@ -7922,17 +7938,21 @@ - 0 +{if isset($grandstream_headset_key_mode)} + {$grandstream_headset_key_mode} +{/if} - 0 +{if isset($grandstream_headset_type)} + {$grandstream_headset_type} - 0 + {$grandstream_headset_type} +{/if} @@ -8137,9 +8157,7 @@ {if isset($grandstream_wallpaper_url)} 1 {$grandstream_wallpaper_url} -{else} - 0 - + {/if} @@ -8151,8 +8169,6 @@ {if isset($grandstream_screensaver)} {$grandstream_screensaver} -{else} - 1 {/if} @@ -8160,8 +8176,6 @@ {if isset($grandstream_screensaver_source)} {$grandstream_screensaver_source} -{else} - 0 {/if} diff --git a/resources/templates/provision/grandstream/gxp2170/{$mac}.xml b/resources/templates/provision/grandstream/gxp2170/{$mac}.xml index 10eec38c43..d4346f02e8 100644 --- a/resources/templates/provision/grandstream/gxp2170/{$mac}.xml +++ b/resources/templates/provision/grandstream/gxp2170/{$mac}.xml @@ -354,7 +354,7 @@ - + {if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if} @@ -1308,7 +1308,7 @@ - + {if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if} @@ -2256,7 +2256,7 @@ - + {if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if} @@ -2615,7 +2615,7 @@ - grandstream_distinctive_ringtone_name_1 + {$grandstream_distinctive_ringtone_name_1} @@ -3205,7 +3205,7 @@ - + {if $nway_conference == true}nway{$account.4.user_id}@{$account.4.server_address}{/if} @@ -4155,7 +4155,7 @@ - + {if $nway_conference == true}nway{$account.5.user_id}@{$account.5.server_address}{/if} @@ -5105,7 +5105,7 @@ - + {if $nway_conference == true}nway{$account.6.user_id}@{$account.6.server_address}{/if} @@ -6056,50 +6056,66 @@ +{if isset($grandstream_openvpn_enable)} + {$grandstream_openvpn_enable} +{else} 0 +{/if} - + {$grandstream_openvpn_server} - + +{if isset($grandstream_openvpn_port)} + {$grandstream_openvpn_port} +{else} 1194 +{/if} +{if isset($grandstream_openvpn_transport)} + {$grandstream_openvpn_transport} +{else} 0 +{/if} - + {$grandstream_openvpn_ca} - + {$grandstream_openvpn_cert} - + {$grandstream_openvpn_key} +{if isset($grandstream_openvpn_cipher)} + {$grandstream_openvpn_cipher} +{else} 0 +{/if} - + {$grandstream_openvpn_username} - + {$grandstream_openvpn_password} - + {$grandstream_openvpn_options} @@ -7583,7 +7599,7 @@ - 0 + {$grandstream_blf_remote_status} @@ -7910,17 +7926,21 @@ - 0 +{if isset($grandstream_headset_key_mode)} + {$grandstream_headset_key_mode} +{/if} - 0 +{if isset($grandstream_headset_type)} + {$grandstream_headset_type} - 0 + {$grandstream_headset_type} +{/if} @@ -8125,9 +8145,7 @@ {if isset($grandstream_wallpaper_url)} 1 {$grandstream_wallpaper_url} -{else} - 0 - + {/if} @@ -8139,8 +8157,6 @@ {if isset($grandstream_screensaver)} {$grandstream_screensaver} -{else} - 1 {/if} @@ -8148,8 +8164,6 @@ {if isset($grandstream_screensaver_source)} {$grandstream_screensaver_source} -{else} - 0 {/if} diff --git a/resources/templates/provision/grandstream/gxp21xx/{$mac}.xml b/resources/templates/provision/grandstream/gxp21xx/{$mac}.xml index 06291563af..932b41e83e 100644 --- a/resources/templates/provision/grandstream/gxp21xx/{$mac}.xml +++ b/resources/templates/provision/grandstream/gxp21xx/{$mac}.xml @@ -122,7 +122,7 @@ - + {if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if} @@ -324,28 +324,28 @@ 0 - + {$grandstream_distinctive_ringtone_name_1} - 0 + {$grandstream_distinctive_ringtone_1} - + {$grandstream_distinctive_ringtone_name_2} - 0 + {$grandstream_distinctive_ringtone_2} - + {$grandstream_distinctive_ringtone_name_3} - 0 + {$grandstream_distinctive_ringtone_3} @@ -559,7 +559,7 @@ - + {if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if} @@ -991,7 +991,7 @@ - + {if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if} @@ -1185,7 +1185,7 @@ 0 - + {$grandstream_distinctive_ringtone_name_1} @@ -1421,7 +1421,7 @@ - + {if $nway_conference == true}nway{$account.4.user_id}@{$account.4.server_address}{/if} @@ -1845,7 +1845,7 @@ - + {if $nway_conference == true}nway{$account.5.user_id}@{$account.5.server_address}{/if} @@ -2276,7 +2276,7 @@ - + {if $nway_conference == true}nway{$account.6.user_id}@{$account.6.server_address}{/if} @@ -3062,7 +3062,21 @@ Outgoing calls. 0 - No, 1 - Yes. Default is 0 --> - 0 +{if isset($grandstream_headset_key_mode)} + {$grandstream_headset_key_mode} +{/if} + + + + +{if isset($grandstream_headset_type)} + {$grandstream_headset_type} + + + + + {$grandstream_headset_type} +{/if} diff --git a/resources/templates/provision/grandstream/gxp21xxbk/{$mac}.xml b/resources/templates/provision/grandstream/gxp21xxbk/{$mac}.xml index 66bde7e9f3..fb21b136ec 100644 --- a/resources/templates/provision/grandstream/gxp21xxbk/{$mac}.xml +++ b/resources/templates/provision/grandstream/gxp21xxbk/{$mac}.xml @@ -272,7 +272,7 @@ - +{if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if} @@ -530,33 +530,33 @@ - +{$grandstream_distinctive_ringtone_name_1} -0 +{$grandstream_distinctive_ringtone_1} - +{$grandstream_distinctive_ringtone_name_2} -0 +{$grandstream_distinctive_ringtone_2} - +{$grandstream_distinctive_ringtone_name_3} -0 +{$grandstream_distinctive_ringtone_3} @@ -836,7 +836,7 @@ - +{if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if} @@ -1399,7 +1399,7 @@ - +{if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if} @@ -1647,7 +1647,7 @@ - +{$grandstream_distinctive_ringtone_name_1} @@ -1955,7 +1955,7 @@ - +{if $nway_conference == true}nway{$account.4.user_id}@{$account.4.server_address}{/if} @@ -2505,7 +2505,7 @@ - +{if $nway_conference == true}nway{$account.5.user_id}@{$account.5.server_address}{/if} @@ -3062,7 +3062,7 @@ - +{if $nway_conference == true}nway{$account.6.user_id}@{$account.6.server_address}{/if} @@ -3772,7 +3772,21 @@ Outgoing calls. 0 - No, 1 - Yes. Default is 0 --> -0 +{if isset($grandstream_headset_key_mode)} + {$grandstream_headset_key_mode} +{/if} + + + + +{if isset($grandstream_headset_type)} + {$grandstream_headset_type} + + + + + {$grandstream_headset_type} +{/if} diff --git a/resources/templates/provision/grandstream/gxp2200/{$mac}.xml b/resources/templates/provision/grandstream/gxp2200/{$mac}.xml index 9b1cf9c7ef..3daed2bfba 100644 --- a/resources/templates/provision/grandstream/gxp2200/{$mac}.xml +++ b/resources/templates/provision/grandstream/gxp2200/{$mac}.xml @@ -344,7 +344,7 @@ - +{if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if} @@ -367,7 +367,7 @@ - +{$grandstream_distinctive_ringtone_name_1} @@ -375,7 +375,7 @@ - +{$grandstream_distinctive_ringtone_name_2} @@ -383,7 +383,7 @@ - +{$grandstream_distinctive_ringtone_name_3} @@ -762,7 +762,7 @@ - +{if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if} @@ -1190,7 +1190,7 @@ VNumber: 0, 1, 2. --> - +{if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if} @@ -1214,7 +1214,7 @@ VNumber: 0, 1, 2. --> - +{$grandstream_distinctive_ringtone_name_1} @@ -1620,7 +1620,7 @@ VNumber: 0, 1, 2. --> - +{if $nway_conference == true}nway{$account.4.user_id}@{$account.4.server_address}{/if} content://settings/system/ringtone @@ -2045,7 +2045,7 @@ Account 5 Codec Settings - +{if $nway_conference == true}nway{$account.5.user_id}@{$account.5.server_address}{/if} @@ -2471,7 +2471,7 @@ Account 5 Codec Settings - +{if $nway_conference == true}nway{$account.6.user_id}@{$account.6.server_address}{/if} @@ -3337,13 +3337,23 @@ Account 5 Codec Settings 0 {/if} - - -0 - -0 +{if isset($grandstream_headset_key_mode)} + {$grandstream_headset_key_mode} +{/if} + + + + +{if isset($grandstream_headset_type)} + {$grandstream_headset_type} + + + + + {$grandstream_headset_type} +{/if} diff --git a/resources/templates/provision/grandstream/gxp3240/{$mac}.xml b/resources/templates/provision/grandstream/gxp3240/{$mac}.xml index ad6099c077..c2123cf046 100644 --- a/resources/templates/provision/grandstream/gxp3240/{$mac}.xml +++ b/resources/templates/provision/grandstream/gxp3240/{$mac}.xml @@ -555,7 +555,7 @@ - +{if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if} @@ -578,7 +578,7 @@ - +{$grandstream_distinctive_ringtone_name_1} @@ -586,7 +586,7 @@ - +{$grandstream_distinctive_ringtone_name_2} @@ -594,7 +594,7 @@ - +{$grandstream_distinctive_ringtone_name_3} @@ -973,7 +973,7 @@ - +{if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if} @@ -1401,7 +1401,7 @@ VNumber: 0, 1, 2. --> - +{if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if} @@ -1425,7 +1425,7 @@ VNumber: 0, 1, 2. --> - +{$grandstream_distinctive_ringtone_name_1} @@ -1831,7 +1831,7 @@ VNumber: 0, 1, 2. --> - +{if $nway_conference == true}nway{$account.4.user_id}@{$account.4.server_address}{/if} content://settings/system/ringtone @@ -2256,7 +2256,7 @@ Account 5 Codec Settings - +{if $nway_conference == true}nway{$account.5.user_id}@{$account.5.server_address}{/if} @@ -2682,7 +2682,7 @@ Account 5 Codec Settings - +{if $nway_conference == true}nway{$account.6.user_id}@{$account.6.server_address}{/if} @@ -3547,13 +3547,23 @@ Account 5 Codec Settings 0 {/if} - - -0 - -0 +{if isset($grandstream_headset_key_mode)} + {$grandstream_headset_key_mode} +{/if} + + + + +{if isset($grandstream_headset_type)} + {$grandstream_headset_type} + + + + + {$grandstream_headset_type} +{/if} diff --git a/resources/templates/provision/grandstream/gxv3240/{$mac}.xml b/resources/templates/provision/grandstream/gxv3240/{$mac}.xml index e20791bf76..aac3d95b55 100644 --- a/resources/templates/provision/grandstream/gxv3240/{$mac}.xml +++ b/resources/templates/provision/grandstream/gxv3240/{$mac}.xml @@ -600,7 +600,7 @@ - +{if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if} @@ -1255,7 +1255,7 @@ - +{if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if} @@ -1893,7 +1893,7 @@ - +{if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if} @@ -1924,7 +1924,7 @@ - +{$grandstream_distinctive_ringtone_name_1} @@ -2534,7 +2534,7 @@ - +{if $nway_conference == true}nway{$account.4.user_id}@{$account.4.server_address}{/if} @@ -3173,7 +3173,7 @@ - +{if $nway_conference == true}nway{$account.5.user_id}@{$account.5.server_address}{/if} @@ -3814,7 +3814,7 @@ - +{if $nway_conference == true}nway{$account.6.user_id}@{$account.6.server_address}{/if} @@ -5408,14 +5408,18 @@ {if isset($grandstream_headset_type)} +{$grandstream_headset_type} + + + {$grandstream_headset_type} -{else} -0 {/if} -0 +{if isset($grandstream_headset_key_mode)} + {$grandstream_headset_key_mode} +{/if} diff --git a/resources/templates/provision/grandstream/gxv3275/{$mac}.xml b/resources/templates/provision/grandstream/gxv3275/{$mac}.xml index d3c41f54f2..8afee5dfec 100644 --- a/resources/templates/provision/grandstream/gxv3275/{$mac}.xml +++ b/resources/templates/provision/grandstream/gxv3275/{$mac}.xml @@ -560,7 +560,7 @@ - +{if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if} @@ -583,7 +583,7 @@ - +{$grandstream_distinctive_ringtone_name_1} @@ -591,7 +591,7 @@ - +{$grandstream_distinctive_ringtone_name_2} @@ -599,7 +599,7 @@ - +{$grandstream_distinctive_ringtone_name_3} @@ -978,7 +978,7 @@ - +{if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if} @@ -1406,7 +1406,7 @@ VNumber: 0, 1, 2. --> - +{if $nway_conference == true}nway{$account.3.user_id}@{$account.3.server_address}{/if} @@ -1430,7 +1430,7 @@ VNumber: 0, 1, 2. --> - +{$grandstream_distinctive_ringtone_name_1} @@ -1836,7 +1836,7 @@ VNumber: 0, 1, 2. --> - +{if $nway_conference == true}nway{$account.4.user_id}@{$account.4.server_address}{/if} content://settings/system/ringtone @@ -2261,7 +2261,7 @@ Account 5 Codec Settings - +{if $nway_conference == true}nway{$account.5.user_id}@{$account.5.server_address}{/if} @@ -2687,7 +2687,7 @@ Account 5 Codec Settings - +{if $nway_conference == true}nway{$account.6.user_id}@{$account.6.server_address}{/if} @@ -3551,13 +3551,23 @@ Account 5 Codec Settings 0 {/if} - - -0 - -0 +{if isset($grandstream_headset_key_mode)} + {$grandstream_headset_key_mode} +{/if} + + + + +{if isset($grandstream_headset_type)} + {$grandstream_headset_type} + + + + + {$grandstream_headset_type} +{/if} diff --git a/resources/templates/provision/grandstream/ht802/{$mac}.xml b/resources/templates/provision/grandstream/ht802/{$mac}.xml index cc6672c368..63526f3143 100644 --- a/resources/templates/provision/grandstream/ht802/{$mac}.xml +++ b/resources/templates/provision/grandstream/ht802/{$mac}.xml @@ -1109,7 +1109,7 @@ 0 - + {if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if} @@ -1987,7 +1987,7 @@ 0 - + {if $nway_conference == true}nway{$account.2.user_id}@{$account.2.server_address}{/if} diff --git a/resources/templates/provision/grandstream/ht818/{$mac}.xml b/resources/templates/provision/grandstream/ht818/{$mac}.xml index fae40cd009..88f170f8d4 100644 --- a/resources/templates/provision/grandstream/ht818/{$mac}.xml +++ b/resources/templates/provision/grandstream/ht818/{$mac}.xml @@ -1048,7 +1048,7 @@ 0 - + {if $nway_conference == true}nway{$account.1.user_id}@{$account.1.server_address}{/if} diff --git a/resources/templates/provision/grandstream/wp820/{$mac}.xml b/resources/templates/provision/grandstream/wp820/{$mac}.xml index 2408aafad6..d6ac56350b 100644 --- a/resources/templates/provision/grandstream/wp820/{$mac}.xml +++ b/resources/templates/provision/grandstream/wp820/{$mac}.xml @@ -556,19 +556,19 @@ - +{$grandstream_distinctive_ringtone_name_1} - +{$grandstream_distinctive_ringtone_name_2} - +{$grandstream_distinctive_ringtone_name_3} @@ -1185,7 +1185,7 @@ - +{$grandstream_distinctive_ringtone_name_1} @@ -1195,23 +1195,23 @@ - +{$grandstream_distinctive_ringtone_name_2} -0 +{$grandstream_distinctive_ringtone_2} - +{$grandstream_distinctive_ringtone_name_3} -0 +{$grandstream_distinctive_ringtone_3} diff --git a/resources/templates/provision/polycom/3.x/{$mac}.cfg b/resources/templates/provision/polycom/3.x/{$mac}.cfg index d90ce262b1..c049239c40 100644 --- a/resources/templates/provision/polycom/3.x/{$mac}.cfg +++ b/resources/templates/provision/polycom/3.x/{$mac}.cfg @@ -1,17 +1,19 @@ - - - diff --git a/resources/templates/provision/polycom/4.x/{$mac}.cfg b/resources/templates/provision/polycom/4.x/{$mac}.cfg index 3b6538db33..7a5ed10116 100644 --- a/resources/templates/provision/polycom/4.x/{$mac}.cfg +++ b/resources/templates/provision/polycom/4.x/{$mac}.cfg @@ -217,9 +217,12 @@ up.headsetMode="1" voice.aec.hf.enable="1" voice.aec.hs.enable="1" - - msg.mwi.{$row.line_number}.callBackMode="contact" - msg.mwi.{$row.line_number}.callBack="{$voicemail_number}" + {foreach $lines as $row} + msg.mwi.{$row.line_number}.callBackMode="contact" + msg.mwi.{$row.line_number}.callBack="{$voicemail_number}" + {/foreach} + reg.1.server.1.subscribe.expires="2592000" + {if isset($polycom_contacts_directory)}contacts_directory="{$polycom_contacts_directory}/{$domain_name}/"{/if} /> +{foreach $contacts as $row} +{if $smarty.get.contacts == "users" && $row.category == "users"} + +{if $row.contact_name_given != ""} +{if $row.contact_organization != ""} + {$row.contact_organization} {$row.contact_name_given} {$row.contact_name_family} +{else} + {$row.contact_name_given} {$row.contact_name_family} +{/if} +{else} +{$row.effective_caller_id_name} +{/if} +{foreach $row.numbers as $number} +{if $number.phone_number != ""} + {$number.phone_number} +{else} + {$number.phone_extension} +{/if} +{/foreach} + +{elseif $smarty.get.contacts == "groups" && $row.category == "groups"} + +{if $row.contact_name_given != ""} +{if $row.contact_organization != ""} + {$row.contact_organization} {$row.contact_name_given} {$row.contact_name_family} +{else} + {$row.contact_name_given} {$row.contact_name_family} +{/if} +{else} + {$row.effective_caller_id_name} +{/if} +{foreach $row.numbers as $number} +{if $number.phone_number != ""} + {$number.phone_number} +{else} + {$number.phone_extension} +{/if} +{/foreach} + +{elseif $smarty.get.contacts == "extensions" && $row.category == "extensions"} + +{if $row.contact_name_given != ""} + {$row.contact_name_given} {$row.contact_name_family} +{else} + {$row.effective_caller_id_name} +{/if} +{if $row.phone_number != ""} + {$row.phone_number} +{else} + {$row.phone_extension} +{/if} + +{elseif $smarty.get.contacts == "all"} + +{if $row.contact_name_given != ""} +{if $row.contact_organization != ""} + {$row.contact_organization} {$row.contact_name_given} {$row.contact_name_family} +{else} + {$row.contact_name_given} {$row.contact_name_family} +{/if} +{else} + {$row.effective_caller_id_name} +{/if} +{if $row.category == "extensions"} +{if $row.phone_number != ""} + {$row.phone_number} +{else} + {$row.phone_extension} +{/if} +{else} +{foreach $row.numbers as $number} +{if $number.phone_number != ""} + {$number.phone_number} +{else} + {$number.phone_extension} +{/if} +{/foreach} +{/if} + +{/if} +{/foreach} + diff --git a/resources/templates/provision/yealink/vp59/favorite_setting.xml b/resources/templates/provision/yealink/vp59/favorite_setting.xml new file mode 100644 index 0000000000..ba7275358e --- /dev/null +++ b/resources/templates/provision/yealink/vp59/favorite_setting.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/resources/templates/provision/yealink/vp59/y000000000000.boot b/resources/templates/provision/yealink/vp59/y000000000000.boot new file mode 100644 index 0000000000..178973c04a --- /dev/null +++ b/resources/templates/provision/yealink/vp59/y000000000000.boot @@ -0,0 +1,7 @@ +#!version:1.0.0.1 +## The header above must appear as-is in the first line + +include:config "y000000000091.cfg" +include:config "{$mac}.cfg" + +overwrite_mode = {$yealink_overwrite_mode} diff --git a/resources/templates/provision/yealink/vp59/y000000000091.cfg b/resources/templates/provision/yealink/vp59/y000000000091.cfg new file mode 100644 index 0000000000..34d8cde266 --- /dev/null +++ b/resources/templates/provision/yealink/vp59/y000000000091.cfg @@ -0,0 +1,1777 @@ +#!version:1.0.0.1 + +##File header "#!version:1.0.0.1" can not be edited or deleted, and must be placed in the first line.## + + +####################################################################################### +## Network CDP ## +####################################################################################### +static.network.cdp.enable = +static.network.cdp.packet_interval = + +####################################################################################### +## Network IPv6 ## +####################################################################################### +static.network.ipv6_static_dns_enable = +static.network.ipv6_icmp_v6.enable = +static.network.ipv6_secondary_dns = +static.network.ipv6_primary_dns = +static.network.ipv6_internet_port.gateway = +static.network.ipv6_internet_port.ip = +static.network.ipv6_internet_port.type = +static.network.ipv6_prefix = + + +####################################################################################### +## Hostname ## +####################################################################################### +static.network.dhcp_host_name = + +####################################################################################### +## Network Internet ## +####################################################################################### +static.network.ip_address_mode = +static.network.vlan.pc_port_mode = +static.network.static_dns_enable = +static.network.pc_port.enable = +static.network.primary_dns = +static.network.secondary_dns = +static.network.internet_port.gateway = +static.network.internet_port.mask = +static.network.internet_port.ip = +static.network.internet_port.type = + + +####################################################################################### +## Network Advanced ## +####################################################################################### + +##It configures the transmission mode and speed of the Internet (WAN) port. +##0-Auto Negotiate +##1-Full Duplex 10Mbps +##2-Full Duplex 100Mbps +##3-Half Duplex 10Mbps +##4-Half Duplex 100Mbps +##5-Full Duplex 1000Mbps (only applicable to SIP-T42G and SIP-T46G IP phones) +##The default value is 0.It takes effect after a reboot. +static.network.internet_port.speed_duplex = + +##It configures the transmission mode and speed of the PC (LAN) port. +##0-Auto Negotiate +##1-Full Duplex 10Mbps +##2-Full Duplex 100Mbps +##3-Half Duplex 10Mbps +##4-Half Duplex 100Mbps +##5-Full Duplex 1000Mbps (only applicable to SIP-T42G and SIP-T46G IP phones) +##The default value is 0.It takes effect after a reboot. +static.network.pc_port.speed_duplex = + +##It enable or disable to use A record of TTL +##The defalue value is 1;0-Disable 1-Enable +static.network.dns.ttl_enable = + +##It configures the LAN MTU +##The default value is 1500,.Integer from 128 to 1500.It takes effect after a reboot. +static.network.mtu_value = + +static.network.dhcp.option60type = + +static.network.dns.last_cache_expired.enable = +static.network.dns.last_cache_expired = +static.network.dns.query_timeout = + +####################################################################################### +## VLAN ## +####################################################################################### +static.network.vlan.internet_port_enable = +static.network.vlan.internet_port_vid = +static.network.vlan.internet_port_priority = +static.network.vlan.pc_port_enable = +static.network.vlan.pc_port_vid = +static.network.vlan.pc_port_priority = +static.network.vlan.dhcp_enable = +static.network.vlan.dhcp_option = +##It configures LLDP or manually VLAN can't obtain IP, whether to switch to other methods of VLAN or closed VLAN to get IP +##(Except T19P/T21P Models) 0-Disable 1-Enable +static.network.vlan.vlan_change.enable = + +####################################################################################### +## WEB Port ## +####################################################################################### +##It configures the HTTP port for web server access. +##The default value is 80.It takes effect after a reboot. +static.network.port.http = + +##It configures the HTTPS port for web server access. +##The default value is 443.It takes effect after a reboot. +static.network.port.https = + +static.wui.https_enable = +static.wui.http_enable = + +####################################################################################### +## QoS ## +####################################################################################### +##It configures the audio QoS. +##The default value is 46.It takes effect after a reboot.Integer from 0 to 63 +static.network.qos.audiotos = + +##It configures the SIP QoS. +##The default value is 26.It takes effect after a reboot.Integer from 0 to 63 +static.network.qos.signaltos = + +##It configures the video QoS. +##The default value is 34.It takes effect after a reboot.Integer from 0 to 63 +static.network.qos.videotos = + +####################################################################################### +## 802.1X ## +####################################################################################### +static.network.802_1x.mode = +static.network.802_1x.identity = +static.network.802_1x.md5_password = +static.network.802_1x.root_cert_url = +static.network.802_1x.client_cert_url = + +##It configure the mouth of the PC 802.1 x - logoff function.It takes effect after a reboot. +##The default value is 0-Dsable , 1-Enable +static.network.802_1x.proxy_eap_logoff.enable = + +static.network.802_1x.eap_fast_provision_mode = +static.network.802_1x.anonymous_identity = +####################################################################################### +## OpenVPN(Except T19P Model) ## +####################################################################################### +static.network.vpn_enable = +static.openvpn.url = + +####################################################################################### +## LLDP ## +####################################################################################### +static.network.lldp.enable = +static.network.lldp.packet_interval = + +####################################################################################### +## Span to PC ## +####################################################################################### +static.network.span_to_pc_port = + +####################################################################################### +## RTP Port ## +####################################################################################### +static.sip.min_udp_port = +static.sip.max_udp_port = +static.sip.min_tcp_port = +static.sip.max_tcp_port = + +####################################################################################### +## Syslog ## +####################################################################################### +static.syslog.enable = +static.syslog.server = +static.syslog.level = +static.syslog.server_port = +static.syslog.transport_type = +static.syslog.facility = +static.syslog.prepend_mac_address.enable = +static.local_log.enable = +static.local_log.level = +static.local_log.max_file_size = + +####################################################################################### +## TR069 ## +####################################################################################### +static.managementserver.enable = +static.managementserver.username = +static.managementserver.password = +static.managementserver.url = +static.managementserver.connection_request_username = +static.managementserver.connection_request_password = +static.managementserver.periodic_inform_enable = +static.managementserver.periodic_inform_interval = + +####################################################################################### +## Autoprovision ## ## +####################################################################################### +### It enables or disables the phone to synchronize personalized configuration settings with the auto provisioning server. +### If it is set to 1 (Enabled), personalized configuration settings via web/phone user interface are saved in the MAC-local.cfg file on the phone, +### and then the phone will upload the MAC-local.cfg file to the provisioning server. During auto provisioning, the phone requests to download the MAC-local.cfg file on the provisioning server. +### 0-Disabled, 1-Enabled. The default value is 0. +static.auto_provision.custom.sync = + +### It enables or disables the phone to protect personalized configuration settings even after auto provisioning. +### If it is set to 1 (Enabled), personalized configuration settings via web/phone user interface will be protected and remained after auto provisioning. +### 0-Disabled, 1-Enabled. The default value is 0. +static.auto_provision.custom.protect = +static.auto_provision.custom.sync.path = +static.auto_provision.custom.upload_method = +static.auto_provision.attempt_expired_time = + +##V83 Add +static.auto_provision.authentication.expired_time = +static.auto_provision.connect.keep_alive = + +static.auto_provision.inactivity_time_expire = + +custom.auto_provision.save_rps_info.enable = +static.auto_provision.attempt_before_failed = +static.auto_provision.retry_delay_after_file_transfer_failed = +static.auto_provision.server.type = +static.auto_provision.update_file_mode = +static.auto_provision.prompt.enable = +####################################################################################### +## Autop Mode ## +####################################################################################### +static.auto_provision.power_on = + +####################################################################################### +## Autop PNP ## +####################################################################################### +static.auto_provision.pnp_enable = + +####################################################################################### +## Autop DHCP ## +####################################################################################### +static.auto_provision.dhcp_option.enable = +static.auto_provision.dhcp_option.list_user_options = + +####################################################################################### +## Autop Repeat ## +####################################################################################### +static.auto_provision.repeat.enable = +static.auto_provision.repeat.minutes = + +####################################################################################### +## Autop Weekly ## +####################################################################################### +static.auto_provision.weekly.enable = +static.auto_provision.weekly.dayofweek = +static.auto_provision.weekly.begin_time = +static.auto_provision.weekly.end_time = +static.auto_provision.weekly_upgrade_interval = +####################################################################################### +## Autop URL ## +####################################################################################### +static.auto_provision.server.url = +static.auto_provision.server.username = +static.auto_provision.server.password = + +####################################################################################### +## Autop AES Key ## +####################################################################################### +##It configures the AES key for decrypting the Common CFG file. The valid characters contain: 0 ~ 9, A ~ Z, a ~ z. +##The default value is blank. +static.auto_provision.aes_key_16.com = + +##It configures the AES key for decrypting the MAC-Oriented CFG file. The valid characters contain: 0 ~ 9, A ~ Z, a ~ z. +##The default value is blank. + +static.auto_provision.aes_key_16.mac = +static.auto_provision.aes_key_in_file = + +##It configures the access URL of the custom MAC-Oriented CFG file. +##The default value is blank. +static.custom_mac_cfg.url = + +##It configures the value (vendor name of the device) of DHCP option 60. +##The default value is yealink. +static.auto_provision.dhcp_option.option60_value = +##It configuration phone update to restart automatically.It takes effect after a reboot. +##0-Disable 1-Enable +static.auto_provision.reboot_force.enable = + +####################################################################################### +## Autop wildcard ## +####################################################################################### + +static.auto_provision.url_wildcard.pn = + +####################################################################################### +## Autop Code ## +####################################################################################### +##It configures the name of the code for triggering auto provisioning. +##The default value is blank.It takes effect after a reboot. +static.autoprovision.1.name = + +##It configures the code for triggering auto provisioning. +##Valid characters are digits, # and *.Example:static.autoprovision.1.code = *99The default value is blank. +##It takes effect after a reboot. +static.autoprovision.1.code = + +##It configures the access URL of auto provisioning server.The default value is blank. +##It takes effect after a reboot. +static.autoprovision.1.url = + +##It configures the user name for authentication during auto provisioning. +##The default value is blank.It takes effect after a reboot. +static.autoprovision.1.user = + +##It configures the password for authentication during auto provisioning. +##The default value is blank.It takes effect after a reboot. +static.autoprovision.1.password = + +##It configures the AES key for decrypting the Common CFG file. +##The default value is blank.It takes effect after a reboot. +static.autoprovision.1.com_aes = + +##It configures the AES key for decrypting the MAC-Oriented CFG file. +##The default value is blank.It takes effect after a reboot. +static.autoprovision.1.mac_aes = + +####################################################################################### +## Watch Dog ## +####################################################################################### +static.watch_dog.enable = + +####################################################################################### +## SIP Advanced ## +####################################################################################### +sip.use_23_as_pound = +sip.rfc2543_hold = +sip.use_out_bound_in_dialog = +sip.reg_surge_prevention = +sip.send_response_by_request = +sip.notify_reboot_enable = +sip.disp_incall_to_info = +sip.listen_port = +sip.tls_listen_port = +sip.trust_ctrl = +static.sip.nat_stun.enable = +static.sip.nat_stun.server = +static.sip.nat_stun.port = +sip.timer_t1 = +sip.timer_t2 = +sip.timer_t4 = + +##It is ASCII conversion into corresponding symbols. +##The defalult value is blank. 0-Disable 1-Enable +sip.escape_characters.enable = + +sip.reserve_characters = + +##The default value is 0 ( said according to the transmission mode configured to listen on port),1- +##1-said at the same time to monitor TCP and UDP +##2-said to monitor TCP and UDP at the same time, and from the BLF - the LIST to subscribe to the contact with a transport = TCP parameters +sip.listen_mode = + +##The default value is 0.(contracting out the random contact, via port to carry fixed port).It takes effect after a reboot. +##1-the out-contracting port random contact, via port to carry +##2-the out-contracting ports fixed contact, via carry fix +sip.tcp_port_random_mode = + +sip.call_fail_use_reason.enable = +sip.cid_source.preference = + +##V83 Add +sip.request_validation.event = +sip.request_validation.digest.realm = +sip.request_validation.digest.list = +sip.request_validation.source.list = + +####################################################################################### +## Echo Cancellation ## +####################################################################################### +voice.vad = +voice.cng = +voice.echo_cancellation = +voice.ans_nb.enable = +voice.tns.enable = + +####################################################################################### +## Jitter Buffer ## +####################################################################################### +voice.jib.adaptive = +voice.jib.min = +voice.jib.max = +voice.jib.normal = + +####################################################################################### +## Tones ## +####################################################################################### +voice.tone.country = +voice.tone.dial = +voice.tone.ring = +voice.tone.busy = +voice.tone.congestion = +voice.tone.callwaiting = +voice.tone.dialrecall = +voice.tone.info = +voice.tone.stutter = +voice.tone.autoanswer = + +####################################################################################### +## Volume ## +####################################################################################### +voice.handfree_send = +voice.handset_send = +voice.headset_send = + +voice.headset.autoreset_spk_vol = +voice.handset.autoreset_spk_vol = +voice.handfree.autoreset_spk_vol = + +####################################################################################### +## Transfer ## +####################################################################################### +##It enables or disables the transferee party¡¯s phone to prompt a missed call on the LCD screen before displaying +##the caller ID when performing a semi-attended transfer.0-Enabled,1-Disabled +##The default value is 1. +transfer.semi_attend_tran_enable = + +##It enables or disables the phone to complete the blind transfer through on-hook.0-Disabled,1-Enabled . +##The default value is 1. +transfer.blind_tran_on_hook_enable = + +##It enables or disables the phone to transfer call to the two parties after a local conference call hangs up. +##0-Disabled,1-Enabled. +##The default value is 0. +transfer.tran_others_after_conf_enable = + +##It enables or disables the phone to complete the attended transfer through on-hook. +##0-Disabled,1-Enabled. +##The default value is 1. +transfer.on_hook_trans_enable = + +##It configures the DSS key behavior during an active call when user presses the DSS +##key and the DSS key is configured as a speed dial, transfer or BLF/BLF list key. +##0-New Call,1-Attended Transfer,2-Blind Transfer. +##The default value is 2. +transfer.dsskey_deal_type = + +##It enables or disables the phone to enter Transfer to menu during multiple calls when pressing the transfer soft key or TRAN key. +##0-Disabled,1-Enabled. +##The default value is 1. +transfer.multi_call_trans_enable = + +####################################################################################### +## Language Settings ## +####################################################################################### +##It configures the language of the web user interface. +lang.wui = + +##It configures the language of the phone user interface. +##The default value is English. +lang.gui = + +gui_lang.url = +gui_lang.delete = +wui_lang.url = +wui_lang_note.url = +wui_lang.delete = + +####################################################################################### +## Auto Redial ## +####################################################################################### +auto_redial.enable = +auto_redial.interval = +auto_redial.times = + +####################################################################################### +## Zero Touch ## +####################################################################################### +static.zero_touch.enable = +static.zero_touch.wait_time = +static.features.hide_zero_touch_url.enable = +static.zero_touch.network_fail_wait_times = +static.zero_touch.network_fail_delay_times = + + +####################################################################################### +## Dial Plan ## +####################################################################################### +dialplan.area_code.code = +dialplan.area_code.min_len = +dialplan.area_code.max_len = +dialplan.area_code.line_id = + +### X ranges from 1 to 10 +###dialplan.block_out.number.x = +###dialplan.block_out.line_id.x = + +dialplan.block_out.number.1 = +dialplan.block_out.line_id.1 = + +###X ranges from 1 to 100 +###dialplan.dialnow.rule.X = +###dialplan.dialnow.line_id.X = + +dialplan.dialnow.rule.1 = +dialplan.dialnow.line_id.1 = + +###X ranges from 1 to 100 +###dialplan.replace.prefix.X = +###dialplan.replace.replace.X = +###dialplan.replace.line_id.X = + +dialplan.replace.prefix.1 = +dialplan.replace.replace.1 = +dialplan.replace.line_id.1 = + +dialplan_dialnow.url = +phone_setting.dialnow_delay = +dialplan_replace_rule.url = + + +####################################################################################### +## Remote Phonebook(Except T20P Model) ## +####################################################################################### +###X ranges from 1 to 5 +###remote_phonebook.data.X.url = +###remote_phonebook.data.X.name = + +remote_phonebook.data.1.url = +remote_phonebook.data.1.name = +remote_phonebook.display_name = + +###It enables or disables the phone to update the data of the remote phone book at a time when accessing the remote phone book. +###0-Disabled, 1-Enabled. The default value is 0. +features.remote_phonebook.enter_update_enable = + +##It enables or disables the phone to perform a remote phone book search when receiving an incoming call. +##0-Disabled,1-Enabled. +##The default value is 0. +features.remote_phonebook.enable = + +##It configures the interval (in seconds) for the phone to update the data of the remote phone book from the remote phone book server. +##The value 0 means the phone will not regularly update the data of the remote phone book from the remote phone book server. +##The default value is 21600.Integer from 3600 to 2592000,and 0. +features.remote_phonebook.flash_time = + +####################################################################################### +## LDAP ## +####################################################################################### +##It enables or disables LDAP feature.0-Disabled,1-Enabled. +##The default value is 0. +ldap.enable = + +##It configures the criteria for searching the contact name attributes. +##Example:ldap.name_filter = (|(cn=%)(sn=%)). +##The default value is blank. +ldap.name_filter = + +##It configures the criteria for searching the contact number attributes. +##Example:ldap.number_filter = (|(telephoneNumber=%)(mobile=%)(ipPhone=%)) +##The default value is blank. +ldap.number_filter = + +##It configures the IP address or domain name of the LDAP server. +##The default value is blank. +ldap.host = + +##It configures the port of the LDAP server. +##The default value is 389.Integer from 1 to 65535. +ldap.port = + +##It configures the LDAP search base which corresponds to the location of the LDAP phonebook. +##Example:ldap.base = dc=yealink,dc=cn. +##The default value is blank. +ldap.base = + +##It configures the user name for accessing the LDAP server. +##The default value is blank. +ldap.user = + +##It configures the password for accessing the LDAP server. +##The default value is blank. +ldap.password = + +##It configures the maximum of the search results returned by the LDAP server to be displayed. +##The default value is 50.Integer from 1 to 32000. +ldap.max_hits = + +##It configures the name attributes of each record to be returned by the LDAP server. +##Multiple attributes are separated by spaces.Example:ldap.name_attr =sn cn. +##The default value is blank. +ldap.name_attr = + +##It configures the number attributes of each record to be returned by the LDAP server. +##Multiple attributes are separated by spaces.Example:ldap.numb_attr = Mobile ipPhone. +##The default value is blank. +ldap.numb_attr = + +##It configures the display name of the contact record displayed on the LCD screen. The value of this parameter must start with ¡°%¡± symbol. +##Example:ldap.display_name = %cn +##The default value is blank. +ldap.display_name = + +##It configures the LDAP version. +##The default value is 3. +ldap.version = + +##It enables or disables the phone to perform an LDAP search when receiving an incoming call. +##0-Disabled,1-Enabled. +##The default value is 0. +ldap.call_in_lookup = + +##It enables or disables the phone to sort the search results in alphabetical order or numerical order. +##0-Disabled,1-Enabled. +##The default value is 0. +ldap.ldap_sort = +##It is the electricity + start, automatic search + 00 the beginning and the beginning of the numbe +##The default value is 0.(0-Disable,1-Enable )(Except T19P/T21P Models) +ldap.incoming_call_special_search.enable = +##The default value is 0,value of 0 to 2, respectively the ldap, ldap + StarTLS and ldaps +ldap.tls_mode = +ldap.call_out_lookup = +ldap.customize_label= +####################################################################################### +## Features ## +####################################################################################### +features.normal_refuse_code = +features.auto_answer_delay = +features.allow_mute = +features.group_listen_in_talking_enable = +features.call_completion_enable = +features.call_num_filter = +features.direct_ip_call_enable = +features.relog_offtime = +features.ringer_device.is_use_headset = +features.factory_pwd_enable = +features.anonymous_response_code = +features.show_action_uri_option = +features.reset_by_long_press_enable = +features.upload_server = +features.call_log_show_num = +features.call_invite_format = + +phone_setting.logon_wizard_forever_wait = +features.caller_name_type_on_dialing = +features.off_hook_answer.enable = +features.auto_linekeys.enable = + + +features.blf_pickup_only_send_code = +##It is configured in the middle of the screen shows the current default at the bottom of the account name. +##The default is 0.CNT version 1. +features.reboot_in_talk_enable = +features.barge_in_via_username.enable = +features.flash_url_dsskey_led.enable = +static.features.default_account = +features.linekey_call_with_default_account = + + +####################################################################################### +## Features Forward ## +####################################################################################### + +features.fwd_mode = +features.fwd_diversion_enable = + +####################################################################################### +## Features DND ## +####################################################################################### + +features.dnd_mode = +features.dnd.enable = +features.dnd.on_code = +features.dnd.off_code = +features.dnd_refuse_code = +features.dnd.emergency_enable = +features.dnd.emergency_authorized_number = + +####################################################################################### +## Features Bluetooth ## +####################################################################################### +features.bluetooth_enable = +static.bluetooth.function.enable = +features.bluetooth_adapter_name= + +voice.bluetooth_headset_send= +####################################################################################### +## Features BLF ## +####################################################################################### + +##It enables or disables the phone to deal with the Version header in the BLF NOTIFY message sent by the server. +##0-Disabled,1-Enabled. +##The default value is 0.It takes effect after a reboot. +features.blf_list_version = + +####################################################################################### +## Features Intercom ## +####################################################################################### +features.intercom.allow = +features.intercom.mute = +features.intercom.tone = +features.intercom.barge = +features.intercom.led.enable = +features.intercom.subscribe.enable = +features.intercom.barge_in_dialing.enable= +sip.intercom_sub.enable = +####################################################################################### +## Features Hotline ## +####################################################################################### +##It configures the hotline number. +##The default value is blank. +features.hotline_number = + +##It configures the delay time (in seconds) for the phone to dial out the hotline number automatically. +##The default value of delay time is 4.Integer from 0 to 10 +features.hotline_delay = + +####################################################################################### +## Features DTMF ## +####################################################################################### +features.dtmf.hide = + +###Except T20P Model +features.dtmf.hide_delay = + +features.dtmf.repetition = +features.dtmf.transfer = +features.dtmf.replace_tran = +features.dtmf.duration = +features.dtmf.volume = +features.play_local_dtmf_tone_enable = + +####################################################################################### +## Features Audio Settings ## +####################################################################################### +features.headset_prior = +features.headset_training = +features.alert_info_tone = +features.busy_tone_delay = +features.send_pound_key = +features.key_as_send = +features.send_key_tone = +features.key_tone = +features.play_hold_tone.enable = +features.play_hold_tone.delay = +features.redial_tone = +features.partition_tone = + +####################################################################################### +## Features Action URI ## +####################################################################################### +features.action_uri_limit_ip = + + +####################################################################################### +## Features Prefix ## +####################################################################################### +features.password_dial.enable = +features.password_dial.prefix = +features.password_dial.length = + +####################################################################################### +## Features History ## +####################################################################################### +features.save_call_history = +features.redial_via_local_sip_server.enable= +features.local_calllog.received.replace_rule= +##V83 Add +features.calllog_detailed_information = + +static.auto_provision.local_calllog.write_delay.terminated= +static.auto_provision.local_calllog.backup.path= +static.auto_provision.local_calllog.backup.enable= + +####################################################################################### +## Notification Popups ## +####################################################################################### +features.voice_mail_popup.enable= +features.missed_call_popup.enable= +features.forward_call_popup.enable= + +####################################################################################### +## Ringtone ## +####################################################################################### +ringtone.url = +ringtone.delete = + +####################################################################################### +## Phone Settings ## +####################################################################################### +phone_setting.inter_digit_time = +phone_setting.ring_type = + +phone_setting.ring_for_tranfailed = +phone_setting.is_deal180 = +phone_setting.show_code403 = + +phone_setting.ringback_timeout = +phone_setting.ringing_timeout = + +phone_setting.page_tip = +phone_setting.predial_autodial = +phone_setting.headsetkey_mode = + +static.phone_setting.reserve_certs_enable = +phone_setting.called_party_info_display.enable = +phone_setting.call_info_display_method = + + + +####################################################################################### +## Power Led Settings ## +####################################################################################### +phone_setting.common_power_led_enable = +phone_setting.talk_and_dial_power_led_enable = +phone_setting.mail_power_led_flash_enable = +phone_setting.ring_power_led_flash_enable = +phone_setting.mute_power_led_flash_enable= +phone_setting.hold_and_held_power_led_flash_enable = +phone_setting.missed_call_power_led_flash.enable = + +##It configures the level of the active backlight intensity. +##The default value is 8. +phone_setting.active_backlight_level = + + + +####################################################################################### +## Phone Setting Display ## +####################################################################################### + +##It configures the backlight time (in seconds).0, 1, 15, 30, 60, 120, 300, 600 or 1800. +phone_setting.backlight_time = +phone_setting.backgrounds = +wallpaper_upload.url = + + +####################################################################################### +## Phone Setting BLF ## +####################################################################################### +###It enables or disables the phone to automatically configure the BLF list keys in order. +###0-Disabled,1-Enabled. +###The default value is 1. + +phone_setting.auto_blf_list_enable = + +####################################################################################### +## Key Lock ## +####################################################################################### +###It enables or disables keypad lock feature. +###0-Disabled,1-Enabled. +###The default value is 0. +phone_setting.phone_lock.enable = + + +###It configures the password for unlocking the keypad. +###The default value is 123. +phone_setting.phone_lock.unlock_pin = + +###It configures the interval (in seconds) to automatically lock the keypad. +###The default value is 0 (the keypad is locked only by long pressing the pound key or pressing the keypad lock key) +phone_setting.phone_lock.lock_time_out = +phone_setting.emergency.number = + +####################################################################################### +## Multicast ## +####################################################################################### + +multicast.codec = + +multicast.receive_priority.enable = +multicast.receive_priority.priority = + +###X ranges from 1 to 31 +###multicast.listen_address.X.label = +###multicast.listen_address.X.ip_address = + +multicast.listen_address.1.label = +multicast.listen_address.1.ip_address = + +multicast.paging_address.1.ip_address = +multicast.paging_address.1.label = + +multicast.receive.ignore_dnd.priority= + +####################################################################################### +## Super Search ## +####################################################################################### +super_search.recent_call = +super_search.url = + +####################################################################################### +## Security ## +####################################################################################### +###Define the login username and password of the user, var and administrator. +###If you change the username of the administrator from "admin" to "admin1", your new administrator's username should be configured as: security.user_name.admin = admin1. +###If you change the password of the administrator from "admin" to "admin1pwd", your new administrator's password should be configured as: security.user_password = admin1:admin1pwd. + +###The following examples change the user's username to "user23" and the user's password to "user23pwd". +###static.security.user_name.user = user23 +###static.security.user_password = user23:user23pwd +###The following examples change the var's username to "var55" and the var's password to "var55pwd". +###static.security.user_name.var = var55 +###static.security.user_password = var55:var55pwd +static.security.user_name.user = +static.security.user_name.admin = +static.security.user_name.var = +static.security.user_password = + +{if isset($admin_name)} +static.security.user_name.admin = {$admin_name} +static.security.user_password = {$admin_name}:{$admin_password} +{/if} + +###It enables or disables the phone to only accept the certificates in the Trusted Certificates list. +###0-Disabled,1-Enabled. +###The default value is 1.It takes effect after a reboot. +static.security.trust_certificates = {if $yealink_trust_certificates == "false"}0{elseif $yealink_trust_certificates == "true"}1{/if} + +###It configures the source certificates for the phone to authenticate for TLS connection. +###0-Default certificates,1-Custom certificates,2-All certificates. +###The default value is 0.It takes effect after a reboot. +static.security.ca_cert = + +###It configures the device certificates for the phone to send for TLS authentication. +###0-Default certificates,1-Custom certificates. +###The default value is 0.It takes effect after a reboot. +static.security.dev_cert = + +###It enables or disables the phone to mandatorily validate the CommonName or SubjectAltName of the certificate received from the connecting server. +###0-Disabled,1-Enabled. +###The default value is 0.It takes effect after a reboot. +static.security.cn_validation = + +##V83 Add +phone_setting.reserve_certs_config.enable = +####################################################################################### +## User Mode ## +####################################################################################### +###It enables or disables the 3-level permissions (admin, user, var). +###0-Disabled,1-Enabled. +###The default value is 0.It takes effect after a reboot. +static.security.var_enable = + +static.web_item_level.url = + +####################################################################################### +## Trusted Certificates ## +####################################################################################### +static.trusted_certificates.url = +static.trusted_certificates.delete = + +####################################################################################### +## Server Certificates ## +####################################################################################### +static.server_certificates.url = +static.server_certificates.delete = + +####################################################################################### +## Conference ## +####################################################################################### +features.local_conf.combine_with_one_press.enable= + +####################################################################################### +## Line Key ## +####################################################################################### +###T58V/VP59 X ranges from 1 to 27 + +#linekey.X.type--Customize the linekey type. +#The valid types are: + +#0-NA 1-Conference 2-Forward 3-Transfer 4-Hold 5-DND 7-Call Return 8-SMS 9-Directed Pickup 10-Call Park 11-DTMF 12-Voice Mail 13-Speed Dial +#14-Intercom 15-Line 16-BLF 17-URL 18-Group Listening 20-Private Hold 22-XML Group 23-Group Pickup 24-Multicast Paging 25-Record 27-XML Browser +#34-Hot Desking 35-URL Record 38-LDAP 39-BLF List 40-Prefix 41-Zero Touch 42-ACD 45-Local Group 46-Network Group 49-Custom Button 50-Keypad Lock +#55-Meet-Me Conference 56-Retrieve Park 57-Hoteling 58-ACD Grace 59-Sisp Code 60-Emergency 61-Directory 84-open door 85-video monitoring + +#0-NA +#22-XML Group +#38-LDAP +#46-Network Group +#17-URL + +###linekey.X.line = +###linekey.X.value = +###linekey.X.type = +###linekey.X.xml_phonebook = +###linekey.X.label = +###linekey.X.extension + +{foreach $keys['line'] as $row} +#Configure Line Key {$row.device_key_id} +linekey.{$row.device_key_id}.line = {$row.device_key_line} +linekey.{$row.device_key_id}.value = {$row.device_key_value} +{if $row.device_key_type == "1" || $row.device_key_type == "16"} +linekey.{$row.device_key_id}.pickup_value = {$row.device_key_extension} +{else} +linekey.{$row.device_key_id}.extension = {$row.device_key_extension} +{/if} +linekey.{$row.device_key_id}.type = {$row.device_key_type} +linekey.{$row.device_key_id}.xml_phonebook = +linekey.{$row.device_key_id}.label = {$row.device_key_label} + +{/foreach} + +########################################################################################## +## Programmable Key ## +########################################################################################## +#T58VT56A/VP59 X ranges from 1 to 4,12 to 14 +#programablekey.x.value = +#programablekey.x.xml_phonebook--Specify the desired remote phonebook/local group/BSFT phonebook for the programmable key. This parameter is only appilicable to the feature XML Group/Local Group/Broadsoft Group. +#programablekey.x.history_type = +#programablekey.x.label--This parameter is only available to the key 1 to key 4. + +programablekey.X.type = +programablekey.X.line = +programablekey.X.value = +programablekey.X.history_type = +programablekey.X.label = +programablekey.X.xml_phonebook = +programablekey.X.extension + +####################################################################################### +## Forward Always ## +####################################################################################### +forward.always.enable = +forward.always.target = +forward.always.on_code = +forward.always.off_code = + +####################################################################################### +## Forward Busy ## +####################################################################################### +forward.busy.enable = +forward.busy.target = +forward.busy.on_code = +forward.busy.off_code = + +####################################################################################### +## Forward No Answer ## +####################################################################################### +forward.no_answer.enable = +forward.no_answer.target = +forward.no_answer.timeout = +forward.no_answer.on_code = +forward.no_answer.off_code = + +####################################################################################### +## Forward International ## +####################################################################################### +###It enables or disables the phone to forward incoming calls to international numbers. +###0-Disabled,1-Enabled. +###The default value is 1. +forward.international.enable = + + + +####################################################################################### +## Hotdesking Startup ## +####################################################################################### +phone_setting.logon_wizard = + + +############## +hotdesking.startup_register_name_enable = +hotdesking.startup_username_enable = +hotdesking.startup_password_enable = +hotdesking.startup_sip_server_enable = +hotdesking.startup_outbound_enable = + +####################################################################################### +## Hotdesking Dsskey ## +####################################################################################### +hotdesking.dsskey_register_name_enable = +hotdesking.dsskey_username_enable = +hotdesking.dsskey_password_enable = +hotdesking.dsskey_sip_server_enable = +hotdesking.dsskey_outbound_enable = + +####################################################################################### +## Alert Info ## +####################################################################################### +###X ranges from 1 to 100 +###distinctive_ring_tones.alert_info.x.text = +###distinctive_ring_tones.alert_info.x.ringer = + +###It configures the internal ringer text for distinctive ringtone. +###Example: distinctive_ring_tones.alert_info.1.text = Family +###The default value is blank. +distinctive_ring_tones.alert_info.1.text = + +###It configures the desired ring tones for each text. +###The value ranges from 1 to 8, the digit stands for the appropriate ringtone. +###Ring tones 6-8 are only applicable to SIP-T46G IP phones. +###The default value is 1. +distinctive_ring_tones.alert_info.1.ringer = + +####################################################################################### +## Call Waiting ## +####################################################################################### +call_waiting.enable = +call_waiting.tone = +call_waiting.on_code = +call_waiting.off_code = + +####################################################################################### +## Action URL ## +####################################################################################### +action_url.setup_completed = +action_url.registered = +action_url.unregistered = +action_url.register_failed = +action_url.off_hook = +action_url.on_hook = +action_url.incoming_call = +action_url.outgoing_call = +action_url.call_established = +action_url.dnd_on = +action_url.dnd_off = +action_url.always_fwd_on = +action_url.always_fwd_off = +action_url.busy_fwd_on = +action_url.busy_fwd_off = +action_url.no_answer_fwd_on = +action_url.no_answer_fwd_off = +action_url.transfer_call = +action_url.blind_transfer_call = +action_url.attended_transfer_call = +action_url.hold = +action_url.unhold = +action_url.mute = +action_url.unmute = +action_url.missed_call = +action_url.call_terminated = +action_url.busy_to_idle = +action_url.idle_to_busy = +action_url.ip_change = +action_url.forward_incoming_call = +action_url.reject_incoming_call = +action_url.answer_new_incoming_call = +action_url.transfer_finished = +action_url.transfer_failed = +action_url.setup_autop_finish = +action_url.held = +action_url.unheld = + + + +####################################################################################### +## Contact ## +####################################################################################### +local_contact.data.url = +local_contact.image.url = +local_contact.icon.url = +local_contact.data_photo_tar.url = + +local_contact.photo.url = +static.directory_setting.url= +####################################################################################### +## Custom Factory Configuration ## +####################################################################################### + +static.custom_factory_configuration.url = +static.features.custom_factory_config.enable = + +####################################################################################### +## Custom Configuration ## +####################################################################################### + +static.configuration.url = + +####################################################################################### +## Custom Softkey ## +####################################################################################### +phone_setting.custom_softkey_enable = +custom_softkey_call_failed.url = +custom_softkey_call_in.url = +custom_softkey_connecting.url = +custom_softkey_ring_back.url = +custom_softkey_talking.url = + + + +####################################################################################### +## Configure the access URL of firmware ## +####################################################################################### +###It configures the access URL of the firmware file. +###The default value is blank.It takes effect after a reboot. +static.firmware.url = + +####################################################################################### +## RTCP ## +####################################################################################### +phone_setting.vq_rtcpxr.interval_report.enable = +phone_setting.vq_rtcpxr.session_report.enable = +phone_setting.vq_rtcpxr.states_show_on_gui.enable = +phone_setting.vq_rtcpxr.states_show_on_web.enable = +phone_setting.vq_rtcpxr_delay_threshold_critical = +phone_setting.vq_rtcpxr_delay_threshold_warning = +phone_setting.vq_rtcpxr_display_jitter.enable = +phone_setting.vq_rtcpxr_display_jitter_buffer_max.enable = +phone_setting.vq_rtcpxr_display_local_call_id.enable = +phone_setting.vq_rtcpxr_display_local_codec.enable = +phone_setting.vq_rtcpxr_display_moscq.enable = +phone_setting.vq_rtcpxr_display_moslq.enable = +phone_setting.vq_rtcpxr_display_packets_lost.enable = +phone_setting.vq_rtcpxr_display_remote_call_id.enable = +phone_setting.vq_rtcpxr_display_remote_codec.enable = +phone_setting.vq_rtcpxr_display_round_trip_delay.enable = +phone_setting.vq_rtcpxr_display_start_time.enable = +phone_setting.vq_rtcpxr_display_stop_time.enable = +phone_setting.vq_rtcpxr_display_symm_oneway_delay.enable = +phone_setting.vq_rtcpxr_interval_period = +phone_setting.vq_rtcpxr_moslq_threshold_critical = +phone_setting.vq_rtcpxr_moslq_threshold_warning = +voice.rtcp.enable = +voice.rtcp_xr.enable = +voice.rtcp_cname = + + + +####################################################################################### +## DNS ## +####################################################################################### +dns_cache_a.1.name = +dns_cache_a.1.ip = +dns_cache_a.1.ttl = +dns_cache_srv.1.name = +dns_cache_srv.1.port = +dns_cache_srv.1.priority = +dns_cache_srv.1.target = +dns_cache_srv.1.weight = +dns_cache_srv.1.ttl = +dns_cache_naptr.1.name = +dns_cache_naptr.1.order = +dns_cache_naptr.1.preference = +dns_cache_naptr.1.replace = +dns_cache_naptr.1.service = +dns_cache_naptr.1.ttl = + + +####################################################################################### +## V80 Add ## +####################################################################################### +## Add Time 2015.6.26 +static.network.attempt_expired_time = +features.action_uri_force_autop = +features.save_init_num_to_history.enable = +features.action_uri.enable = +features.forward.emergency.enable = +features.forward.emergency.authorized_number = +features.auto_answer_tone.enable = +features.ip_call.auto_answer.enable = +action_url.headset = +action_url.handfree +action_url.cancel_callout = +action_url.remote_busy = +action_url.call_remote_canceled = +action_url.call_waiting_on = +action_url.call_waiting_off = +sip.terminate_notify_sub_delay_time = +voice.side_tone = +static.security.default_access_level = + +####################################################################################### +## Network WiFi ## +####################################################################################### +##static.wifi.X.label= +##static.wifi.X.ssid= +##static.wifi.X.priority= +##static.wifi.X.security_mode= +##static.wifi.X.cipher_type= +##static.wifi.X.password= +##static.wifi.X.eap_type= +##static.wifi.X.eap_user_name= +##static.wifi.x.eap_password= +##(X ranges from 1 to 5) + +static.wifi.enable = +static.wifi.1.label = +static.wifi.1.ssid = +static.wifi.1.priority = +static.wifi.1.security_mode = +static.wifi.1.cipher_type = +static.wifi.1.password = +static.wifi.1.eap_type = +static.wifi.1.eap_user_name = +static.wifi.1.eap_password = + +##V83 Add +static.wifi.function.enable = + +####################################################################################### +## V80-SP2 Add ## +####################################################################################### +##Add Time 2016.5.26 +features.power_saving.enable= +features.power_saving.office_hour.idle_timeout = +features.power_saving.off_hour.idle_timeout = +features.power_saving.user_input_ext.idle_timeout= +features.power_saving.office_hour.monday = +features.power_saving.office_hour.tuesday = +features.power_saving.office_hour.wednesday = +features.power_saving.office_hour.thursday = +features.power_saving.office_hour.friday = +features.power_saving.office_hour.saturday = +features.power_saving.office_hour.sunday = +screensaver.wait_time= + +##V83 Add +features.power_saving.power_led_flash.off_time= +features.power_saving.power_led_flash.on_time= +screensaver.type= + +####################################################################################### +## Digitmap ## +####################################################################################### +dialplan.digitmap.enable= +dialplan.digitmap.string= +dialplan.digitmap.no_match_action= +dialplan.digitmap.interdigit_short_timer= +dialplan.digitmap.interdigit_long_timer= +dialplan.digitmap.apply_to.press_send= +dialplan.digitmap.apply_to.forward= +dialplan.digitmap.apply_to.history_dial= +dialplan.digitmap.apply_to.directory_dial= +dialplan.digitmap.apply_to.on_hook_dial= +dialplan.digitmap.active.on_hook_dialing= + +##V83 Add +dialplan.digitmap.apply_to.prefix_key = + +####################################################################################### +## Emergency Dialplan ## +####################################################################################### +dialplan.emergency.enable= +dialplan.emergency.1.value= +dialplan.emergency.server.1.address= +dialplan.emergency.server.1.transport_type= +dialplan.emergency.server.1.port= +dialplan.emergency.1.server_priority= +dialplan.emergency.custom_asserted_id= +dialplan.emergency.asserted_id_source= + +####################################################################################### +## V81 Add ## +####################################################################################### + +static.auto_provision.flexible.enable = +static.auto_provision.flexible.interval= +static.auto_provision.flexible.begin_time = +static.auto_provision.flexible.end_time = +voice.jib.wifi.adaptive = +voice.jib.wifi.min = +voice.jib.wifi.max = +voice.jib.wifi.normal = +wui.quick_login = + +##Multicast(X ranges from 1 to 31.) +multicast.receive.use_speaker = +multicast.listen_address.1.channel = +multicast.paging_address.1.channel = + +features.keep_mute.enable = +voice.tone.secondary_dial = +features.power_saving.intelligent_mode = +features.blf_active_backlight.enable = +features.intercom.headset_prior.enable = + +####################################################################################### +## Time&Date ## +####################################################################################### +auto_dst.url = +local_time.manual_time_enable = +local_time.manual_ntp_srv_prior = +local_time.time_format = +local_time.date_format = +local_time.dhcp_time = + +local_time.summer_time = +local_time.dst_time_type = +local_time.start_time = +local_time.end_time = +local_time.offset_time = +local_time.interval = + +local_time.ntp_server1 = +local_time.ntp_server2 = +local_time.time_zone = +local_time.time_zone_name = + + +####################################################################################### +## Broadsoft ACD ## +####################################################################################### +acd.enable= +acd.auto_available_timer= + +####################################################################################### +## Broadsoft Call Recording ## +####################################################################################### +bw.call_recording.mode = + +####################################################################################### +## Broadsoft Network Directory ## +####################################################################################### +bw.calllog_and_dir = +bw_phonebook.custom= +bw_phonebook.enterprise_common_enable= +bw_phonebook.enterprise_common_displayname= +bw_phonebook.enterprise_enable= +bw_phonebook.enterprise_displayname= +bw_phonebook.group_common_enable= +bw_phonebook.group_common_displayname= +bw_phonebook.personal_enable= +bw_phonebook.personal_displayname= +bw_phonebook.group_enable= +bw_phonebook.group_displayname = +directory.update_time_interval + +##V83 Add +search_in_dialing.bw_directory.enable= +search_in_dialing.bw_directory.priority= +directory_setting.bw_directory.enable = +directory_setting.bw_directory.priority = + +####################################################################################### +## BSFT Setting ## +####################################################################################### +bw.enable = + + +####################################################################################### +## Broadsoft Visual Voice Mail ## +####################################################################################### +bw.voice_mail.visual.enable= +voice_mail.message_key.mode= +bw.voice_mail.visual.display_videomail.enable= + + +####################################################################################### +## Broadsoft XSI ## +####################################################################################### +bw.xsi.enable= +sip.authentication_for_xsi = + +####################################################################################### +## Features Sync ## +####################################################################################### +call_waiting.mode = +features.feature_key_sync.enable = {$yealink_feature_key_sync} +features.dnd.feature_key_sync.local_processing.enable = +features.dnd.feature_key_sync.enable = +features.forward.feature_key_sync.enable = +features.forward.feature_key_sync.local_processing.enable = + +####################################################################################### +## Broadsoft Call Decline ## +####################################################################################### +features.call_decline.enable = + + +####################################################################################### +## Call Park ## +####################################################################################### +features.call_park.enable= +features.call_park.park_mode= +features.call_park.park_code= +features.call_park.park_retrieve_code= +features.call_park.park_visual_notify_enable= +features.call_park.park_ring= +features.call_park.group_enable= +features.call_park.group_park_code= +sip.call_park_without_blf= + +####################################################################################### +## Broadsoft UC ## +####################################################################################### +bw.xmpp.enable = +features.uc_password = +features.uc_username = +bw.xmpp.presence_icon.mode = +bw.xmpp.change_presence.force_manual.enable = +bw.xmpp.change_presence.enable = +features.uc_dir.match_tail_number= +phone_setting.dsskey_directory_auto.enable= + +##V83 Add +directory_setting.bw_uc_buddies.enable = +directory_setting.bw_uc_buddies.priority = +search_in_dialing.bw_uc_buddies.enable = +search_in_dialing.bw_uc_buddies.priority = + +####################################################################################### +## Features Pickup ## +####################################################################################### + +features.pickup.group_pickup_enable = +features.pickup.group_pickup_code = +features.pickup.direct_pickup_enable = +features.pickup.direct_pickup_code = +features.pickup.blf_visual_enable = +features.pickup.blf_audio_enable = + +####################################################################################### +## Encryption ## +####################################################################################### +static.auto_provision.encryption.config = + +####################################################################################### +## Android phone-T58V Add ## +####################################################################################### +##Add Time 2016.9.2 + +static.wifi.802_11e.enable = +phone_setting.permit_silent_mode.enable = +sip.h264.peer_resolution.default = +features.doorphone.%d.display_name = +features.doorphone.%d.full_screen = +features.doorphone.%d.phone_number = +features.doorphone.%d.send_audio = +features.doorphone.%d.send_video = +features.doorphone.%d.unlock_pin = +features.doorphone.%d.autopreview.enable = +features.doorphone.%d.httpapi.password = +features.doorphone.%d.httpapi.username = +features.doorphone.%d.video.stream.httpurl = +features.doorphone.%d.videopreview.enable = +features.doorphone.x.device_model = +features.doorphone.amount = + +features.csta_control.enable = +static.network.ethernet_as_wifi.enable = + +static.security.default_ssl_method = +features.video_call_bandwidth = +video.enable = +features.default_layout = + +####################################################################################### +## APP ## +####################################################################################### +app.install_url = +app.uninstall = +app.unavailable = +app.autorun = +custom.static.system_mode = +custom.static.system_mode_selection = +custom.static.system_mode_enable = +features.action_call_answer = +features.action_contact = +features.action_dialer = +features.action_dsskey = +features.action_history = + + +####################################################################################### +## Broadsoft Emergency Call ## +####################################################################################### +##V83 Add +bw.emergency_calling.enable = + +####################################################################################### +## Broadsoft Network Calllog ## +####################################################################################### +##V83 Add +bw.xsi.call_log.delete.enable = +bw.xsi.call_log.multiple_accounts.enable = +bw.xsi.call_log.enable= + +####################################################################################### +## Broadsoft Network Directory ## +####################################################################################### +bw.xsi.directory.enable= +bw.xsi.directory.update.enable= + +####################################################################################### +## EDK ## +####################################################################################### + +##EDK Soft Keys(X ranges from 1 to 10) + +features.enhanced_dss_keys.enable= +edk.id_mode.enable= +softkey.X.position= +softkey.X.use.conferenced= +softkey.X.use.held= +softkey.X.use.hold= +softkey.X.use.transfer_ring_back= +softkey.X.use.ring_back= +softkey.X.use.call_failed= +softkey.X.use.on_talk= +softkey.X.use.transfer_connecting= +softkey.X.use.connecting= +softkey.X.use.incoming_call= +softkey.X.use.idle= +softkey.X.action= +softkey.X.label= +softkey.X.enable= +edk.edklist.X.action= +edk.edklist.X.mname= +edk.edklist.X.enable= +edk.edkprompt.X.enable= +edk.edkprompt.X.label= +edk.edkprompt.X.type= +edk.edkprompt.X.userfeedback= +edk.edkprompt.X.title = + +####################################################################################### +## Voice Mail ## +####################################################################################### +features.voice_mail_alert.enable= +features.voice_mail_tone_enable= +features.hide_feature_access_codes.enable= + +####################################################################################### +## XML ## +####################################################################################### +push_xml.server= +push_xml.sip_notify= +push_xml.block_in_calling= +features.xml_browser.loading_tip.delay = + +####################################################################################### +## Features USB ## +####################################################################################### +##V83 Add +static.usb.power.enable = +static.usbdisk.function.enable = + +####################################################################################### +## Acoustic Shield ## +####################################################################################### +##V83 Add +features.acoustic_shield.level= +features.acoustic_shield.mode= + +####################################################################################### +## Camera ## +####################################################################################### +camera.flicker = +camera.status_bar_icon.enable= + +##V83 Add +static.camera.function.enable= + +####################################################################################### +## Contact Other ## +####################################################################################### +##V83 Add +phone_setting.search.highlight_keywords.enable = + +####################################################################################### +## dsskey icon ## +####################################################################################### +##V83 Add +dsskey.icon.url= +dsskey.icon.delete= +programablekey.1.icon= +programablekey.2.icon= +programablekey.3.icon= +programablekey.4.icon= + +####################################################################################### +## Call Recording ## +####################################################################################### +features.usb_call_recording.enable= + +####################################################################################### +## Log Backup ## +####################################################################################### +static.auto_provision.local_log.backup.enable = +static.auto_provision.local_log.backup.path = +static.auto_provision.local_log.backup.upload_period = +static.auto_provision.local_log.backup.append = +static.auto_provision.local_log.backup.bootlog.upload_wait_time= +static.auto_provision.local_log.backup.append.max_file_size = +static.auto_provision.local_log.backup.append.limit_mode= + +####################################################################################### +## Secure Domain List ## +####################################################################################### +wui.secure_domain_list = + +##V83 Add +features.full_screen_in_call_enable= +features.status_bar.hide= +features.system_funtion_bar.hide= + + + +phone_setting.warnings_display.mode= +phone_setting.browser.url= +features.hide_world_clock.enable = +####################################################################################### +## Dect ## +####################################################################################### +##V83 Add +base.pin_code= +static.base.repeater_mode.enable= +base.pin_code_for_register= +base.double_pin_code.enable= + +custom.handset.auto_answer.enable= +custom.handset.auto_intercom= +custom.handset.backlight_in_charger.enable= +custom.handset.backlight_out_of_charger.enable= +custom.handset.confirmation_tone.enable= +custom.handset.date_format= +custom.handset.eco_mode.enable=- +custom.handset.keypad_light.enable= +custom.handset.keypad_tone.enable= +custom.handset.language= +custom.handset.low_battery_tone.enable= +custom.handset.missed_call_notify_light.enable= +custom.handset.screen_saver.enable= +custom.handset.time_format= +custom.handset.voice_mail_notify_light.enable= +custom.handset.wallpaper= + +handset.X.dial_out_default_line= +handset.X.dial_out_lines= +handset.X.hac.enable= +handset.X.incoming_lines= +handset.X.name= +handset.X.contact_list.url= +## X rang from 1 to 5 + +over_the_air.base_trigger= +over_the_air.handset_tip= +over_the_air.handset_trigger= +over_the_air.url= +over_the_air.url.w52h= +over_the_air.url.w56h= +over_the_air.url.w53h= + +static.auto_provision.custom.handset.protect= +static.auto_provision.handset_configured.enable= + +phone_setting.end_call_on_hook.enable= + +static.directory_setting.shared_contact.enable= +shared_contact_list.url= + +features.ms.x.mode = +features.ms.x.slave_handset_number = + + +####################################################################################### +## Metaswitch Setting ## +####################################################################################### +meta.enable = +meta.login_mode = +meta.comm_portal.server.token = +meta.comm_portal.server.username = +meta.comm_portal.server.password = +meta.comm_portal.server.url = +meta.comm_portal.enable = +meta.comm_portal.contacts.update_interval = +meta.comm_portal.replace_local_call_list.enable= +meta.comm_portal.contacts.group.mlhgs.label= +meta.comm_portal.contacts.group.extensions.label= +meta.comm_portal.contacts.group.contacts.label= +meta.comm_portal.contacts.group.mlhgs.enable= +meta.comm_portal.contacts.group.extensions.enable= +meta.comm_portal.contacts.group.contacts.enable= +meta.comm_portal.call_list.enable= +meta.comm_portal.contacts.enable= +meta.comm_portal.message.enable= +meta.comm_portal.logout.enable = +meta.comm_portal.keep_alive_interval_time = +directory_setting.meta_directory.enable= +directory_setting.meta_directory.priority= +directory_setting.meta_call_log.enable= +directory_setting.meta_call_log.priority= +search_in_dialing.meta_call_log.priority = +search_in_dialing.meta_call_log.enable = +search_in_dialing.meta_directory.priority = +search_in_dialing.meta_directory.enable = + +####################################################################################### +## Contact Backup ## +####################################################################################### +static.auto_provision.local_contact.backup.path = +static.auto_provision.local_contact.backup.enable= diff --git a/resources/templates/provision/yealink/vp59/{$mac}.cfg b/resources/templates/provision/yealink/vp59/{$mac}.cfg new file mode 100644 index 0000000000..e32c8f80c5 --- /dev/null +++ b/resources/templates/provision/yealink/vp59/{$mac}.cfg @@ -0,0 +1,541 @@ +#!version:1.0.0.1 + +##File header "#!version:1.0.0.1" can not be edited or deleted, and must be placed in the first line.## + +{foreach $lines as $row} + +####################################################################################### +## Account Basic Settings ## +####################################################################################### + +{if isset({$row.password})} +account.{$row.line_number}.enable = 1 +{else} +account.{$row.line_number}.enable = 0 +{/if} +account.{$row.line_number}.label = {$row.display_name} +account.{$row.line_number}.display_name = {$row.display_name} +account.{$row.line_number}.auth_name = {$row.auth_id} +account.{$row.line_number}.user_name = {$row.user_id} +account.{$row.line_number}.password = {$row.password} +{if isset($account.{$row.line_number}.outbound_proxy_primary)} +account.{$row.line_number}.outbound_proxy_enable = 1 +{else} +account.{$row.line_number}.outbound_proxy_enable = 0 +{/if} +account.{$row.line_number}.outbound_proxy.1.address = {$row.outbound_proxy_primary} +{if isset($outbound_proxy_1_port)} +account.{$row.line_number}.outbound_proxy.1.port = {$outbound_proxy_1_port} +{else} +account.{$row.line_number}.outbound_proxy.1.port = {$row.sip_port} +{/if} +account.{$row.line_number}.dial_tone = +account.{$row.line_number}.outbound_proxy.2.address = {$row.outbound_proxy_secondary} +{if isset($outbound_proxy_2_port)} +account.{$row.line_number}.outbound_proxy.2.port = {$outbound_proxy_2_port} +{else} +account.{$row.line_number}.outbound_proxy.2.port = {$row.sip_port} +{/if} +account.{$row.line_number}.outbound_proxy_fallback_interval = + +##It configures the transport type for account 1. 0-UDP,1-TCP,2-TLS,3-DNS-NAPTR +##The default value is 0. +{if $row.sip_transport == 'udp'}account.{$row.line_number}.sip_server.1.transport_type = 0{/if} +{if $row.sip_transport == 'tcp'}account.{$row.line_number}.sip_server.1.transport_type = 1{/if} +{if $row.sip_transport == 'tls'}account.{$row.line_number}.sip_server.1.transport_type = 2{/if} +{if $row.sip_transport == 'dns srv'}account.{$row.line_number}.sip_server.1.transport_type = 3{/if} + +##It configures the backup server transport type for account 1. 0-UDP,1-TCP,2-TLS,3-DNS-NAPTR +##The default value is 0. +{if $row.sip_transport == 'udp'}account.{$row.line_number}.sip_server.2.transport_type = 0{/if} +{if $row.sip_transport == 'tcp'}account.{$row.line_number}.sip_server.2.transport_type = 1{/if} +{if $row.sip_transport == 'tls'}account.{$row.line_number}.sip_server.2.transport_type = 2{/if} +{if $row.sip_transport == 'dns srv'}account.{$row.line_number}.sip_server.2.transport_type = 3{/if} + + +####################################################################################### +## Failback ## +####################################################################################### + +account.{$row.line_number}.naptr_build = 0 +account.{$row.line_number}.fallback.redundancy_type = 0 +account.{$row.line_number}.fallback.timeout = {$yealink_outbound_proxy_fallback_interval} +{if isset($row.server_address_primary)} +account.{$row.line_number}.sip_server.1.address = {$row.server_address_primary} +{else} +account.{$row.line_number}.sip_server.1.address = {$row.server_address} +{/if} +account.{$row.line_number}.sip_server.1.port = {$row.sip_port} +account.{$row.line_number}.sip_server.1.expires = {$row.register_expires} +account.{$row.line_number}.sip_server.1.retry_counts = 3 +account.{$row.line_number}.sip_server.1.failback_mode = 0 +account.{$row.line_number}.sip_server.1.failback_timeout = 3600 +account.{$row.line_number}.sip_server.1.register_on_enable = 0 +{if isset($row.server_address_secondary)} +account.{$row.line_number}.sip_server.2.address = {$row.server_address_secondary} +{/if} +account.{$row.line_number}.sip_server.2.port = {$row.sip_port} +account.{$row.line_number}.sip_server.2.expires = {$row.register_expires} +account.{$row.line_number}.sip_server.2.retry_counts = 3 +account.{$row.line_number}.sip_server.2.failback_mode = 0 +account.{$row.line_number}.sip_server.2.failback_timeout = 3600 +account.{$row.line_number}.sip_server.2.register_on_enable = 0 + +account.{$row.line_number}.dns_cache_type = 1 +account.{$row.line_number}.static_cache_pri = 0 +account.{$row.line_number}.register_expires_overlap = +account.{$row.line_number}.subscribe_expires_overlap = + +####################################################################################### +## Register Advanced ## +####################################################################################### +##It configures the SIP server type for account X.0-Default,2-BroadSoft,4-Cosmocom,6-UCAP +##The default value is 0. + +account.{$row.line_number}.sip_server_type = + +account.{$row.line_number}.unregister_on_reboot = +account.{$row.line_number}.register_mac = +account.{$row.line_number}.register_line = +account.{$row.line_number}.reg_fail_retry_interval = +account.{$row.line_number}.srtp_encryption = + +###################################################################################### +## NAT Settings ## +###################################################################################### +##It enables or disables the NAT traversal for account X.0-Disabled,1-Enabled +##The default value is 0. +account.{$row.line_number}.nat.nat_traversal = {if isset($stun_server)}1{else}0{/if} + +##It configures the type of keep-alive packets sent by the phone to the NAT static to keep the communication port open so that NAT can continue to function for account X. +##0-Dsiabled,1-Default: the phone sends UDP packets to the server,2-Option: the phone sends SIP OPTION packets to the server,3-Notify: the phone sends SIP NOTIFY packets to the server. +##The default value is 1. +account.{$row.line_number}.nat.udp_update_enable = 3 + +##It configures the keep-alive interval (in seconds) for account X. +##The default value is 30.Integer from 15 to 2147483647 +account.{$row.line_number}.nat.udp_update_time = 30 + +##It enables or disables NAT Rport feature for account X.0-Disabled,1-Enabled +##The default value is 0. +account.{$row.line_number}.nat.rport = {$yealink_rport} + + +####################################################################################### +## Account Advance Settings ## +####################################################################################### + + +##It configures the voice mail number for account X. +##The default value is blank. +voice_mail.number.{$row.line_number} = {$voicemail_number} + +##Except T19P/T21P Models +account.{$row.line_number}.auto_dial_enable = +account.{$row.line_number}.auto_dial_num = + +account.{$row.line_number}.call_id_mode = +account.{$row.line_number}.call_info = + +account.{$row.line_number}.invite_with_pani_header.enable = + +####################################################################################### +## Subscribe ## +####################################################################################### +##It enables or disables the phone to subscribe the message waiting indicator for account X.0-Disabled,1-Enabled. +##The default value is 0. +account.{$row.line_number}.subscribe_mwi = + + +##It is configuration MWI is NOTIFY messages, whether in Terminated status attributes. +##The default value is 0(Don't handle terminated values) +account.{$row.line_number}.mwi_parse_terminated = + +##It configures the interval (in seconds) of MWI subscription for account X. +##The default value is 3600. +account.{$row.line_number}.subscribe_mwi_expires = + + +##It enables or disables the phone to subscribe to the voice mail number for the message waiting indicator for account X.0-Disabled,1-Enabled. +##The default value is 0. +account.{$row.line_number}.subscribe_mwi_to_vm = + +##It configures the period (in seconds) of ACD subscription for account X. +##The default value is 1800.Except T19P/T21P Models +account.{$row.line_number}.subscribe_acd_expires = + + +account.{$row.line_number}.display_mwi.enable = +account.{$row.line_number}.subscribe_register = +####################################################################################### +## Broadsoft ACD ## +####################################################################################### +account.{$row.line_number}.acd.enable = +account.{$row.line_number}.acd.unavailable_reason_enable = +account.{$row.line_number}.acd.initial_state = + +##account.X.reason_code.Y= +##account.X.reason_code_name.Y= +##The value Y must be continuous. +account.{$row.line_number}.reason_code.1 = +account.{$row.line_number}.reason_code_name.1 = + +####################################################################################### +## BLF List(Except T19D Model) ## +####################################################################################### +##It configures the BLF List URI to monitor a list of users for account X. +##The default value is blank. +account.{$row.line_number}.blf.blf_list_uri = + +##It configures the feature access code for directed call pickup (default: *97) for account X. +##The default value is blank. +account.{$row.line_number}.blf_list_code = + +##It configures the feature access code for directed call pickup with barge-in (default: *33) for account X. +##The default value is blank. +account.{$row.line_number}.blf_list_barge_in_code = + +##It configures the period (in seconds) of the BLF subscription for account X. +##The default value is 1800.Integer from 30 to 2147483647. +account.{$row.line_number}.blf.subscribe_period = + +##It configures the event of the BLF subscription for account X.0-Dialog,1-Presence. +##The default value is 0. +account.{$row.line_number}.blf.subscribe_event = + +##It enables or disables the phone to handle NOTIFY messages out of the BLF dialog for account X.0-Disabled,1-Enabled. +##The default value is 0. +account.{$row.line_number}.out_dialog_blf_enable = + +##It configures the BLF List Retrieve call parked code for account X. +##The default value is blank +account.{$row.line_number}.blf_list_retrieve_call_parked_code = + +account.{$row.line_number}.blf.match_host.enable = + +####################################################################################### +## BLA/SCA ## +####################################################################################### +##It enables or disables Broadsoft SCA feature for account X.0-Disabled,1-Broadsoft SCA. +##The default value is 0. +account.{$row.line_number}.shared_line = + +##It configures the Call Pull Feature access code for account X. +##The default value is blank. +account.{$row.line_number}.shared_line_callpull_code = +##It configures number of linekey for line. +##The default value is 1,you should enable auto line keys first. +account.{$row.line_number}.number_of_linekey = +##It config whether you can retrieve the remote hold call through line key +##The default value is 1 +account.{$row.line_number}.shared_line_one_touch_retrieve.enable = +##It config whether you can barge in the active call through line key +##The default value is 1 +account.{$row.line_number}.shared_line_one_touch_bargein.enable = + +account.{$row.line_number}.share_line.barge_in.enable = +####################################################################################### +## Brosoft Callpark ## +####################################################################################### +##It enables or disables Broadsoft Callpark for account X.0-Disabled,1-Broadsoft SCA. +##The default value is 0. +account.{$row.line_number}.callpark_enable = + +####################################################################################### +## Audio Codec ## +####################################################################################### + +account.{$row.line_number}.codec.g722.enable = +account.{$row.line_number}.codec.g722.priority = + +account.{$row.line_number}.codec.g729.enable = +account.{$row.line_number}.codec.g729.priority = + +account.{$row.line_number}.codec.g723_53.enable = +account.{$row.line_number}.codec.g723_53.priority = + +account.{$row.line_number}.codec.g723_63.enable = +account.{$row.line_number}.codec.g723_63.priority = + +account.{$row.line_number}.codec.g726_16.enable = +account.{$row.line_number}.codec.g726_16.priority = + +account.{$row.line_number}.codec.g726_24.enable = +account.{$row.line_number}.codec.g726_24.priority = + +account.{$row.line_number}.codec.g726_32.enable = +account.{$row.line_number}.codec.g726_32.priority = + +account.{$row.line_number}.codec.g726_40.enable = +account.{$row.line_number}.codec.g726_40.priority = + +account.{$row.line_number}.codec.ilbc.enable = +account.{$row.line_number}.codec.ilbc.priority = + +account.{$row.line_number}.codec.opus.enable = +account.{$row.line_number}.codec.opus.priority = +account.{$row.line_number}.codec.opus.para = + +account.{$row.line_number}.codec.pcmu.enable = +account.{$row.line_number}.codec.pcmu.priority = + +account.{$row.line_number}.codec.pcma.enable = +account.{$row.line_number}.codec.pcma.priority = + +account.{$row.line_number}.codec.g722_1_24kpbs.enable = +account.{$row.line_number}.codec.g722_1_24kpbs.priority = + +account.{$row.line_number}.codec.g722_1c_24kpbs.enable = +account.{$row.line_number}.codec.g722_1c_24kpbs.priority = + +account.{$row.line_number}.codec.g722_1c_32kpbs.enable = +account.{$row.line_number}.codec.g722_1c_32kpbs.priority = + +account.{$row.line_number}.codec.g722_1c_48kpbs.enable = +account.{$row.line_number}.codec.g722_1c_48kpbs.priority = + +####################################################################################### +## Video Codec ## +####################################################################################### + +account.{$row.line_number}.video.h264.enable = +account.{$row.line_number}.video.h264.priority = + +account.{$row.line_number}.video.h264hp.enable = +account.{$row.line_number}.video.h264hp.priority = + +account.{$row.line_number}.video.vp8.enable = +account.{$row.line_number}.video.vp8.priority = + +account.{$row.line_number}.video.h263.enable = +account.{$row.line_number}.video.h263.priority = + +####################################################################################### +## Audio Advanced ## +####################################################################################### +##It configures the RTP packet time for account X.0 (Disabled), 10, 20, 30, 40, 50 or 60. +##The default value is 20. +account.{$row.line_number}.ptime = +####################################################################################### +## Anonymous Call ## +####################################################################################### +account.{$row.line_number}.send_anonymous_code = +account.{$row.line_number}.anonymous_call = +account.{$row.line_number}.anonymous_call_oncode = +account.{$row.line_number}.anonymous_call_offcode = +account.{$row.line_number}.reject_anonymous_call = +account.{$row.line_number}.anonymous_reject_oncode = +account.{$row.line_number}.anonymous_reject_offcode = +account.{$row.line_number}.send_anonymous_rejection_code = + + +####################################################################################### +## Pickup Code ## +####################################################################################### +##It enables or disables the phone to pick up a call according to the SIP header of dialog-info for account X.0-Disabled,1-Enabled. +##The default value is 0. +account.{$row.line_number}.dialoginfo_callpickup = + +##It configures the group pickup code for account X. +##The default value is blank. +account.{$row.line_number}.group_pickup_code = + +##It configures the directed pickup code for account X. +##The default value is blank. +account.{$row.line_number}.direct_pickup_code = + +account.{$row.line_number}.refresh_remote_id.enable = + +####################################################################################### +## DTMF ## +####################################################################################### +account.{$row.line_number}.dtmf.type = +account.{$row.line_number}.dtmf.info_type = +account.{$row.line_number}.dtmf.dtmf_payload = + +####################################################################################### +## Alert info ## +####################################################################################### +##It enables or disables the distinctive ringtones by the Alert-Info SIP header for account X.0-Disabled,1-Enabled. +##The default value is 0. +account.{$row.line_number}.alert_info_url_enable = + +##Except T19P/T21P Models +##The default value is blank.Values range 256 characters in length +account.{$row.line_number}.alert_info = +account.{$row.line_number}.ringtone.ring_type = + +###Only for T46G Model +##It enables or disables the phone to download the picture information for account X when receiving an incoming call or during a call.0-Disabled,1-Enabled. +##The default value is 0. +account.{$row.line_number}.picture_info_enable = + +####################################################################################### +## Conference ## +####################################################################################### +##It configures the conference type for account X.0-Local Conference,2-Network Conference. +##The default value is 0. +account.{$row.line_number}.conf_type = + +##It configures the network conference URI for account X. +##The default value is blank. +account.{$row.line_number}.conf_uri = + +####################################################################################### +## CID Source ## +####################################################################################### +account.{$row.line_number}.cid_source = {$yealink_cid_source} +account.{$row.line_number}.cid_source_privacy = +account.{$row.line_number}.cid_source_ppi = +account.{$row.line_number}.cp_source = + +####################################################################################### +## Session Timer ## +####################################################################################### +account.{$row.line_number}.session_timer.enable = {$yealink_session_timer} +account.{$row.line_number}.session_timer.expires = +account.{$row.line_number}.session_timer.refresher = + +####################################################################################### +## Music on Hold ## +####################################################################################### +##It configures the way on how the phone processes Music On Hold when placing an active call on hold for account X. +##0-Calling the music server before holding +##1-Calling the music server after holding +##The default value is 0. +account.{$row.line_number}.music_on_hold_type = + +##It configures the URI of the Music On Hold server for account X. +##The default value is blank. +account.{$row.line_number}.music_server_uri = + +####################################################################################### +## Advanced ## +####################################################################################### +account.{$row.line_number}.auto_answer = +account.{$row.line_number}.missed_calllog = +account.{$row.line_number}.100rel_enable = {$yealink_retransmission} +account.{$row.line_number}.enable_user_equal_phone = +account.{$row.line_number}.compact_header_enable = +account.{$row.line_number}.custom_ua = + +####################################################################################### +## DND(Except T19 Model) ## +####################################################################################### +account.{$row.line_number}.dnd.enable = +account.{$row.line_number}.dnd.on_code = +account.{$row.line_number}.dnd.off_code = + +####################################################################################### +## Call Forward(Except T19 Model) ## +####################################################################################### +account.{$row.line_number}.always_fwd.enable = +account.{$row.line_number}.always_fwd.target = +account.{$row.line_number}.always_fwd.off_code = +account.{$row.line_number}.always_fwd.on_code = +account.{$row.line_number}.busy_fwd.enable = +account.{$row.line_number}.busy_fwd.target = +account.{$row.line_number}.busy_fwd.off_code = +account.{$row.line_number}.busy_fwd.on_code = +account.{$row.line_number}.timeout_fwd.enable = +account.{$row.line_number}.timeout_fwd.target = +account.{$row.line_number}.timeout_fwd.timeout = +account.{$row.line_number}.timeout_fwd.off_code = +account.{$row.line_number}.timeout_fwd.on_code = + +####################################################################################### +## Voice Monitoring (Except T19P/T21P Models) ## +####################################################################################### +account.{$row.line_number}.vq_rtcpxr.collector_name = +account.{$row.line_number}.vq_rtcpxr.collector_server_host = +account.{$row.line_number}.vq_rtcpxr.collector_server_port = + + +####################################################################################### +## Broadsoft XSI ## +####################################################################################### +##It configures the user name for XSI authentication for account X.Example:account.{$row.line_number}.xsi.user = 3502@as.iop1.broadworks.net. +##The default value is blank. +account.{$row.line_number}.xsi.user = + +##It configures the password for XSI authentication for account X.Example:account.{$row.line_number}.xsi.password = 123456. +##The default value is blank. +account.{$row.line_number}.xsi.password = + +##It configures the access URL of the Xtended Services Platform server for account X.Example:account.{$row.line_number}.xsi.host = xsp1.iop1.broadworks.net. +##The default value is blank. +account.{$row.line_number}.xsi.host = + +##It configures the server type of the Xtended Services Platform server for account X.Example:account.{$row.line_number}.xsi.server_type = http. +##The default value is http. +account.{$row.line_number}.xsi.server_type = + +##It configures the server port of the Xtended Services Platform server for account X.Example:account.{$row.line_number}.xsi.port = 80. +##The default value is 80.Integer from 1 to 65535 +account.{$row.line_number}.xsi.port = + +####################################################################################### +## V80 Add ## +####################################################################################### +## Add Time 2015.6.26 +account.X.callerid_in_support_header.enable = +account.x.transfer_refer_to_contact_header.enable = +account.x.sub_fail_retry_interval = +account.X.update_ack_while_dialing = +account.x.end_call_when_transferred.enable = +account.x.contact_take_line_param = +####################################################################################### +## V80-SP2 Add ## +####################################################################################### + +account.x.instance_id.enable = +account.{$row.line_number}.reg_with_pani_header.enable = + +####################################################################################### +## V81 Add ## +####################################################################################### +account.{$row.line_number}.dialplan.digitmap.active.on_hook_dialing = +account.{$row.line_number}.dialplan.digitmap.apply_to.directory_dial = +account.{$row.line_number}.dialplan.digitmap.apply_to.forward = +account.{$row.line_number}.dialplan.digitmap.apply_to.on_hook_dial = +account.{$row.line_number}.dialplan.digitmap.apply_to.press_send = +account.{$row.line_number}.dialplan.digitmap.enable = +account.{$row.line_number}.dialplan.digitmap.interdigit_long_timer = +account.{$row.line_number}.dialplan.digitmap.interdigit_short_timer = +account.{$row.line_number}.dialplan.digitmap.no_match_action = +account.{$row.line_number}.dialplan.digitmap.string = +account.{$row.line_number}.dialplan.digitmap.apply_to.history_dial = +####################################################################################### +## V40 Add ## +####################################################################################### +account.{$row.line_number}.hold_use_inactive = +account.{$row.line_number}.call_recording.enable = +account.{$row.line_number}.features.call_decline.enable = +account.{$row.line_number}.line_seize.expires = +account.{$row.line_number}.security_classification.enable = + +####################################################################################### +## Features Sync ## +####################################################################################### +account.{$row.line_number}.features.forward.feature_key_sync.local_processing.enable = +account.{$row.line_number}.features.dnd.feature_key_sync.local_processing.enable = + +####################################################################################### +## Broadsoft Flexible Seating ## +####################################################################################### +##V40 Add +account.{$row.line_number}.flexible_seating.enable = +account.{$row.line_number}.hoteling.pin = +account.{$row.line_number}.hoteling.mode = + +####################################################################################### +## Broadsoft Hoteling ## +####################################################################################### +##V40 Add +account.{$row.line_number}.hoteling.enable = +account.{$row.line_number}.hoteling.user_id = +account.{$row.line_number}.hoteling.password = +account.{$row.line_number}.hoteling.expires = +account.{$row.line_number}.hoteling.auto_login_enable = + +{/foreach}