Преглед на файлове

Move app/xmpp as an optional application in dev/apps.

Mark Crane преди 10 години
родител
ревизия
fc51c5c102
променени са 14 файла, в които са добавени 1628 реда и са изтрити 0 реда
  1. 3 0
      xmpp/README
  2. 148 0
      xmpp/app_config.php
  3. 483 0
      xmpp/app_languages.php
  4. 16 0
      xmpp/app_menu.php
  5. 53 0
      xmpp/client_template.php
  6. 51 0
      xmpp/db_create.php
  7. 28 0
      xmpp/errors.php
  8. 95 0
      xmpp/profile_delete.php
  9. 277 0
      xmpp/profile_edit.php
  10. 70 0
      xmpp/profile_list.php
  11. 50 0
      xmpp/root.php
  12. 10 0
      xmpp/update_complete.php
  13. 100 0
      xmpp/xmpp.php
  14. 244 0
      xmpp/xmpp_profile_edit.php

+ 3 - 0
xmpp/README

@@ -0,0 +1,3 @@
+This Module brought to you by the Letters Ken Rice <krice at tollfreegateway dot com>
+
+See the Wiki for more information.

+ 148 - 0
xmpp/app_config.php

@@ -0,0 +1,148 @@
+<?php
+
+	//application details
+		$apps[$x]['name'] = "XMPP Manager";
+		$apps[$x]['uuid'] = "740f1c0d-6d82-fcde-3873-0fc9779789ec";
+		$apps[$x]['category'] = "Switch";
+		$apps[$x]['subcategory'] = "";
+		$apps[$x]['version'] = "";
+		$apps[$x]['license'] = "Mozilla Public License 1.1";
+		$apps[$x]['url'] = "http://www.fusionpbx.com";
+		$apps[$x]['description']['en-us'] = "";
+		$apps[$x]['description']['en-us'] = "Allow User to Open a Flash Phone for his Extension.";
+		$apps[$x]['description']['es-cl'] = "Permite a los usuarios iniciar un teléfono flash para su extensión";
+		$apps[$x]['description']['es-mx'] = "";
+		$apps[$x]['description']['de-de'] = "";
+		$apps[$x]['description']['de-ch'] = "";
+		$apps[$x]['description']['de-at'] = "";
+		$apps[$x]['description']['fr-fr'] = "Permet d'utiliser un téléphone flash comme extension.";
+		$apps[$x]['description']['fr-ca'] = "";
+		$apps[$x]['description']['fr-ch'] = "";
+		$apps[$x]['description']['pt-pt'] = "Permitir que o utilizador abra um Telefone Flash para a sua extensão.";
+		$apps[$x]['description']['pt-br'] = "";
+
+	//permission details
+		$apps[$x]['permissions'][0]['name'] = "xmpp_view";
+		$apps[$x]['permissions'][0]['menu']['uuid'] = "1808365b-0f7c-7555-89d0-31b3d9a75abb";
+		$apps[$x]['permissions'][0]['groups'][] = "superadmin";
+
+		$apps[$x]['permissions'][1]['name'] = "xmpp_add";
+		$apps[$x]['permissions'][1]['groups'][] = "superadmin";
+
+		$apps[$x]['permissions'][2]['name'] = "xmpp_edit";
+		$apps[$x]['permissions'][2]['groups'][] = "superadmin";
+
+		$apps[$x]['permissions'][3]['name'] = "xmpp_delete";
+		$apps[$x]['permissions'][3]['groups'][] = "superadmin";
+
+	//schema details
+		$y = 0; //table array index
+		$z = 0; //field array index
+		$apps[$x]['db'][$y]['table'] = "v_xmpp";
+		$apps[$x]['db'][$y]['fields'][$z]['name']['text'] = "id";
+		$apps[$x]['db'][$y]['fields'][$z]['name']['deprecated'] = "xmpp_profile_id";
+		$apps[$x]['db'][$y]['fields'][$z]['type']['pgsql'] = "serial";
+		$apps[$x]['db'][$y]['fields'][$z]['type']['sqlite'] = "integer";
+		$apps[$x]['db'][$y]['fields'][$z]['type']['mysql'] = "INT NOT NULL AUTO_INCREMENT";
+		$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "";
+		$apps[$x]['db'][$y]['fields'][$z]['deprecated'] = "true";
+		$z++;
+		$apps[$x]['db'][$y]['fields'][$z]['name'] = "xmpp_profile_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'] = "primary";
+		$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "";
+		$z++;
+		$apps[$x]['db'][$y]['fields'][$z]['name'] = "domain_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_domains";
+		$apps[$x]['db'][$y]['fields'][$z]['key']['reference']['field'] = "domain_uuid";
+		$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "";
+		$z++;
+		$apps[$x]['db'][$y]['fields'][$z]['name'] = "v_id";
+		$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
+		$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "";
+		$apps[$x]['db'][$y]['fields'][$z]['deprecated'] = "true";
+		$z++;
+		$apps[$x]['db'][$y]['fields'][$z]['name'] = "profile_name";
+		$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'] = "username";
+		$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'] = "password";
+		$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'] = "dialplan";
+		$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'] = "context";
+		$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'] = "rtp_ip";
+		$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'] = "ext_rtp_ip";
+		$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'] = "auto_login";
+		$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'] = "sasl_type";
+		$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'] = "xmpp_server";
+		$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'] = "tls_enable";
+		$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']['text'] = "use_rtp_timer";
+		$apps[$x]['db'][$y]['fields'][$z]['name']['deprecated'] = "usr_rtp_timer";
+		$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'] = "default_exten";
+		$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'] = "vad";
+		$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
+		$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "in/out/both";
+		$z++;
+		$apps[$x]['db'][$y]['fields'][$z]['name'] = "avatar";
+		$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
+		$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "example: /path/to/tiny.jpg";
+		$z++;
+		$apps[$x]['db'][$y]['fields'][$z]['name'] = "candidate_acl";
+		$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'] = "local_network_acl";
+		$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'] = "enabled";
+		$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'] = "description";
+		$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
+		$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "";
+
+?>

+ 483 - 0
xmpp/app_languages.php

