+ Responder ao Tópico



  1. #1

    Padrão 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 ?

  2. #2

    Padrão Re: FXO SPA3102 Linha Fixa

    Eu posso, qual sua dúvida!



  3. #3

    Padrão 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.

  4. #4

    Padrão 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.



  5. #5

    Padrão 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?

  6. #6

    Padrão Re: FXO SPA3102 Linha Fixa

    Abra o terminal do elastix e veja se o tronco SPA3102 esta enviando a chamada.



  7. #7

    Padrão 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 [[email protected]:1] Set("SIP/comaq-0000004d", "__FROM_DID=4935634227") in new stack
    -- Executing [[email protected]:2] Gosub("SIP/comaq-0000004d", "app-blacklist-check,s,1") in new stack
    -- Executing [[email protected]:1] GotoIf("SIP/comaq-0000004d", "0?blacklisted") in new stack
    -- Executing [[email protected]:2] Set("SIP/comaq-0000004d", "CALLED_BLACKLIST=1") in new stack
    -- Executing [[email protected]:3] Return("SIP/comaq-0000004d", "") in new stack
    -- Executing [[email protected]:3] ExecIf("SIP/comaq-0000004d", "0 ?Set(CALLERID(name)=comaq)") in new stack
    -- Executing [[email protected]:4] Set("SIP/comaq-0000004d", "__CALLINGPRES_SV=allowed_not_screened") in new stack
    -- Executing [[email protected]:5] Set("SIP/comaq-0000004d", "CALLERPRES()=allowed_not_screened") in new stack
    -- Executing [[email protected]:6] Goto("SIP/comaq-0000004d", "from-did-direct,9001,1") in new stack
    -- Goto (from-did-direct,9001,1)
    -- Executing [[email protected]:1] Macro("SIP/comaq-0000004d", "exten-vm,novm,9001") in new stack
    -- Executing [[email protected]:1] Macro("SIP/comaq-0000004d", "user-callerid,") in new stack
    -- Executing [[email protected]:1] Set("SIP/comaq-0000004d", "AMPUSER=comaq") in new stack
    -- Executing [[email protected]:2] GotoIf("SIP/comaq-0000004d", "0?report") in new stack
    -- Executing [[email protected]:3] ExecIf("SIP/comaq-0000004d", "1?Set(REALCALLERIDNUM=comaq)") in new stack
    -- Executing [[email protected]:4] Set("SIP/comaq-0000004d", "AMPUSER=") in new stack
    -- Executing [[email protected]:5] Set("SIP/comaq-0000004d", "AMPUSERCIDNAME=") in new stack
    -- Executing [[email protected]:6] GotoIf("SIP/comaq-0000004d", "1?report") in new stack
    -- Goto (macro-user-callerid,s,10)
    -- Executing [[email protected]:10] GotoIf("SIP/comaq-0000004d", "0?continue") in new stack
    -- Executing [[email protected]:11] Set("SIP/comaq-0000004d", "__TTL=64") in new stack
    -- Executing [[email protected]:12] GotoIf("SIP/comaq-0000004d", "1?continue") in new stack
    -- Goto (macro-user-callerid,s,19)
    -- Executing [[email protected]:19] Set("SIP/comaq-0000004d", "CALLERID(number)=comaq") in new stack
    -- Executing [[email protected]:20] Set("SIP/comaq-0000004d", "CALLERID(name)=comaq") in new stack
    -- Executing [[email protected]:21] NoOp("SIP/comaq-0000004d", "Using CallerID "comaq" <comaq>") in new stack
    -- Executing [[email protected]:2] Set("SIP/comaq-0000004d", "RingGroupMethod=none") in new stack
    -- Executing [[email protected]:3] Set("SIP/comaq-0000004d", "VMBOX=novm") in new stack
    -- Executing [[email protected]:4] Set("SIP/comaq-0000004d", "__EXTTOCALL=9001") in new stack
    -- Executing [[email protected]:5] Set("SIP/comaq-0000004d", "CFUEXT=") in new stack
    -- Executing [[email protected]:6] Set("SIP/comaq-0000004d", "CFBEXT=") in new stack
    -- Executing [[email protected]:7] Set("SIP/comaq-0000004d", "RT=""") in new stack
    -- Executing [[email protected]:8] Macro("SIP/comaq-0000004d", "record-enable,9001,IN") in new stack
    -- Executing [[email protected]:1] GotoIf("SIP/comaq-0000004d", "1?check") in new stack
    -- Goto (macro-record-enable,s,4)
    -- Executing [[email protected]:4] ExecIf("SIP/comaq-0000004d", "0?MacroExit()") in new stack
    -- Executing [[email protected]:5] GotoIf("SIP/comaq-0000004d", "0?Group:OUT") in new stack
    -- Goto (macro-record-enable,s,15)
    -- Executing [[email protected]:15] GotoIf("SIP/comaq-0000004d", "1?IN") in new stack
    -- Goto (macro-record-enable,s,20)
    -- Executing [[email protected]:20] ExecIf("SIP/comaq-0000004d", "1?MacroExit()") in new stack
    -- Executing [[email protected]:9] Macro("SIP/comaq-0000004d", "dial-one,"",tr,9001") in new stack
    -- Executing [[email protected]:1] Set("SIP/comaq-0000004d", "DEXTEN=9001") in new stack
    -- Executing [[email protected]:2] Set("SIP/comaq-0000004d", "DIALSTATUS_CW=") in new stack
    -- Executing [[email protected]:3] GosubIf("SIP/comaq-0000004d", "0?screen,1") in new stack
    -- Executing [[email protected]:4] GosubIf("SIP/comaq-0000004d", "0?cf,1") in new stack
    -- Executing [[email protected]:5] GotoIf("SIP/comaq-0000004d", "1?skip1") in new stack
    -- Goto (macro-dial-one,s,8)
    -- Executing [[email protected]:8] GotoIf("SIP/comaq-0000004d", "0?nodial") in new stack
    -- Executing [[email protected]:9] GotoIf("SIP/comaq-0000004d", "0?continue") in new stack
    -- Executing [[email protected]:10] Set("SIP/comaq-0000004d", "EXTHASCW=") in new stack
    -- Executing [[email protected]:11] GotoIf("SIP/comaq-0000004d", "1?next1:cwinusebusy") in new stack
    -- Goto (macro-dial-one,s,12)
    -- Executing [[email protected]:12] GotoIf("SIP/comaq-0000004d", "0?docfu:skip3") in new stack
    -- Goto (macro-dial-one,s,16)
    -- Executing [[email protected]:16] GotoIf("SIP/comaq-0000004d", "1?next2:continue") in new stack
    -- Goto (macro-dial-one,s,17)
    -- Executing [[email protected]:17] GotoIf("SIP/comaq-0000004d", "1?continue") in new stack
    -- Goto (macro-dial-one,s,25)
    -- Executing [[email protected]:25] GotoIf("SIP/comaq-0000004d", "0?nodial") in new stack
    -- Executing [[email protected]:26] GosubIf("SIP/comaq-0000004d", "1?dstring,1:dlocal,1") in new stack
    -- Executing [[email protected]:1] Set("SIP/comaq-0000004d", "DSTRING=") in new stack
    -- Executing [[email protected]:2] Set("SIP/comaq-0000004d", "DEVICES=9001") in new stack
    -- Executing [[email protected]:3] ExecIf("SIP/comaq-0000004d", "0?Return()") in new stack
    -- Executing [[email protected]:4] ExecIf("SIP/comaq-0000004d", "0?Set(DEVICES=001)") in new stack
    -- Executing [[email protected]:5] Set("SIP/comaq-0000004d", "LOOPCNT=1") in new stack
    -- Executing [[email protected]:6] Set("SIP/comaq-0000004d", "ITER=1") in new stack
    -- Executing [[email protected]:7] Set("SIP/comaq-0000004d", "THISDIAL=SIP/9001") in new stack
    -- Executing [[email protected]:8] GosubIf("SIP/comaq-0000004d", "1?zap2dahdi,1") in new stack
    -- Executing [[email protected]:1] ExecIf("SIP/comaq-0000004d", "0?Return()") in new stack
    -- Executing [[email protected]:2] Set("SIP/comaq-0000004d", "NEWDIAL=") in new stack
    -- Executing [[email protected]:3] Set("SIP/comaq-0000004d", "LOOPCNT2=1") in new stack
    -- Executing [[email protected]:4] Set("SIP/comaq-0000004d", "ITER2=1") in new stack
    -- Executing [[email protected]:5] Set("SIP/comaq-0000004d", "THISPART2=SIP/9001") in new stack
    -- Executing [[email protected]:6] ExecIf("SIP/comaq-0000004d", "0?Set(THISPART2=DAHDI/9001)") in new stack
    -- Executing [[email protected]:7] Set("SIP/comaq-0000004d", "NEWDIAL=SIP/9001&") in new stack
    -- Executing [[email protected]:8] Set("SIP/comaq-0000004d", "ITER2=2") in new stack
    -- Executing [[email protected]:9] GotoIf("SIP/comaq-0000004d", "0?begin2") in new stack
    -- Executing [[email protected]:10] Set("SIP/comaq-0000004d", "THISDIAL=SIP/9001") in new stack
    -- Executing [[email protected]:11] Return("SIP/comaq-0000004d", "") in new stack
    -- Executing [[email protected]:9] Set("SIP/comaq-0000004d", "DSTRING=SIP/9001&") in new stack
    -- Executing [[email protected]:10] Set("SIP/comaq-0000004d", "ITER=2") in new stack
    -- Executing [[email protected]:11] GotoIf("SIP/comaq-0000004d", "0?begin") in new stack
    -- Executing [[email protected]:12] Set("SIP/comaq-0000004d", "DSTRING=SIP/9001") in new stack
    -- Executing [[email protected]:13] Return("SIP/comaq-0000004d", "") in new stack
    -- Executing [[email protected]:27] GotoIf("SIP/comaq-0000004d", "0?nodial") in new stack
    -- Executing [[email protected]:28] GotoIf("SIP/comaq-0000004d", "0?skiptrace") in new stack
    -- Executing [[email protected]:29] GosubIf("SIP/comaq-0000004d", "0?ctset,1:ctclear,1") in new stack
    -- Executing [[email protected]:1] NoOp("SIP/comaq-0000004d", "Deleting: CALLTRACE/9001 ") in new stack
    -- Executing [[email protected]:2] Return("SIP/comaq-0000004d", "") in new stack
    -- Executing [[email protected]:30] Set("SIP/comaq-0000004d", "D_OPTIONS=tr") in new stack
    -- Executing [[email protected]:31] ExecIf("SIP/comaq-0000004d", "0?SIPAddHeader(Alert-Info: )") in new stack
    -- Executing [[email protected]:32] ExecIf("SIP/comaq-0000004d", "0?SIPAddHeader()") in new stack
    -- Executing [[email protected]:33] ExecIf("SIP/comaq-0000004d", "0?Set(CHANNEL(musicclass)=)") in new stack
    -- Executing [[email protected]:34] GosubIf("SIP/comaq-0000004d", "0?qwait,1") in new stack
    -- Executing [[email protected]:35] Set("SIP/comaq-0000004d", "__CWIGNORE=") in new stack
    -- Executing [[email protected]:36] Set("SIP/comaq-0000004d", "__KEEPCID=TRUE") in new stack
    -- Executing [[email protected]: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 [[email protected]:38] ExecIf("SIP/comaq-0000004d", "0?Set(DIALSTATUS=)") in new stack
    -- Executing [[email protected]:39] GosubIf("SIP/comaq-0000004d", "0?s-CHANUNAVAIL,1") in new stack
    -- Executing [[email protected]:40] MacroExit("SIP/comaq-0000004d", "") in new stack
    -- Executing [[email protected]:10] GotoIf("SIP/comaq-0000004d", "0?exit") in new stack
    -- Executing [[email protected]:11] Set("SIP/comaq-0000004d", "SV_DIALSTATUS=CHANUNAVAIL") in new stack
    -- Executing [[email protected]:12] GosubIf("SIP/comaq-0000004d", "0?docfu,1") in new stack
    -- Executing [[email protected]:13] GosubIf("SIP/comaq-0000004d", "0?docfb,1") in new stack
    -- Executing [[email protected]:14] Set("SIP/comaq-0000004d", "DIALSTATUS=CHANUNAVAIL") in new stack
    -- Executing [[email protected]:15] NoOp("SIP/comaq-0000004d", "Voicemail is 'novm'") in new stack
    -- Executing [[email protected]:16] GotoIf("SIP/comaq-0000004d", "1?s-CHANUNAVAIL,1") in new stack
    -- Goto (macro-exten-vm,s-CHANUNAVAIL,1)
    -- Executing [[email protected]:1] NoOp("SIP/comaq-0000004d", "IVR_RETVM: IVR_CONTEXT: ") in new stack
    -- Executing [[email protected]:2] GotoIf("SIP/comaq-0000004d", "0?exit,1") in new stack
    -- Executing [[email protected]: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 [[email protected]:1] Macro("SIP/comaq-0000004d", "hangupcall,") in new stack
    -- Executing [[email protected]:1] GotoIf("SIP/comaq-0000004d", "1?endmixmoncheck") in new stack
    -- Goto (macro-hangupcall,s,9)
    -- Executing [[email protected]:9] NoOp("SIP/comaq-0000004d", "End of MIXMON check") in new stack
    -- Executing [[email protected]:10] GotoIf("SIP/comaq-0000004d", "1?nomeetmemon") in new stack
    -- Goto (macro-hangupcall,s,28)
    -- Executing [[email protected]:28] NoOp("SIP/comaq-0000004d", "End of MEETME check") in new stack
    -- Executing [[email protected]:29] GotoIf("SIP/comaq-0000004d", "1?noautomon") in new stack
    -- Goto (macro-hangupcall,s,34)
    -- Executing [[email protected]:34] NoOp("SIP/comaq-0000004d", "TOUCH_MONITOR_OUTPUT=") in new stack
    -- Executing [[email protected]:35] GotoIf("SIP/comaq-0000004d", "1?noautomon2") in new stack
    -- Goto (macro-hangupcall,s,41)
    -- Executing [[email protected]:41] NoOp("SIP/comaq-0000004d", "MONITOR_FILENAME=") in new stack
    -- Executing [[email protected]:42] GotoIf("SIP/comaq-0000004d", "1?skiprg") in new stack
    -- Goto (macro-hangupcall,s,45)
    -- Executing [[email protected]:45] GotoIf("SIP/comaq-0000004d", "1?skipblkvm") in new stack
    -- Goto (macro-hangupcall,s,48)
    -- Executing [[email protected]:48] GotoIf("SIP/comaq-0000004d", "1?theend") in new stack
    -- Goto (macro-hangupcall,s,50)
    -- Executing [[email protected]: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 [[email protected]: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'

  8. #8

    Padrão Re: FXO SPA3102 Linha Fixa

    Certo, nesta linha aqui ele diz que o ramal esta ocupado ou congestionado!

    Executing [[email protected]: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).



  9. #9

    Padrão 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.

  10. #10

    Padrão 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?



  11. #11

    Padrão Re: FXO SPA3102 Linha Fixa

    Sim, entre ramais esta normal, inclusive tenho outros troncos e eles estão funcionando normalmente.

  12. #12

    Padrão 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.



  13. #13

    Padrão 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?

  14. #14

    Padrão 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.