- FXO SPA3102 Linha Fixa
+ Responder ao Tópico
-
FXO SPA3102 Linha Fixa
Boa tarde, estou precisando colocar um SPA3102 ligado a uma linha fixa fornecendo uma conta SIP para um Elastix, no caso a linha fixa vai virar tronco do Elastix. Alguém pode me ajudar ?
-
Re: FXO SPA3102 Linha Fixa
Eu posso, qual sua dúvida!
-
Re: FXO SPA3102 Linha Fixa
Eu já configurei algumas vezes o spa3102 como cliente SIP. Porém para configurar como tronco eu não faço nem ideia, Hehe.
-
Re: FXO SPA3102 Linha Fixa
Na verdade é o elastix quem fornece uma conta sip para o SPA3102.
No elastix voce vai em PBX configuration e em Trunks adiciona um novo tronco
Nome do Tronco: Seu SPA por exemplo
Outbound CalledID: Numero de sua Linha
Maximo de canais: 1
Mais abaixo coloque novamente o nome do tronco
em Detalhes do PEER faça como abaixo:
disallow=all
allow=g729&ulaw&alaw&gsm&all
canreinvite=no
context=from-trunk
dtmfmode=rfc2833
host=dynamic
incominglimit=1
nat=never
port=5061
qualify=yes
secret=CRIE_SUA_SENHA
type=friend
username=CRIE_SEU_LOGIN
Salve e Aplique.
Depois em Inbound Routes - Crie uma nova rota de entrada
Descrição: Exemplo seu SPA
Número DDR: Numero de sua Linha
Gravar chamadas: sempre, nunca você que define
Configurar Destino:
Aqui você escolhe o destino da chamada:
Fila, Chamada em grupo, URA, extensão entre outros.
Em Outbound Routes - Crie uma nova rota de saída
Nome da Rota: exemplo seu SPA
Gravar chamadas: sempre, nunca
Dial Patterns that will use this Route: define as
possíveis combinações de números permitidas para discar pelo tronco.
Trunk Sequence for Matched Routes: Aqui você seleciona o tronco que criou.
Optional Destination on Congestion: Caso o tronco esteja ocupado encerra
ou envia para outra saída.
Pronto salve e aplique.
#############
No SPA3102 clique em admin e advanced, A parte de Router funciona com um roteador comum. Wan Setup configure seu ip, mascara, gateway, dns, ntp, hostname etc, se for usar a lan pode configurar um dhcp com nat.
Na parte de Voice.
em System voce pode limitar o acesso a sua rede
habilitar o acesso via internet e cadastrar senha para o user e o admin.
Em line1 voce pode configurar um telefone local no SPA caso precise.
O mais importante esta em PSTN Line
Line Enable: yes
NAT Settings
NAT Mapping Enable: no
SIP Settings
SIP Transport: UDP
SIP Port: 5060
Proxy and Registration
Proxy: IP_DO_ELASTIX
Register: yes
Use OB Proxy In Dialog: yes
Make Call Without Reg: yes
Register Expires: 3600
Ans Call Without Reg: yes
Subscriber Information
Display Name: Nome que aparecera no Elastix
User ID: LOGIN_QUE_CRIOU_EM_TRONCO
Password: SENHA_QUE_CRIOU_EM_TRONCO
Dial Plans
Dial Plan 8: S0<:NUMERO_DA_LINHA@IP_DO_ELASTIX>
VoIP-To-PSTN Gateway Setup
VoIP-To-PSTN Gateway Enable: yes
VoIP PIN Max Retry: 3
Line 1 VoIP Caller DP: 1
VoIP Caller Default DP: 1
PSTN-To-VoIP Gateway Setup
PSTN-To-VoIP Gateway Enable: yes
PSTN Ring Thru Line 1: no <- Caso queira que o telefone local toque mude para yes
PSTN CID For VoIP CID: no
PSTN Caller Default DP: 8 <- mesmo dial plan configurado acima (importante)
FXO Timer Values (sec)
PSTN Answer Delay: 5
É isso, espero que ajude! lembrando que firewall e bloqueio de portas interfere na qualidade do audio, ate poblemas com chamada muda.
-
Re: FXO SPA3102 Linha Fixa
Bom dia, quero agradecer a ajuda, consegui configurar o tronco e fazer ligações, porém não estou conseguindo receber ligações. Revisei a configuração muitas vezes e esta igualzinha, alguma outra dica?
-
Re: FXO SPA3102 Linha Fixa
Abra o terminal do elastix e veja se o tronco SPA3102 esta enviando a chamada.
-
Re: FXO SPA3102 Linha Fixa
Não como te explicar, hehe, quando eu origino a chamada pela linha analógica percebo que chama, mas não aciona nada no console do elastix, o ramal 9001 esta funcionando perfeitamente, é para este que direcionei na "incoming route", porém depois de uns 7 segundos apresenta o seguinte problema:
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
-- Executing [4935634227@from-trunk:1] Set("SIP/comaq-0000004d", "__FROM_DID=4935634227") in new stack
-- Executing [4935634227@from-trunk:2] Gosub("SIP/comaq-0000004d", "app-blacklist-check,s,1") in new stack
-- Executing [s@app-blacklist-check:1] GotoIf("SIP/comaq-0000004d", "0?blacklisted") in new stack
-- Executing [s@app-blacklist-check:2] Set("SIP/comaq-0000004d", "CALLED_BLACKLIST=1") in new stack
-- Executing [s@app-blacklist-check:3] Return("SIP/comaq-0000004d", "") in new stack
-- Executing [4935634227@from-trunk:3] ExecIf("SIP/comaq-0000004d", "0 ?Set(CALLERID(name)=comaq)") in new stack
-- Executing [4935634227@from-trunk:4] Set("SIP/comaq-0000004d", "__CALLINGPRES_SV=allowed_not_screened") in new stack
-- Executing [4935634227@from-trunk:5] Set("SIP/comaq-0000004d", "CALLERPRES()=allowed_not_screened") in new stack
-- Executing [4935634227@from-trunk:6] Goto("SIP/comaq-0000004d", "from-did-direct,9001,1") in new stack
-- Goto (from-did-direct,9001,1)
-- Executing [9001@from-did-direct:1] Macro("SIP/comaq-0000004d", "exten-vm,novm,9001") in new stack
-- Executing [s@macro-exten-vm:1] Macro("SIP/comaq-0000004d", "user-callerid,") in new stack
-- Executing [s@macro-user-callerid:1] Set("SIP/comaq-0000004d", "AMPUSER=comaq") in new stack
-- Executing [s@macro-user-callerid:2] GotoIf("SIP/comaq-0000004d", "0?report") in new stack
-- Executing [s@macro-user-callerid:3] ExecIf("SIP/comaq-0000004d", "1?Set(REALCALLERIDNUM=comaq)") in new stack
-- Executing [s@macro-user-callerid:4] Set("SIP/comaq-0000004d", "AMPUSER=") in new stack
-- Executing [s@macro-user-callerid:5] Set("SIP/comaq-0000004d", "AMPUSERCIDNAME=") in new stack
-- Executing [s@macro-user-callerid:6] GotoIf("SIP/comaq-0000004d", "1?report") in new stack
-- Goto (macro-user-callerid,s,10)
-- Executing [s@macro-user-callerid:10] GotoIf("SIP/comaq-0000004d", "0?continue") in new stack
-- Executing [s@macro-user-callerid:11] Set("SIP/comaq-0000004d", "__TTL=64") in new stack
-- Executing [s@macro-user-callerid:12] GotoIf("SIP/comaq-0000004d", "1?continue") in new stack
-- Goto (macro-user-callerid,s,19)
-- Executing [s@macro-user-callerid:19] Set("SIP/comaq-0000004d", "CALLERID(number)=comaq") in new stack
-- Executing [s@macro-user-callerid:20] Set("SIP/comaq-0000004d", "CALLERID(name)=comaq") in new stack
-- Executing [s@macro-user-callerid:21] NoOp("SIP/comaq-0000004d", "Using CallerID "comaq" <comaq>") in new stack
-- Executing [s@macro-exten-vm:2] Set("SIP/comaq-0000004d", "RingGroupMethod=none") in new stack
-- Executing [s@macro-exten-vm:3] Set("SIP/comaq-0000004d", "VMBOX=novm") in new stack
-- Executing [s@macro-exten-vm:4] Set("SIP/comaq-0000004d", "__EXTTOCALL=9001") in new stack
-- Executing [s@macro-exten-vm:5] Set("SIP/comaq-0000004d", "CFUEXT=") in new stack
-- Executing [s@macro-exten-vm:6] Set("SIP/comaq-0000004d", "CFBEXT=") in new stack
-- Executing [s@macro-exten-vm:7] Set("SIP/comaq-0000004d", "RT=""") in new stack
-- Executing [s@macro-exten-vm:8] Macro("SIP/comaq-0000004d", "record-enable,9001,IN") in new stack
-- Executing [s@macro-record-enable:1] GotoIf("SIP/comaq-0000004d", "1?check") in new stack
-- Goto (macro-record-enable,s,4)
-- Executing [s@macro-record-enable:4] ExecIf("SIP/comaq-0000004d", "0?MacroExit()") in new stack
-- Executing [s@macro-record-enable:5] GotoIf("SIP/comaq-0000004d", "0?Group:OUT") in new stack
-- Goto (macro-record-enable,s,15)
-- Executing [s@macro-record-enable:15] GotoIf("SIP/comaq-0000004d", "1?IN") in new stack
-- Goto (macro-record-enable,s,20)
-- Executing [s@macro-record-enable:20] ExecIf("SIP/comaq-0000004d", "1?MacroExit()") in new stack
-- Executing [s@macro-exten-vm:9] Macro("SIP/comaq-0000004d", "dial-one,"",tr,9001") in new stack
-- Executing [s@macro-dial-one:1] Set("SIP/comaq-0000004d", "DEXTEN=9001") in new stack
-- Executing [s@macro-dial-one:2] Set("SIP/comaq-0000004d", "DIALSTATUS_CW=") in new stack
-- Executing [s@macro-dial-one:3] GosubIf("SIP/comaq-0000004d", "0?screen,1") in new stack
-- Executing [s@macro-dial-one:4] GosubIf("SIP/comaq-0000004d", "0?cf,1") in new stack
-- Executing [s@macro-dial-one:5] GotoIf("SIP/comaq-0000004d", "1?skip1") in new stack
-- Goto (macro-dial-one,s,8)
-- Executing [s@macro-dial-one:8] GotoIf("SIP/comaq-0000004d", "0?nodial") in new stack
-- Executing [s@macro-dial-one:9] GotoIf("SIP/comaq-0000004d", "0?continue") in new stack
-- Executing [s@macro-dial-one:10] Set("SIP/comaq-0000004d", "EXTHASCW=") in new stack
-- Executing [s@macro-dial-one:11] GotoIf("SIP/comaq-0000004d", "1?next1:cwinusebusy") in new stack
-- Goto (macro-dial-one,s,12)
-- Executing [s@macro-dial-one:12] GotoIf("SIP/comaq-0000004d", "0?docfu:skip3") in new stack
-- Goto (macro-dial-one,s,16)
-- Executing [s@macro-dial-one:16] GotoIf("SIP/comaq-0000004d", "1?next2:continue") in new stack
-- Goto (macro-dial-one,s,17)
-- Executing [s@macro-dial-one:17] GotoIf("SIP/comaq-0000004d", "1?continue") in new stack
-- Goto (macro-dial-one,s,25)
-- Executing [s@macro-dial-one:25] GotoIf("SIP/comaq-0000004d", "0?nodial") in new stack
-- Executing [s@macro-dial-one:26] GosubIf("SIP/comaq-0000004d", "1?dstring,1:dlocal,1") in new stack
-- Executing [dstring@macro-dial-one:1] Set("SIP/comaq-0000004d", "DSTRING=") in new stack
-- Executing [dstring@macro-dial-one:2] Set("SIP/comaq-0000004d", "DEVICES=9001") in new stack
-- Executing [dstring@macro-dial-one:3] ExecIf("SIP/comaq-0000004d", "0?Return()") in new stack
-- Executing [dstring@macro-dial-one:4] ExecIf("SIP/comaq-0000004d", "0?Set(DEVICES=001)") in new stack
-- Executing [dstring@macro-dial-one:5] Set("SIP/comaq-0000004d", "LOOPCNT=1") in new stack
-- Executing [dstring@macro-dial-one:6] Set("SIP/comaq-0000004d", "ITER=1") in new stack
-- Executing [dstring@macro-dial-one:7] Set("SIP/comaq-0000004d", "THISDIAL=SIP/9001") in new stack
-- Executing [dstring@macro-dial-one:8] GosubIf("SIP/comaq-0000004d", "1?zap2dahdi,1") in new stack
-- Executing [zap2dahdi@macro-dial-one:1] ExecIf("SIP/comaq-0000004d", "0?Return()") in new stack
-- Executing [zap2dahdi@macro-dial-one:2] Set("SIP/comaq-0000004d", "NEWDIAL=") in new stack
-- Executing [zap2dahdi@macro-dial-one:3] Set("SIP/comaq-0000004d", "LOOPCNT2=1") in new stack
-- Executing [zap2dahdi@macro-dial-one:4] Set("SIP/comaq-0000004d", "ITER2=1") in new stack
-- Executing [zap2dahdi@macro-dial-one:5] Set("SIP/comaq-0000004d", "THISPART2=SIP/9001") in new stack
-- Executing [zap2dahdi@macro-dial-one:6] ExecIf("SIP/comaq-0000004d", "0?Set(THISPART2=DAHDI/9001)") in new stack
-- Executing [zap2dahdi@macro-dial-one:7] Set("SIP/comaq-0000004d", "NEWDIAL=SIP/9001&") in new stack
-- Executing [zap2dahdi@macro-dial-one:8] Set("SIP/comaq-0000004d", "ITER2=2") in new stack
-- Executing [zap2dahdi@macro-dial-one:9] GotoIf("SIP/comaq-0000004d", "0?begin2") in new stack
-- Executing [zap2dahdi@macro-dial-one:10] Set("SIP/comaq-0000004d", "THISDIAL=SIP/9001") in new stack
-- Executing [zap2dahdi@macro-dial-one:11] Return("SIP/comaq-0000004d", "") in new stack
-- Executing [dstring@macro-dial-one:9] Set("SIP/comaq-0000004d", "DSTRING=SIP/9001&") in new stack
-- Executing [dstring@macro-dial-one:10] Set("SIP/comaq-0000004d", "ITER=2") in new stack
-- Executing [dstring@macro-dial-one:11] GotoIf("SIP/comaq-0000004d", "0?begin") in new stack
-- Executing [dstring@macro-dial-one:12] Set("SIP/comaq-0000004d", "DSTRING=SIP/9001") in new stack
-- Executing [dstring@macro-dial-one:13] Return("SIP/comaq-0000004d", "") in new stack
-- Executing [s@macro-dial-one:27] GotoIf("SIP/comaq-0000004d", "0?nodial") in new stack
-- Executing [s@macro-dial-one:28] GotoIf("SIP/comaq-0000004d", "0?skiptrace") in new stack
-- Executing [s@macro-dial-one:29] GosubIf("SIP/comaq-0000004d", "0?ctset,1:ctclear,1") in new stack
-- Executing [ctclear@macro-dial-one:1] NoOp("SIP/comaq-0000004d", "Deleting: CALLTRACE/9001 ") in new stack
-- Executing [ctclear@macro-dial-one:2] Return("SIP/comaq-0000004d", "") in new stack
-- Executing [s@macro-dial-one:30] Set("SIP/comaq-0000004d", "D_OPTIONS=tr") in new stack
-- Executing [s@macro-dial-one:31] ExecIf("SIP/comaq-0000004d", "0?SIPAddHeader(Alert-Info: )") in new stack
-- Executing [s@macro-dial-one:32] ExecIf("SIP/comaq-0000004d", "0?SIPAddHeader()") in new stack
-- Executing [s@macro-dial-one:33] ExecIf("SIP/comaq-0000004d", "0?Set(CHANNEL(musicclass)=)") in new stack
-- Executing [s@macro-dial-one:34] GosubIf("SIP/comaq-0000004d", "0?qwait,1") in new stack
-- Executing [s@macro-dial-one:35] Set("SIP/comaq-0000004d", "__CWIGNORE=") in new stack
-- Executing [s@macro-dial-one:36] Set("SIP/comaq-0000004d", "__KEEPCID=TRUE") in new stack
-- Executing [s@macro-dial-one:37] Dial("SIP/comaq-0000004d", "SIP/9001,"",tr") in new stack
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
-- Couldn't call SIP/9001
== Everyone is busy/congested at this time (0:0/0/0)
-- Executing [s@macro-dial-one:38] ExecIf("SIP/comaq-0000004d", "0?Set(DIALSTATUS=)") in new stack
-- Executing [s@macro-dial-one:39] GosubIf("SIP/comaq-0000004d", "0?s-CHANUNAVAIL,1") in new stack
-- Executing [s@macro-dial-one:40] MacroExit("SIP/comaq-0000004d", "") in new stack
-- Executing [s@macro-exten-vm:10] GotoIf("SIP/comaq-0000004d", "0?exit") in new stack
-- Executing [s@macro-exten-vm:11] Set("SIP/comaq-0000004d", "SV_DIALSTATUS=CHANUNAVAIL") in new stack
-- Executing [s@macro-exten-vm:12] GosubIf("SIP/comaq-0000004d", "0?docfu,1") in new stack
-- Executing [s@macro-exten-vm:13] GosubIf("SIP/comaq-0000004d", "0?docfb,1") in new stack
-- Executing [s@macro-exten-vm:14] Set("SIP/comaq-0000004d", "DIALSTATUS=CHANUNAVAIL") in new stack
-- Executing [s@macro-exten-vm:15] NoOp("SIP/comaq-0000004d", "Voicemail is 'novm'") in new stack
-- Executing [s@macro-exten-vm:16] GotoIf("SIP/comaq-0000004d", "1?s-CHANUNAVAIL,1") in new stack
-- Goto (macro-exten-vm,s-CHANUNAVAIL,1)
-- Executing [s-CHANUNAVAIL@macro-exten-vm:1] NoOp("SIP/comaq-0000004d", "IVR_RETVM: IVR_CONTEXT: ") in new stack
-- Executing [s-CHANUNAVAIL@macro-exten-vm:2] GotoIf("SIP/comaq-0000004d", "0?exit,1") in new stack
-- Executing [s-CHANUNAVAIL@macro-exten-vm:3] PlayTones("SIP/comaq-0000004d", "congestion") in new stack
== Spawn extension (macro-exten-vm, s-CHANUNAVAIL, 3) exited non-zero on 'SIP/comaq-0000004d' in macro 'exten-vm'
== Spawn extension (from-did-direct, 9001, 1) exited non-zero on 'SIP/comaq-0000004d'
-- Executing [h@from-did-direct:1] Macro("SIP/comaq-0000004d", "hangupcall,") in new stack
-- Executing [s@macro-hangupcall:1] GotoIf("SIP/comaq-0000004d", "1?endmixmoncheck") in new stack
-- Goto (macro-hangupcall,s,9)
-- Executing [s@macro-hangupcall:9] NoOp("SIP/comaq-0000004d", "End of MIXMON check") in new stack
-- Executing [s@macro-hangupcall:10] GotoIf("SIP/comaq-0000004d", "1?nomeetmemon") in new stack
-- Goto (macro-hangupcall,s,28)
-- Executing [s@macro-hangupcall:28] NoOp("SIP/comaq-0000004d", "End of MEETME check") in new stack
-- Executing [s@macro-hangupcall:29] GotoIf("SIP/comaq-0000004d", "1?noautomon") in new stack
-- Goto (macro-hangupcall,s,34)
-- Executing [s@macro-hangupcall:34] NoOp("SIP/comaq-0000004d", "TOUCH_MONITOR_OUTPUT=") in new stack
-- Executing [s@macro-hangupcall:35] GotoIf("SIP/comaq-0000004d", "1?noautomon2") in new stack
-- Goto (macro-hangupcall,s,41)
-- Executing [s@macro-hangupcall:41] NoOp("SIP/comaq-0000004d", "MONITOR_FILENAME=") in new stack
-- Executing [s@macro-hangupcall:42] GotoIf("SIP/comaq-0000004d", "1?skiprg") in new stack
-- Goto (macro-hangupcall,s,45)
-- Executing [s@macro-hangupcall:45] GotoIf("SIP/comaq-0000004d", "1?skipblkvm") in new stack
-- Goto (macro-hangupcall,s,48)
-- Executing [s@macro-hangupcall:48] GotoIf("SIP/comaq-0000004d", "1?theend") in new stack
-- Goto (macro-hangupcall,s,50)
-- Executing [s@macro-hangupcall:50] AGI("SIP/comaq-0000004d", "hangup.agi") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/hangup.agi
-- <SIP/comaq-0000004d>AGI Script hangup.agi completed, returning 0
-- Executing [s@macro-hangupcall:51] Hangup("SIP/comaq-0000004d", "") in new stack
== Spawn extension (macro-hangupcall, s, 51) exited non-zero on 'SIP/comaq-0000004d' in macro 'hangupcall'
== Spawn extension (from-did-direct, h, 1) exited non-zero on 'SIP/comaq-0000004d'
-
Re: FXO SPA3102 Linha Fixa
Certo, nesta linha aqui ele diz que o ramal esta ocupado ou congestionado!
Executing [s@macro-dial-one:37] Dial("SIP/comaq-0000004d", "SIP/9001,"",tr") in new stack
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
-- Couldn't call SIP/9001
== Everyone is busy/congested at this time (0:0/0/0)
Teste outro ramal ou outro tipo de serviço tipo URA, ou Queues (Fila).
-
Re: FXO SPA3102 Linha Fixa
Já fiz isso antes mesmo de postar a nova dificuldade, e apresenta o mesmo problema, acredito que seja algum problema de configuração, pois mesmo quando a chamada inicia o primeiro pulso demora uns 7~8 segundos para apresentar o erro.
-
Re: FXO SPA3102 Linha Fixa
Esse atraso é comum no SPA3102, pelo que vi no log ele esta enviando a chamada para o elastix, então pode ser algo relacionado ao contexto ou configuração das extensões (ramais). Entre ramais você faz e recebe chamadas normalmente?
-
Re: FXO SPA3102 Linha Fixa
Sim, entre ramais esta normal, inclusive tenho outros troncos e eles estão funcionando normalmente.
-
Re: FXO SPA3102 Linha Fixa
Compare a configuração com a de outros troncos, veja se o context= é igual entre eles, reinicie o elastix e faça o teste novamente.
-
Re: FXO SPA3102 Linha Fixa
Consegui! Para quem interessar possa, na dica inicial do colega eeds onde cita o context=from-trunk, mudei para context=from-pstn, e funcionou legal!
Agora gostaria de saber o seguinte, quando finalizar a ligação pelo ramal do elastix enviar o sinal de desligamento para o SPA3102, pois agora qunado eu finalizo continua em curso a ligação que entrou pela linha fixa, é possível fazer isso?
-
Re: FXO SPA3102 Linha Fixa
Essa opção do context= é relativa a configuração de cada um, por padrão o elastix usa context=from-trunk, mas como no seu caso isso pode mudar até porque o contexto pode ser personalizado. Em ralação ao encerramento da chamada já tive esse problema também,pelo que li na internet tem a ver com o Disconnect Tone: que fica em PSTN Line tentei varias configurações mas sem sucesso. A solução que consegui foi em Detect PSTN Long Silence: yes,PSTN Long Silence Duration: 30 em Detect VoIP Long Silence: yes, VoIP Long Silence Duration: 30 ele percebe que a chamada foi silenciada e faz o encerramento.