@@ -0,0 +1,483 @@
+<?php
+
+$text['title-xmpp-edit']['en-us'] = "Profile Edit";
+$text['title-xmpp-edit']['es-cl'] = "Editar Perfil";
+$text['title-xmpp-edit']['pt-pt'] = "Editar Perfil";
+$text['title-xmpp-edit']['fr-fr'] = "Edition du Profile";
+$text['title-xmpp-edit']['pt-br'] = "Editar perfil";
+$text['title-xmpp-edit']['pl'] = "Edycja profilu";
+$text['title-xmpp-edit']['sv-se'] = "Editera Profil";
+
+$text['title-xmpp-add']['en-us'] = "Profile Add";
+$text['title-xmpp-add']['es-cl'] = "Agregar Perfil";
+$text['title-xmpp-add']['pt-pt'] = "Adicionar Perfil";
+$text['title-xmpp-add']['fr-fr'] = "Ajouter un Profile";
+$text['title-xmpp-add']['pt-br'] = "Adicionar perfil";
+$text['title-xmpp-add']['pl'] = "Dodaj profi";
+$text['title-xmpp-add']['sv-se'] = "Lägg Till Profil";
+
+$text['title-xmpp']['en-us'] = "XMPP Manager";
+$text['title-xmpp']['es-cl'] = "Administración XMPP";
+$text['title-xmpp']['pt-pt'] = "Gestor XMPP";
+$text['title-xmpp']['fr-fr'] = "Gestion XMPP";
+$text['title-xmpp']['pt-br'] = "Gerenciador XMPP";
+$text['title-xmpp']['pl'] = "Menedżer XMPP";
+$text['title-xmpp']['sv-se'] = "XMPP Inställningar";
+
+$text['option-vad_out']['en-us'] = "Out";
+$text['option-vad_out']['es-cl'] = "Salida";
+$text['option-vad_out']['pt-pt'] = "Saída";
+$text['option-vad_out']['fr-fr'] = "Sortant";
+$text['option-vad_out']['pt-br'] = "Saída";
+$text['option-vad_out']['pl'] = "Na zewnątrz";
+$text['option-vad_out']['sv-se'] = "Ute";
+
+$text['option-vad_none']['en-us'] = "None";
+$text['option-vad_none']['es-cl'] = "Ninguno";
+$text['option-vad_none']['pt-pt'] = "Nenhum";
+$text['option-vad_none']['fr-fr'] = "Aucune";
+$text['option-vad_none']['pt-br'] = "Nenhum";
+$text['option-vad_none']['pl'] = "Żaden";
+$text['option-vad_none']['sv-se'] = "Ingen";
+
+$text['option-vad_in']['en-us'] = "In";
+$text['option-vad_in']['es-cl'] = "Entrada";
+$text['option-vad_in']['pt-pt'] = "Entrada";
+$text['option-vad_in']['fr-fr'] = "Entrant";
+$text['option-vad_in']['pt-br'] = "Entrada";
+$text['option-vad_in']['pl'] = "W środku";
+$text['option-vad_in']['sv-se'] = "Inne";
+
+$text['option-vad_both']['en-us'] = "Both";
+$text['option-vad_both']['es-cl'] = "Ambos";
+$text['option-vad_both']['pt-pt'] = "Ambas";
+$text['option-vad_both']['fr-fr'] = "Les Deux";
+$text['option-vad_both']['pt-br'] = "Ambas";
+$text['option-vad_both']['pl'] = "Obydwa";
+$text['option-vad_both']['sv-se'] = "Båda";
+
+$text['message-update']['en-us'] = "Update Completed";
+$text['message-update']['es-cl'] = "Actualización Completada";
+$text['message-update']['pt-pt'] = "Actualização Efectuada";
+$text['message-update']['fr-fr'] = "Mis à Jour";
+$text['message-update']['pt-br'] = "Atualização Efetuada";
+$text['message-update']['pl'] = "Zaktualizowano poprawnie";
+$text['message-update']['sv-se'] = "Uppdatering Klar";
+
+$text['message-required']['en-us'] = "Please provide: ";
+$text['message-required']['es-cl'] = "Por favor indique: ";
+$text['message-required']['pt-pt'] = "Por favor indique: ";
+$text['message-required']['fr-fr'] = "Merci d'indiquer:";
+$text['message-required']['pt-br'] = "Por favor Indique:";
+$text['message-required']['pl'] = "Wpisz:";
+$text['message-required']['sv-se'] = "Var god uppge:";
+
+$text['message-delete']['en-us'] = "Delete Completed";
+$text['message-delete']['es-cl'] = "Eliminación Completada";
+$text['message-delete']['pt-pt'] = "Remoção Efectuada";
+$text['message-delete']['fr-fr'] = "Supprimé";
+$text['message-delete']['pt-br'] = "Remoção Efetuada";
+$text['message-delete']['pl'] = "Usunięto poprawnie";
+$text['message-delete']['sv-se'] = "Borttagning Klar";
+
+$text['message-add']['en-us'] = "Add Completed";
+$text['message-add']['es-cl'] = "Agregar Completado";
+$text['message-add']['pt-pt'] = "Adição Efectuada";
+$text['message-add']['fr-fr'] = "Ajouté";
+$text['message-add']['pt-br'] = "Criação Efetuada";
+$text['message-add']['pl'] = "Dodano poprawnie";
+$text['message-add']['sv-se'] = "Tillagd";
+
+$text['label-xmpp_server']['en-us'] = "XMPP Server";
+$text['label-xmpp_server']['es-cl'] = "Servidor XMPP";
+$text['label-xmpp_server']['pt-pt'] = "Servidor XMPP";
+$text['label-xmpp_server']['fr-fr'] = "Serveur XMPP";
+$text['label-xmpp_server']['pt-br'] = "Servidor XMPP";
+$text['label-xmpp_server']['pl'] = "Serwer XMPP";
+$text['label-xmpp_server']['sv-se'] = "XMPP Server";
+
+$text['label-vad']['en-us'] = "Voice Activity Detection (VAD)";
+$text['label-vad']['es-cl'] = "Voice Activity Detection (VAD)";
+$text['label-vad']['pt-pt'] = "Detecção de Actividade de Voz (VAD)";
+$text['label-vad']['fr-fr'] = "Dectection d'activité voix (VAD)";
+$text['label-vad']['pt-br'] = "Detecção de atividade voz (VAD)";
+$text['label-vad']['pl'] = "Detekcja głosu (VAD)";
+$text['label-vad']['sv-se'] = "Voice Activity Detection (VAD) ";
+
+$text['label-username']['en-us'] = "Username";
+$text['label-username']['es-cl'] = "Nombre de usuario";
+$text['label-username']['pt-pt'] = "Nome de Utilizador";
+$text['label-username']['fr-fr'] = "Nom d'utilisateur";
+$text['label-username']['pt-br'] = "Nome do Usuário";
+$text['label-username']['pl'] = "Użytkownik";
+$text['label-username']['sv-se'] = "Användarnamn";
+
+$text['label-use_rtp_timer']['en-us'] = "Use RTP Timer";
+$text['label-use_rtp_timer']['es-cl'] = "Utilizar un timer RIP";
+$text['label-use_rtp_timer']['pt-pt'] = "Utilize um temporizador RTP";
+$text['label-use_rtp_timer']['fr-fr'] = "Utilise le timer RTP";
+$text['label-use_rtp_timer']['pt-br'] = "Utilize um temporizador RTP";
+$text['label-use_rtp_timer']['pl'] = "Użyj RTP timer";
+$text['label-use_rtp_timer']['sv-se'] = "Använd RTP Timer";
+
+$text['label-true']['en-us'] = "True";
+$text['label-true']['es-cl'] = "Verdadero";
+$text['label-true']['pt-pt'] = "Sim";
+$text['label-true']['fr-fr'] = "Oui";
+$text['label-true']['pt-br'] = "Sim";
+$text['label-true']['pl'] = "Tak";
+$text['label-true']['sv-se'] = "Sann";
+
+$text['label-tls_enable']['en-us'] = "Enable TLS";
+$text['label-tls_enable']['es-cl'] = "Activar TLS";
+$text['label-tls_enable']['pt-pt'] = "Habilitar TLS";
+$text['label-tls_enable']['fr-fr'] = "Activer TLS";
+$text['label-tls_enable']['pt-br'] = "Habilitar TLS";
+$text['label-tls_enable']['pl'] = "Włącz TLS";
+$text['label-tls_enable']['sv-se'] = "Aktivera TLS";
+
+$text['label-status']['en-us'] = "Status";
+$text['label-status']['es-cl'] = "Estado";
+$text['label-status']['pt-pt'] = "Estado";
+$text['label-status']['fr-fr'] = "Statut";
+$text['label-status']['pt-br'] = "Estado";
+$text['label-status']['pl'] = "Status";
+$text['label-status']['sv-se'] = "Status";
+
+$text['label-sasl_type']['en-us'] = "SASL Type";
+$text['label-sasl_type']['es-cl'] = "Tipo de SASL";
+$text['label-sasl_type']['pt-pt'] = "Tipo de SASL";
+$text['label-sasl_type']['fr-fr'] = "Type SASL";
+$text['label-sasl_type']['pt-br'] = "Tipo de SASL";
+$text['label-sasl_type']['pl'] = "Typ SASL ";
+$text['label-sasl_type']['sv-se'] = "SASL Typ";
+
+$text['label-rtp_ip']['en-us'] = "RTP IP";
+$text['label-rtp_ip']['es-cl'] = "RTP IP";
+$text['label-rtp_ip']['pt-pt'] = "IP do RTP";
+$text['label-rtp_ip']['fr-fr'] = "RTP IP";
+$text['label-rtp_ip']['pt-br'] = "IP do RTP";
+$text['label-rtp_ip']['pl'] = "IP RTP";
+$text['label-rtp_ip']['sv-se'] = "RTP IP";
+
+$text['label-profile_name']['en-us'] = "Profile Name";
+$text['label-profile_name']['es-cl'] = "Nombre de perfil";
+$text['label-profile_name']['pt-pt'] = "Nome";
+$text['label-profile_name']['fr-fr'] = "Nom du Profile";
+$text['label-profile_name']['pt-br'] = "Nome";
+$text['label-profile_name']['pl'] = "Nazwa profilu";
+$text['label-profile_name']['sv-se'] = "Namn";
+
+$text['label-password']['en-us'] = "Password";
+$text['label-password']['es-cl'] = "Contraseña";
+$text['label-password']['pt-pt'] = "Palavra-passe";
+$text['label-password']['fr-fr'] = "Mot de Passe";
+$text['label-password']['pt-br'] = "Senha";
+$text['label-password']['pl'] = "Hasło";
+$text['label-password']['sv-se'] = "Lösenord";
+
+$text['label-local_network_acl']['en-us'] = "Local Network ACL";
+$text['label-local_network_acl']['es-cl'] = "ACL de red local";
+$text['label-local_network_acl']['pt-pt'] = "Rede Local ACL";
+$text['label-local_network_acl']['fr-fr'] = "ACL Réseau local";
+$text['label-local_network_acl']['pt-br'] = "Rede Local ACL";
+$text['label-local_network_acl']['pl'] = "Lokalna lista kontroli dostępu";
+$text['label-local_network_acl']['sv-se'] = "Lokalt Nätverk ACL";
+
+$text['label-false']['en-us'] = "False";
+$text['label-false']['es-cl'] = "Falso";
+$text['label-false']['pt-pt'] = "Não";
+$text['label-false']['fr-fr'] = "Non";
+$text['label-false']['pt-br'] = "Não";
+$text['label-false']['pl'] = "Nie";
+$text['label-false']['sv-se'] = "Falsk";
+
+$text['label-ext_rtp_ip']['en-us'] = "External RTP IP";
+$text['label-ext_rtp_ip']['es-cl'] = "RTP IP Externo";
+$text['label-ext_rtp_ip']['pt-pt'] = "IP Externo do RTP";
+$text['label-ext_rtp_ip']['fr-fr'] = "RTP IP Externe";
+$text['label-ext_rtp_ip']['pt-br'] = "IP Externo do RTP";
+$text['label-ext_rtp_ip']['pl'] = "Zewnętrzny IP RTP";
+$text['label-ext_rtp_ip']['sv-se'] = "External RTP IP";
+
+$text['label-enabled']['en-us'] = "Enabled";
+$text['label-enabled']['es-cl'] = "Activado";
+$text['label-enabled']['pt-pt'] = "Habilitado";
+$text['label-enabled']['fr-fr'] = "Actif";
+$text['label-enabled']['pt-br'] = "Habilitado";
+$text['label-enabled']['pl'] = "Włączony";
+$text['label-enabled']['sv-se'] = "Aktiverad";
+
+$text['label-description']['en-us'] = "Description";
+$text['label-description']['es-cl'] = "Descripción";
+$text['label-description']['pt-pt'] = "Descrição";
+$text['label-description']['fr-fr'] = "Description";
+$text['label-description']['pt-br'] = "Descrição";
+$text['label-description']['pl'] = "Opis";
+$text['label-description']['sv-se'] = "Beskrivning";
+
+$text['label-default_exten']['en-us'] = "Default Extension";
+$text['label-default_exten']['es-cl'] = "Extensión predeterminada";
+$text['label-default_exten']['pt-pt'] = "Extensão predefinida";
+$text['label-default_exten']['fr-fr'] = "Extension par Défaut";
+$text['label-default_exten']['pt-br'] = "Extensão predefinida";
+$text['label-default_exten']['pl'] = "Domyślny numer wew";
+$text['label-default_exten']['sv-se'] = "Standard Anknytning";
+
+$text['label-context']['en-us'] = "Context";
+$text['label-context']['es-cl'] = "Contexto";
+$text['label-context']['pt-pt'] = "Contexto";
+$text['label-context']['fr-fr'] = "Contexte";
+$text['label-context']['pt-br'] = "Contexto";
+$text['label-context']['pl'] = "Kontekst";
+$text['label-context']['sv-se'] = "Context";
+
+$text['label-candidate_acl']['en-us'] = "Candidate ACL";
+$text['label-candidate_acl']['es-cl'] = "Candidato ACL";
+$text['label-candidate_acl']['pt-pt'] = "Candidato ACL";
+$text['label-candidate_acl']['fr-fr'] = "ACL Candidat";
+$text['label-candidate_acl']['pt-br'] = "Candidato ACL";
+$text['label-candidate_acl']['pl'] = "Proponowana lista kontroli dostępu.";
+$text['label-candidate_acl']['sv-se'] = "Candidate ACL ";
+
+$text['label-auto_login']['en-us'] = "Auto-Login";
+$text['label-auto_login']['es-cl'] = "Ingreso automático";
+$text['label-auto_login']['pt-pt'] = "Login Automático";
+$text['label-auto_login']['fr-fr'] = "Login Auto";
+$text['label-auto_login']['pt-br'] = "Login automático";
+$text['label-auto_login']['pl'] = "Automatyczne logowanie";
+$text['label-auto_login']['sv-se'] = "Auto-Login";
+
+$text['header-xmpp-edit']['en-us'] = "Profile Edit";
+$text['header-xmpp-edit']['es-cl'] = "Editar Perfil";
+$text['header-xmpp-edit']['pt-pt'] = "Editar Perfil";
+$text['header-xmpp-edit']['fr-fr'] = "Editer le profile";
+$text['header-xmpp-edit']['pt-br'] = "Editar perfil";
+$text['header-xmpp-edit']['pl'] = "Edytuj profil";
+$text['header-xmpp-edit']['sv-se'] = "Editera Profil";
+
+$text['header-xmpp-add']['en-us'] = "Profile Add";
+$text['header-xmpp-add']['es-cl'] = "Agregar Perfil|";
+$text['header-xmpp-add']['pt-pt'] = "Adicionar Perfil";
+$text['header-xmpp-add']['fr-fr'] = "Ajouter un profile";
+$text['header-xmpp-add']['pt-br'] = "Adicionar perfil";
+$text['header-xmpp-add']['pl'] = "Dodaj profil";
+$text['header-xmpp-add']['sv-se'] = "Lägg Till Profil";
+
+$text['header-xmpp']['en-us'] = "XMPP Manager";
+$text['header-xmpp']['es-cl'] = "Administración XMPP";
+$text['header-xmpp']['pt-pt'] = "Gestor XMPP";
+$text['header-xmpp']['fr-fr'] = "Gestion XMPP";
+$text['header-xmpp']['pt-br'] = "Gerenciador XMPP";
+$text['header-xmpp']['pl'] = "Menedżer XMPP";
+$text['header-xmpp']['sv-se'] = "XMPP Inställningar";
+
+$text['description-xmpp_server']['en-us'] = "Enter the alternate XMPP server if not the same as specified in the Username field above (e.g. GoogleTalk is: talk.google.com).";
+$text['description-xmpp_server']['es-cl'] = "Ingrese un servidor XMPP alternativo (ejm: GoogleTalk es: talk.google.com)";
+$text['description-xmpp_server']['pt-pt'] = "Introduza um servidor XMPP alternativo diferente do especificado no campo Nome de Utilizador acima (ex: GoogleTalk é: talk.google.com).";
+$text['description-xmpp_server']['fr-fr'] = "Insérer le serveur XMPP alternatif si ce n'est pas le même que celui renseigné dans le nom d'utilisateur précédent (e.g. GoogleTalk est talk.google.com).";
+$text['description-xmpp_server']['pt-br'] = "Insira um servidor XMPP alternativo diferente do especificado no campo Nome de Utilizador acima (ex: GoogleTalk é: talk.google.com). ";
+$text['description-xmpp_server']['pl'] = "Wprowadź alternatywny serwer XMPP, jeśli nie jest taki sam, jak określono w polu Nazwa użytkownika powyżej (np Google Talk: talk.google.com)";
+$text['description-xmpp_server']['sv-se'] = "Ange alternativ XMPP server om inte samma som anges i fältet Användarnamn ovan ( t.ex. Google är : talk.google.com ).";
+
+$text['description-xmpp-list']['en-us'] = "Utilizes the Jingle protocol. Jingle is an extension to the Jabber/XMPP protocol.";
+$text['description-xmpp-list']['es-cl'] = "Utiliza el protocolo Jingle. Jingle es una extensión del protocolo Jabber/XMPP";
+$text['description-xmpp-list']['pt-pt'] = "Utiliza o protocolo Jingle. O Jingle é uma extensão ao protocolo Jabber/XMPP.";
+$text['description-xmpp-list']['fr-fr'] = "Utilise le protocle Jingle. Jingle est une extension du protocol Jabber/ XMPP.";
+$text['description-xmpp-list']['pt-br'] = "Utilize o protocolo Jingle é uma extensão ao protocolo Jabber/XMPP";
+$text['description-xmpp-list']['pl'] = "Korzysta z protokołu Jingle - jest on rozszerzeniem protokołu Jabber / XMPP.";
+$text['description-xmpp-list']['sv-se'] = "Utnyttjar Jingle protokollet. Jingle är ett tillägg till Jabber / XMPP -protokollet.";
+
+$text['description-xmpp-edit-add']['en-us'] = "Defines a connection to a Jabber, GTalk, or other XMPP Provider server.";
+$text['description-xmpp-edit-add']['es-cl'] = "Define una conexión a Jabber. GTalk u otro proveedor XMPP";
+$text['description-xmpp-edit-add']['pt-pt'] = "Define uma ligação ao Jabber, GTalk, ou outro provedor de XMPP.";
+$text['description-xmpp-edit-add']['fr-fr'] = "Définir une connexion à Jabber, GTalk ou tout autre fournissuer de service XMPP.";
+$text['description-xmpp-edit-add']['pt-br'] = "Define uma ligação ao Jabber, GTalk, ou outro provedor de XMPP";
+$text['description-xmpp-edit-add']['pl'] = "Ustanawia połączenie z Jabber, GTalk lub innego dostawcy serwera XMPP.";
+$text['description-xmpp-edit-add']['sv-se'] = "Definierar en anslutning till en Jabber , GTalk eller annan XMPP Provider server.";
+
+$text['description-vad']['en-us'] = "The direction for which VAD should be enabled.";
+$text['description-vad']['es-cl'] = "La dirección en la cual VAD debe ser activado.";
+$text['description-vad']['pt-pt'] = "Escolha a direcção para a qual a VAD deverá ser activada.";
+$text['description-vad']['fr-fr'] = "Choisir la direction pour la quelle la VAD doit être activée.";
+$text['description-vad']['pt-br'] = "Escolha a direção para qual o VAD deverá ser ativado";
+$text['description-vad']['pl'] = "Kieruneki dla których VAD powinien być włączony.";
+$text['description-vad']['sv-se'] = "Riktningen som VAD ska vara aktiverat för.";
+
+$text['description-username']['en-us'] = "Enter the XMPP username here.";
+$text['description-username']['es-cl'] = "Ingrese el nombre de usuario XMPP";
+$text['description-username']['pt-pt'] = "Introduza o nome do utilizador XMPP aqui.";
+$text['description-username']['fr-fr'] = "Insérer l'utilisateur XMPP.";
+$text['description-username']['pt-br'] = "Insira o nome do usuário";
+$text['description-username']['pl'] = "Wprowadź nazwę użytkownika";
+$text['description-username']['sv-se'] = "Ange XMPP användarnamn här.";
+
+$text['description-use_rtp_timer']['en-us'] = "Disable to trade async for more calls.";
+$text['description-use_rtp_timer']['es-cl'] = "Desactivar asincronía de intercambio para más llamadas";
+$text['description-use_rtp_timer']['pt-pt'] = "Desabilitar sincronização para mais chamadas";
+$text['description-use_rtp_timer']['fr-fr'] = "désactiver la synchronisation pour augmenter le nombre d'appels";
+$text['description-use_rtp_timer']['pt-br'] = "Desabilitar sincronização para mais chamadas";
+$text['description-use_rtp_timer']['pl'] = "Wyłącz funkcję ASYNCH  w następnych rozmowach";
+$text['description-use_rtp_timer']['sv-se'] = "Inaktivare för att byta  async mot fler samtal.";
+
+$text['description-tls_enable']['en-us'] = "Set the status of TLS support.";
+$text['description-tls_enable']['es-cl'] = "Indicar el estado del soporte TLS";
+$text['description-tls_enable']['pt-pt'] = "Defina o estado do suporte TLS.";
+$text['description-tls_enable']['fr-fr'] = "Choisir le statut du support TLS.";
+$text['description-tls_enable']['pt-br'] = "Defina o estado do suporte TLS";
+$text['description-tls_enable']['pl'] = "Ustaw status wsparcia TLS.";
+$text['description-tls_enable']['sv-se'] = "Ange status för TLS support.";
+
+$text['description-sasl_type']['en-us'] = "Select an SASL type.";
+$text['description-sasl_type']['es-cl'] = "Seleccione un tipo de SASL";
+$text['description-sasl_type']['pt-pt'] = "Introduza um tipo de SASL";
+$text['description-sasl_type']['fr-fr'] = "Choisir un type de SASL.";
+$text['description-sasl_type']['pt-br'] = "Insira um tipo de SASL";
+$text['description-sasl_type']['pl'] = "Wybierz typ SASL";
+$text['description-sasl_type']['sv-se'] = "Välj en SASL typ.";
+
+$text['description-rtp_ip']['en-us'] = "IP Address for RTP.";
+$text['description-rtp_ip']['es-cl'] = "Dirección IP para RTP";
+$text['description-rtp_ip']['pt-pt'] = "Endereço IP para o RTP.";
+$text['description-rtp_ip']['fr-fr'] = "Adresse IP du proxy RTP.";
+$text['description-rtp_ip']['pt-br'] = "Endereço para o RTP";
+$text['description-rtp_ip']['pl'] = "Zewnętrzny IP RTP";
+$text['description-rtp_ip']['sv-se'] = "IP-adress för RTP.";
+
+$text['description-profile_name']['en-us'] = "Enter the profile name here.";
+$text['description-profile_name']['es-cl'] = "Ingrese el nombre perfil";
+$text['description-profile_name']['pt-pt'] = "Introduza o nome do perfil aqui.";
+$text['description-profile_name']['fr-fr'] = "Insérer le nom du profile.";
+$text['description-profile_name']['pt-br'] = "Digite um nome para identificar este perfil";
+$text['description-profile_name']['pl'] = "Wpisz nazwę aby zidentyfikować ten profil";
+$text['description-profile_name']['sv-se'] = "Ange ett namn för att identifiera denna profil.";
+
+$text['description-password']['en-us'] = "Enter the password here.";
+$text['description-password']['es-cl'] = "Ingrese la contraseña";
+$text['description-password']['pt-pt'] = "Introduza a palavra-passe aqui.";
+$text['description-password']['fr-fr'] = "Insérer le mot de passe XMPP.";
+$text['description-password']['pt-br'] = "Introduza a senha";
+$text['description-password']['pl'] = "Wpisz hasło";
+$text['description-password']['sv-se'] = "Ange lösenord här.";
+
+$text['description-local_network_acl']['en-us'] = "Local network access control list.";
+$text['description-local_network_acl']['es-cl'] = "ACL de red local";
+$text['description-local_network_acl']['pt-pt'] = "Lista de controlo de acesso da Rede Local.";
+$text['description-local_network_acl']['fr-fr'] = "listes de contrôle d'accès du Réseau local";
+$text['description-local_network_acl']['pt-br'] = "Lista de controle de acesso a rede local";
+$text['description-local_network_acl']['pl'] = "Lokalna lista kontroli dostępu do sieci.";
+$text['description-local_network_acl']['sv-se'] = "Lokalt nätverks access kontroll lista.";
+
+$text['description-ext_rtp_ip']['en-us'] = "External IP Address for RTP.";
+$text['description-ext_rtp_ip']['es-cl'] = "Dirección IP externa para RTP";
+$text['description-ext_rtp_ip']['pt-pt'] = "Endereço IP Externo para o RTP.";
+$text['description-ext_rtp_ip']['fr-fr'] = "Adresse externe IP du proxy RTP.";
+$text['description-ext_rtp_ip']['pt-br'] = "Endereço IP externo para o RTP";
+$text['description-ext_rtp_ip']['pl'] = "Zewnętrzny adres IP dla RTP.";
+$text['description-ext_rtp_ip']['sv-se'] = "Extern IP-adress för RTP.";
+
+$text['description-enabled']['en-us'] = "Set the current status of this profile.";
+$text['description-enabled']['es-cl'] = "Indicar el estado actual de este perfil.";
+$text['description-enabled']['pt-pt'] = "Escolha o estado actual deste perfil.";
+$text['description-enabled']['fr-fr'] = "Choisir le statut actuel de ce profile.";
+$text['description-enabled']['pt-br'] = "Escolha o estado desta definição";
+$text['description-enabled']['pl'] = "Ustaw aktualny stan tego profilu.";
+$text['description-enabled']['sv-se'] = "Välj status på denna profil.";
+
+$text['description-description']['en-us'] = "Enter the description for the Profile here (optional).";
+$text['description-description']['es-cl'] = "Ingrese la descripción para el perfil (opcional)";
+$text['description-description']['pt-pt'] = "Introduza a descrição para o perfil aqui (opcional).";
+$text['description-description']['fr-fr'] = "Mettre ici la description du profile (optionnel).";
+$text['description-description']['pt-br'] = "Insira a descrição, caso desejar";
+$text['description-description']['pl'] = "Wprowadź opis profilu (opcjonalnie).";
+$text['description-description']['sv-se'] = "Fyll i en beskrivning för profilen här (valbart)";
+
+$text['description-default_exten']['en-us'] = "Default extension (if one cannot be determined) .";
+$text['description-default_exten']['es-cl'] = "Extensión predeterminada (si no puede ser determinada)";
+$text['description-default_exten']['pt-pt'] = "Extensão predefinida";
+$text['description-default_exten']['fr-fr'] = "Extension par défaut (si aucune ne peut être déterminé).";
+$text['description-default_exten']['pt-br'] = "Extensão predefinida";
+$text['description-default_exten']['pl'] = "Domyślny numer wew (jeśli nie można ustalić).";
+$text['description-default_exten']['sv-se'] = "Standard anknytning (om en inte kan bestämmas)";
+
+$text['description-context']['en-us'] = "Enter the context here.";
+$text['description-context']['es-cl'] = "Ingrese el contexto";
+$text['description-context']['pt-pt'] = "Introduza o contexo aqui.";
+$text['description-context']['fr-fr'] = "";
+$text['description-context']['pt-br'] = "Insira o contexto";
+$text['description-context']['pl'] = "Wprowadź kontekst";
+$text['description-context']['sv-se'] = "Ange 'context' här.";
+
+$text['description-candidate_acl']['en-us'] = "Candidate access control list.";
+$text['description-candidate_acl']['es-cl'] = "Candidato ACL";
+$text['description-candidate_acl']['pt-pt'] = "Candidato à lista de controlo de acesso";
+$text['description-candidate_acl']['fr-fr'] = "Candidat aux listes de contrôle d'accès";
+$text['description-candidate_acl']['pt-br'] = "Candidado a lista de controle de acesso";
+$text['description-candidate_acl']['pl'] = "Proponowana lista kontroli dostępu.";
+$text['description-candidate_acl']['sv-se'] = "Candidate access control list.";
+
+$text['description-auto_login']['en-us'] = "Choose whether to automatically login.";
+$text['description-auto_login']['es-cl'] = "Seleccione si desea ingresar automáticamente";
+$text['description-auto_login']['pt-pt'] = "Escolha se pretende login automático.";
+$text['description-auto_login']['fr-fr'] = "Choisir un mode de connexion automatique ou non.";
+$text['description-auto_login']['pt-br'] = "Selecione se deseja fazer login automático";
+$text['description-auto_login']['pl'] = "Wybierz, czy automatycznie się zalogować";
+$text['description-auto_login']['sv-se'] = "Välj om auto-inloggning skall vara aktivt.";
+
+$text['confirm-delete']['en-us'] = "Do you really want to delete this?";
+$text['confirm-delete']['es-cl'] = "¿Realmente desea eliminar esto?";
+$text['confirm-delete']['pt-pt'] = "Tem a certeza que pretende remover isto?";
+$text['confirm-delete']['fr-fr'] = "Voulez-vous vraiment supprimer cela?";
+$text['confirm-delete']['pt-br'] = "Tem certeza que vai remover isso?";
+$text['confirm-delete']['pl'] = "Czy na pewno chcesz to usunąć?";
+$text['confirm-delete']['sv-se'] = "Vill du verkligen ta bort detta?";
+
+$text['button-save']['en-us'] = "Save";
+$text['button-save']['es-cl'] = "Guardar";
+$text['button-save']['pt-pt'] = "Guardar";
+$text['button-save']['fr-fr'] = "Sauvegarder";
+$text['button-save']['pt-br'] = "Salvar";
+$text['button-save']['pl'] = "Zachowaj";
+$text['button-save']['sv-se'] = "Spara";
+
+$text['button-edit']['en-us'] = "Edit";
+$text['button-edit']['es-cl'] = "Editar";
+$text['button-edit']['pt-pt'] = "Editar";
+$text['button-edit']['fr-fr'] = "Editer";
+$text['button-edit']['pt-br'] = "Editar";
+$text['button-edit']['pl'] = "Edytuj";
+$text['button-edit']['sv-se'] = "Editera";
+
+$text['button-delete']['en-us'] = "Delete";
+$text['button-delete']['es-cl'] = "Eliminar";
+$text['button-delete']['pt-pt'] = "Remover";
+$text['button-delete']['fr-fr'] = "Supprimer";
+$text['button-delete']['pt-br'] = "Remover";
+$text['button-delete']['pl'] = "Usuń";
+$text['button-delete']['sv-se'] = "Ta Bort";
+
+$text['button-back']['en-us'] = "Back";
+$text['button-back']['es-cl'] = "Volver";
+$text['button-back']['pt-pt'] = "Voltar";
+$text['button-back']['fr-fr'] = "Retour";
+$text['button-back']['pt-br'] = "Voltar";
+$text['button-back']['pl'] = "Wróć";
+$text['button-back']['sv-se'] = "Tillbaka";
+
+$text['button-advanced']['en-us'] = "Advanced";
+$text['button-advanced']['es-cl'] = "Avanzadas";
+$text['button-advanced']['pt-pt'] = "Avançadas";
+$text['button-advanced']['fr-fr'] = "Afficher les paramètres avancés";
+$text['button-advanced']['pt-br'] = "Avançar";
+$text['button-advanced']['pl'] = "Zaawansowane";
+$text['button-advanced']['sv-se'] = "Avancerat";
+
+$text['button-add']['en-us'] = "Add";
+$text['button-add']['es-cl'] = "Agregar";
+$text['button-add']['pt-pt'] = "Adicionar";
+$text['button-add']['fr-fr'] = "Ajouter";
+$text['button-add']['pt-br'] = "Adicionar";
+$text['button-add']['pl'] = "Dodaj";
+$text['button-add']['sv-se'] = "Lägg Till";
+
+?>

