feat(telefonia): edição de ramal (nome/caller ID/contexto/codecs/grupo) junto da senha SIP
Pedido do usuário: abrir a edição completa do ramal no mesmo lugar de ver/redefinir a senha, em vez de só um campo (grupo de captura) editável isoladamente. UpdateExtensionDto ganha name/context/codecs (só callGroup e caller ID eram editáveis antes); codecs valida contra uma lista fixa e agora realmente vira absolute_codec_string no directory XML — antes a coluna existia no schema mas não tinha efeito nenhum no FreeSWITCH. Grupo de captura vira um input com datalist alimentado pelos grupos já usados em outros ramais do tenant, em vez de digitar de novo do zero. Testado ponta a ponta com Playwright (tenant/ramais descartáveis): grupo reaproveitado de outro ramal, edição de nome/caller ID/contexto, remoção de um codec — tudo persistido e refletido na tela depois de salvar. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BFaBaBSQGhyXGEgtTYZGV8
This commit is contained in:
@@ -30,6 +30,11 @@ export interface DirectoryUserParams {
|
||||
* contra a documentação do FreeSWITCH antes de close (a primeira versão
|
||||
* usava `call-group`, que não é lido por nada). */
|
||||
callGroup?: string | null;
|
||||
/** Lista de codecs de áudio permitidos pro ramal, separados por vírgula
|
||||
* (ex.: "PCMU,PCMA,OPUS") — vira `absolute_codec_string`, a variável
|
||||
* que o FreeSWITCH usa pra restringir/ordenar os codecs oferecidos na
|
||||
* negociação SDP pra este usuário especificamente. */
|
||||
codecs?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -67,6 +72,7 @@ export function buildDirectoryUserXml(params: DirectoryUserParams): string {
|
||||
<variable name="b2bcall_tenant_id" value="${xmlEscape(params.tenantId)}"/>
|
||||
<variable name="b2bcall_extension_id" value="${xmlEscape(params.extensionId)}"/>
|
||||
${params.callGroup ? `<variable name="callgroup" value="${xmlEscape(params.callGroup)}"/>` : ""}
|
||||
${params.codecs ? `<variable name="absolute_codec_string" value="${xmlEscape(params.codecs)}"/>` : ""}
|
||||
</variables>
|
||||
</user>
|
||||
</users>
|
||||
|
||||
Reference in New Issue
Block a user