diff --git a/classic/src/view/trunkSipCodes/List.js b/classic/src/view/trunkSipCodes/List.js index dfe991102..23387ba6b 100755 --- a/classic/src/view/trunkSipCodes/List.js +++ b/classic/src/view/trunkSipCodes/List.js @@ -32,7 +32,7 @@ Ext.define('MBilling.view.trunkSipCodes.List', { me.allowUpdate = false; me.textDelete = t('Reset'); me.columns = me.columns || [{ - header: t('Ip'), + header: t('IP'), dataIndex: 'ip', flex: 3 }, { diff --git a/resources/help/help_en.js b/resources/help/help_en.js index bb506af20..f90096e90 100755 --- a/resources/help/help_en.js +++ b/resources/help/help_en.js @@ -785,6 +785,10 @@ MagnusBilling will try to send the calls to the next trunk of the group as long `, 'trunkgroup.id_trunk': `Select the trunks that belongs to this group. If selected the type, order, then select the trunks in the desired order.`, + //TRUNK ERROS + 'trunksipcodes.ip': ``, + 'trunksipcodes.code': ``, + 'trunksipcodes.total': ``, //USERS 'user.username': `Username used to login into the panel.`, 'user.password': `Password used to login into the panel.`, diff --git a/resources/help/help_pt_BR.js b/resources/help/help_pt_BR.js index e2e23b102..8132702b5 100755 --- a/resources/help/help_pt_BR.js +++ b/resources/help/help_pt_BR.js @@ -874,6 +874,10 @@ O MagnusBilling tentará enviar a chamada para o próximo tronco do grupo desde .`, 'trunkgroup.id_trunk': `Selecionar os troncos que pertenceram a este grupo. Se for selecionado o tipo, em ordem, então selecione os troncos na ordem desejada.`, + //ERROS DOS TRONCOS + 'trunksipcodes.ip': ``, + 'trunksipcodes.code': ``, + 'trunksipcodes.total': ``, //USUáRIOS 'user.username': `Usuário para logar no painel de cliente.`, 'user.password': `Senha para logar no painel de cliente.`, diff --git a/resources/locale/en.js b/resources/locale/en.js index 9b5687208..ab5c9c8d3 100755 --- a/resources/locale/en.js +++ b/resources/locale/en.js @@ -11,7 +11,7 @@ * ################################### * ======================================= * MagnusSolution.com - * 2021-03-12 + * 2021-04-08 */ Locale.load({ '': '', @@ -95,7 +95,6 @@ Locale.load({ 'Before answer': '', 'Bigger than': '', 'Bill Date:': '', - 'Bill amount': '', 'Billing': '', 'Billing block': '', 'Billing type': '', @@ -218,6 +217,8 @@ Locale.load({ 'Contains': '', 'Context': '', 'Continue': '', + 'Contract is required': '', + 'Contract no': '', 'Count votes': '', 'Country': '', 'Country code': '', @@ -283,6 +284,8 @@ Locale.load({ 'Disallowed action': '', 'Discount fee': '', 'Disk space': '', + 'Distribution code': '', + 'Distribution code required': '', 'Do you already have a SMTP': '', 'Do you confirm buy this DID?': '', 'Do you really want to leave the system?': '', @@ -435,7 +438,6 @@ Locale.load({ 'Invalid call reference value': '', 'Invalid format': '', 'Invalid message unspecified': '', - 'Invalid number': '', 'Invalid number format': '', 'Invalid plan used to signup': '', 'Invalid register string': '', @@ -508,6 +510,7 @@ Locale.load({ 'Minutes': '', 'Misdialled trunk prefix': '', 'Mobile': '', + 'Mobile number': '', 'Module': '', 'Modules': '', 'Mon-Fri': '', @@ -621,6 +624,7 @@ Locale.load({ 'Penalty, Paused, Invalid, Unavailable': '', 'Pending': '', 'Per': '', + 'Percentage': '', 'Period': '', 'Periodic announce': '', 'Perm ban': '', @@ -628,6 +632,8 @@ Locale.load({ 'Permit': '', 'Personal data': '', 'Phone': '', + 'Phone Number': '', + 'Phone is required': '', 'Phonebook': '', 'Phonebooks': '', 'Phonenumber': '', @@ -750,6 +756,7 @@ Locale.load({ 'Resend': '', 'Reservation date': '', 'Reserved': '', + 'Reset': '', 'Reset queue stats': '', 'Response to STATUS ENQUIRY': '', 'Restore': '', @@ -779,6 +786,7 @@ Locale.load({ 'SELECT GROUP FOR AGENT USERS': '', 'SIP': '', 'SIP Call': '', + 'SIP Code': '', 'SIP To': '', 'SIP Users': '', 'SIP account limit': '', @@ -950,7 +958,6 @@ Locale.load({ 'Time for another call': '', 'Time used': '', 'Title': '', - 'To date': '', 'To day': '', 'Today': '', 'Today peak': '', @@ -978,6 +985,7 @@ Locale.load({ 'Trunk': '', 'Trunk Groups': '', 'Trunk chart': '', + 'Trunk erros': '', 'Trunk groups': '', 'Trunks': '', 'Tuesday': '', diff --git a/resources/locale/es.js b/resources/locale/es.js index d2de4c82f..7ebce501c 100755 --- a/resources/locale/es.js +++ b/resources/locale/es.js @@ -14,9 +14,19 @@ * 2020-08-10 */ Locale.load({ - - 'Dial Tone' : 'Dial Tone', - 'Offer balance' :'Saldo del paquete', + 'Contract is required': 'Contracto es obligatorio', + 'Contract no': 'Numero del contracto', + 'Distribution code': 'Código de distribuicion', + 'Distribution code required': 'Código de distribuicion es obligatorio', + 'Mobile number': 'Celular', + 'Percentage': 'Porcentaje', + 'Phone Number': 'Telefono fijo', + 'Phone is required': 'Telefono fijo es obligatorio', + 'Reset': 'Reiniciar', + 'SIP Code': 'Código SIP', + 'Trunk erros': 'Troncales errores', + 'Dial Tone': 'Dial Tone', + 'Offer balance': 'Saldo del paquete', 'Alarm': 'Alarme', 'Alarms': 'Alarmes', 'Bigger than': 'Mayor que', diff --git a/resources/locale/php/en/csv-translate.php b/resources/locale/php/en/csv-translate.php index c11286871..d908e30c2 100755 --- a/resources/locale/php/en/csv-translate.php +++ b/resources/locale/php/en/csv-translate.php @@ -57,6 +57,7 @@ 'description'=> ['Description_or_SMS_Text', 'Descrição_ou_texto_do_SMS' , 'Descripción_o_texto_SMS'], 'destination'=> ['Destination', 'Destino' , 'Destino'], 'dial_timeout'=> ['Dial_timeout', 'Tocar_por_quantos_seg.' , 'Dial_timeout'], + 'Dial_Tone'=> ['Dial_Tone', 'Dial_Tone' , 'Dial_Tone'], 'did'=> ['DID', 'DID' , 'DID'], 'direct_extension'=> ['Enable_known_SIP_user', 'Discar_direto_conta_SIP' , 'Habilitar_cuenta_SIP_conocida'], 'direction'=> ['Direction', 'Direção' , 'Dirección'], diff --git a/resources/locale/php/es/zii.php b/resources/locale/php/es/zii.php index 0ac8208b7..cecb9ef9f 100755 --- a/resources/locale/php/es/zii.php +++ b/resources/locale/php/es/zii.php @@ -21,7 +21,20 @@ * Edit /resources/locale/es.js */ return array( - 'Alarm' => 'Alarme', + 'Contract is required' => 'Contracto es obligatorio', + 'Contract no' => 'Numero del contracto', + 'Distribution code' => 'Código de distribuicion', + 'Distribution code required' => 'Código de distribuicion es obligatorio', + 'Mobile number' => 'Celular', + 'Percentage' => 'Porcentaje', + 'Phone Number' => 'Telefono fijo', + 'Phone is required' => 'Telefono fijo es obligatorio', + 'Reset' => 'Reiniciar', + 'SIP Code' => 'Código SIP', + 'Trunk erros' => 'Troncales errores', + 'Dial Tone' => 'Dial Tone', + 'Offer balance' => 'Saldo del paquete', + 'Alarm' => 'Alarme', 'Alarms' => 'Alarmes', 'Bigger than' => 'Mayor que', 'Calls per minute' => 'Llamadas por minuto', diff --git a/resources/locale/php/pt_BR/zii.php b/resources/locale/php/pt_BR/zii.php index 126e42046..869a0d246 100755 --- a/resources/locale/php/pt_BR/zii.php +++ b/resources/locale/php/pt_BR/zii.php @@ -21,7 +21,20 @@ * Edit /resources/locale/pt_BR.js */ return array( - 'Alarm' => 'Alarme', + 'Contract is required' => 'Contrato é obrigatório', + 'Contract no' => 'Número do contrato', + 'Distribution code' => 'Código de distribuição', + 'Distribution code required' => 'Código de distribuição é obrigatório', + 'Mobile number' => 'Celular', + 'Percentage' => 'Porcentage', + 'Phone Number' => 'Telefone fixo', + 'Phone is required' => 'Telefone fixo é obrigatório', + 'Reset' => 'Reiniciar', + 'SIP Code' => 'Código SIP', + 'Trunk erros' => 'Erros dos troncos', + 'Dial Tone' => 'Dial Tone', + 'Offer balance' => 'Saldo do pacote', + 'Alarm' => 'Alarme', 'Alarms' => 'Alarmes', 'Bigger than' => 'Maior que', 'Calls per minute' => 'Chamadas por minuto', diff --git a/resources/locale/pt_BR.js b/resources/locale/pt_BR.js index ef04c4c1d..eeb03c371 100755 --- a/resources/locale/pt_BR.js +++ b/resources/locale/pt_BR.js @@ -14,8 +14,19 @@ * 2020-08-07 */ Locale.load({ - 'Dial Tone' : 'Dial Tone', - 'Offer balance' :'Saldo do pacote', + 'Contract is required': 'Contrato é obrigatório', + 'Contract no': 'Número do contrato', + 'Distribution code': 'Código de distribuição', + 'Distribution code required': 'Código de distribuição é obrigatório', + 'Mobile number': 'Celular', + 'Percentage': 'Porcentage', + 'Phone Number': 'Telefone fixo', + 'Phone is required': 'Telefone fixo é obrigatório', + 'Reset': 'Reiniciar', + 'SIP Code': 'Código SIP', + 'Trunk erros': 'Erros dos troncos', + 'Dial Tone': 'Dial Tone', + 'Offer balance': 'Saldo do pacote', 'Alarm': 'Alarme', 'Alarms': 'Alarmes', 'Bigger than': 'Maior que', diff --git a/wiki/en/conf.py b/wiki/en/conf.py index 78e96787c..44fddf6ab 100755 --- a/wiki/en/conf.py +++ b/wiki/en/conf.py @@ -32,7 +32,7 @@ # General information about the project project = 'MagnusBilling Wiki' -copyright = '2005-2020, MagnusSolution' +copyright = '2005-2021, MagnusSolution' author = 'Adilson Magnus and the MagnusBilling community' # Version info for the project, acts as replacement for |version| and |release| diff --git a/wiki/en/find_rate.rst b/wiki/en/find_rate.rst new file mode 100644 index 000000000..79587075d --- /dev/null +++ b/wiki/en/find_rate.rst @@ -0,0 +1,88 @@ +.. _find-rate: + +Tariff Search +============== + +How does MagnusBilling select the rate to be used? +-------------------------------------------------- + +When a customer makes an external call, to a landline or cell phone, a verification routine is triggered which consists of: + +1 - Check the username and password. +2 - Checks whether the client is active. +3 - Checks if the number dialed is a DID. +4 - Check if the dialed number is a SIP Account. +5 - Check the customer's plan. +6 - Search within the plan's tariffs which fare best fits the number dialed. +7 - Search for the trunks that belong to the trunk group of the tariff found. +8 - Sends the call to the first trunk, and if it fails it sends to the next. +9 - When the call is finished, the purchase and sale price is calculated +10 - Added the call in the CDR report +11 - Discounting the value of the call in the customer's credit. + + +Rather, how does step 6 work? + +It is carried out as follows. Let's say customer XXXXX called 551140045678 + +In step 5, the system takes the customer's plan, and then in step 6 a "SELECT" is made on the tariff table like this. + + +:: + + $ sql = "SELECT * FROM pkg_plan LEFT JOIN pkg_rate ON pkg_plan.id = pkg_rate.id_plan + LEFT JOIN pkg_prefix ON pkg_rate.id_prefix = pkg_prefix.id + LEFT JOIN pkg_trunk_group ON pkg_trunk_group.id = pkg_rate.id_trunk_group + WHERE pkg_plan.id = $ MAGNUS-> id_plan AND pkg_rate.status = 1 + AND $ MAGNUS-> prefixclause ORDER BY LENGTH (prefix) DESC LIMIT 1 "; + + +The $ MAGNUS-> id_plan variable is the customer's plan id, and the $ MAGNUS-> prefixclause variable is the filter used to find the tariff. + +To facilitate understanding we will explain it in another way. + +As the customer called 551140045678, the system will search as follows. + +Is there a tariff for the prefix 551140045678? + +* If yes, we use this rate + +* If not, we will search again by removing the last number, in this case 55114004567 and so on until we reach only number 5. If we do not find any rate, the system will return an error and will not continue the call. + + + +Going back to "SELECT" it would look like this. + +:: + + $ sql = "SELECT * FROM pkg_plan LEFT JOIN pkg_rate ON pkg_plan.id = pkg_rate.id_plan + LEFT JOIN pkg_prefix ON pkg_rate.id_prefix = pkg_prefix.id + LEFT JOIN pkg_trunk_group ON pkg_trunk_group.id = pkg_rate.id_trunk_group + WHERE pkg_plan.id = 1 AND pkg_rate.status = 1 AND + (prefix = '551140045678' OR + prefix = '55114004567' OR + prefix = '5511400456' OR + prefix = '551140045' OR + prefix = '55114004' OR + prefix = '5511400' OR + prefix = '551140' OR + prefix = '55114' OR + prefix = '5511' OR + prefix = '551' OR + prefix = '55' OR + prefix = '5') + ORDER BY LENGTH (prefix) DESC LIMIT 1 "; + + +Let’s say you have the following 3 tariffs in your customer’s plan + +55, Brasil Fixo Geral +55119, Brazil SP Celular +5511, Brazil SP Fixed + + +In this example, "SELECT" would return tariff 5511, Brasil SP Fixo. + + + +But you may be wondering if the customer calls 5511988551234, the "SELECT" would find the prefix 55119 and 5511 and then which one would use? I would use 55119, because in "SELECT" there is the parameter ORDER BY LENGTH (prefix) DESC and also the parameter LIMIT 1. That is, it will order the results by placing first the prefix that has the largest number of digits. \ No newline at end of file diff --git a/wiki/en/get_started/quick_install.rst b/wiki/en/get_started/quick_install.rst index ff6df2d1e..520c6b596 100755 --- a/wiki/en/get_started/quick_install.rst +++ b/wiki/en/get_started/quick_install.rst @@ -2,7 +2,7 @@ Installation ************* -In order to install MagnusBilling you'll need a server with CentOS 7 or Debian 8, minimal install. Keep in mind that all testing and development of MagnusBilling occurs in CentOS 7, so we highly recommend using CentOS 7. +In order to install MagnusBilling you'll need a server with CentOS 7 or Debian 10, minimal install. **1.** Execute the following commands as root to run the script that will install MagnusBilling, Asterisk and all dependencies needed like: IPTables, Fail2ban, Apache, PHP and MySQL. diff --git a/wiki/en/get_started/update.rst b/wiki/en/get_started/update.rst new file mode 100644 index 000000000..71dec4b3c --- /dev/null +++ b/wiki/en/get_started/update.rst @@ -0,0 +1,16 @@ +******************** +Update MagnusBilling +******************** + +Our team works daily to add new functions and solve problems. You can see the changes made in the link https://github.com/magnussolution/magnusbilling7/commits/source. + +Therefore, our team recommends that you keep your server up to date. + +To update run the following command. + + +:: + + /var/www/html/mbilling/protected/commands/update.sh + + diff --git a/wiki/en/index.rst b/wiki/en/index.rst index 1eb43bd33..302d50b00 100755 --- a/wiki/en/index.rst +++ b/wiki/en/index.rst @@ -24,12 +24,14 @@ Welcome to MagnusBilling 7 wiki. get_started/quick_install.rst get_started/interface.rst get_started/backup.rst + get_started/update.rst .. toctree:: :caption: Technical Information :maxdepth: 1 price_calculation.rst + find_rate.rst tts.rst offer.rst how_to_use_voucher.rst diff --git a/wiki/en/intro.rst b/wiki/en/intro.rst index 2d0c27c8b..522366ff1 100755 --- a/wiki/en/intro.rst +++ b/wiki/en/intro.rst @@ -6,7 +6,7 @@ Introduction `MagnusBilling`_ is an open source tool written in PHP and JAVASCRIPT, using the EXTJS 6 and YII FRAMEWORK frameworks, aimed at IP telephony providers. MagnusBilling provides a complete and powerful system for anyone to start an IP telephony provider in a matter of minutes. MagnusBilling uses `Asterisk`_ for connection between customers and providers. -* MagnusBilling can be installed on Linux Centos or Debian. The team of developers does all the development and testing only on Centos 7, so we recommend using it. +* MagnusBilling can be installed on Linux, Centos 7 or Debian 10. * MagnusBilling has a modern and robust interface that makes the administration of all functions very easy to understand. diff --git a/wiki/en/modules/did/did.rst b/wiki/en/modules/did/did.rst index a0d9ac596..d83978dbd 100755 --- a/wiki/en/modules/did/did.rst +++ b/wiki/en/modules/did/did.rst @@ -146,10 +146,10 @@ Regular expression | | | Regular expression for mobile -| ^[1-9][0-9]9\d{8}$|^0[1-9][0-9]9\d{8}$|^55[1-9][0-9]9\d{8}$ +| ^[1-9][0-9]9\\d{8}$|^0[1-9][0-9]9\\d{8}$|^55[1-9][0-9]9\\d{8}$ | | Regular expression for landline -| ^[1-9][0-9]\d{8}$|^0[1-9][0-9]\d{8}$|^55[1-9][0-9]\d{8}$ +| ^[1-9][0-9]\\d{8}$|^0[1-9][0-9]\\d{8}$|^55[1-9][0-9]\\d{8}$ | | | diff --git a/wiki/en/modules/index.rst b/wiki/en/modules/index.rst index 615dad788..ca554f0a9 100755 --- a/wiki/en/modules/index.rst +++ b/wiki/en/modules/index.rst @@ -496,6 +496,14 @@ This menu has the following fields .. include:: servers/servers.rst +Trunk erros ++++++++++++ + +This menu has the following fields + +.. include:: trunksipcodes/trunksipcodes.rst + + Sip Trace +++++++++ diff --git a/wiki/en/modules/trunkSipCodes/trunkSipCodes.rst b/wiki/en/modules/trunkSipCodes/trunkSipCodes.rst new file mode 100644 index 000000000..5b86ad5a3 --- /dev/null +++ b/wiki/en/modules/trunkSipCodes/trunkSipCodes.rst @@ -0,0 +1,30 @@ + +.. _trunkSipCodes-ip: + +IP +-- + +| We did not write the description to this field. + + + + +.. _trunkSipCodes-code: + +Code +---- + +| We did not write the description to this field. + + + + +.. _trunkSipCodes-total: + +Total +----- + +| We did not write the description to this field. + + + diff --git a/wiki/pt_BR/conf.py b/wiki/pt_BR/conf.py index 0fe2aaaef..1bd41b0f1 100755 --- a/wiki/pt_BR/conf.py +++ b/wiki/pt_BR/conf.py @@ -35,7 +35,7 @@ # General information about the project project = 'MagnusBilling Wiki' -copyright = '2005-2020, MagnusSolution' +copyright = '2005-2021, MagnusSolution' author = 'Adilson Magnus and the MagnusBilling community' # Version info for the project, acts as replacement for |version| and |release| diff --git a/wiki/pt_BR/find_rate.rst b/wiki/pt_BR/find_rate.rst new file mode 100644 index 000000000..4de1c5873 --- /dev/null +++ b/wiki/pt_BR/find_rate.rst @@ -0,0 +1,91 @@ +.. _find-rate: + +Busca de tarifa +=============== + +Como o MagnusBilling seleciona a tarifa a ser usada? +---------------------------------------------------- + +Quando um cliente faz uma chamada externa, para um fixo ou celular, é disparado uma rotina de verificações que consiste em : + +1 - Verifica o usuário e senha. +2 - Verifica se o cliente está ativo. +3 - Verifica se o número discado é um DID. +4 - Verifica se o número discado é uma Conta SIP. +5 - Verifica o plano do cliente. +6 - Buscar dentro das tarifas do plano qual a tarifa que mais se encaixa com o número discado. +7 - Busca os troncos que pertencem ao grupo de troncos da tarifa encontrada. +8 - Envia a chamada para o primeiro tronco, e se falhar envia para o próximo. +9 - No momento que a chamada é finalizada, é calculado o preço de compra e venda +10 - Adicionado a chamada no relatório CDR +11 - Descontado o valor da chamada no crédito do cliente. + + +Mais bem, como funciona o passo 6? + +É realizado da seguinte forma. Digamos que o cliente XXXXX ligou para o número 551140045678 + +No passo 5, o sistema pega o plano do cliente, e então no passo 6 é feito um "SELECT" na tabela das tarifas assim. + + +:: + + $sql = "SELECT * FROM pkg_plan LEFT JOIN pkg_rate ON pkg_plan.id = pkg_rate.id_plan + LEFT JOIN pkg_prefix ON pkg_rate.id_prefix = pkg_prefix.id + LEFT JOIN pkg_trunk_group ON pkg_trunk_group.id = pkg_rate.id_trunk_group + WHERE pkg_plan.id=$MAGNUS->id_plan AND pkg_rate.status = 1 + AND $MAGNUS->prefixclause ORDER BY LENGTH( prefix ) DESC LIMIT 1"; + + +A variável $MAGNUS->id_plan é o id do plano do cliente, e a variável $MAGNUS->prefixclause é o filtro realizado para encontrar a tarifa. + +Para facilitar o entendimento vamos explicar de outra forma. + +Como o cliente ligou para 551140045678, o sistema vai buscar da seguinte forma. + +Existe uma tarifa para o prefixo 551140045678? + +* Se sim, usamos esta tarifa + +* Se não, procuramos novamente retirando o último número, neste caso 55114004567 e assim até chegar somente no número 5. Se não encontrar nenhuma tarifa, o sistema vai retornar erro e não vai continuar a chamada. + + + +Voltando ao "SELECT" ficaria assim. + +:: + + $sql = "SELECT * FROM pkg_plan LEFT JOIN pkg_rate ON pkg_plan.id = pkg_rate.id_plan + LEFT JOIN pkg_prefix ON pkg_rate.id_prefix = pkg_prefix.id + LEFT JOIN pkg_trunk_group ON pkg_trunk_group.id = pkg_rate.id_trunk_group + WHERE pkg_plan.id=1 AND pkg_rate.status = 1 AND + (prefix = '551140045678' OR + prefix = '55114004567' OR + prefix = '5511400456' OR + prefix = '551140045' OR + prefix = '55114004' OR + prefix = '5511400' OR + prefix = '551140' OR + prefix = '55114' OR + prefix = '5511' OR + prefix = '551' OR + prefix = '55' OR + prefix = '5' ) + ORDER BY LENGTH( prefix ) DESC LIMIT 1"; + + +Digamos que você tem no plano do cliente, as seguintes 3 tarifas + +55,Brasil Fixo Geral +55119,Brasil SP Celular +5511,Brasil SP Fixo + + +Neste exemplo, o "SELECT" retornaria a tarifa 5511,Brasil SP Fixo. + + + +Mas você pode estar se perguntando se o cliente ligar para 5511988551234, o "SELECT" encontraria o prefixo 55119 e o 5511 e aí qual dos dois usaria? Usaria o 55119, pois no "SELECT" tem o parâmetro ORDER BY LENGTH( prefix ) DESC e também o parâmetro LIMIT 1. Ou seja, ele ordenará os resultados colocando em primeiro o prefixo que tiver a maior quantidade de dígitos. + + + diff --git a/wiki/pt_BR/get_started/quick_install.rst b/wiki/pt_BR/get_started/quick_install.rst index 6a49d191b..4a75abf04 100755 --- a/wiki/pt_BR/get_started/quick_install.rst +++ b/wiki/pt_BR/get_started/quick_install.rst @@ -2,7 +2,7 @@ Instalação ********** -Para instalar MagnusBilling, você precisa apenas de um servidor com CentOS 7 ou Debian 8, 64 ou 32 bits, instalação básica. Tenha em mente que todo o desenvolvimento e testes do Magnusbilling ocorrem no CentOS 7, então recomendamos usar o CentOS 7. +Para instalar MagnusBilling, você precisa apenas de um servidor com CentOS 7 ou Debian 10, 64 ou 32 bits, instalação básica. **1.** Execute os comandos abaixo como root. O script vai instalar Magnusbilling, Asterisk e todas as dependências necessárias, como: IPTables, Fail2ban, Apache, PHP e mysql. diff --git a/wiki/pt_BR/get_started/update.rst b/wiki/pt_BR/get_started/update.rst new file mode 100644 index 000000000..5941d0832 --- /dev/null +++ b/wiki/pt_BR/get_started/update.rst @@ -0,0 +1,14 @@ +*********************** +Atualizar MagnusBilling +*********************** + +Nossa equipe trabalha diariamente para adicionar novas funçōes e solucionar problemas. Voce pode ver as alteraçoes realizadas no link https://github.com/magnussolution/magnusbilling7/commits/source + +Por tanto, nossa equipe recomenda que você mantenha seu servidor atualizado. + +Para atualizar seu MagnusBilling, execute o seguinte comando no SSH logado como root. + + +:: + + /var/www/html/mbilling/protected/commands/update.sh diff --git a/wiki/pt_BR/index.rst b/wiki/pt_BR/index.rst index 27109a8d0..5080d2536 100755 --- a/wiki/pt_BR/index.rst +++ b/wiki/pt_BR/index.rst @@ -22,12 +22,14 @@ Bem vindo à documentação do MagnusBilling 7 em português. get_started/quick_install.rst get_started/interface.rst get_started/backup.rst + get_started/update.rst .. toctree:: :caption: Informações técnicas :maxdepth: 1 price_calculation.rst + find_rate.rst tts.rst offer.rst how_to_use_voucher.rst diff --git a/wiki/pt_BR/intro.rst b/wiki/pt_BR/intro.rst index 669404ea7..2388d7417 100755 --- a/wiki/pt_BR/intro.rst +++ b/wiki/pt_BR/intro.rst @@ -6,7 +6,7 @@ Introdução `MagnusBilling`_ é uma ferramenta de software livre escrita em PHP e JAVASCRIPT, usando os frameworks EXTJS 6 e YII FRAMEWORK, destinada a provedores de telefonia IP MagnusBilling provê um sistema completo, realmente potente, para qualquer pessoa possa iniciar um provedor de telefonia IP em questão de minutos. MagnusBilling usa `Asterisk`_ para conexão entre clientes e provedores. -* MagnusBilling pode ser instalado em Linux Centos ou Debian. A equipe de desenvolvedores faz todo o desenvolvimento e teste somente em Centos 7, por tanto, recomendamos o uso do mesmo. +* MagnusBilling pode ser instalado em Linux Centos 7 ou Debian 10. * MagnusBilling tem uma interface moderna e robusta que torna muito fácil a administração de todas as funções. diff --git a/wiki/pt_BR/modules/index.rst b/wiki/pt_BR/modules/index.rst index 0401f6331..ec4353763 100755 --- a/wiki/pt_BR/modules/index.rst +++ b/wiki/pt_BR/modules/index.rst @@ -496,6 +496,14 @@ Este menu tem os seguintes campos .. include:: servers/servers.rst +Erros dos troncos ++++++++++++++++++ + +Este menu tem os seguintes campos + +.. include:: trunksipcodes/trunksipcodes.rst + + Sip Trace +++++++++ diff --git a/wiki/pt_BR/modules/trunkSipCodes/trunkSipCodes.rst b/wiki/pt_BR/modules/trunkSipCodes/trunkSipCodes.rst new file mode 100644 index 000000000..4d46ff3ea --- /dev/null +++ b/wiki/pt_BR/modules/trunkSipCodes/trunkSipCodes.rst @@ -0,0 +1,30 @@ + +.. _trunkSipCodes-ip: + +IP +-- + +| Nós ainda não escrevemos a descrição deste campo. + + + + +.. _trunkSipCodes-code: + +Código +------- + +| Nós ainda não escrevemos a descrição deste campo. + + + + +.. _trunkSipCodes-total: + +Total +----- + +| Nós ainda não escrevemos a descrição deste campo. + + + diff --git a/wiki/pt_BR/price_calculation.rst b/wiki/pt_BR/price_calculation.rst index 4f867d925..7fe27c17a 100755 --- a/wiki/pt_BR/price_calculation.rst +++ b/wiki/pt_BR/price_calculation.rst @@ -4,20 +4,20 @@ Cálculo de preço da chamada =========================== +O valor a ser cobrado do cliente é calculado em base ao preço da tarifa do prefixo que mais se adequa ao número discado do plano da do usuário. -Esse valor foi calculado em base ao preço configurado para o provedor que o tronco que foi utilizado para completar esta chamada pertence. -O valor é calculado usado 4 valores. +O valor é calculado usando 4 valores. * Duração da chamada; -* Preço de compra; +* Preço de venda; * Bloco inicial; * Incremento. Exemplo. -O cliente liga para o número 5511988443300 e falou por 45 segundos. -E existe uma tarifa no menu Tarifas Provedores para o prefixo 55119, com: +O cliente liga para o número 5511988443300 e fala por 45 segundos. +Existe uma tarifa no menu Tarifas para o prefixo 55119, com os seguint: * Preço de compra = 0.05 * Bloco inicial = 30