+ 16 - 0
xmpp/app_menu.php

@@ -0,0 +1,16 @@
+<?php
+
+$apps[$x]['menu'][0]['title']['en-us'] = "XMPP Manager";
+$apps[$x]['menu'][0]['title']['es-cl'] = "Gestor XMPP";
+$apps[$x]['menu'][0]['title']['fr-fr'] = "Gestion XMPP";
+$apps[$x]['menu'][0]['title']['pt-pt'] = "Gestor XMPP";
+$apps[$x]['menu'][0]['title']['pt-br'] = "Gerenciador XMPP";
+$apps[$x]['menu'][0]['title']['pl'] = "Menedżer XMPP";
+$apps[$x]['menu'][0]['title']['sv-se'] = "XMPP Inställningar";
+$apps[$x]['menu'][0]['uuid'] = "1808365b-0f7c-7555-89d0-31b3d9a75abb";
+$apps[$x]['menu'][0]['parent_uuid'] = "bc96d773-ee57-0cdd-c3ac-2d91aba61b55";
+$apps[$x]['menu'][0]['category'] = "internal";
+$apps[$x]['menu'][0]['path'] = "/app/xmpp/xmpp.php";
+$apps[$x]['menu'][0]['groups'][] = "superadmin";
+
+?>

+ 53 - 0
xmpp/client_template.php

