Como ligar para um número PSTN de um telefone SIP virtual através do Asterisk

Como ligar para um número PSTN de um telefone SIP virtual através do Asterisk

Estou começando com o Asterisk. Tudo o que quero fazer é ligar para um número PSTN de um softphone SIP. Eu li a última edição do livro: Asterisk, o Guia Definitivo e fiz a habitual pesquisa no Google por uma solução, mas sem sucesso.

Aqui está o que fiz até agora usando o softphone Ekiga.

Consegui me registrar usando o softphone. Asterisk "sip show peers" lista as extensões registradas corretamente. Configurei chan_dahdi.conf para o cartão PRI. Eu configurei o arquivo sip.conf. Em ambos os arquivos, nomeei contextos e estes são definidos no arquivo extensions.conf.

Quando tento ligar para o número PRI de fora, o ramal dialplan que corresponde a um padrão genérico é acionado. Consigo executar a aplicação Dial(DAHDI/g0/1234567890) em uma das etapas. Ele liga para o número PSTN. Portanto, sei que a configuração do hardware e a instalação básica dos drivers Dahdi, drivers da placa PRI, etc.

Não consigo descobrir como posso fazer uma chamada externa através do softphone. O que precisa ser feito para conectar um URI no telefone SIP ao ramal Dahdi em um plano de discagem para fazer chamadas. Em outras palavras, como faço para, por exemplo, chegar a isso:

extensão => _X.,1, discar(DAHDI/g0/1234567890)

de um softphone?

Aqui o número é especificado estaticamente no dialplan.

Se eu fizer isso como uma ação em outra extensão SIP e tentar acessar esse URI SIP a partir do softphone, ele reclamará que o usuário não está acessível.

Responder1

Não existe uma maneira única de fazer isso.

Esta é uma maneira:

Defini meus ramais começando com 9, e uso 9 para sinalizar que é uma chamada PSTN.

Adicione extensions.confalgo assim:

exten => _9X.,1,NoOp(Call to PSTN)
exten => _9X.,n,Dial(DAHDI/g0/${EXTEN:1})

Coloque-o no mesmo contexto onde você colocou o dialplan para as extensões. O contexto é definido em um título entre colchetes como [internal]ou [default].

Isso significa que sempre que você discar, 9+somethingele retirará o primeiro dígito e pegará o restante do número e discará através de DAHDI/g0. 9é oforaindicador.

Lembre-se de que qualquer ramal no mesmo contexto poderá ligar para PSTN.


Esta é outra maneira de fazer isso:

Se você sabe o comprimento dos dígitos para ligar para fora, suponha que sejam sempre 7 dígitos, então você pode fazer isso:

exten => _XXXXXXX,1,NoOp(Call to PSTN)
exten => _XXXXXXX,n,Dial(DAHDI/g0/${EXTEN})

Sempre que você discar um número de 7 dígitos, ele irá para PSTN. Seus números de ramal devem ser menores que isso.

informação relacionada