[AsteriskBrasil] Opensips + msg erro asterisk

Daviramos Roussenq Fortunato daviramosrf em gmail.com
Sexta Outubro 15 08:14:50 BRT 2010


Creio que o correto é bilhetar no OpenSIPS.

Em 14 de outubro de 2010 20:16, marcelo ferreira
<marcelobaxo em hotmail.com>escreveu:

>  Fernando,
> obrigado pela resposta. Detalhes:
>
> São 2 servidores distintos em IPs diferentes (arquivos conf no final).
>
> Serv.1: Opensips 1.6.3
> Serv.2: Asterisk 1.6 + A2Billing 1.4
>
> *UPDATE*: Eu consegui "me desviar" do erro do email anterior:
> Depois dos erros que estavam ocorrendo em relação ao FROM, eu fui no
> opensips e alterei o cabeçalho para enviar o IP no lugar do ramal de origem.
> Isso fez com que o asterisk aceitasse a chamada e a encaminhasse para o
> contexto do Peer.
>
> Daí, agora eu precisava dar um GOTO para o contexto do A2Billing, só que
> não vai dar certo porque no FROM existe um IP, e não o ramal que quero
> bilhetar.
>
> Entendeu o que eu estou tentando fazer? Bilhetar no A2Billing o ramal
> chamador do Opensips. Você já fez alguma coisa parecida?
> opensips+(asterisk+a2billing)?
>
> Obrigado pela ajuda!
>
> Abraços!
>
> Marcelo Amorim Ferreira
>
>
>
> ##################### SIP.CONF
> [general]
> port = 5060
> bindaddr = 0.0.0.0
> alwaysauthreject=yes
> srvlookup=yes
> canreinvite=no
> allow=all
> defaultexpiry = 900
> ignoreregexpire=yes
>
> [208.109.223.40]
> type=peer
> context=opensips
> host=100.101.102.103
> fromdomain=100.101.102.103
> insecure=very
>
> ;RAMAL DO A2BILLING
> [99999]
> accountcode=99999
> regexten=99999
> amaflags=billing
> callerid=99999
> canreinvite=yes
> context=a2billing
> dtmfmode=RFC2833
> host=dynamic
> nat=yes
> qualify=no
> secret=99999
> type=friend
> username=99999
> disallow=all
> allow=gsm
> allow=g729
> allow=ulaw
> allow=alaw
> regseconds=0
> cancallforward=yes
> cid_number=99999
>
>
>
> ##################### OPENSIPS.CONF
>
> debug=3
> log_stderror=no
> log_facility=LOG_LOCAL0
>
> fork=yes
> children=4
>
> port=5060
>
> ####### Modules Section ########
> mpath="//lib/opensips/modules/"
>
> loadmodule "db_mysql.so"
> loadmodule "signaling.so"
> loadmodule "sl.so"
> loadmodule "tm.so"
> loadmodule "rr.so"
> loadmodule "maxfwd.so"
> loadmodule "usrloc.so"
> loadmodule "registrar.so"
> loadmodule "textops.so"
> loadmodule "mi_fifo.so"
> loadmodule "uri.so"
> loadmodule "acc.so"
>
> #maf:modulo para alterar o from
> loadmodule "uac.so"
> loadmodule "dialog.so" #dependencia para o uac
>
> loadmodule "auth.so"
> loadmodule "auth_db.so"
>
> modparam("mi_fifo", "fifo_name", "/tmp/opensips_fifo")
> modparam("rr", "enable_full_lr", 1)
> modparam("usrloc", "db_mode",   0)
> modparam("uri", "use_uri_table", 0)
> modparam("acc", "early_media", 1)
> modparam("acc", "report_ack", 1)
> modparam("acc", "report_cancels", 1)
> modparam("acc", "detect_direction", 0)
> modparam("acc", "failed_transaction_flag", 3)
> modparam("acc", "log_flag", 1)
> modparam("acc", "log_missed_flag", 2)
> modparam("acc", "db_flag", 1)
> modparam("acc", "db_missed_flag", 2)
> modparam("auth_db", "calculate_ha1", yes)
> modparam("auth_db", "password_column", "password")
>
> ####### Routing Logic ########
> route{
>
>     if (!mf_process_maxfwd_header("10")) {
>         sl_send_reply("483","Too Many Hops");
>         exit;
>     }
>
>     if (has_totag()) {
>         if (loose_route()) {
>             if (is_method("BYE")) {
>                 setflag(1); # do accounting ...
>                 setflag(3); # ... even if the transaction fails
>             } else if (is_method("INVITE")) {
>                 record_route();
>             }
>             route(1);
>         } else {
>             if ( is_method("ACK") ) {
>                 if ( t_check_trans() ) {
>                     t_relay();
>                     exit;
>                 } else {
>                     exit;
>                 }
>             }
>             sl_send_reply("404","Not here");
>         }
>         exit;
>     }
>
>     if (is_method("CANCEL"))
>     {
>         if (t_check_trans())
>             t_relay();
>         exit;
>     }
>
>     t_check_trans();
>
>     if (loose_route()) {
>         xlog("L_ERR",
>         "Attempt to route with preloaded Route's [$fu/$tu/$ru/$ci]");
>         if (!is_method("ACK"))
>             sl_send_reply("403","Preload Route denied");
>         exit;
>     }
>
>     if (!is_method("REGISTER|MESSAGE"))
>         record_route();
>
>     if (is_method("INVITE")) {
>         setflag(1); # do accounting
>
>         if (uri =~ "sip:0[0-9]@*"){
>             xlog("Enviado para o Asterisk!\n");
>             uac_replace_from("sip:208.109.223.40 em 208.109.223.40<sip%3A208.109.223.40 em 208.109.223.40>
> ");
>               route(2);
>               exit;
>         };
>
>     }
>
>     if (!uri==myself)
>     {
>         append_hf("P-hint: outbound\r\n");
>         route(1);
>     }
>
>     if (is_method("PUBLISH"))
>     {
>         sl_send_reply("503", "Service Unavailable");
>         exit;
>     }
>
>     if (is_method("REGISTER"))
>     {
>         if (!www_authorize("208.109.223.40", "subscriber"))
>         {
>             www_challenge("208.109.223.40", "0");
>             exit;
>         }
>
>         if (!db_check_to())
>         {
>             sl_send_reply("403","Forbidden auth ID");
>             exit;
>         }
>
>         if (!save("location"))
>             sl_reply_error();
>
>         exit;
>     }
>
>     if ($rU==NULL) {
>         sl_send_reply("484","Address Incomplete");
>         exit;
>     }
>
>     if (!lookup("location","m")) {
>         switch ($retcode) {
>             case -1:
>             case -3:
>                 t_newtran();
>                 t_reply("404", "Tone: Nao Encontrado");
>                 exit;
>             case -2:
>                 sl_send_reply("405", "Method Not Allowed");
>                 exit;
>         }
>     }
>
>     setflag(2);
>
>     route(1);
> }
>
>
> route[1] {
>     if (is_method("INVITE")) {
>         t_on_branch("2");
>         t_on_reply("2");
>         t_on_failure("1");
>     }
>
>     if (!t_relay()) {
>         sl_reply_error();
>     };
>     exit;
> }
>
> #asterisk
> route[2] {
>   rewritehostport("sip.liguetone.com.br");
>   route(1);
> }
>
> branch_route[2] {
>     xlog("new branch at $ru\n");
> }
>
>
> onreply_route[2] {
>     xlog("incoming reply\n");
> }
>
> failure_route[1] {
>     if (t_was_cancelled()) {
>         exit;
>     }
> }
>
>
>
> ------------------------------
> Date: Thu, 14 Oct 2010 14:04:26 -0300
> From: fernando em 7billing.com.br
> To: asteriskbrasil em listas.asteriskbrasil.org
> Subject: Re: [AsteriskBrasil] Opensips + msg erro asterisk
>
>    Boa tarde amigo.
>
> Tenho esse tipo de solução rodando com Opensips 1.5, Kamailio 1.5 e
> Kamailio 3.0.
>
> Poste como está seu sip.conf e seu openser.cfg.
>
> Os passos para esse tipo de integração é simples. Visto que o OpenSIPS deve
> rodar em uma porta, e o asterisl em outra, segue-se a lógica:
>
>
>    - Asterisk deve estar impedido de receber REGISTER.
>    - Asterisk só aceita chamadas do sip opensips que vc deve cadastrar
>    como peer no sip.conf
>    - OpenSIPS gerencia REGISTER, chamadas de voipxvoip e Roteamento para o
>    Asteris.
>
> Mas sem seus arquivos de configuração e uma melhor explicação do seu
> cenário fica meio difícil ajudar.
>
>
>  ____________________________________
> Fernando da Silva Santos
> Desenvolvedor - 7Billing
> http://www.7billing.com.br
> *-------Original Message-------*
>
>  *From:* marcelo ferreira <marcelobaxo em hotmail.com>
> *Date:* 13/10/2010 19:39:15
> *To:* asteriskbrasil em listas.asteriskbrasil.org
> *Subject:* [AsteriskBrasil] Opensips + msg erro asterisk
>
> Pessoal,
> sou novato ainda nas tecnologias sip+asterisk+opensips+afins.
> Mas estou trabalhando e estudando há lgum tempo.
> Então, esta semana eu configurei um Opensips em um servidor (A) e o
> Asterisk em um servidor (B).
>
> As primeiras configurações e testes pelos quais passei foi ligar de ramal
> para ramal utilizando somente o opensips. Deram OK.
>
> A partir disso, efetuei o rewrite do osips para enviar chamadas pstn para
> os troncos do asterisk e serem bilhetadas no A2Billing.
>
> Bem o problema é que agora aparece o (famoso) warning: username mismatch,
> have <100.200.250.1>, digest has <35418>.
> Com o debug ativado, o cabeçalho é o seguinte:
> O opensips está no ip 100.200.250.1
> O meu softphone é o 150.150.200.132
>
> <--- SIP read from UDP:100.200.250.1:5060 --->
> INVITE sip:01799998888 em sip.liguetone.com.br<sip%3A01799998888 em sip.liguetone.com.br>SIP/2.0
> Record-Route: <sip:100.200.250.1;lr=on;ftag=eubeh>
> Via: SIP/2.0/UDP 100.200.250.1;branch=z9hG4bKded3.f8b73e07.0
> Via: SIP/2.0/UDP 192.168.0.18:5060
> ;received=150.150.200.132;rport=5060;branch=z9hG4bKkhfpcdbl
> Max-Forwards: 69
> To: <sip:01799998888 em 100.200.250.1 <sip%3A01799998888 em 100.200.250.1>>
> From: "35418" <sip:35418 em 100.200.250.1 <sip%3A35418 em 100.200.250.1>
> >;tag=eubeh
> Call-ID: soljjmshjthguwo em calango
> CSeq: 616 INVITE
> Contact: <sip:35418 em 192.168.0.18:5060>
> Content-Type: application/sdp
> Allow:
> INVITE,ACK,BYE,CANCEL,OPTIONS,PRACK,REFER,NOTIFY,SUBSCRIBE,INFO,MESSAGE
> Supported: replaces,norefersub,100rel
> User-Agent: Twinkle/1.4.2
> Content-Length: 308
>
> Bem, a partir dessa tentativa, o asterisk está mostrando o warning e depois
> responde com 403: Forbidden.
>
> No asterisk configurei um contexto padrão "context=opensips"
> e inclusive já tentei o "Autocreatepeer=yes" que não fez diferença.
>
> Tentei utilizar no osips o uac_replace_from setando para o numero do ramal,
> mas fica na mesma (óbvio :)
> e tentei colocar alguns cabeçalhos no osips para testar se era algum
> parâmetro que falta pro asterisk.
>
> O que os senhores acham? Eu tenho de enviar/alterar algum cabeçalho pelo
> osips?
> Eu estou fazendo dessa maneira simplesmente para poder aproveitar o meu
> A2Billing que já está em produção no asterisk.
>
> Abraços e muito obrigado!
>
> Marcelo Amorim Ferreira
>
>
> _______________________________________________ KHOMP: qualidade em placas
> de E1, GSM, FXS e FXO para Asterisk. - Hardware com alta disponibilidade de
> recursos e qualidade KHOMP - Suporte t�cnico local qualificado e gratuito
> Conhe�a a linha completa de produtos KHOMP em www.khomp.com.br_______________________________________________ Temos tudo para seu projeto
> VoIP com Asterisk! Descontos especiais para assinantes da
> AsteriskBrasil.org. Registre-se e receba um cupom exclusivo de desconto!
> Acesse agora www.voipmania.com.br______________________________________________ Lista de discuss�es
> AsteriskBrasil.org AsteriskBrasil em listas.asteriskbrasil.org
> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil______________________________________________ Para remover seu email desta
> lista, basta enviar um email em branco para
> asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
>
> _______________________________________________
> KHOMP: qualidade em placas de E1, GSM, FXS e FXO para Asterisk.
> - Hardware com alta disponibilidade de recursos e qualidade KHOMP
> - Suporte técnico local qualificado e gratuito
> Conheça a linha completa de produtos KHOMP em www.khomp.com.br
> _______________________________________________
> Temos tudo para seu projeto VoIP com Asterisk!
> Descontos especiais para assinantes da AsteriskBrasil.org.
> Registre-se e receba um cupom exclusivo de desconto!
> Acesse agora www.voipmania.com.br
> ______________________________________________
> Lista de discussões AsteriskBrasil.org
> AsteriskBrasil em listas.asteriskbrasil.org
> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
> ______________________________________________
> Para remover seu email desta lista, basta enviar um email em branco para
> asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
>



-- 
Atenciosamente
Daviramos Roussenq Fortunato
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20101015/eda342ae/attachment-0001.htm 


Mais detalhes sobre a lista de discussão AsteriskBrasil