@@ -0,0 +1,53 @@
+<?php 
+/*
+	FusionPBX
+      	Version: MPL 1.1
+
+	The contents of this file are subject to the Mozilla Public License Version
+	1.1 (the "License"); you may not use this file except in compliance with
+	the License. You may obtain a copy of the License at
+	http://www.mozilla.org/MPL/
+
+	Software distributed under the License is distributed on an "AS IS" basis,
+	WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+	for the specific language governing rights and limitations under the
+	License.
+
+	The Original Code is FusionPBX
+
+	The Initial Developer of the Original Code is
+	Mark J Crane <[email protected]>
+	Portions created by the Initial Developer are Copyright (C) 2008-2012
+	the Initial Developer. All Rights Reserved.
+
+	Contributor(s):
+	Ken Rice <[email protected]>
+	Mark J Crane <[email protected]>
+*/
+function make_xmpp_xml($input) {
+	$xml_out .= "<include>\n";
+	$xml_out .= "  <profile type=\"client\">\n";
+	$xml_out .= sprintf("    <param name=\"name\" value=\"%s\"/>\n", $input['profile_name']);
+	$xml_out .= sprintf("    <param name=\"login\" value=\"%s/talk\"/>\n", $input['profile_username']);
+	$xml_out .= sprintf("    <param name=\"password\" value=\"%s\"/>\n", $input['profile_password']);
+	$xml_out .= sprintf("    <param name=\"dialplan\" value=\"XML\"/>\n", $input['dialplan']);
+	$xml_out .= sprintf("    <param name=\"context\" value=\"%s\"/>\n", $input['context']);
+	$xml_out .= "    <param name=\"message\" value=\"Jingle all the way\"/>\n";
+	$xml_out .= sprintf("    <param name=\"rtp-ip\" value=\"%s\"/>\n", $input['rtp_ip']);
+	$xml_out .= sprintf("    <param name=\"ext-rtp-ip\" value=\"%s\"/>\n", $input['ext_rtp_ip']);
+	$xml_out .= sprintf("    <param name=\"auto-login\" value=\"%s\"/>\n", $input['auto_login']);
+	$xml_out .= sprintf("    <param name=\"sasl\" value=\"%s\"/>\n", $input['sasl_type']);
+	$xml_out .= sprintf("    <param name=\"server\" value=\"%s\"/>\n", $input['xmpp_server']);
+	$xml_out .= sprintf("    <param name=\"tls\" value=\"%s\"/>\n", $input['tls_enable']);
+	$xml_out .= sprintf("    <param name=\"use-rtp-timer\" value=\"%s\"/>\n", $input['use_rtp_timer']);
+	$xml_out .= sprintf("    <param name=\"exten\" value=\"%s\"/>\n", $input['default_exten']);
+	$xml_out .= sprintf("    <param name=\"vad\" value=\"%s\"/>\n", $input['vad']);
+	$xml_out .= sprintf("    <param name=\"candidate-acl\" value=\"%s\"/>\n", $input['candidate_acl']);
+	$xml_out .= sprintf("    <param name=\"local-network-acl\" value=\"%s\"/>\n", $input['local_network_acl']);
+	$xml_out .= "  </profile>\n";
+	$xml_out .= "</include>\n";
+
+	return $xml_out;
+}
+
+?>

+ 51 - 0
xmpp/db_create.php

@@ -0,0 +1,51 @@
+<?php
+/*
+	FusionPBX
+      	Version: MPL 1.1
+
+	The contents of this file are subject to the Mozilla Public License Version
+	1.1 (the "License"); you may not use this file except in compliance with
+	the License. You may obtain a copy of the License at
+	http://www.mozilla.org/MPL/
+
+	Software distributed under the License is distributed on an "AS IS" basis,
+	WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+	for the specific language governing rights and limitations under the
+	License.
+
+	The Original Code is FusionPBX
+
+	The Initial Developer of the Original Code is
+	Mark J Crane <[email protected]>
+	Portions created by the Initial Developer are Copyright (C) 2008-2012
+	the Initial Developer. All Rights Reserved.
+
+	Contributor(s):
+	Ken Rice <[email protected]>
+	Mark J Crane <[email protected]>
+*/
+function sql_tables($db_type) {
+	$x = 0;
+
+	include "app_config.php";
+	$sql = "";
+
+	foreach ($apps[$x]['db'] as $new_db) {
+		$sql .= "CREATE TABLE " . $new_db['table'] . " (\n";
+		$fcount = 0;
+		foreach ($new_db['fields'] as $field) {
+			if ($fcount > 0 ) { $sql .= ",\n"; }
+			$sql .= $field['name'] . " ";
+			if (is_array($field['type'])) {
+				$sql .=	$field['type'][$db_type];
+			} else {
+				$sql .=	$field['type'];
+			}
+			$fcount++;
+		}
+		$sql .= ");\n\n";
+	}
+
+	return $sql;
+}
+?>

+ 28 - 0
xmpp/errors.php

@@ -0,0 +1,28 @@
+<?php
+/*
+	FusionPBX
+      	Version: MPL 1.1
+
+	The contents of this file are subject to the Mozilla Public License Version
+	1.1 (the "License"); you may not use this file except in compliance with
+	the License. You may obtain a copy of the License at
+	http://www.mozilla.org/MPL/
+
+	Software distributed under the License is distributed on an "AS IS" basis,
+	WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+	for the specific language governing rights and limitations under the
+	License.
+
+	The Original Code is FusionPBX
+
+	The Initial Developer of the Original Code is
+	Mark J Crane <[email protected]>
+	Portions created by the Initial Developer are Copyright (C) 2008-2012
+	the Initial Developer. All Rights Reserved.
+
+	Contributor(s):
+	Ken Rice <[email protected]>
+	Mark J Crane <[email protected]>
+*/
+echo "<div align='center'>".$error."</div>\n";
+?>

+ 95 - 0
xmpp/profile_delete.php

@@ -0,0 +1,95 @@
+<?php
+/* $Id$ */
+/*
+	FusionPBX
+      	Version: MPL 1.1
+
+	The contents of this file are subject to the Mozilla Public License Version
+	1.1 (the "License"); you may not use this file except in compliance with
+	the License. You may obtain a copy of the License at
+	http://www.mozilla.org/MPL/
+
+	Software distributed under the License is distributed on an "AS IS" basis,
+	WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+	for the specific language governing rights and limitations under the
+	License.
+
+	The Original Code is FusionPBX
+
+	The Initial Developer of the Original Code is
+	Mark J Crane <[email protected]>
+	Portions created by the Initial Developer are Copyright (C) 2008-2012
+	the Initial Developer. All Rights Reserved.
+
+	Contributor(s):
+	Ken Rice <[email protected]>
+	Mark J Crane <[email protected]>
+*/
+include "root.php";
+require_once "resources/require.php";
+require_once "resources/check_auth.php";
+if (permission_exists('xmpp_delete')) {
+	//access granted
+}
+else {
+	echo "access denied";
+	exit;
+}
+
+//add multi-lingual support
+	$language = new text;
+	$text = $language->get();
+
+
+$domain_name = $_SESSION['domains'][$domain_uuid]['domain_name'];
+
+$profile_id = $_REQUEST['id'];
+
+$sql = "";
+$sql .= "select * from v_xmpp ";
+$sql .= "where domain_uuid = '$domain_uuid' ";
+$sql .= "and xmpp_profile_uuid = '$profile_id' ";
+$prep_statement = $db->prepare(check_sql($sql));
+$prep_statement->execute();
+
+$x = 0;
+$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
+foreach ($result as &$row) {
+	$profiles_array[$x] = $row;
+	$x++;
+}
+
+$profile = $profiles_array[0];
+unset ($prep_statement);
+
+$sql = "delete from v_xmpp ";
+$sql .= "where domain_uuid = '$domain_uuid' ";
+$sql .= "and xmpp_profile_uuid = '$profile_id' ";
+$db->exec(check_sql($sql));
+
+$filename = $_SESSION['switch']['conf']['dir'] . "/jingle_profiles/" . "v_" . $domain_name . "_" .
+	preg_replace("/[^A-Za-z0-9]/", "", $profile['profile_name']) . "_" . $profile_id . ".xml";
+
+unlink($filename);
+
+$fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']);
+if ($fp) {
+	//reload the XML Configs
+	$tmp_cmd = 'api reloadxml';
+	$response = event_socket_request($fp, $tmp_cmd);
+	unset($tmp_cmd);
+
+	//tell mod_dingaling to reload is config
+	$tmp_cmd = 'api dingaling reload';
+	$response = event_socket_request($fp, $tmp_cmd);
+	unset($tmp_cmd);
+
+	//close the connection
+	fclose($fp);
+}
+
+$action = "delete";
+
+include "update_complete.php";
+
+?>

+ 277 - 0
xmpp/profile_edit.php

@@ -0,0 +1,277 @@
+<script type="text/javascript" language="JavaScript">
+function enable_change(enable_over) {
+  var endis;
+  endis = !(document.iform.enable.checked || enable_over);
+  document.iform.range_from.disabled = endis;
+  document.iform.range_to.disabled = endis;
+}
+
+function show_advanced_config() {
+	$('#show_advanced_box').slideToggle();
+	$('#show_advanced').slideToggle();
+}
+</script>
+
+	<form method='post' name='ifrm' action=''>
+	<table width='100%' border='0' cellpadding='0' cellspacing='0'>
+	<tr>
+		<td colspan='2'>
+			<table width="100%" border="0" cellpadding="0" cellspacing="0">
+				<tr>
+					<td align='left' width="50%">
+						<span class='title'>
+						<?php
+						if ($action == "update") {
+							echo $text['header-xmpp-edit'];
+						}
+						else if ($action == "add") {
+							echo $text['header-xmpp-add'];
+						}
+						?>
+						</span><br>
+					</td>		<td width='50%' align='right'>
+						<input type='button' class='btn' name='' alt='back' onclick="window.location='xmpp.php'" value='<?php echo $text['button-back']?>'>
+						<input type='submit' name='submit' class='btn' value='<?php echo $text['button-save']?>'>
+					</td>
+				</tr>
+				<tr>
+					<td align='left' colspan='2'>
+						<?php echo $text['description-xmpp-edit-add']?><br />
+					</td>
+				</tr>
+			</table>
+			<br />
+		</td>
+	</tr>
+
+	<tr>
+		<td width="30%" class='vncellreq' valign='top' align='left' nowrap='nowrap'>
+			<?php echo $text['label-profile_name']?>:
+		</td>
+		<td width="70%" class='vtable' align='left'>
+			<input class='formfld' type='text' name='profile_name' maxlength='255' value="<?php echo $profile['profile_name']; ?>" required='required'>
+			<br />
+			<?php echo $text['description-profile_name']?>
+		</td>
+	</tr>
+
+	<tr>
+		<td class='vncellreq' valign='top' align='left' nowrap='nowrap'>
+			<?php echo $text['label-username']?>:
+		</td>
+		<td class='vtable' align='left'>
+			<input class='formfld' type='text' name='profile_username' autocomplete='off' maxlength='255' value="<?php echo $profile['profile_username'];?>" required='required'>
+			<br />
+			<?php echo $text['description-username']?>
+		</td>
+	</tr>
+
+	<tr>
+		<td class='vncellreq' valign='top' align='left' nowrap='nowrap'>
+			<?php echo $text['label-password']?>:
+		</td>
+		<td class='vtable' align='left'>
+			<input class='formfld' type='password' name='profile_password' autocomplete='off' id='profile_password' maxlength='50' onmouseover="this.type='text';" onfocus="this.type='text';" onmouseout="if (!$(this).is(':focus')) { this.type='password'; }" onblur="this.type='password';" value="<?php echo $profile['profile_password'];?>" required='required'>
+			<br />
+			<?php echo $text['description-password']?>
+		</td>
+	</tr>
+
+	<tr>
+		<td class='vncellreq' valign='top' align='left' nowrap='nowrap'>
+			<?php echo $text['label-auto_login']?>:
+		</td>
+		<td class='vtable' align='left'>
+			<select class='formfld' name='auto_login'>
+			<option value='true' <?php if($profile['auto_login'] == "true") echo "selected='selected'"; ?>><?php echo $text['label-true']?></option>
+			<option value='false' <?php if($profile['auto_login'] == "false") echo "selected='selected'"; ?>><?php echo $text['label-false']?></option>
+			</select>
+			<br />
+			<?php echo $text['description-auto_login']?>
+		</td>
+	</tr>
+
+	<tr>
+		<td width='30%' class='vncell' valign='top' align='left' nowrap='nowrap'>
+			<?php echo $text['label-xmpp_server']?>:
+		</td>
+		<td width='70%' class='vtable' align='left'>
+			<input class='formfld' type='text' name='xmpp_server' maxlength='255' value="<?php echo $profile['xmpp_server'];?>">
+			<br />
+			<?php echo $text['description-xmpp_server']?>
+		</td>
+	</tr>
+
+	<tr>
+		<td class='vncellreq' valign='top' align='left' nowrap='nowrap'>
+			<?php echo $text['label-default_exten']?>:
+		</td>
+		<td class='vtable' align='left'>
+			<input class='formfld' type='text' name='default_exten' maxlength='255' value="<?php echo $profile['default_exten'];?>" required='required'>
+			<br />
+			<?php echo $text['description-default_exten']?>
+		</td>
+	</tr>
+
+	<tr>
+	<td style='padding: 0px;' colspan='2' class='' valign='top' align='left' nowrap='nowrap'>
+		<div id="show_advanced_box">
+			<table width="100%" border="0" cellpadding="6" cellspacing="0">
+				<tr>
+					<td width="30%" valign="top" class="vncell">&nbsp;</td>
+					<td width="70%" class="vtable">
+						<input type="button" class="btn" onClick="show_advanced_config()" value="<?php echo $text['button-advanced']?>"></input>
+					</td>
+				</tr>
+			</table>
+		</div>
+		<div id="show_advanced" style="display:none">
+			<table width="100%" border="0" cellpadding="6" cellspacing="0">
+				<tr>
+				<?php if (if_group("superadmin")) { ?>
+					<td width='30%' class='vncellreq' valign='top' align='left' nowrap='nowrap'>
+						<?php echo $text['label-context']?>:
+					</td>
+					<td width='70%' class='vtable' align='left'>
+						<input class='formfld' type='text' name='context' maxlength='255' value="<?php echo $profile['context'];?>" required='required'>
+						<br />
+						<?php echo $text['description-context']?>
+					</td>
+					</tr>
+				<?php }	?>
+					<tr>
+					<td class='vncellreq' valign='top' align='left' nowrap='nowrap'>
+						<?php echo $text['label-rtp_ip']?>:
+					</td>
+					<td class='vtable' align='left'>
+						<input class='formfld' type='text' name='rtp_ip' maxlength='255' value="<?php echo $profile['rtp_ip'];?>" required='required'>
+						<br />
+						<?php echo $text['description-rtp_ip']?>
+					</td>
+					</tr>
+
+					<tr>
+					<td class='vncellreq' valign='top' align='left' nowrap='nowrap'>
+						<?php echo $text['label-ext_rtp_ip']?>:
+					</td>
+					<td class='vtable' align='left'>
+						<input class='formfld' type='text' name='ext_rtp_ip' maxlength='255' value="<?php echo $profile['ext_rtp_ip'];?>" required='required'>
+						<br />
+						<?php echo $text['description-ext_rtp_ip']?>
+					</td>
+					</tr>
+
+					<tr>
+					<td class='vncellreq' valign='top' align='left' nowrap='nowrap'>
+						<?php echo $text['label-sasl_type']?>:
+					</td>
+					<td class='vtable' align='left'>
+						<select class='formfld' name='sasl_type'>
+						<option value='plain' <?php if($profile['sasl_type'] == "plain") echo "selected='selected'"; ?>>Plain</option>
+						<option value='md5' <?php if($profile['sasl_type'] == "md5") echo "selected='selected'"; ?>>MD5</option>
+						</select>
+						<br />
+						<?php echo $text['description-sasl_type']?>
+					</td>
+					</tr>
+
+					<tr>
+					<td class='vncell' valign='top' align='left' nowrap='nowrap'>
+						<?php echo $text['label-tls_enable']?>:
+					</td>
+					<td class='vtable' align='left'>
+						<select class='formfld' name='tls_enable'>
+						<option value='true' <?php if($profile['tls_enable'] == "true") echo "selected='selected'"; ?>><?php echo $text['label-true']?></option>
+						<option value='false' <?php if($profile['tls_enable'] == "false") echo "selected='selected'"; ?>><?php echo $text['label-false']?></option>
+						</select>
+						<br />
+						<?php echo $text['description-tls_enable']?>
+					</td>
+					</tr>
+
+					<tr>
+					<td class='vncell' valign='top' align='left' nowrap='nowrap'>
+						<?php echo $text['label-use_rtp_timer']?>:
+					</td>
+					<td class='vtable' align='left'>
+						<select class='formfld' name='use_rtp_timer'>
+						<option value='true' <?php if($profile['use_rtp_timer'] == "true") echo "selected='selected'"; ?>><?php echo $text['label-true']?></option>
+						<option value='false' <?php if($profile['use_rtp_timer'] == "false") echo "selected='selected'"; ?>><?php echo $text['label-false']?></option>
+						</select>
+						<br />
+						<?php echo $text['description-use_rtp_timer']?>
+					</td>
+					</tr>
+					<tr>
+					<td class='vncell' valign='top' align='left' nowrap='nowrap'>
+						<?php echo $text['label-vad']?>:
+					</td>
+					<td class='vtable' align='left'>
+						<select class='formfld' name='vad'>
+						<option value='none' <?php if($profile['vad'] == "none") echo "selected='selected'"; ?>><?php echo $text['option-vad_none']?></option>
+						<option value='in' <?php if($profile['vad'] == "in") echo "selected='selected'"; ?>><?php echo $text['option-vad_in']?></option>
+						<option value='out' <?php if($profile['vad'] == "out") echo "selected='selected'"; ?>><?php echo $text['option-vad_out']?></option>
+						<option value='both' <?php if($profile['vad'] == "both") echo "selected='selected'"; ?>><?php echo $text['option-vad_both']?></option>
+						</select>
+						<br />
+						<?php echo $text['description-vad']?>
+					</td>
+					</tr>
+					<tr>
+					<td class='vncell' valign='top' align='left' nowrap='nowrap'>
+						<?php echo $text['label-candidate_acl']?>:
+					</td>
+					<td class='vtable' align='left'>
+						<input class='formfld' type='text' name='candidate_acl' maxlength='255' value="<?php echo $profile['candidate_acl'];?>">
+						<br />
+						<?php echo $text['description-candidate_acl']?>
+					</td>
+					</tr>
+
+					<tr>
+					<td class='vncell' valign='top' align='left' nowrap='nowrap'>
+						<?php echo $text['label-local_network_acl']?>:
+					</td>
+					<td class='vtable' align='left'>
+						<input class='formfld' type='text' name='local_network_acl' maxlength='255' value="<?php echo $profile['local_network_acl'];?>">
+						<br />
+						<?php echo $text['description-local_network_acl']?>
+					</td>
+				</tr>
+			</table>
+		</div>
+	</td>
+	</tr>
+	<tr>
+		<td class='vncellreq' valign='top' align='left' nowrap='nowrap'>
+			<?php echo $text['label-enabled']?>:
+		</td>
+		<td class='vtable' align='left'>
+			<select class='formfld' name='enabled'>
+			<option value='true' <?php if($profile['enabled'] == "true") echo "selected='selected'"; ?>><?php echo $text['label-true']?></option>
+			<option value='false' <?php if($profile['enabled'] == "false") echo "selected='selected'"; ?>><?php echo $text['label-false']?></option>
+			</select>
+			<br />
+			<?php echo $text['description-enabled']?>
+		</td>
+	</tr>
+	<tr>
+		<td class='vncell' valign='top' align='left' nowrap='nowrap'>
+			<?php echo $text['label-description']?>:
+		</td>
+		<td class='vtable' align='left'>
+			<input class='formfld' type='text' name='description' value='<?php echo $profile['description'];?>'>
+			<br />
+			<?php echo $text['description-description']?>
+		</td>
+	</tr>
+	<tr>
+		<td colspan='2' align='right'>
+			<input type='hidden' name='profile_id' value='<?php echo $profile['xmpp_profile_uuid']; ?>'>
+			<br>
+			<input type='submit' name='submit' class='btn' value='<?php echo $text['button-save']?>'>
+		</td>
+	</tr>
+	</table>
+	<br><br>
+	</form>

+ 70 - 0
xmpp/profile_list.php

@@ -0,0 +1,70 @@
+<table width="100%" border="0" cellpadding="0" cellspacing="0">
+  <tr>
+	<td align='left'><b><?php echo $text['header-xmpp']?></b><br>
+		<?php echo $text['description-xmpp-list']?>
+	</td>
+  </tr>
+</table>
+<br />
+
+<table class="tr_hover" width='100%' border='0' cellpadding='0' cellspacing='0'>
+<tr>
+	<th><?php echo $text['label-profile_name']?></th>
+	<th><?php echo $text['label-context']?></th>
+	<th><?php echo $text['label-status']?></th>
+	<th><?php echo $text['label-enabled']?></th>
+	<th><?php echo $text['label-description']?></th>
+<td class='list_control_icons'>
+	<?php if (permission_exists('xmpp_add')) { ?>
+		<a href='xmpp_profile_edit.php' alt='<?php echo $text['button-add']?>'><?php echo $v_link_label_add; ?></a>
+	<?php } ?>
+</td>
+</tr>
+<?php
+
+$c = 0;
+$row_style["0"] = "row_style0";
+$row_style["1"] = "row_style1";
+
+foreach($profiles_array as $profile){
+	$tr_link = (permission_exists('xmpp_edit')) ? "href='xmpp_profile_edit.php?id=".$profile['xmpp_profile_uuid']."'" : null;
+	?>
+	<tr <?php echo $tr_link; ?>>
+	<td class='<?php echo $row_style[$c]; ?>'>
+		<?php
+		if (permission_exists('xmpp_edit')) {
+			?><a href='xmpp_profile_edit.php?id=<?php echo $profile['xmpp_profile_uuid']; ?>'><?php echo $profile['profile_name']; ?></a><?php
+		}
+		else {
+			echo $profile['profile_name'];
+		}
+		?>
+	</td>
+	<td class='<?php echo $row_style[$c]; ?>'><?php echo $profile['context']; ?>&nbsp;</td>
+	<td class='<?php echo $row_style[$c]; ?>'><?php echo $profile['status']; ?>&nbsp;</td>
+	<td class='<?php echo $row_style[$c]; ?>'><?php echo ucwords($profile['enabled']); ?>&nbsp;</td>
+	<td class='row_stylebg'><?php echo $profile['description']; ?>&nbsp;</td>
+	<td class='list_control_icons'>
+		<?php
+		if (permission_exists('xmpp_edit')) {
+			?><a href='xmpp_profile_edit.php?id=<?php echo $profile['xmpp_profile_uuid']; ?>' alt='<?php echo $text['button-edit']?>'><?php echo $v_link_label_edit; ?></a><?php
+		}
+		if (permission_exists('xmpp_delete')) {
+			?><a href='profile_delete.php?id=<?php echo $profile['xmpp_profile_uuid']; ?>' onclick="return confirm('<?php echo $text['confirm-delete']?>')" alt='<?php echo $text['button-delete']?>'><?php echo $v_link_label_delete; ?></a><?php
+		}
+		?>
+	</td>
+</tr>
+<?php
+if ($c==0) { $c=1; } else { $c=0; }
+}
+?>
+<tr>
+<td colspan='6' class='list_control_icons'>
+	<?php if (permission_exists('xmpp_add')) { ?>
+		<a href='xmpp_profile_edit.php' alt='<?php echo $text['button-add']?>'><?php echo $v_link_label_add; ?></a>
+	<?php } ?>
+</td>
+</tr>
+</table>
+<br><br>

+ 50 - 0
xmpp/root.php

@@ -0,0 +1,50 @@
+<?php
+/*
+	FusionPBX
+      	Version: MPL 1.1
+
+	The contents of this file are subject to the Mozilla Public License Version
+	1.1 (the "License"); you may not use this file except in compliance with
+	the License. You may obtain a copy of the License at
+	http://www.mozilla.org/MPL/
+
+	Software distributed under the License is distributed on an "AS IS" basis,
+	WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+	for the specific language governing rights and limitations under the
+	License.
+
+	The Original Code is FusionPBX
+
+	The Initial Developer of the Original Code is
+	Mark J Crane <[email protected]>
+	Portions created by the Initial Developer are Copyright (C) 2008-2012
+	the Initial Developer. All Rights Reserved.
+
+	Contributor(s):
+	Mark J Crane <[email protected]>
+*/
+
+// make sure the PATH_SEPARATOR is defined
+	if (!defined("PATH_SEPARATOR")) {
+		if ( strpos( $_ENV[ "OS" ], "Win" ) !== false ) { define("PATH_SEPARATOR", ";"); } else { define("PATH_SEPARATOR", ":"); }
+	}
+
+// make sure the document_root is set
+	$_SERVER["SCRIPT_FILENAME"] = str_replace("\\", "/", $_SERVER["SCRIPT_FILENAME"]);
+	$_SERVER["DOCUMENT_ROOT"] = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
+	$_SERVER["DOCUMENT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"]);
+	//echo "DOCUMENT_ROOT: ".$_SERVER["DOCUMENT_ROOT"]."<br />\n";
+	//echo "PHP_SELF: ".$_SERVER["PHP_SELF"]."<br />\n";
+	//echo "SCRIPT_FILENAME: ".$_SERVER["SCRIPT_FILENAME"]."<br />\n";
+
+// if the project directory exists then add it to the include path otherwise add the document root to the include path
+	if (is_dir($_SERVER["DOCUMENT_ROOT"].'/fusionpbx')){
+		if(!defined('PROJECT_PATH')) { define('PROJECT_PATH', '/fusionpbx'); }
+		set_include_path( get_include_path() . PATH_SEPARATOR . $_SERVER["DOCUMENT_ROOT"].'/fusionpbx' );
+	}
+	else {
+		if(!defined('PROJECT_PATH')) { define('PROJECT_PATH', ''); }
+		set_include_path( get_include_path() . PATH_SEPARATOR . $_SERVER['DOCUMENT_ROOT'] );
+	}
+
+?>

+ 10 - 0
xmpp/update_complete.php

@@ -0,0 +1,10 @@
+<?php
+
+switch ($action) {
+	case "add" : 		$_SESSION["message"] = $text['message-add']; 		break;
+	case "update" : 	$_SESSION["message"] = $text['message-update']; 	break;
+	case "delete" : 	$_SESSION["message"] = $text['message-delete']; 	break;
+}
+header("Location: xmpp.php");
+
+?>

+ 100 - 0
xmpp/xmpp.php

@@ -0,0 +1,100 @@
+<?php
+/* $Id$ */
+/*
+	FusionPBX
+      	Version: MPL 1.1
+
+	The contents of this file are subject to the Mozilla Public License Version
+	1.1 (the "License"); you may not use this file except in compliance with
+	the License. You may obtain a copy of the License at
+	http://www.mozilla.org/MPL/
+
+	Software distributed under the License is distributed on an "AS IS" basis,
+	WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+	for the specific language governing rights and limitations under the
+	License.
+
+	The Original Code is FusionPBX
+
+	The Initial Developer of the Original Code is
+	Mark J Crane <[email protected]>
+	Portions created by the Initial Developer are Copyright (C) 2008-2012
+	the Initial Developer. All Rights Reserved.
+
+	Contributor(s):
+	Ken Rice     <[email protected]>
+	Mark J Crane <[email protected]>
+*/
+include "root.php";
+require_once "resources/require.php";
+require_once "resources/check_auth.php";
+if (permission_exists('xmpp_view')) {
+	//access granted
+}
+else {
+	echo "access denied";
+	exit;
+}
+
+//add multi-lingual support
+	$language = new text;
+	$text = $language->get();
+
+
+require_once "resources/header.php";
+$document['title'] = $text['title-xmpp'];
+
+require_once "resources/paging.php";
+
+//connect to event socket
+$fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']);
+if ($fp) {
+	if (strlen($_GET["a"]) > 0) {
+		if ($_GET["a"] == "reload") {
+			$cmd = 'api dingaling reload';
+			$response = trim(event_socket_request($fp, $cmd));
+			$msg = '<strong>Reload:</strong><pre>'.$response.'</pre>';
+		}
+	}
+}
+
+if (!function_exists('switch_dingaling_status')) {
+	function switch_dingaling_status($fp, $profile_username, $result_type = 'xml') {
+		$fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']);
+		$cmd = 'api dingaling status';
+		$response = trim(event_socket_request($fp, $cmd));
+		$response = explode("\n", $response);
+		$x = 0;
+		foreach ($response as $row) {
+			if ($x > 1) {
+				$dingaling = explode("|", $row);
+				if ($profile_username == trim($dingaling[0])) {
+					return trim($dingaling[1]);
+				}
+			}
+			$x++;
+		}
+	}
+}
+
+//get a list of the xmpp accounts
+$sql = "select * from v_xmpp ";
+$sql .= "where domain_uuid = '$domain_uuid' ";
+$prep_statement = $db->prepare(check_sql($sql));
+$prep_statement->execute();
+$x = 0;
+$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
+foreach ($result as &$row) {
+	$profiles_array[$x] = $row;
+	$profiles_array[$x]['status'] = switch_dingaling_status($fp, $row['username'].'/talk');
+	$x++;
+}
+unset ($prep_statement);
+
+//include the view
+include "profile_list.php";
+
+//include the footer
+require_once "resources/footer.php";
+
+?>

+ 244 - 0
xmpp/xmpp_profile_edit.php

@@ -0,0 +1,244 @@
+<?php
+/* $Id$ */
+/*
+	FusionPBX
+      	Version: MPL 1.1
+
+	The contents of this file are subject to the Mozilla Public License Version
+	1.1 (the "License"); you may not use this file except in compliance with
+	the License. You may obtain a copy of the License at
+	http://www.mozilla.org/MPL/
+
+	Software distributed under the License is distributed on an "AS IS" basis,
+	WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+	for the specific language governing rights and limitations under the
+	License.
+
+	The Original Code is FusionPBX
+
+	The Initial Developer of the Original Code is
+	Mark J Crane <[email protected]>
+	Portions created by the Initial Developer are Copyright (C) 2008-2012
+	the Initial Developer. All Rights Reserved.
+
+	Contributor(s):
+	Ken Rice <[email protected]>
+	Mark J Crane <[email protected]>
+	Luis Daniel Lucio Quiroz <[email protected]>
+*/
+
+include "root.php";
+require_once "resources/require.php";
+require_once "resources/check_auth.php";
+
+if (permission_exists('xmpp_add') || permission_exists('xmpp_edit')) {
+	//access granted
+}
+else {
+	echo "access denied";
+	exit;
+}
+
+//add multi-lingual support
+	$language = new text;
+	$text = $language->get();
+
+//add or update the database
+if (isset($_REQUEST["id"])) {
+	$action = "update";
+	$profile_id = check_str($_REQUEST["id"]);
+} else {
+	$action = "add";
+}
+
+if ($action == "update") {
+	$document['title'] = $text['title-xmpp-edit'];
+}
+else if ($action == "add") {
+	$document['title'] = $text['title-xmpp-add'];
+}
+
+$domain_name = $_SESSION['domains'][$_SESSION['domain_uuid']]['domain_name'];
+
+if ($action == "update") {
+	$sql = "";
+	$sql .= "select * from v_xmpp ";
+	$sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' ";
+	$sql .= "and xmpp_profile_uuid = '$profile_id' ";
+	$prep_statement = $db->prepare(check_sql($sql));
+	$prep_statement->execute();
+
+	$x = 0;
+	$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
+	foreach ($result as &$row) {
+		$profiles_array[$x] = $row;
+		$x++;
+	}
+
+	$profile = $profiles_array[0];
+	unset ($prep_statement);
+	$profile['profile_username'] = $profile['username'];
+	$profile['profile_password'] = $profile['password'];
+} else {
+ 	$profile['dialplan'] = "XML";
+	$profile['context'] = $_SESSION['domain_name'];
+	$profile['rtp_ip'] = '$${local_ip_v4}';
+	$profile['ext_rtp_ip'] = '$${external_rtp_ip}';
+ 	$profile['auto_login'] = "true";
+ 	$profile['sasl_type'] = "md5";
+ 	$profile['tls_enable'] = "true";
+ 	$profile['use_rtp_timer'] = "true";
+ 	$profile['vad'] = "none";
+	$profile['candidate_acl'] = "wan.auto";
+ 	$profile['local_network_acl'] = "localnet.auto";
+}
+
+if ((!isset($_REQUEST['submit'])) || ($_REQUEST['submit'] != $text['button-save'])) {
+	// If we arent saving a Profile Display the form.
+	require_once "resources/header.php";
+	include "profile_edit.php";
+	require_once "resources/footer.php";
+	exit;
+}
+
+foreach ($_REQUEST as $field => $data){
+	$request[$field] = check_str($data);
+}
+
+
+// check the data
+$error = "";
+if (strlen($request['profile_name']) < 1) $error .= $text['message-required'].$text['label-profile_name']."<br />\n";
+if (strlen($request['profile_username']) < 1) $error .= $text['message-required'].$text['label-username']."<br />\n";
+if (strlen($request['profile_password']) < 1) $error .= $text['message-required'].$text['label-password']."<br />\n";
+if (strlen($request['default_exten']) < 1) $error .= $text['message-required'].$text['label-default_exten']."<br />\n";
+if (strlen($error) > 0) {
+	include "errors.php";
+	$profile = $request;
+	require_once "resources/header.php";
+	include "profile_edit.php";
+	require_once "resources/footer.php";
+	exit;
+}
+
+// Save New Entry
+if ($action == "add" && permission_exists('xmpp_add')) {
+	$xmpp_profile_uuid = uuid();
+	$sql = "";
+	$sql .= "insert into v_xmpp (";
+ 	$sql .= "domain_uuid, ";
+	$sql .= "xmpp_profile_uuid, ";
+ 	$sql .= "profile_name, ";
+ 	$sql .= "username, ";
+ 	$sql .= "password, ";
+ 	$sql .= "dialplan, ";
+ 	$sql .= "context, ";
+ 	$sql .= "rtp_ip, ";
+ 	$sql .= "ext_rtp_ip, ";
+ 	$sql .= "auto_login, ";
+ 	$sql .= "sasl_type, ";
+ 	$sql .= "xmpp_server, ";
+ 	$sql .= "tls_enable, ";
+ 	$sql .= "use_rtp_timer, ";
+ 	$sql .= "default_exten, ";
+ 	$sql .= "vad, ";
+ 	$sql .= "avatar, ";
+ 	$sql .= "candidate_acl, ";
+ 	$sql .= "local_network_acl, ";
+	$sql .= "description, ";
+	$sql .= "enabled ";
+	$sql .= ") values (";
+	$sql .= "'" . $_SESSION['domain_uuid'] . "', ";
+	$sql .= "'" . $xmpp_profile_uuid . "', ";
+	$sql .= "'" . $request['profile_name'] . "', ";
+ 	$sql .= "'" . $request['profile_username'] . "', ";
+ 	$sql .= "'" . $request['profile_password'] . "', ";
+ 	$sql .= "'" . $request['dialplan'] . "', ";
+	if (if_group("superadmin") && $request['context']) {
+		$sql .= "'" . $request['context'] . "', ";
+	}
+	else {
+		$sql .= "'" . $_SESSION['context'] . "', ";
+	}
+ 	$sql .= "'" . $request['rtp_ip'] . "', ";
+ 	$sql .= "'" . $request['ext_rtp_ip'] . "', ";
+ 	$sql .= "'" . $request['auto_login'] . "', ";
+ 	$sql .= "'" . $request['sasl_type'] . "', ";
+ 	$sql .= "'" . $request['xmpp_server'] . "', ";
+ 	$sql .= "'" . $request['tls_enable'] . "', ";
+ 	$sql .= "'" . $request['use_rtp_timer'] . "', ";
+ 	$sql .= "'" . $request['default_exten'] . "', ";
+ 	$sql .= "'" . $request['vad'] . "', ";
+ 	$sql .= "'" . $request['avatar'] . "', ";
+ 	$sql .= "'" . $request['candidate_acl'] . "', ";
+ 	$sql .= "'" . $request['local_network_acl'] . "', ";
+	$sql .= "'" . $request['description'] . "', ";
+	$sql .= "'" . $request['enabled'] . "' ";
+	$sql .= ") ";
+	$db->exec(check_sql($sql));
+
+}
+elseif ($action == "update" && permission_exists('xmpp_edit')) {
+	$sql = "";
+	$sql .= "UPDATE v_xmpp SET ";
+	$sql .= "profile_name = '" . $request['profile_name'] . "', ";
+	$sql .= "username = '" . $request['profile_username'] . "', ";
+	$sql .= "password = '" . $request['profile_password'] . "', ";
+	$sql .= "dialplan = '" . $request['dialplan'] . "', ";
+	if (if_group("superadmin") && $request['context']) {
+		$sql .= "context = '" . $request['context'] . "', ";
+	}
+	else {
+		$sql .= "context = '" . $_SESSION["context"] . "', ";
+	}
+	$sql .= "rtp_ip = '" . $request['rtp_ip'] . "', ";
+	$sql .= "ext_rtp_ip = '" . $request['ext_rtp_ip'] . "', ";
+	$sql .= "auto_login = '" . $request['auto_login'] . "', ";
+	$sql .= "sasl_type = '" . $request['sasl_type'] . "', ";
+	$sql .= "xmpp_server = '" . $request['xmpp_server'] . "', ";
+	$sql .= "tls_enable = '" . $request['tls_enable'] . "', ";
+	$sql .= "use_rtp_timer = '" . $request['use_rtp_timer'] . "', ";
+	$sql .= "default_exten = '" . $request['default_exten'] . "', ";
+	$sql .= "vad = '" . $request['vad'] . "', ";
+	$sql .= "avatar = '" . $request['avatar'] . "', ";
+	$sql .= "candidate_acl = '" . $request['candidate_acl'] . "', ";
+	$sql .= "local_network_acl = '" . $request['local_network_acl'] . "', ";
+	$sql .= "description = '" . $request['description'] . "', ";
+	$sql .= "enabled = '" . $request['enabled'] . "' ";
+	$sql .= "where xmpp_profile_uuid = '" . $request['id'] . "' ";
+	$db->exec(check_sql($sql));
+	$xmpp_profile_uuid = $request['id'];
+}
+
+if ($request['enabled'] == "true") {
+	//prepare the xml
+	include "client_template.php";
+	$xml = make_xmpp_xml($request);
+
+	//write the xml
+	$filename = $_SESSION['switch']['conf']['dir'] . "/jingle_profiles/" . "v_" . $_SESSION['domain_name'] . "_" . preg_replace("/[^A-Za-z0-9]/", "", $request['profile_name']) . "_" . $xmpp_profile_uuid . ".xml";
+	$fh = fopen($filename,"w") or die("Unable to open the file");
+	fwrite($fh, $xml);
+	unset($file_name);
+	fclose($fh);
+}
+
+$fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']);
+if ($fp) {
+	//reload the XML Configs
+	$tmp_cmd = 'api reloadxml';
+	$response = event_socket_request($fp, $tmp_cmd);
+	unset($tmp_cmd);
+
+	//Tell mod_dingaling to reload is config
+	$tmp_cmd = 'api dingaling reload';
+	$response = event_socket_request($fp, $tmp_cmd);
+	unset($tmp_cmd);
+
+	//close the connection
+	fclose($fp);
+}
+
+include "update_complete.php";
+
+?>